長い反応時間,ex-Gaussian分布と混合ガウス分布
乱数とか分布の当てはめの練習と備忘録に。
Rでmclustという混合ガウス分布関係のlibraryがある。
http://cran.r-project.org/web/packages/mclust/mclust.pdf
mclust: an R package for normal mixture modeling
一方,ex-Gaussian分布関係のretimesというのもある。
反応時間はよくex-Gaussian分布があてはまる,というけど。
この二つで遊んでみる。
retimesのrexgaussという関数でex-gaussian分布に従うような乱数を1000個発生させてみる
まずは,手元にある時間制限つき文法性判断課題(TGJT)の約400施行分をdatとして,それをex-Gaussianに当てはめてパラメータを推定してみる。
mexgauss(dat)
およそ,μ=3000, σ=1000, τ=1500くらいだった(この際当てはまりはどうでもいいや)。ここで,このパラミターに従う乱数を1000個発生させる。
simu1 <- rexgauss(1000, 3000, 1000, 1500)
描いてみる。
plot(density(simu1))
うむ。それっぽい。
今度はこれを混合ガウス分布に当てはまるか見てみる。mclustを使う。
plot(mclustBIC(simu1))
BIC(ベイズ情報量基準)からみて,componentsは2, V(等分散でない)のモデルがよさそう。
当てはめてみる。
summary(densityMclust(simu1, 2, modelNames="V"), para=T)
*************************************
-------------------------------------------------------
Density estimation via Gaussian finite mixture modeling
-------------------------------------------------------
Mclust V (univariate, unequal variance) model with 2 components:
log.likelihood n df BIC ICL
-8858.018 1000 5 -17750.57 -18029.62
Clustering table:
1 2
855 145
Mixing probabilities:
1 2
0.7710335 0.2289665
Means:
1 2
3928.458 6578.369
Variances:
1 2
1361163 6158913
************************************************
だそう。
855個と145個に分類された。
分布1はM = 3928, SD = 1167
分布2はM = 6578, SD = 2482
ふうん。
今度は77%と23%くらいでそれぞれに従う乱数(デフォルト関数のrnorm)を使って混ぜる。
simu2 =c(rnorm(770, 3928, 1167), rnorm(230, 6578, 2482))
simu1とsimu2の確率密度曲線を描いてみる。
plot(density(simu1), xlab="", main="");lines(density(simu2),col="red")
おお,おお,重なるね~。
これでこのsimu2を再度ex-Gaussに当てはめてみる。
mexgauss(simu2)
2917.342 1057.159 1583.581
うん。大体ね。
あれだよなあ,当てはまりを比べるのかね。
どっちが当てはまりいいとかさ,「反応時間はそもそもex-Gaussianするんだから」と「いやいや二種の違う反応と見るべきじゃないのか」みたいな。
そういうのは「理論」だと思うけど。
ま,ナンノコッチャっていう。