728x90
반응형
시계열의 자료는 추세, 계절, 경기 및 특이요인으로 구성된다. 이렇게 특정한 요인에 의해 표본 추출이나 잡음 때문에 데이터에 좋지 않은 미세한 변동이나 노이즈가 있을 때 이런 변동이나 불연속성을 약하게 하여 자료의 중심 집중도를 파악하기 위해 평활을 수행한다.
이러한 평활법의 방법으로 이동평균, 가중평균, 지수적 이동평균, 홀트-윈터스예측, 회귀모형 평활, 기타 등이 있는데 이중에서 이동평균의 경우 가장 많이 사용하고 일반적으로 널리 알려져 있다. 방법은 다양하지만 추구하는 바는 불규칙한 변동의 중심 집중도를 파악하기 위한 것이라는 목적은 동일하다.
자 그러면 이제부터 R을 이용해서 위의 평활법들을 수행해보자. 아래의 코드는 단순한 이동평균 평활법의 방법이다. 어떤 임의의 시계열 자료에 대해서 단순이동이 더 우수한가 혹은 가중이동평균이 더 우수한가에 대해서 추론해볼 수 있다는 점에서 꽤 유용한 방법이다.
#작업경로를 지정하는 명령어
setwd("")
mydatat<-read.csv("jisu.csv",
header=TRUE, na.strings = "")
o=mydatat$코스피지수
plot(o)
#-----------------단순이동평균.-------------------
#5일 이동평균
f5=filter(mydatat$코스피지수, filter=rep(1/5,5), side=1)
plot(f5)
#이중이동평균
df5=filter(f5, filter=rep(1/5,5), side=1)
plot(df5)
#독립성 검증(자기상관은 없는 것으로 관측)
res = o[10:100] - f5[10:100]
Box.test((res))
#독립성 검증(자기상관이 있는 것으로 관측)
res = o[10:100] - df5[10:100]
Box.test((res))
#-----------------가중이동평균.-------------------
w=c(0.5,0.4,0.3,0.2,0.1)
fw=filter(mydatat$코스피지수, filter=w)
#독립성 검증(자기상관이 있는 것으로 관측)
res = o[10:100] - fw[10:100]
Box.test((res))
#-----------------예측.-------------------
library(forecast)
fore1=forecast(o[10:100],h=1)
fore2=forecast(f5[10:100],h=1)
fore3=forecast(df5[10:100],h=1)
fore4=forecast(fw[10:100],h=1)
#-----------------검증.-------------------
#ME : 예측오차의 산술평균
#RMSE : ME의 제곱의 평균
#MAE : 예측오차의 절대값의 평균
#MPE : 예측오차의 상대적인 크기를 반영(비율)한 평균
#MAPE : 예측오차의 절대값의 상대적 크기를 반영한 평균
#MASE : 예측오차의 절대값에 대한 평균으로 크기를 나타내는 지표
accuracy(fore1)
accuracy(fore2)
accuracy(fore3) #이중이동평균의 성능이 가장 우수(오차들이 작다)
accuracy(fore4)
아래의 그림과 같이 원계열 자료보다는 훨씬 스무딩 되어 있고 중심집중 경향을 훨씬 잘 파악할 수 있다. 항상 예측을 위한 자료는 잡음이 적을수록 효과적이라 판단할 수 있다.
728x90
반응형
'시계열모델링' 카테고리의 다른 글
시계열 자료의 평활법 - 회귀평활 part 1 (0) | 2020.10.15 |
---|---|
시계열자료의 평활법 - 지수 평활법 (0) | 2020.10.15 |
시계열 자료의 상관분석과 검정 (0) | 2020.10.12 |
시계열 자료의 허구적 인과관계 (0) | 2020.10.12 |
시계열 분석이란? (0) | 2020.09.17 |
댓글