データ分析の現場では、生データが手元になく、要約統計量(平均値、標準偏差、症例数)のみが与えられている状況で統計的検定を行う必要に迫られることがある。特に、2つのグループ間の平均値に有意な差があるかを検証するt検定は頻繁に用いられる。
Rには様々なt検定関数があるが、BSDAパッケージのtsum.test
関数は、まさにこの「要約統計量からのt検定」に特化しており、非常に便利だ。本記事では、tsum.test
関数を用いて平均値、標準偏差、症例数からt検定を行う方法について、実務でよくある「どちらの群が良いか事前に明確な仮説がない」状況を想定し、両側検定の具体例とRコードを交えながら詳しく解説する。
tsum.test とは?
tsum.test
関数は、BSDA (Basic Statistics and Data Analysis) パッケージに含まれる関数で、2つの標本の要約統計量(平均値、標準偏差、標本サイズ)のみを用いてt検定を実行できる。これは、原データが入手できないが、論文や報告書からこれらの要約統計量が得られる場合に非常に有効である。
想定されるシナリオ
例えば、以下のようなケースでtsum.test
が役立つ。
- 過去の研究論文で報告されている要約統計量を用いて、自分の研究結果と比較したい場合。
- 異なる2つの医療施設における治療効果を、平均値、標準偏差、症例数のみが与えられた状態で比較したい場合。
- 機密性の高いデータで、直接データを共有できないが、要約統計量のみなら開示されている場合。
具体例:2つの学習方法の成績比較(どちらが良いか不明な場合)
ある学校の教員が、たまたま過去に実施した2つの異なる学習方法(「学習方法X」と「学習方法Y」とする)を受けた生徒たちのテスト結果の要約統計量を手に入れた。どちらの学習方法が優れているか、あるいは差がないのか、事前に特定の仮説を持たずに、純粋に統計的な差があるかどうかを知りたいと考えている。手元にあるのは以下の要約統計量のみとする。
- 学習方法Xを受けた生徒のグループ:
- 平均点 ($\bar{x}_X$): 75点
- 標準偏差 ($s_X$): 10点
- 症例数 ($n_X$): 30人
- 学習方法Yを受けた生徒のグループ:
- 平均点 ($\bar{x}_Y$): 70点
- 標準偏差 ($s_Y$): 12点
- 症例数 ($n_Y$): 35人
このデータを用いて、2つの学習方法の間に成績の平均点に統計的に有意な差があるか(学習方法Xと学習方法Yのどちらが優れているか、あるいは劣っているか)を、有意水準5%で両側t検定を行う。
帰無仮説 ($H_0$): 学習方法Xと学習方法Yの平均点に差はない ($\mu_X=\mu_Y$)
対立仮説 ($H_1$): 学習方法Xと学習方法Yの平均点に差がある ($\mu_X\neq\mu_Y$)
R 計算例
それでは、Rを用いてtsum.test
を実行してみよう。今回は、どちらかの群が優れているという事前仮説がないため、alternative = "two.sided"
(両側検定)を指定する。
R スクリプト例:
# BSDAパッケージのインストール(初回のみ)
# install.packages("BSDA")
# BSDAパッケージの読み込み
library(BSDA)
# 学習方法Xの統計量
mean.X <- 75
sd.X <- 10
n.X <- 30
# 学習方法Yの統計量
mean.Y <- 70
sd.Y <- 12
n.Y <- 35
# tsum.testを実行
# mu = 0 は帰無仮説における2群の平均値の差(通常は0)
# alternative = "two.sided" は両側検定
# var.equal = FALSE は分散が等しいと仮定しない(Welchのt検定)
# (var.equal = TRUE にするとプールされた標準偏差を用いる)
result <- tsum.test(mean.x = mean.X, s.x = sd.X, n.x = n.X,
mean.y = mean.Y, s.y = sd.Y, n.y = n.Y,
mu = 0, alternative = "two.sided", var.equal = FALSE)
# 結果の表示
print(result)
実行結果:
上記のRコードを実行すると、以下のような出力が得られる。
> print(result)
Welch Modified Two-Sample t-Test
data: Summarized x and y
t = 1.8322, df = 62.959, p-value = 0.07166
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.4536063 10.4536063
sample estimates:
mean of x mean of y
75 70
>
このt検定の結果を解釈いたします。
結果の解釈
検定結果の概要
学習方法X群(平均値75、標準偏差10、n=30)と学習方法Y群(平均値70、標準偏差12、n=35)の間で、Welchのt検定を実施した結果である。
統計量とp値
- t統計量:1.8322
- 自由度:62.959(Welchの方法による調整済み)
- p値:0.07166
有意性の判断
p値(0.07166)は有意水準0.05を上回っているため、帰無仮説(2群の平均値に差がない)を棄却できない。つまり、学習方法X群とY群の間に統計的に有意な差は認められない。
効果量と信頼区間
95%信頼区間は-0.45から10.45であり、0を含んでいる。これは2群の平均値の差が0である可能性を排除できないことを示している。
実用的な解釈
学習方法X群の方が平均値が5点高いものの、この差は統計的に有意ではなく、偶然の変動の範囲内であると判断される。ただし、p値が0.05に近い値であることから、より大きなサンプルサイズでの検定や、より詳細な分析が必要である可能性がある。
まとめ
BSDAパッケージのtsum.test
関数は、要約統計量(平均値、標準偏差、症例数)のみからt検定を手軽に行うための強力なツールだ。生データが手元にない状況でも、信頼性の高い統計的検定を実行できるため、研究や実務において非常に役立つ。
特に、どちらの群が優れているか事前に明確な仮説がない「実務で取得したデータ」を比較する際には、本記事のようにalternative = "two.sided"
を指定した両側検定を行うことで、より客観的な判断を下すことができるだろう。適切な仮説設定と、alternative
引数やvar.equal
引数(分散の等質性)の選択に注意して、目的に合った検定を行ってほしい。
コメント