USD/KRW 환율 데이터 (https://kr.investing.com/currencies/usd-krw-historical- data)에 있는 일별 환율데이터(2021년 11월 15일 ~2022년 11월 14일 대상)를 기반으로 회귀분석 또는 시계열분석을 이용하여 2022 년 12 월 우리나라 미국달러대비 원화 환율을 예측하고 시각화하시오.
-> factor 형을 date, numeric 형으로 변환 -> 추세선 시각화
-> 차분을 통해 정상성 시계열로 변환 -> 모델 식별과 추정
-> 모형 생성
-> 모형 진단
-> 미래 예측
# 데이터 준비
data <- read.csv('USD_KRW.csv',header=T) str(data)
df <- data.frame(data[1:2]) # 종가를 기준으로 분석 # 형 변환
df$날짜 <- as.Date(df$날짜,format="%Y-%m-%d")
# 쉼표 제거
df[,2] <- gsub(",","",df[,2])
# 형 변환
df[,2] <- as.numeric(df[,2])
str(df)
# 추세선 시각화
df2 <- df[order(df$날짜),] # 날짜 오름차순 정렬
# X11() # 새로운 창에서 시각화
# ts.plot(cbind(df2$종가, df2$오픈, df2$고가, df2$저가), # col=c(1:4), main="환율 추세선")
plot.ts(df2[,-1]) # 가격 관련 추세선은 비정상성 시계열, 시간에 따라 증가
# 종가로 시계열 생성
as.numeric(format(df2$날짜,'%Y'))
tsdata <- ts(df2$종가,freq=1,start=1) tsdata
plot(tsdata)
# 정상성 시계열로 변환
dif <- diff(tsdata) plot(dif)
# 모델 식별과 추정 library(forecast)
arima <- auto.arima(tsdata) arima
# 모형 생성
model <- arima(tsdata,order=c(0,1,0))
# 모형 진단(모형의 타당성 검정)
tsdiag(model)
# Box-Ljung 검정에 의한 잔차항 모형 진단 Box.test(model$residuals,lag=1,type="Ljung")
# p-value = 0.6017 > 0.05: 모형이 통계적으로 적절
# 미래 예측
fore <- forecast(model,h=34) #34 일
fore
plot(fore)
# 1235.330 원에서 1412.410 원으로 예측
# 예측 결과 데이터프레임으로 저장
fdf <- data.frame(fore) write.csv(fdf,file="fore_df.csv")
#12월의 중앙값
str(fore)
# lower & upper 의 각 95% 값의 median
median(fore$lower[,2]) # 1260.355
median(fore$upper[,2]) # 1387.385 으로 달의 마지막 날값 이 아닌 미래 예측의 중앙값을 기반으로
# 1,260 원에서 1,387 원으로 예측 할 수 있다
시간의 흐름에 따라 수집된 자료를 바탕으로 2022 년 12 월 환율을 예측하였다. 가장 먼저 변동이라는 컬럼명에 %가 들어가 있으므로 원본 데이터를 수정 후, factor 형으로 저장된 데이터들을 date 형과 numeric 형으로 변환하는 과정을 거쳐야 했다. 또한 여러 변수들 중 종가를 기준으로 분석을 진행하였다. 추세선을 확인한 결과 [그림 1.1]처럼 나왔기 때문에 정상성 시계열로 바꾸기 위해 차분을 진행해 [그림 1.2]처럼 만들었다. 모형이 적절한지 타당성 검정을 하기 위해 모형 진단과 Box-Ljung 진단을 진행한 결과 모두 타당하다는 결론을 얻은 것을 [그림 1.3]과 [그림 1.4]에서 확인할 수 있다.
분석 결과 시간이 지날수록 예측의 범위가 점차 넓어져 정확도가 떨어지는 것을 [그림 1.5]를 통해 알 수 있기 때문에 중앙값을 선택하여 12 월 환율을 1,260 원에서 1,387 원으로 예상하였다. 또한 2022 년 11 월 14 일까지 데이터를 저장하여 그 이후부터 미래를 예측하기 때문에 12 월 환율을 예측하려면 11 월달 예측 부분이 포함되어 있다는 점을 유념해야 한다. 이러한 점들을 감안하더라도 시계열 분석을 통해 환율이 어떻게 될지 어느정도 예상할 수 있고, 이를 활용해 환전이나 해외 구매를 진행할 때 도움을 받을 수 있다.