SAS の初歩プログラミング(2)

統計処理 01 クラス : 第7回目(06/17/99)

前回の SAS の初歩的なプログラムの続きとして、 データがどのような特性を持っているかを把握する指標について紹介する。
  1. 特定の変数の解析 : 全変量の出力は必要ない時
    [例] Lesson 6-2 : 身長と体重のみを計算対象とする
    プログラム : les0602.sas、出力結果 : les0602.out

    proc means data=gakusei;                   : 平均等の算出
       var shintyou taijyuu;                   : 身長と体重について
    run;                                       : 
    

  2. 出力するデータ数を限定 : ケース数が多くて出力が大量になり過ぎるような時。
    データの目視検査の意味で、一回は出力すべきだが、確認が済んだ後は 先頭の数ケースを表示しておけば事足りる。
    [例] Lesson 6-3 : 先頭の10ケースを表示
    プログラム : les0603.sas、出力結果 : les0603.out

    proc print data=gakusei(obs=10);           : データを先頭の10ケースだけ表示
    run;                                       : 
    

  3. 性別ごとの分析 : 男性だけの、女性だけの。より性質がはっきりする。
      : ある特性ごとにグルーピングして解析
      : 身長と体重について男女で差があるか?

    1. 上記プログラムを修正 : Lesson 6-4 :プログラム : les0604.sas
      [参考] : cc, a(または b), d, dd コマンドの活用 : Page 31

       /* Lesson 6-4 */
       /*    File Name = les0604.sas   06/10/99   */
      
      data gakusei;
        infile 'taikaku99.dat';
        input seibetsu $ shintyou taijyuu kyoui;
      
      proc print data=gakusei(obs=10);
      run;
      proc means data=gakusei;                   : 平均、標準偏差、最大最小値の算出
         var shintyou taijyuu;                   : 身長と体重について
      run;                                       :
      proc sort data=gakusei;                    : 並べ替え(ソート)
         by seibetsu;                            : 性別ごとに
      run;                                       : 
      proc means data=gakusei;                   : 平均、標準偏差、最大最小値の算出
         var shintyou taijyuu;                   : 身長と体重について
         by seibetsu;                            : 性別ごとに
      run;                                       : 
      
    2. 出力結果 : les0604.out : 男性と女性では身長や体重の平均に違いがあるのを確認せよ。

                                    SAS システム                             1
                                                 21:26 Wednesday, June 9, 1999
      
                  OBS    SEIBETSU    SHINTYOU    TAIJYUU    KYOUI
      
                    1       F           145         38         . 
                    2       F           154         46         . 
                    3       F           156         49        85 
                    4       F           159         52         . 
                    5       F           159          .         . 
                    6       F           159          .         . 
                    7       M           162         60         . 
                    8       M           163         62         . 
                    9       F           166         48        82 
                   10       M           166         54         . 
      
                                    SAS システム                             2
                                                 21:26 Wednesday, June 9, 1999
      
        Variable   N          Mean       Std Dev       Minimum       Maximum
        --------------------------------------------------------------------
        SHINTYOU  40   169.4475000     7.9068937   145.0000000   185.0000000
        TAIJYUU   38    59.5473684     8.5012793    38.0000000    88.5000000
        --------------------------------------------------------------------
      
                                    SAS システム                             3
                                                 21:26 Wednesday, June 9, 1999
      
      ------------------------------ SEIBETSU=' ' ----------------------------
      
      
        Variable   N          Mean       Std Dev       Minimum       Maximum
        --------------------------------------------------------------------
        SHINTYOU   0             .             .             .             .
        TAIJYUU    0             .             .             .             .
        --------------------------------------------------------------------
      
                                    SAS システム                             4
                                                 21:26 Wednesday, June 9, 1999
      
      ------------------------------- SEIBETSU=F -----------------------------
      
      
        Variable   N          Mean       Std Dev       Minimum       Maximum
        --------------------------------------------------------------------
        SHINTYOU   7   156.8571429     6.4142698   145.0000000   166.0000000
        TAIJYUU    5    46.6000000     5.2725705    38.0000000    52.0000000
        --------------------------------------------------------------------
      
                                    SAS システム                             5
                                                 21:26 Wednesday, June 9, 1999
      
      ------------------------------- SEIBETSU=M -----------------------------
      
      
        Variable   N          Mean       Std Dev       Minimum       Maximum
        --------------------------------------------------------------------
        SHINTYOU  33   172.1181818     5.1429232   162.0000000   185.0000000
        TAIJYUU   33    61.5090909     7.0659555    53.0000000    88.5000000
        --------------------------------------------------------------------
      
    3. プログラムの保存 :

      プログラムエリアのコマンド行で : [入力] file 'les0604.sas'

    [テクニック] 層を分けて分析する場合は、事前に並べ替えが必要

  4. 出力結果の保存 : アウトプットエリアの内容をファイルに保存
    解析結果を保存しておくため。印刷、レポート、...
    1. プログラムを実行(SUBmit)する前に、 アウトプットエリアの過去の記録を消去しておく: [入力] clear
      この処理をしておかないと、過去の全ての記録が全部保存される
    2. 出力結果の保存 :
      アウトプットエリアのコマンド行で : [入力] file 'les0604.out'
      プログラムの保存と同じコマンドだが、保存対象が異なる
    3. 以後、各種エリアの保存や呼び出しについてはいちいち指示しない。 各自の判断で作業してほしい。
    4. 考察例 : 解析結果から、いくつかの知見が導き出せる
      • 平均的にみて男性の方が、身長は 20cm 弱高く、体重は 15Kg 程重い。
      • 最小値、最大値を見て、男女で身長は並行的に高くなっているが、 体重は並行的ではない。
      • 標準偏差は、全体で見るよりも分離した時の方が小さい。
      • ...

  5. 演習 : 以前、電子化してもらったデータを 今回の演習例を参考に解析してみよ。 解析結果だけでなく、データ自身の説明やどういうところに興味を持って 対象に選んだかの理由等も報告する事。考察も大事。
    [補足] : 夏休みまでに提出してもらう。期日は後日指定する。
    1. 皆さんの小遣いに関するデータ(kodukai99.dat)
    2. 連休中に収集してもらった興味あるデータ(個人ごとに異なるはず)

分布特性の把握

統計処理 01 クラス : 第7回目(06/17/99)

前回の SAS の初歩的なプログラムの続きとして、 データがどのような分布特性を持っているかを把握する指標について紹介する。

  1. 分布特性の把握とそれに役立つ統計量

    Lesson 7-1: 皆さんの小遣いに関するデータ (kodukai99.dat) をファイルから読み込んで小遣い額の平均と基礎統計量を求めてみよう。 なお、ファイル名は各自で命名したものを指定せよ。 ここでは「kodukai99.dat」という名前で説明する。

    1. プログラム : les0701.sas
       /* Lesson 7-1 */
       /*    File Name = les0701.sas   06/17/99   */
      
      data kodukai;                             : データ名の定義
        infile 'kodukai99.dat';                 : ファイル名の指定
        input jitaku $ kodukai;                 : 変量名、型
                                                :
      proc print data=kodukai(obs=10);          : データの表示
      run;                                      :
      proc means data=kodukai;                  : 平均、標準偏差、最大最小値の算出
      run;                                      :
      proc univariate data=kodukai plot;        : 基礎統計量の算出、plot オプション
      run;                                      :
      

    2. 出力結果 : les0701.out
                                    SAS システム                             1
                                                   20:53 Monday, June 14, 1999
      
                              OBS    JITAKU    KODUKAI
      
                                1      G          0   
                                2      G          0   
                                3      J          0   
                                4      J          0   
                                5      J          0   
                                6      J          0   
                                7      J          0   
                                8      J          0   
                                9      J          0   
                               10      J          0   
      
                                    SAS システム                             2
                                                   20:53 Monday, June 14, 1999
      
             Analysis Variable : KODUKAI
      
      
              N          Mean       Std Dev       Minimum       Maximum
             ----------------------------------------------------------
             37      42567.57      49730.13             0     150000.00
             ----------------------------------------------------------
      
                                    SAS システム                             3
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                                      Moments
      
                      N                37  Sum Wgts         37
                      Mean       42567.57  Sum         1575000
                      Std Dev    49730.13  Variance   2.4731E9
                      Skewness   0.887128  Kurtosis   -0.60989
                      USS        1.561E11  CSS        8.903E10
                      CV         116.8263  Std Mean   8175.583
                      T:Mean=0   5.206671  Pr>|T|       0.0001
                      Num ^= 0         22  Num > 0          22
                      M(Sign)          11  Pr>=|M|      0.0001
                      Sgn Rank      126.5  Pr>=|S|      0.0001
      
                                    SAS システム                             4
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                                  Quantiles(Def=5)
      
                       100% Max    150000       99%    150000
                        75% Q3      80000       95%    150000
                        50% Med     25000       90%    120000
                        25% Q1          0       10%         0
                         0% Min         0        5%         0
                                                 1%         0
                       Range       150000                    
                       Q3-Q1        80000                    
                       Mode             0                    
      
                                    SAS システム                             5
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                                      Extremes
      
                         Lowest    Obs     Highest    Obs
                              0(      15)   120000(      33)
                              0(      14)   120000(      34)
                              0(      13)   130000(      35)
                              0(      12)   150000(      36)
                              0(      11)   150000(      37)
      
                                    SAS システム                             6
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                              Missing Value         .
                              Count                 8
                              % Count/Nobs      17.78
      
                                    SAS システム                             7
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                  Stem Leaf                     #             Boxplot
                    14 00                       2                |   
                    12 000                      3                |   
                    10 0000                     4                |   
                     8 00                       2             +-----+
                     6                                        |     |
                     4 000                      3             |  +  |
                     2 0555000                  7             *-----*
                     0 0000000000000000        16             +-----+
                       ----+----+----+----+              
                   Multiply Stem.Leaf by 10**+4          
      
                                    SAS システム                             8
                                                   20:53 Monday, June 14, 1999
      
                                Univariate Procedure
      
      Variable=KODUKAI
      
                                   Normal Probability Plot              
              150000+                                          *  +*++  
                    |                                     ** *++++      
                    |                                **** ++++          
                    |                               * ++++              
                    |                             ++++                  
                    |                         +++***                    
                    |                     +++* * *                      
               10000+    *   * * ** *********                           
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      

    3. 算出統計量の説明 : 分布形状を把握するのに利用

      • Variable : 変量名
      • N : サンプルサイズ、測定個数
      • Mean : 平均、μで示すことが多い
        加重和をサンプル数で割ったもの
      • Std Dev : 標準偏差(Standard Deviation)、σで示すことが多い
        ばらつきを示す指標、正規分布の場合、3σにほぼ全数が含まれる
      • Minimum & Maximum : 最小値と最大値
      • Variance : 分散、標準偏差の二乗
        σとならんで、ばらつきを示す指標
      • Quantiles : 四分位数
        上位から、0%目(Q0、最小値)、25%目(Q1)、50%目(Q2、
        Median、中央値)、75%目(Q3)、100%目(Q4 最大値)
      • Mode : 最頻値
      • Extremes : 最上位と最下位の数サンプル
        端点、異常値の検出に使う
      • Stem Leaf : 樹葉図、Stem and Leaf
        頻度分布、樹木になぞらえて。頻度だけでなく構成値も解る
        時刻表にも似ている

      • Box Plot : 箱髭図
        分布形状を見る。異常値の検出に。
        箱 : 下端と上端は、25%点と75%点。プラスは平均値。* は最頻値。
        髭 : 下端と上端は、平均値からのずれ。
        髭の外側にある点があれば、それらを 0 や * で表示。異常値の可能性。
      • Normal Probability Plot : 正規確率プロット
        分布が正規分布かどうかを確かめる

  2. 分布形状を見るには : 平均や基礎統計量から知れる情報とのマッチング

    1. プログラム : les0702.sas
       /* Lesson 7-2 */
       /*    File Name = les0702.sas   06/17/99   */
      
      data kodukai;
        infile 'kodukai99.dat';
        input jitaku $ kodukai;
      
      proc print data=kodukai(obs=10);
      run;                                      :
      proc chart data=kodukai;                  : 図示
        hbar kodukai;                           : 水平棒グラフで
      run;                                      :
      proc chart data=kodukai;                  : 図示
        vbar kodukai;                           : 垂直棒グラフで
      run;                                      :
      

    2. 出力結果 : les0702.out
                                    SAS システム                             2
                                                   20:54 Monday, June 14, 1999
      
             KODUKAI                            Cum.              Cum.
             Midpoint                     Freq  Freq  Percent  Percent
                       |
                   0   |****************    16    16    43.24    43.24
               30000   |*******              7    23    18.92    62.16
               60000   |***                  3    26     8.11    70.27
               90000   |******               6    32    16.22    86.49
              120000   |***                  3    35     8.11    94.59
              150000   |**                   2    37     5.41   100.00
                       |
                       -----+----+----+-
                            5    10   15
      
                           Frequency
      
                                    SAS システム                             3
                                                   20:54 Monday, June 14, 1999
      
       Frequency
      
       16 +     *****                                                         
          |     *****                                                         
       12 +     *****                                                         
          |     *****                                                         
        8 +     *****     *****                                               
          |     *****     *****               *****                           
        4 +     *****     *****     *****     *****     *****                 
          |     *****     *****     *****     *****     *****     *****       
          ------------------------------------------------------------------
                  0       30000     60000     90000    120000    150000
      
                                   KODUKAI Midpoint
      

  3. 分布の把握について : 気をつける点

  4. 演習 : 以前、電子化してもらったデータを 今回の演習例を参考に解析してみよ。 解析結果だけでなく、データ自身の説明やどういうところに興味を持って 対象に選んだかの理由等も報告する事。考察も大事。
    [補足] : 夏休みまでに提出してもらう。期日は後日指定する。
    1. 皆さんの小遣いに関するデータ(kodukai99.dat)
    2. 皆さんの体格に関するデータ(taikaku99.dat)
    3. 連休中に収集してもらった興味あるデータ(個人ごとに異なるはず)

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