모형의 목적이 예측 및 예측 인 경우 짧은 대답은 예이지만 정상은 레벨에있을 필요는 없습니다.
설명하겠습니다. 가장 기본적인 형태로 예측을 정리하면 불변량을 추출하게됩니다. 이것을 고려하십시오 : 당신은 변화하는 것을 예측할 수 없습니다. 상상할 수있는 모든 측면 에서 내일이 오늘과 다를 것이라고 말하면 어떤 종류의 예측도 할 수 없습니다 .
오늘부터 내일까지 무언가를 확장 할 수있을 때만 모든 종류의 예측을 생성 할 수 있습니다. 몇 가지 예를 들어 보겠습니다.
- 내일의 평균 기온 분포는 오늘과 거의 같을 것입니다 . 이 경우에, 당신은 미래에 대한 예측, 순진 예측 오늘날의 온도를 취할 수 X의 t + 1 = X t엑스^t + 1= x티
- 당신은 속도의 속도로 주행 도로 마일 (10)에 차를 관찰 mph. 1 분 안에 11 마일이나 9 마일 정도가 될 것입니다. 11 마일을 향해 가면 11 마일이 됩니다 . 속도와 방향이 일정 하다고 가정합니다 . 위치는 여기에 고정되어 있지 않으며 속도 속도 만 있습니다. 이와 관련하여 ARIMA (p, 1, q)와 같은 차이 모델 또는 x t ~ v t 와 같은 일정한 추세 모델과 유사합니다.v = 60엑스티~ V의 t
- 이웃은 매주 금요일에 취합니다. 다음주 금요일에 취하게 될까요? 예, 행동을 바꾸지 않는 한
- 등등
합리적인 예측의 모든 경우에 우선 프로세스에서 일정한 것을 추출하여 미래로 확장합니다. 따라서 내 대답 : 그렇습니다. 분산과 평균이 역사에서 미래로 확장 할 불변량 인 경우 시계열은 고정되어 있어야합니다. 또한 회귀 자와의 관계도 안정되기를 원합니다.
평균 수준이든, 변화율이든, 다른 것이 든, 모델에서 변하지 않는 것을 간단히 식별하십시오. 모델에 예측 성능을 제공하려면 이러한 사항이 미래에도 동일하게 유지되어야합니다.
홀트 윈터스 예
주석에는 Holt Winters 필터가 언급되었습니다. 특정 종류의 계절 계열을 평활하고 예측하는 데 널리 사용되며 비정규 계열을 다룰 수 있습니다. 특히 평균 레벨이 시간이 지남에 따라 선형으로 증가하는 계열을 처리 할 수 있습니다. 다시 말해서 경사가 안정적인 곳 입니다. 내 용어에서 기울기는이 접근법이 시리즈에서 추출하는 불변량 중 하나입니다. 경사가 불안정 할 때 어떻게 실패하는지 봅시다.
이 그림에서 나는 지수 성장과 가산 성 계절성을 가진 결정 론적 시리즈를 보여주고 있습니다. 다시 말해, 시간이 지남에 따라 기울기가 점점 가파르게됩니다.
필터가 데이터에 잘 맞는 것처럼 보일 수 있습니다. 적합 선이 빨간색입니다. 그러나이 필터로 예측을 시도하면 실패하게 실패합니다. 실제 선은 검은 색이고 다음 플롯에서 파란색 신뢰 한계가있는 경우 빨간색은 다음과 같습니다.
실패한 이유는 Holt Winters 모델 방정식 을 조사하면 쉽게 알 수 있습니다 . 과거에서 기울기를 추출하여 미래로 확장합니다. 이것은 기울기가 안정적 일 때 매우 잘 작동하지만 필터가 지속적으로 성장할 때 필터를 유지할 수 없으면 한 걸음 뒤에 효과가 예측 오류 증가로 누적됩니다.
R 코드 :
t=1:150
a = 0.04
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)
xt = window(x,0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))
xp = window(x,8.33)
p <- predict(m, 50, prediction.interval = TRUE)
plot(m, p)
lines(xp,col="black")
이 예에서는 단순히 일련의 로그를 가져와 필터 성능을 향상시킬 수 있습니다. 지수 적으로 증가하는 계열의 로그를 가져 오면 기울기를 다시 안정시키고이 필터에 기회를줍니다. 예를 들면 다음과 같습니다.
R 코드 :
t=1:150
a = 0.1
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)
xt = window(log(x),0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))
p <- predict(m, 50, prediction.interval = TRUE)
plot(m, exp(p))
xp = window(x,8.33)
lines(xp,col="black")