load(file="all_stocks_2006.01.01_to_2018.01.01.RData")
head(DJIA)
## Date Open High Low Close Volume Name observations
## 1 2006-01-03 77.76 79.35 77.24 79.11 3117200 MMM 1
## 2 2006-01-04 79.49 79.49 78.25 78.71 2558000 MMM 1
## 3 2006-01-05 78.41 78.65 77.56 77.99 2529500 MMM 1
## 4 2006-01-06 78.64 78.90 77.64 78.63 2479500 MMM 1
## 5 2006-01-09 78.50 79.83 78.46 79.02 1845600 MMM 1
## 6 2006-01-10 79.00 79.01 78.08 78.53 1919900 MMM 1
summary(DJIA)
## Date Open High
## Min. :2006-01-03 Min. : 0.00 Min. : 0.00
## 1st Qu.:2008-12-31 1st Qu.: 33.93 1st Qu.: 34.28
## Median :2011-12-30 Median : 60.01 Median : 60.62
## Mean :2012-01-01 Mean : 85.60 Mean : 86.38
## 3rd Qu.:2015-01-02 3rd Qu.: 93.99 3rd Qu.: 94.74
## Max. :2017-12-29 Max. :1204.88 Max. :1213.41
##
## Low Close Volume Name
## Min. : 0.00 Min. : 6.66 Min. : 0 AXP : 3020
## 1st Qu.: 33.59 1st Qu.: 33.96 1st Qu.: 5040180 BA : 3020
## Median : 59.47 Median : 60.05 Median : 9701142 CAT : 3020
## Mean : 84.82 Mean : 85.64 Mean : 20156670 CVX : 3020
## 3rd Qu.: 93.24 3rd Qu.: 94.01 3rd Qu.: 20752222 DIS : 3020
## Max. :1191.15 Max. :1195.83 Max. :843264044 GE : 3020
## (Other):75492
## observations
## Min. :1
## 1st Qu.:1
## Median :1
## Mean :1
## 3rd Qu.:1
## Max. :1
##
# NA's i.e) missing values observed # esp dates : 93426 / 93612 : need to impute
str(DJIA)
## 'data.frame': 93612 obs. of 8 variables:
## $ Date : Date, format: "2006-01-03" "2006-01-04" ...
## $ Open : num 77.8 79.5 78.4 78.6 78.5 ...
## $ High : num 79.3 79.5 78.7 78.9 79.8 ...
## $ Low : num 77.2 78.2 77.6 77.6 78.5 ...
## $ Close : num 79.1 78.7 78 78.6 79 ...
## $ Volume : int 3117200 2558000 2529500 2479500 1845600 1919900 1911900 2121100 1925300 2073400 ...
## $ Name : Factor w/ 31 levels "AABA","AAPL",..: 20 20 20 20 20 20 20 20 20 20 ...
## $ observations: num 1 1 1 1 1 1 1 1 1 1 ...
#date is listed as a factor, need to convert it to date structure
#clean the data#
DJIA[is.na(DJIA)] <- 0
DJIA$Date <- as.Date(DJIA$Date, format = "%Y-%m-%d")
summary(DJIA) # no more NA's
## Date Open High
## Min. :2006-01-03 Min. : 0.00 Min. : 0.00
## 1st Qu.:2008-12-31 1st Qu.: 33.93 1st Qu.: 34.28
## Median :2011-12-30 Median : 60.01 Median : 60.62
## Mean :2012-01-01 Mean : 85.60 Mean : 86.38
## 3rd Qu.:2015-01-02 3rd Qu.: 93.99 3rd Qu.: 94.74
## Max. :2017-12-29 Max. :1204.88 Max. :1213.41
##
## Low Close Volume Name
## Min. : 0.00 Min. : 6.66 Min. : 0 AXP : 3020
## 1st Qu.: 33.59 1st Qu.: 33.96 1st Qu.: 5040180 BA : 3020
## Median : 59.47 Median : 60.05 Median : 9701142 CAT : 3020
## Mean : 84.82 Mean : 85.64 Mean : 20156670 CVX : 3020
## 3rd Qu.: 93.24 3rd Qu.: 94.01 3rd Qu.: 20752222 DIS : 3020
## Max. :1191.15 Max. :1195.83 Max. :843264044 GE : 3020
## (Other):75492
## observations
## Min. :1
## 1st Qu.:1
## Median :1
## Mean :1
## 3rd Qu.:1
## Max. :1
##
length(DJIA$Date)
## [1] 93612
str(DJIA)
## 'data.frame': 93612 obs. of 8 variables:
## $ Date : Date, format: "2006-01-03" "2006-01-04" ...
## $ Open : num 77.8 79.5 78.4 78.6 78.5 ...
## $ High : num 79.3 79.5 78.7 78.9 79.8 ...
## $ Low : num 77.2 78.2 77.6 77.6 78.5 ...
## $ Close : num 79.1 78.7 78 78.6 79 ...
## $ Volume : int 3117200 2558000 2529500 2479500 1845600 1919900 1911900 2121100 1925300 2073400 ...
## $ Name : Factor w/ 31 levels "AABA","AAPL",..: 20 20 20 20 20 20 20 20 20 20 ...
## $ observations: num 1 1 1 1 1 1 1 1 1 1 ...
Understanding the nature of stocks
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 3.4.4
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.4.4
p1 = ggplot(DJIA, aes(Open)) + geom_histogram(bins = 50, aes(y = ..density..), col = "red", fill = "red", alpha = 0.3) + geom_density()# + xlim(c(0, 1000))
p1
p2 = ggplot(DJIA, aes(High)) + geom_histogram(bins = 50, aes(y = ..density..), col = "red", fill = "red", alpha = 0.3) + geom_density()# + xlim(c(0, 1000))
p2
p3 = ggplot(DJIA, aes(Low)) + geom_histogram(bins = 50, aes(y = ..density..), col = "red", fill = "red", alpha = 0.3) + geom_density()# + xlim(c(0, 1000))
p3
p4 = ggplot(DJIA, aes(Close)) + geom_histogram(bins = 50, aes(y = ..density..), col = "red", fill = "red", alpha = 0.3) + geom_density()# + xlim(c(0, 1000))
p4
library(gridExtra)
grid.arrange(p1,p2,p3,p4, nrow=2,ncol=2)
#filter data where High >100
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
##
## combine
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
tmp <- filter(DJIA,High > 100)
length(unique(tmp$Name))
## [1] 20
tmp$Name[1:5]
## [1] MMM MMM MMM MMM MMM
## 31 Levels: AABA AAPL AMZN AXP BA CAT CSCO CVX DIS GE GOOGL GS HD ... XOM
library(assertthat)
## Warning: package 'assertthat' was built under R version 3.4.4
sample_num = 5
assert_that(sample_num < length(unique(tmp$Name)))
## [1] TRUE
sample_ticker <- as.character(sample(tmp$Name, sample_num))
is.ts(DJIA)
## [1] FALSE
DJIATS <- as.ts(DJIA)
#Identify a sample of company interested in
sample_ticker <- c(sample_ticker, 'GOOGL')
candidate_ticker <- unique(sample_ticker)
candidate_ticker <- c("IBM", "BA", "AAPL", "GS", "GOOGL")
candidate_num <- length(candidate_ticker)
stock_list <- vector(mode="list", length=candidate_num)
names(stock_list) <- candidate_ticker
i = 1
for (ticker in candidate_ticker){
stock_list[[i]] <- filter(DJIA, Name == ticker)
# print(stock_list[[i]])
i <- i+1
# print(ticker)
}
str(stock_list)
## List of 5
## $ IBM :'data.frame': 3020 obs. of 8 variables:
## ..$ Date : Date[1:3020], format: "2006-01-03" ...
## ..$ Open : num [1:3020] 82.5 82.2 81.4 84 84.1 ...
## ..$ High : num [1:3020] 82.5 82.5 82.9 85 84.2 ...
## ..$ Low : num [1:3020] 80.8 81.3 81 83.4 83.4 ...
## ..$ Close : num [1:3020] 82.1 82 82.5 85 83.7 ...
## ..$ Volume : int [1:3020] 11715200 9840600 7213500 8197400 6858200 5701000 5776500 4926500 6921700 8761700 ...
## ..$ Name : Factor w/ 31 levels "AABA","AAPL",..: 14 14 14 14 14 14 14 14 14 14 ...
## ..$ observations: num [1:3020] 1 1 1 1 1 1 1 1 1 1 ...
## $ BA :'data.frame': 3020 obs. of 8 variables:
## ..$ Date : Date[1:3020], format: "2006-01-03" ...
## ..$ Open : num [1:3020] 70.4 70.1 70.5 70.3 69.3 ...
## ..$ High : num [1:3020] 70.6 71.3 70.5 70.5 69.4 ...
## ..$ Low : num [1:3020] 69.3 69.9 69.6 69 68.7 ...
## ..$ Close : num [1:3020] 70.4 71.2 70.3 69.3 68.8 ...
## ..$ Volume : int [1:3020] 4943100 3165000 4598300 4820200 4567700 3869000 5011900 2347000 2963700 2712900 ...
## ..$ Name : Factor w/ 31 levels "AABA","AAPL",..: 5 5 5 5 5 5 5 5 5 5 ...
## ..$ observations: num [1:3020] 1 1 1 1 1 1 1 1 1 1 ...
## $ AAPL :'data.frame': 3019 obs. of 8 variables:
## ..$ Date : Date[1:3019], format: "2006-01-03" ...
## ..$ Open : num [1:3019] 10.3 10.7 10.7 10.8 11 ...
## ..$ High : num [1:3019] 10.7 10.8 10.7 11 11 ...
## ..$ Low : num [1:3019] 10.3 10.6 10.5 10.6 10.8 ...
## ..$ Close : num [1:3019] 10.7 10.7 10.6 10.9 10.9 ...
## ..$ Volume : int [1:3019] 201853036 155225609 112396081 176139334 168861224 570088246 373548882 320201966 194153393 209215265 ...
## ..$ Name : Factor w/ 31 levels "AABA","AAPL",..: 2 2 2 2 2 2 2 2 2 2 ...
## ..$ observations: num [1:3019] 1 1 1 1 1 1 1 1 1 1 ...
## $ GS :'data.frame': 3020 obs. of 8 variables:
## ..$ Date : Date[1:3020], format: "2006-01-03" ...
## ..$ Open : num [1:3020] 127 127 126 127 128 ...
## ..$ High : num [1:3020] 129 129 127 129 131 ...
## ..$ Low : num [1:3020] 124 126 126 127 128 ...
## ..$ Close : num [1:3020] 129 127 127 129 130 ...
## ..$ Volume : int [1:3020] 6188700 4862000 3717600 4319600 4723500 5539800 4671400 3725500 2894900 3624600 ...
## ..$ Name : Factor w/ 31 levels "AABA","AAPL",..: 12 12 12 12 12 12 12 12 12 12 ...
## ..$ observations: num [1:3020] 1 1 1 1 1 1 1 1 1 1 ...
## $ GOOGL:'data.frame': 3019 obs. of 8 variables:
## ..$ Date : Date[1:3019], format: "2006-01-03" ...
## ..$ Open : num [1:3019] 211 222 223 229 233 ...
## ..$ High : num [1:3019] 218 225 226 235 237 ...
## ..$ Low : num [1:3019] 209 220 221 227 231 ...
## ..$ Close : num [1:3019] 218 223 226 233 234 ...
## ..$ Volume : int [1:3019] 13137450 15292353 10815661 17759521 12795837 9104719 9008664 10125212 7660220 8335300 ...
## ..$ Name : Factor w/ 31 levels "AABA","AAPL",..: 11 11 11 11 11 11 11 11 11 11 ...
## ..$ observations: num [1:3019] 1 1 1 1 1 1 1 1 1 1 ...
xts_list <- vector(mode="list", length=candidate_num)
ts_list <- vector(mode="list", length=candidate_num)
names(xts_list) = candidate_ticker
names(ts_list) = candidate_ticker
library(xts)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
##
## first, last
for (ticker in candidate_ticker){
stock = stock_list[[ticker]]
xts = xts(stock$Close, order.by=stock$Date)
attr(xts, 'frequency') <- length(xts)/12
ts = as.ts(xts, start = c(2006))
xts_list[[ticker]] <- xts
ts_list[[ticker]] <- ts
}
#the data.table below contains the values of 'High' for the 5 companies of interest/date#
xts_table= do.call(cbind, xts_list)
library(dygraphs)
dygraph(xts_table, xlab = "Time", ylab = "High value", main = "Time Series") %>%
# dySeries(labels.default()) %>%
# dyOptions(colors = c("red")) %>%
dyRangeSelector()
xts = xts_list[['GOOGL']]
ts = ts_list[['GOOGL']]
library(tseries)
adf.test(xts, alternative = "stationary", k = 0)
##
## Augmented Dickey-Fuller Test
##
## data: xts
## Dickey-Fuller = -1.3188, Lag order = 0, p-value = 0.8667
## alternative hypothesis: stationary
#Decomposing time series to separate trends and irregular components to get rid of biases due to seasonality (irregular)
tscomponents_add <- decompose(ts, type = "additive")
tscomponents_mul <- decompose(ts, type = "multiplicative")
plot(tscomponents_add, col = "red")
plot(tscomponents_mul, col = "blue")
#seasonality variation seems to be constant over time
#Use diffferncing to eliminate the effect of trend#
xtsdiff1 <- diff(xts, differences=1)
tsdiff1 <- diff(ts, differences=1)
plot.xts(xtsdiff1, col = "blue")
# check if differencing helps stationarize it#
adf.test(tsdiff1, alternative = "stationary", k = 0)
## Warning in adf.test(tsdiff1, alternative = "stationary", k = 0): p-value
## smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: tsdiff1
## Dickey-Fuller = -53.448, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary
library(TSA)
## Loading required package: leaps
## Loading required package: locfit
## locfit 1.5-9.1 2013-03-22
## Loading required package: mgcv
## Loading required package: nlme
##
## Attaching package: 'nlme'
## The following object is masked from 'package:dplyr':
##
## collapse
## This is mgcv 1.8-22. For overview type 'help("mgcv-package")'.
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library(dplyr)
xtsdiff1[is.na(xtsdiff1)] <- 0
acf(xtsdiff1,lag.max = 60)
pacf(xtsdiff1)
#Model trials3
AR1 <- arima(xtsdiff1,order = c(1,0,0))
plot(residuals(AR1))
AR1fit <- xtsdiff1 - residuals(AR1)
## Warning: Incompatible methods ("Ops.xts", "Ops.ts") for "-"
MA1 <- arima(xtsdiff1, order = c(0,0,1))
plot(residuals(MA1))
MA1fit <- xtsdiff1 - residuals(MA1)
## Warning: Incompatible methods ("Ops.xts", "Ops.ts") for "-"
drift <- arima(xtsdiff1,order=c(0,0,0))
#try autoarima - different combinations
library(forecast)
##
## Attaching package: 'forecast'
## The following object is masked from 'package:nlme':
##
## getResponse
tsarima240 <- auto.arima(head(xts, -240), max.p = 3, max.q = 3, max.d = 3)
print(tsarima240)
## Series: head(xts, -240)
## ARIMA(0,1,0) with drift
##
## Coefficients:
## drift
## 0.2200
## s.e. 0.1264
##
## sigma^2 estimated as 44.43: log likelihood=-9210.91
## AIC=18425.82 AICc=18425.82 BIC=18437.67
#forecasting using fit model
tsforecasts240 <- forecast(tsarima240, h = 240)
print(tsforecasts240)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 12.04604 829.2400 820.6982 837.7818 816.1764 842.3036
## 12.05002 829.4600 817.3801 841.5400 810.9853 847.9347
## 12.05399 829.6800 814.8852 844.4749 807.0532 852.3068
## 12.05797 829.9000 812.8164 846.9837 803.7729 856.0272
## 12.06194 830.1201 811.0200 849.2202 800.9090 859.3311
## 12.06592 830.3401 809.4170 851.2632 798.3409 862.3392
## 12.06989 830.5601 807.9605 853.1596 795.9971 865.1231
## 12.07387 830.7801 806.6202 854.9400 793.8307 867.7295
## 12.07784 831.0001 805.3746 856.6256 791.8093 870.1909
## 12.08182 831.2201 804.2085 858.2317 789.9094 872.5308
## 12.08579 831.4401 803.1101 859.7701 788.1131 874.7672
## 12.08976 831.6601 802.0704 861.2499 786.4065 876.9137
## 12.09374 831.8801 801.0822 862.6781 784.7787 878.9816
## 12.09771 832.1002 800.1396 864.0607 783.2207 880.9796
## 12.10169 832.3202 799.2378 865.4025 781.7251 882.9152
## 12.10566 832.5402 798.3729 866.7075 780.2858 884.7946
## 12.10964 832.7602 797.5413 867.9790 778.8976 886.6228
## 12.11361 832.9802 796.7403 869.2201 777.5561 888.4043
## 12.11759 833.2002 795.9673 870.4332 776.2573 890.1431
## 12.12156 833.4202 795.2200 871.6204 774.9980 891.8424
## 12.12554 833.6402 794.4967 872.7838 773.7753 893.5051
## 12.12951 833.8602 793.7955 873.9250 772.5865 895.1339
## 12.13349 834.0802 793.1151 875.0454 771.4294 896.7310
## 12.13746 834.3003 792.4540 876.1465 770.3020 898.2985
## 12.14144 834.5203 791.8111 877.2294 769.2023 899.8382
## 12.14541 834.7403 791.1853 878.2952 768.1288 901.3518
## 12.14939 834.9603 790.5757 879.3449 767.0799 902.8407
## 12.15336 835.1803 789.9812 880.3794 766.0543 904.3063
## 12.15734 835.4003 789.4012 881.3995 765.0507 905.7499
## 12.16131 835.6203 788.8348 882.4058 764.0681 907.1726
## 12.16529 835.8403 788.2815 883.3992 763.1053 908.5754
## 12.16926 836.0603 787.7405 884.3802 762.1615 909.9592
## 12.17324 836.2804 787.2113 885.3494 761.2357 911.3250
## 12.17721 836.5004 786.6934 886.3073 760.3272 912.6736
## 12.18119 836.7204 786.1863 887.2545 759.4351 914.0056
## 12.18516 836.9404 785.6894 888.1913 758.5588 915.3220
## 12.18914 837.1604 785.2025 889.1183 757.6977 916.6231
## 12.19311 837.3804 784.7251 890.0358 756.8510 917.9098
## 12.19709 837.6004 784.2567 890.9441 756.0183 919.1825
## 12.20106 837.8204 783.7972 891.8437 755.1990 920.4419
## 12.20503 838.0404 783.3461 892.7348 754.3926 921.6883
## 12.20901 838.2605 782.9031 893.6178 753.5987 922.9222
## 12.21298 838.4805 782.4680 894.4930 752.8167 924.1442
## 12.21696 838.7005 782.0404 895.3605 752.0464 925.3546
## 12.22093 838.9205 781.6202 896.2208 751.2872 926.5537
## 12.22491 839.1405 781.2070 897.0740 750.5389 927.7421
## 12.22888 839.3605 780.8007 897.9203 749.8010 928.9200
## 12.23286 839.5805 780.4010 898.7600 749.0733 930.0878
## 12.23683 839.8005 780.0078 899.5933 748.3554 931.2457
## 12.24081 840.0205 779.6207 900.4204 747.6470 932.3941
## 12.24478 840.2406 779.2397 901.2414 746.9478 933.5333
## 12.24876 840.4606 778.8646 902.0565 746.2576 934.6635
## 12.25273 840.6806 778.4951 902.8660 745.5762 935.7850
## 12.25671 840.9006 778.1312 903.6699 744.9032 936.8980
## 12.26068 841.1206 777.7727 904.4685 744.2384 938.0028
## 12.26466 841.3406 777.4194 905.2618 743.5816 939.0996
## 12.26863 841.5606 777.0712 906.0500 742.9326 940.1886
## 12.27261 841.7806 776.7280 906.8332 742.2913 941.2700
## 12.27658 842.0006 776.3896 907.6116 741.6573 942.3440
## 12.28056 842.2206 776.0560 908.3853 741.0305 943.4108
## 12.28453 842.4407 775.7269 909.1544 740.4107 944.4706
## 12.28851 842.6607 775.4023 909.9191 739.7978 945.5235
## 12.29248 842.8807 775.0820 910.6793 739.1916 946.5697
## 12.29646 843.1007 774.7661 911.4353 738.5919 947.6094
## 12.30043 843.3207 774.4543 912.1871 737.9986 948.6428
## 12.30441 843.5407 774.1466 912.9348 737.4116 949.6699
## 12.30838 843.7607 773.8429 913.6786 736.8306 950.6909
## 12.31236 843.9807 773.5430 914.4184 736.2556 951.7059
## 12.31633 844.2007 773.2470 915.1545 735.6864 952.7151
## 12.32030 844.4208 772.9547 915.8868 735.1229 953.7186
## 12.32428 844.6408 772.6661 916.6155 734.5650 954.7166
## 12.32825 844.8608 772.3810 917.3406 734.0125 955.7091
## 12.33223 845.0808 772.0994 918.0622 733.4654 956.6962
## 12.33620 845.3008 771.8212 918.7804 732.9235 957.6781
## 12.34018 845.5208 771.5464 919.4952 732.3868 958.6549
## 12.34415 845.7408 771.2749 920.2067 731.8550 959.6266
## 12.34813 845.9608 771.0066 920.9150 731.3283 960.5934
## 12.35210 846.1808 770.7415 921.6202 730.8063 961.5554
## 12.35608 846.4009 770.4794 922.3223 730.2891 962.5126
## 12.36005 846.6209 770.2205 923.0213 729.7765 963.4652
## 12.36403 846.8409 769.9644 923.7173 729.2685 964.4132
## 12.36800 847.0609 769.7114 924.4104 728.7650 965.3568
## 12.37198 847.2809 769.4612 925.1006 728.2659 966.2959
## 12.37595 847.5009 769.2138 925.7880 727.7711 967.2307
## 12.37993 847.7209 768.9692 926.4727 727.2805 968.1613
## 12.38390 847.9409 768.7273 927.1546 726.7941 969.0877
## 12.38788 848.1609 768.4881 927.8338 726.3118 970.0100
## 12.39185 848.3810 768.2515 928.5104 725.8336 970.9283
## 12.39583 848.6010 768.0175 929.1844 725.3593 971.8427
## 12.39980 848.8210 767.7861 929.8558 724.8888 972.7531
## 12.40378 849.0410 767.5572 930.5248 724.4222 973.6597
## 12.40775 849.2610 767.3307 931.1913 723.9594 974.5626
## 12.41173 849.4810 767.1066 931.8554 723.5003 975.4617
## 12.41570 849.7010 766.8849 932.5171 723.0448 976.3573
## 12.41968 849.9210 766.6656 933.1764 722.5929 977.2492
## 12.42365 850.1410 766.4486 933.8335 722.1445 978.1376
## 12.42763 850.3610 766.2338 934.4883 721.6996 979.0225
## 12.43160 850.5811 766.0213 935.1408 721.2581 979.9040
## 12.43557 850.8011 765.8110 935.7912 720.8199 980.7822
## 12.43955 851.0211 765.6028 936.4393 720.3851 981.6570
## 12.44352 851.2411 765.3968 937.0854 719.9536 982.5286
## 12.44750 851.4611 765.1929 937.7293 719.5253 983.3969
## 12.45147 851.6811 764.9911 938.3712 719.1001 984.2621
## 12.45545 851.9011 764.7913 939.0110 718.6781 985.1242
## 12.45942 852.1211 764.5935 939.6488 718.2591 985.9831
## 12.46340 852.3411 764.3977 940.2846 717.8432 986.8391
## 12.46737 852.5612 764.2038 940.9185 717.4303 987.6920
## 12.47135 852.7812 764.0119 941.5504 717.0203 988.5420
## 12.47532 853.0012 763.8219 942.1805 716.6132 989.3891
## 12.47930 853.2212 763.6338 942.8086 716.2091 990.2333
## 12.48327 853.4412 763.4475 943.4349 715.8077 991.0747
## 12.48725 853.6612 763.2630 944.0594 715.4091 991.9133
## 12.49122 853.8812 763.0804 944.6821 715.0133 992.7491
## 12.49520 854.1012 762.8995 945.3030 714.6202 993.5823
## 12.49917 854.3212 762.7204 945.9221 714.2298 994.4127
## 12.50315 854.5413 762.5430 946.5395 713.8420 995.2405
## 12.50712 854.7613 762.3673 947.1552 713.4569 996.0656
## 12.51110 854.9813 762.1933 947.7692 713.0743 996.8882
## 12.51507 855.2013 762.0210 948.3816 712.6943 997.7083
## 12.51905 855.4213 761.8503 948.9923 712.3168 998.5258
## 12.52302 855.6413 761.6812 949.6014 711.9418 999.3408
## 12.52700 855.8613 761.5138 950.2089 711.5692 1000.1534
## 12.53097 856.0813 761.3479 950.8148 711.1991 1000.9636
## 12.53495 856.3013 761.1836 951.4191 710.8313 1001.7714
## 12.53892 856.5213 761.0208 952.0219 710.4659 1002.5768
## 12.54289 856.7414 760.8596 952.6231 710.1029 1003.3798
## 12.54687 856.9614 760.6999 953.2229 709.7421 1004.1806
## 12.55084 857.1814 760.5417 953.8211 709.3837 1004.9791
## 12.55482 857.4014 760.3849 954.4179 709.0275 1005.7753
## 12.55879 857.6214 760.2296 955.0132 708.6735 1006.5693
## 12.56277 857.8414 760.0758 955.6071 708.3217 1007.3611
## 12.56674 858.0614 759.9233 956.1995 707.9722 1008.1507
## 12.57072 858.2814 759.7723 956.7906 707.6247 1008.9382
## 12.57469 858.5014 759.6227 957.3802 707.2794 1009.7235
## 12.57867 858.7215 759.4744 957.9685 706.9362 1010.5067
## 12.58264 858.9415 759.3275 958.5554 706.5951 1011.2879
## 12.58662 859.1615 759.1820 959.1410 706.2560 1012.0669
## 12.59059 859.3815 759.0378 959.7252 705.9190 1012.8440
## 12.59457 859.6015 758.8949 960.3081 705.5840 1013.6190
## 12.59854 859.8215 758.7533 960.8898 705.2510 1014.3920
## 12.60252 860.0415 758.6130 961.4701 704.9199 1015.1631
## 12.60649 860.2615 758.4739 962.0491 704.5908 1015.9322
## 12.61047 860.4815 758.3362 962.6269 704.2637 1016.6994
## 12.61444 860.7016 758.1997 963.2035 703.9384 1017.4647
## 12.61842 860.9216 758.0644 963.7788 703.6151 1018.2281
## 12.62239 861.1416 757.9303 964.3528 703.2936 1018.9896
## 12.62637 861.3616 757.7975 964.9257 702.9739 1019.7493
## 12.63034 861.5816 757.6658 965.4974 702.6561 1020.5071
## 12.63432 861.8016 757.5353 966.0679 702.3401 1021.2631
## 12.63829 862.0216 757.4061 966.6372 702.0259 1022.0173
## 12.64227 862.2416 757.2779 967.2053 701.7135 1022.7698
## 12.64624 862.4616 757.1509 967.7723 701.4028 1023.5205
## 12.65022 862.6817 757.0251 968.3382 701.0939 1024.2694
## 12.65419 862.9017 756.9004 968.9029 700.7867 1025.0166
## 12.65816 863.1217 756.7768 969.4665 700.4812 1025.7621
## 12.66214 863.3417 756.6543 970.0290 700.1774 1026.5059
## 12.66611 863.5617 756.5329 970.5905 699.8753 1027.2481
## 12.67009 863.7817 756.4126 971.1508 699.5749 1027.9885
## 12.67406 864.0017 756.2934 971.7100 699.2761 1028.7274
## 12.67804 864.2217 756.1752 972.2682 698.9789 1029.4646
## 12.68201 864.4417 756.0581 972.8254 698.6833 1030.2002
## 12.68599 864.6617 755.9421 973.3814 698.3893 1030.9342
## 12.68996 864.8818 755.8270 973.9365 698.0969 1031.6666
## 12.69394 865.1018 755.7130 974.4905 697.8061 1032.3974
## 12.69791 865.3218 755.6000 975.0435 697.5169 1033.1267
## 12.70189 865.5418 755.4881 975.5955 697.2291 1033.8544
## 12.70586 865.7618 755.3771 976.1465 696.9430 1034.5807
## 12.70984 865.9818 755.2671 976.6965 696.6583 1035.3054
## 12.71381 866.2018 755.1581 977.2456 696.3751 1036.0286
## 12.71779 866.4218 755.0501 977.7936 696.0934 1036.7503
## 12.72176 866.6418 754.9430 978.3407 695.8132 1037.4705
## 12.72574 866.8619 754.8369 978.8868 695.5344 1038.1893
## 12.72971 867.0819 754.7317 979.4320 695.2571 1038.9066
## 12.73369 867.3019 754.6275 979.9763 694.9812 1039.6225
## 12.73766 867.5219 754.5242 980.5196 694.7068 1040.3370
## 12.74164 867.7419 754.4218 981.0620 694.4337 1041.0501
## 12.74561 867.9619 754.3203 981.6035 694.1621 1041.7617
## 12.74959 868.1819 754.2198 982.1441 693.8918 1042.4720
## 12.75356 868.4019 754.1201 982.6838 693.6229 1043.1809
## 12.75754 868.6219 754.0213 983.2226 693.3554 1043.8885
## 12.76151 868.8420 753.9234 983.7605 693.0893 1044.5946
## 12.76549 869.0620 753.8264 984.2975 692.8244 1045.2995
## 12.76946 869.2820 753.7303 984.8336 692.5609 1046.0030
## 12.77343 869.5020 753.6350 985.3689 692.2988 1046.7052
## 12.77741 869.7220 753.5406 985.9034 692.0379 1047.4061
## 12.78138 869.9420 753.4470 986.4370 691.7783 1048.1057
## 12.78536 870.1620 753.3543 986.9697 691.5200 1048.8040
## 12.78933 870.3820 753.2624 987.5016 691.2630 1049.5010
## 12.79331 870.6020 753.1714 988.0327 691.0073 1050.1968
## 12.79728 870.8221 753.0811 988.5630 690.7528 1050.8913
## 12.80126 871.0421 752.9917 989.0924 690.4996 1051.5845
## 12.80523 871.2621 752.9031 989.6211 690.2476 1052.2766
## 12.80921 871.4821 752.8153 990.1489 689.9968 1052.9673
## 12.81318 871.7021 752.7282 990.6760 689.7473 1053.6569
## 12.81716 871.9221 752.6420 991.2022 689.4989 1054.3453
## 12.82113 872.1421 752.5566 991.7277 689.2518 1055.0324
## 12.82511 872.3621 752.4719 992.2524 689.0058 1055.7184
## 12.82908 872.5821 752.3880 992.7763 688.7611 1056.4032
## 12.83306 872.8021 752.3049 993.2994 688.5175 1057.0868
## 12.83703 873.0222 752.2225 993.8218 688.2750 1057.7693
## 12.84101 873.2422 752.1409 994.3434 688.0338 1058.4506
## 12.84498 873.4622 752.0600 994.8643 687.7936 1059.1307
## 12.84896 873.6822 751.9799 995.3845 687.5546 1059.8098
## 12.85293 873.9022 751.9005 995.9039 687.3168 1060.4877
## 12.85691 874.1222 751.8219 996.4225 687.0800 1061.1644
## 12.86088 874.3422 751.7440 996.9405 686.8444 1061.8401
## 12.86486 874.5622 751.6668 997.4577 686.6098 1062.5146
## 12.86883 874.7822 751.5903 997.9742 686.3764 1063.1881
## 12.87281 875.0023 751.5145 998.4900 686.1441 1063.8605
## 12.87678 875.2223 751.4395 999.0051 685.9128 1064.5317
## 12.88076 875.4423 751.3651 999.5195 685.6826 1065.2020
## 12.88473 875.6623 751.2914 1000.0331 685.4535 1065.8711
## 12.88870 875.8823 751.2185 1000.5461 685.2254 1066.5392
## 12.89268 876.1023 751.1462 1001.0584 684.9984 1067.2062
## 12.89665 876.3223 751.0746 1001.5701 684.7724 1067.8722
## 12.90063 876.5423 751.0037 1002.0810 684.5475 1068.5372
## 12.90460 876.7623 750.9334 1002.5913 684.3236 1069.2011
## 12.90858 876.9824 750.8638 1003.1009 684.1007 1069.8640
## 12.91255 877.2024 750.7949 1003.6098 683.8788 1070.5259
## 12.91653 877.4224 750.7266 1004.1181 683.6580 1071.1868
## 12.92050 877.6424 750.6590 1004.6258 683.4381 1071.8467
## 12.92448 877.8624 750.5921 1005.1327 683.2192 1072.5056
## 12.92845 878.0824 750.5258 1005.6391 683.0013 1073.1635
## 12.93243 878.3024 750.4601 1006.1448 682.7844 1073.8204
## 12.93640 878.5224 750.3950 1006.6498 682.5685 1074.4763
## 12.94038 878.7424 750.3306 1007.1542 682.3536 1075.1313
## 12.94435 878.9625 750.2669 1007.6580 682.1396 1075.7854
## 12.94833 879.1825 750.2037 1008.1612 681.9265 1076.4384
## 12.95230 879.4025 750.1412 1008.6637 681.7144 1077.0905
## 12.95628 879.6225 750.0793 1009.1657 681.5033 1077.7417
## 12.96025 879.8425 750.0180 1009.6670 681.2930 1078.3919
## 12.96423 880.0625 749.9573 1010.1677 681.0838 1079.0413
## 12.96820 880.2825 749.8972 1010.6678 680.8754 1079.6896
## 12.97218 880.5025 749.8377 1011.1673 680.6680 1080.3371
## 12.97615 880.7225 749.7788 1011.6662 680.4614 1080.9837
## 12.98013 880.9425 749.7205 1012.1646 680.2558 1081.6293
## 12.98410 881.1626 749.6628 1012.6623 680.0511 1082.2740
## 12.98808 881.3826 749.6057 1013.1594 679.8472 1082.9179
## 12.99205 881.6026 749.5492 1013.6560 679.6443 1083.5609
## 12.99603 881.8226 749.4932 1014.1520 679.4423 1084.2029
xts_test <- tail(xts, 240)
write.csv(xts_test,file = "forecasts_orig")
#save forecasts to a tabl
write.csv(tsforecasts240,file = "forecasts_Google")
library(ggfortify)
autoplot(tsforecasts240)
accuracy(tsforecasts240, head(tail(xts, 240), 240))
## ME RMSE MAE MPE MAPE
## Training set 7.830510e-05 6.662823 4.358564 -0.04023279 1.255910
## Test set 8.958999e+01 107.462582 90.356608 9.04790109 9.141123
## MASE ACF1
## Training set 0.05516544 0.02251657
## Test set 1.14362484 NA
ggplot(data.frame(residuals = tsforecasts240$residuals), aes(residuals)) + geom_histogram(bins = 50, aes(y = ..density..),
col = "red", fill = "red", alpha = 0.3) + geom_density()# make a histogram
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.