2017-07-18 7 views
1

後の次元数は、私は900例と3600個の変数(例えば、#1を参照)とのデータセットを持っています。私はprcompを使ってPCAを行った(例#3参照)。その後#3で回転します。主成分分析:減速回転

data <- as.data.frame(replicate(3600, rnorm(900))); #1 
pca <- prcomp(data, center = TRUE, scale. = TRUE) ; #2 
rot <- as.matrix(data) %*% pca$rotation; #3 

腐敗の次元は900x900ですが、900x3600でなければなりません。なぜこれが起こるのですか?

ベスト、 Thosten

答えて

0

私は単に変数とすべてのものよりもより多くの例を追加しました正常に動作します。 princomp()は実際にはこれをユーザーに強制しますが、prcomp()は実行しません。

ベスト、 トールステン

0

%*%が与えられた第1の行列の行番号に基づいて、行列は「適合」になりように見えます:

乗算二つの行列を、彼らは適合している場合。 1つの引数が ベクトルの場合、行または列のいずれかの行列に強制的に変換され、 の2つの引数が適合します。

dim(as.matrix(data) %*% pca$rotation) # 900 x 900 
dim(pca$rotation %*% as.matrix(data)) # 3600 x 3600 

あなたは彼らに同じ寸法を与えることtranspose(または類似したもの)を使用することができます:たとえば

rot <- as.matrix(data) %*% t(pca$rotation); 
関連する問題