主成分分析

統計処理 01 クラス : 第13回目(10/28/99)

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

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

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

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

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

    3. 出力結果 : les1301.lst
      • 身長と体重の散布図
      • 各変量の平均、標準偏差、分散共分散行列
      • 固有値、比率(寄与率)、累積寄与率 : 解釈に使う
      • 固有ベクトル(係数a1とa2) : 解釈に使う
      • 主成分得点 : 各個人の得点(z)、2つある
      • 第1軸と第2軸の主成分得点の散布図
      
                                    SAS システム                             2
                                                15:18 Friday, October 22, 1999
      
             プロット : HEIGHT*WEIGHT.  凡例: A = 1 OBS, B = 2 OBS, ...
              (NOTE: 24 オブザベーションが欠損値です.)
      HEIGHT |
         200 +
             |
             |                                       A
         180 +                          A  A A  AAB AA A       A
             |                       AB  CDD JAFBACA A  BA B  B
             |                   A   AACABAAAB A ABA  A                   A
         160 +              A       BAA      A B
             |                 A  A           A
             |         A
         140 +
             --+---------+---------+---------+---------+---------+---------+--
              30        40        50        60        70        80        90
      
                                           WEIGHT
      
                                    SAS システム                             3
                                                15:18 Friday, October 22, 1999
      
                            Principal Component Analysis
      
            91 Observations
             2 Variables
                                 Simple Statistics
      
                                      HEIGHT            WEIGHT
      
                      Mean       170.3142857       60.62307692
                      StD          6.3742114        7.68593343
      
                                    SAS システム                             4
                                                15:18 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                                       HEIGHT            WEIGHT
      
                     HEIGHT       40.63057143       25.45055556
                     WEIGHT       25.45055556       59.07357265
      
                           Total Variance = 99.704144078
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         76.9217         54.1393        0.771500         0.77150
       PRIN2         22.7824           .            0.228500         1.00000
      
                                    SAS システム                             5
                                                15:18 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                        PRIN1         PRIN2
      
                         HEIGHT      0.574170      0.818736
                         WEIGHT      0.818736      -.574170
      
                                    SAS システム                             6
                                                15:18 Friday, October 22, 1999
      
         OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI    PRIN1   PRIN2
      
           1    M       178   58.0     .    J      20000   2.2653  7.79866
           2    M       170   63.0    90    J      30000   1.7656 -1.62207
           3    M       167   56.0     .    J      30000  -5.6880 -0.05909
           4    M       172   61.5     .    J      30000   1.6859  0.87665
           5    M       170   52.0     .    J      30000  -7.2405  4.69379
           6    F       156     .      .    J      30000    .       .     
           7    M       172   72.0    89    G     150000  10.2826 -5.15213
      
                                    SAS システム                             7
                                                15:18 Friday, October 22, 1999
      
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 24 オブザベーションが欠損値です.)
         20 +                                    |
            |                                    |
      PRIN2 |                                    |A
            |                                 A  |AA   AA A   A
            |                        A   ABAA DABAEAA   AAA   A
          0 +----------------A--------B---BABB-CCACDB-AA--A-------------------
            |                 A  A   A A      AA A BBAB  AB  A A  A
            |      A                        A B  A         A  A
            |                             A      |
            |                                    |                   A
        -20 +                                    |
            -+--------+--------+--------+--------+--------+--------+--------+-
            -40      -30      -20      -10       0       10       20       30
      
                                           PRIN1
      
                                    SAS システム                             8
                                                15:18 Friday, October 22, 1999
      
        OBS  SEIBETSU  HEIGHT  WEIGHT  CHEST  JITAKU  KODUKAI  PRIN1  PRIN2
      
          1     F       156.0     .      .      J      30000     .      .  
          2     F       156.0     .      .      J      50000     .      .  
          3     F       155.0     .      .      J      20000     .      .  
          4     F       164.0     .      .      J      30000     .      .  
          5     F       148.9     .      .      J      60000     .      .  
          6     F       156.0     .      .      G          .     .      .  
          7     F       156.5     .      .      J      20000     .      .  
      (略)
      
                                    SAS システム                            14
                                                15:18 Friday, October 22, 1999
      
      OBS  SEIBETSU  HEIGHT  WEIGHT  CHEST  JITAKU  KODUKAI   PRIN1     PRIN2
      
       91     M       169.0    66       .     J           0  3.64766  -4.16332
       92     M       172.0    64       .     G      120000  3.73270  -0.55877
       93     M       171.0    66       .     G       80000  4.79600  -2.52585
       94     M       173.0    65       .     J       20000  5.12560  -0.31421
       95     M       170.0    68       .     J       25000  5.85930  -4.49292
       96     M       169.0    69      90                 .  6.10387  -5.88583
       97     M       182.0    60      87     G      100000  6.19945   9.92527
       98     M       175.0    65      90     J           .  6.27394   1.32327
       99     M       177.0    65       .     G       60000  7.42228   2.96074
      100     M       179.9    63       .     J       30000  7.44990   6.48341
      101     M       171.0    71       .     G      160000  8.88968  -5.39670
      102     M       180.0    65       .     G      100000  9.14479   5.41695
      103     M       182.0    64       .     G           0  9.47439   7.62859
      104     M       178.0    67       .     J           0  9.63392   2.63114
      105     M       177.0    68       .     G       80000  9.87849   1.23823
      
                                    SAS システム                            15
                                                15:18 Friday, October 22, 1999
      
      OBS  SEIBETSU  HEIGHT  WEIGHT  CHEST  JITAKU  KODUKAI   PRIN1     PRIN2
      
      106     M       173.0   71.0    100     G           0  10.0380   -3.7592
      107     M       172.0   72.0     89     G      150000  10.2826   -5.1521
      108     M       170.0   74.0     90     J           0  10.7717   -7.9379
      109     M       175.0   74.0      .     J           0  13.6426   -3.8443
      110     M       182.0   70.0     90     G      100000  14.3868    4.1836
      111     M       185.0   68.0     93     J           0  14.4718    7.7881
      112     M       173.5   76.5      .     G      100000  14.8282   -6.5078
      113     M       175.0   77.0     95     G      130000  16.0988   -5.5668
      114     M       178.0   78.0    110     G       50000  18.6400   -3.6847
      115     M       169.3   88.5     94     J           0  22.2415  -16.8365
      

    4. 解釈方法
      • 寄与率 : その軸がどの程度説明力を持っているか : 第1軸だけでほぼ十分(77.2%)
      • 固有ベクトル : その軸の特徴を示している : 体重が大きめに効いている(第1軸)
      • 主成分得点と散布図 : 各個人がどこに付置されているか
      • 第1軸 : 全体的な体格の指標、ずんぐりした指標

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

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

       /* Lesson 13-2 */
       /*    File Name = les1302.sas   10/28/99   */
      
      data gakusei;
        infile 'all99.dat';
        input seibetsu $ height weight chest jitaku $ kodukai;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc princomp cov data=gakusei out=out_prin;   : 主成分分析(分散共分散行列)
        var height weight chest;                     : 3変量
      run;                                           :
      proc print data=out_prin(obs=15);              : 結果の出力
      run;                                           :
      proc plot data=out_prin;                       : 散布図
        plot prin2*prin1/vref=0 href=0;              : 主成分得点のプロット
        plot prin3*prin2/vref=0 href=0;              :
        plot prin3*prin1/vref=0 href=0;              :
      run;                                           :
      
      

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

      
                                    SAS システム                             3
                                                15:29 Friday, October 22, 1999
      
                            Principal Component Analysis
      
            33 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       170.9030303       63.46969697       89.81818182
             StD          6.4995906        8.34971874        6.20712567
      
                                    SAS システム                             4
                                                15:29 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                              HEIGHT            WEIGHT             CHEST
      
            HEIGHT       42.24467803       18.12978220        5.45681818
            WEIGHT       18.12978220       69.71780303       30.80681818
            CHEST         5.45681818       30.80681818       38.52840909
      
                                    SAS システム                             5
                                                15:29 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                           Total Variance = 150.49089015
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         95.0355         57.9464        0.631504         0.63150
       PRIN2         37.0891         18.7229        0.246454         0.87796
       PRIN3         18.3662           .            0.122042         1.00000
      
                                    SAS システム                             6
                                                15:29 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.329236      0.911858      0.245191
                  WEIGHT      0.815321      -.143549      -.560933
                  CHEST       0.476294      -.384589      0.790718
      
                                    SAS システム                             7
                                                15:29 Friday, October 22, 1999
      
            S
            E                            K
            I    H      W         J      O
            B    E      E     C   I      D         P          P          P
            E    I      I     H   T      U         R          R          R
       O    T    G      G     E   A      K         I          I          I
       B    S    H      H     S   K      A         N          N          N
       S    U    T      T     T   U      I         1          2          3
      
        1   M   178   58.0    .   J    20000      .         .          .     
        2   M   170   63.0   90   J    30000    -0.5937   -0.82594    0.18582
        3   M   167   56.0    .   J    30000      .         .          .     
        4   M   172   61.5    .   J    30000      .         .          .     
        5   M   170   52.0    .   J    30000      .         .          .     
        6   F   156     .     .   J    30000      .         .          .     
        7   M   172   72.0   89   G   150000     6.9264    0.09042   -5.16291
        8   M   163   51.0   82   J    10000   -16.4925   -2.40964   -1.12507
      
                                    SAS システム                             9
                                                15:29 Friday, October 22, 1999
      
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 82 オブザベーションが欠損値です.)
         20 +                          |
            |                          |
      PRIN2 |                 A       A|           A
            |                   A      |          A
            |                      A A |  A
          0 +----A-------------BB----BC+-A-----A---------A--------------------
            |      A             A  A  |    A    A   A              A
            |   A                      |  A                      A
            |                  A       |A
            |                          |
        -20 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -20         -10          0          10          20          30
      
                                           PRIN1
      
                                    SAS システム                            10
                                                15:29 Friday, October 22, 1999
      
              プロット : PRIN3*PRIN2.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 82 オブザベーションが欠損値です.)
      PRIN3 |                                |
         10 +                         A      |
            |        A                     A |
            |                    A  A  A     |  B   A              AA
          0 +-------------A-----------A-A--A-AAAA---B----------A-------A------
            |     A                     A    A   A           A
            |                           A  A A  A
        -10 +                   A            |
            |                                |
            |                                |
        -20 +                                |
            ---+---------+---------+---------+---------+---------+---------+--
              -15       -10       -5         0         5        10        15
      
                                           PRIN2
      
                                    SAS システム                            11
                                                15:29 Friday, October 22, 1999
      
              プロット : PRIN3*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 82 オブザベーションが欠損値です.)
      PRIN3 |                          |
         10 +                          |                            A
            |                          |AA
            |                  A    ABA|  A        A A
          0 +---AA-A----------A-AA-A--C+--A-------A---------------------------
            |                  AB      |    A            A
            |                  A     A |       A A
        -10 +                          |                         A
            |                          |
            |                          |
        -20 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -20         -10          0          10          20          30
      
                                           PRIN1
      
      

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

      • 第3軸 : 胸囲の因子。無視しても良い軸だが。(12.2%)。

  4. 相関行列を使う理由

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

       /* Lesson 13-3 */
       /*    File Name = les1303.sas   10/28/99   */
      
      data gakusei;
        infile 'all99.dat';
        input seibetsu $ height weight chest jitaku $ kodukai;
      
      proc print data=gakusei(obs=10);
      
      run;                                          :
      proc princomp data=gakusei out=out_prin;      : 相関係数を使って
        var height weight chest;                    :
      run;                                          :
      proc print data=out_prin(obs=15);
      run;
      proc plot data=out_prin;
        plot prin2*prin1/vref=0 href=0;
        plot prin3*prin2/vref=0 href=0;
        plot prin3*prin1/vref=0 href=0;
      run;
      
      

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

      
                                    SAS システム                             3
                                                15:33 Friday, October 22, 1999
      
                            Principal Component Analysis
      
            33 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       170.9030303       63.46969697       89.81818182
             StD          6.4995906        8.34971874        6.20712567
      
                                    SAS システム                             4
                                                15:33 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                 Correlation Matrix
      
                                 HEIGHT      WEIGHT       CHEST
      
                     HEIGHT      1.0000      0.3341      0.1353
                     WEIGHT      0.3341      1.0000      0.5944
                     CHEST       0.1353      0.5944      1.0000
      
                                    SAS システム                             5
                                                15:33 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                       Eigenvalues of the Correlation Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         1.74519        0.859438        0.581729         0.58173
       PRIN2         0.88575        0.516682        0.295249         0.87698
       PRIN3         0.36907         .              0.123022         1.00000
      
                                    SAS システム                             6
                                                15:33 Friday, October 22, 1999
      
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.413257      0.875369      0.250895
                  WEIGHT      0.673837      -.108642      -.730849
                  CHEST       0.612505      -.471091      0.634753
      
                                    SAS システム                             7
                                                15:33 Friday, October 22, 1999
      
            S
            E                            K
            I    H      W         J      O
            B    E      E     C   I      D         P          P          P
            E    I      I     H   T      U         R          R          R
       O    T    G      G     E   A      K         I          I          I
       B    S    H      H     S   K      A         N          N          N
       S    U    T      T     T   U      I         1          2          3
      
        1   M   178   58.0    .   J    20000     .          .          .     
        2   M   170   63.0   90   J    30000   -0.07738   -0.12931    0.02485
        3   M   167   56.0    .   J    30000     .          .          .     
        4   M   172   61.5    .   J    30000     .          .          .     
        5   M   170   52.0    .   J    30000     .          .          .     
        6   F   156     .     .   J    30000     .          .          .     
        7   M   172   72.0   89   G   150000    0.67742    0.09885   -0.78798
        8   M   163   51.0   82   J    10000   -2.28030   -0.30877   -0.01310
      
                                    SAS システム                             9
                                                15:33 Friday, October 22, 1999
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 82 オブザベーションが欠損値です.)
              2 +                       A    |
                |                            |A        A
          PRIN2 |                      A     |       A
                |                            |
                |                    A A  A AA  A
              0 +-------------A----------BA-C+---A-------A----------------
                |             A         A    | AA A     A
                |                           A|              A       A
                |                            |  A
                |           A                |
             -2 +                     A      | A
                ---+------------+------------+------------+------------+--
                  -4           -2            0            2            4
      
                                           PRIN1
      
                                    SAS システム                            10
                                                15:33 Friday, October 22, 1999
      
              プロット : PRIN3*PRIN2.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 82 オブザベーションが欠損値です.)
          PRIN3 |                            |
              1 +                  A         |
                |   A              A      A  | A
                |         A     A    A       |AB   A              A A  A
              0 +----------------------A-A-A-A--A---B----------A----------
                |  A                         A    A
                |                        A  A|A               A
             -1 +                        A   |    A
                |                            |
                |                 A          |
             -2 +                            |
                ---+------------+------------+------------+------------+--
                  -2           -1            0            1            2
      
                                           PRIN2
      
                                    SAS システム                            11
                                                15:33 Friday, October 22, 1999
      
              プロット : PRIN3*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 82 オブザベーションが欠損値です.)
          PRIN3 |                            |
              1 +                            |                      A
                |                        A  A| AA
                |           A A         AA  AAA A      AA
              0 +-------------A---------A-A-C+--A----A--------------------
                |                     AA     |           A
                |                      A  A  | A A
             -1 +                    A       |    A
                |                            |
                |                            |              A
             -2 +                            |
                ---+------------+------------+------------+------------+--
                  -4           -2            0            2            4
      
                                           PRIN1
      
      

    3. 解釈方法
      • 寄与率 : 2軸まで取れば十分のようだ(87.7%)。
      • 第1軸 : 全体的な体格の因子。
      • 第2軸 : 身長の因子。
      • 分散共分散行列を使ったときとそれほど解釈に違いはない。 その理由はこの例では 3変量の分散にそれほどの違いがないためと思われる。

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

  6. いろいろなデータを主成分分析に適用して、解釈してみよう

    [例] 小遣いまでの 4変量のデータでは?

    自分の興味のあるデータでは?

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

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

    [参考] 配布資料に掲載されているデータは以下の URL に置いておく。ダウンロードして利用してもよい。

    なお、次回の講義中に使う予定のデータも 2つ掲載しておくので、 次回までに各自の SAS ディレクトリ(stat システム内)にダウンロードしておくこと。

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

    [補足(10/30/99)] ダウンロードの方法が判らない人へ。 本来は以下の 1の方法を採ってほしいと思っていましたが、 代案として 2も紹介しておきます。

    1. インターネットブラウザ(Netscape 等)で、該当ページを表示させ、 ダウンロードしたいファイル名の上にマウスカーソルを移動させて右クリックをする。 すると、「リンクを名前を付けて保存」等のローカルディスクに保存する旨の ウインドウが現れるので、目的のファイルを適当な場所に保存する。 その後、そのファイルを stat システムに ftp で転送する。
    2. (代案) C 教室の 「J:\センター設置科目\コンピュータによる統計処理01\」 ディレクトリ内にデータファイルを保存しておくので、 これを stat システムに ftp で転送する。

      なお、ftp の転送方法は、 第2回配布資料 の 6節を参照すること。

  7. 次回は、... : 11月4日 14:45

    • 因子分析
    • データをダウンロードしておくこと
    • 休みの予定 : 12月2日 (11月29日〜12月8日)
    • ...
[DIR]講義のホームページへ戻ります