계절 차이 및 auto.arima
저는 R을 사용하여 다양한 예측 알고리즘을 연구하기 시작했습니다. 예를 들어, 계절성이 없어서 가장 좋은 알고리즘이 아닐 수도 있습니다. Facebook 주식을 사용하고 있습니다.
훈련 세트 :
SYMBOL <- getSymbols("FB", from = "2015-01-01", to = "2019-12-31")
Stocks_FB_day <- get(SYMBOL[1])
Stocks_FB_day_Cl <- Cl(Stocks_FB_day)
테스트 세트 :
SYMBOL <- getSymbols("FB", from = "2020-01-01", to = "2020-01-21")
Stocks_FB_day <- get(SYMBOL[1])
ARIMA를 포함하여 다양한 모델을 만들었습니다. 나는 이것이 일일 주식 데이터에 가장 적합하지 않다는 것을 알고 있지만 시도해보기로 결정했습니다. 연간 약 252 개의 관측이 있다는 점을 고려하여 stl()
함수를 사용 하고 빈도를 126 (반년) 및 252 (1 년)로 설정 하는 분해 플롯을 만들었습니다 . 두 플롯 모두 계절 신호가 실제로 필수적인 것은 아니라는 것을 보여줍니다. 다음은 그중 하나입니다.
ACF 및 PACF 그래프에서도 결론을 내릴 수 있습니다 (내가 틀렸을 수 있습니까?).
다음은 auto.arima
기능에 대한 나의 실험입니다 .
내가 "D = 1"(빈도가 252이든 126이든)을 쓸 때마다 계절적 차이를 강요하면서 더 높은 AIC 값을 얻었지만 더 정확한 예측을 얻었습니다. 나는 평평하거나 거의 평탄한 선을 얻는 것이 적절하지 않다는 말은 아니지만, 가능하다면 미래 예측의 전반적인 방향 이상을 알고 싶을 때가 있습니다.
나는 내가 많은 실수를했다고 가정하고 전체 접근 방식이 전혀 적절하지 않을 가능성이 높습니다.
주요 질문은 다음과 같습니다.
"더 나은 예측 값을 제공하는 경우 (예를 들어 MAPE를 계산하는 홀드 아웃 세트와 비교) 계절 차이 (D = 1)를 강제하는 것이 합리적입니까? 계절성이 약하다는 사실? "
답변
일반적인 조언으로 신뢰할 수있는 사전 도메인 지식 이있는 경우 앞에있는 데이터가 알려주는 내용에 반대 할 수 있습니다 . 이 경우, 그것은 일반적으로 주식 시장에 대한 지식이거나, 특히 당신이보고있는 주가 시리즈와는 독립적으로 이전에 획득 한 페이스 북의 사업에 대한 지식 일 것입니다.
그러나 도메인 지식이 그것이 계절적이어야한다고 말하지 않고 데이터가 실제로 계절적으로 보이지 않는 경우 무작위로 "이봐, 내가 계절성을 강요하려고하면 어떨까요?" 샘플 결과에서 더 나은 결과를 얻으려면 미래에 유용 할 방식으로 모델을 진정으로 개선했는지에 대해 회의적이어야합니다. 물론 도메인 지식에 결함이 있거나 계절별 차이를 추가하여 직접 수정을 정당화 할 수있는 실제적이지만 관련없는 모델 문제를 수정했을 수도 있습니다.
첫 번째 프로젝트로 주가에 끌리는 것처럼 보이는 예측에 대해 배우고있는 많은 사람들이 여기에 있습니다. 불행히도 영역의 본질은 ARIMA 모델 클래스 내에서 주가는 거의 항상 랜덤 워크로 모델링되는 것이 가장 좋기 때문에 학습 관점에서별로 흥미롭지 않다는 것입니다. 이것은 도메인의 기본 속성이며 미래 가격에 대한 총 기대치가 투자자가 자산을 사고 팔아 가격의 미래 경로를 수정하도록 영향을 미치는 방식 때문입니다. 이 피드백 메커니즘은 쉽게 예상되는 움직임을 감쇠시키는 경향이 있으므로 쉽게 관찰 할 수있는 것은 소음뿐입니다.
이러한 이유로 주가는 일반적으로 계절적 패턴이 강하지 않습니다. 비수기에 매수하고 성수기에 팔아 안정적인 수익을 올릴 수 있다면 누구나 할 수있을 것이다. 이로 인해 비수기의 가격이 상승하고 성수기의 가격이 하락하여 결국 이러한 이점이 사라집니다. 이 경우의 사전 도메인 지식은 주가가 이러한 방식으로 계절성 이 아닐 수 있음을 말합니다 .
따라서이 경우 계절별 차이를 추가하는 데 회의적 일 것이며 비 계절적 예측 수준이 훨씬 더 멀어지는 이유를 더 조사 할 것입니다 (지금까지 게시 한 정보로는 알 수 없습니다. ).