Você está na página 1de 7

R Code Used:

library("forecast")
library("zoo")
Amtrak.data <- read.csv("Amtrak data.csv")
ridership.ts <- ts(Amtrak.data$Ridership, start = c(1991, 1), end = c(2004, 3), freq = 12)
stepsAhead <- 12
nTrain <- length(ridership.ts) - stepsAhead
train.ts <- window(ridership.ts, start = c(1991, 1), end = c(1991, nTrain))
valid.ts <- window(ridership.ts, start = c(1991, nTrain + 1), end = c(1991, nTrain + stepsAhead))

#Model 1: Linear trend model


ridership.lm.train <- tslm(train.ts ~ trend) #Creating Linear trend model
coefficients(ridership.lm.train) #Display Beta ceoefficient values
summary(ridership.lm.train) #Summary of train data
ridership.lm.pred <- forecast(ridership.lm.train, h=stepsAhead) #Forecasting
plot(ridership.lm.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main = "Linear trend
model", flty = 2) #Plot Creation
accuracy(ridership.lm.pred, h=stepsAhead) #Accuracy check of the model

#Model 2: Exponential trend model


ridership.lm.exp <- tslm(train.ts ~ trend,lambda = 0) #Creating Exponential trend model
coefficients(ridership.lm.exp) #Display Beta ceoefficient values
summary(ridership.lm.exp) #Summary of train data
ridership.lm.exp.pred <- forecast(ridership.lm.exp, h=stepsAhead) #Forecasting
plot(ridership.lm.exp.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main =
"Exponential trend model", flty = 2) #Plot Creation
accuracy(ridership.lm.exp.pred, h=stepsAhead) #Accuracy check of the model

#Model 3: Polynomial trend model


ridership.lm.poly <- tslm(train.ts ~ poly(trend,2)) #Creating Polynomial trend model
coefficients(ridership.lm.train.poly) #Display Beta ceoefficient values
summary(ridership.lm.train.poly) #Summary of train data
ridership.lm.poly.pred <- forecast(ridership.lm.train.poly, h=stepsAhead) #Forecasting
plot(ridership.lm.poly.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main =
"Polynomial trend model", flty = 2) #Plot Creation
accuracy(ridership.lm.poly.pred , h=stepsAhead)#Accuracy check of the model

#Model 4:Seasonal additive model


ridership.lm.season <- tslm(train.ts ~ season)
coefficients(ridership.lm.season)#Display Beta ceoefficient values
summary(ridership.lm.season)#Summary of train data
ridership.lm.season.pred <- forecast(ridership.lm.season, h=stepsAhead)#Forecasting
plot(ridership.lm.season.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main =
"Seasonal additive model", flty = 2) #Plot Creation
accuracy(ridership.lm.season.pred, h=stepsAhead) #Accuracy check of the model

#Model 5:Seasonal multiplicative model


ridership.lm.season.mul <- tslm(train.ts ~ season,lambda=0)
coefficients(ridership.lm.season.mul)#Display Beta ceoefficient values
summary(ridership.lm.season.mul)#Summary of train data
ridership.lm.season.mul.pred <- forecast(ridership.lm.season.mul, h=stepsAhead)#Forecasting
plot(ridership.lm.season.mul.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main =
"Seasonal multiplicative model", flty = 2) #Plot Creation
accuracy(ridership.lm.season.mul.pred, h=stepsAhead)#Accuracy check of the model

#Model 6:Seasonal + trend 6


ridership.lm.seatrend<- tslm(train.ts ~ poly(trend,2)+season)
coefficients(ridership.lm.seatrend)#Display Beta ceoefficient values
summary(ridership.lm.seatrend)#Summary of train data
ridership.lm.seatrend.pred <- forecast(ridership.lm.seatrend, h=stepsAhead)#Forecasting
plot(ridership.lm.seatrend.pred, ylab = "Ridership", xlab = "Time", bty = "l", xaxt = "n", main =
"Seasonal multiplicative model", flty = 2) #Plot Creation
accuracy(ridership.lm.seatrend.pred, h=stepsAhead)#Accuracy check of the model

Results:
Model 1: Linear trend model

Beta ceoefficient values


(Intercept) trend
1713.028777 1.205311

Summary of train data


Residuals:
Min 1Q Median 3Q Max
-430.53 -111.20 6.16 133.19 335.33

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1713.0288 27.0855 63.245 < 2e-16 ***
trend 1.2053 0.3175 3.796 0.000215 ***

Residual standard error: 163.4 on 145 degrees of freedom


Multiple R-squared: 0.09039, Adjusted R-squared: 0.08412
F-statistic: 14.41 on 1 and 145 DF, p-value: 0.0002155

Accuracy:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 3.082379e-15 162.2451 131.5267 -0.8631631 7.524628 1.692391 0
.4555548

Graph:
Model 2: Exponential trend model
Beta ceoefficient values
(Intercept) trend
7.4439864649 0.0006512487

Summary of train data

Call:
tslm(formula = train.ts ~ trend, lambda = 0)

Residuals:
Min 1Q Median 3Q Max
-0.268498 -0.058451 0.008002 0.076795 0.170065

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.4439865 0.0154745 481.05 < 2e-16 ***
trend 0.0006512 0.0001814 3.59 0.000452 ***

Residual standard error: 0.09333 on 145 degrees of freedom


Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 4.15e+07 on 1 and 145 DF, p-value: < 2.2e-16

Accuracy
ME RMSE MAE MPE MAPE MASE
ACF1
Training set 7.580025 162.1894 132.0589 -0.4397017 7.521397 1.699239 0.453
9204

Graph

Model 3: Polynomial trend model


Beta ceoefficient values
(Intercept) poly(trend, 2)1 poly(trend, 2)2
1802.222 620.118 776.262
Summary of train data

Call:
tslm(formula = train.ts ~ poly(trend, 2))

Residuals:
Min 1Q Median 3Q Max
-361.04 -119.62 35.98 111.44 290.99

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1802.22 12.42 145.069 < 2e-16 ***
poly(trend, 2)1 620.12 150.62 4.117 6.44e-05 ***
poly(trend, 2)2 776.26 150.62 5.154 8.28e-07 ***

Residual standard error: 150.6 on 144 degrees of freedom


Multiple R-squared: 0.232, Adjusted R-squared: 0.2214
F-statistic: 21.76 on 2 and 144 DF, p-value: 5.55e-09

Accuracy ME RMSE MAE MPE MAPE


MASE ACF1
Training set 9.285302e-15 149.0781 123.3934 -0.7317031 7.059384 1.587738 0
.3565052

Graph:

Model 4: Seasonal additive model

Beta coefficient values


(Intercept) season2 season3 season4 season5 season6
season7
1603.95046 -37.67769 262.85854 251.28546 282.52579 241.17454
345.62971
season8 season9 season10 season11 season12
390.67579 57.64829 197.15662 187.31896 231.46237 Summary of tra
in data

Call:
tslm(formula = train.ts ~ season)

Residuals:
Min 1Q Median 3Q Max
-308.234 -69.336 -4.523 83.843 227.788
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1603.95 32.62 49.172 < 2e-16 ***
season2 -37.68 46.13 -0.817 0.415498
season3 262.86 46.13 5.698 7.27e-08 ***
season4 251.29 47.08 5.337 3.88e-07 ***
season5 282.53 47.08 6.001 1.70e-08 ***
season6 241.17 47.08 5.123 1.02e-06 ***
season7 345.63 47.08 7.341 1.79e-11 ***
season8 390.68 47.08 8.298 9.64e-14 ***
season9 57.65 47.08 1.224 0.222918
season10 197.16 47.08 4.188 5.06e-05 ***
season11 187.32 47.08 3.979 0.000113 ***
season12 231.46 47.08 4.916 2.52e-06 ***

Residual standard error: 117.6 on 135 degrees of freedom


Multiple R-squared: 0.5611, Adjusted R-squared: 0.5253
F-statistic: 15.69 on 11 and 135 DF, p-value: < 2.2e-16

Accuracy ME RMSE MAE MPE MAPE


MASE ACF1
Training set -4.695224e-15 112.7065 89.97924 -0.4064616 5.070583 1.157788
0.8456754

Graph:

Model 5:Seasonal multiplicative model

Beta ceoefficient values


(Intercept) season2 season3 season4 season5 season6
season7
7.37739630 -0.02415631 0.15185541 0.14565871 0.16331599 0.14055192 0
.19681641
season8 season9 season10 season11 season12
0.21992008 0.03715561 0.11732418 0.11112576 0.13587708

Summary of train data

Call:
tslm(formula = train.ts ~ season, lambda = 0)

Residuals:
Min 1Q Median 3Q Max
-0.177724 -0.036580 0.000004 0.049309 0.125831
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.37740 0.01843 400.245 < 2e-16 ***
season2 -0.02416 0.02607 -0.927 0.356
season3 0.15186 0.02607 5.826 3.97e-08 ***
season4 0.14566 0.02660 5.475 2.06e-07 ***
season5 0.16332 0.02660 6.139 8.69e-09 ***
season6 0.14055 0.02660 5.283 4.97e-07 ***
season7 0.19682 0.02660 7.398 1.32e-11 ***
season8 0.21992 0.02660 8.266 1.15e-13 ***
season9 0.03716 0.02660 1.397 0.165
season10 0.11732 0.02660 4.410 2.09e-05 ***
season11 0.11113 0.02660 4.177 5.27e-05 ***
season12 0.13588 0.02660 5.107 1.09e-06 ***

Residual standard error: 0.06646 on 135 degrees of freedom


Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 4.946e+07 on 11 and 135 DF, p-value: < 2.2e-16

Accuracy ME RMSE MAE MPE MAPE MASE


ACF1
Training set 3.581537 112.77 89.90573 -0.2040493 5.055757 1.156842 0.84551
56

Graph:

Model 6: Seasonal + trend


Beta ceoefficient values
(Intercept) poly(trend, 2)1 poly(trend, 2)2 season2 se
ason3
1595.71391 632.54035 854.37868 -38.86339 260.
39963
season4 season5 season6 season7 se
ason8
267.44445 297.76163 255.39970 358.75669 402.
61707
season9 season10 season11 season12
68.31636 206.46396 195.17806 237.78572

Summary of train data

Call:
tslm(formula = train.ts ~ poly(trend, 2) + season)

Residuals:
Min 1Q Median 3Q Max
-217.65 -40.52 11.52 49.63 143.52

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1595.71 20.75 76.907 < 2e-16 ***
poly(trend, 2)1 632.54 74.85 8.450 4.46e-14 ***
poly(trend, 2)2 854.38 74.99 11.393 < 2e-16 ***
season2 -38.86 29.32 -1.326 0.1873
season3 260.40 29.32 8.881 3.98e-15 ***
season4 267.44 29.95 8.931 3.01e-15 ***
season5 297.76 29.95 9.943 < 2e-16 ***
season6 255.40 29.95 8.529 2.88e-14 ***
season7 358.76 29.95 11.980 < 2e-16 ***
season8 402.62 29.95 13.445 < 2e-16 ***
season9 68.32 29.95 2.281 0.0241 *
season10 206.46 29.95 6.894 1.98e-10 ***
season11 195.18 29.95 6.517 1.36e-09 ***
season12 237.79 29.95 7.939 7.52e-13 ***

Residual standard error: 74.75 on 133 degrees of freedom


Multiple R-squared: 0.8253, Adjusted R-squared: 0.8082
F-statistic: 48.34 on 13 and 133 DF, p-value: < 2.2e-16

Accuracy ME RMSE MAE MPE MAPE


MASE ACF1
Training set 1.391225e-14 71.09972 56.39262 -0.1675671 3.197528 0.7256197
0.6482133

Graph:

Você também pode gostar