🍶

HCI研究者の心理統計ノート:ウェルチの t 検定 / Welch t-test

2023/01/04に公開約2,700字

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

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

Introduction

ウェルチの t 検定 (Welch t-test) は、2つの対応のないデータ間の平均値に差があるかどうかを検定する方法で、データに正規性が仮定できる場合に使用できます。

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

類似の手法にスチューデントの t 検定がありますが、スチューデントの 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)

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

# 記述統計量の確認
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, var.equal=F)

# 効果量 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 an Welch'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).

For Your Information

ちなみに、「等分散性の検定を実施した後、t 検定を実施することは検定の多重性の問題がある。したがって、等分散性の検定はせずに、いきなりウェルチの t 検定を実施する方がよい」という議論があるようです。一方で、教科書などでは「問題ない」という見方が多いように感じますし、まだ答えが出ているわけではないので、統計学者ではない私達は今のところは神経質にならなくてもよいと考えていますが、査読者に指摘される可能性はあるかもしれません。
https://biolab.sakura.ne.jp/welch-test.html

Discussion

ログインするとコメントできます