Rを用いて統計的仮説検定を学ぶ (7)
- アウトライン
-
- 作成日: 2026/1/28
- 更新日: –
はじめに
臨床試験では、「この2つのデータに本当に差があるかどうか」を確認したい場面が多くあります。そんなとき、真っ先にt検定を思い浮かべる人も多いでしょう。
本コラムでは仮想事例を用いながら、Rでt検定を実行し、結果をどのように解釈するかをクイズ形式で確認します。
問題
下表は、30日間の短期集中型ダイエットプログラムに参加した10人の女性について、参加前と参加後のBMI (kg/m²) を示したものです。
このダイエットプログラムは効果があるといえるでしょうか。有意水準5% (両側) で検定しなさい。
表1. ダイエットプログラム
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 参加前 | 24.4 | 20 | 16.4 | 22 | 20.4 | 19.2 | 18.4 | 22 | 26 | 28 |
| 参加後 | 23.6 | 19.2 | 13.2 | 21.6 | 18.8 | 20.8 | 15.2 | 20 | 25.6 | 25.2 |
- ヒント
-
同じ被験者の「前後比較」なので、独立2群ではなく対応のあるt検定 (paired t-test) を用います。
解答
【スクリプト】
参加前 <- c(24.4, 20, 16.4, 22, 20.4, 19.2, 18.4, 22, 26, 28)
参加後 <- c(23.6, 19.2, 13.2, 21.6, 18.8, 20.8, 15.2, 20, 25.6, 25.2)
t.test(参加後, 参加前, paired=TRUE)
【出力】
> 参加前 <- c(24.4, 20, 16.4, 22, 20.4, 19.2, 18.4, 22, 26, 28)
> 参加後 <- c(23.6, 19.2, 13.2, 21.6, 18.8, 20.8, 15.2, 20, 25.6, 25.2)
> t.test(参加後, 参加前, paired=TRUE)
Paired t-test
data: 参加後 and 参加前
t = -2.8465, df = 9, p-value = 0.0192
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-2.4407967 -0.2792033
sample estimates:
mean difference
-1.36
解説
4.1 なぜ「対応のあるt検定」なのか?
今回のデータは、同じ10人を対象に 参加前と参加後を繰り返し測定しています。
このような前後比較では、個人差 (もともとのBMIの違い) を打ち消して「変化量」に注目できるため、paired t-testが適切です。
4.2 p値の意味
p値が0.0192と5%を下回っているため、「平均差が0 (変化なし)」という仮説は棄却されます。つまり、今回観測されたBMIの変化は、偶然のばらつきだけでは説明しにくい、ということになります。
4.3 平均差と信頼区間を読む
平均差は-1.36 (参加後 − 参加前) で、減少方向です。
さらに95%信頼区間が-2.44 ~ -0.279と0を含まないため、「減少した」と言える根拠が統計的に示されています。
なお、この結果は「効果がある可能性」を示すものであり、実務では次の点もあわせて検討すると解釈が安定します。
- 減少量 (-1.36) が実務上・臨床上どの程度意味を持つか
- 測定の妥当性 (体重・身長測定の精度、測定条件の統一など)
- プログラム以外の要因 (生活習慣変化、同時介入、脱落の影響など)
まとめ
本コラムでは、同一被験者の前後比較を題材に、対応のあるt検定をRで実行し、結果の読み取り方を確認しました。前後比較では「平均との差」そのものよりも、個人内の変化 (差分) に注目できる点が重要です。
t検定はR以外にもExcelやPythonで実行できますが、Rはスクリプトとして手順を残しやすく、p値や信頼区間など解釈に必要な情報がまとまって出力されるため、再現性と解釈のしやすさの点で扱いやすい環境です。業務や研究でt検定を繰り返し使う場面では、Rを活用することで分析をより安定して進めることができます。





