|
本文主要對SAS做聚類分析的proc cluster步的應(yīng)用做一個簡單的摘錄,相關(guān)的理論知識細(xì)節(jié),請參見SAS help文檔及其他統(tǒng)計學(xué)相關(guān)文獻(xiàn)等。
1.簡介
proc cluster一般適用于規(guī)模較小的樣本觀測聚類(即Q型聚類)。proc cluster為系統(tǒng)聚類,包括11種方法,根據(jù)“距離”作為分類標(biāo)準(zhǔn)。

2.proc cluster
常用語法格式:
PROC CLUSTER METHOD = name < options > ;
COPY variables ;
ID variable ;
VAR variables ;
Method=average|ward|centroid|single|complete|median|flexible|mcquitty|eml|density|twostage,分別指定11類系統(tǒng)聚類法。
proc cluster常用選項及語句說明:
data= 指定聚類過程的輸入數(shù)據(jù)集。該數(shù)據(jù)集可以是觀測樣本(坐標(biāo)數(shù)據(jù)),也可以是類型“type=distance”的數(shù)據(jù)集,數(shù)據(jù)被認(rèn)為是類間(或觀測間)的距離陣。
關(guān)于type=distance的數(shù)據(jù)集,用如下方式就可建立:
data dis_data(type=distance);
input a b c;
……
用proc contents等方法可以查看到其“Data Set Type DISTANCE”
outtree= 生產(chǎn)一個數(shù)據(jù)集,存儲cluster過程的聚類歷史,可被proc tree調(diào)用作圖。
proc tree主要用于根據(jù)proc cluster產(chǎn)生的結(jié)果作樹狀圖dendrograms。常用語句如:proc tree data= out= nclusters= horizontal; 等。其中data=指定輸入數(shù)據(jù)集,out=輸出數(shù)據(jù)集,nclusters=指定輸出數(shù)據(jù)集中的分類數(shù),horizontal要求畫水平聚類圖。
standard|std 把聚類變量的坐標(biāo)數(shù)據(jù)標(biāo)準(zhǔn)化均值為0、標(biāo)準(zhǔn)差為1,然后進(jìn)行聚類分析。該選項僅用于坐標(biāo)數(shù)據(jù)集。
聚類分析中,樣本間的聚類通常是采用歐氏距離,為消除變量不同量綱對聚類分析的影響,通常進(jìn)行標(biāo)準(zhǔn)化的處理。
rsquare|rsq 輸出R^2和半偏R^2統(tǒng)計量,該選項對average、centriod法的坐標(biāo)數(shù)據(jù)有效,對于ward法總是輸出。
這兩個統(tǒng)計量是用來幫助確定分類個數(shù)的。R^2越大表示各個類區(qū)分的越開,聚類效果越好。而又不能以 的大小簡單的確定分類個數(shù),應(yīng)考察 值的變化,即半偏 ,即上一步 與該步 之差。若某步半偏 較大,說明本次并類效果不好,應(yīng)當(dāng)考慮聚類到上一步是否應(yīng)停止。
pseudo 輸出偽F和偽T統(tǒng)計量,該選項僅對average、centriod、ward法的坐標(biāo)數(shù)據(jù)有效。
這兩個統(tǒng)計量同樣是用來幫助確定分類個數(shù)的。類似R^2和半偏R^2,偽F統(tǒng)計量值越大分來效果越好;若某步偽T統(tǒng)計量值較大,說明該步并類效果不好,應(yīng)當(dāng)考慮聚類到上一步是否應(yīng)停止。
print|p=k 指定cluster history顯示的分類數(shù),即只列出最后合并為k類直到合并為1類得信息。
copy語句 把“data=”數(shù)據(jù)集中,id和var語句未列出變量,復(fù)制到“outtree=”指定的數(shù)據(jù)集中。
id語句 標(biāo)識過程中的觀測,缺省是用觀測序號標(biāo)識。
var語句 列出聚類分析中用到的語句。
3.實例
摘用《統(tǒng)計分析與SAS》(張曉冉 編著)的例11.1.1問題:根據(jù)2004年我國31個省市農(nóng)民人均年生活消費支出情況,進(jìn)行分類。數(shù)據(jù)參見下數(shù)據(jù)集(數(shù)據(jù)單位:元)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| data consume2004;
input area$ x1-x8;
label area="地區(qū)" x1='食品' x2='衣著' x3='居住' x4='家庭設(shè)備及服務(wù)' x5='醫(yī)療保健' x6='交通和通訊' x7='文教娛樂' x8='其他商品及服務(wù)';
datalines;;
北京 1495.09 308.85 746.04 227.27 507.55 512.23 743.72 76.18
天津 1017.72 181.21 508.06 108.51 177.10 230.41 376.87 42.23
河北 780.09 127.06 340.88 80.42 115.97 176.60 182.56 31.33
山西 748.90 171.69 179.22 59.27 84.20 130.00 235.01 28.17
內(nèi)蒙古 889.05 133.54 266.43 69.91 154.51 241.90 291.98 35.25
遼寧 962.00 154.97 290.08 72.58 145.19 186.77 217.95 43.42
吉林 899.00 133.54 216.82 62.08 161.16 214.97 237.34 46.31
黑龍江 750.57 123.87 388.87 49.87 131.04 175.85 188.51 28.78
上海 2191.15 279.73 1446.15 344.41 424.55 720.37 805.56 116.94
江蘇 1317.88 163.53 467.62 141.43 163.16 293.07 373.39 72.47
浙江 1838.57 258.58 798.88 242.09 326.12 496.86 597.96 100.05
安徽 861.34 86.87 299.82 75.97 91.95 163.93 199.95 33.88
福建 1408.54 159.60 430.14 154.44 136.40 306.06 313.09 107.32
江西 1125.13 107.19 234.69 66.89 110.32 171.89 237.28 42.10
山東 1000.13 139.18 365.97 110.12 155.85 221.93 298.23 97.85
河南 808.27 108.08 268.72 63.68 95.22 121.17 168.04 30.91
湖北 1076.35 93.52 274.10 75.11 110.73 162.65 245.68 50.85
湖南 1338.65 112.38 293.23 92.37 124.12 174.53 279.96 57.05
廣東 1581.68 116.83 494.89 131.17 153.17 350.27 314.34 98.44
廣西 1047.58 64.42 311.48 64.87 83.64 140.13 178.83 37.65
海南 1027.90 58.96 134.00 83.16 86.57 133.77 164.42 56.59
重慶 1039.00 79.08 201.03 74.81 115.31 119.68 198.65 26.38
四川 1123.18 92.87 234.31 79.15 117.40 127.60 209.68 31.54
貴州 754.39 55.63 165.95 41.48 47.19 70.41 140.21 21.07
云南 848.30 61.87 239.29 61.78 87.66 105.52 143.20 23.42
西藏 941.08 157.87 118.55 75.55 28.93 89.16 37.84 21.72
陜西 686.38 91.78 237.32 65.46 118.12 126.13 258.83 34.04
甘肅 703.41 82.33 179.86 58.91 85.33 130.22 202.64 21.64
青海 813.35 121.83 233.16 65.48 126.60 176.41 108.14 31.48
寧夏 808.54 122.50 325.21 65.30 186.90 155.26 217.06 46.05
新疆 763.43 138.88 304.81 56.03 141.97 131.59 126.92 26.28
;
run; |
用proc cluster做聚類分析,采用Ward法,如下:
1
2
3
4
5
6
| ods graphics on;
proc cluster data=consume2004 method=ward std rsquare pseudo outtree=ave_tree;
var x1-x8;
id area;
run;
ods graphics off; |
得到聚類歷史如下圖(其中省略了一些中間的歷史記錄):

首先對Cluster History進(jìn)行下簡單的說明:
Cluster History中的變量依次表示分類的類數(shù)、原分類、每步合并入的類、此步類中的觀測數(shù)、半偏R平方、R平方、偽F統(tǒng)計量,偽T統(tǒng)計量。
如前介紹,系統(tǒng)聚類法首先將所有樣本觀測各獨自視為1類,然后逐步合并至只有1類。本例中,用ward法,樣本觀測就是31個省市:初始時有31類;第1步將重慶、四川合為1類,其他29個省市仍各自為1類,記30類;第2步將江西、湖北合為1類,記29類;依次類推。注意,上圖NCL=8時,即記8類時,是將之前記的13類和西藏合并得到的。
接下來,下圖描述了偽F統(tǒng)計量,偽T統(tǒng)計量的情況,為我們判斷確定分類組數(shù)提供了初步參考。如可以看出:在類數(shù)為5—15的區(qū)間內(nèi),偽F統(tǒng)計量都相對小些;在類數(shù)為1、4、5等處,偽T統(tǒng)計量相對較大。

下面,為確定分類數(shù),對Cluster History進(jìn)行詳細(xì)分析。
我們?nèi)藶榧俣ǚ诸悢?shù)不應(yīng)超過8,則對Cluster History的最后8次合并分析即可,根據(jù)半偏R平方、偽F統(tǒng)計量,偽T統(tǒng)計量,得到的前4中最好分類為:
- 半偏R平方:2,3,4,5,6
- 偽F統(tǒng)計量:2,3,4,5,6
- 偽T統(tǒng)計量:2,3,5,6,8
解釋一下:
- 對半偏R^2,前面介紹到“若某步半偏R^2較大,說明該步并類效果不好,應(yīng)當(dāng)考慮聚類到上一步是否應(yīng)停止”。在最后8次并類中,半偏R^2最大為0.6754,在NCL=1時得到,考慮在上一步停止分類,即分類數(shù)為2;半偏R^2第二大為0.1317,在NCL=2時得到,考慮在上一步停止分類,即分類數(shù)為3;依次類推,得到最好分類數(shù)依次為:2,3,4,5,6。
- 偽F統(tǒng)計量,其統(tǒng)計量值越大分來效果越好,很容易排序得到最好分類數(shù)依次為:2,3,4,5,6。
- 偽T統(tǒng)計量,類似于半偏R^2,若某步較大,說明該步并類效果不好,應(yīng)當(dāng)考慮聚類到上一步是否應(yīng)停止。得到最好分類數(shù)依次為:2,3,5,6,8。
另外,若我們再假定分類數(shù)應(yīng)大于3,則分類數(shù)大致可以為4,5,6。至于如何最終確定分類數(shù),可以參考其他聚類方法結(jié)果、畫出樹狀圖等,綜合考慮,個人作出判斷,這里選定分類數(shù)為5。
接下來,可以用proc tree和proc means進(jìn)一步完善后續(xù)工作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| proc tree data=ave_tree out=result ncl=5 horizontal;
copy x1-x8;
run;
proc sort data=result;
by cluster;
run;
proc means data=result noprint;
var x1-x8;
by cluster;
output out=clus_mean mean=x1 x2 x3 x4 x5 x6 x7 x8;
data clus_mean;
set clus_mean;
sum=sum(x1,x2,x3,x4,x5,x6,x7,x8);
label sum='總和';
format x1-x8 sum 8.2;
run; |
最后,根據(jù)數(shù)據(jù)集result可以得到將31個省市分為5類,分別是:
- 第一類:重慶 四川 江西 湖北 安徽 河南 貴州 云南 陜西 甘肅 廣西 湖南 海南 西藏
- 第二類:河北 黑龍江 內(nèi)蒙古 吉林 青海 新疆 遼寧 寧夏 山西 天津
- 第三輪:福建 廣東 江蘇 山東
- 第四類:北京 浙江
- 第五類:上海
樹狀圖如下:

匯總數(shù)據(jù)集如下,即得到各個類各消費情況的平均水平及總和:

參考文獻(xiàn)
1.SAS STAT 9.2 User’s Guide (2d Edition)
2.統(tǒng)計分析與SAS(張曉冉 編著)
|