平均値の比較、if文

統計解析 02 クラス : 第09回 (06/22/06)

 今回は、単変量の集計としてよく利用される平均値の検定方法について紹介する。 仮定条件や判断基準等、一見複雑に見える論理展開なので、 混乱しないように理解してほしい。
 後半では、条件に合致した場合に、特定の処理を実行するための if 文について紹介する。
  1. 平均値の比較 : 2つのグループの「平均値」に統計的に差があると言えるのか?

  2. 正規性の確認
    各分布を正規分布と見て良いかは、 第5回 の第1節で説明した「proc univariate」の「Normal Probability Plot」で判断する。 「plot オプション」を忘れないように。
    1. プログラム : les0901.sas
       /* Lesson 09-1 */
       /*    File Name = les0901.sas   06/22/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui 
              jitaku $ kodukai carryer $ tsuuwa;
      
      if sex^='M' & sex^='F' then delete;          : 性別不明は除外する
      
      proc print data=gakusei(obs=5);
      run;
      
      proc sort data=gakusei;
        by sex;
      run;
      proc univariate data=gakusei plot;
        var shintyou taijyuu kyoui kodukai;
        by sex;
      run;
      
    2. 出力結果 : les0901.lst
                                    SAS システム                             8
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=F ---------------------------------
                                Univariate Procedure
      Variable=SHINTYOU
                                   Normal Probability Plot              
               172.5+                                              +*++*
                    |                                  ********+*+*     
                    |                         **********+               
                    |                **********+                        
                    |         ********+                                 
               147.5+*++*+*++**                                         
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            15
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=F ---------------------------------
                                Univariate Procedure
      Variable=TAIJYUU
                                   Normal Probability Plot              
                57.5+                                       *****+*+++* 
                    |                          **********+*+            
                47.5+                **********++                       
                    |       ****+**+*++                                 
                37.5++*+++*+                                            
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            22
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=F ---------------------------------
                                Univariate Procedure
      Variable=KYOUI
                                   Normal Probability Plot              
                92.5+                                           ++++*+++
                    |                          **********+*+*+++*       
                82.5+              *******+*+**+++++                    
                    |     ++*++**+*++++                                 
                72.5++++*+                                              
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            29
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=F ---------------------------------
                                Univariate Procedure
      Variable=KODUKAI
                                   Normal Probability Plot              
              325000+                                                  *
                    |                                                   
                    |                                               *   
              175000+                                          ** *  +++
                    |                                     *****++++++   
                    |                          +**********              
               25000+*  * * ********************                        
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            36
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=M ---------------------------------
                                Univariate Procedure
      Variable=SHINTYOU
                                   Normal Probability Plot              
               187.5+                                                 +*
                    |                                      ******+**++  
                    |                             *********++           
               172.5+                   ***********+                    
                    |           *********+                              
                    |  *+*******+                                       
               157.5+*++                                                
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            43
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=M ---------------------------------
                                Univariate Procedure
      Variable=TAIJYUU
                                   Normal Probability Plot              
                 105+                                                  *
                    |                                                * *
                    |                                             ** +++
                  75+                                   *********+*++   
                    |                     ***************               
                    |     *****************+                            
                  45+*+++*+++++                                         
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            50
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=M ---------------------------------
                                Univariate Procedure
      Variable=KYOUI
                                   Normal Probability Plot              
                 115+                                             *   * 
                    |                                       ***+*+++++++
                    |                         ***********+*+            
                  85+            *************++                        
                    |   ++*+*+**++++                                    
                    |+++                                                
                  55+ *                                                 
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
                                    SAS システム                            57
                                                  23:23 Tuesday, June 13, 2006
      -------------------------------- SEX=M ---------------------------------
                                Univariate Procedure
      Variable=KODUKAI
                                   Normal Probability Plot              
              325000+                                                  *
                    |                                                   
                    |                                                 * 
              175000+                                       ****** *+*++
                    |                                  ******++++++     
                    |                          ++*******+               
               25000+*** *************************                      
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
    3. 解釈
      • 基準線にどの程度乗っているかで判断する

      • 正規分布と言っても良さそう : 身長(男, 女)、体重(女)
      • 正規分布から若干離れてる : 体重(男)、胸囲(男、女)
      • 正規分布とは言えなさそう : 小遣い額(男, 女)

      • 比較する両群ともが正規分布の場合は、パラメトリック検定が使える。<=== 身長
      • 比較する両群の少なくとも片方が正規分布でない場合は、ノンパラメトリック検定を使う。<=== 体重、胸囲、小遣い額

  3. パラメトリック検定 : t 検定、Welch の検定
    1. プログラム : les0902.sas
       /* Lesson 09-2 */
       /*    File Name = les0902.sas   06/22/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui 
              jitaku $ kodukai carryer $ tsuuwa;
      
      if sex^='M' & sex^='F' then delete;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc ttest data=gakusei;               : t検定
        class sex;                           : 分類したい特性変数の指定
        var shintyou taijyuu kyoui kodukai;  : 比較したい変量名
      run;                                   : 
      
    2. 出力結果 : les0902.lst
                                    SAS システム                             2
                                                  23:23 Tuesday, June 13, 2006
                                  TTEST PROCEDURE
      Variable: SHINTYOU                                             
      
      SEX       N                Mean             Std Dev           Std Error
      -----------------------------------------------------------------------
      F       110        159.12909091          5.39463453          0.51435822
      M       228        172.20350877          5.41497239          0.35861531
      
      Variances        T       DF    Prob>|T|
      ---------------------------------------
      Unequal   -20.8513    216.2      0.0001
      Equal     -20.8238    336.0      0.0000
      
      For H0: Variances are equal, F' = 1.01    DF = (227,109)    Prob>F' = 0.9790
      
                                    SAS システム                             3
                                                  23:23 Tuesday, June 13, 2006
                                  TTEST PROCEDURE
      Variable: TAIJYUU                                              
      
      SEX       N                Mean             Std Dev           Std Error
      -----------------------------------------------------------------------
      F        78         48.62820513          4.67640936          0.52949909
      M       228         62.16140351          7.89955677          0.52316093
      
      Variances        T       DF    Prob>|T|
      ---------------------------------------
      Unequal   -18.1811    227.3      0.0001
      Equal     -14.2885    304.0      0.0000
      
      For H0: Variances are equal, F' = 2.85    DF = (227,77)    Prob>F' = 0.0000
      
                                    SAS システム                             4
                                                  23:23 Tuesday, June 13, 2006
                                  TTEST PROCEDURE
      Variable: KYOUI                                                
      
      SEX       N                Mean             Std Dev           Std Error
      -----------------------------------------------------------------------
      F        42         82.95238095          3.93825751          0.60768633
      M        69         88.60869565          8.33881320          1.00387514
      
      Variances        T       DF    Prob>|T|
      ---------------------------------------
      Unequal    -4.8201    103.8      0.0001
      Equal      -4.1198    109.0      0.0001
      
      For H0: Variances are equal, F' = 4.48    DF = (68,41)    Prob>F' = 0.0000
      
                                    SAS システム                             5
                                                  23:23 Tuesday, June 13, 2006
                                  TTEST PROCEDURE
      Variable: KODUKAI                                              
      
      SEX       N                Mean             Std Dev           Std Error
      -----------------------------------------------------------------------
      F       107      48579.43925234      45373.45815940       4386.41776369
      M       218      47220.18348624      49351.52901010       3342.50731003
      
      Variances        T       DF    Prob>|T|
      ---------------------------------------
      Unequal     0.2465    227.4      0.8055
      Equal       0.2395    323.0      0.8109
      
      For H0: Variances are equal, F' = 1.18    DF = (217,106)   Prob>F' = 0.3310
      
    3. 結果の見方 : 二段階、このデータでは?
      • 等分散と言えるか? : Prob> F'
        • 身長(97.9%)と小遣い(33.1%)は等分散であると言える ===> t検定 : Equal の項
        • 体重(0.00%)と胸囲(0.00%)は等分散であると言えない ===> Welchの検定 : Unequal の項
      • 平均に差があると言えるか? : Prob>|T|
        • 身長(0.00%, Equal の項)や体重(0.01%, Unequal の項)、胸囲(0.01%, Unequal の項)は性別によって平均に差があると言える。
        • 小遣い(81.1%, Equal の項)は性別によって平均に差があるとは言えない。
        • ただし、体重、胸囲、小遣い額の分布のどちらか一方、または両方が 正規分布とは言えないので、身長以外の結論は信憑性に欠ける。 よって、体重、胸囲、小遣い額については次節で説明するノンパラメトリック検定の結果を待つ必要がある。

      • 検定基準
        • どれくらいの割合(確率)でその仮説が発生するか?
        • 確率が小さい ==> 稀なこと(普通ではない) ==> 有意(分散が等しいとは言えない、平均に差がある)
        • 5% 有意、1% 有意 : 今までの慣習から

    4. [演習1] 上記の結果を、自宅生/下宿生間の差として 検定した場合、身長、体重、胸囲、小遣い額に差があると言えるか 各自で結論づけてみよ

  4. ノンパラメトリック検定 : Wilcoxon 検定
    1. プログラム : les0903.sas

       /* Lesson 09-3 */
       /*    File Name = les0903.sas   06/22/06   */
      
      data gakusei;
        infile 'all06ae.prn'
          firstobs=2;
        input sex $ shintyou taijyuu kyoui 
              jitaku $ kodukai carryer $ tsuuwa;
      
      if sex^='M' & sex^='F' then delete;
      
      proc print data=gakusei(obs=10);
      run;
      
      proc npar1way data=gakusei wilcoxon;   : wilcoxon 検定
        class sex;                           : 分類したい特性変数の指定
        var shintyou taijyuu kyoui kodukai;  : 比較したい変量名
      run;                                   : 
      
    2. 出力結果 : les0903.lst
                                    SAS システム                             2
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
                 Wilcoxon Scores (Rank Sums) for Variable SHINTYOU
                             Classified by Variable SEX
      
                              Sum of     Expected      Std Dev         Mean
         SEX          N       Scores     Under H0     Under H0        Score
      
         F          110       7137.0      18645.0   841.174446    64.881818
         M          228      50154.0      38646.0   841.174446   219.973684
                         Average Scores Were Used for Ties
      
               Wilcoxon 2-Sample Test (Normal Approximation)
               (with Continuity Correction of .5)
      
                                    SAS システム                             3
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
               S =  7137.00   Z = -13.6803   Prob > |Z| = 0.0001
      
               T-Test Approx. Significance = 0.0001
      
               Kruskal-Wallis Test (Chi-Square Approximation)
               CHISQ =  187.17   DF =  1   Prob > CHISQ = 0.0001
      
                                    SAS システム                             4
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
                  Wilcoxon Scores (Rank Sums) for Variable TAIJYUU
                             Classified by Variable SEX
      
                              Sum of     Expected      Std Dev         Mean
         SEX          N       Scores     Under H0     Under H0        Score
      
         F           78    3880.5000      11973.0   673.901338    49.750000
         M          228   43090.5000      34998.0   673.901338   188.993421
                         Average Scores Were Used for Ties
      
               Wilcoxon 2-Sample Test (Normal Approximation)
               (with Continuity Correction of .5)
      
                                    SAS システム                             5
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
               S =  3880.50   Z = -12.0077   Prob > |Z| = 0.0001
      
               T-Test Approx. Significance = 0.0001
      
               Kruskal-Wallis Test (Chi-Square Approximation)
               CHISQ =  144.20   DF =  1   Prob > CHISQ = 0.0001
      
                                    SAS システム                             6
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
                   Wilcoxon Scores (Rank Sums) for Variable KYOUI
                             Classified by Variable SEX
      
                              Sum of     Expected      Std Dev         Mean
         SEX          N       Scores     Under H0     Under H0        Score
      
         F           42       1544.0       2352.0   163.610894   36.7619048
         M           69       4672.0       3864.0   163.610894   67.7101449
                         Average Scores Were Used for Ties
      
               Wilcoxon 2-Sample Test (Normal Approximation)
               (with Continuity Correction of .5)
      
                                    SAS システム                             7
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
               S =  1544.00   Z = -4.93549   Prob > |Z| = 0.0001
      
               T-Test Approx. Significance = 0.0001
      
               Kruskal-Wallis Test (Chi-Square Approximation)
               CHISQ =  24.389   DF =  1   Prob > CHISQ = 0.0001
      
                                    SAS システム                             8
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
                  Wilcoxon Scores (Rank Sums) for Variable KODUKAI
                             Classified by Variable SEX
      
                              Sum of     Expected      Std Dev         Mean
         SEX          N       Scores     Under H0     Under H0        Score
      
         F          107   18462.5000      17441.0   792.073100   172.546729
         M          218   34512.5000      35534.0   792.073100   158.314220
                         Average Scores Were Used for Ties
      
               Wilcoxon 2-Sample Test (Normal Approximation)
               (with Continuity Correction of .5)
      
                                    SAS システム                             9
                                                  23:23 Tuesday, June 13, 2006
      
                         N P A R 1 W A Y  P R O C E D U R E
      
               S =  18462.5   Z =  1.28902   Prob > |Z| = 0.1974
      
               T-Test Approx. Significance = 0.1983
      
               Kruskal-Wallis Test (Chi-Square Approximation)
               CHISQ =  1.6632   DF =  1   Prob > CHISQ = 0.1972
      
    3. 結果の見方 : Prob>|Z|
      • この手法では身長/体重/胸囲/小遣いの検定結果はパラメトリック手法と同じであった。

      • 身長(0.01%)や体重(0.01%)、胸囲(0.01%)は性別によって平均に差があると言える。
      • 小遣い(19.7%)は性別によって平均に差があるとは言えない。

    4. [演習2] 上記の結果を、自宅生/下宿生間の差として 検定した場合、身長、体重、胸囲、小遣い額に差があると言えるか 各自で結論づけてみよ

  5. 対応のある 2群の検定
    1. プログラム : les0904.sas

       /* Lesson 09-4 */
       /*    File Name = les0904.sas   06/22/06   */
      
      data pair;                                     :
        input x y @@;                                : @@ は 1行に複数のデータがあることを示す 
        dif=x-y;                                     : 差(difference)を計算する
      cards;                                         : データをプログラム内に記述する
        3.51 3.39  3.07 3.39  3.29 3.20  3.03 3.11   : x1,y1,  x2,y2,  x3,y3,  x4,y4,
        3.38 3.17  3.30 3.09  3.15 3.17  3.25 3.09   : x5,y5,  x6,y6,  x7,y7,  x8,y8
      ;                                              :
                                                     :
      proc print data=pair;                          :
      run;                                           :
      proc univariate data=pair plot;                :
        var dif;                                     : 差について
      run;                                           :
      
    2. 出力結果 : les0904.lst
                                    SAS システム                             1
                                                  23:23 Tuesday, June 13, 2006
      
                            OBS      X       Y      DIF
      
                             1     3.51    3.39     0.12
                             2     3.07    3.39    -0.32
                             3     3.29    3.20     0.09
                             4     3.03    3.11    -0.08
                             5     3.38    3.17     0.21
                             6     3.30    3.09     0.21
                             7     3.15    3.17    -0.02
                             8     3.25    3.09     0.16
      
                                    SAS システム                             2
                                                  23:23 Tuesday, June 13, 2006
                                Univariate Procedure
      Variable=DIF
                                      Moments
      
                      N                 8  Sum Wgts          8
                      Mean        0.04625  Sum            0.37
                      Std Dev    0.180629  Variance   0.032627
                      Skewness   -1.31523  Kurtosis   1.511099
                      USS          0.2455  CSS        0.228388
                      CV         390.5489  Std Mean   0.063862
                      T:Mean=0   0.724218  Pr>|T|       0.4924
                      Num ^= 0          8  Num > 0           5
                      M(Sign)           1  Pr>=|M|      0.7266
                      Sgn Rank          7  Pr>=|S|      0.3594
      
                                    SAS システム                             5
                                                  23:23 Tuesday, June 13, 2006
                                Univariate Procedure
      Variable=DIF
                  Stem Leaf                     #             Boxplot
                     2 11                       2                |   
                     1 26                       2             +-----+
                     0 9                        1             |  +  |
                    -0 82                       2             +-----+
                    -1                                           |   
                    -2                                           |   
                    -3 2                        1                |   
                       ----+----+----+----+              
                   Multiply Stem.Leaf by 10**-1          
      
                                    SAS システム                             6
                                                  23:23 Tuesday, June 13, 2006
                                Univariate Procedure
      Variable=DIF
                                   Normal Probability Plot              
                0.25+                                  *++++*           
                    |                           *++*+++                 
                    |                       *++++                       
               -0.05+                *+++*++                            
                    |            +++++                                  
                    |      ++++++                                       
               -0.35+ +++++     *                                       
                     +----+----+----+----+----+----+----+----+----+----+
                         -2        -1         0        +1        +2     
      
    3. 結果の見方 :
      • T:Mean=0 : 平均=0 (帰無仮説)の検定のための t 統計量
      • Pr>=|T| : t 統計量の両側有意確率
        • t 統計量を適用する場合は、差の分布が正規分布に従っていることを仮定している
        • 差の分布が正規分布をしているかを確認するには : Normal Probability Plot
      • M(Sign) : 母集団の中央値がゼロであるという仮説を検定するための符合付き順位和検定統計量
      • Pr>=|M| : 母集団の中央値がゼロであるという仮説の下で、その符合統計量よりも大きい絶対値が得られる確率
      • Sgn Rank : 平均=0 (帰無仮説)の検定のための符合付き順位和検定統計量
      • Pr>=|S| : 符合付き順位和検定統計量のための近似的有意確率

      • この例では、ほぼ正規分布と言えそうだ。少数サンプルなので確度は低い。
      • どの統計指標を用いても、差がゼロであることが結構な確率で起りそう : 49.2%(Pr>=|T| の項), 72.7%(Pr>=|M| の項), 35.9%(Pr>=|S| の項)。
        つまり、差があるとは言えない。薬が効いているとは断定できない。

  6. if 文 : ある条件に合致した場合に、特定の処理を実行する。
    [例1] 目的のサンプルだけを抽出する : 条件を書き並べる
    [例2] 変量の値を割り当てなおす : 新しい値を右辺に書く
    [例3] 新しい変量を定義する : 新しい変量を左辺に書く

    [例4] 複数の処理をさせたい場合 : do 〜 end で囲む

    [比較演算子]

    = : 等しい
    ^= : 等しくない
    > : より大きい
    < : より小さい
    >= : 以上
    <= : 以下

    [論理演算子]

    ^ : 否定(NOT)
    & : 論理和(AND)
    | : 論理積(OR)

  7. 次回は、... : 06月29日 14:45
    • 二変量の関係
    • 多変量解析 : 単回帰分析、重回帰分析、...
    • ...

  8. [おまけ1] 変数変換 : 新しい変量の算出 : [注意] 以下はあくまでも計算できることの例です。
    以下に示したような演算子や関数を使って、新しい変量を生成することができる。 利用可能なものの一部を掲載しておく。
    data gakusei;
      infile 'all06ae.prn' firstobs=2;
      input sex $ shintyou taijyuu kyoui jitaku $ kodukai carryer $ tsuuwa;
    
      dekasa=shintyou+taijyuu+kyoui;                        : 変量間の加減乗除
      kyo_2=kyoui**2;                                       : 二乗
      kyo_sr=sqrt(kyoui);                                   : ルート
    

    [算術演算子]

    + : 足し算を算出します。
    - : 引き算を算出します。
    * : 掛け算を算出します。
    / : 割り算を算出します。
    ** : 巾乗を算出します。
    sqrt : 平方根(ルート)を算出します。

    [数値関数]

    arcos : 逆余弦(アークコサイン)を算出します。
    arsin : 逆正弦(アークサイン)を算出します。
    atan : 逆正接(アークタンジェント)を算出します。
    cos : 三角関数の余弦(コサイン)を求めます。
    cosh : 双曲線の余弦(コサイン)を求めます。
    sin : 正弦(サイン)を算出します。
    sinh : 双曲線正弦を算出します。
    tan : 正接(タンジェント)を算出します。
    tanh : 双曲線正接の値を算出します。
    ceil : 引数より大きいかまたは等しい整数のうち最小の値を戻します。
    floor : 引数より小さいかまたは等しい整数のうち最大のものを戻します。
    fuzz : 引数と最も近い整数との差が10^-12以内のときに、その整数を戻します。
    int : 小数部を切り捨てて、整数値を戻します。
    round : 四捨五入します。
    tranc : 指定された長さに切り捨てた数値を戻します。

  9. [おまけ2] データの生成 : 乱数で(正規乱数) : 種(seed)の指定。種は任意の数値(普通は整数)。
    data randnum;
     do i=1 to 200;
       x=rannor(12345);
       output;
     end;
    run;
    
    プログラム例 : les0905.sas、 出力結果 : les0905.lst

    [乱数関数] : 乱数を生成する関数

      rannor : 正規乱数を生威します。
      ranuni : (0,1)の間の一様乱数を生成します。
      ranbin : 二項分布に従う乱数を生成します。
      rancau : コーシー乱数を生成します。
      ranexp : 指数乱数を生成します。
      rangam : ガンマ分布に従う乱数を生成します。
      ranpoi : ポアソン分布に従う乱数を生成します。
      rantbl : 指定した確率重み関数から、乱数を生成します。
      rantri : 三角分布に従う乱数を生成します。

  10. [おまけ3] 単変量、二変量を視覚的に捉えると? by Mathematica
    1. 1 dim. Normal Distribution [式(a)] 1次元正規分布 N(0,1)
    2. 2 dim. Normal Distribution [式(b)] 2次元正規分布 N({0,0},{1,1}, ρ=0.0)
    3. 2 dim. Normal Distribution [式(c)] 2次元正規分布 N({0,0},{1,1}, ρ=0.7)
    4. 2 dim. Normal Distribution [式(d)] 2次元正規分布 N({0,0},{1,1}, ρ=0.7)、y=1 で切り出し
    5. 2 dim. Normal Distribution [式(e)] 2次元正規分布 N({0,0},{1,1}, ρ=0.7)、x+y=2 で切り出し
[DIR]講義のホームページへ戻ります