🎧
HCI研究者の心理統計ノート:対応のある t 検定 / Paired t test
HCI研究者の心理統計ノート
Introduction
対応のある t 検定 (Paired t-test) は、2つの対応のあるデータ間の平均値に差があるかどうかを検定する方法で、データに正規性が仮定できる場合に使用できます。
HCI研究では、2条件参加者内計画 (within-subject design) の実験において、条件1と条件2で評価指標に統計的に有意な差があるかどうかを調べる際に使用します (e.g., 既存手法 vs 提案手法)。
正規性が仮定出来ない場合は、ウィルコクソンの符号順位検定 (Wilcoxon signed-rank test) の使用を検討してください。
類似の手法に対応のないデータに適用する スチューデントの t 検定 がありますが、スチューデントの t 検定とは違って 等分散性の検定は必要ありません。これは、対応のあるデータ(同じ参加者から得られるデータ)では等分散性が仮定できるから、だと理解しています。
R Sample Code
# ライブラリのインポート
library(tidyverse)
# csvファイルの読み込み
# 整然データを想定: 一行が一観測。 "参加者ID, 独立変数, 従属変数" の形。
data <- read_csv("csvファイルのパス", show_col_types=F) %>%
# コードの再利用可能性を高めるために列名を変更
mutate(s=factor("参加者IDの列名"), A=factor("独立変数の列名"), y="従属変数の列名") %>%
# 必要な列だけ抽出
select(s, A, y) %>%
# ソート(対応関係を揃えておく必要がある)
arrange(A, s)
# 欠損値や外れ値など、解析から除外するべきデータがあれば削除
# 割愛
# 記述統計量の確認
data %>%
group_by(A) %>%
summarize(N=n(), Mean=mean(y), SD=sd(y), SE=sd(y)/sqrt(n()), Min=min(y), Median=median(y), Max=max(y))
# 簡単なグラフを描画して確認
data %>%
# 平均と標準誤差を計算
group_by(A) %>%
summarize(Mean=mean(y), SE=sd(y)/sqrt(n())) %>%
# ggplot で作図開始。x軸は実験条件、y軸は評価指標(平均値)。
ggplot(aes(x=A, y=Mean, fill=A)) +
# 棒グラフ
geom_bar(stat="identity") +
# エラーバー
geom_errorbar(aes(ymin=Mean-SE, ymax=Mean+SE), width=.2, size=.75) +
# 軸ラベルの設定
labs(x="Condition", y="Measurement") +
# カラーパレット
scale_fill_brewer(palette="Blues") +
# テーマの調整
theme_light() +
theme(legend.position="none") +
theme(panel.grid.major.x=element_blank(), panel.grid.minor.y=element_blank())
# 対象とするふたつのデータ
a1 <- data %>% filter(A==levels(data$A)[1]) %>% pull(y)
a2 <- data %>% filter(A==levels(data$A)[2]) %>% pull(y)
# 正規性の検定 p > alpha なら ok (棄却された場合は、ウィルコクソンの符号順位検定へ)
shapiro.test(c(a1, a2))
# 対応のあるt検定
t.test(a1, a2, paired=T)
# 効果量 Cohen's d: 目安は small(0.2), medium(0.5), large(0.8)
n1 = length(a1)
n2 = length(a2)
s = sqrt(((n1-1)*sd(a1)**2+(n2-1)*sd(a2)**2)/(n1+n2-2))
d = abs(mean(a1) - mean(a2)) / s
cat(paste("Cohen's d = ", d, "\n", sep=""))
How to Report : LaTeX Sample
Japanese
正規性 (Shapiro-Wilk test, \textit{p} $>$ .05) が棄却されなかったため,対応のある \textit{t} 検定を実施した結果,YはA1条件がA2条件に比べて有意に高かった (\textit{t} (X) = X.XX, \textit{p} = .XX, Cohen's \textit{d} = X.XX).
English
Because normality assumption was not violated (Shapiro-Wilk's normality test, \textit{p} $>$ .05), we conducted a paired \textit{t} test. The result showed that Y was significantly higher in the A1 condition than in the A2 condition (\textit{t} (X) = X.XX, \textit{p} = .XX, Cohen's \textit{d} = X.XX).
For Your Information
効果量について
本記事では、対応のない t 検定と同じ計算式で Cohen の d を計算するサンプルコードを提示しました。一方で、この値にはデータの対応関係が反映されていないため、異なる計算式も提案されています。詳しくは、水本・竹内 (2010)などに記述されています。最終的なコンセンサスには至っていないようなので、水本・竹内が述べているように、効果量の計算に用いた計算式を明示しておくことが最も丁寧だと思われます(とはいえ、そこまで丁寧に書かれた論文はHCI分野ではあまり見覚えがないです)。
Discussion