主成分分析

統計解析 01 クラス : 第12回(07/03/03)

  1. 主成分分析(Principal Component Analysis, PCA)

    いくつか(p個)の変量の値を情報の損失をできるだけ少なくして、 少数変量(m個、m<p)の総合的指標(主成分)で代表させる方法である。 いくつかのテストの成績を総合した総合的成績、 いろいろな症状を総合した総合的な重症度、 種々の財務指標に基づく企業の評価 等を求めたいといった場合に用いられる。
    p変量(p次元)の観測値をm個(m次元)の主成分に縮約させるという意味で、 次元を減少させる方法と言うこともでき、 多変量データを要約する一つの有力な方法である。

  2. 2変量の場合の主成分分析 : 理解を助けるため
    1. 定式化 : 配布資料 54ページ〜
      • 重み(係数) : a1、a2
      • 合成変量(線形結合) : z
      • よく代表するように、a1 と a2 を決める。
      • より広がって測定できる軸が情報量が多い。
      • 全測定値の分散を最大化する軸を決定する。

    2. 身長と体重の総合指標を求めよう : プログラム : les1201.sas

       /* Lesson 12-1 */
       /*    File Name = les1201.sas   10/17/02   */
      
      data gakusei;
        infile 'all03a.prn' firstobs=2;
        input sex $ height weight chest 
              jitaku $ kodukai carrier $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc plot data=gakusei;                        : 散布図
        plot height*weight;                          : 元の変量のプロット
      run;                                           :
      proc princomp cov data=gakusei out=outprin;    : 主成分分析(分散共分散行列)
        var height weight;                           : 2変量
      run;                                           :
      proc print data=outprin(obs=15);               : 結果の出力
      run;                                           :
      proc plot data=outprin;                        : 散布図
        plot prin2*prin1/vref=0 href=0;              : 主成分得点のプロット
      run;                                           :
      proc sort data=outprin;                        : 説明のためにソートしてみる
        by prin1;                                    : 第一主成分で
      run;                                           :
      proc print data=outprin;                       : 体重がややが効いていることの確認
      run;                                           :
      

    3. 出力結果 : les1201.lst
      • 身長と体重の散布図
      • 各変量の平均、標準偏差、分散共分散行列
      • 固有値、比率(寄与率)、累積寄与率 : 解釈に使う
      • 固有ベクトル(係数a1とa2) : 解釈に使う
      • 主成分得点 : 各個人の得点(z)、2つある
      • 第1軸と第2軸の主成分得点の散布図
                                    SAS システム                             2
                                                 05:40 Thursday, June 26, 2003
      
             プロット : HEIGHT*WEIGHT.  凡例: A = 1 OBS, B = 2 OBS, ...
                   (NOTE: 33 オブザベーションが欠損値です.)
           HEIGHT |
              200 +
                  |
                  |                               B       A
              180 +                       A ADCDDCACA A B      A     A
                  |                    AABDJHQMGFCCDCB BA
                  |                  AD GHEDDCBBDAA  A        A
              160 +                ADBCBGCCAABB
                  |           A   D  DCAA A   A
                  |             A AAA
              140 +
                  ---+-----------+-----------+-----------+-----------+--
                    20          40          60          80          100
                                          WEIGHT
      
                                    SAS システム                             3
                                                 05:40 Thursday, June 26, 2003
      
                            Principal Component Analysis
           219 Observations
             2 Variables
                                 Simple Statistics
      
                                      HEIGHT            WEIGHT
      
                      Mean       168.9753425       58.93059361
                      StD          7.9055511        9.14179459
      
                                    SAS システム                             4
                                                 05:40 Thursday, June 26, 2003
      
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                                       HEIGHT            WEIGHT
      
                     HEIGHT       62.49773784       50.81167525
                     WEIGHT       50.81167525       83.57240836
      
                            Total Variance = 146.0701462
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         124.928         103.786        0.855259         0.85526
       PRIN2          21.142            .           0.144741         1.00000
      
                                    SAS システム                             5
                                                 05:40 Thursday, June 26, 2003
      
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                        PRIN1         PRIN2
      
                         HEIGHT      0.631245      0.775584
                         WEIGHT      0.775584      -.631245
      
                                    SAS システム                             6
                                                 05:40 Thursday, June 26, 2003
      
                                      K    C
                 H      W       J     O    A          T
                 E      E    C  I     D    R          S        P         P
                 I      I    H  T     U    R          U        R         R
        O   S    G      G    E  A     K    I          U        I         I
        B   E    H      H    S  K     A    E          W        N         N
        S   X    T      T    T  U     I    R          A        1         2
      
         1  F  145.0  38.0   .  J   10000               .  -31.3677  -5.38255
         2  F  148.0  42.0   .  J   50000               .  -26.3717  -5.58078
         3  F  148.0  43.0  80  J   50000  DoCoMo    4000  -25.5961  -6.21202
         4  F  148.9    .    .  J   60000               .     .        .     
         5  F  149.0  45.0   .  G   60000               .  -23.4137  -6.69893
         6  F  150.0  46.0  86      40000               .  -22.0068  -6.55459
         7  F  151.7  41.5  80  J   35000               .  -24.4239  -2.39550
         8  F  152.0  35.0  77  J   60000  DoCoMo    2000  -29.2758   1.94027
         9  F  153.0  41.0   .  J  125000  No           .  -23.9910  -1.07162
        10  F  153.0  46.5  87  G   10000               .  -19.7253  -4.54346
      
                                    SAS システム                             8
                                                 05:40 Thursday, June 26, 2003
      
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 33 オブザベーションが欠損値です.)
          PRIN2 |                            |
             10 +                           A|  A AAA
                |                     AA AAA AABAAAACA  B
                |         A       BAB C BEBDEEDDHDCAAD  A
              0 +------------A-BA-A-BB-IABDAEEEFCCABCA-C--A-----A---------
                |            A  C BB A C A  AABBDCAADA A
                |        A  B AA  AA A A A BBAAB  AAAA  AAC
            -10 +                   A    A   |      AA            A
                |                            |
                |                            |
            -20 +                            |              A        A
                ---+------------+------------+------------+------------+--
                  -40          -20           0           20           40
                                           PRIN1
      
                                    SAS システム                             9
                                                 05:40 Thursday, June 26, 2003
      
       OBS SEX HEIGHT WEIGHT CHEST JITAKU KODUKAI CARRIER TSUUWA PRIN1 PRIN2
      
         1  F   148.9    .     .     J      60000             .    .     .  
         2  F   155.0    .     .     J      20000             .    .     .  
         3  F   156.0    .     .     J      30000             .    .     .  
         4  F   156.0    .     .     J      50000             .    .     .  
         5  F   156.0    .     .     G          .             .    .     .  
      <略>
      
                                    SAS システム                            33
                                                 05:40 Thursday, June 26, 2003
      
                                            K  C
                   H      W         J       O  A     T
                   E      E     C   I       D  R     S      P         P
                   I      I     H   T       U  R     U      R         R
          O   S    G      G     E   A       K  I     U      I         I
          B   E    H      H     S   K       A  E     W      N         N
          S   X    T      T     T   U       I  R     A      1         2
      
         229  M  179.0   66.0    .      30000         .  11.8109   3.31243
         230  M  173.0   71.0  100  G       0         .  11.9014  -4.49729
         231  M  178.0   67.0    .  J       0         .  11.9553   1.90560
         232  M  172.0   72.0   89  G  150000         .  12.0457  -5.90412
         233  M  177.0   68.0    .  G   80000         .  12.0996   0.49878
         234  M  182.0   64.0    .  G       0         .  12.1535   6.90167
         235  M  170.0   74.0   90  J       0         .  12.3344  -8.71778
         236  M  175.0   74.0    .  J       0         .  15.4906  -4.83986
         237  M  180.0   70.0    .  J   40000  au  4000  15.5445   1.56304
         238  M  180.0   70.0    .          .         .  15.5445    1.5630
         239  M  178.7   71.2   95          0         .  15.6546   -0.2027
         240  M  173.5   76.5    .  G  100000         .  16.4827   -7.5813
         241  M  184.0   68.0   85      30000         .  16.5183    5.9279
         242  M  182.0   70.0   90  G  100000         .  16.8070    3.1142
         243  M  185.0   68.0   93  J       0         .  17.1496    6.7034
         244  M  175.0   77.0   95  G  130000         .  17.8174   -6.7336
         245  M  176.5   78.0   96  J   10000         .  19.5398   -6.2015
         246  M  177.0   78.0    .  J   40000         .  19.8554   -5.8137
         247  M  181.5   74.5    .  G  120000  au  3000  19.9815   -0.1142
         248  M  178.0   78.0  110  G   50000         .  20.4867   -5.0381
         249  M  169.3   88.5   94  J       0         .  23.1385  -18.4137
         250  M  186.0   82.0    .  J       0         .  28.6390   -1.3584
         251  M  182.0   90.0  100  J   40000         .  32.3187   -9.5107
         252  M  178.0  100.0  112  G   60000         .  37.5495  -18.9255
      

    4. 解釈方法
      • 寄与率 : その軸がどの程度説明力を持っているか : 第1軸だけでほぼ十分(85.5%)。第2軸に含まれる説明力は小さい。
      • 固有ベクトル : その軸の特徴を示している : 身長と体重の重みはほぼ同等だが、体重がやや大きめに効いている(第1軸)
      • 主成分得点と散布図 : 各個人がどこに付置されているか
      • 第1軸 : 全体的な体格の指標。身長と体重を足したような指標。

  3. 3変量以上の主成分分析
    1. 定式化 : 資料 71ページ〜
      • 2変量の拡張
      • 合成変量(線形結合) : z
      • 合成変量の分散を最大化する軸を決定する。

    2. 身長、体重、胸囲での総合指標を求めてみよう : プログラム : les1202.sas

       /* Lesson 12-2 */
       /*    File Name = les1202.sas   07/03/03   */
      
      data gakusei;
        infile 'all03a.prn' firstobs=2;
        input sex $ height weight chest 
              jitaku $ kodukai carrier $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc princomp cov data=gakusei out=outprin;    : 主成分分析(分散共分散行列)
        var height weight chest;                     : 3変量
      run;                                           :
      proc print data=outprin(obs=15);               : 結果の出力
      run;                                           :
      proc plot data=outprin;                        : 散布図
        plot prin2*prin1/vref=0 href=0;              : 主成分得点のプロット
        plot prin3*prin2/vref=0 href=0;              :
        plot prin3*prin1/vref=0 href=0;              :
      run;                                           :
      
      

    3. 出力結果 : les1202.lst
      • 各変量の平均、標準偏差、共分散行列
      • 固有値、比率(寄与率)、累積寄与率
      • 固有ベクトル
      • 主成分得点
      • 第1軸〜第3軸の散布図

                                    SAS システム                             3
                                                 05:41 Thursday, June 26, 2003
      
                            Principal Component Analysis
            86 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       168.0209302       59.54883721       86.96511628
             StD          8.5479012       11.04155514        8.01534950
      
                                    SAS システム                             4
                                                 05:41 Thursday, June 26, 2003
      
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                              HEIGHT            WEIGHT             CHEST
      
            HEIGHT        73.0666156        65.5888482        24.6783858
            WEIGHT        65.5888482       121.9159398        58.3558413
            CHEST         24.6783858        58.3558413        64.2458276
      
                                    SAS システム                             5
                                                 05:41 Thursday, June 26, 2003
      
                            Principal Component Analysis
      
                           Total Variance = 259.22838304
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         196.723         153.044        0.758881         0.75888
       PRIN2          43.679          24.854        0.168498         0.92738
       PRIN3          18.826            .           0.072622         1.00000
      
                                    SAS システム                             6
                                                 05:41 Thursday, June 26, 2003
      
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.488795      -.687213      0.537417
                  WEIGHT      0.761132      0.034888      -.647658
                  CHEST       0.426330      0.725617      0.540113
      
                                    SAS システム                             7
                                                 05:41 Thursday, June 26, 2003
      
                                 K   C
                H     W     J    O   A         T
                E     E   C I    D   R         S       P       P        P
                I     I   H T    U   R         U       R       R        R
         O  S   G     G   E A    K   I         U       I       I        I
         B  E   H     H   S K    A   E         W       N       N        N
         S  X   T     T   T U    I   R         A       1       2        3
      
          1 F 145.0 38.0  . J  10000             .    .       .       .     
          2 F 148.0 42.0  . J  50000             .    .       .       .     
          3 F 148.0 43.0 80 J  50000 DoCoMo   4000 -25.3514  8.1273 -3.80355
          4 F 148.9   .   . J  60000             .    .       .       .     
          5 F 149.0 45.0  . G  60000             .    .       .       .     
          6 F 150.0 46.0 86    40000             . -19.5325 11.2112 -1.43101
          7 F 151.7 41.5 80 J  35000             . -24.6846  5.5323 -0.84362
          8 F 152.0 35.0 77 J  60000 DoCoMo   2000 -30.7643  2.9225  1.90705
          9 F 153.0 41.0  . J 125000 No          .    .       .       .     
      
                                    SAS システム                             9
                                                 05:41 Thursday, June 26, 2003
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 166 オブザベーションが欠損値です.)
      PRIN2 |                          |
         20 +                          |
            |              A         A |  A   A         A          A
            |           B  A BBABA  AA | AAAA    A    A
          0 +--------A-------ACACBACA--D-BFABACA--AAA-------A-----------------
            |             A   A    A  AB ABAAC   B
            |                    A     A A     A
        -20 +                A         |
            |                          |
            |                          |
        -40 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      
                                    SAS システム                            10
                                                 05:41 Thursday, June 26, 2003
              プロット : PRIN3*PRIN2.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 166 オブザベーションが欠損値です.)
      PRIN3 |                                      |
         10 +                                      |
            |                       A   A  AB      |            A A
            |                     A A   A AA   ACBF|C AB ACC       A
          0 +--------------------------A--A-A--A--BCB-BAAABAA--AA-------------
            |                           AA      BABB C   AA  A
            |                     A          AAA   |AA          A A
        -10 +                                      |   A
            |           A                          |     A
            |                                      |
        -20 +                                      |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -30         -20         -10          0          10          20
                                           PRIN2
      
                                    SAS システム                            11
                                                 05:41 Thursday, June 26, 2003
              プロット : PRIN3*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 166 オブザベーションが欠損値です.)
      PRIN3 |                          |
         10 +                          |
            |                          A   A BA  A      A
            |        A     A  C CB BA  B DDBAA A BA
          0 +-----------A--A-BBBAAA-A--D--E-A---------------------------------
            |           A    A  A  A A | AA BAC    AA
            |             A      A A AA|       A            A      A
        -10 +                 A        |
            |                A         |              A
            |                          |
        -20 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      
      

    4. 解釈方法
      • 寄与率 : 2軸まで取れば十分のようだ(92.7%)。
      • 第1軸 : 全体的な体格の因子。特に体重が効いている。
      • 第2軸 : 太さの因子(?)。胸囲が正で身長が負。

      • 第3軸 : 華奢さの因子(?)。無視しても良い軸だが。(7.3%)。

  4. 相関行列を使う理由

    1. 相関行列を用いて体格の総合指標を求めてみよう : プログラム : les1203.sas

       /* Lesson 12-3 */
       /*    File Name = les1203.sas   07/03/03   */
      
      data gakusei;
        infile 'all03a.prn' firstobs=2;
        input sex $ height weight chest 
              jitaku $ kodukai carrier $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      
      run;                                          :
      proc princomp data=gakusei out=outprin;       : 相関係数を使って
        var height weight chest;                    :
      run;                                          :
      proc print data=outprin(obs=15);
      run;
      proc plot data=outprin;
        plot prin2*prin1/vref=0 href=0;
        plot prin3*prin2/vref=0 href=0;
        plot prin3*prin1/vref=0 href=0;
      run;
      
      

    2. 出力結果 : les1203.lst
      • 各変量の平均、標準偏差、相関行列
      • 固有値、比率(寄与率)、累積寄与率
      • 固有ベクトル
      • 主成分得点
      • 第1軸〜第3軸の散布図

                                    SAS システム                             3
                                             22:41 Wednesday, October 16, 2002
                            Principal Component Analysis
            81 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       167.8765432       59.47654321       86.93827160
             StD          8.6341078       11.23610555        7.78515523
      
                                    SAS システム                             4
                                             22:41 Wednesday, October 16, 2002
                            Principal Component Analysis
      
                                 Correlation Matrix
      
                                 HEIGHT      WEIGHT       CHEST
      
                     HEIGHT      1.0000      0.6952      0.3804
                     WEIGHT      0.6952      1.0000      0.6728
                     CHEST       0.3804      0.6728      1.0000
      
                                    SAS システム                             5
                                             22:41 Wednesday, October 16, 2002
                            Principal Component Analysis
      
                       Eigenvalues of the Correlation Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         2.17609         1.55619        0.725362         0.72536
       PRIN2         0.61989         0.41587        0.206631         0.93199
       PRIN3         0.20402          .             0.068007         1.00000
      
                                    SAS システム                             6
                                             22:41 Wednesday, October 16, 2002
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.550647      -.690050      0.469701
                  WEIGHT      0.635259      -.018608      -.772075
                  CHEST       0.541511      0.723522      0.428114
      

    3. 解釈方法
      • 寄与率 : 2軸まで取れば十分のようだ(93.2%)。
      • 第1軸 : 全体的な体格の因子。
      • 第2軸 : 太さの因子。
      • 分散共分散行列を使ったときよりも 第1軸の固有ベクトル同士が近い値になった。 しかし、軸の解釈に違いはない。 その理由はこの例では 3変量のスケールや分散に それほどの違いがないためと想像される。
      • 分散共分散行列と相関行列を使ったときの違いを見てみたければ、 height のみを mm 単位で測定したと考えて、 100倍したものをデータとして両者の出力を比較してみよ。
        プログラム : les1204.sas 、出力結果 : les1204.lst

  5. 主成分の数の決定基準 : 配布資料 80ページ
    明確に決まっているわけではないが、以下のような基準が一般的に 用いられている。また、結果の解釈の都合上、多少増減させることもある。

  6. いろいろなデータを主成分分析に適用して、解釈してみよう
    [例1] 小遣いまでの 4変量のデータでは?
    [例2] 自分の収集したデータでは?

    [注意] データによっては解釈が困難なことも有り得る。

    また、自分の思い付かない結果を含んでいることもある。

    [参考] 「J:\コンピュータによる統計解析1(林 篤裕)\」に以下のデータを置いておく。

    1. seiseki.dat
      中学2年生の成績データ。23名x5科目。国語、社会、数学、理科、英語。
      配布資料に掲載され、例題に使われていたデータ。

      次回の講義中に使う予定のデータも 2つ置いておくので、 次回までに各自の SAS ディレクトリ(stat システム内)に転送しておくこと。

    2. food.dat
      100 種類の食品の嗜好度データ。100食品x10グループ。
    3. syumi.dat
      趣味に関するアンケート調査データ。30種類x6グループ。

  7. 次回は、... : 07月10日 14:45
    • 因子分析
    • データを転送しておくこと
    • ...
[DIR]講義のホームページへ戻ります