sas:主成分分析

最近和同學討論他們要做的電子醫療系統的時候,聊到單因素分析和主成分分析,一想自己對這方面也不是很懂,就用sas做了一套標準的流程,記錄如下:

個人總結:如果遇到多因素分析,想要很多很多個自變量與因變量進行線性回歸分析必須進行降維,一種很好的解決方案就是主成分分析。

引言

主成分分析,舉了這么個例子:就像你選女人,有身材、相貌兩個指標,如果身材、相貌都很突出,那當然很好選擇;但如果兩個女人,一個身材突出,一個相貌出眾,看著都很喜歡,那可如何是好!這個時候通過主成分分析,匯總出一個指標,這個指標可以一定程度上代替原來的身材、相貌,這時就可以排序做出選擇了。

這例子當然有很多缺陷,但至少指出了主成分分析的目的之一:減少決策變量數,也就是降維。主成分分析的另一個目的是防范多重共線性。實際問題往往涉及很多變量,但某些變量之間會有一定的相關性,我們希望構造較少的幾個互不相關的新指標來代替原始變量,去除多重共線性,減少所需分析的變量,同時盡可能減少這一過程的信息損失。主成分分析正是基于這樣的目的而產生的有效方法。

主成分分析流程

1、原始數據標準化。

2、計算標準化變量間的相關系數矩陣。

3、計算相關系數矩陣的特征值和特征向量。

4、計算主成分變量值。

5、統計結果分析,提取所需的主成分。

實例(個人覺得說了再多,其實一個實例就懂了)

下表列出了1999年全國31個省、直轄市和自治區(港、澳、臺不在其中)的城鎮居民家庭平均每人全年消費性支出的八個主要變量數據,請從八個變量中識別出主成分。

變量說明(隨便從網上找的數據)

x1:食品 ? ? ? ? ? ? ? ? ? ? ? ?x2:交通和通訊

x3:衣著 ? ? ? ? ? ? ? ? ? ? ? ?x4:娛樂教育文化服務

x5:家庭設備用品及服務 ? x6:居住

x7:醫療保健 ? ? ? ? ? ? ? ? ?x8:雜項商品和服務

1.對照省份可用sas做表

data comp;

input name $ x1-x8;

cards;

北京 2959.19 730.79 749.41 513.34 467.87 1141.82 478.42 457.64

天津 2459.77 495.47 697.33 302.87 284.19 735.97 570.84 305.08

河北 1495.63 515.90 362.37 285.32 272.95 540.58 364.91 188.63

山西 1406.33 477.77 290.15 208.57 201.50 414.72 281.84 212.10

內蒙古 1303.97 524.29 254.83 192.17 249.81 463.09 287.87 192.96

遼寧 1730.84 553.90 246.91 279.81 239.18 445.20 330.24 163.86

吉林 1561.86 492.42 200.49 218.36 220.69 459.62 360.48 147.76

黑龍江 1410.11 510.71 211.88 277.11 224.65 376.82 317.61 152.85

上海 3712.31 550.74 893.37 346.93 527.00 1034.98 720.33 462.03

江蘇 2207.58 449.37 572.40 211.92 302.09 585.23 429.77 252.54

浙江 2629.16 557.32 689.73 435.69 514.66 795.87 575.76 323.36

安徽 1844.78 430.29 271.28 126.33 250.56 513.18 314.00 151.39

福建 2709.46 428.11 334.12 160.77 405.14 461.67 535.13 232.29

江西 1563.78 303.65 233.81 107.90 209.70 393.99 509.39 160.12

山東 1675.75 613.32 550.71 219.79 272.59 599.43 371.62 211.84

河南 1427.65 431.79 288.55 208.14 217.00 337.76 421.31 165.32

湖北 1783.43 511.88 282.84 201.01 237.60 617.74 523.52 182.52

湖南 1942.23 512.27 401.39 206.06 321.29 697.22 492.60 226.45

廣東 3055.17 353.23 564.56 356.27 811.88 873.06 1082.82 420.81

廣西 2033.87 300.82 338.65 157.78 329.06 621.74 587.02 218.27

海南 2057.86 186.44 202.72 171.79 329.65 477.17 312.93 279.19

重慶 2303.29 589.99 516.21 236.55 403.92 730.05 438.41 225.80

四川 1974.28 507.76 344.79 203.21 240.24 575.10 430.36 223.46

貴州 1673.82 437.75 461.61 153.32 254.66 445.59 346.11 191.48

云南 2194.25 537.01 369.07 249.54 290.84 561.91 407.70 330.95

西藏 2646.61 839.70 204.44 209.11 379.30 371.04 269.59 389.33

陜西 1472.95 390.89 447.95 259.51 230.61 490.90 469.10 191.34

甘肅 1525.57 472.98 328.90 219.86 206.65 449.69 249.66 228.19

青海 1654.69 437.77 258.78 303.00 244.93 479.53 288.56 236.51

寧夏 1375.46 480.89 273.84 317.32 251.08 424.75 228.73 195.93

新疆 1608.82 536.05 432.46 235.82 250.28 541.30 344.85 214.40

;

run;

2.假定相互獨立,得到特征向量

proc princomp

data = mylib.comp

out = mylib.changecomp

prefix = comp /*(具體數據分析過程只需要看數據,避免其他的干擾,改成代號名稱)*/

outstat = mylib.result

;

var x1-x8;

run ;

會得到以下結果:

除此之外,得到的changecomp表為:

得到的result表為:

3.快速得到主成分

首先我們需要知道主成分分析希望能夠達到什么樣的目的:

將多個指標轉換為少數幾個相互獨立的且包含原來指標大部分信息(一般是80%或85%)的綜合指標

假如你并不想知道各種結果的含義,只想知道那些是主成分,那其實只需要用到上面的“相關矩陣的特征值”表的最后兩列:比例和累積

累積從哪一行大于85%就行了;本實例是從第三行,因為這3個變量合起來解釋了原來8個變量87.81%的信息,能夠滿足要求。

4.詳細解讀各種表

表1:PRINCOMP 過程

31個觀測代表數據中的31個省份/直轄市;

8個變量代表最開始的8個成分

表2:簡單統計量

這個表也很簡單,均值x不用說,StD是標準差,即方差開個正根

表3:相關矩陣

相關系數又稱皮氏積矩相關系數(Pearson product-moment correlation coefficient,PPCC),就是我們高中統計學獨立檢驗時候的r值;

當r>0時,表示兩變量正相關,當r<0時,表示兩變量為負相關。當|r|=1時,表示兩變量為完全線性相關即函數關系。當r=1時,稱為完全正相關,而當r=-1時,稱為完全負相關。當r=0時,表示兩變量間無線性相關關系。

當︱r︱≥0.8時,可視為高度相關;當0.5≤︱r︱<0.8時,可視為中度相關;當0.3≤︱r︱<0.5時,視為低度相關;當︱r︱<0.3時,說明兩個變量之間的相關程度極弱。

本表里的x1與x5、x1與x8、x3與x6高度相關;x2與x7負相關

表4:相關矩陣的特征值

列1.特征值越大,表示對應的主成分變量包含的信息越多,對原始變量的解釋力度越強。

列2.相鄰兩行特征值之間的差值

列3.改行特征值/總特征值的和

列4.前面幾行的列3的和

(誤區:變量不是越多越好,否則不能達到降維的目的,一般等sqrt(num))

表5:特征向量

這個和特征值都是線性代數的內容,幸虧還是學過這門課。

對于同一個矩陣,特征值和特征向量是一一對應的;

A是矩陣,V就是特征向量,是特征值

對比本實例:

表3是A,表5的每一列是V,表4的特征值是

5.除此之外的一些東西


1.以comp1與comp2分布散點圖:(載荷圖)

proc plot

data=mylib.changecomp vpct=100;/*vpct后的數值表示圖所占頁面的長度*/

plot comp1*comp2 ='*'$ name/

/* ='*'表明圖中的散點用*表示,還可用#等*/

/*美元符號后寫標簽變量 name 代表每個點根據name變量命名*/

haxis=-3.5 to 3 by 0.5

HREF=-2,0,2 ? ? ?vaxis=-3 to 6 by 0.5

VREF=-2,0,2; ? ?/*HREF代表垂直于水平軸-2,0,2處畫參考線,VREF同理*/

title '主成分散點圖'

; ?/*title為結果命名。Plot:主成分散點圖,否則Plot:SAS系統*/

run;

2.changecomp表的comp變量是怎么來的

主成分變量是原始變量的線性表示,用公式表示如下:;

X表示原始變量對應數據組成的矩陣(以下稱為原始數據矩陣),U是特征向量以列向量形式依次排列組成的矩陣(以下稱為特征向量矩陣)。

但是這樣做有問題,原始數據還未標準化;

proc standard

data = mylib.comp

out = mylib.standard

mean = 0

std=1;

var x1-x8;

run ;

正確的公式應該是;

3.變量是否線性相關

proc corr

data = mylib.changecomp

out = mylib.compcorr

;

var comp1-comp8;

with comp1-comp8;

run ;

可以看出,主成分變量之間的相關系數都為零。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容