関数内の固有ベクトルの符号は、引数eigen
の指定によって変わります。symmetric
次の例を検討してください。
set.seed(1234)
data <- matrix(rnorm(200),nrow=100)
cov.matrix <- cov(data)
vectors.1 <- eigen(cov.matrix,symmetric=TRUE)$vectors
vectors.2 <- eigen(cov.matrix,symmetric=FALSE)$vectors
#The second and third eigenvectors have opposite sign
all(vectors.1 == vectors.2)
FALSE
これは主成分分析にも影響を与えます。これは、関数が に設定された関数をprincomp
使用して共分散行列の固有ベクトルを計算するように見えるためです。eigen
symmetric
TRUE
pca <- princomp(data)
#princomp uses vectors.1
pca$loadings
Loadings:
Comp.1 Comp.2
[1,] -0.366 -0.931
[2,] 0.931 -0.366
Comp.1 Comp.2
SS loadings 1.0 1.0
Proportion Var 0.5 0.5
Cumulative Var 0.5 1.0
vectors.1
[,1] [,2]
[1,] -0.3659208 -0.9306460
[2,] 0.9306460 -0.3659208
誰かが不一致の背後にあるソースまたは理由を説明できますか?