反復測定anovaモデルと混合モデルの同等性:lmerとlme、および複合対称性


9

aov内部反復測定モデルとlmer混合モデルの間で同等の結果を取得するのに問題があります。

私のデータとスクリプトは次のようになります

data=read.csv("https://www.dropbox.com/s/zgle45tpyv5t781/fitness.csv?dl=1")
data$id=factor(data$id)
data
   id  FITNESS      TEST PULSE
1   1  pilates   CYCLING    91
2   2  pilates   CYCLING    82
3   3  pilates   CYCLING    65
4   4  pilates   CYCLING    90
5   5  pilates   CYCLING    79
6   6  pilates   CYCLING    84
7   7 aerobics   CYCLING    84
8   8 aerobics   CYCLING    77
9   9 aerobics   CYCLING    71
10 10 aerobics   CYCLING    91
11 11 aerobics   CYCLING    72
12 12 aerobics   CYCLING    93
13 13    zumba   CYCLING    63
14 14    zumba   CYCLING    87
15 15    zumba   CYCLING    67
16 16    zumba   CYCLING    98
17 17    zumba   CYCLING    63
18 18    zumba   CYCLING    72
19  1  pilates   JOGGING   136
20  2  pilates   JOGGING   119
21  3  pilates   JOGGING   126
22  4  pilates   JOGGING   108
23  5  pilates   JOGGING   122
24  6  pilates   JOGGING   101
25  7 aerobics   JOGGING   116
26  8 aerobics   JOGGING   142
27  9 aerobics   JOGGING   137
28 10 aerobics   JOGGING   134
29 11 aerobics   JOGGING   131
30 12 aerobics   JOGGING   120
31 13    zumba   JOGGING    99
32 14    zumba   JOGGING    99
33 15    zumba   JOGGING    98
34 16    zumba   JOGGING    99
35 17    zumba   JOGGING    87
36 18    zumba   JOGGING    89
37  1  pilates SPRINTING   179
38  2  pilates SPRINTING   195
39  3  pilates SPRINTING   188
40  4  pilates SPRINTING   189
41  5  pilates SPRINTING   173
42  6  pilates SPRINTING   193
43  7 aerobics SPRINTING   184
44  8 aerobics SPRINTING   179
45  9 aerobics SPRINTING   179
46 10 aerobics SPRINTING   174
47 11 aerobics SPRINTING   164
48 12 aerobics SPRINTING   182
49 13    zumba SPRINTING   111
50 14    zumba SPRINTING   103
51 15    zumba SPRINTING   113
52 16    zumba SPRINTING   118
53 17    zumba SPRINTING   127
54 18    zumba SPRINTING   113

基本的に、3 x 6の被験者(id)はFITNESS、それぞれ3つの異なるトレーニングスキームを受け、3 PULSEつの異なるタイプの持久力を実行した後に測定されましたTEST

次に、次のaovモデルを取り付けました。

library(afex)
library(car)
set_sum_contrasts()
fit1 = aov(PULSE ~ FITNESS*TEST + Error(id/TEST),data=data)
summary(fit1)
Error: id
          Df Sum Sq Mean Sq F value   Pr(>F)    
FITNESS    2  14194    7097   115.1 7.92e-10 ***
Residuals 15    925      62                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Error: id:TEST
             Df Sum Sq Mean Sq F value   Pr(>F)    
TEST          2  57459   28729   253.7  < 2e-16 ***
FITNESS:TEST  4   8200    2050    18.1 1.16e-07 ***
Residuals    30   3397     113                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

私が使用して得た結果

set_sum_contrasts()
fit2=aov.car(PULSE ~ FITNESS*TEST+Error(id/TEST),data=data,type=3,return="Anova")
summary(fit2)

これと同じです。

を使用して混合モデルを実行するとnlme、直接同等の結果が得られますlme

library(lmerTest)    
lme1=lme(PULSE ~ FITNESS*TEST, random=~1|id, correlation=corCompSymm(form=~1|id),data=data)
anova(lme1)
             numDF denDF   F-value p-value
(Intercept)      1    30 12136.126  <.0001
FITNESS          2    15   115.127  <.0001
TEST             2    30   253.694  <.0001
FITNESS:TEST     4    30    18.103  <.0001


summary(lme1)
Linear mixed-effects model fit by REML
 Data: data 
       AIC      BIC    logLik
  371.5375 393.2175 -173.7688

Random effects:
 Formula: ~1 | id
        (Intercept) Residual
StdDev:    1.699959 9.651662

Correlation Structure: Compound symmetry
 Formula: ~1 | id 
 Parameter estimate(s):
       Rho 
-0.2156615 
Fixed effects: PULSE ~ FITNESS * TEST 
                                 Value Std.Error DF   t-value p-value
(Intercept)                   81.33333  4.000926 30 20.328628  0.0000
FITNESSpilates                 0.50000  5.658164 15  0.088368  0.9308
FITNESSzumba                  -6.33333  5.658164 15 -1.119327  0.2806
TESTJOGGING                   48.66667  6.143952 30  7.921069  0.0000
TESTSPRINTING                 95.66667  6.143952 30 15.570868  0.0000
FITNESSpilates:TESTJOGGING   -11.83333  8.688861 30 -1.361897  0.1834
FITNESSzumba:TESTJOGGING     -28.50000  8.688861 30 -3.280062  0.0026
FITNESSpilates:TESTSPRINTING   8.66667  8.688861 30  0.997446  0.3265
FITNESSzumba:TESTSPRINTING   -56.50000  8.688861 30 -6.502579  0.0000

または使用gls

library(lmerTest)    
gls1=gls(PULSE ~ FITNESS*TEST, correlation=corCompSymm(form=~1|id),data=data)
anova(gls1)

しかし、私が使用して取得した結果lme4さんはlmer異なります。

set_sum_contrasts()
fit3=lmer(PULSE ~ FITNESS*TEST+(1|id),data=data)
summary(fit3)
Linear mixed model fit by REML ['lmerMod']
Formula: PULSE ~ FITNESS * TEST + (1 | id)
   Data: data

REML criterion at convergence: 362.4

Random effects:
 Groups   Name        Variance Std.Dev.
 id       (Intercept)  0.00    0.0     
 Residual             96.04    9.8     
...

Anova(fit3,test.statistic="F",type=3)
Analysis of Deviance Table (Type III Wald F tests with Kenward-Roger df)

Response: PULSE
                    F Df Df.res    Pr(>F)    
(Intercept)  7789.360  1     15 < 2.2e-16 ***
FITNESS        73.892  2     15 1.712e-08 ***
TEST          299.127  2     30 < 2.2e-16 ***
FITNESS:TEST   21.345  4     30 2.030e-08 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

誰か私がlmerモデルで間違っていることについて何か考えはありますか?または違いはどこから来るのですか?それはlmerクラス内の負の相互関係またはそのようなことを許可しないことで何かをしなければならないのでしょうか?ことを考えるnlmeglslme、正しい結果を返すんが、私はこれはで異なっているか疑問に思ってglslme?オプションcorrelation=corCompSymm(form=~1|id)は、正または負のいずれかである可能性があるクラス内相関を直接推定するのに対し、負でlmerはあり得ない(そして、この場合はゼロとして推定される)分散コンポーネントを推定するのですか?


何をしset_sum_contrasts()ますか?
smillig 2014年

これはライブラリafexからのものです-options(contrasts = c( "contr.sum"、 "contr.poly"))を使用してエフェクトコーディングを設定します
Tom Wenseleers 14年

1
あなたの最後の文の仮説は正確です。
ベンボルカー、2014年

本当にありがとうございます!githubで利用可能なlComp4 'flexLambda'の最先端の開発バージョンがあり、corCompSymm型の相関構造が可能になると以前に言及したことを覚えています。それはまだ事実ですか、そしてそのバージョンは偶然にもlme結果を返すことができますか?
Tom Wenseleers、2014年

回答:


14

ベンボルカーがすでにコメントで述べたように、問題はあなたが疑うとおりです。lmer()モデルは分散コンポーネントモデルを推定しようとするため、トリップコンポーネントは推定されます。私がやろうとしていることは、これにつながるデータセットについて、そしてこれが分散成分モデルに問題を引き起こす理由について、いくぶん直感的に理解できるようにすることです。

これはデータセットのプロットです。白い点は実際の観測であり、黒い点は主題の平均です。

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

物事をより簡単にするために、問題の精神を変更せずに、固定効果(つまり、FITNESSand TEST効果、および総平均)を差し引き、残差データを一方向変量効果問題として扱います。新しいデータセットは次のようになります。

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

このプロットのパターンをよく見てください。同じ被験者から得られた観察が異なる被験者から得られた観察とどのように異なるかを考えてください。具体的には、次のパターンに注意してください。被験者の観測値の1つが被験者の平均より高い(または低い)ので、その被験者からの他の観測値は被験者の平均の反対側になる傾向があります。そして、観測値が主語平均から離れているほど、他の観測値は反対側の主語平均から離れる傾向があります。これは、負のクラス内相関を示します。同じ被験者から取得された2つの観測は、実際には、データセットから純粋に無作為に抽出された2つの観測よりも、平均して類似性が低くなる傾向があります。

このパターンについて考えるもう1つの方法は、被験者間および被験者内の分散の相対的な大きさの観点からです。被験者間分散と比較して、被験者内分散が大幅に大きいようです。もちろん、これはある程度起こると予想しています。すべての後、被験者内分散は、対象間変動を変動に基づいている間、個々のデータポイントの変化に基づいている手段、個々のデータポイント(すなわち、被写体手段)の、我々は分散のことを知っています平均されるものの数が増えるにつれて、平均は減少する傾向があります。しかし、このデータセットの違いは非常に印象的である:ある方法は、被験者間変動よりも被験者内変動。実際、この違いが、負のクラス内相関が生じる理由です。

さて、ここに問題があります。分散コンポーネントモデルでは、各データポイントが対象の影響とエラーの合計であると想定します:ここで、は番目の対象の影響です。それでは、主題の効果に本当に0の分散がある場合、つまり、被験者間の真の分散成分が0である場合にどうなるかを考えてみましょう。サンプル平均を計算する場合、このモデルで生成された実際のデータセットを考えると各被験者の観測データについて、これらの標本平均には依然としてゼロ以外の分散がありますが、それらは誤差の分散のみを反映し、「真の」被験者の分散は反映しません(何もないと仮定しているため)。 u j jyij=uj+eijujj

では、これらの主題がどのように変化することを期待できるでしょうか?まあ、基本的にはそれぞれの推定される被験者の効果は平均であり、平均の分散の式はであることがわかり。ここで、は平均されるものの数。次に、この式をデータセットに適用し、被験者間の真の分散成分が正確に0である場合に推定される被験者の効果にどの程度の分散が見られるかを見てみましょう。、Nvar(X¯)=var(Xi)/nn

被験者内の分散はであることが、各被験者の効果は3つの観測値の平均として計算されます。したがって、対象の平均の期待される標準偏差は-対象間の真の分散が0であると仮定すると-約ます。これを被験者の標準偏差と比較すると、実際に観察されたことを意味します:!観察された変動は、被験者間変動が0であると想定した場合、予想される変動よりも大幅に小さくなっています。分散コンポーネントモデルの場合、観測された変動が実際に観測されたものと同じくらい低くなることが期待できる唯一の方法は、被験者間の真の分散が何らかの形で負である場合です。10.8 4.334810.84.3。そしてそこに問題があります。データは、何らかの形で負の分散コンポーネントがあることを示していますが、ソフトウェアは、(実際には)分散が実際に負になることはないため、分散コンポーネントの負の推定を許可しません。適合する他のモデルは、単純な分散コンポーネントモデルを仮定するのではなく、クラス内相関を直接推定することでこの問題を回避します。

データセットによって暗示される負の分散コンポーネントの推定を実際にどのように取得できるかを確認したい場合はRこの別の最近の回答で説明している手順(付随するコードを含む)を使用できます。この手順は簡単なものではありませんが、それほど難しいことでもありません(このようなバランスの取れた設計の場合)。


こんにちはジェイクこの非常に明確な説明に感謝します!しかし、複合対称性(または一般的な相関構造)を持つlmeモデルを使用すれば、大丈夫ですか?そして、そのlmeモデルのRho、-0.2156615は、負のクラス内相関でしょう。
Tom Wenseleers、2014年

@TomWenseleersうん(両方)
Jake Westfall

1
+1。それは優れた教育学的な答えであり、賛成票が非常に少ないのは残念です。
amoeba
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.