您現在的位置是:首頁 > 動漫首頁動漫
利用R語言進行主成分迴歸
如何用r語言求迴歸方程
在響應變數Y與p個解釋變數的迴歸模型中,當解釋變數間具有較強的多重共線性時,利用經典的迴歸方法求迴歸係數的最小二乘估計,一般效果較差。主成份迴歸的主要思想是首先透過主成分分析來精簡變數,將多個相關的原始變數指標轉化為幾個獨立的綜合指標,然後將其作為主成分的觀測值,並建立迴歸模型,以簡化迴歸方程的結構。
主成分迴歸可以解決變數間共線性的問題,但也給迴歸模型的解釋帶來一定的複雜性,因為主成分是原始變數的線性組合,不是直接觀測的變數,其含義有時不明確。在求得主成分迴歸方程後,經常又適用逆變換將其變為原始變數的迴歸方程。當原始變數間有較強的多重共線性,其主成分又有特殊的含義時,採用主成分迴歸的效果往往較好。
例題:
有學者認為,血清中低密度脂蛋白增高和高密度脂蛋白降低,是引起動脈硬化的一個重要原因。現測量了30名動脈硬化疑似患者的:x1:載脂蛋白AI,x2:載脂蛋白B,x3:載脂蛋白E,x4:載脂蛋白C,y1:低密度脂蛋白中的膽固醇含量,y2:高密度脂蛋白中的膽固醇含量。資料見下表,試對y2/y1對四阿哥解釋變數進行主成分迴歸。
例題資料
1. 進行主成分分析
本例利用prcomp()函式進行主成分分析。
a=read。csv(“pcareg。csv”);b=data。frame(a[,1:4]);pca=prcomp(b,scale=T);summary(pca)
主成分分析結果
主成分分析結果表明,前三個主成分可以解釋總變異的90。87%,因此本文取前三個主成分。
2. 主成分得分
呼叫主成分分析的得分,並將響應變數標準化。
reg。data=data。frame(pca$x[,1:3],y=scale(a[,7],scale=T));head(reg。data)
主成分得分結果
3.主成分迴歸
pca。reg=lm(y~。,data=reg。data);summary(pca。reg)
主成分迴歸結果
三個主成分的迴歸係數均達到顯著水平,其迴歸方程為: y‘=-0。386PC1+0。682PC2+0。312*PC3
4. 逆變換為原始變數的迴歸方程
①主成分載荷:
呼叫主成分分析的主成分載荷如下:
主成分載荷
故前三個主城表示式為:
PC1=-0。272 X1’+0。526 X2‘+0。636 X3’+0。494 X4‘
PC2=0。826 X1’-0。155 X2‘+0。065 X3’+0。537 X4‘
PC3=-0。441 X1’-0。774 X2‘+0。107 X3’+0。442 X4‘
X1’,X2‘,X3’,X4‘為標準化的解釋變數。 將以上關係式帶入迴歸方程得: y’ = 0。53*
X1' -0.55*
X2‘ -0。17*X3 +0。31*X4’
②原始變數的均值和標準差:
求得原始變數的均值和標準差如下:
均數和標準差
因此:X1‘=(X1-153)/23。76;X2’=(X2-125。33)/18。38;X3‘=(X3-8。08)/2。16;X4’=(X4-20。35)/6。97
將以上關係式帶入PC的關係式得迴歸方程: y = -11。003+ 0。020*x1 - 0。030*x2 -0。078*x3 + 0。045*x4