3 방향 반복 측정 분산 분석에 해당하는 lme4 :: lmer는 무엇입니까?


11

내 질문은 lme4::lmer 모델이 양방향 반복 측정 ANOVA에 해당 하는 모델 을 보여준 이 응답 을 기반으로 합니다 .

require(lme4)
set.seed(1234)
d <- data.frame(
    y = rnorm(96),
    subject = factor(rep(1:12, 4)),
    a = factor(rep(1:2, each=24)),
    b = factor(rep(rep(1:2, each=12))),
    c = factor(rep(rep(1:2, each=48))))

# standard two-way repeated measures ANOVA:
summary(aov(y~a*b+Error(subject/(a*b)), d[d$c == "1",]))

# corresponding lmer call:
anova(lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject), d[d$c == "1",]))

내 질문은 이제 이것을 3 원 분산 분석의 경우로 확장하는 방법에 관한 것입니다.

summary(aov(y~a*b*c+Error(subject/(a*b*c)), d))
## [...]
## Error: subject:a:b:c
##           Df Sum Sq Mean Sq F value Pr(>F)
## a:b:c      1  0.101  0.1014   0.115  0.741
## Residuals 11  9.705  0.8822 

자연 확장 및 버전은 ANOVA 결과와 일치하지 않습니다.

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject), d))
## [...]
## a:b:c  1 0.1014  0.1014  0.1500

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) + 
               (1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))
## [...]
## a:b:c  1 0.1014  0.1014  0.1539

이전 에도 매우 비슷한 질문이있었습니다 . 그러나 여기에 제공된 예제 데이터가 누락되었습니다.


2 단계 모델을 원하지 y ~ a*b + (1 + a*b|subject), d[d$c == "1",]않습니까? 아니면 뭔가 빠졌습니까?
Rasmus Bååth

@ RasmusBååth 앞서 가서 그것을 맞추려고 lmer하면 무작위 효과가 더 이상 식별되지 않으므로 불평합니다. 처음에 나는 이것이 내가 원하는 모델이라고 생각했지만 그렇지 않습니다. 2-way 경우에 제안하는 lmer 모델을 표준 ANOVA와 비교하면 F- 값이 정확히 일치 함을 알 수 있습니다. 응답에서 말했듯이 나는 연결했습니다.
Henrik

3
3 방향 문제의 경우, 처음 lmer작성한 모델 (임의의 양방향 상호 작용 제외)은 3 방향 RM-ANOVA와 같지 않지만 작성한 두 번째 모델 (임의 의 랜덤 포함) 양방향 상호 작용)해야합니다. 왜 그 모델과도 불일치가 있는지에 관해서는, 문제가 무엇인지에 대한 직감을 가지고 저녁 식사를하고 장난감 데이터 세트를 더 살펴볼 것입니다.
Jake Westfall 1

답변:


18

귀하의 질문에 대한 직접적인 대답은 여러분이 마지막으로 쓴 모델입니다.

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) + 
           (1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))

실제 원칙에서 항상 잘 작동하지 않는 이상한 매개 변수이지만 "원칙적으로"정확하다고 생각합니다.

이 모델에서 얻은 aov()출력 이 출력 과 일치하지 않는 이유는 두 가지 이유가 있다고 생각합니다.

  1. 가장 잘 맞는 모델은 음의 분산 성분을 의미하는 모델이기 때문에 단순 시뮬레이션 된 데이터 세트는 병리학 적입니다 lmer().
  2. 비 병리학 적 데이터 세트를 사용하더라도 위에서 언급 한 것처럼 모델 설정 방식이 실제로 실제로 잘 작동하지는 않지만 실제로 이유를 이해하지 못한다는 것을 인정해야합니다. 내 의견으로는 일반적으로 이상하지만, 그것은 또 다른 이야기입니다.

먼저 초기 양방향 ANOVA 예제에서 선호하는 매개 변수화를 보여 드리겠습니다. 데이터 세트 d가로드 되었다고 가정합니다 . 귀하의 모델 (내가 더미에서 대비 코드로 변경되었음을 참고하십시오)

options(contrasts=c("contr.sum","contr.poly"))
mod1 <- lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject),
         data = d[d$c == "1",])
anova(mod1)
# Analysis of Variance Table
#     Df  Sum Sq Mean Sq F value
# a    1 2.20496 2.20496  3.9592
# b    1 0.13979 0.13979  0.2510
# a:b  1 1.23501 1.23501  2.2176

aov()출력 과 일치한다는 점에서 잘 작동했습니다 . 내가 선호하는 모델에는 두 가지 변경 사항이 있습니다. 수동으로 요소를 대조 코딩하여 R 요소 개체 (100 %의 경우 권장)와 무작위 효과를 다르게 지정하지 마십시오.

d <- within(d, {
  A <- 2*as.numeric(paste(a)) - 3
  B <- 2*as.numeric(paste(b)) - 3
  C <- 2*as.numeric(paste(c)) - 3
})
mod2 <- lmer(y ~ A*B + (1|subject)+(0+A|subject)+(0+B|subject),
             data = d[d$c == "1",])
anova(mod2)
# Analysis of Variance Table
# Df  Sum Sq Mean Sq F value
# A    1 2.20496 2.20496  3.9592
# B    1 0.13979 0.13979  0.2510
# A:B  1 1.23501 1.23501  2.2176

logLik(mod1)
# 'log Lik.' -63.53034 (df=8)
logLik(mod2)
# 'log Lik.' -63.53034 (df=8)

두 가지 접근 방식은 단순한 양방향 문제에서 완전히 동일합니다. 이제 3 방향 문제로 넘어가겠습니다. 앞서 언급 한 데이터 세트는 병리학적인 것으로 언급했습니다. 따라서 예제 데이터 집합을 해결하기 전에 먼저 실제 분산 구성 요소 모델에서 데이터 집합을 생성하는 것입니다 (예 : 0이 아닌 분산 구성 요소가 실제 모델에 내장 된 경우). 먼저 선호하는 매개 변수가 제안한 것보다 어떻게 더 잘 작동하는지 보여 드리겠습니다. 그런 다음 마이너스 가 아니 어야 함을 의미하지 않는 분산 성분을 추정하는 다른 방법을 보여 드리겠습니다 . 그런 다음 원래 예제 데이터 세트의 문제를 볼 수있는 위치에있게됩니다.

새로운 데이터 셋은 50 개의 주제를 제외하고는 구조가 동일합니다.

set.seed(9852903)
d2 <- expand.grid(A=c(-1,1), B=c(-1,1), C=c(-1,1), sub=seq(50))
d2 <- merge(d2, data.frame(sub=seq(50), int=rnorm(50), Ab=rnorm(50),
  Bb=rnorm(50), Cb=rnorm(50), ABb=rnorm(50), ACb=rnorm(50), BCb=rnorm(50)))
d2 <- within(d2, {
  y <- int + (1+Ab)*A + (1+Bb)*B + (1+Cb)*C + (1+ABb)*A*B +
    (1+ACb)*A*C + (1+BCb)*B*C + A*B*C + rnorm(50*2^3)
  a <- factor(A)
  b <- factor(B)
  c <- factor(C)
})

일치시키려는 F 비율은 다음과 같습니다.

aovMod1 <- aov(y ~ a*b*c + Error(factor(sub)/(a*b*c)), data = d2)
tab <- lapply(summary(aovMod1), function(x) x[[1]][1,2:4])
do.call(rbind, tab)
#                          Sum Sq Mean Sq F value
# Error: factor(sub)       439.48    8.97        
# Error: factor(sub):a     429.64  429.64  32.975
# Error: factor(sub):b     329.48  329.48  27.653
# Error: factor(sub):c     165.44  165.44  17.924
# Error: factor(sub):a:b   491.33  491.33  49.694
# Error: factor(sub):a:c   305.46  305.46  41.703
# Error: factor(sub):b:c   466.09  466.09  40.655
# Error: factor(sub):a:b:c 392.76  392.76 448.101

다음은 두 가지 모델입니다.

mod3 <- lmer(y ~ a*b*c + (1|sub)+(1|a:sub)+(1|b:sub)+(1|c:sub)+
  (1|a:b:sub)+(1|a:c:sub)+(1|b:c:sub), data = d2)
anova(mod3)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1  32.73   32.73  34.278
# b      1  21.68   21.68  22.704
# c      1  12.53   12.53  13.128
# a:b    1  60.93   60.93  63.814
# a:c    1  50.38   50.38  52.762
# b:c    1  57.30   57.30  60.009
# a:b:c  1 392.76  392.76 411.365

mod4 <- lmer(y ~ A*B*C + (1|sub)+(0+A|sub)+(0+B|sub)+(0+C|sub)+
  (0+A:B|sub)+(0+A:C|sub)+(0+B:C|sub), data = d2)
anova(mod4)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# A      1  28.90   28.90  32.975
# B      1  24.24   24.24  27.653
# C      1  15.71   15.71  17.924
# A:B    1  43.56   43.56  49.694
# A:C    1  36.55   36.55  41.703
# B:C    1  35.63   35.63  40.655
# A:B:C  1 392.76  392.76 448.101

logLik(mod3)
# 'log Lik.' -984.4531 (df=16)
logLik(mod4)
# 'log Lik.' -973.4428 (df=16)

보시다시피 aov(), 첫 번째 방법은 최소한 야구장에 있지만 두 번째 방법 만의 출력과 일치합니다 . 두 번째 방법은 더 높은 로그 가능성을 달성합니다. 이 두 가지 방법이 다른 결과를 제공하는 이유를 잘 모르겠습니다. 다시 말하지만 "원칙적으로"동등한 것으로 생각되지만 수치 / 계산상의 이유 일 수 있습니다. 아니면 내가 틀렸을 수도 있고 원칙적으로 동등하지 않습니다.

이제 기존 분산 분석 아이디어를 기반으로 분산 성분을 추정하는 다른 방법을 보여 드리겠습니다. 기본적으로 우리는 설계에 대한 예상 평균 제곱 방정식을 취하고 평균 제곱의 관측 값을 대체하고 분산 성분을 풀 것입니다. 예상 평균 제곱을 얻으려면 우리는 내가라고, 몇 년 전에 쓴 것이라는 R 기능 사용 EMS()설명되어 있습니다, 여기를 . 아래에서는 함수가 이미로드되어 있다고 가정합니다.

# prepare coefficient matrix
r <- 1 # number of replicates
s <- 50 # number of subjects
a <- 2 # number of levels of A
b <- 2 # number of levels of B
c <- 2 # number of levels of C
CT <- EMS(r ~ a*b*c*s, random="s")
expr <- strsplit(CT[CT != ""], split="")
expr <- unlist(lapply(expr, paste, collapse="*"))
expr <- sapply(expr, function(x) eval(parse(text=x)))
CT[CT != ""] <- expr
CT[CT == ""] <- 0
mode(CT) <- "numeric"
# residual variance and A*B*C*S variance are confounded in
# this design, so remove the A*B*C*S variance component
CT <- CT[-15,-2]
CT
#        VarianceComponent
# Effect  e b:c:s a:c:s a:b:s a:b:c c:s b:s a:s b:c a:c a:b s   c   b   a
#   a     1     0     0     0     0   0   0   4   0   0   0 0   0   0 200
#   b     1     0     0     0     0   0   4   0   0   0   0 0   0 200   0
#   c     1     0     0     0     0   4   0   0   0   0   0 0 200   0   0
#   s     1     0     0     0     0   0   0   0   0   0   0 8   0   0   0
#   a:b   1     0     0     2     0   0   0   0   0   0 100 0   0   0   0
#   a:c   1     0     2     0     0   0   0   0   0 100   0 0   0   0   0
#   b:c   1     2     0     0     0   0   0   0 100   0   0 0   0   0   0
#   a:s   1     0     0     0     0   0   0   4   0   0   0 0   0   0   0
#   b:s   1     0     0     0     0   0   4   0   0   0   0 0   0   0   0
#   c:s   1     0     0     0     0   4   0   0   0   0   0 0   0   0   0
#   a:b:c 1     0     0     0    50   0   0   0   0   0   0 0   0   0   0
#   a:b:s 1     0     0     2     0   0   0   0   0   0   0 0   0   0   0
#   a:c:s 1     0     2     0     0   0   0   0   0   0   0 0   0   0   0
#   b:c:s 1     2     0     0     0   0   0   0   0   0   0 0   0   0   0
#   e     1     0     0     0     0   0   0   0   0   0   0 0   0   0   0

# get mean squares
(MSmod <- summary(aov(y ~ a*b*c*factor(sub), data=d2)))
#                   Df Sum Sq Mean Sq
# a                  1  429.6   429.6
# b                  1  329.5   329.5
# c                  1  165.4   165.4
# factor(sub)       49  439.5     9.0
# a:b                1  491.3   491.3
# a:c                1  305.5   305.5
# b:c                1  466.1   466.1
# a:factor(sub)     49  638.4    13.0
# b:factor(sub)     49  583.8    11.9
# c:factor(sub)     49  452.2     9.2
# a:b:c              1  392.8   392.8
# a:b:factor(sub)   49  484.5     9.9
# a:c:factor(sub)   49  358.9     7.3
# b:c:factor(sub)   49  561.8    11.5
# a:b:c:factor(sub) 49   42.9     0.9
MS <- MSmod[[1]][,"Mean Sq"]

# solve
ans <- solve(CT, MS)
cbind(rev(ans[c(grep("e",names(ans)),grep("s",names(ans)))])/
        c(1,2,2,2,4,4,4,1))
# s     1.0115549
# a:s   1.5191114
# b:s   1.3797937
# c:s   1.0441351
# a:b:s 1.1263331
# a:c:s 0.8060402
# b:c:s 1.3235126
# e     0.8765093
summary(mod4)
# Random effects:
#  Groups   Name        Variance Std.Dev.
#  sub      (Intercept) 1.0116   1.0058  
#  sub.1    A           1.5191   1.2325  
#  sub.2    B           1.3798   1.1746  
#  sub.3    C           1.0441   1.0218  
#  sub.4    A:B         1.1263   1.0613  
#  sub.5    A:C         0.8060   0.8978  
#  sub.6    B:C         1.3235   1.1504  
#  Residual             0.8765   0.9362  
# Number of obs: 400, groups:  sub, 50

이제 원래 예제로 돌아갑니다. 우리가 일치시키려는 F 비율은 다음과 같습니다.

aovMod2 <- aov(y~a*b*c+Error(subject/(a*b*c)), data = d)
tab <- lapply(summary(aovMod2), function(x) x[[1]][1,2:4])
do.call(rbind, tab)
#                       Sum Sq Mean Sq F value
# Error: subject       13.4747  1.2250        
# Error: subject:a      1.4085  1.4085  1.2218
# Error: subject:b      3.1180  3.1180  5.5487
# Error: subject:c      6.3809  6.3809  5.2430
# Error: subject:a:b    1.5706  1.5706  2.6638
# Error: subject:a:c    1.0907  1.0907  1.5687
# Error: subject:b:c    1.4128  1.4128  2.3504
# Error: subject:a:b:c  0.1014  0.1014  0.1149

다음은 두 가지 모델입니다.

mod5 <- lmer(y ~ a*b*c + (1|subject)+(1|a:subject)+(1|b:subject)+
  (1|c:subject)+(1|a:b:subject)+(1|a:c:subject)+(1|b:c:subject),
  data = d)
anova(mod5)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1 0.8830  0.8830  1.3405
# b      1 3.1180  3.1180  4.7334
# c      1 3.8062  3.8062  5.7781
# a:b    1 1.5706  1.5706  2.3844
# a:c    1 0.9620  0.9620  1.4604
# b:c    1 1.4128  1.4128  2.1447
# a:b:c  1 0.1014  0.1014  0.1539

mod6 <- lmer(y ~ A*B*C + (1|subject)+(0+A|subject)+(0+B|subject)+
  (0+C|subject)+(0+A:B|subject)+(0+A:C|subject)+
  (0+B:C|subject), data = d)
anova(mod6)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1 0.8830  0.8830  1.3405
# b      1 3.1180  3.1180  4.7334
# c      1 3.8062  3.8062  5.7781
# a:b    1 1.5706  1.5706  2.3844
# a:c    1 0.9620  0.9620  1.4604
# b:c    1 1.4128  1.4128  2.1447
# a:b:c  1 0.1014  0.1014  0.1539

logLik(mod5)
# 'log Lik.' -135.0351 (df=16)
logLik(mod6)
# 'log Lik.' -134.9191 (df=16)

이 경우 두 모델은 기본적으로 동일한 결과를 얻지 만 두 번째 방법은 로그 가능성이 약간 더 높습니다. 두 방법 모두 일치하지 않습니다 aov(). 그러나 분산 성분을 음이 아닌 것으로 제한하지 않는 분산 분석 절차를 사용하여 위에서 설명한 것처럼 분산 성분을 해결할 때 얻는 결과를 살펴 보겠습니다 (그러나 연속 예측 변수가없고 균형이없는 설계에서만 사용할 수 있음) 누락 된 데이터, 기존 ANOVA 가정).

# prepare coefficient matrix
r <- 1 # number of replicates
s <- 12 # number of subjects
a <- 2 # number of levels of A
b <- 2 # number of levels of B
c <- 2 # number of levels of C
CT <- EMS(r ~ a*b*c*s, random="s")
expr <- strsplit(CT[CT != ""], split="")
expr <- unlist(lapply(expr, paste, collapse="*"))
expr <- sapply(expr, function(x) eval(parse(text=x)))
CT[CT != ""] <- expr
CT[CT == ""] <- 0
mode(CT) <- "numeric"
# residual variance and A*B*C*S variance are confounded in
# this design, so remove the A*B*C*S variance component
CT <- CT[-15,-2]

# get mean squares
MSmod <- summary(aov(y ~ a*b*c*subject, data=d))
MS <- MSmod[[1]][,"Mean Sq"]

# solve
ans <- solve(CT, MS)
cbind(rev(ans[c(grep("e",names(ans)),grep("s",names(ans)))])/
        c(1,2,2,2,4,4,4,1))
# s      0.04284033
# a:s    0.03381648
# b:s   -0.04004005
# c:s    0.04184887
# a:b:s -0.03657940
# a:c:s -0.02337501
# b:c:s -0.03514457
# e      0.88224787
summary(mod6)
# Random effects:
#  Groups    Name        Variance  Std.Dev. 
#  subject   (Intercept) 7.078e-02 2.660e-01
#  subject.1 A           6.176e-02 2.485e-01
#  subject.2 B           0.000e+00 0.000e+00
#  subject.3 C           6.979e-02 2.642e-01
#  subject.4 A:B         1.549e-16 1.245e-08
#  subject.5 A:C         4.566e-03 6.757e-02
#  subject.6 B:C         0.000e+00 0.000e+00
#  Residual              6.587e-01 8.116e-01
# Number of obs: 96, groups:  subject, 12

이제 우리는 원래의 예에 대해 병적 인 것이 무엇인지 알 수 있습니다. 가장 적합한 모형은 여러 랜덤 분산 성분이 음수임을 암시합니다. 그러나 lmer()(및 대부분의 다른 혼합 모형 프로그램) 분산 성분의 추정값이 음이 아닌 것으로 제한합니다. 분산은 물론 절대적으로 음이 될 수 없으므로 일반적으로 합리적인 제약으로 간주됩니다. 그러나이 제약 조건의 결과로 혼합 모델은 클래스 내부에서 음의 상관 관계가있는 데이터 집합, 즉 동일한 군집의 관측치가 적은 데이터 집합을 정확하게 나타낼 수 없습니다.(더 많은 것이 아니라) 데이터 세트에서 무작위로 얻은 관측치와 평균적으로 유사하며, 결과적으로 클러스터 내 분산이 실질적으로 클러스터 간 분산을 초과하는 경우. 이러한 데이터 세트는 실제 세계에서 가끔 발생하거나 실수로 시뮬레이션 할 수있는 완전히 합리적인 데이터 세트입니다. 그러나 소프트웨어에서 허용하는 경우 해당 모델에서 "비 의식적으로"설명 될 수 있습니다. aov()허용합니다. lmer()하지 않습니다.


+1. 다시 I am not sure why these two methods give different results, as again I think they are "in principle" equivalent, but maybe it is for some numerical/computational reasons-지금 (2 년 후) 더 잘 이해하고 있습니까? 나는 차이점이 무엇인지 알아 내려고했지만 그것을 얻지 못했습니다.
amoeba

@amoeba 내 현재 생각은 여전히 ​​그때와 거의 같습니다. AFAIK, 두 모델은 통계적으로 동일합니다 (데이터에 대해 동일한 예측을하고 동일한 표준 오류를 암시한다는 의미에서). 임의의 효과는 매개 변수화됩니다. 다르게. 때때로 발생하는 것으로 보이는 관측 된 차이는 단지 계산 문제 때문이라고 생각합니다. 특히 두 모델이 정확히 같은 대답을 반환 할 때까지 최적화 시작 설정 (예 : 시작 지점을 변경하거나보다 엄격한 수렴 기준을 사용하는 등)으로 둘러 볼 수 있다고 생각합니다.
Jake Westfall

답장을 보내 주셔서 감사합니다. 나는 확신이 없다 : 나는 옵티 마이저 설정으로 바이올린을 연주하려고 시도했지만 결과에서 아무것도 바꿀 수 없었다. 내 인상은 두 모델이 잘 융합되어 있다는 것입니다. 나는 이것이 때때로 별도의 질문이라고 요청할 수 있습니다.
amoeba

이 문제를 계속 조사하고 다음을 깨달았습니다. 반복 측정 요소가 2 개 이상의 수준을 갖 자마자이 두 방법은 완전히 달라집니다! 수준 A이있는 경우 하나의 분산 모수 만 추정 하는 반면 분산 모수와 상관 관계를 추정 합니다. 내 이해는 고전적 분산 분석은 하나의 분산 모수 만 추정하므로 두 번째가 아닌 첫 번째 방법과 동일해야한다는 것입니다. 권리? 그러나 두 방법 모두 하나의 매개 변수를 추정하며 왜 그들이 동의하지 않는지 여전히 확실하지 않습니다. k - 1 k ( k - 1 ) / 2 k = 2k(1|A:sub)(0+A|sub)k1k(k1)/2k=2
amoeba

이 문제를 다시 얻기 ... 나는 두 이중 경우에 나타났습니다 lmer통화가 동일한 생산 anova()참조 : 출력을 임의 효과의 차이는 그럼에도 불구하고 매우 다른 VarCorr(mod1)VarCorr(mod2). 왜 이런 일이 일어나는지 잘 모르겠습니다. 당신은? 에 대해 mod3, mod47 개의 분산 중 4 개의 분산 mod3이 실제로 0과 같다는 것을 알 수 있습니다 ( mod47 개 모두 0이 아님). 이 "단일성" mod3은 아마도 anova 테이블이 다른 이유 일 것입니다. 경우 그 외에도에서, 당신은 어떻게 당신의 "선호하는 방법"을 사용합니다 ab두 개 이상의 수준을했다?
amoeba

1

있습니까 a, b, c고정 또는 임의 효과? 그것들이 고정되면, 당신의 구문은 단순히

summary(aov(y~a*b*c+Error(subject), d))
Error: subject
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals 11  13.47   1.225               

Error: Within
          Df Sum Sq Mean Sq F value  Pr(>F)   
a          1   1.41   1.408   1.730 0.19235   
b          1   3.12   3.118   3.829 0.05399 . 
c          1   6.38   6.381   7.836 0.00647 **
a:b        1   1.57   1.571   1.929 0.16889   
a:c        1   1.09   1.091   1.339 0.25072   
b:c        1   1.41   1.413   1.735 0.19168   
a:b:c      1   0.10   0.101   0.124 0.72518   
Residuals 77  62.70   0.814  

library(lmerTest)
anova(lmer(y ~ a*b*c+(1|subject), data=d))
Analysis of Variance Table of type 3  with  Satterthwaite 
approximation for degrees of freedom
      Sum Sq Mean Sq NumDF  DenDF F.value   Pr(>F)   
a     1.4085  1.4085     1 76.991  1.7297 0.192349   
b     3.1180  3.1180     1 76.991  3.8291 0.053995 . 
c     6.3809  6.3809     1 76.991  7.8363 0.006469 **
a:b   1.5706  1.5706     1 76.991  1.9289 0.168888   
a:c   1.0907  1.0907     1 76.991  1.3394 0.250716   
b:c   1.4128  1.4128     1 76.991  1.7350 0.191680   
a:b:c 0.1014  0.1014     1 76.991  0.1245 0.725183  

그것들은 고정 된 효과입니다. 그러나 적합한 ANOVA 모델은 기존의 반복 측정 ANOVA 모델 인 것처럼 보이는 모델이 아닙니다 (예 : 여기 참조) . 귀하와 제 사건의 오류 지층을 참조하십시오.
Henrik

1
실제로 그들이하는 방법이 잘못되었습니다. 완전히 반복 된 계승 반복 측도 설계 (또는 무작위 블록 요인 설계)가있는 경우 subject모든 효과 (예 :)에 대해 단 하나의 오차 항만 얻을 수 Within있습니다. Kirk의 실험 설계 : 행동 과학 절차 (2013), 10 장 (p.458) 또는 여기
Masato Nakazawa

잠시 동안이 질문을 회피하고 내가 적합했던 모델이 올바른 모델이라고 가정하자. 이것을 사용하여 lmer어떻게 맞 습니까? 그럼에도 불구하고 Kirk (제 2 판만 해당) 사본을 받아 그 내용을 볼 수 있습니다.
Henrik

커크의 장에 대해 어떻게 생각하는지 궁금합니다. 제 2 판의 장 번호가 생각합니다. 은 다르다. 한편 나는 다른 lmer모델 에 맞추려고 노력할 것이다 . lmerTestKR 근사값이 exactdfs와 p- 값 을 제공해야하므로 모형 적합을 확인하는 가장 좋은 방법은 df를 확인하는 것 입니다.
Masato Nakazawa

1
나는 Kirk의 제 2 판을 가지고 있는데, 여기서 관련 논의는 pp. A와 B의 가산 성을 가정하거나 가정하지 않는 것으로 예상되는 평균 제곱은 p. 447. A와 B가 고정되어 있고 주제 / 블록이 무작위라고 가정 할 때, Kirk가 "비 첨가 모델"에 나열된 예상 평균 제곱에서 A, B, AB의 테스트는 각각 다른 오류 항을 포함한다는 것을 알 수 있습니다. 블록 / 대상과 관련된 상호 작용. 동일한 원리가 본 3 방향 예로 확장된다.
Jake Westfall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.