2016年3月18日金曜日

Metric 予測 by One Nominal:Hetero分散と外れ値への対応

Analogous to ANCOVA」からの続き。

これまでの分析対象のデータは、次の前提の従っていた。
  • 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 で、σσσσ, (σσ)/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 件のコメント:

コメントを投稿