lme4를 사용한 혼합 효과 모델에서 교호 작용 항의 P 값


10

나는 주로 Bodo Winter의 훌륭한 자습서를 따라 lme4in을 사용하여 일부 행동 데이터를 분석하고 있지만 상호 작용을 올바르게 처리하고 있는지 이해할 수 없습니다. 더군다나,이 연구에 참여한 어느 누구도 혼합 모델을 사용하지 않기 때문에 문제가 옳다는 것을 확신 할 때 약간 표류합니다.R

도움을 요청하는 것보다는 문제를 해석하기 위해 최선을 다한 다음에 집단적인 수정을 구걸해야한다고 생각했습니다. 다른 몇 가지 사항은 다음과 같습니다.

  • 글을 쓰는 동안 나는 이 질문을 발견 nlme하여 상호 작용 항에 대해 p 값을 더 직접적으로 제공 한다는 것을 보여 주 었지만와 관련하여 묻는 것이 여전히 타당하다고 생각합니다 lme4.
  • Livius'이 질문에 대한 답변 은 많은 추가 독서에 대한 링크를 제공했으며, 앞으로 며칠 안에 극복하려고 노력할 것이므로 앞으로 진행되는 진행 상황에 대해 언급 할 것입니다.

내 데이터에서, I은 종속 변수가 dv하는 condition조작 (더 발생한다 0 = 조절, 1 = 실험 조건 dv)도 필수로 표시된 appropriate코딩 된 시험 1효과를 표시한다 이것을 위해, 그러나 실험 부호화 0힘을 중요한 요소가 없기 때문에 아닙니다.

또한 각 주제 내에서, 그리고 해결 된 14 가지 문제 각각 내에서 상관 된 값을 반영하는 subjectfor 및 for에 대한 두 개의 임의 절편을 포함 시켰습니다 (각 참가자는 각 문제의 제어 및 실험 버전을 모두 해결했습니다).targetdv

library(lme4)
data = read.csv("data.csv")

null_model        = lmer(dv ~ (1 | subject) + (1 | target), data = data)
mainfx_model      = lmer(dv ~ condition + appropriate + (1 | subject) + (1 | target),
                         data = data)
interaction_model = lmer(dv ~ condition + appropriate + condition*appropriate +
                              (1 | subject) + (1 | target), data = data)
summary(interaction_model)

산출:

## Linear mixed model fit by REML ['lmerMod']
## ...excluded for brevity....
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  subject  (Intercept) 0.006594 0.0812  
##  target   (Intercept) 0.000557 0.0236  
##  Residual             0.210172 0.4584  
## Number of obs: 690, groups: subject, 38; target, 14
## 
## Fixed effects:
##                                Estimate Std. Error t value
## (Intercept)                    0.2518     0.0501    5.03
## conditioncontrol               0.0579     0.0588    0.98
## appropriate                   -0.0358     0.0595   -0.60
## conditioncontrol:appropriate  -0.1553     0.0740   -2.10
## 
## Correlation of Fixed Effects:
## ...excluded for brevity.

ANOVA는 쇼 interaction_model보다 훨씬 더 적합 할 수 있습니다 mainfx_modelI 상당한 상호 작용이 존재 (P = 0.035)가 있다는 결론을있는.

anova(mainfx_model, interaction_model)

산출:

## ...excluded for brevity....
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## mainfx_model       6 913 940   -450      901                          
## interaction_model  7 910 942   -448      896  4.44      1      0.035 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

여기에서 appropriate요구 사항이 충족 되는 데이터의 하위 집합을 분리하고 (예 :) appropriate = 1null 모델에 적합하고 condition효과를 포함하는 모델에 대해 ANOVA를 사용하여 두 모델을 다시 비교하고 lo를 찾으십시오. condition중요한 예측 자입니다.

good_data = data[data$appropriate == 1, ]
good_null_model   = lmer(dv ~ (1 | subject) + (1 | target), data = good_data)
good_mainfx_model = lmer(dv ~ condition + (1 | subject) + (1 | target), data = good_data)

anova(good_null_model, good_mainfx_model)

산출:

## Data: good_data
## models:
## good_null_model: dv ~ (1 | subject) + (1 | target)
## good_mainfx_model: dv ~ condition + (1 | subject) + (1 | target)
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## good_null_model    4 491 507   -241      483                          
## good_mainfx_model  5 487 507   -238      477  5.55      1      0.018 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

p- 값에 대한 자세한 내용은 stats.stackexchange.com/questions/118416/… 에서이 질문을 확인하십시오 lme4.
Tim

lmerTest :: anova ()를 사용하면 각 항에 대한 p- 값이있는 anova 테이블이 제공됩니다. 전체 모델을 비교하지 않고 상호 작용을 직접 조사 할 수 있습니다. @Tim 님
Kayle Sawyer

답변:


3

나는 여기에 말을 너무 많이 보지 못합니다. 좋은 일을했다고 생각합니다.

사람들이 효과를 테스트하고 복잡한 혼합 효과 모델에 대한 p- 값을 얻기 위해 논의한 몇 가지 방법이 있습니다. 여기에 좋은 개요가 있습니다 . 최선의 방법은 계산 집약적 방법 (부트 스트래핑 또는 베이지안 방법)을 사용하는 것이지만 대부분의 사람들에게 더 고급입니다. 두 번째 가장 좋은 (그리고 가장 편리한) 방법은 우도 비 검정을 사용하는 것입니다. 그것이 anova()(기술적으로 ? anova.merMod () ) 가하는 일입니다. 제한된 최대 우도 보다는 완전 최대 우도에 맞는 모형의 우도 비 검정 만 사용하는 것이 중요합니다.(REML). 반면 최종 모델 및 해석에는 REML을 사용하려고합니다. 이것은 많은 사람들에게 혼란을줍니다. 당신의 출력에서, 우리는 당신이 REML (옵션이 설정되어 있기 때문에 이것이 당신의 모델에 맞는 볼은 TRUE기본적으로 lmer(). 즉, 테스트는하지만, 잘못되었음을 의미,이 같은 일반적인 실수이기 때문에, anova.merMod()포함 refit인수를하는 default는로 설정되어 TRUE있으며 변경하지 않았으므로 패키지 개발자의 예측이 저장되었습니다.

상호 작용을 풀기위한 전략과 관련하여 수행 한 작업이 좋습니다. 상호 작용은 테스트에 모든 데이터를 사용한다는 점을 명심하십시오. 중요한 상호 작용은 가능하지만 계층화 된 테스트 중 어느 것도 중요하지 않으므로 일부 사람들을 혼란스럽게합니다. (하지만 당신에게 일어난 일은 아닌 것 같습니다.)


0

저는 초보자이며 Zuur 등의 조언을 따르고 있습니다. 선형 모델에 계층 적 오류 구조를 추가해야하는 경우 대신 패키지 lme에서 사용 합니다 . 내 응답이 어려울 수 있습니다.nlmelme4

두 의견 :

(1) condition서브셋 appropriate==1에서만 테스트하는 것이 타당하지 않다 . 주요 효과에 대한 p- 값을 얻으려면 Anova'car'패키지에서 사용할 수 있습니다 .

require(car)
Anova(M,type="III")# type III Sum of Squares. M was fitted using method=REML

교호 작용을 해결하려면 쌍으로 비교를 직접 수행하거나 (?) 수행 한 작업을 수행하지만 두 하위 집합 모두에서 수행 할 수 있습니다 (예 : 하위 집합 인 where appropriate==0).

(2) (1 | subject) + (1 | target)최상의 오류 구조 라고 가정하는 대신 오류 구조를 먼저 선택해야 할 수 있습니다 . 당신이 쓴 것에서 나는 condition주제 내 요인이며, appropriate주제 간 또는 대상 간 요인입니다. 개체-내 및 / 또는 대상 내 요인에 대해 dv ~ condition + appropriate + (1+condition | subject) + (1 | target)경사를 추가 할 수 있습니다 . 예를 들면 다음과 같습니다 condition. 개체-내 요인에 대해 임의의 경사를 추가합니다 . 대상 간 / 대상 간 요인에 대해 기울기가 필요하지 않습니다.

건배


감사. 하지 않습니다 Anova단지 내에서 피사체를 척하고 -target 상관 관계가 생각하지? 데이터만으로 분석을 반복하는 이유는appropriate==1사용 된 많은 재료가 테스트 후 문제가되어 '부적절하다'는 는 다음과 같습니다. 마지막으로, 난이없는 모델이 더 잘 맞는 단순한 이유로 임의의 기울기를 사용하지 않았습니다.
Eoin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.