My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

ノンパラメトリック検定 Wilcoxsonの符号つき順位検定(対応あり)をR(R言語)で。wilcox.test()

Rコード

#
# ノンパラメトリック検定 Wilcoxsonの符号つき順位検定(対応あり)
#




#
# 参考にするデータや帰無仮説の立て方は、
#『パソコンで簡単! すぐできる生物統計 統計学の考え方から統計ソフトSPSSの使い方まで』
# 第8章 p.145~149
#




#
# 帰無仮説
# "治療の前後でメディアン(median)のレベルに差はない"
#




治療前_vec <- c(4, 5, 3, 4, 5, 6, 4, 4, 5, 5)
治療後_vec <- c(3, 2, 1, 5, 3, 3, 4, 3, 3, 2)
df <- data.frame(治療前 = 治療前_vec, 治療後 = 治療後_vec)
df




summary(df)




# wilcox.test()
# 計算されている統計量は、マン・ホイットニーのU検定
# マン・ホイットニーのU検定もウィルコクソンもp値は同じである。
# "ウィルコクソン = マン・ホイットニー検定"である。
# 対応のある場合には、paired = TRUEを指定。
# 連続性の補正をしない場合には、corrct = FALSEを指定。
wilcox.test(df$治療前, df$治療後, paired = TRUE, correct = FALSE)
#
# p-value = 0.0141 であるので、0.014 < 0.05 となり、帰無仮説は棄却される。
# つまり、メディアン(median)が治療前後で違う。
# (SPSSの場合、"治療が有意差を示したといえる"根拠の具体的数値が諸々出るようだ)。
#
#
# なお、
#
# 警告メッセージ:
# 1:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,  で:
#   タイがあるため、正確な p 値を計算することができません
# 2:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,  で:
#   ゼロ値のため、正確な p 値を計算することができません
#
# のような警告が出るが、無視しても問題はないと多くの書籍やWebサイトで示唆されている。
# 気になる場合は、以下、
# library(coin)
# を使用するといいだろうとの示唆が多数ある。
# 以前は、library(exactRankTests)の使用が勧められたが、現在、
# メンテはされてない模様。(たぶん)。
#

R Console

> #
> # ノンパラメトリック検定 Wilcoxsonの符号つき順位検定(対応あり)
> #
> 
> 
> 
> 
> #
> # 参考にするデータや帰無仮説の立て方は、
> #『パソコンで簡単! すぐできる生物統計 統計学の考え方から統計ソフトSPSSの使い方まで』
> # 第8章 p.145~149
> #
> 
> 
> 
> 
> #
> # 帰無仮説
> # "治療の前後でメディアン(median)のレベルに差はない"
> #
> 
> 
> 
> 
> 治療前_vec <- c(4, 5, 3, 4, 5, 6, 4, 4, 5, 5)
> 治療後_vec <- c(3, 2, 1, 5, 3, 3, 4, 3, 3, 2)
> df <- data.frame(治療前 = 治療前_vec, 治療後 = 治療後_vec)
> df
   治療前 治療後
1       4      3
2       5      2
3       3      1
4       4      5
5       5      3
6       6      3
7       4      4
8       4      3
9       5      3
10      5      2
> 
> 
> 
> 
> summary(df)
     治療前        治療後    
 Min.   :3.0   Min.   :1.00  
 1st Qu.:4.0   1st Qu.:2.25  
 Median :4.5   Median :3.00  
 Mean   :4.5   Mean   :2.90  
 3rd Qu.:5.0   3rd Qu.:3.00  
 Max.   :6.0   Max.   :5.00  
> 
> 
> 
> 
> # wilcox.test()
> # 計算されている統計量は、マン・ホイットニーのU検定
> # マン・ホイットニーのU検定もウィルコクソンもp値は同じである。
> # "ウィルコクソン = マン・ホイットニー検定"である。
> # 対応のある場合には、paired = TRUEを指定。
> # 連続性の補正をしない場合には、corrct = FALSEを指定。
> wilcox.test(df$治療前, df$治療後, paired = TRUE, correct = FALSE)

    Wilcoxon signed rank test

data:  df$治療前 and df$治療後
V = 43, p-value = 0.0141
alternative hypothesis: true location shift is not equal to 0

 警告メッセージ: 
1:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,: 
   タイがあるため、正確な p 値を計算することができません 
2:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,: 
   ゼロ値のため、正確な p 値を計算することができません 
> #
> # p-value = 0.0141 であるので、0.014 < 0.05 となり、帰無仮説は棄却される。
> # つまり、メディアン(median)が治療前後で違う。
> # (SPSSの場合、"治療が有意差を示したといえる"根拠の具体的数値が諸々出るようだ)。
> #
> #
> # なお、
> #
> # 警告メッセージ:
> # 1:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,  で:
> #   タイがあるため、正確な p 値を計算することができません
> # 2:  wilcox.test.default(df$治療前, df$治療後, paired = TRUE,  で:
> #   ゼロ値のため、正確な p 値を計算することができません
> #
> # のような警告が出るが、無視しても問題はないと多くの書籍やWebサイトで示唆されている。
> # 気になる場合は、以下、
> # library(coin)
> # を使用するといいだろうとの示唆が多数ある。
> # 以前は、library(exactRankTests)の使用が勧められたが、現在、
> # メンテはされてない模様。(たぶん)。
> #

参考文献

パソコンで簡単!すぐできる生物統計―統計学の考え方から統計ソフトSPSSの使い方まで

パソコンで簡単!すぐできる生物統計―統計学の考え方から統計ソフトSPSSの使い方まで

参考にしたRコード

Rによる統計解析

Rによる統計解析

Rクックブック

Rクックブック