これまでの分析対象のデータは、次の前提の従っていた。
- distributed data within groups:データ分布はグループ内で正規分布
- equal variances across the groups:グループ間のちらばり具合は同じ
以下の分布をする今回分析するデータは、この前提からは外れる。
> ggplot(myDataFrame, aes(x=Group,y=Y))+geom_boxplot()
プロット図からも明らかだが、グループ毎の平均と標準偏差は
> aggregate(Y ~ Group, data = myDataFrame, FUN=function(x) c(mean=mean(x),sd=sd(x)))
Group Y.mean Y.sd
1 A 97 8
2 B 99 1
3 C 102 1
4 D 104 8
{A, D}, {B, C} はそれぞれ homogeneous な分散、全グループでは heterogeneous な分散。
homo, hetero な分散については「OLS回帰分析の前提:Homoscedasticity」を参照。
以下は今回の分析モデルの階層ダイアグラム(図19.6)。
これは左の図19.2のダイアグラムの拡張したもの。主な変更点は- t 分布
- 各グループが独自に標準偏差 σj を持つ
これにより、データの heterogeneous な散らばりと、外れ値に対応させる。
上図が推定結果、左が「グループ間で同じ分散」と仮定したもの、右が「グループ毎に分散をもたせた」もの。
左の結果は、分散が大きい A, D と小さい B, C の「妥協点」という感じ。右は上段の t 分布の曲線がデータをうまく表現しているし、下段の比較分析でも「A, D は類似」「B, C は異なる」という違いを表せている。
グループ毎に分散値 σj を持つので、その比較も有効。以下は Exercise 19.3 で、σ1 - σ2 , σ2 - σ3 , (σ1 + σ2 )/2 - (σ2 + σ3)/2 の結果。
mcmcMat = as.matrix(mcmcCoda)
openGraph()
plotPost(mcmcMat[,"ySigma[1]"] - mcmcMat[,"ySigma[2]"],
main=expression(sigma[1]-sigma[2]),
xlab="Difference", cex.main=2)
openGraph()
plotPost(mcmcMat[,"ySigma[2]"] - mcmcMat[,"ySigma[3]"],
main=expression(sigma[2]-sigma[3]),
xlab="Difference", cex.main=2)
openGraph()
plotPost((mcmcMat[,"ySigma[1]"] + mcmcMat[,"ySigma[4]"])/2
- (mcmcMat[,"ySigma[2]"] + mcmcMat[,"ySigma[3]"])/2,
main=expression(mean(sigma[1],sigma[4])-mean(sigma[2],sigma[3])),
xlab="Difference", cex.main=2)





0 件のコメント:
コメントを投稿