データセットUSArresstsを使用してprincomp()
とprincipal()
を使用してRでPCAを実行しようとしました。しかし、ローディング/ローテーションとスコアの2つの異なる結果が得られました。princomp()とprincipal()でRでPCAを実行すると異なる結果
まず、元のデータフレームを中央に置き、正規化して、出力を比較しやすくしました。
princompPCA$loadings
principalPCA$loadings
あなたは差がある理由を説明するために私を助けてくださいでした:
library(psych)
trans_func <- function(x){
x <- (x-mean(x))/sd(x)
return(x)
}
A <- USArrests
USArrests <- apply(USArrests, 2, trans_func)
princompPCA <- princomp(USArrests, cor = TRUE)
principalPCA <- principal(USArrests, nfactors=4 , scores=TRUE, rotate = "none",scale=TRUE)
は、それから私は、次のコマンドを使用して負荷とスコアの結果を得ましたか。これらの結果をどのように解釈できますか?
"原則として、princompとは異なり、これは最良のnfactorのサブセットを返します。" – chinsoon12
さらに、回帰重みは、相関行列の逆数と成分負荷の積で求められます。これは、コンポーネントスコアが標準化された入力の標準スコア(平均= 0、sd = 1)であるという結果をもたらします。 princompのスコアはこの違いを示していますが、princompはデフォルトではデータマトリックスを標準化しておらず、コンポーネント自身も標準化されていません。 – chinsoon12