您現在的位置是:首頁 > 動漫首頁動漫

利用R語言進行主成分迴歸

由 一花視界 發表于 動漫2023-01-17
簡介53* X1' -0.55*X2‘ -0

如何用r語言求迴歸方程

在響應變數Y與p個解釋變數的迴歸模型中,當解釋變數間具有較強的多重共線性時,利用經典的迴歸方法求迴歸係數的最小二乘估計,一般效果較差。主成份迴歸的主要思想是首先透過主成分分析來精簡變數,將多個相關的原始變數指標轉化為幾個獨立的綜合指標,然後將其作為主成分的觀測值,並建立迴歸模型,以簡化迴歸方程的結構。

主成分迴歸可以解決變數間共線性的問題,但也給迴歸模型的解釋帶來一定的複雜性,因為主成分是原始變數的線性組合,不是直接觀測的變數,其含義有時不明確。在求得主成分迴歸方程後,經常又適用逆變換將其變為原始變數的迴歸方程。當原始變數間有較強的多重共線性,其主成分又有特殊的含義時,採用主成分迴歸的效果往往較好。

例題:

有學者認為,血清中低密度脂蛋白增高和高密度脂蛋白降低,是引起動脈硬化的一個重要原因。現測量了30名動脈硬化疑似患者的:x1:載脂蛋白AI,x2:載脂蛋白B,x3:載脂蛋白E,x4:載脂蛋白C,y1:低密度脂蛋白中的膽固醇含量,y2:高密度脂蛋白中的膽固醇含量。資料見下表,試對y2/y1對四阿哥解釋變數進行主成分迴歸。

利用R語言進行主成分迴歸

例題資料

1. 進行主成分分析

本例利用prcomp()函式進行主成分分析。

a=read。csv(“pcareg。csv”);b=data。frame(a[,1:4]);pca=prcomp(b,scale=T);summary(pca)

利用R語言進行主成分迴歸

主成分分析結果

主成分分析結果表明,前三個主成分可以解釋總變異的90。87%,因此本文取前三個主成分。

2. 主成分得分

呼叫主成分分析的得分,並將響應變數標準化。

reg。data=data。frame(pca$x[,1:3],y=scale(a[,7],scale=T));head(reg。data)

利用R語言進行主成分迴歸

主成分得分結果

3.主成分迴歸

pca。reg=lm(y~。,data=reg。data);summary(pca。reg)

利用R語言進行主成分迴歸

主成分迴歸結果

三個主成分的迴歸係數均達到顯著水平,其迴歸方程為: y‘=-0。386PC1+0。682PC2+0。312*PC3

4. 逆變換為原始變數的迴歸方程

①主成分載荷:

呼叫主成分分析的主成分載荷如下:

利用R語言進行主成分迴歸

主成分載荷

故前三個主城表示式為:

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’

②原始變數的均值和標準差:

求得原始變數的均值和標準差如下:

利用R語言進行主成分迴歸

均數和標準差

因此: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