ウィルコクソンの符号順位検定

データの読み込みと準備

サンプルデータは、「2-3d 因子分析実例《セールスマンデータ)(2-3d.xls)」[1]を使わせていただきます。もともと因子分析の練習をするためのデータで、セールスマンに対する評価項目がたくさん掲載されていて、多分それぞれ10段階順序尺で評価されています。ここでは、自信と誠実さの2項目の点に差があるかを比較します。

R Console
> x <- read.table(pipe("pbpaste"), header=TRUE) # クリップボードからデータを読み込み、xに代入。ちなみにこちらはMac用のコードでWindowsは、read.table("clipboard", header=TRUE)。
> str(x) # xの構造を確認。
'data.frame':	48 obs. of  2 variables:
 $ jishin  : int  8 10 9 6 4 8 8 9 8 10 ...
 $ seijitsu: int  8 9 9 9 9 10 8 8 8 7 ...
> quantile(x$jishin) # 自信の四分位数を確認。
  0%  25%  50%  75% 100% 
   1    5    8    9   10 
> quantile(x$seijitsu) # 誠実さの四分位数を確認。
  0%  25%  50%  75% 100% 
   0    8    9   10   10 
[1] 松原望の総合案内サイト – 2-3d セールスマン・データの因子分析

 

ウィルコクソンの符号順位検定の実行

対応のある2群の比較なので、ウィルコクソンの符号順位検定を用います(対応のない場合は、ウィルコクソンの順位和検定)。Rにはwilcox.testという関数が用意されていますが、この関数はデータにタイ(同じ値)があった時に正確な値を計算できないらしく、パッケージexactRankTestsをインストールして、正確検定を行うことができるwilcox.exactを用います。ただし、データ数が多いと正確検定はできないようです[1]。

R Console
> library(exactRankTests) #パッケージexactRankTestsを読み込む。
> wilcox.exact(x$jishin, x$seijitsu, paired = TRUE) # ウィルコクソンの符号順位検定の実行。対応のあるのでpaired=TRUEを指定。

	Exact Wilcoxon signed rank test

data:  x$jishin and x$seijitsu
V = 217, p-value = 0.004515
alternative hypothesis: true mu is not equal to 0
[1] データ科学便覧 – Rによるウィルコクソンの符号順位検定

 

効果量の計算

効果量の計算にはパッケージorddomを使います。たくさん結果が出ますが、その中のdeltaを参照します。Cliffの⊿という統計量らしいです。

R Console
> library(orddom) # パッケージorddomの読み込み。
> orddom(x$jishin, x$seijitsu, paired=TRUE) # 効果量の計算。対応のある検定の効果量を求めるので、paired=TRUEと指定。
              within               between               combined             
var1_X_pre    "group 1 (x)"        "group 1 (x)"         "group 1 (x)"        
var2_Y_post   "group 2 (y)"        "group 2 (y)"         "group 2 (y)"        
type_title    "paired"             "paired"              "paired"             
N #Y>X        "28"                 "1334"                "1362"               
N #Y=X        "7"                  "326"                 "333"                
N #Y<X "13" "596" "609" PS X>Y        "0.270833333333333"  "0.264184397163121"   "0.264322916666667"  
PS Y>X        "0.583333333333333"  "0.591312056737589"   "0.591145833333333"  
A X>Y         "0.34375"            "0.336436170212766"   "0.336588541666667"  
A Y>X         "0.65625"            "0.663563829787234"   "0.663411458333333"  
delta         "0.3125"             "0.327127659574468"   "0.639627659574468"  
1-alpha       "95"                 "95"                  "95"                 
CI low        "0.0440754512635316" "0.100496088773753"   "0.048091199407648"  
CI high       "0.538842543477397"  "0.521487080956972"   "0.898995638370245"  
s delta       "0.126869879451573"  "0.106997925003403"   "0.226287565958911"  
var delta     "0.0160959663120567" "0.0114485559550339"  "0.0512060625076087" 
z/t score     "2.46315359761402"   "3.05732713568103"    "2.82661425458352"   
H1 tails p/CI "2"                  "2"                   "2"                  
p             "0.0174901810547552" "0.00367804234616242" "0.00688813617818695"
Cohen's d     "0.468438387829239"  "0.495180357670905"   NA                   
d CI low      "0.0564927026039095" "0.132714240895823"   NA                   
d CI high     "0.960014820446808"  "0.91506188742121"    NA                   
var d.i       NA                   NA                    "0.228766747252536"  
var dj.       NA                   NA                    "0.352014967781705"  
cov(di,dj)    NA                   NA                    "-0.0251846893270277"
var dij       NA                   NA                    "0.74848394824204"   
cov(dih,dhi)  NA                   NA                    "-0.0369770446657613"
cov(db,dw)    NA                   NA                    "0.011830770120259"  
df            "47"                 "47"                  "47"                 
NNT           "3.2"                "3.05691056910569"    NA                   
              metric               
var1_X_pre    "group 1 (x)"        
var2_Y_post   "group 2 (y)"        
type_title    "paired"             
N #Y>X        "1362"               
N #Y=X        "333"                
N #Y<X "609" PS X>Y        "0.340814851416682"  
PS Y>X        "0.659185148583318"  
A X>Y         "0.336588541666667"  
A Y>X         "0.663411458333333"  
delta         "1.10416666666667"   
1-alpha       "95"                 
CI low        "0.322633009077305"  
CI high       "1.88570032425603"   
s delta       "2.69151213793519"   
var delta     "7.24423758865248"   
z/t score     "2.84222796506918"   
H1 tails p/CI "2"                  
p             "0.00660735112231807"
Cohen's d     "0.445771810542274"  
d CI low      "-0.393469713540321" 
d CI high     "0.406684415784957"  
var d.i       "5.84707446808511"   
var dj.       "6.42375886524823"   
cov(di,dj)    NA                   
var dij       NA                   
cov(dih,dhi)  NA                   
cov(db,dw)    NA                   
df            "47"                 
NNT           "3.3348577397763"    

パッケージorddomに含まれている関数の内、以下のようにコマンドを打つとグラフィカルなデータを出してくれます。これは分かりやすい。[1]

R Console
> delta_gr(x$jishin, x$seijitsu, paired=TRUE)
[1] 草薙の研究ログ – Cliff’s deltaや共通言語効果量(common language effect size)などを計算するRパッケージ:”orddom”

Print Friendly, PDF & Email

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください