-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCreate_sumPetro.R
82 lines (62 loc) · 1.76 KB
/
Create_sumPetro.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
petro <- read.csv("~/Library/Mobile Documents/com~apple~CloudDocs/18W2/STAT443/project/443project/rebuilt data/petro.txt", sep="")
petro[2]+petro[3]
sumPetro=matrix(0, nrow = 55, ncol = 2)
sumPetro[,1]<-petro[,1]
sumPetro[,2]<-petro[,2]
for(i in 3:ncol(petro)){
sumPetro[,2]=sumPetro[,2]+petro[,i]
}
sumPetro[,2]<-round(sumPetro[,2],2)
sumPetro
write.table(sumPetro, file="/Users/kayli/Desktop/temp/sumPetro.txt", row.names=FALSE, col.names=c("year","petro"))
myTs<-ts(sumPetro[,2],start=c(1960),end=c(2014),frequency=1)
plot(myTs)
acf(myTs)
pacf(myTs)
# simple, linear exponential smoothing
# HoltWinters(myTs,beta=TRUE,period=1)
# ARIMA FIT Df=1
df1<-diff(myTs,1)
plot(df1)
acf(df1)
pacf(df1)
fit1<-arima(df1,c(0,0,1),method="CSS")
print(fit1) # sigma^2 estimated as 2.095
sqrt(sum(fit1$sigma2)/(54)) # 0.1969702
#RMSE
fit1_1<-arima(myTs,c(0,1,1),method="CSS")
print(fit1_1) # sigma^2 estimated as 2.21
# ARIMA FIT Df=2
df2<-diff(myTs,2)
plot(df2)
acf(df2)
pacf(df2)
fit2<-arima(df2,c(0,0,2),method="CSS")
fit2 # sigma^2 estimated as 1.968
sqrt(sum(fit2$sigma2)/(54)) # RMSE 0.190921
fit2_1<-arima(df2,c(3,0,0),method="CSS")
fit2_1 # 2.784
fit2_2<-arima(df2,c(1,0,1),method="CSS")
fit2_2 # 2.362
sumPetro
dtrain<-sumPetro[1:41,]
dtrain
dhold<-sumPetro[42:nrow(sumPetro),]
dhold
fitarima011<-arima(dtrain[,2],c(0,1,1),method="CSS")
print(fitarima011) # 2.564
fitarima012<-arima(dtrain[,2],c(0,1,2),method="CSS")
print(fitarima012) # 2.19
p<-predict(fitarima012,n.ahead=14)
sumPetro
dtrain<-sumPetro[1:41,]
dtrain
dhold<-sumPetro[42:nrow(sumPetro),]
dhold
fitarima011<-arima(dtrain[,2],c(0,1,1),method="CSS")
print(fitarima011) # 2.564
fitarima012<-arima(dtrain[,2],c(0,1,2),method="CSS")
print(fitarima012) # 2.19
p<-predict(fitarima012,n.ahead=14)
# use different rules:
# a,b,c,d