一、聚類分析
1. 基本原理
聚類分析(Cluster Analysis) 是研究“物以類聚”的一種方法,有時(shí)稱為群分析、點(diǎn)群分析、簇類分析等。
聚類分析是根據(jù)研究對(duì)象的特征對(duì)研究對(duì)象進(jìn)行分類的多元分析技術(shù)的總稱。聚類分析是應(yīng)用最廣泛的分類技術(shù),它把性質(zhì)相近的個(gè)體歸為一類,使同一類的個(gè)體具有高度的同質(zhì)性。
聚類分析大部分都屬于探測(cè)性研究,最終結(jié)果是產(chǎn)生研究對(duì)象的分類,通過對(duì)數(shù)據(jù)的分類研究還能產(chǎn)生假設(shè)。聚類分析也可用于證實(shí)性目的,對(duì)于通過其他方法確定的數(shù)據(jù)分類,可以應(yīng)用聚類分析進(jìn)行檢驗(yàn)。
- 聚類分析和判別歸類有著不同的分類目的,彼此之間既有區(qū)別又有聯(lián)系。
- 聚類分析分為Q型(分類對(duì)象為樣品)和R型(分類對(duì)象為變量)兩種。
2. 距離的度量
相似性度量包括:距離和相似系數(shù).
樣品之間的距離和相似系數(shù)有著各種不同的定義,而這些定義與變量的類型有著非常密切的關(guān)系.
(1)變量的測(cè)量尺度
變量的測(cè)量尺度:間隔、有序和名義尺度.
- 間隔變量: 變量用連續(xù)的量來表示,如長(zhǎng)度、重量、速度、溫度等.
- 有序變量: 變量度量時(shí)不用明確的數(shù)量表示,而是用等級(jí)來表示,如某產(chǎn)品分為一等品、二等品、三等品等有次序關(guān)系.
- 名義變量: 變量用一些類表示,這些類之間既無等級(jí)關(guān)系也無數(shù)量關(guān)系,如性別、職業(yè)、產(chǎn)品的型號(hào)等.
(2)距離
常用的距離包括:
- 明考夫斯基(Minkowski)距離
- 蘭氏(Lance和Williams)距離
- 馬氏距離
- 斜交空間距離
(3)R語言計(jì)算距離
dist(x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
其中參數(shù)含義:
參數(shù) | 含義 |
---|---|
X | 數(shù)據(jù)矩陣 |
method | 距離計(jì)算方法包括"euclidean", "maximum“, “manhattan”, “canberra”, “binary” or “minkowski” |
diag | 是否包含對(duì)角線元素 |
upper | 是否需要矩陣上三角 |
p | Minkowski距離的冪次 |
示例:
X=c(1,2,6,8,11)
dist(X,diag=1,upper=1)
運(yùn)行結(jié)果如下:
1 2 3 4 5
1 0 1 5 7 10
2 1 0 4 6 9
3 5 4 0 2 5
4 7 6 2 0 3
5 10 9 5 3 0
三、聚類方法
1. 系統(tǒng)聚類法
hclust(d, method = “complete”, …)
plot(x, labels = NULL, hang = 0.1, ...)
參數(shù)的含義如下:
參數(shù) | 含義 |
---|---|
d | 由dist函數(shù)產(chǎn)生的相似矩陣 |
method | 聚類方法“single“(最短距離), ”complete“(最長(zhǎng)距離), ”average” (類平均法), “median” (中間距離法), “centroid” (重心法), “ward.D” (ward法) |
x | hclust得出的聚類結(jié)果. |
labels | 樹形圖標(biāo)簽 |
2. K均值法
kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong", "Lloyd", "Forgy", "MacQueen"), trace=FALSE)
參數(shù)的含義如下:
參數(shù) | 含義 |
---|---|
x | 數(shù)據(jù)陣 |
centers | 聚類數(shù)或初始聚類點(diǎn) |
iter.max | 最大迭代步數(shù) |
三、示例
1. Q型聚類
(1)問題描述
數(shù)據(jù)資料來源:《應(yīng)用多元統(tǒng)計(jì)分析》(第五版,王學(xué)民 編著)配書資料 例6.3.3
數(shù)據(jù)包括1999年全國(guó)31個(gè)省、直轄市和自治區(qū)的城鎮(zhèn)居民家庭平均每人全年消費(fèi)性支出的八個(gè)主要變量數(shù)據(jù). 這八個(gè)變量是:
- x1:食品
- x2:衣著
- x3:家庭設(shè)備用品及服務(wù)
- x4:醫(yī)療保健
- x5:交通和通訊
- x6:娛樂教育文化服務(wù)
- x7:居住
- x8:雜項(xiàng)商品和服務(wù)
分別用最短距離法、重心法和Ward方法對(duì)各地區(qū)作聚類分析. 為同等地對(duì)待每一變量,在作聚類前,先對(duì)各變量作標(biāo)準(zhǔn)化變換.。
(2)R語言求解
A. Ward法系統(tǒng)聚類
代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-835987.html
d6.3.3=read.csv('examp6.3.3.csv',header=1)
d6.3.3s=scale(d6.3.3[,-1]) #標(biāo)準(zhǔn)化數(shù)據(jù)
rownames(d6.3.3s)=d6.3.3[,1]
hc=hclust(dist(d6.3.3s),'ward.D') #使用Ward法系統(tǒng)聚類
plot(hc,hang=-1) #做出樹形圖
rect.hclust(hc,k=3) #作聚類框
cutree(hc, k=3) #將聚成三類的結(jié)果分別以1, 2, 3表示
> cutree(hc, k=3) #將聚成三類的結(jié)果分別以1, 2, 3表示
北京 天津 河北 山西 內(nèi)蒙古 遼寧 吉林 黑龍江 上海 江蘇 浙江 安徽 福建
1 2 2 3 3 3 3 3 1 2 1 3 3
江西 山東 河南 湖北 湖南 廣東 廣西 海南 重慶 四川 貴州 云南 西藏
3 2 3 2 2 1 3 3 2 2 3 2 2
陜西 甘肅 青海 寧夏 新疆
3 3 3 3 2
B. K均值法
運(yùn)行代碼:
kcl=kmeans(d6.3.3s,3)
sort(kcl$cluster) #對(duì)聚類結(jié)果進(jìn)行排序
fviz_nbclust(d6.3.3s,kmeans,method='wss')
> sort(kcl$cluster) #對(duì)聚類結(jié)果進(jìn)行排序
天津 江蘇 福建 山東 湖南 重慶 云南 西藏 北京 上海 浙江 廣東 河北
1 1 1 1 1 1 1 1 2 2 2 2 3
山西 內(nèi)蒙古 遼寧 吉林 黑龍江 安徽 江西 河南 湖北 廣西 海南 四川 貴州
3 3 3 3 3 3 3 3 3 3 3 3 3
陜西 甘肅 青海 寧夏 新疆
3 3 3 3 3
2. R型聚類
(1)問題描述
數(shù)據(jù)資料來源:《應(yīng)用多元統(tǒng)計(jì)分析》(第五版,王學(xué)民 編著)配書資料 例6.3.7
對(duì)305名女中學(xué)生測(cè)量八個(gè)體型指標(biāo):
- x1:身高
- x2:手臂長(zhǎng)
- x3:上肢長(zhǎng)
- x4:下肢長(zhǎng)
- x5:體重
- x6:頸圍
- x7:胸圍
- x8:胸寬
(2)R語言求解
代碼如下:
A. 轉(zhuǎn)換為距離矩陣
d6.3.7 = read.csv('examp6.3.7.csv',header=1)
d = as.dist(1-d6.3.7[,-1], diag=T) #轉(zhuǎn)換為距離矩陣
> d
身高 手臂長(zhǎng) 上肢長(zhǎng) 下肢長(zhǎng) 體重 頸圍 胸圍 胸寬
身高 0.000
手臂長(zhǎng) 0.154 0.000
上肢長(zhǎng) 0.195 0.119 0.000
下肢長(zhǎng) 0.141 0.174 0.199 0.000
體重 0.527 0.624 0.620 0.564 0.000
頸圍 0.602 0.674 0.681 0.671 0.238 0.000
胸圍 0.699 0.723 0.763 0.673 0.270 0.417 0.000
胸寬 0.618 0.585 0.655 0.635 0.371 0.423 0.461 0.000
B. 最長(zhǎng)距離法
hc = hclust(d, "complete") #最長(zhǎng)距離法
plot(hc, hang=-1) #樹形圖
rect.hclust(hc, k=2) #將聚成的兩類用邊框界定
cutree(hc, k=2) #將聚成兩類的結(jié)果分別以1, 2表示
文章來源地址http://www.zghlxwxcb.cn/news/detail-835987.html
> cutree(hc, k=2) #將聚成兩類的結(jié)果分別以1, 2表示
身高 手臂長(zhǎng) 上肢長(zhǎng) 下肢長(zhǎng) 體重 頸圍 胸圍 胸寬
1 1 1 1 2 2 2 2
到了這里,關(guān)于【統(tǒng)計(jì)分析數(shù)學(xué)模型】聚類分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!