草薙の研究ログ

英語の先生をやってます。

反応時間データをBox-Cox変換する

そういえば去年のFrontiers in Psychologyに反応時間データの処理についての論文があった。
いろんな変換とか外れ値除去したりする方法をシミュレーションで試したけど,Box-Cox変換をλ = -1でやるのがいいぞ!という変な推しだった。まあ,いいけど。反応時間データの変換の研究ももう一分野ってくらいあるよね。でもBox-Coxが一番がりがり山寄せて正規分布にするだろうし,まあそれで一番よく検定できるんならそれはそれでいいのだろうけど,なんでも正規分布すりゃいいのかっていう大事な問題もあるよねえ。

Marmolejo-Ramos, F., Cousineau, D., Benites, L., & Maehara, R. (2014). On the efficacy of procedures to normalize Ex-Gaussian distributions. Frontiers in psychology, 5.


いずれにせよ,これをRでやるのは簡単。

#使うパッケージ
library(car)	#おなじみ
library(retimes)	#おなじみ

#反応時間っぽいデータをEx-Gaussianから作る
rt<-rexgauss(200,400,50,200)

#歪度を見てみる
skewrt1<-mean(scale(rt)^3)
skewrt1

#一番よさげなλを推定する
model<-powerTransform(rt)

#要約をみる
summary(model)

#係数だけ取り出す
lambda<-model[[6]]

#Box-Cox変換する
rt2<-bcPower(rt,lambda)

#これでOK
rt2

#ヒストグラムを見る
hist(rt2)

#歪度を見てみる
skewrt2<-mean(scale(rt2)^3)
skewrt2

#λはおおざっぱなくらいでいいらしい(そのデータにしか適用できない)
lambda<-round(lambda,0)