きわめて個人的なR言語のメモ

2004-09-29Rで因子分析その6 最尤法で因子分析

今度は最尤法の斜交回転(プロマックス)で因子分析をしてみましょう。

主因子法のときと同じようにデータを読み込みます。

baseball <- read.csv("C:/R/data/data.csv")
attach (baseball)
baseball[[1]] <- NULL

次に、青木先生作られた最尤法での因子分析用関数“factanal2”を使います。

ここでは因子の数を3個に決めて分析します。また、因子得点も回帰法で求めます。

factanal2(baseball,factors=3,scores="regression")

アウトプットは整形されて出てきます。

[1] H0: 3 factors are sufficient.
   Chi sq.       d.f.    P value 
35.0058400 25.0000000  0.0880976 
[1] Factor loadings(rotation:promax)
                Factor1     Factor2    Factor3 Communality
試合数       0.08692896  0.61345987  0.1618269  0.41007759
安打         0.13100079  0.79228560  0.3577115  0.77283520
二塁打      -0.10197822  0.29937034  0.8626870  0.84425105
三塁打      -0.42225483  0.26920935 -0.1534471  0.27431883
本塁打       0.92100110  0.03529310 -0.1251296  0.86514604
三振         0.59384076  0.24216411 -0.4478380  0.61184920
四球         0.47323091  0.04773030 -0.1017807  0.23658499
死球         0.31730815  0.05930770  0.2077376  0.14735678
犠打        -0.66492790 -0.01359067 -0.1065619  0.45366926
犠飛        -0.01606036  0.06812931  0.2237036  0.05494284
盗塁        -0.44385786  0.58826249 -0.1466628  0.56457252
SS.loadings  2.37833522  1.58270947  1.2745596  5.23560430
Proportion  21.62122926 14.38826790 11.5869056 47.59640275
Cum.Prop.   21.62122926 36.00949715 47.5964028          NA
[1] Factor scores(regression)
    
         Factor1     Factor2     Factor3
  1   0.82284220  1.19656161 -0.20089422
  2   0.89770074  0.37227000  0.61553463
  3  -0.02846898 -0.57487912 -0.98405791
(以下省略)

んー、p値が0.088と0.05を越えています。モデルとしていまいちのようですね。

(あ、因子間の相関係数は出力されないのか……)

特定の因子に対する負荷量や共通性から見て「犠飛」は分析から除外した方が良さそうです。

baseball[[10]] <- NULL

として、「犠飛」を削除しました。

続けて再度分析をしましょう。

factanal2(baseball,factors=3,scores="regression")

結果はこうなります。

[1] H0: 3 factors are sufficient.
    Chi sq.        d.f.     P value 
31.48900855 18.00000000  0.02525308 
[1] Factor loadings(rotation:promax)
               Factor1     Factor2      Factor3 Communality
試合数       0.1735365  0.59466957  0.126250862   0.3996861
安打         0.1252477  0.87842045  0.035327756   0.7885575
二塁打      -0.1964831  0.53849450 -0.543264388   0.6237181
三塁打       0.5879066  0.11238270  0.009059499   0.3583461
本塁打      -0.6823296  0.08378079  0.535535746   0.7593914
三振        -0.1207402  0.09961408  0.706445446   0.5235663
四球        -0.3057383  0.02804047  0.337839583   0.2083978
死球        -0.3496064  0.15590027  0.005603665   0.1465609
犠打         0.6102822 -0.13434296 -0.234661543   0.4455584
盗塁         0.7703390  0.39772686  0.090372922   0.7597761
SS.loadings  2.0917607  1.64612862  1.275669593   5.0135589
Proportion  20.9176069 16.46128620 12.756695933  50.1355891
Cum.Prop.   20.9176069 37.37889313 50.135589060          NA
[1] Factor scores(regression)
    
         Factor1     Factor2      Factor3
  1   0.03886573  1.28682950  0.784845204
  2  -0.89193362  0.59099874  0.050250995
  3   0.20394105 -0.70609811  0.418533208
(以下省略)

p値が0.025と0.05を切っています。悪くないモデルのようです。

因子負荷量を書き直すと

因子1 因子2 因子3

盗塁 0.77 0.40 0.09

本塁打 -0.68 0.08 0.54

犠打 0.61 -0.13 -0.23

三塁打 0.59 0.11 0.01

死球 -0.35 0.16 0.01

安打 0.13 0.88 0.04

試合数 0.17 0.59 0.13

三振 -0.12 0.10 0.71

二塁打 -0.20 0.54 -0.54

四球 -0.31 0.03 0.34

この因子の名前を付けるとすると、因子1は盗塁が多くホームランは少ない「ランナー因子」、因子2はヒットを多く打つ「アベレージヒッター因子」、因子3はホームランが多い反面三振は多い「パワーヒッター因子」といったところでしょうか。

通行人通行人2005/07/01 15:16因子数のP値は,帰無仮説が「その因子数で十分」ということであることに注意。
試合数を一緒に分析することは問題があるのでは?また,試合数で割った値を分析する方がよいのではないでしょうか。

トラックバック - http://r-user.g.hatena.ne.jp/bob3/20040929