자기 상관 잔차 패턴은 적절한 상관 구조를 가진 모델에서도 유지되고 최상의 모델을 선택하는 방법은 무엇입니까?


17

문맥

이 질문은 R을 사용하지만 일반적인 통계 문제에 관한 것입니다.

필자는 유충 개체군이 8 년 동안 1 년에 한 번 12 개 사이트에서 샘플링 된 시간에 따른 나방 개체군 성장률에 대한 사망률 (질병 및 기생충으로 인한 사망률)의 영향을 분석하고 있습니다. 인구 증가율 데이터는 시간이 지남에 따라 명확하지만 불규칙적 인 주기적 경향을 나타냅니다.

단순 일반화 선형 모형 (성장률 ~ % 질병 + 기생충 + 연도)의 잔차는 시간이 지남에 따라 유사하지만 불규칙적 인 주기적 경향을 나타 냈습니다. 따라서, 동일한 형태의 일반화 된 최소 제곱 모델도 시간 자기 상관, 예를 들어 복합 대칭, 자기 회귀 프로세스 차수 1 및 자기 회귀 이동 평균 상관 구조를 처리하기 위해 적절한 상관 구조를 갖는 데이터에 적합 하였다.

모델은 모두 동일한 고정 효과를 포함하고 AIC를 사용하여 비교되었으며 REML에 의해 적합 화되었습니다 (AIC에 의해 서로 다른 상관 구조를 비교할 수 있도록). R 패키지 nlme 및 gls 함수를 사용하고 있습니다.

질문 1

GLS 모델의 잔차는 시간에 대해 플롯 할 때 여전히 거의 동일한 주기적 패턴을 표시합니다. 자기 상관 구조를 정확하게 설명하는 모델에서도 이러한 패턴이 항상 유지됩니까?

나는 두 번째 질문 아래 R에서 단순화되었지만 유사한 데이터를 시뮬레이트 했습니다.이 모델 은 현재 잔차에서 일시적으로 자기 상관 패턴을 평가하는 데 필요한 방법에 대한 현재 이해를 바탕으로 문제를 보여줍니다 .

질문 2

가능한 모든 가능한 상관 관계 구조를 가진 GLS 모델을 내 데이터에 적합 시켰지만 상관 관계 구조가없는 GLM보다 실질적으로 더 잘 맞는 것은 없었습니다. 단 하나의 GLS 모델이 조금 더 나은 반면 (AIC 점수 = 1.8) 높은 AIC 값. 그러나 이것은 GLS 모델이 훨씬 더 나은 ML이 아닌 ML이 아닌 모든 모델에 REML이 장착 된 경우에만 해당되지만 통계 책에서 REML을 사용하여 다른 상관 구조와 동일한 고정 효과를 가진 모델을 비교해야한다고 이해합니다. 여기서 자세히 설명하지 않겠습니다.

데이터의 명백히 자동 상관 된 특성을 고려할 때, 단순한 GLM보다 모델이 적당히 우수하지 않은 경우 적절한 방법을 사용한다고 가정 할 때 추론에 사용할 모델을 결정하는 가장 적절한 방법은 무엇입니까? 다른 변수 조합을 비교하는 AIC)?

적절한 상관 구조가 있거나없는 모델에서 잔차 패턴을 탐색하는 Q1 '시뮬레이션'

주기적 효과가 '시간'이고 양의 선형 효과가 'x'인 시뮬레이션 응답 변수를 생성합니다.

time <- 1:50
x <- sample(rep(1:25,each=2),50)
y <- rnorm(50,5,5) + (5 + 15*sin(2*pi*time/25)) + (x/1)

y는 임의의 변동과 함께 '시간'에 대한 순환 추세를 표시해야합니다.

plot(time,y)

그리고 임의의 변이를 가진 'x'와 양의 선형 관계 :

plot(x,y)

"y ~ time + x"의 간단한 선형 덧셈 모델을 만듭니다.

require(nlme)
m1 <- gls(y ~ time + x, method="REML")

모델은 예상대로 '시간'에 대해 플롯 할 때 잔차에 명확한 주기적 패턴을 표시합니다.

plot(time, m1$residuals)

그리고 'x'에 대해 플롯 할 때 잔차의 패턴이나 추세가 훌륭하고 명확하게 부족해야합니다.

plot(x, m1$residuals)

차수 1의 자기 회귀 상관 구조를 포함하는 "y ~ time + x"의 간단한 모델은 AIC를 사용하여 평가할 때 자기 상관 구조 때문에 이전 모델보다 데이터에 훨씬 더 적합해야합니다.

m2 <- gls(y ~ time + x, correlation = corAR1(form=~time), method="REML")
AIC(m1,m2)

그러나 모델은 여전히 ​​거의 동일한 '일시적으로'자기 상관 잔차를 표시해야합니다.

plot(time, m2$residuals)

조언을 주셔서 대단히 감사합니다.


모델이 주기로 인한 시간 의존성을 제대로 포착하지 못하므로 (시뮬레이션 된 경우에도) ' 정확히 설명 '의 특성화는 적합하지 않습니다. 잔차에 여전히 패턴이있는 이유는 아마도 그 때문일 것입니다.
Glen_b-복지 주 모니카

나는 당신이 그것을 뒤로 가지고 있다고 생각합니다. 추정치는 REML보다는 최대 최대 가능성을 사용하여 얻어야합니다. 가능성 비율 검정을 수행하려면 method = "ML"을 선택해야하며 AIC를 사용하여 모형을 다른 예측 변수와 비교하려는 경우에 필요합니다. REML은 ML보다 분산 성분 및 표준 오차를 더 잘 추정합니다. 다른 모델을 비교하기 위해 method = "ML"을 사용한 경우, 때로는 method = "REML"을 사용하여 최종 모델을 다시 맞추고 REML의 추정치 및 표준 오류를 최종 추론에 사용하는 것이 좋습니다.
theforestecologist

추가 증거는이 게시물에 대한 답변을 참조하십시오. REML 또는 ML
theforestecologist

답변:


24

Q1

여기서 두 가지 잘못하고 있습니다. 첫 번째는 일반적으로 나쁜 것입니다. 일반적으로 모델 객체를 탐구하고 구성 요소를 제거 하지 마십시오 . 이 경우 추출기 기능 사용을 학습하십시오 resid(). 이 경우 유용한 무언가를 얻고 있지만 같은에서 GLM 같은 모델 객체의 다른 유형을 가지고있는 경우 glm(), 다음 mod$residuals포함됩니다 작업 마지막 IRLS에서 반복 잔차를하고는 일반적으로 뭔가입니다 하지 않습니다 싶다!

당신이 잘못하고있는 두 번째 일은 저를 잡은 것입니다. 추출한 잔차 (및 사용한 경우 추출한 resid()잔차)는 원시 또는 반응 잔차입니다. 본질적으로 이것은 피팅 값과 응답의 관측 된 값 사이의 차이 는 고정 효과 조건을 고려하여 전용 . 이 값에는 m1고정 효과 (또는 원하는 경우 선형 예측 변수)가 두 모형 ( ~ time + x) 에서 동일하기 때문에 잔차 자기 상관과 동일한 잔차 자기 상관이 포함됩니다 .

지정한 상관 항을 포함하는 잔차를 얻으려면 정규화 된 잔차 가 필요합니다 . 다음을 수행하여이를 얻습니다.

resid(m1, type = "normalized")

이 (및 사용 가능한 다른 유형의 잔차)는 다음에 설명되어 있습니다 ?residuals.gls.

type: an optional character string specifying the type of residuals
      to be used. If ‘"response"’, the "raw" residuals (observed -
      fitted) are used; else, if ‘"pearson"’, the standardized
      residuals (raw residuals divided by the corresponding
      standard errors) are used; else, if ‘"normalized"’, the
      normalized residuals (standardized residuals pre-multiplied
      by the inverse square-root factor of the estimated error
      correlation matrix) are used. Partial matching of arguments
      is used, so only the first character needs to be provided.
      Defaults to ‘"response"’.

비교를 통해 다음은 원시 (응답)의 ACF와 정규화 된 잔차입니다.

layout(matrix(1:2))
acf(resid(m2))
acf(resid(m2, type = "normalized"))
layout(1)

여기에 이미지 설명을 입력하십시오

왜 이런 일이 발생하고 원시 잔차에 상관 항이 포함되어 있지 않은지 보려면 적합 모델을 고려하십시오.

와이=β0+β1나는미디엄이자형+β2엑스+ε

어디

ε(0,σ2Λ)

Λρ^ρ||

로 반환 된 기본값 인 resid(m2)선형 잔차 는 선형 예측 변수 부분에서만 발생하므로이 비트에서

β0+β1나는미디엄이자형+β2엑스

Λ

2 분기

timeAR (1) (또는 다른 구조)을 사용하여 "추세"에 대한 선형 함수를 사용 하고 비선형 추세를 맞추려고하지만 "비선형"에 적합하지 않은 것으로 보입니다 . 귀하의 데이터가 여기에 제공 한 예시 데이터와 같은 경우 공변량의 원활한 기능을 위해 GAM에 적합합니다. 이 모델은

와이=β0+에프1(나는미디엄이자형)+에프2(엑스)+ε

Λ=나는

library("mgcv")
m3 <- gam(y ~ s(time) + s(x), select = TRUE, method = "REML")

여기서 select = TRUE모델이 모델에서 용어 중 하나를 제거 할 수 있도록 추가 축소를 적용합니다.

이 모델은

> summary(m3)

Family: gaussian 
Link function: identity 

Formula:
y ~ s(time) + s(x)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.1532     0.7104   32.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
          edf Ref.df      F  p-value    
s(time) 8.041      9 26.364  < 2e-16 ***
s(x)    1.922      9  9.749 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

다음과 같은 부드러운 용어가 있습니다.

여기에 이미지 설명을 입력하십시오

이 모델의 잔차가 더 잘 동작합니다 (원시 잔차).

acf(resid(m3))

여기에 이미지 설명을 입력하십시오

이제주의의 말씀; 함수가 얼마나 부드럽거나 흔들리는지를 결정하는 방법이 데이터가 독립적이라고 가정한다는 점에서 스무딩 시계열 문제가 있습니다. 이것이 실용적인 용어로 의미하는 것은 부드러운 시간 함수 ( s(time))가 기본 경향뿐만 아니라 실제로 임의의 자기 상관 오류 인 정보에 적합 할 수 있다는 것입니다. 따라서 시계열 데이터에 스무더를 맞출 때 매우주의해야합니다.

이 방법에는 여러 가지가 있지만 한 가지 방법은 내부적 gamm()으로 호출 하고 모델에 사용한 인수 lme()를 사용할 수 있는 모델 피팅으로 전환하는 것 입니다. 여기에 예가 있습니다correlationgls()

mm1 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML")
mm2 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML", correlation = corAR1(form = ~ time))

s(time)s(time)ρ=0s(time)ρ>>.5

AR (1)이있는 모델은 AR (1)이없는 모델에 비해 크게 개선되지 않았습니다.

> anova(mm1$lme, mm2$lme)
        Model df      AIC      BIC    logLik   Test   L.Ratio p-value
mm1$lme     1  9 301.5986 317.4494 -141.7993                         
mm2$lme     2 10 303.4168 321.0288 -141.7084 1 vs 2 0.1817652  0.6699

$ \ hat {\ rho}}의 추정치를 보면

> intervals(mm2$lme)
....

 Correlation structure:
         lower      est.     upper
Phi -0.2696671 0.0756494 0.4037265
attr(,"label")
[1] "Correlation structure:"

Phiρρ


훌륭하고 자세한 답변을 주신 Gavin에게 대단히 감사합니다. 표준 상관 관계 구조가 있거나없는 GAM을 비교할 때 거의 데이터가 개선되지 않거나 적합도 (AIC / AICc를 통해 평가됨)가 없다는 점에서 내 데이터가 GAM과 정 성적으로 유사한 결과를 생성하는 것처럼 보입니다. 데이터 / 잔여에 불규칙적이고주기적인 경향이 있다면, 모델이없는 모델보다는 가장 적합한 상관 관계 구조를 고수하는 것이 가장 적절할까요? 다시 감사합니다.
목성 M104

1
늦게오고 있지만이 환상적인 반응에 대해 Gavin에게 감사하고 싶었습니다. 나를 도와주었습니다.
기린
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.