2群のプリポストデータに関して

2群のプリポストデータ

理由はよくわからないのだけれど, 知り合いから2群のプリポストデータの分析について聞かれることが多い。何かしらの介入の効果を検討したいらしく、統制群と介入群の2つに分けて, それぞれの群で介入前と介入後のデータを取るみたいな状況を想定しているようだ。

こうした場合に適切な分析手法については吉田(2006)が論じており, (1)ポスト-プリの差得点を取り, その差得点(変化量)を従属変数としてt検定を行う, (2)プリ得点を共変量とした共分散分析(ANCOVA)を行う, の2種類が推奨されている。

2要因(群×時期)の分散分析を行う例が散見されるが, これはこの分析において見たいものが交互作用のみで主効果の分析が意味をなさないので冗長だとされている。なお, この2要因分散分析の結果得られた交互作用のF値は, (1)の手法で得られた検定統計量tの2乗に一致することが知られているそうである。

実際のデータを使った例

実際のデータといっても『やさしく学べる統計学』にあるサンプルデータを使う。データはcsv形式で, 青山学院の寺尾先生のホームページのシラバスからダウンロードできる。

http://www.cc.aoyama.ac.jp/~t41338/lecture/aoyama/stat2e/stat2e_top.html

データの中身の一部を取りだすとこんな感じである。1列目に被験者番号, 2列目に群の情報, 3列目にプリ得点, 4列目にポスト得点。なんの介入なのかは知らないけれどこんな形でデータが得られたとする。統制群と介入群は8名ずつである。

sub group pre post
1 control 35 40
2 control 40 23
8 control 47 33
9 exp 35 36
15 exp 42 52
16 exp 42 52

箱ひげ図で表してみると次の通り。

# データセットをlong型にして必要な列をfactorに変換
dat.long<- dat %>%
  gather(key = time, value = value, -c(group,sub)) %>%
  mutate(sub = as.factor(sub),group = as.factor(group), time= factor(time, levels=c("pre","post")))

## データの可視化
ggplot(data=dat.long, aes(x=time,y=value)) +
  geom_boxplot() +
  facet_wrap(~group)

boxplot

差の変数のt検定

まず, (1)の方法を試してみる。 「post-pre」の変数を作ってそれからt検定を行う。

# 差の得点を作ってt検定
newdat <- dat %>% 
  mutate(difference = post-pre) %>%
  mutate(group = as.factor(group))

res.t <- t.test(
  filter(newdat,group=="control")%>%pull(var="difference"),
  filter(newdat,group=="exp")%>%pull(var="difference"),
  var.equal = TRUE
)

結果は次のような感じ。 result_ttest.png

t値は-2.3771で, 5%水準で有意とのこと。

事前得点を共変量にして共分散分析

今度は(2)の方法を試してみる。

# 事前の値を統制変数とした共分散分析
res.ancova <- lm(post~group+pre, data=newdat)
summary(res.ancova)

結果は次の通り。

result_ancova.png

群による回帰係数が21.3574であり, このことは, 統制群と実験群では切片が21異なることを表している。1%水準で有意である。このことは次の図を見た方がわかりやすいかもしれない。

result_ancova.png

2要因分散分析の場合

では, 推奨されない方法である2要因分散分析を試してみることにする。群の要因については対応がないが, 時間の要因については対応ありのデータなのでそれを指定して分析を行う。

res.anova <- aov(value~group*time+Error(sub), data=dat.long)
summary(res.anova)

結果は次のとおりで, 交互作用は5%で有意になっている。すなわち, 時間の要因の効果は群によって異なるという結果である。

result_anova.png

ここで得られた, F値の5.651という値であるが, 最初に述べたように(1)で行った変化量についてのt検定で得られたt値を2乗した数値と一致する。

tsquare

参考

  • 吉田寿夫(2006). 研究法についての学習と教育のあり方について思うこと,あれこれ 吉田寿夫(編著)心理学研究法の新しいかたち(pp.244-270) 誠信書房