🥂

HCI研究者の心理統計ノート:スチューデントの t 検定 / Student t-test

2023/01/04に公開

HCI研究者の心理統計ノート

https://zenn.dev/tmizuho/articles/e8890371f683bd

Introduction

スチューデントの t 検定 (Student t-test) は、2つの対応のないデータ間の平均値に差があるかどうかを検定する方法で、データに正規性および等分散性が仮定できる場合に使用できます。

HCI研究では、2条件参加者間計画 (between-subject design) の実験において、条件1と条件2で評価指標に統計的に有意な差があるかどうかを調べる際に使用します (e.g., 既存手法 vs 提案手法)。

正規性が仮定できない場合には、ウィルコクソンの順位和検定 (Wilcoxon rank sum test) の使用を検討してください。また、正規性は仮定できるが等分散性が仮定できない場合には、ウェルチの t 検定 (Welch t-test) の使用を検討してください。

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)

# 欠損値や外れ値など、解析から除外するべきデータがあれば削除
# 割愛

# 記述統計量の確認
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))

# 等分散性の検定 p > alpha なら ok (棄却された場合は、ウェルチのt検定へ)
var.test(a1, a2)

# スチューデントのt検定
t.test(a1, a2, var.equal=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) および等分散性 (F 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 (Shapiro-Wilk's normality test, \textit{p} $>$ .05) and homogeneity of variance (F test, \textit{p} $>$ .05) assumptions were not violated, we conducted a Student's \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).

Discussion