# 시계열
# 시계열 데이터 생성으로 미래 예측 연습
install.packages("forecast")
library(forecast)
# auto.arima() 함수 : 시계열 모형 추정 함수-예측 알고리즘
# forecast() 함수 : 미래 수치 예측
input <- c(5200,5100,5400,5300,5500,5400,5600,5900,5400,5600,5400,5800)
input
# (1) 시계열 데이터 생성 - ts() : states 패키지 제공
tsscore <- ts(input, start=c(2015, 1), frequency=12) # Time Series
tsscore
class(tsscore)
# (2) 시계열 모형 추정
tsscore2 <- auto.arima(tsscore) # 시계열 데이터 이용
tsscore2 #AIC=156.08 AICc=156.52 BIC=156.48 이 숫자값들은 작으면 작을수록 좋다.
# (3) 시계열모형 추정으로 미래값 예측
# - 기본 예측개월(24개월 - 2년) - level=c(80,95)
tsscore3 <- forecast(tsscore2) # 미래값 예측-시계열모형 예측 forecas
tsscore3
plot(tsscore3) # 미래값 예측 도식화
# - 6개월 예측(0.5년)
tsscore3 <- forecast(tsscore2, h=6) # 향후 3개월 예측
tsscore3
plot(tsscore3)
#2. 시계열 데이터 파일로 미래 예측
mysales <- read.csv("testdata/sales2.csv", header = TRUE)
mysales
# (1) 시계열 데이터 빈도분석 시각화
max(mysales$Food) # 2750
plot.ts(mysales$Food, col='blue') # 2012~2013 사이 최고 빈도수
spectrum(mysales$Food, col='red')
# y축:로그척도(데시벨), x축:대역폭(10년), 파랑선 : 데시벨 95% 신뢰구간
# (2) 시계열 데이터 생성
tsFood <- ts(mysales$Food, start=c(2011, 1), frequency=12)
tsFood # 2011 ~ 2014.05
# (3) 시계열 모형 추정
tsFood2 <- auto.arima(tsFood) # 시계열모형 추정
tsFood2
# (4) 시계열 모형으로 미래예측 - 기본 예측 개월(2년)
plot(forecast(tsFood2)) # 2014.06~2016.05 예측 도식화
# 기본 예측 개월(7개월)
tsFood3 <- forecast(tsFood2, level=c(80, 95), h=7)
tsFood3 # 7개월 데이터 예측
plot(tsFood3) # 7개월 예측 도식화
# 시계열 자료 -ARIMA모형으로 미래 예측
library(forecast)
AirPassengers
str(AirPassengers)
plot(AirPassengers)
plot(stl(AirPassengers,s.window = "periodic"))#s.window = 쪼개본다는 뜻
library(tseries)
adf.test(diff(log(AirPassengers)),alternative = "stationary",k=0) #안정적인 데이터인지 불안한데이터인지 확인 p값이 0.05보다 작음 그래서 안정적인 데이터
library(forecast)
auto.arima(diff(log(AirPassengers))) #diff(log(AirPassengers))안정적 시계열을 위한 수식
#별도의 아리마 모양 따로 만들기
fit <- arima(log(AirPassengers),c(1,0,1), seasonal = list(order=c(0,1,1), period=12))
fit
pred <-predict(fit,n.ahead=10*12)
pred
x11()
ts.plot(AirPassengers,2.718^pred$pred,log="y",lty=c(1,3)) #오른쪽 점선은 예측값
댓글 영역