反復測定anovaの正規性の仮定をテストしますか?(R)


11

したがって、anovaの正規性の仮定のテストにポイントがあると仮定します(1および2を参照)。

Rでどのようにテストできますか?

私は次のようなことを期待しています:

## From Venables and Ripley (2002) p.165.
utils::data(npk, package="MASS")
npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
residuals(npk.aovE)
qqnorm(residuals(npk.aov))

「残差」には、反復測定anovaの場合の方法(つまり、予測)がないため、これは機能しません。

それでは、この場合何をすべきでしょうか?

残差は、エラー項なしで同じフィットモデルから単純に抽出できますか?私はこれが有効であるかどうかを知るのに十分なほど文献に精通していません。

回答:


5

単純な応答residuals(npk.aovE)が得られない場合がありますが、それはそのオブジェクトに残差がないことを意味しません。strレベル内にまだ残差があることを確認してください。あなたが「内」レベルに最も興味を持っていたと思います

> residuals(npk.aovE$Within)
          7           8           9          10          11          12 
 4.68058815  2.84725482  1.56432584 -5.46900749 -1.16900749 -3.90234083 
         13          14          15          16          17          18 
 5.08903669  1.28903669  0.35570336 -3.27762998 -4.19422371  1.80577629 
         19          20          21          22          23          24 
-3.12755705  0.03910962  2.60396981  1.13730314  2.77063648  4.63730314 

私自身のトレーニングと実践は、正規性テストを使用することではなく、代わりにQQプロットと堅牢なメソッドを使用した並列テストを使用することでした。


Dwinさん、ありがとうございます。(Within 1の他に)異なる残差のどれを調査する必要があるのか​​と思います。乾杯、タル
タルガリリ2011年

npk.aovEは3つの要素のリストです。最初の2つはパラメーター推定値であり、正規性は想定されていないため、$ Within以外をテストすることは適切ではないようです。names(npk.aovE)`[1]"(Intercept) "" block "" Within "`を返します
DWin

@ Dwin、trevが投稿した最後のアプローチ(最後の回答)を確認できますか?残差を計算するために一種の予測を使用します。これは、グループ間の分散の均一性を示すグラフをプロットするための私にとって最も簡単なアプローチです。
toto_tico 2015年

@Dwin、またqqplotはlmのみを受け入れ、aovは受け入れないようです。
toto_tico 2015年

2

別のオプションはlmenlmeパッケージの関数を使用することです(次に、取得したモデルをに渡しますanova)。residualsその出力で使用できます。


1

分析を行う前に、反復測定ごとに正規性の仮定を評価できると思います。各列が繰り返し測定に対応するようにデータフレームの形状を変更し、それらの各列に対してshapiro.testを実行します。

apply(cast(melt(npk,measure.vars="yield"), ...~N+P+K)[-c(1:2)],2,function(x) shapiro.test(x)$p.value)

ありがとうgd047-問題は、aov(yield〜N P K + Error(block /(N + K))、npk)のより複雑なシナリオがある場合にどうすればよいですか?
Tal Galili、2011年

シナリオの違いを説明していただけませんか?残念ながら、私はモデルでのエラー用語の使用に十分に精通していません(ところで、あなたはそれについての良い本を提案できますか?)。私が提案したのは、私が学んだように、正規性の仮定をチェックするSPSSの方法です。これを例として見る goo.gl/p45Bx
George Dontas

こんにちはgd047。リンクありがとうございます。これらのモデルについて私が知っていることはすべて、ここからリンクされています。r-statistics.com / 2010/04 / 他のリソースについて知るようになる場合-私はそれらについて知りたいです。乾杯、タル
タルガリリ2011年

1

VenablesとRipleyは、反復測定設計の残差診断を行う方法について、後で本(p。284)の変量効果と混合効果のセクションで説明しています。

残差関数(またはresid)は、各層のaov結果に対して実装されます。

彼らの例から: oats.aov <- aov(Y ~ N + V + Error(B/V), data=oats, qr=T)

近似値または残差を取得するには:

「したがってfitted(oats.aov[[4]])、これresid(oats.aov[[4]])は、最後の層からの近似値と残差を表す長さ54のベクトルです。」

重要なのは、次のことを追加することです。

「それらを元の実験のプロットと一意に関連付けることは不可能です。」

診断には、予測を使用します。

plot(fitted(oats.aov[[4]]), studres(oats.aov[[4]]))
abline(h=0, lty=2)
oats.pr <- proj(oats.aov)
qqnorm(oats.pr[[4]][, "Residuals"], ylab = "Stratum 4 residuals")
qqline(oats.pr[[4]][, "Residuals"])

また、別のユーザーが投稿したように、lmeを使用してモデルを実行できることも示しています。


よれば、このことは、[3]としない[[4]]であるべきです。私はそれをテストしました、そしてそれは[[3]]のためだけに働きます
toto_tico '25年

1

aovとlmeの2つのオプションがあります(2番目が好ましいと思います)。

require(MASS) ## for oats data set
require(nlme) ## for lme()
require(multcomp) ## for multiple comparison stuff

Aov.mod <- aov(Y ~ N * V + Error(B/V), data = oats)
the_residuals <- aov.out.pr[[3]][, "Residuals"]

Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats)
the_residuals <- residuals(Lme.mod)

元の例ではインタラクション(Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats))はありませんでしたが、動作しているようです(結果が異なるため、何かを実行しています)。

以上です...

しかし完全性のために:

1-モデルの要約

summary(Aov.mod)
anova(Lme.mod)

2-繰り返し測定anovaを使用したTukeyテスト(3時間これを探しています!!)。

summary(Lme.mod)
summary(glht(Lme.mod, linfct=mcp(V="Tukey")))

3-正規性と等分散性のプロット

par(mfrow=c(1,2)) #add room for the rotated labels
aov.out.pr <- proj(aov.mod)                                            
#oats$resi <- aov.out.pr[[3]][, "Residuals"]
oats$resi <- residuals(Lme.mod)
qqnorm(oats$resi, main="Normal Q-Q") # A quantile normal plot - good for checking normality
qqline(oats$resi)
boxplot(resi ~ interaction(N,V), main="Homoscedasticity", 
        xlab = "Code Categories", ylab = "Residuals", border = "white", 
        data=oats)
points(resi ~ interaction(N,V), pch = 1, 
       main="Homoscedasticity",  data=oats)

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.