y <- data
z <- factanal2(y,factors=1,rotation="varimax",scores="Bartlett",verbose=FALSE)
zloadings <- z$loadings
print(zloadings)
<実行結果>
Loadings:
Factor1
変数1 0.247
変数2 -0.720
変数3
変数4 0.690
Factor1
SS loadings 1.330
Proportion Var 0.333
No.03111 Re: 因子分析で表示がされない 【青木繁伸】 2007/04/03(Tue) 13:49
factanal2 は verbose=TRUE がデフォルトで,そのときには,結果は関数内部の cat により,整形出力されます。
verbose=FALSE では結果は自動的に表示されず,付値した変数の $* によって自分で出力しなければなりません。
しかし,注意しなければならないのは,factanal2 が返すオブジェクトは factanal と同じクラスを持つので,print すると,そのクラスに対応するメソッドが適用されます。
たとえば z$loadings は loading クラスをもつので,普通に print(z$loadings) を行うと実際には print.loadings(z$loadings) となります。
print.loadings は,デフォルトでは,絶対値が 0.1 未満の因子負荷量は表示しません(空白を表示します)。全ての因子負荷量が 0.1 未満なら(そのようなことは,非常にまれでしょうが),その因子には何も表示されないことになります。
print.loadings は,
> stats:::print.loadings
function (x, digits = 3, cutoff = 0.1, sort = FALSE, ...)
のような引数を持ちます(? print.loadings 参照)
print(x, cutoff=0) とすれば,全ての因子負荷量が表示できるでしょう。
注:print.loadings(x, cugoff=0) としないこと!
結構複雑な説明をしなくてはいけないので,verbose=TRUE をデフォルトにしてあるんです。
なお,R にあまりなじみがない場合には,プログラムを試行錯誤でいじらない方が良いと思います。うまく動いたように見えても,間違った答えを出すようにいじり壊すことがあるかもしれませんから。
No.03112 Re: 因子分析で表示がされない 【tajima】 2007/04/03(Tue) 14:32
青木先生,丁寧なご回答ありがとうございました。やはりまだ初心者で先生のプログラムの意味も分からずにいじるの は無理があったようです。少しずつでも頑張って勉強していきます。どうもありがとうございました。今後は試行錯誤ではやらずに「理解して」プログラムを組 んでいきたいです。
● 「統計学関連なんでもあり」の過去ログ--- 040 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る