因子分析

統計処理 01 クラス : 第14回目(11/04/99)

今回は心理学の分野等でよく利用されている多変量解析手法として 因子分析を紹介する。

  1. 因子分析(Factor Analysis)

    前回は主成分分析を説明した。この手法は、 p変量(p次元)の観測値をm個(m次元)の主成分に縮約させる方法であった。 この意味では、因子分析も同じような方法であるのだが、 主成分分析の場合は、 データの散らばり方を捉えてデータ特性を把握する手法である。 今回説明する因子分析は、変数間に(潜在的な)構造を持ち込んで関係を探る手法である (少し理解しにくいかも)。
    この手法は心理学の分野で広く利用されている。

  2. 定式化 : 配布資料 195ページ〜

  3. [例題1]食品の嗜好性を探ってみよう : 200 ページ〜
    100種類の食品の性、年齢毎の嗜好度調査の結果 : データ : food.dat

    1. まずは因子数を決めよう : プログラム : les1401.sas

       /* Lesson 14-1 */
       /*    File Name = les1401.sas   11/04/99   */
      
      data food;                          :
        infile 'food.dat';                : ファイルの読み込み
        input X01-X10;                    : 変量リスト、連続的に
          label X01='M(-15)'              : 各変量に解りやすい名前を付ける
                X02='M(16-20)'            :   M : 男性
                X03='M(21-30)'            :   F : 女性
                X04='M(31-40)'            :  ()内 : 年齢
                X05='M(41-)'              :
                X06='F(-15)'              :
                X07='F(16-20)'            :
                X08='F(21-30)'            :
                X09='F(31-40)'            :
                X10='F(41-)';             :
                                          :
      proc print data=food(obs=10);       : データの表示
      run;                                :
      proc factor data=food;              : 因子分析
        var X01-X10;                      : 解析に使う変量リスト
      run;                                :
      
      • 出力結果 : les1401.out
        • 固有値 : 相関行列を用いた主成分分析の結果から
        • 因子数は2だと判断された : 固有値が1より大きい
        • 因子負荷量の推定値
        • 因子毎の分散の推定値
                                      SAS システム                             1
                                                16:05 Saturday, October 30, 1999
        
            OBS   X01   X02   X03   X04   X05   X06   X07   X08   X09   X10
        
              1  7.69  7.31  7.47  7.76  7.87  7.51  7.24  7.70  7.91  7.95
              2  6.59  5.56  6.21  6.04  5.81  6.64  6.11  6.53  6.44  6.64
              3  4.55  4.18  4.36  4.25  4.53  4.60  3.66  4.04  3.68  4.43
              4  6.78  6.11  6.30  5.98  5.56  6.37  6.29  5.43  5.32  5.28
              5  6.47  6.24  6.02  5.42  5.88  6.00  5.60  4.60  5.40  5.95
              6  6.96  6.81  6.91  6.48  6.23  7.09  7.27  7.13  6.86  7.36
              7  6.57  5.70  5.89  5.16  5.30  6.07  5.56  4.50  4.92  5.33
              8  7.32  6.95  6.02  4.98  4.88  6.82  6.40  5.53  5.61  5.33
              9  6.51  6.15  5.51  4.68  4.16  5.17  4.81  4.70  4.86  3.82
             10  6.86  6.05  5.85  6.14  6.75  6.71  5.39  5.42  6.03  6.59
        
                                      SAS システム                             2
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                          Prior Communality Estimates: ONE    
        
            Eigenvalues of the Correlation Matrix:  Total = 10  Average = 1
        
                               1           2           3           4           5
        Eigenvalue        6.8280      1.7619      0.7545      0.2624      0.1216
        Difference        5.0661      1.0074      0.4921      0.1408      0.0236
        Proportion        0.6828      0.1762      0.0754      0.0262      0.0122
        Cumulative        0.6828      0.8590      0.9344      0.9607      0.9728
        
                               6           7           8           9          10
        Eigenvalue        0.0980      0.0721      0.0441      0.0358      0.0219
        Difference        0.0259      0.0280      0.0083      0.0139
        Proportion        0.0098      0.0072      0.0044      0.0036      0.0022
        Cumulative        0.9826      0.9898      0.9942      0.9978      1.0000
        
                                      SAS システム                             3
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                 2 factors will be retained by the MINEIGEN criterion.
        
                                      SAS システム                             4
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                                     Factor Pattern
        
                                   FACTOR1   FACTOR2
        
                        X01        0.74741  -0.59244    M(-15)  
                        X02        0.86579  -0.31836    M(16-20)
                        X03        0.84491   0.22079    M(21-30)
                        X04        0.78216   0.47602    M(31-40)
                        X05        0.68129   0.67325    M(41-)  
                        X06        0.80647  -0.54140    F(-15)  
                        X07        0.89959  -0.33542    F(16-20)
                        X08        0.90901  -0.04289    F(21-30)
                        X09        0.90316   0.21817    F(31-40)
                        X10        0.79262   0.35477    F(41-)  
        
                                      SAS システム                             5
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                           Variance explained by each factor
        
                                     FACTOR1   FACTOR2
                                    6.827955  1.761873
        
        
                     Final Communality Estimates: Total = 8.589828
        
                          X01       X02       X03       X04       X05
                     0.909618  0.850950  0.762624  0.838371  0.917413
        
                          X06       X07       X08       X09       X10
                     0.943520  0.921775  0.828147  0.863298  0.754112
        
      • 因子数の決定
        • システムは2と判断
        • 固有値の変化量からすると、3 でも良さそう : 3と4の間が空いてる
        • 因子数を3として計算してみよう

    2. 因子数3で解析 : プログラム : les1402.sas

       /* Lesson 14-2 */
       /*    File Name = les1402.sas   11/04/99   */
      
      data food;
        infile 'food.dat';
        input X01-X10;
          label X01='M(-15)'
                X02='M(16-20)'
                X03='M(21-30)'
                X04='M(31-40)'
                X05='M(41-)'
                X06='F(-15)'
                X07='F(16-20)'
                X08='F(21-30)'
                X09='F(31-40)'
                X10='F(41-)';
      
      proc print data=food(obs=10);
      run;                                          :
      proc factor data=food nfactor=3 out=fscore;   : 因子数3、出力の保存
        var X01-X10;                                :
      run;                                          :
      proc plot data=fscore;                        :
        plot factor1*factor2/vref=0.0 href=0.0;     : 第1因子 x 第2因子、軸
        plot factor2*factor3/vref=0.0 href=0.0;     : 第2因子 x 第3因子、軸
      run;                                          :
      
      • 出力結果 : les1402.out
        • 固有値
        • 因子負荷量の推定値
        • 因子毎の分散の推定値
        • 共通性
        
                                      SAS システム                             3
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                  3 factors will be retained by the NFACTOR criterion.
        
                                      SAS システム                             4
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                                     Factor Pattern
        
                              FACTOR1   FACTOR2   FACTOR3
        
                   X01        0.74741  -0.59244   0.16808    M(-15)  
                   X02        0.86579  -0.31836   0.29190    M(16-20)
                   X03        0.84491   0.22079   0.38417    M(21-30)
                   X04        0.78216   0.47602   0.32604    M(31-40)
                   X05        0.68129   0.67325   0.11067    M(41-)  
                   X06        0.80647  -0.54140  -0.07270    F(-15)  
                   X07        0.89959  -0.33542  -0.14888    F(16-20)
                   X08        0.90901  -0.04289  -0.25110    F(21-30)
                   X09        0.90316   0.21817  -0.27989    F(31-40)
                   X10        0.79262   0.35477  -0.45389    F(41-)  
        
                                      SAS システム                             5
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                           Variance explained by each factor
        
                                FACTOR1   FACTOR2   FACTOR3
                               6.827955  1.761873  0.754451
        
        
                     Final Communality Estimates: Total = 9.344279
        
                          X01       X02       X03       X04       X05
                     0.937870  0.936157  0.910210  0.944673  0.929662
        
                          X06       X07       X08       X09       X10
                     0.948805  0.943939  0.891197  0.941637  0.960129
        
        
                                      SAS システム                             6
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                      Scoring Coefficients Estimated by Regression
        
            Squared Multiple Correlations of the Variables with each Factor
        
                                FACTOR1   FACTOR2   FACTOR3
                               1.000000  1.000000  1.000000
        
                                      SAS システム                             7
                                                16:05 Saturday, October 30, 1999
        
        Initial Factor Method: Principal Components
        
                           Standardized Scoring Coefficients
        
                              FACTOR1   FACTOR2   FACTOR3
        
                   X01        0.10946  -0.33626   0.22279    M(-15)  
                   X02        0.12680  -0.18069   0.38691    M(16-20)
                   X03        0.12374   0.12531   0.50920    M(21-30)
                   X04        0.11455   0.27018   0.43215    M(31-40)
                   X05        0.09978   0.38212   0.14670    M(41-)  
                   X06        0.11811  -0.30729  -0.09636    F(-15)  
                   X07        0.13175  -0.19038  -0.19733    F(16-20)
                   X08        0.13313  -0.02434  -0.33282    F(21-30)
                   X09        0.13227   0.12383  -0.37099    F(31-40)
                   X10        0.11609   0.20136  -0.60162    F(41-)  
        
                                      SAS システム                             8
                                                16:05 Saturday, October 30, 1999
        
              プロット : FACTOR1*FACTOR2.  凡例: A = 1 OBS, B = 2 OBS, ...
        
              5 +                                     |
                |                                     |
        FACTOR1 |                                     |
                |                        A        A   |A       B   A
                |               A     A  A AA  BBA  AAADA  BB   A AA   A A A
              0 +----A-------A----AAB--AAA----ACA---BABAAA-B--AAAAA--AA-A--A--A-
                |             A   AA  A A  A  A A A A | ABAAABB  BA  A  A   A
                |                     A         A  A  |       A       A
                |                                     |    A
                |                                     |
             -5 +                                     |
                --+-----------+-----------+-----------+-----------+-----------+-
                 -3          -2          -1           0           1           2
        
                                             FACTOR2
        
                                      SAS システム                             9
                                                16:05 Saturday, October 30, 1999
        
              プロット : FACTOR2*FACTOR3.  凡例: A = 1 OBS, B = 2 OBS, ...
        
        FACTOR2 |                     |
            2.5 +                     |
                |         A A   A  A  | AC                A     A    A
                |    AA   ABA ADABA AB|  B  A    AA  AA      A
            0.0 +---BA----AAAA-CBA--A-+-ECB-A------A----A--------A--------------
                |          A  A BAA ABB AB  AABAB
                |            B  AA B AAAAA    A                 A
           -2.5 +                     |     A
                |                     |
                |                     |
           -5.0 +                     |
                --+---------+---------+---------+---------+---------+---------+-
                 -2        -1         0         1         2         3         4
        
                                             FACTOR3
        
      • 解釈
        • 因子の特徴付け :
        • 第1因子 : 全体的な嗜好
        • 第2因子 : 年齢効果
        • 第3因子 : 性別効果
        • 各個体の散布図 : 第2因子と第3因子の関係が面白い

    3. 回転させてみよう : プログラム : les1403.sas

       /* Lesson 14-3 */
       /*    File Name = les1403.sas   11/04/99   */
      
      data food;
        infile 'food.dat';
        input X01-X10;
          label X01='M(-15)'
                X02='M(16-20)'
                X03='M(21-30)'
                X04='M(31-40)'
                X05='M(41-)'
                X06='F(-15)'
                X07='F(16-20)'
                X08='F(21-30)'
                X09='F(31-40)'
                X10='F(41-)';
      
      proc print data=food(obs=10);
      run;
      proc factor data=food nfactor=3 rotate=varimax out=fscore2;
        var X01-X10;                                : 回転の指定
      run;                                          :
      proc print data=fscore2;
      run;
      proc plot data=fscore2;
        plot factor1*factor2/vref=0.0 href=0.0;
        plot factor2*factor3/vref=0.0 href=0.0;
        plot factor3*factor1/vref=0.0 href=0.0;
      run;
      
      
                                    SAS システム                             6
                                              11:40 Thursday, November 4, 1999
      
      Rotation Method: Varimax
      
                          Orthogonal Transformation Matrix
      
                                     1         2         3   
      
                           1      0.65751   0.53576   0.52976
                           2     -0.73452   0.61238   0.29234
                           3      0.16779   0.58134  -0.79617
      
                                    SAS システム                             7
                                              11:40 Thursday, November 4, 1999
      
      Rotation Method: Varimax
      
                               Rotated Factor Pattern
      
                            FACTOR1   FACTOR2   FACTOR3
      
                 X01        0.95480   0.13534   0.08893    M(-15)  
                 X02        0.85209   0.43859   0.13319    M(16-20)
                 X03        0.45782   0.81121   0.20628    M(21-30)
                 X04        0.21933   0.90009   0.29393    M(31-40)
                 X05       -0.02799   0.84163   0.46962    M(41-)  
                 X06        0.91574   0.05827   0.32684    F(-15)  
                 X07        0.81289   0.19001   0.49704    F(16-20)
                 X08        0.58706   0.31477   0.66894    F(21-30)
                 X09        0.38662   0.45477   0.76508    F(31-40)
                 X10        0.18442   0.37804   0.88499    F(41-)  
      
                                    SAS システム                             8
                                              11:40 Thursday, November 4, 1999
      
      Rotation Method: Varimax
      
                         Variance explained by each factor
      
                              FACTOR1   FACTOR2   FACTOR3
                             3.923686  2.875550  2.545044
      
      
                   Final Communality Estimates: Total = 9.344279
      
                        X01       X02       X03       X04       X05
                   0.937870  0.936157  0.910210  0.944673  0.929662
      
                        X06       X07       X08       X09       X10
                   0.948805  0.943939  0.891197  0.941637  0.960129
      
                                    SAS システム                             9
                                              11:40 Thursday, November 4, 1999
      
      Rotation Method: Varimax
      
                    Scoring Coefficients Estimated by Regression
      
          Squared Multiple Correlations of the Variables with each Factor
      
                              FACTOR1   FACTOR2   FACTOR3
                             1.000000  1.000000  1.000000
      
                                    SAS システム                            10
                                              11:40 Thursday, November 4, 1999
      
      Rotation Method: Varimax
      
                         Standardized Scoring Coefficients
      
                            FACTOR1   FACTOR2   FACTOR3
      
                 X01        0.35634  -0.01776  -0.21769    M(-15)  
                 X02        0.28101   0.18221  -0.29369    M(16-20)
                 X03        0.07475   0.43906  -0.30323    M(21-30)
                 X04       -0.05062   0.47805  -0.20440    M(31-40)
                 X05       -0.19046   0.37274   0.04777    M(41-)  
                 X06        0.28720  -0.18091   0.04945    F(-15)  
                 X07        0.19335  -0.16071   0.17125    F(16-20)
                 X08        0.04957  -0.13707   0.32839    F(21-30)
                 X09       -0.06623  -0.06897   0.40164    F(31-40)
                 X10       -0.17252  -0.16424   0.59935    F(41-)  
      
                                    SAS システム                            11
                                              11:40 Thursday, November 4, 1999
      
        OBS     X01     X02     X03     X04     X05     X06     X07     X08
      
          1    7.69    7.31    7.47    7.76    7.87    7.51    7.24    7.70
          2    6.59    5.56    6.21    6.04    5.81    6.64    6.11    6.53
          3    4.55    4.18    4.36    4.25    4.53    4.60    3.66    4.04
          4    6.78    6.11    6.30    5.98    5.56    6.37    6.29    5.43
          5    6.47    6.24    6.02    5.42    5.88    6.00    5.60    4.60
          6    6.96    6.81    6.91    6.48    6.23    7.09    7.27    7.13
      
        OBS     X09     X10     FACTOR1     FACTOR2     FACTOR3
      
          1    7.91    7.95     0.66848     1.82089     1.58151
          2    6.44    6.64     0.16753    -0.19985     1.19223
          3    3.68    4.43    -1.03317    -1.44074    -0.47196
          4    5.32    5.28     0.63828     0.22675    -0.50040
          5    5.40    5.95     0.18212     0.09192    -0.20819
          6    6.86    7.36     0.74098     0.36705     1.34820
      (略)
      
      
                                    SAS システム                            27
                                              11:40 Thursday, November 4, 1999
      
        OBS     X01     X02     X03     X04     X05     X06     X07     X08
      
         97    7.81    7.31    6.93    7.42    6.60    8.10    7.56    7.79
         98    8.29    7.45    7.00    6.76    6.69    8.14    7.09    6.83
         99    7.20    6.42    6.23    5.92    5.91    6.98    6.44    6.04
        100    7.62    7.33    6.91    6.90    6.47    7.33    6.69    7.23
      
        OBS     X09     X10    FACTOR1     FACTOR2     FACTOR3
      
         97    7.82    7.67    1.18227     0.72902     1.67725
         98    6.83    7.13    1.41828     0.79855     0.65451
         99    6.14    6.02    0.78541     0.01100     0.33576
        100    6.79    6.70    1.06526     0.90338     0.58077
      
                                    SAS システム                            28
                                              11:40 Thursday, November 4, 1999
      
            プロット : FACTOR1*FACTOR2.  凡例: A = 1 OBS, B = 2 OBS, ...
      
            2 +               A               |  A
              |               A    AA    A  A |  A    A
      FACTOR1 |                    A   AA     |A A A A A
              |          A        B      AA  AB B C A      A  A A       A
              |             A          A A B  |  A AA   A A   A
            0 +-----------------A-A---------B-+AA-AA--A-AA--------------------
              |              A         B AA AA| A        A    A A  A
              |                     A   AA   A|A  C    AA
              |             A A AA   A AA B   |   A    A               A
              |               A            A  |   AA        A
           -2 +                   A   A      A|           A
              --+---------+---------+---------+---------+---------+---------+-
               -3        -2        -1         0         1         2         3
      
                                           FACTOR2
      
                                    SAS システム                            29
                                              11:40 Thursday, November 4, 1999
      
            プロット : FACTOR2*FACTOR3.  凡例: A = 1 OBS, B = 2 OBS, ...
      
      FACTOR2 |                                         |
            4 +                                         |
              |                                         |
              |                  A               A      |
            2 +                              A          |       A       A
              |             A                AA  A      | AAA  A    A A
              |       A       A          A  A   A  AAA  |ABB  BAB    A B AA
            0 +--------------------------A------B--D--AA+ACB-AAABAB-A---------
              |                         A A   AAA    A C| BA  BA C A  A
              |                           A  A     CA A | A B  AB  A
           -2 +                          A       A  AA  |
              --+---------+---------+---------+---------+---------+---------+-
               -4        -3        -2        -1         0         1         2
      
                                           FACTOR3
      
                                    SAS システム                            30
                                              11:40 Thursday, November 4, 1999
      
            プロット : FACTOR3*FACTOR1.  凡例: A = 1 OBS, B = 2 OBS, ...
      
      FACTOR3 |                                     |
          2.5 +                                     |
              |                       A   B         |A      BA    A
              |              A     BABA A C   ABBAA AAA    AB    A   A A    A
          0.0 +-------------A-----BA-A-AAA---A--A-A-+-BAAC-AABAA-A--AC-AA-----
              |               A        AA A A  A B B|   B A ABBB A AA
              |                          A       A  |A    AA               A
         -2.5 +              A      A               |            A
              |                   A                 |
              |                                     |
         -5.0 +                                     |
              --+-----------+-----------+-----------+-----------+-----------+-
               -3          -2          -1           0           1           2
      
                                           FACTOR1
      
      • 解釈
        • 因子の特徴付け :
        • 第1因子 : 若年層の嗜好
        • 第2因子 : 成人男性の嗜好
        • 第3因子 : 成人女性の嗜好
        • 各個体の散布図 : 各因子間の関係が面白い、各個体の具体的な位置を把握

  4. [例題2]趣味の特性を探ってみよう : 193 ページ
    30種類の趣味の性、年齢毎の特性調査の結果 : データ : syumi.dat

     /* Lesson 14-4 */
     /*    File Name = les1404.sas   11/04/99   */
    
    data hobby;
      infile 'syumi.dat';
      input code $ X1-X6;
        label X1='M(-29)'
              X2='M(30-49)'
              X3='M(50-)'
              X4='F(-29)'
              X5='F(30-49)'
              X6='F(50-)';
    
    proc print data=hobby(obs=10);
    run;
    proc factor data=hobby nfactor=2 out=fscore;
      var X1-X6;
    run;
    proc plot data=fscore;                           : 回転前
      plot factor1*factor2=code/vref=0.0 href=0.0;   : コード化した記号
    run;                                             :
    proc factor data=hobby nfactor=2 rotate=varimax out=fscore2;
      var X1-X6;
    run;
    proc plot data=fscore2;                          : 回転後
      plot factor1*factor2=code/vref=0.0 href=0.0;   : コード化した記号
    run;                                             :
    

  5. 因子数の決定基準

  6. 因子分析の解釈

  7. 次回は、... : 11月11日 14:45
[DIR]講義のホームページへ戻ります