No.16456 主成分得点  【あやさや】 2012/02/18(Sat) 23:10

初心者です。
同じデータベースを使って,Blackboxで主成分分析(varimax回転)した場合の主成分得 点と,R上で青木先生が作成されたprcomp2(pcs=0, cor=TRUE)で求めた主成分得点は値が異なるのですが,これはなぜでしょうか。計算方法が違うのでしょうか。
また,psychパッケージのprincipal(varimax回転)で求めた主成分得点はさらに前述の2例とは大きく異なります。
blackboxで求めた主成分得点をR上でも再現したいと思い,このような事をしているのですが,自分で主成分得点を求める関数を作ったほうがよいでしょうか。

No.16459 Re: 主成分得点  【青木繁伸】 2012/02/19(Sun) 09:58

> prcomp2(pcs=0, cor=TRUE)で求めた主成分得点は値が異なる

バリマックス回転しないからでしょう。BlackBox でも rotation=none を指定すると,prcomp2 と同じになるでしょう。

> psychパッケージのprincipal(varimax回転)で求めた主成分得点はさらに前述の2例とは大きく異なります。

psych の主成分得点は平均値=0,分散=1に正規化されています。prcomp, prcomp2, BlackBox では,平均=0,分散=固有値に正規化されています(こちらの方が普通)。

> 自分で主成分得点を求める関数を作ったほうがよいでしょうか。

どのプログラムがどのように計算しているかを確認し(文書化されていなければ,自分で調べる(平均値,分散を求めて見るとか,プログラムを読むとか),どれも自分の望むものでなければ作るしかないでしょう。

それぞれのプログラムは,それぞれの意図・考え方に基づいて作られているので,それが必ずしも利用者と一致しないことは往々にしてあります。
例えば,psych の principal のオンラインヘルプの一部に,
It is important to recognize that rotated principal components are not principal components (the axes associated with the eigen value decomposition) but are merely components. To point this out, unrotated principal components are labelled as PCi, while rotated PCs are now labeled as RCi (for rotated components) and obliquely transformed components as TCi (for transformed components). (Thanks to Ulrike Gromping for this suggestion.)
というような記述があったりします。

No.16473 Re: 主成分得点  【あやさや】 2012/02/20(Mon) 00:34

ご教示ありがとうございます。
Blackboxで回転なしで主成分分析してみたところ,主成分得点がprcomp2で求めた値と一致する(ただし符号は逆になるものがありますが)ことを確認いたしました。

No.16474 Re: 主成分得点  【青木繁伸】 2012/02/20(Mon) 07:23

> ただし符号は逆になるものがありますが

主成分単位で符号が完全に入れ替わるのは何の問題もないことです。

● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る