-1

longley データの固有値とベクトルを使用して多重共線性を検出しています。SPSS から固有値を計算すると、R 言語とは異なる固有値が見つかりました。理由はわかりません。標準化された X 行列と実際の X 行列の両方を計算しましたが、結果が一致しません。

data(longley)
x<-as.matrix(longley[,-7])
e<-eigen(t(x)%*%x)

以下はR言語の結果です

$values
[1] 6.665299e+07 2.090730e+05 1.053550e+05 1.803976e+04 2.455730e+01
[6] 2.015117e+00

以下はSPSSの結果です

6.861392768154346
0.08210250361264278
0.04568078445788493
0.01068846567618869
1.29228130384155E-4
6.2463047077443345E-6
3.663846498908749E-9

考えられるコマンドエラーは何ですか? また、比例説明変動を計算する方法を教えてください。

4

2 に答える 2

1

固有値による共線性診断の場合、切片を含む X 行列を「元の行列のその列の元の値の二乗和の平方根で各元の値を除算することによって得られる」として、切片を含む X 行列を再スケーリングする必要があります。固有値を計算します。

そのRコードは

data (longley) 
X<-as.matrix(cbind(1,longley[,-7])) 
X <- apply(X, 2 , function(x) x/sqrt(sum(x^2))) 
eigen(t(X)%*%X) 

得られた値は、文献だけでなく他のソフトウェアと一致するようになりました。

于 2013-06-15T10:43:26.760 に答える