---
title: "R Notebook"
output: html_notebook
---

```{r}
library(forecast)
library(ggplot2)
library(tidyverse)
ccd_df <- read.csv("CallCenterData.csv")
ggplot(data=ccd_df, aes(x=Time_Period, y = Calls)) +geom_line()+geom_point()
```
```{r}

ccd_ts <- ts(data = ccd_df$Calls, start=c(2010, head(ccd_df$Time_Period,1)), frequency = 4)
autoplot(ccd_ts)
```

```{r}
ccd_decomp <- decompose(ccd_ts)
ccd_decomp
autoplot(ccd_decomp)
```
```{r}
smooth <- ses(ccd_ts) #exponential smoothing not appropriate for trend,seasonality in data - straight line as projection
autoplot(smooth)
```
```{r}
ccd_holt <- holt(ccd_ts) # models the smoothing & the trend
autoplot(ccd_holt)
```
```{r}
ccd_ts <- ts(data = ccd_df$Calls, start=c(2010),frequency = 4)
ccd_hw <- hw(ccd_ts, initial="optimal") 
autoplot(ccd_hw)

# from stats package another version of hw
ccd_hwf <- HoltWinters(ccd_ts)
forecast <- predict(ccd_hwf, n.ahead = 4, prediction.interval = T, level = 0.95)
autoplot(forecast)
```
```{r}
#using the predict function on fitted values to predict future values. n.ahead is the number of steps ahead for which prediction is required error bounds at 95% confidence level
arima (data, nonseasonal_desc, seasonal_desc)
?arima
fitP <- arima(ccd_ts, order=c(1,0,0), list(order=c(2,1,0), period=4))
#Creating a fit variable according to the data samples
fore <- predict(fitP, n.ahead=24)
Upper_b <- fore$pred + 2*fore$se #upper confidence level
Lower_b <- fore$pred - 2*fore$se #lower confidence level 
ts.plot(ccd_ts, fore$pred, Upper_b, Lower_b, col=c(1,2,4,4), lty = c(1,1,2,2))
#plotting time series data with legend
legend("topleft", c("Actual", "Forecast", "Error Bounds .05"), col=c("black","red","blue"), lty=c(1,1,2))
#using the predict function on fitted values to predict future values. n.ahead is the number of steps ahead for which prediction is required error bounds at 95% confidence level
```
```{r}
acf(ccd_ts)
pacf(ccd_ts)
```



```{r try_forcast}
# example dataset for the forecast package
class(AirPassengers)
autoplot(AirPassengers)

```

```{r}
sections <- decompose(AirPassengers)
autoplot(sections)
```

Consider moving averages
Moving average estimates future values at time t by averaging values of the time series within k periods of t. This method works best when the data does not contain any trend or cyclic patterns. The arima() function (ARIthmetic Moving Average) of forecast package is used for predicting future values.



```{r}
library(tseries)
moving_ave <- ma(AirPassengers,order=2)
autoplot(moving_ave)
```

```{r try_forecast}

fore_simple <-forecast(AirPassengers)

### forecast default values forecast(object, h = ifelse(frequency(object) > 1, 2 * frequency(object), 10), level = c(80, 95), fan = FALSE, robust = FALSE, lambda = NULL, biasadj = FALSE, find.frequency = FALSE, allow.multiplicative.trend = FALSE, model = NULL, ...)
# default techniqe for time series is exponential smoothing ets
autoplot(fore_simple)

```

```{r}
acf(AirPassengers)
pacf(AirPassengers)
fore_trend <-forecast(AirPassengers,allow.multiplicative.trend = TRUE )
autoplot(fore_trend)
```

```{r}
#using the predict function on fitted values to predict future values. n.ahead is the number of steps ahead for which prediction is required error bounds at 95% confidence level
fitP <- arima(AirPassengers, order=c(1,0,0), list(order=c(2,1,0), period=12))
#Creating a fit variable according to the dataset
fore <- predict(fitP, n.ahead=24)
Upper_b <- fore$pred + 2*fore$se #upper confidence level
Lower_b <- fore$pred - 2*fore$se #lower confidence level 
ts.plot(AirPassengers, fore$pred, Upper_b, Lower_b, col=c(1,2,4,4), lty = c(1,1,2,2))
#plotting time series data with legend
legend("topleft", c("Actual", "Forecast", "Error Bounds .05"), col=c("black","red","blue"), lty=c(1,1,2))
```


Exponential smoothing weights the closest data point most heavily. It is appropriate if you have determined no seasonality in data
```{r}
exp_s <- ses(AirPassengers)
autoplot(exp_s)
# Is this an appropriate method for the AirPassengers data?
# a flat line for predictions?
```
```{r}
holt_pass <- holt(AirPassengers)
autoplot(holt_pass)
```


```{r}
library("expsmooth")
consumer_confidence <- ts(unemp.cci[,"cci"])
autoplot(consumer_confidence)
smooth_cci<- ses(consumer_confidence)
autoplot(smooth_cci)
# Does the projections seem reasonable?
```

Holt's method uses smoothing & trend functions to represent the data 
```{r}
holt_cci <- holt(consumer_confidence)
autoplot(holt_cci)
```

