예측을 위해 칼만 필터링과 함께 DLM을 사용하는 방법


19

누군가 시계열에서 R에서 DLM Kalman 필터링을 사용하는 방법에 대한 예제를 안내해 줄 수 있습니까? 이 값 (연간 계절성을 가진 분기 값)이 있다고 가정합니다. 다음 값을 예측하기 위해 DLM을 어떻게 사용 하시겠습니까? 그리고 BTW, 충분한 과거 데이터가 있습니까 (최소한 무엇입니까)?

89  2009Q1  
82  2009Q2  
89  2009Q3  
131 2009Q4  
97  2010Q1  
94  2010Q2  
101 2010Q3  
151 2010Q4  
100 2011Q1  
?   2011Q2

R 코드 요리 책 스타일의 단계별 사용법 유형을 찾고 있습니다. 예측의 정확성이 나의 주요 목표는 아닙니다. 데이터가 충분하지 않더라도 2011Q2에 숫자를 제공하는 코드 시퀀스를 배우고 싶습니다.


3
stats.stackexchange.com에서 더 나은 답변을 얻을 수 있습니다
Joshua Ulrich

범프 ... 나는 아직도 이것을하는 방법을 이해할 수 없다. 원래 게시물에 응답 한 사람이 있습니까?
datayoda

2
DLM을 사용하면 원하는만큼 요리 책 스타일이 아닙니다. RockScience의 답변 (DLM 비 네트)을 가져 와서 살펴 보겠습니다. DLM은 단순히 일부 데이터를 연결하고 일부 매개 변수를 조정해야하는 다른 기술보다 프로그램을 설계하는 것과 비슷합니다. 궁극적으로 숨겨진 Markov 모델과 같은 것을 구현하는 일련의 배열을 설계하고 있으며 dlm패키지를 사용하면 가능한 한 쉽게 만들 수 있습니다.
Wayne

문제에 대한 해결책이 있습니까? 비슷한 유형의 시계열 문제에 대한 해결책을 찾고 있지만 해결책을 찾을 수 없습니다.

@RockScience가 제안한 논문을 살펴 보셨습니까? dlm패키지를 보셨습니까 ? 내 대답에서 말했듯이 DLM은 일부 변수를 함수 호출에 연결하는 것보다 프로그램을 만드는 것과 훨씬 비슷합니다. datayoda는 답을 받아들이지 않았기 때문에 그들이이 관찰을 통과했는지 확신 할 수 없습니다.
Wayne

답변:



16

DLM은 멋지지만 ARIMA 또는 다른 방법만큼 간단하지는 않습니다. 다른 방법에서는 데이터를 연결 한 다음 알고리즘의 일부 매개 변수를 조정하여 설정을 안내하는 다양한 진단을 참조 할 수 있습니다.

DLM을 사용하면 기본 공간 기계를 작성합니다.이 기계는 기본적으로 숨겨진 Markov 모델과 같은 것을 구현하는 여러 행렬로 구성됩니다. 일부 패키지 ( sspir다른 것들 중에서도 생각합니다)는 개념과 행렬의 역할을 이해하기를 기대합니다. dlm패키지로 시작하고 @RockScience가 권장하는대로 비 네트를 살펴 보는 것이 좋습니다.

으로 dlm당신이려고하고 기본적으로 몇 가지 조치를 취할 :

  1. 내 시리즈를 설명하는 구성 요소는 무엇입니까? 유행? 계절? 외인성 변수? 당신이 사용하는 dlm도구를 좋아 dlmModPoly사용하여 이러한 구성 요소를 구현하는 +하나 개의 모델로 함께 참여 연산자.

  2. 이 모델에 필요한 많은 매개 변수를 필요로하는 R 서브 루틴을 작성하고 해당 매개 변수로 구성 요소를 작성한 다음 함께 추가하고 결과 모델을 리턴하십시오.

  3. 사용 dlmMLE(최적화에서 발생할 수있는 함정에 기본적으로 최적화입니다 MLE를 사용하여) 적절한 매개 변수를 찾기 위해 검색 / 최적화를 할 수 있습니다. dlmMLE후보 매개 변수를 사용하여 R 서브 루틴을 반복적으로 호출하여 모델을 작성한 후 테스트하십시오.

  4. 작성한 R 서브 루틴과 3 단계에서 찾은 매개 변수를 사용하여 최종 모델을 작성하십시오.

  5. 로 데이터를 필터링 dlmFilter한 다음로 원활하게 데이터를 필터링하십시오 dlmSmooth.

  6. dlmModReg모형에 시변 변수가있는 요인 을 사용 하거나 수행 하는 경우 dlmForecast계열을 예측 하는 데 사용할 수 없습니다 . 시변 모델로 끝나는 경우 입력 데이터를 NA로 dlmFilter채우고 dlmForecast시간에 따라 변하는 매개 변수와 함께 작동하지 않기 때문에 NA에 대한 정보를 채우십시오 (나쁜 사람의 예측) .

  7. 구성 요소를 개별적으로 검사하려면 (계절과는 별도로 추세) 매트릭스와 각 열의 내용을 이해하고 구성 요소를 어떻게 구성해야하는지 이해해야합니다 dlm(순서가 중요합니다).

다른 이름의 패키지가 있는데,이 패키지 dlm는 백엔드를 포함하여 이러한 패키지 중 몇 가지를 사용할 수있는 프런트 엔드를 만들려고합니다 . 불행히도, 나는 그것이 잘 작동하는 것을 결코 얻지 못했지만 그건 나일 수도 있습니다.

DLM에 관한 책을받는 것이 좋습니다. 나는 그들 중 몇 명을 얻었고 내가 dlm있는 곳으로 가려고 많은 시간 을 보냈습니다. 나는 전문가가 아닙니다.


Wayne 감사합니다. 시각적 검사에서 명확한 추세 나 계절성을 발견하지 못한 사례가 아주 간단하다고 생각합니다. (단, R의 테스트를 알고 있다면 알려주십시오. 테스트를 시도합니다). 내 문제는 내 데이터의 dlm 함수에서 (FF, V, GG, W, m0, C0, dV 등)와 같은 인수를 채우는 방법을 모른다는 것입니다. 이것은 나를위한 주요 문제입니다. 이변 량 계열 데이터 (y = X1 + X2) (예 : 가격 = 수요 + 공급)가있는 경우 데이터에 대한 이러한 인수를 계산하려면 어떻게해야합니까? dlm 기능에 필요한 FF, V, GG, W, m0, C0, dV 등
nclfinance

1
@nclfinance FAQ를 읽고이 장소를 포럼으로 취급하지 마십시오.

@nclfinance : dlm패키지의 비 네트를 통해 작업하십시오 . 알아야 할 내용을 배우게됩니다. dlmFF 등을 직접 만들지 않기 때문에 내가 추천하는 이유 입니다.
Wayne

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.