-
Notifications
You must be signed in to change notification settings - Fork 1
/
ph1_report_generator.R
120 lines (104 loc) · 3.83 KB
/
ph1_report_generator.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
source('funcs.R')
# benchmark models ----
report.full(model = 'snaive()',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 1)
report.full(model = 'meanf()',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 1)
report.full(model = 'naive()',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 1)
# 7:2 full ----
#simple
report.full(model = 'Arima(order=c(1, 0, 0), seasonal=c(1, 0, 0), method="CSS")',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
serial = TRUE)
# fourier terms, inspiration from both of the series
report.full(model = 'Arima(order=c(1, 0, 0), seasonal=c(1, 0, 0), method="CSS", xreg=fourier(., K=2))',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
xreg = 'fourier(., h=h, K=2)',
serial=TRUE)
#fourier terms without SAR
# fourier terms, inspiration from both of the series
report.full(model = 'Arima(order=c(1, 0, 0), method="CSS", xreg=fourier(., K=2))',
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
xreg = 'fourier(., h=h, K=2)',
serial=TRUE)
#dummies, inspiration from 2hrs
# ATTENTION: I converted from "dummies" in the `2hrs ph1 series`` to "hours", this means, I multipled by 2 to get the hourly intervals right
# with 11th hour up to 18th hour dummies - inspiration from 2hrs series - not 12th since I want to "catch it in full"
obsDummies.fcast <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 7*(frequency(.)/24), length(.), frequency(.)),
fourier(., h=h, K=2)
)}
)
obsDummies.fit <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 7*(frequency(.)/24), length(.), frequency(.)),
fourier(., K=2)
)}
)
report.full(model = paste0('Arima(order=c(1, 0, 0), seasonal=c(1, 0, 0), method="CSS", xreg=', paste0(deparse(obsDummies.fit), collapse='') ,')'),
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
xreg = paste0(deparse(obsDummies.fcast), collapse=''),
serial = TRUE)
#dummies, inspiration from 1hrs
obsDummies.fcast <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 1*(frequency(.)/24), length(.), frequency(.)),
fourier(., h=h, K=2)
)}
)
obsDummies.fit <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 1*(frequency(.)/24), length(.), frequency(.)),
fourier(., K=2)
)}
)
report.full(model = paste0('Arima(order=c(1, 0, 0), seasonal=c(1, 0, 0), method="CSS", xreg=', paste0(deparse(obsDummies.fit), collapse='') ,')'),
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
xreg = paste0(deparse(obsDummies.fcast), collapse=''),
serial = TRUE)
#VERY FAST because I removed the SAR term!!!!!!!
obsDummies.fcast <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 1*(frequency(.)/24), length(.), frequency(.)),
fourier(., h=h, K=2)
)}
)
obsDummies.fit <- quote(
{cbind(
dummies=getNthObsDummies(11*(frequency(.)/24)+1, 1*(frequency(.)/24), length(.), frequency(.)),
fourier(., K=2)
)}
)
report.full(model = paste0('Arima(order=c(1, 0, 0), method="CSS", xreg=', paste0(deparse(obsDummies.fit), collapse='') ,')'),
series = 'ph1',
transformation = 'identity()',
traindays = 7,
testdays = 2,
xreg = paste0(deparse(obsDummies.fcast), collapse=''),
serial = TRUE)