主成分分析

統計解析 03 クラス : 第13回 (01/15/04)

  1. 主成分分析(Principal Component Analysis, PCA)
     いくつか(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   01/15/04   */
      
      data gakusei;
        infile 'all03b.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. 出力結果 : les1301.lst
      • 身長と体重の散布図
      • 各変量の平均、標準偏差、分散共分散行列
      • 固有値、比率(寄与率)、累積寄与率 : 解釈に使う
      • 固有ベクトル(係数a1とa2) : 解釈に使う
      • 主成分得点 : 各個人の得点(z)、2つある
      • 第1軸と第2軸の主成分得点の散布図
                                    SAS システム                             2
                                             21:31 Thursday, December 18, 2003
      
             プロット : HEIGHT*WEIGHT.  凡例: A = 1 OBS, B = 2 OBS, ...
                   (NOTE: 36 オブザベーションが欠損値です.)
           HEIGHT |
              200 +
                  |
                  |                               B       A
              180 +                       A ADCDDCBCA A B      A     A
                  |                    AACDJHRMGFCDDCB BA
                  |                  ADAGHEEDCBBDAA  A        A
              160 +                ADBDBHCCAABB
                  |           A   D  DCCA A   A
                  |             A AAA
              140 +
                  ---+-----------+-----------+-----------+-----------+--
                    20          40          60          80          100
                                          WEIGHT
      
                                    SAS システム                             3
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
           229 Observations
             2 Variables
                                 Simple Statistics
      
                                      HEIGHT            WEIGHT
      
                      Mean       168.8410480       58.78515284
                      StD          7.9565305        9.08518881
      
                                    SAS システム                             4
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                                       HEIGHT            WEIGHT
      
                     HEIGHT       63.30637784       51.16008580
                     WEIGHT       51.16008580       82.54065579
      
                           Total Variance = 145.84703363
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         124.980         104.112        0.856923         0.85692
       PRIN2          20.867            .           0.143077         1.00000
      
                                    SAS システム                             5
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                        PRIN1         PRIN2
      
                         HEIGHT      0.638457      0.769658
                         WEIGHT      0.769658      -.638457
      
                                    SAS システム                             6
                                             21:31 Thursday, December 18, 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.2189  -5.07902
         2  F  148.0  42.0   .  J   50000               .  -26.2249  -5.32387
         3  F  148.0  43.0  80  J   50000  DoCoMo    4000  -25.4553  -5.96233
         4  F  148.9    .    .  J   60000               .     .        .     
         5  F  149.0  45.0   .  G   60000               .  -23.2775  -6.46959
         6  F  150.0  46.0  86      40000               .  -21.8694  -6.33839
         7  F  151.0  50.0   .  G   60000  J-PHONE      .  -18.1523  -8.12256
         8  F  151.7  41.5  80  J   35000               .  -24.2475  -2.15691
         9  F  152.0  35.0  77  J   60000  DoCoMo    2000  -29.0587   2.22396
      
                                    SAS システム                             8
                                             21:31 Thursday, December 18, 2003
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
                 (NOTE: 36 オブザベーションが欠損値です.)
          PRIN2 |                            |
             10 +                            A  A  BA
                |                     AA  BB |ABBAAACA  B
                |         A       B C CAAFBBEGCFGECAAD  A
              0 +-------------ABA-A-BBAI-BEAFEDEECABDB-C--A-----A---------
                |            A  C BBB AC A  AAB DDBADA A
                |        A  B AA AAA A A A BBAAB  A BA  AAC
            -10 +                    A   A   |      AA            A
                |                            |
                |                            |
            -20 +                            |              A        A
                ---+------------+------------+------------+------------+--
                  -40          -20           0           20           40
                                           PRIN1
      
                                    SAS システム                             9
                                             21:31 Thursday, December 18, 2003
      
       OBS SEX HEIGHT WEIGHT CHEST JITAKU KODUKAI CARRIER TSUUWA PRIN1 PRIN2
      
         1  F   148.9    .     .     J      60000             .    .     .  
         2  F   153.0    .     .     G     120000 DoCoMo    200    .     .  
         3  F   155.0    .     .     J      20000             .    .     .  
         4  F   156.0    .     .     J      30000             .    .     .  
         5  F   156.0    .     .     J      50000             .    .     .  
      <略>
      
                                    SAS システム                            35
                                             21:31 Thursday, December 18, 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
      
        247  M  170.0   74.0   90  J       0             .  12.4502  -8.82203
        248  M  178.0   68.0    .  J  100000  DoCoMo  4000  12.9399   1.16597
        249  M  175.0   74.0    .  J       0             .  15.6424  -4.97374
        250  M  180.0   70.0    .  J   40000  au      4000  15.7561   1.42837
        251  M  180.0   70.0    .          .             .  15.7561   1.42837
        252  M  178.7   71.2   95          0             .  15.8497  -0.33833
        253  M  173.5   76.5    .  G  100000             .  16.6089  -7.72437
        254  M  184.0   68.0   85      30000             .  16.7706   5.78392
        255  M  182.0   70.0   90  G  100000             .  17.0330   2.96769
        256  M  185.0   68.0   93  J       0             .  17.4091    6.5536
        257  M  175.0   77.0   95  G  130000             .  17.9514   -6.8891
        258  M  176.5   78.0   96  J   10000             .  19.6788   -6.3731
        259  M  177.0   78.0    .  J   40000             .  19.9980   -5.9883
        260  M  181.5   74.5    .  G  120000  au      3000  20.1772   -0.2902
        261  M  178.0   78.0  110  G   50000             .  20.6364   -5.2186
        262  M  169.3   88.5   94  J       0             .  23.1633  -18.6184
        263  M  186.0   82.0    .  J       0             .  28.8227   -1.6152
        264  M  182.0   90.0  100  J   40000             .  32.4262   -9.8014
        265  M  178.0  100.0  112  G   60000             .  37.5689  -19.2646
      

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

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

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

       /* Lesson 13-2 */
       /*    File Name = les1302.sas   01/15/04   */
      
      data gakusei;
        infile 'all03b.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. 出力結果 : les1302.lst
      • 各変量の平均、標準偏差、共分散行列
      • 固有値、比率(寄与率)、累積寄与率
      • 固有ベクトル
      • 主成分得点
      • 第1軸〜第3軸の散布図

                                    SAS システム                             3
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
            87 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       167.8827586       59.43908046       86.90804598
             StD          8.5952286       11.02480666        7.98637238
      
                                    SAS システム                             4
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                 Covariance Matrix
      
                              HEIGHT            WEIGHT             CHEST
      
            HEIGHT        73.8779551        66.1455654        25.0774659
            WEIGHT        66.1455654       121.5463619        58.2222400
            CHEST         25.0774659        58.2222400        63.7821438
      
                                    SAS システム                             5
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                           Total Variance = 259.20646084
      
                        Eigenvalues of the Covariance Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         197.118         153.734        0.760467         0.76047
       PRIN2          43.384          24.679        0.167371         0.92784
       PRIN3          18.705            .           0.072162         1.00000
      
                                    SAS システム                             6
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.493745      -.687917      0.531963
                  WEIGHT      0.759061      0.042449      -.649634
                  CHEST       0.424313      0.724547      0.543131
      
                                    SAS システム                             7
                                             21:31 Thursday, December 18, 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.2265  7.9747 -3.64949
          4 F 148.9   .   . J  60000             .    .       .       .     
          5 F 149.0 45.0  . G  60000             .    .       .       .     
          6 F 150.0 46.0 86    40000             . -19.4159 11.0735 -1.27568
          7 F 151.0 50.0  . G  60000 J-PHONE     .    .       .       .     
          8 F 151.7 41.5 80 J  35000             . -24.5382  5.3657 -0.70677
          9 F 152.0 35.0 77 J  60000 DoCoMo   2000 -30.5969  2.7098  2.04604
      
                                    SAS システム                             9
                                             21:31 Thursday, December 18, 2003
              プロット : PRIN2*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 178 オブザベーションが欠損値です.)
      PRIN2 |                          |
         20 +                          |
            |              A         A |  A   A         A          A
            |           B  A BCABA  AA | A AB    A    A
          0 +--------A-------ABBCABBB--D-BFABACA--AAA-------A-----------------
            |             A   A    A  AAAABAAC   AA
            |                    A     A A     A
        -20 +                A         |
            |                          |
            |                          |
        -40 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      
                                    SAS システム                            10
                                             21:31 Thursday, December 18, 2003
              プロット : PRIN3*PRIN2.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 178 オブザベーションが欠損値です.)
      PRIN3 |                                      |
         10 +                                      |
            |                       A  A   AB     A|            A A
            |                     A A   A AA   ADAEACAAA BBC       A
          0 +--------------------------A--A-A--A--CAB-BAABAAA--AA-------------
            |                           AA     AAABB C  AAA  A
            |                     A          AAA   |AA          A  A
        -10 +                                      |   A
            |           A                          |     A
            |                                      |
        -20 +                                      |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -30         -20         -10          0          10          20
                                           PRIN2
      
                                    SAS システム                            11
                                             21:31 Thursday, December 18, 2003
              プロット : PRIN3*PRIN1.  凡例: A = 1 OBS, B = 2 OBS, ...
             (NOTE: 178 オブザベーションが欠損値です.)
      PRIN3 |                          |
         10 +                          |
            |                          B   A BA   A     A
            |        A     A  BACAABA  A DEABA A BA
          0 +-----------A--A-BBBAAA-A--CA-CAA---------------------------------
            |           A    AA A  A A | AA BAC    AA
            |             A      A  AAA|       A            A      A
        -10 +                 A        |
            |                A         |              A
            |                          |
        -20 +                          |
            ---+-----------+-----------+-----------+-----------+-----------+--
              -40         -20          0          20          40          60
                                           PRIN1
      

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

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

  4. 相関行列を使う理由

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

       /* Lesson 13-3 */
       /*    File Name = les1303.sas   01/15/04   */
      
      data gakusei;
        infile 'all03b.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. 出力結果 : les1303.lst
      • 各変量の平均、標準偏差、相関行列
      • 固有値、比率(寄与率)、累積寄与率
      • 固有ベクトル
      • 主成分得点
      • 第1軸〜第3軸の散布図

                                    SAS システム                             3
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
            87 Observations
             3 Variables
                                 Simple Statistics
      
                             HEIGHT            WEIGHT             CHEST
      
             Mean       167.8827586       59.43908046       86.90804598
             StD          8.5952286       11.02480666        7.98637238
      
                                    SAS システム                             4
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                 Correlation Matrix
      
                                 HEIGHT      WEIGHT       CHEST
      
                     HEIGHT      1.0000      0.6980      0.3653
                     WEIGHT      0.6980      1.0000      0.6613
                     CHEST       0.3653      0.6613      1.0000
      
                                    SAS システム                             5
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                       Eigenvalues of the Correlation Matrix
      
                  Eigenvalue      Difference      Proportion      Cumulative
      
       PRIN1         2.16120         1.52577        0.720400         0.72040
       PRIN2         0.63543         0.43206        0.211809         0.93221
       PRIN3         0.20337          .             0.067790         1.00000
      
                                    SAS システム                             6
                                             21:31 Thursday, December 18, 2003
                            Principal Component Analysis
      
                                    Eigenvectors
      
                                 PRIN1         PRIN2         PRIN3
      
                  HEIGHT      0.552278      -.679465      0.483028
                  WEIGHT      0.637739      -.028823      -.769713
                  CHEST       0.536916      0.733142      0.417403
      

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

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

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

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

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

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

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

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

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

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

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

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

    4. 提出期限 :
      2004年01月29日(木) 21:00まで

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

  8. データやプログラムのバックアップ
    本年度を終えると(3月まで?)、stat システムにログインできなくなり、 それと同時に stat システム内に保存してあるデータやプログラムも 呼び出せなくなる(正確には消去されてしまう)。 この半年間の勉強成果を残しておきたい人は、Windows 側に転送して、 FD や MO に早めにバックアップを取るようにして下さい。

  9. 最後に
    この講義を通して、「統計」や「データ解析」と言う言葉に 多少なりとも親しみを持っていただけたであろうか? 統計手法については、数式よりもその手法の考え方や目的に重点をおいて 説明したつもりである。 また、それらを計算する"道具"として SAS を使った。
    今後いろいろな場面で、種々の数値列に出会うことになると思うが、 提示された数値にはどの様な意味(と意図)があり、 どう理解して、個々人としてどうアクションを起すかの、 一つの判断手段として活用してもらえれば幸いである。

    なお、今まで紹介していた私のメールアドレスは実は講義用のものであった。 今後、もし統計に関して何か疑問に遭遇し、私に連絡・相談してみたいと思った時は、 以下のアドレスを使ってください。

    メールアドレス : hayashi@rd.dnc.ac.jp

    皆さんの期待に応えられたか心許無い部分もありますが、半年間ご苦労様でした。

  10. 次回は??? : 01月29日 14:45
    • 01月22日はレポート作成

    • 演習? 自習? レポート作成?
    • 因子分析? データを転送しておくこと
    • 新しいデータの生成と便利なコマンド?
    • 質問会? ...
[DIR]講義のホームページへ戻ります