시계열 분석

728x90
# 8장 연습문제

# 데이터셋 만들기
data1 <- c(23.47359, 18.5600, 22.75696, 15.23990, 18.34075, 12.99859, 18.41205, 19.41997, 17.08437, 17.44508, 
          20.79865, 19.09786, 21.33774, 10.0327, 18.61254, 22.47486, 19.30955, 14.95327, 20.29158, 18.89309, 15.89805, 
          23.59116, 18.777220, 19.35965)
# 시계열 데이터 형식으로 생성
data11 <- ts(data= data1, start=c(2017, 1), frequency = 12)

data11

# 그래프 그려서 해당되는 패턴 확인 
plot(data11)

# 1) 전체 데이터 평균으로 예측하기 
fit1 <- forecast::meanf(data11, h=6, level = c(80, 95))

# 추정값 
fitted(fit1)

#잔차
residuals(fit1)

#정확성 척도
accuracy(fit1)

#시계열 그래프 그리기 - 겹쳐서 그리기 
plot(data11, ylim=range(0, 40))
par(new=TRUE)
plot(data11, type="b", ylim=range(0, 40))

# 2) 이동평균 구하기 
mal <- ma(data11, 6)

mal
# -> 이 결과값은 6개월 동안의 이동 평균 계산 값을 보여준다.

# 3) 지수 평활 : ses() 함수 
fit11 <- ses(data11, alpha=0.2, h=6)

#추정값 
fitted(fit11)

#정확성 척도
accuracy(fit11)

# ++ 적합한 alpha 값 추정하기 
fit111 <- ses(data11, alpha = NULL, h=6)

#추정값
fitted(fit111)

#잔차
residuals(fit111)

#정확성 척도
accuracy(fit111)

#요약
summary(fit111)

#그래프 그리기 
plot(data11, xlim = range(2017.0, 2019.5), ylim=range(0,40))
par(new=TRUE)
plot(fit111, type = "b", xlim=range(2017.0, 2019.5, ylim=range(0, 40)))

# 4) 추세패턴 예측 : holt() 함수
hol1 <- holt(data11, h=6, level=c(95), exponential=FALSE, alpha = NULL, beta = NULL)

#추정값
fitted(hol1)

#잔차
residuals(hol1)

#정확성 척도
accuracy(hol1)


#그래프그리기 
plot(data11, xlim=range(2017.0, 2019.5), ylim=range(0, 80))
par(new=TRUE)
plot(hol1, type="b", xlim=range(2017.0, 2019.5), ylim=range(0, 80))

# 5) 계절패턴 예측 hw() 함수 - 승법 모형으로 선택 
hol11 <- hw(data11, h=6, season1=c("additive"), level=c(95), exponential=FALSE, alpha=NULL, beta=NULL, gamma=NULL)

#요약
summary(hol11)

#그래프 그리기 
plot(data11, xlim = range(2017.0, 2019.5), ylim=range(0, 30))
par(new = TRUE)
plot(hol11, type="b", xlim=range(2017.0, 2019.5), ylim=range(0, 30))

# 6) 추세와 계절성 패턴 적용 : Holtwingters() 함수 

Holt1 <- HoltWinters(data11)

#추정값
fitted(Holt1)

#잔차
residuals(Holt1)

#예측값
forecast(Holt1)

#그래프 그리기 
plot(Holt1)

# 7) ets() 함수 사용 : HoltWinters() 함수를 forecast 패키지 내부에서 구현해놓은 함수 
ets1 <- ets(data11, model = "AAA")

#추정값
fitted(ets1)

#잔차
residuals(ets1)

#정확성 척도
accuracy(ets1)

#예측값
forecast(ets1, h=6)

#요약
summary(ets1)


#그래프 그리기
plot(ets1)

728x90