主成分分析

統計解析 02 クラス : 第12回 (07/06/06)

 いくつか(p個)の変量の値を情報の損失をできるだけ少なくして、 少数変量(m個、m<p)の総合的指標(主成分)で代表させる方法として 主成分分析(Principal Component Analysis, PCA)がある。 いくつかのテストの成績を総合した総合的成績、 いろいろな症状を総合した総合的な重症度、 種々の財務指標に基づく企業の評価 等を求めたいといった場合に用いられる。
 p変量(p次元)の観測値をm個(m次元)の主成分に縮約させるという意味で、 次元を減少させる方法ということもでき、 多変量データを要約する一つの有力な方法である。
  1. 2変量の場合の主成分分析 : 理解を助けるため
    1. 定式化 : 配布資料 54ページ〜
      • 重み(係数) : a1、a2
      • 合成変量(線形結合) : z
      • よく代表するように、a1 と a2 を決める。
      • より広がって測定できる軸に沿うと情報量が多い。
           [参考:立体の測定] ノギスノギスの使い方・目盛りの読み方
      • 全測定値の分散を最大化する軸を決定する。

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

       /* Lesson 12-1 */
       /*    File Name = les1201.sas   07/06/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui
              jitaku $ kodukai carryer $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc plot data=gakusei;                        : 散布図
        plot shintyou*taijyuu;                       : 元の変量のプロット
      run;                                           :
      proc princomp cov data=gakusei out=outprin;    : 主成分分析(分散共分散行列)
        var shintyou taijyuu;                        : 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
                                                    21:09 Monday, July 3, 2006
      
           プロット : SHINTYOU*TAIJYUU.  凡例: A = 1 OBS, B = 2 OBS, ...
                    (NOTE: 47 オブザベーションが欠損値です.)
          SHINTYOU |
               200 +
                   |
                   |                             A B       A
               180 +                       A BFCFDDBGA B B      A  A  A
                   |                    CAGELITQKHCGECB BC
                   |                  AFAGIIFECCDEAA  AA A     A
               160 +                ADDGDIFDBABB
                   |           A   ECAEDDA A   A
                   |             A BAA
               140 +
                   ---+-----------+-----------+-----------+-----------+--
                     20          40          60          80          100
                                           TAIJYUU
      
                                    SAS システム                             3
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
           307 Observations
             2 Variables
                                 Simple Statistics
      
                                    SHINTYOU           TAIJYUU
      
                      Mean       168.7013029       58.71596091
                      StD          8.0649770        9.30512751
      
                                    SAS システム                             4
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                                      SHINTYOU           TAIJYUU
      
                    SHINTYOU       65.04385451       52.83873731
                    TAIJYUU        52.83873731       86.58539801
      
                           Total Variance = 151.62925252
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         129.740         107.851        0.855639         0.85564
       PRIN2          21.889            .           0.144361         1.00000
      
                                    SAS システム                             5
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                         PRIN1         PRIN2
      
                        SHINTYOU      0.632560      0.774511
                        TAIJYUU       0.774511      -.632560
      
                                    SAS システム                             6
                                                    21:09 Monday, July 3, 2006
                 S
                 H      T               K  C
                 I      A       J       O  A           T
                 N      I    K  I       D  R           S       P         P
                 T      J    Y  T       U  R           U       R         R
        O   S    Y      Y    O  A       K  Y           U       I         I
        B   E    O      U    U  K       A  E           W       N         N
        S   X    U      U    I  U       I  R           A       1         2
      
         1  F  145.0  38.0   .  J   10000               .  -31.0372  -5.25283
         2  F  146.7  41.0  85  J   10000  Vodafone  6000  -27.6384  -5.83384
         3  F  148.0  42.0   .  J   50000               .  -26.0415  -5.45954
         4  F  148.0  43.0  80  J   50000  DoCoMo    4000  -25.2670  -6.09210
         5  F  148.9    .    .  J   60000               .     .        .     
         6  F  149.0  45.0   .  G   60000               .  -23.0854  -6.58271
         7  F  150.0  46.0  86      40000               .  -21.6784  -6.44075
         8  F  151.0  50.0   .  G   60000  J-PHONE      .  -17.9478  -8.19648
      <中略>
      
                                    SAS システム                             8
                                                    21:09 Monday, July 3, 2006
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 47 オブザベーションが欠損値です.)
          PRIN2 |                            |
             10 +                          A B  A  BA
                |                     AA  CB CACBDABDAA B
                |         A        BC E AGBEGGDFHFCACD  A
              0 +-------------BBAABADCAJ-BGBFEEDIDACDC-G--A-----A---------
                |            AAACBCDC ADCA A BBBFEBBDC A A A
                |        A AAAAA AAA A A AABBABC  A BA  AAC
            -10 +                    A   A   |      AB A          A
                |                            |
                |                            |       A             A
            -20 +                            |              A         A
                ---+------------+------------+------------+------------+--
                  -40          -20           0           20           40
                                           PRIN1
      
                                    SAS システム                             9
                                                    21:09 Monday, July 3, 2006
      
      OBS SEX SHINTYOU TAIJYUU KYOUI JITAKU KODUKAI CARRYER TSUUWA PRIN1 PRIN2
      
        1  F    148.9     .      .     J      60000             .    .     .  
        2  F    153.0     .      .     G     120000 DoCoMo    200    .     .  
        3  F    155.0     .      .     J      20000             .    .     .  
      <中略>
      
                                    SAS システム                            47
                                                    21:09 Monday, July 3, 2006
                 S
                 H      T                K    C
                 I      A        J       O    A         T
                 N      I    K   I       D    R         S       P         P
                 T      J    Y   T       U    R         U       R         R
        O   S    Y      Y    O   A       K    Y         U       I         I
        B   E    O      U    U   K       A    E         W       N         N
        S   X    U      U    I   U       I    R         A       1         2
      
       312  M  179.0  65.0    .  J       0                .  11.3816    4.0014
       313  M  168.0  74.0    .  G  120000  DDIp      15000  11.3940  -10.2112
       314  M  173.8  69.6   90  J   30000  DoCoMo    13000  11.6550   -2.9358
       315  M  177.0  67.0    .       4000  DoCoMo     8000  11.6655    1.1873
       316  M  180.0  65.0   88  J   30000                .  12.0142    4.7759
       317  M  180.0  65.0    .  G  100000                .  12.0142    4.7759
       318  M  179.0  66.0    .      30000                .  12.1561    3.3689
       319  M  168.0  75.0    .  G  150000                .  12.1686  -10.8438
       320  M  173.0  71.0  100  G       0                .  12.2333   -4.4410
       321  M  178.0  67.0    .  J       0                .  12.2981    1.9618
       322  M  172.0  72.0   89  G  150000                .  12.3753   -5.8481
       323  M  177.0  68.0    .  G   80000                .  12.4400    0.5547
       324  M  182.0  64.0    .  G       0                .  12.5048    6.9575
       325  M  165.0  78.0    .  G       0             2098  12.5944  -15.0650
       326  M  170.0  74.0   90  J       0                .  12.6592   -8.6622
       327  M  175.0  70.0   95  G   50000             8000  12.7239   -2.2594
       328  M  178.0  68.0    .  J  100000  DoCoMo     4000  13.0726    1.3292
       329  M  184.0  65.0    .  G  140000  au        10000  14.5444    7.8740
       330  M  170.0  78.0    .      45000  Vodafone  10000  15.7572  -11.1925
       331  M  175.0  74.0    .  J       0                .  15.8220   -4.7897
       332  M  179.9  70.0    .  J   15000  DoCoMo      700  15.8235    1.5357
       333  M  180.0  70.0   94  G   70000  au         5000  15.8867    1.6131
       334  M  180.0  70.0    .  J   40000  au         4000  15.8867    1.6131
       335  M  180.0  70.0    .          .                .  15.8867    1.6131
       336  M  180.0  70.0    .  J   40000  DoCoMo     6500  15.8867    1.6131
       337  M  180.0  70.0    .       5000             3000  15.8867    1.6131
       338  M  178.7  71.2   95          0                .  15.9938   -0.1528
       339  M  173.5  76.5    .  G  100000                .  16.8094   -7.5328
       340  M  184.0  68.0   85      30000                .  16.8679    5.9763
       341  M  182.0  70.0   90  G  100000                .  17.1518    3.1622
       342  M  185.0  68.0   93  J       0                .  17.5005    6.7508
       343  M  175.0  77.0   95  G  130000                .  18.1455   -6.6873
       344  M  179.1  74.2    .          0  au         4000  18.5704   -1.7407
       345  M  175.0  79.0    .  J       0  No            0  19.6945   -7.9525
       346  M  176.5  78.0   96  J   10000                .  19.8688   -6.1581
       347  M  177.0  78.0    .  J   40000                .  20.1851   -5.7709
       348  M  181.5  74.5    .  G  120000  au         3000  20.3209   -0.0716
       349  M  178.0  78.0  110  G   50000                .  20.8177   -4.9964
       350  M  169.3  88.5   94  J       0                .  23.4468  -18.3765
       351  M  186.0  82.0    .  J       0                .  28.9762   -1.3305
       352  M  182.0  90.0  100  J   40000                .  32.6421   -9.4891
       353  M  178.0  95.0    .       1000  No            .  33.9844  -15.7499
       354  M  178.0 100.0  112  G   60000                .  37.8569  -18.9127
      

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

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

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

       /* Lesson 12-2 */
       /*    File Name = les1202.sas   07/06/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui
              jitaku $ kodukai carryer $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc princomp cov data=gakusei out=outprin;    : 主成分分析(分散共分散行列)
        var shintyou taijyuu kyoui;                  : 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
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
           111 Observations
             3 Variables
                                 Simple Statistics
      
                           SHINTYOU           TAIJYUU             KYOUI
      
             Mean       167.2801802       58.58918919       86.46846847
             StD          8.7293530       10.67974592        7.50735375
      
                                    SAS システム                             4
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                             SHINTYOU           TAIJYUU             KYOUI
      
           SHINTYOU        76.2016036        68.8150565        25.5320966
           TAIJYUU         68.8150565       114.0569730        53.3632924
           KYOUI           25.5320966        53.3632924        56.3603604
      
                                    SAS システム                             5
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                           Total Variance = 246.61893694
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         191.486         152.179        0.776443         0.77644
       PRIN2          39.307          23.480        0.159382         0.93583
       PRIN3          15.827            .           0.064174         1.00000
      
                                    SAS システム                             6
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                  PRIN1         PRIN2         PRIN3
      
                 SHINTYOU      0.533729      -.663468      0.524351
                 TAIJYUU       0.747236      0.079692      -.659763
                 KYOUI         0.395945      0.743949      0.538301
      
                                    SAS システム                             7
                                                    21:09 Monday, July 3, 2006
                S
                H     T            K C
                I     A     J      O A          T
                N     I   K I      D R          S      P       P        P
                T     J   Y T      U R          U      R       R        R
         O  S   Y     Y   O A      K Y          U      I       I        I
         B  E   O     U   U K      A E          W      N       N        N
         S  X   U     U   I U      I R          A      1       2        3
      
          1 F 145.0 38.0  . J  10000             .    .       .       .     
          2 F 146.7 41.0 85 J  10000 Vodafone 6000 -24.7089 11.1601  0.02298
          3 F 148.0 42.0  . J  50000             .    .       .       .     
          4 F 148.0 43.0 80 J  50000 DoCoMo   4000 -24.5003  6.7372 -3.30639
          5 F 148.9   .   . J  60000             .    .       .       .     
          6 F 149.0 45.0  . G  60000             .    .       .       .     
          7 F 150.0 46.0 86    40000             . -18.8155 10.1131 -1.00718
          8 F 151.0 50.0  . G  60000 J-PHONE     .    .       .       .     
      <中略>
      
                                    SAS システム                             9
                                                    21:09 Monday, July 3, 2006
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 243 オブザベーションが欠損値です.)
      PRIN2 |                          |
         20 +                          |
            |           A   A        A |  A   A          A         A
            |           AA  ABABBB  AC | A AC     A    A
          0 +--------A----A-ABBDBDD-CAAACADEABBCAAB-AA-------A----------------
            |              A A A    B  AAB BBAD   B
            |                     A    | BA     A
        -20 +                          |
            |                 A        |
            |                          |
        -40 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      
                                    SAS システム                            10
                                                    21:09 Monday, July 3, 2006
              プロット : PRIN3*PRIN2.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 243 オブザベーションが欠損値です.)
      PRIN3 |                                      |
         10 +                                      |
            |                       A   A   AB    A| A           A A
            |                     A  A  A  BA  D EADC  AABD A       A
          0 +----------------------A---A-A--B--A--FBDCEBCBA-A-AAA-------------
            |                          A  A   A A DB  CBA AA
            |                     A     A   AA A   A AA        A     A
        -10 +                                      |  A
            |          A                           |       A
            |                                      |
        -20 +                                      |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -30         -20         -10          0          10          20
                                           PRIN2
      
                                    SAS システム                            11
                                                    21:09 Monday, July 3, 2006
              プロット : PRIN3*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 243 オブザベーションが欠損値です.)
      PRIN3 |                          |
         10 +                          |
            |                  A       |AA  A C   A      A
            |        A      A AAACA BB |ACDBCAA A D
          0 +-----------AA--BDADCAC-AAAABB-FA-AA-A----------------------------
            |           A A  AA  B  BA |  B  BBA    AA
            |              A      A AA A    A  AA            A     A
        -10 +                  A       |
            |                 A        |               A
            |                          |
        -20 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      

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

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

  3. 相関行列を使う理由

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

       /* Lesson 12-3 */
       /*    File Name = les1203.sas   07/06/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui
              jitaku $ kodukai carryer $ tsuuwa;
      
      proc print data=gakusei(obs=10);
      
      run;                                          :
      proc princomp data=gakusei out=outprin;       : 相関係数を使って
        var shintyou taijyuu kyoui;                 :
      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
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
           111 Observations
             3 Variables
                                 Simple Statistics
      
                           SHINTYOU           TAIJYUU             KYOUI
      
             Mean       167.2801802       58.58918919       86.46846847
             StD          8.7293530       10.67974592        7.50735375
      
                                    SAS システム                             4
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                 Correlation Matrix
      
                               SHINTYOU       TAIJYUU         KYOUI
      
                 SHINTYOU        1.0000        0.7381        0.3896
                 TAIJYUU         0.7381        1.0000        0.6656
                 KYOUI           0.3896        0.6656        1.0000
      
                                    SAS システム                             5
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                       Eigenvalues of the Correlation Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         2.20698         1.59359        0.735659         0.73566
       PRIN2         0.61338         0.43375        0.204462         0.94012
       PRIN3         0.17964          .             0.059880         1.00000
      
                                    SAS システム                             6
                                                    21:09 Monday, July 3, 2006
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                  PRIN1         PRIN2         PRIN3
      
                 SHINTYOU      0.560178      -.651641      0.511434
                 TAIJYUU       0.635557      -.057882      -.769881
                 KYOUI         0.531289      0.756316      0.381731
      

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

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

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

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

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

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

    1. seiseki.dat
      中学2年生の成績データ。23名x5科目。国語、社会、数学、理科、英語。
      配布資料に掲載され、例題に使われていたデータ。
    2. food.dat
      100 種類の食品の嗜好度データ。100食品x10グループ。
    3. syumi.dat
      趣味に関するアンケート調査データ。30種類x6グループ。

  6. [予告] 最終レポート
    半年を通して学んできた SAS の使い方、および統計手法を、 自分が興味を持ったデータに適用してみて、興味深い知見を得る体験をしてもらう。

    1. 対象データ :
      • 自分で収集したデータ。
      • 一つである必要はない。複数でも良い。

    2. 作業内容 :
      1. SAS を使って解析し、興味深い知見を引き出そう。
      2. 以下の点に注意しながらレポートを作成しよう。

      3. 利用するデータ解析手法については、特に制限や指定をしないが、 「多変量解析の手法」を使うとより高度なデータ構造が把握できることがある。
      4. 前回のレポートの反省点を踏まえて作成すること。
      5. 興味を持った点や得られた知見に対する考察は人によって個々異なるもので あるので、他人と相談することなく自分の力で解析しレポートを作成すること。

    3. レポート : 以下に挙げるような項目を含めて作成すること。
      • 所属学部名、学籍番号、氏名
      • データ内容の説明
      • どのような点に興味を持ったか
      • 自分の解析目的
      • 何を知りたいためにどのような手法を使ったのか
      • 得られた知見と考察
      • その他、気付いたこと
      • 講義全体を通しての感想 : 今後の参考にしたいので

    4. 提出期限 :
      2006年07月27日(木) 16:10まで??

    5. 注意 :
      1. 紙で提出する場合は、事務所の受付終了時刻に注意すること。 提出日は事務室の受領印で判断する。
      2. 電子メールで提出する場合に、添付ファイルは使わないこと。 また、提出日時はメールヘッダーから判断する。 受領確認メールを必ず返すのでこれを受け取って提出完了となる。
      3. レポートを受領した者の学籍番号は、 講義の連絡ページ に掲載するので、確認すること。 ただし、2回とも提出したからと言って単位が認定されるわけではない点には注意されたい。

  7. 次回は、... : 07月13日 14:45
    • 因子分析
    • ...
[DIR]講義のホームページへ戻ります