aovモデルの共変量の次数を変更すると、p値の有意性が変化するのはなぜですか?


10

482観測のデータセットがあります。

data=Populationfull

3つのSNPの遺伝子型関連分析を行います。私は分析用のモデルを構築しようとしていますが、aov(y〜x、data = ...)を使用しています。1つの特性について、次のようにモデルに含めたいくつかの固定効果と共変量があります。

Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull)

summary(Starts)
                Df Sum Sq Mean Sq F value   Pr(>F)    
Sex              3  17.90    5.97  42.844  < 2e-16 ***
DMRT3            2   1.14    0.57   4.110    0.017 *  
Birthyear        9   5.59    0.62   4.461 1.26e-05 ***
Country          1  11.28   11.28  81.005  < 2e-16 ***
Earnings         1 109.01  109.01 782.838  < 2e-16 ***
Voltsec          1  12.27   12.27  88.086  < 2e-16 ***
Autosec          1   8.97    8.97  64.443 8.27e-15 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

モデル内の変数の順序を変更すると、異なるp値が得られることがわかりました。以下を参照してください。

Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull)

summary(Starts2)

                Df Sum Sq Mean Sq F value   Pr(>F)    
Voltsec   1   2.18    2.18  15.627 8.92e-05 ***
Autosec   1 100.60  100.60 722.443  < 2e-16 ***
Sex              3  10.43    3.48  24.962 5.50e-15 ***
DMRT3            2   0.82    0.41   2.957  0.05294 .  
Birthyear        9   3.25    0.36   2.591  0.00638 ** 
Country          1   2.25    2.25  16.183 6.72e-05 ***
Earnings      1  46.64   46.64 334.903  < 2e-16 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

変数/因子/共変量/固定効果(?)がコード化されている順序に応じて、異なるp値が得られるのはなぜですか?それを「修正」する方法はありますか?イムが間違ったモデルを使用している可能性がありますか?私はまだRでかなり新しいので、あなたが私を助けることができるなら、私は答えを理解できるように、それを本当に単純にしておいてください...


3
Populationfull問題を再現できるように、のサンプルデータを提供してください。これは、aov()ヘルプページの例では発生しません。summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
MrFlick 2016年

値のフィールド全体が変更されたため、p値が変化しています。最初の実行Earnings 1 109.01 109.01 782.838 < 2e-16 ***2番目の実行Earnings 1 46.64 46.64 334.903 < 2e-16 ***。あなたの結果は同じではありません。まず、変数の並べ替え以外の処理を行っていないことを確認します。

1
また、2番目のモデルでは、収益ではなく獲得を使用します...名前が異なる2つの変数がある場合、SO質問スペースへのコピーのタイプミスでないと問題になる可能性があります。

はい、値は変わりますが、なぜですか?私は両方のモデルでまったく同じデータフレームのまったく同じ列を使用しました(2番目のモデルのEarnings vs Earnは、私が間違って書いたものです。今すぐ修正しました)。
Rbeginner 2016年

1
これは、デザインのバランスが悪いために起こります。このフォーラムを検索するか、単にGoogleの「Rの不均衡分散分析」を検索すると、これについて多くの助けが得られます。carパッケージを調べることをお勧めします。これaovは、タイプI分散分析を行うのに対し、変数の順序に依存しないタイプIIおよびタイプIII分散分析を実装します。
スローロリス2016年

回答:


15

問題aov()は、デフォルトの有意性検定を行う方法に起因します。これは、いわゆる「タイプI」ANOVA分析を使用します。この分析では、モデルで変数が指定されている順序でテストが行​​われます。したがって、最初の例では、それによって説明される分散の量を決定しsex、その有意性をテストします。次に、残りの分散のどの部分が説明されDMRT3、その残りの分散に関してその有意性をテストします。第2の例では、DMRT3後にのみ評価されVoltsecAutosecおよびsex、そのために、そうするために、残りの少ない分散があるDMRT3説明するが。

2つの予測変数が相関している場合、モデルに入力された最初の変数は完全な「クレジット」を取得し、2番目の変数によって「説明」される分散が少なくなるため、たとえ最初の変数よりも「統計的に有意」に見えない場合があります。機能的には違います。この質問とその回答は、ANOVA分析のさまざまなタイプを説明しています。

これを回避する1つの方法は、古典的なANOVAの構造から自分自身を抽出しlm()、ではなく、R を使用した単純な線形モデルを使用することaov()です。これにより、すべての予測子を効率的に並行して分析し、すべての予測子を一度に「修正」します。その場合、2つの相関する予測子は、推定回帰係数の標準誤差が大きくなり、母集団の異なるサンプル間で係数が異なる可能性がありますが、少なくともモデル仕様に変数を入力する順序は重要ではありません。

名前がStarts示すように、応答変数が何らかのタイプのカウント変数である場合、p値の解釈に必要なため、残差が正規分布される可能性が低いため、おそらくANOVAを使用しないでください。カウント変数は、一般化された線形モデル(glm()Rなど)でより適切に処理されます。これはlm()、他のタイプの残差エラー構造の一般化と考えることができます。

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