見出し画像

クラスカル=ウォリス検定をして、その後にマン・ホイットニーのU検定をする(W/GPT-4)


大学院で頑張る友人へ

タイトルの件、1〜4章(PDCA)をChatGPTと一緒に整理した。
そんなに大層な内容ではないけど、参考になれば嬉しい。

1章:やりたい分析とコード・・・Plan・Do

図1:やりたいこと①(質問に書いた分析をしたい)

【解答】
まず、Pythonでクラスカル・ワリス検定を行う方法を説明しましたが、その際の信頼区間を求めるには、クラスカル・ワリス検定自体がパラメトリックなテストではなく、特定のパラメータ(例えば平均や分散)を仮定しないため、信頼区間を直接計算することは難しいです。

しかし、エフェクトサイズの信頼区間を推定する方法があります。ここでは、各群間のエフェクトサイズとして、Mann-Whitney Uテストのr値(効果量)を計算することができます。そして、それに基づいて信頼区間を推定することができます。

以下に、Pythonを使ったサンプルコードを示します。

import numpy as np
import scipy.stats as stats
import statsmodels.stats.api as sms

# 各関節タイプに対応する壊れ具合のデータを生成します。(実際には、あなたが持っているデータを使用します)
np.random.seed(0)
type1 = np.random.choice(5, 30)
type2 = np.random.choice(5, 30)
type3 = np.random.choice(5, 30)

# クラスカル・ワリス検定を実行します
H, p = stats.kruskal(type1, type2, type3)
print('Test statistic:', H)
print('p-value:', p)

# Mann-Whitney Uテストを行い、効果量と信頼区間を計算します
U1, p1 = stats.mannwhitneyu(type1, type2)
U2, p2 = stats.mannwhitneyu(type1, type3)
U3, p3 = stats.mannwhitneyu(type2, type3)

r1 = U1 / (len(type1) * len(type2))  # type1とtype2の間の効果量
r2 = U2 / (len(type1) * len(type3))  # type1とtype3の間の効果量
r3 = U3 / (len(type2) * len(type3))  # type2とtype3の間の効果量

# 信頼区間を計算します。ここでは、95%信頼区間を計算します。
ci_low1, ci_upp1 = sms.DescrStatsW(type1 - type2).tconfint_mean()
ci_low2, ci_upp2 = sms.DescrStatsW(type1 - type3).tconfint_mean()
ci_low3, ci_upp3 = sms.DescrStatsW(type2 - type3).tconfint_mean()

print('Effect size (r) and 95% confidence interval for type1 vs type2:', r1, (ci_low1, ci_upp1))
print('Effect size (r) and 95% confidence interval for type1 vs type3:', r2, (ci_low2, ci_upp2))
print('Effect size (r

) and 95% confidence interval for type2 vs type3:', r3, (ci_low3, ci_upp3))

注意点として、このコードは、ランダムに生成したデータを使用しています。そのため、実際のデータで実行する際には、データの性質に応じてコードを適宜修正してください。また、このコードではMann-Whitney Uテストを使用していますが、これは2群間の比較を行うための検定であるため、複数群の比較には注意が必要です。最後に、このコードは信頼区間を計算するために差分データを使用していますが、これは一般的なアプローチであるとは限らない点にも注意してください。


2章:アウトプットの解釈・・・Check

図2:やりたいこと②(アウトプットされた値を解釈したい)

【解答】
高校生向けにこの結果を解説しますね。

まず、全体の結果を見てみましょう:

  • Test statistic (検定統計量): 検定統計量は、我々が調べたい事柄(ここでは、関節のタイプと壊れ具合の間に差があるかどうか)に関する数値です。この数字が大きいほど、見つけた差が偶然ではない(つまり、統計的に有意である)可能性が高まります。

  • p-value (p値): p値は、検定統計量が得られる確率を示します。つまり、もし我々が観察した差が実は偶然であるなら、こんなに大きな差が出る確率は何%か、ということです。通常、p値が0.05以下であれば、我々が観察した差は偶然ではないと判断します(これを「統計的に有意」と言います)。

ここでのp値は0.200で、これは0.05より大きい値です。これは、「関節のタイプと壊れ具合の間に差がある」という仮説を支持するほどの証拠が得られなかった、ということを意味します。

次に、各組み合わせについて見てみましょう:

  • Effect size (効果量): 効果量は、二つのグループ間の差の大きさを示します。値が大きいほど、二つのグループの間の差が大きいと言えます。ここでは、各組み合わせの効果量が0.5前後となっています。つまり、各関節タイプの壊れ具合の間には、ある程度の差があることを示しています。

  • 95% confidence interval (95%信頼区間): 信頼区間は、真の効果量が存在すると考えられる範囲を示します。ここで注意すべきなのは、全ての信頼区間がゼロを含んでいるということです。これは、「各関節タイプの壊れ具合の間には差がある」という結論を強く支持するほどの確証が得られなかった、ということを意味します。

それでは、具体的な結果を見ていきましょう。

  • type1 vs type2: 効果量は0.502で、これは中程度の差を示しています。95%信頼区間は(-0.567, 0.634)で、この範囲はゼロを含んでいます。ゼロを含む信頼区間は、2つの群間に統計的に有意な差があるとは言えないことを示しています。

  • type1 vs type3: 効果量は0.388で、これはやや小さい差を示しています。95%信頼区間は(-1.420, 0.286)で、この範囲もゼロを含んでいます。この結果からも、type1とtype3の間には統計的に有意な差があるとは言えません。

  • type2 vs type3: 効果量は0.384で、これもやや小さい差を示しています。95%信頼区間は(-1.209, 0.009)で、この範囲もまたゼロを含んでいます。この結果からも、type2とtype3の間には統計的に有意な差があるとは言えません。

要するに、これらの結果からは、関節のタイプによる壊れ具合の違いは統計的に有意ではないと言えます。しかし、これらの解釈は統計的な視点からのものであり、実際の状況や目的によって意義が変わることもあります。この解析は初期の探索的な解析と考え、さらなる詳細な研究が必要かもしれません。

3章:(参考)p値の限界とその他のアプローチ

図3:p値の限界

【解答】
その通りです。p値が特定の閾値を超えるかどうかだけに基づいて科学的な結論を出したり、ビジネスや政策の決定を行ったりするべきではありません。

p値は、データが偶然に起きたという帰無仮説(null hypothesis)下で観察される可能性を示すもので、その値が小さいほど、帰無仮説が誤っている可能性が高まります。しかし、p値が特定の閾値(一般的には0.05)を下回ると、その結果は「統計的に有意」とされます。

しかし、以下のような理由から、p値だけを結論の基準にするのは問題です:

  1. p値は連続的: p=0.049とp=0.051の間には実際には大きな違いはないにもかかわらず、前者は「有意」とされ、後者は「有意ではない」とされます。

  2. p値はサンプルサイズに影響される: サンプルサイズが大きければ大きいほど、小さな効果でも統計的に有意になりやすいです。

  3. p値は効果の大きさを反映していない: p値が小さいからといって、その効果が実践的に重要、つまり実世界での影響が大きいとは限りません。

したがって、科学的な結論や意思決定を行う際には、p値だけでなく他の情報も考慮に入れるべきです。効果の大きさ(effect size)や信頼区間(confidence interval)、前の研究や理論的な背景、そして結果が実世界でどのように解釈され、どのような影響を及ぼすかといった観点も重要です。


4章:(参考)信頼区間の説明

図4:よくわからない所(信頼区間と0を含むことの意味)を教えてもらう

【解答】
信頼区間は、我々が推定したい真のパラメータ(この場合は効果量)が含まれると我々が信じている範囲を示します。信頼区間がゼロを含む場合、これは真の効果量がゼロ(つまり、群間に違いがない)である可能性も考えられる、ということを示しています。

たとえば、ある学校で数学のテストをしたとき、男子生徒と女子生徒の平均スコアの差を比較するとしましょう。その平均スコアの差(効果量)とその信頼区間を計算します。

  1. もし効果量が0.5で、95%信頼区間が(0.3, 0.7)であった場合、これは男子生徒と女子生徒の間には数学スコアに違いがあることを示しています。なぜなら、信頼区間の範囲が全てゼロより大きい範囲にあるからです。これは、95%の確率で真の平均スコアの差が0.3から0.7の間にあると解釈できます。

  2. しかし、もし効果量が0.5で、95%信頼区間が(-0.1, 1.1)であった場合、これは男子生徒と女子生徒の間の数学スコアに有意な差があるとは必ずしも言えません。なぜなら、信頼区間がゼロを含んでいるからです。これは、95%の確率で真の平均スコアの差が-0.1から1.1の間にあると解釈できます。つまり、真の差がゼロ(つまり、男子生徒と女子生徒の間に違いがない)である可能性も否定できないのです。

このように、信頼区間がゼロを含む場合、その統計的なパラメータ(この場合は群間の差)が有意であるとは限らないという理解が必要です。

5章:次の何をすべきか?・・・Action

図5:やりたいこと③(再考するためのアプローチを知りたい)

【解答】
統計的な有意差が見られなかった場合でも、仮説を完全に諦める必要はありません。以下にいくつかの考え方やアプローチを挙げてみます:

  1. データの再検討: まず、自分のデータを再検討してみてください。データに入力ミスや処理ミスがないか確認します。また、変数の尺度や分布、外れ値の存在も確認します。

  2. サンプルサイズの検討: サンプルサイズが小さすぎると、ある程度の違いがあってもそれを検出するのが難しくなります。もしこの調査を再度行う機会があるなら、より多くのサンプルを集めることを考えてみてください。

  3. パワーアナリシス: パワーアナリシスを行って、現在のサンプルサイズが仮説をテストするのに適しているかどうかを評価します。これにより、サンプルサイズを増やすことで得られる情報を予測することができます。

  4. 他の統計的手法の検討: 他の統計的手法が問題の研究により適している可能性もあります。例えば、もし変数間に非線形の関係があると疑われる場合、線形モデルよりも非線形モデルの方がより適しているかもしれません。

  5. ドメイン知識の活用: ドメイン(専門領域)の知識を活用して、仮説や結果の解釈を再考することも重要です。その領域の専門家や文献を参照し、仮説がなぜ有意差を示さなかったのか、そしてその結果が意味することを理解するための新たな視点を得ることができます。

結局のところ、統計的な有意差が見られなかったとしても、それはあくまでその特定のデータセットと分析方法における結果であり、全てを決定するものではありません。問題の研究や仮説を深く理解し、他の証拠や視点を探求することが重要です。

この記事が気に入ったらサポートをしてみませんか?