{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
Load Libraries
{r load_libs, echo=TRUE} library(tidyr) library(dplyr) library(ggplot2) library(corrgram) library(gridExtra) #library(Deducer) #library(caret) library(tseries) library(xts) library(forecast) library(quantmod) library(devtools) #install_github('sinhrks/ggfortify') library(ggfortify)
Read Data
{r readdata, echo=TRUE} dfrData <- read.csv("D:/R-BA/R-Scripts/data/xtsdata.csv", header=T, stringsAsFactors=F) dfrData
Create Extensible Time Series From a csv
{r csvdata, echo=TRUE} dfrData$time15<-as.POSIXlt(dfrData$time15,format="%m/%d/%Y %H:%M") class(dfrData) xtsD1<-xts(dfrData$RUB_sol, order.by = dfrData$time15) names(xtsD1)[1]<-paste("RUB_sol") class(xtsD1) head(xtsD1) xtsD2<-xts(dfrData$MFA_sol, order.by = dfrData$time15) names(xtsD2)[1]<-paste("MFA_sol") class(xtsD2) head(xts) Make TimeSeries
{r tsmake, echo=TRUE} tsData1 <- ts(xtsD1) tsData1 TimeSeries Info
{r tsinfo, echo=TRUE} cat("\nSummary:\n") summary(tsData1) cat("\nStart:\n") start(tsData1) cat("\nEnd:\n") end(tsData1) cat("\nFrequency:\n") frequency(tsData1) Plot TimeSeries
{r tsplot, echo=TRUE} plot(tsData1) Augmented Dickey-Fuller Test
{r tsadftest, echo=TRUE} adf.test(diff(log(tsData1)), alternative="stationary", k=0) Auto Correlation Function
{r tsacfplot, echo=TRUE} acf(log(tsData1))
Plot ACF
{r xtsacfplot, echo=TRUE} #acf in base tsData1<-as.ts(tsData1) acf(log(tsData1)) # Auto Correlation Function autoplot(acf(tsData1, plot = FALSE)) Plot PACF
{r xtspacfplot, echo=TRUE} #pacf in base tsData1<-as.ts(tsData1) acf(diff(log(tsData1))) # Partial Auto Correlation Function autoplot(pacf(tsData1, plot = FALSE)) Make ARIMA Model
{r arimamodel, echo=TRUE} # get arima model (find best model) armModel <- auto.arima(tsData1) armModel Forecast Using ARIMA Model
{r arimafcast, echo=TRUE} # forecast using fcData <- forecast(armModel,h=30) fcData Plot Forecast Using ARIMA Model
{r arimagraph, echo=TRUE} autoplot(fcData) Make TimeSeries2
{r tsmake, echo=TRUE} tsData2<- ts(xtsD2) tsData2 TimeSeries Info2
{r tsinfo, echo=TRUE} cat("\nSummary:\n") summary(tsData2) cat("\nStart:\n") start(tsData2) cat("\nEnd:\n") end(tsData2) cat("\nFrequency:\n") frequency(tsData2) Plot TimeSeries2
{r tsplot, echo=TRUE} plot(tsData2) Augmented Dickey-Fuller Test2
{r tsadftest, echo=TRUE} adf.test(diff(log(tsData2)), alternative="stationary", k=0) Auto Correlation Function2
{r tsacfplot, echo=TRUE} acf(log(tsData2))
Plot ACF2
{r xtsacfplot, echo=TRUE} #acf in base tsData2<-as.ts(tsData2) acf(log(tsData2)) # Auto Correlation Function autoplot(acf(tsData2, plot = FALSE)) Plot PACF2
{r xtspacfplot, echo=TRUE} #pacf in base tsData2<-as.ts(tsData2) acf(diff(log(tsData2))) # Partial Auto Correlation Function autoplot(pacf(tsData2, plot = FALSE)) Make ARIMA Model
{r arimamodel, echo=TRUE} # get arima model (find best model) armModel <- auto.arima(tsData2) armModel Forecast Using ARIMA Model2
{r arimafcast, echo=TRUE} # forecast using fcData <- forecast(armModel,h=30) fcData Plot Forecast Using ARIMA Model2
{r arimagraph, echo=TRUE} autoplot(fcData)