문제

직렬 상관관계를 수정하기 위해 자기회귀 항을 사용하여 선형 모델을 맞추려는 고정 시계열이 있습니다. 즉,At = c1*Bt + c2*Ct + ut 공식을 사용합니다. 여기서 ut = r*ut-1 + et

(ut는 오류 항의 계열 상관을 수정하기 위한 AR(1) 항입니다.)

이것을 모델링하기 위해 R에서 무엇을 사용해야 하는지 아는 사람이 있습니까?

감사합니다 Karl

도움이 되었습니까?

해결책

그만큼 glmmarp 패키지는이 모델에 적합합니다. 가우스 오류가있는 선형 모델 만 원한다면 arima() 공변량이 the를 통해 지정되는 기능 xreg 논쟁.

다른 팁

R에서는 이를 수행하는 여러 가지 방법이 있습니다.다음은 데이터세트 패키지의 "안전벨트" 시계열 데이터세트 R과 함께 제공되는 것입니다.

그만큼 arima() 함수는 R에 포함된 package:stats에 들어 있습니다.함수는 다음 형식의 인수를 사용합니다. order=c(p, d, q) 여기서 자동 회귀, 통합 및 이동 평균 구성 요소의 순서를 지정할 수 있습니다.귀하의 질문에서 오류의 1차 자기 상관을 수정하기 위해 AR(1) 모델을 만들 것을 제안했습니다.다음 명령을 사용하여 이를 수행할 수 있습니다.

arima(Seatbelts[,"drivers"], order=c(1,0,0),
      xreg=Seatbelts[,c("kms", "PetrolPrice", "law")])

order 값은 AR(1) 모델을 원한다는 것을 지정합니다.xreg 구성요소는 회귀의 일부로 추가하려는 일련의 다른 X여야 합니다.출력은 다음의 출력과 약간 비슷해 보입니다. summary.lm() 그쪽으로 향했다.

회귀 모델을 적용한 방식에 더 친숙한 또 다른 대체 프로세스는 다음을 사용하는 것입니다. gls() 에서 nlme 패키지.다음 코드는 Seatbelt 시계열 개체를 데이터 프레임으로 변환한 다음 새 열() 이는 정렬된 시계열 개체의 카운터일 뿐입니다.

Seatbelts.df <- data.frame(Seatbelts)
Seatbelts.df$t <- 1:(dim(Seatbelts.df)[1])

위의 두 줄은 데이터의 모양을 가져오는 것뿐입니다.이후 arima() 함수는 시계열용으로 설계되었으므로 시계열 개체를 더 쉽게 읽을 수 있습니다.nlme로 모델을 맞추려면 다음을 실행합니다.

library(nlme)
m <- gls(drivers ~ kms + PetrolPrice + law,
         data=Seatbelts.df,
         correlation=corARMA(p=1, q=0, form=~t))
summary(m)

"correlation"으로 시작하는 줄은 ARMA 상관 구조를 GLS에 전달하는 방식입니다.결과가 정확히 같지는 않기 때문에 arima() 최대 우도를 사용하여 모델을 추정하고 gls() 기본적으로 제한된 최대 가능성을 사용합니다.추가하면 method="ML" 전화로 gls() 위의 ARIMA 함수로 얻은 것과 동일한 추정치를 얻게 됩니다.

링크 기능은 무엇입니까?

설명하는 방식은 자기 상관 오류가있는 기본 선형 회귀처럼 들립니다. 이 경우 하나의 옵션은 사용하는 것입니다 lm 계수와 사용에 대한 일관된 추정치를 얻으려면 Newey-West HAC 표준 오류.

GLM에 대한 최상의 답변이 더 일반적으로 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top