2026年8月13日木曜日

Brunner-Munzel検定

 Brunner-Munzel検定(以下,BM検定)は,WMW検定と同じく,特定の確率分布を仮定しないノンパラメトリックな方法です.

WMW検定では,母集団が従う確率分布がどんな分布でも問題はなく,2つの分布の形は同じであるという前提条件がありました(帰無仮説H0が正しいときには,分布は一致するので,分散も等しくなる).一方,BM検定は,2つの確率分布の形状が同じでなくても問題ありません.

Rのデフォルト関数にはBM検定がないので,パッケージをインストールする必要があります.BM検定を行うパッケージには以下の3つ(rankFD,lawstat,brunnermunzel)があります.

> install.packages("rankFD")

> install.packages("lawstat")

> install.packages("brunnermunzel")

以下では,brunnermunzelを使って検定を行ってみます.まずは,パッケージをロードします.

> library(brunnermunzel)

関数はbrunnermunzel.testとなります.コマンドは brunnermunzel.test(A ~ B) となります.

> brunnermunzel.test(choles ~ suppl)


Brunner-Munzel Test


data:  choles by suppl

Brunner-Munzel Test Statistic = 2.9318, df = 5.2973, p-value = 0.03039

95 percent confidence interval:

 0.552361 1.207639

sample estimates:

P(X<Y)+.5*P(X=Y) 

            0.88 

結果を見るとP値が0.03039で,有意水準αの0.05(5%)より小さいので,統計的に有意だと結論づけることができます.結論としては「サプリメントAの飲用者とBの飲用者の間にはコレステロール値に統計的に有意な差が認められた(P=0.030)」,「サプリメントAの飲用者のコレステロール値は,Bの飲用者よりも低かった(P=0.030)」などとすることができます.

続けて,並べ替えBM検定を行ってみます.関数はbrunnermunzel.permutation.testで,コマンドはbrunnermunzel.permutation.test(A ~ B) となります.

> brunnermunzel.permutation.test(choles ~ suppl)


permuted Brunner-Munzel Test


data:  choles by suppl

p-value = 0.05556

sample estimates:

P(X<Y)+.5*P(X=Y) 

            0.88 

結果を見ると,P値が0.05556で,有意水準αの0.05(5%)より大きいので,統計的に有意ではないと結論づけることができます.結論としては「サプリメントAの飲用者とBの飲用者の間にはコレステロール値に統計的に有意な差は認められなかった(P=0.056)」などとすることができます.

0 件のコメント :

コメントを投稿