なぜlmeとaovはRの反復測定ANOVAに対して異なる結果を返すのですか?


24

ezパッケージの使用からlme反復測定ANOVA に移行しようとしています(カスタムコントラストをで使用できるようになるとよいのですがlme)。

このブログ投稿からのアドバイスに従って、aovez要求された場合のように)との両方を使用して同じモデルをセットアップすることができましたlme。ただし、その投稿で示されいる例では、F値はaovとの間で完全に一致lmeしています(チェックし、一致しています)が、これは私のデータには当てはまりません。がFの -値が類似している、彼らは同じではありません。

aov1.3399のf値をlme返し、1.36264を返します。aovこれは「正しい」結果として受け入れます。これもSPSSが返すものです(そしてこれが私のフィールド/スーパーバイザーにとって重要なことです)。

質問:

  1. この違いが存在する理由lmeと、信頼できる結果を提供するために私がどのように使用できるかを誰かが説明できれば素晴らしいと思います。(「正しい」結果が得られれば、このタイプのもののlmer代わりに喜んで使用しますlme。しかし、私はこれまで使用していません。)

  2. この問題を解決した後、コントラスト分析を実行したいと思います。特に、最初の2つのレベルの因子(つまりc("MP", "MT"))をプールし、これを3番目のレベルの因子(つまり)と比較することに興味があり"AC"ます。さらに、因子の第四レベル(すなわち、対第三のテスト"AC""DA")。

データ:

tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K", 
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E", 
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G", 
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1, 
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332, 
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501, 
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447, 
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08, 
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432, 
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461, 
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623, 
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904, 
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296, 
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562, 
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464, 
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266, 
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752, 
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L, 
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L, 
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L, 
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L, 
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L, 
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L, 
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L, 
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L, 
234L, 243L, 245L, 247L, 250L))

そしてコード:

require(nlme)

summary(aov(value ~ factor+Error(id/factor), data = tau.base))

anova(lme(value ~ factor, data = tau.base, random = ~1|id))

あなたはここであなたの答えの中であなた自身がコントラストに関する部分に答えたように見えます ; そうでない場合は、この質問を編集して、残りの難易度を確認してください。
アーロン-復活モニカ

2
@Aaron、lme標準の教科書ANOVAの結果に違いがある限り(で与えられaov、これが必要です)、これは私にとって選択肢ではありません。私の論文では、ANOVAのようなものではなく、ANOVAを報告します。興味深いことにVenables&Ripley(2002、p。285)は、両方のアプローチが同一の推定値につながることを示しています。しかし、F値の違いにより、気持ちが悪くなります。さらに、Anova()(from car)はlmeオブジェクトのChi²値のみを返します。したがって、私にとって、私の最初の質問はまだ答えられていません。
ヘンリック

私はあなたの警戒心を理解しています(しかし共有しません)lme。対照的に、フィットだけでなくフィットにもglht機能します。(また、結果は標準的な教科書の結果でもあります。)lmlmelme
アーロン-モニカの復職

残念ながらlm、繰り返し測定分析を指定することはできません。aov繰り返される測定のみを処理できますaovlistが、残念ながらによって処理されないクラスのオブジェクトを返しますglht
ヘンリック

3
lmすべての効果の誤差項として残留誤差を使用します。異なる誤差項を使用する必要がある効果がある場合aovは、必要です(または、代わりにからの結果lmを使用してF統計を手動で計算します)。あなたの例では、の誤差項factorid:factor相互作用であり、これは加法モデルの残差誤差項です。結果とを比較してくださいanova(lm(value~factor+id))
アーロン-復帰モニカ

回答:


28

lmeモデルはの分散成分を強制的にidゼロより大きくするため、これらは異なります。すべての項の生のanovaテーブルを見ると、idの平均二乗誤差が残差の平均二乗誤差よりも小さいことがわかります。

> anova(lm1 <- lm(value~ factor+id, data=tau.base))

          Df  Sum Sq Mean Sq F value Pr(>F)
factor     3  0.6484 0.21614  1.3399 0.2694
id        21  3.1609 0.15052  0.9331 0.5526
Residuals 63 10.1628 0.16131   

分散成分を計算するとき、これはidによる分散が負になることを意味します。予想平均二乗メモリの私の記憶は不安定ですが、計算は次のようなものです

(0.15052-0.16131)/3 = -0.003597.

これは奇妙に聞こえますが、起こる可能性があります。つまり、各idの平均は、モデルの残余変動の量を考えると、互いに予想よりも近いということです。

対照的に、lmeを使用すると、この分散は強制的にゼロより大きくなります。

> summary(lme1 <- lme(value ~ factor, data = tau.base, random = ~1|id))
...
Random effects:
 Formula: ~1 | id
        (Intercept)  Residual
StdDev: 3.09076e-05 0.3982667

これは、標準偏差をレポート9.553e-10し、id分散と0.1586164残差分散の分散利回りを取得するために二乗します。

ここで、aov繰り返し測定に使用することは、繰り返し測定のすべてのペア間の相関が同一であると信じる場合にのみ適切であることを知っておく必要があります。これは複合対称性と呼ばれます。(技術的には、球形度が必要ですが、今のところこれで十分です。)使用lmeする理由の1つaovは、さまざまな種類の相関構造を処理できることです。

この特定のデータセットでは、この相関の推定値は負です。これは、idの平均二乗誤差が残差二乗誤差よりも小さいことを説明するのに役立ちます。負の相関とは、個人の最初の測定値が平均を下回った場合、平均して2番目の測定値が平均を上回り、個人の合計平均の変動がゼロ相関または正の相関がある場合に予想されるよりも小さくなることを意味します。

lmeランダム効果を使用することは、その相関が非負になるように強制される複合対称モデルをフィッティングすることと同等です。を使用して、相関が負になることが許可されているモデルを近似できますgls

> anova(gls1 <- gls(value ~ factor, correlation=corCompSymm(form=~1|id),
                    data=tau.base))
Denom. DF: 84 
            numDF   F-value p-value
(Intercept)     1 199.55223  <.0001
factor          3   1.33985   0.267

このANOVAテーブルは、aov適合および適合のテーブルと一致しますlm

OK さて、id観測値からの分散と観測値間の相関が非負であるべきだと信じている場合、lme実際には適合を使用するよりも、aovまたはlm残差分散の推定値がわずかに優れているため、適合はより適切です。ただし、観測値間の相関が負になる可能性がある、aovまたはlmそれglsよりも優れていると思われる場合。

また、相関構造をさらに調査することもできます。一般的な相関構造を見るには、次のようにします

gls2 <- gls(value ~ factor, correlation=corSymm(form=~unclass(factor)|id),
data=tau.base)

ここでは、相関構造への出力のみを制限します。値1〜4は、4つのレベルを表しfactorます。因子1と因子4にはかなり強い負の相関があることがわかります。

> summary(gls2)
...
Correlation Structure: General
 Formula: ~unclass(factor) | id 
 Parameter estimate(s):
 Correlation: 
  1      2      3     
2  0.049              
3 -0.127  0.208       
4 -0.400  0.146 -0.024

これらのモデルを選択する1つの方法は、尤度比検定を使用することです。これは、変量効果モデルと一般的な相関構造モデルが統計的に有意な差がないことを示しています。それが起こるとき、より単純なモデルが通常好まれます。

> anova(lme1, gls2)
     Model df      AIC      BIC    logLik   Test  L.Ratio p-value
lme1     1  6 108.0794 122.6643 -48.03972                        
gls2     2 11 111.9787 138.7177 -44.98936 1 vs 2 6.100725  0.2965

2
それと共に化合物対称性を使用することが実際に可能であるlmeと同じ結果を得るためにaov(それによってイネーブルlme即ち呼び出しで相関引数を使用して、全てのANOVAを用)lmeanova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))
ヘンリック

1
素敵な発見。しかし、その適合に追加のパラメーターはありませんか?3つの分散パラメーターがあります。idの分散、残差分散、および相関。一方、glsには残差分散と相関のみがあります。
アーロン-モニカの復活

1
あなたの議論はもっともらしいが、結果は一致しない。すべてのanovaテーブル(aovlme複合対称性なし、およびlme複合対称性あり)は、まったく同じ数のdfを持っています。
ヘンリック

1
これら3つのパラメーターは、実際には最初の2つのパラメーターの過剰パラメーター化であることを納得させる必要があります。それらがどのように関連しているかを解きましたか?
アーロン-モニカの復活

1
いいえ。私はの出力を信頼していますanova.lme()。あなたの答えから、ANOVAと混合モデルの関係はそれらの相関構造にあるとわかりました。次に、化合物の対称相関構造を課すと、2つのアプローチが等しくなることを読みました。したがって、私はそれを課しました。これが別のdfを使い果たすかどうかはわかりません。ただし、出力はこの解釈と一致しません。
ヘンリック

2

aov()lm()最小二乗法を使用してモデルに適合し、lme最尤法により適合します。線形モデルのパラメーターの推定方法の違いは、f値の(非常に小さな)違いを説明する可能性があります。

実際には(たとえば仮説検定の場合)これらの推定値は同じであるため、一方が他方よりも「信頼性が高い」と見なされる方法はわかりません。それらは異なるモデルフィッティングパラダイムから来ています。

対比については、因子の対比行列を設定する必要があります。VeneblesとRipleyは、第4版の143、p.146、およびp.293-294でこれを行う方法を示しています。


うーん、でもどうして違いがあり、結果がまったく同じなのですか?Furthemroreでは、ANOVA を使用しlmeたりlmer、ANOVAを計算する(厳密に言えば)ことは不可能と思われます。これは、類似しているが同一ではない方法を使用しているためです。では、Rの反復測定ANOVAのコントラストを計算する方法はありませんか?
ヘンリック

システムが最小二乗よりも真に線形である場合、MLは同じf統計量を与えるはずです。データに他の構造がある場合にのみ、2つの方法で異なる結果が得られます。PinheiroとBatesは、混合効果モデルブックでこれをカバーしています。また、それらは「正確に」等しくない可能性があります。sig桁で十分に行けば、何らかの違いが見つかると確信しています。しかし、すべての実用的な目的のために、それらは同じです。
クリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.