plot(varve)
plot(log(varve))
z=diff(log(varve))
plot(z)
acf(z)
pacf(z)
Maybe looks like an MA(1)? First, let’s check if this looks like a random walk with drift.
summary(lm(z~1))
##
## Call:
## lm(formula = z ~ 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.78439 -0.38055 0.00694 0.37727 1.82285
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.001125 0.022909 -0.049 0.961
##
## Residual standard error: 0.5764 on 632 degrees of freedom
No. The drift doesn’t look significant.
Let’s try a few ARMA models.
(fit01 = arima( z, order=c(0,0,1) ))
##
## Call:
## arima(x = z, order = c(0, 0, 1))
##
## Coefficients:
## ma1 intercept
## -0.7710 -0.0013
## s.e. 0.0341 0.0044
##
## sigma^2 estimated as 0.2353: log likelihood = -440.68, aic = 887.36
(fit02 = arima( z, order=c(0,0,2) ))
##
## Call:
## arima(x = z, order = c(0, 0, 2))
##
## Coefficients:
## ma1 ma2 intercept
## -0.6710 -0.1595 -0.0013
## s.e. 0.0375 0.0392 0.0033
##
## sigma^2 estimated as 0.2294: log likelihood = -432.69, aic = 873.39
(fit03 = arima( z, order=c(0,0,3) ))
##
## Call:
## arima(x = z, order = c(0, 0, 3))
##
## Coefficients:
## ma1 ma2 ma3 intercept
## -0.6594 -0.1144 -0.0816 -0.0013
## s.e. 0.0397 0.0471 0.0416 0.0028
##
## sigma^2 estimated as 0.228: log likelihood = -430.79, aic = 871.58
(fit10 = arima( z, order=c(1,0,0) ))
##
## Call:
## arima(x = z, order = c(1, 0, 0))
##
## Coefficients:
## ar1 intercept
## -0.3970 -0.001
## s.e. 0.0365 0.015
##
## sigma^2 estimated as 0.2793: log likelihood = -494.56, aic = 995.12
(fit11 = arima( z, order=c(1,0,1) ))
##
## Call:
## arima(x = z, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.2341 -0.8871 -0.0013
## s.e. 0.0518 0.0292 0.0028
##
## sigma^2 estimated as 0.2284: log likelihood = -431.33, aic = 870.66
(fit12 = arima( z, order=c(1,0,2) ))
##
## Call:
## arima(x = z, order = c(1, 0, 2))
##
## Coefficients:
## ar1 ma1 ma2 intercept
## 0.4598 -1.1219 0.1917 -0.0013
## s.e. 0.2207 0.2348 0.1961 0.0025
##
## sigma^2 estimated as 0.228: log likelihood = -430.82, aic = 871.64
(fit13 = arima( z, order=c(1,0,3) ))
##
## Call:
## arima(x = z, order = c(1, 0, 3))
##
## Coefficients:
## ar1 ma1 ma2 ma3 intercept
## 0.0145 -0.6738 -0.1048 -0.0793 -0.0013
## s.e. 0.6375 0.6365 0.4264 0.1117 0.0028
##
## sigma^2 estimated as 0.228: log likelihood = -430.79, aic = 873.58
(fit20 = arima( z, order=c(2,0,0) ))
##
## Call:
## arima(x = z, order = c(2, 0, 0))
##
## Coefficients:
## ar1 ar2 intercept
## -0.4929 -0.2407 -0.0010
## s.e. 0.0386 0.0386 0.0118
##
## sigma^2 estimated as 0.263: log likelihood = -475.67, aic = 959.33
(fit21 = arima( z, order=c(2,0,1) ))
##
## Call:
## arima(x = z, order = c(2, 0, 1))
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 0.2447 0.0483 -0.9055 -0.0013
## s.e. 0.0501 0.0473 0.0298 0.0026
##
## sigma^2 estimated as 0.228: log likelihood = -430.82, aic = 871.64
(fit22 = arima( z, order=c(2,0,2) ))
##
## Call:
## arima(x = z, order = c(2, 0, 2))
##
## Coefficients:
## ar1 ar2 ma1 ma2 intercept
## -0.4010 0.1955 -0.2575 -0.5738 -0.0013
## s.e. 0.5032 0.1066 0.5060 0.4416 0.0027
##
## sigma^2 estimated as 0.2278: log likelihood = -430.61, aic = 873.21
(fit23 = arima( z, order=c(2,0,3) ))
##
## Call:
## arima(x = z, order = c(2, 0, 3))
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 intercept
## -0.4170 0.2721 -0.2431 -0.6570 0.0556 -0.0013
## s.e. 0.4255 0.3391 0.4286 0.5013 0.2442 0.0026
##
## sigma^2 estimated as 0.2278: log likelihood = -430.57, aic = 875.15
(fit30 = arima( z, order=c(3,0,0) ))
##
## Call:
## arima(x = z, order = c(3, 0, 0))
##
## Coefficients:
## ar1 ar2 ar3 intercept
## -0.5479 -0.3537 -0.2290 -0.0012
## s.e. 0.0387 0.0421 0.0388 0.0093
##
## sigma^2 estimated as 0.2492: log likelihood = -458.7, aic = 927.4
(fit31 = arima( z, order=c(3,0,1) ))
##
## Call:
## arima(x = z, order = c(3, 0, 1))
##
## Coefficients:
## ar1 ar2 ar3 ma1 intercept
## 0.2406 0.0469 -0.0104 -0.9010 -0.0013
## s.e. 0.0547 0.0484 0.0484 0.0381 0.0026
##
## sigma^2 estimated as 0.228: log likelihood = -430.8, aic = 873.6
(fit32 = arima( z, order=c(3,0,2) ))
##
## Call:
## arima(x = z, order = c(3, 0, 2))
##
## Coefficients:
## ar1 ar2 ar3 ma1 ma2 intercept
## -0.5203 0.2311 0.0154 -0.1391 -0.6861 -0.0013
## s.e. 0.5168 0.1474 0.0671 0.5145 0.4744 0.0026
##
## sigma^2 estimated as 0.2278: log likelihood = -430.58, aic = 875.17
(fit33 = arima( z, order=c(3,0,3) ))
##
## Call:
## arima(x = z, order = c(3, 0, 3))
##
## Coefficients:
## ar1 ar2 ar3 ma1 ma2 ma3 intercept
## -0.6487 -0.7257 0.2391 -0.0043 0.1807 -0.8676 -0.0013
## s.e. 0.1718 0.1472 0.1080 0.1615 0.2426 0.0520 0.0028
##
## sigma^2 estimated as 0.2259: log likelihood = -428.16, aic = 872.32
AIC( fit01, fit02, fit03, fit10, fit11, fit12, fit13, fit20, fit21, fit22, fit23, fit30, fit31, fit32, fit33)
## df AIC
## fit01 3 887.3557
## fit02 4 873.3861
## fit03 5 871.5778
## fit10 3 995.1236
## fit11 4 870.6638
## fit12 5 871.6438
## fit13 6 873.5779
## fit20 4 959.3314
## fit21 5 871.6421
## fit22 6 873.2131
## fit23 7 875.1480
## fit30 5 927.3966
## fit31 6 873.5957
## fit32 7 875.1675
## fit33 8 872.3187
BIC( fit01, fit02, fit03, fit10, fit11, fit12, fit13, fit20, fit21, fit22, fit23, fit30, fit31, fit32, fit33)
## df BIC
## fit01 3 900.7071
## fit02 4 891.1880
## fit03 5 893.8301
## fit10 3 1008.4751
## fit11 4 888.4657
## fit12 5 893.8962
## fit13 6 900.2807
## fit20 4 977.1333
## fit21 5 893.8945
## fit22 6 899.9159
## fit23 7 906.3013
## fit30 5 949.6489
## fit31 6 900.2985
## fit32 7 906.3208
## fit33 8 907.9225
AIC and BIC both like ARMA(1,1).
Let’s look at some diagnostics:
r = resid(fit11)
lags = 10
acf(r)
Box.test( r, 10, fitdf=2 )
##
## Box-Pierce test
##
## data: r
## X-squared = 5.8528, df = 8, p-value = 0.6637
qqnorm(r)
qqline(r)
jarque.bera.test(r)
##
## Jarque Bera Test
##
## data: r
## X-squared = 3.8573, df = 2, p-value = 0.1453
Looks pretty good!