ARMA模型的估计
library(readr)
d <- read_table(
"D:/齐安静 教学/时间序列分析/北大/ftsdata/m-3m4608.txt",
col_types=cols(.default=col_double(),
date=col_date(format="%Y%m%d")))
head(d)
## # A tibble: 6 × 2
## date rtn
## <date> <dbl>
## 1 1946-02-28 -0.0779
## 2 1946-03-30 0.0186
## 3 1946-04-30 -0.1
## 4 1946-05-31 0.210
## 5 1946-06-28 0.00513
## 6 1946-07-31 0.0765
library(zoo)
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(xts)
mmm <- xts(log(1 + d["rtn"]), d$date)
rm(d)
tclass(mmm) <- "yearmon"
ts.3m <- ts(coredata(mmm), start=c(1946,2), frequency=12)
plot(ts.3m, main="3M Monthly Log Return")
abline(h=0, col="gray")

forecast::Acf(ts.3m, main="")
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo

pacf(ts.3m, main="")

TSA::eacf(ts.3m, 6, 12)
## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12
## 0 o o x o o x o o o x o x o
## 1 x o x o o x o o o o o x o
## 2 x x x o o x o o o o o o o
## 3 x x x o o o o o o o o o o
## 4 x o x o o o o o o o o o o
## 5 x x x o x o o o o o o o o
## 6 x x x x x o o o o o o o o
resr <- TSA::armasubsets(ts.3m, nar = 6, nma = 12)
plot(resr)

forecast::auto.arima(ts.3m, max.p = 6, max.q = 6, max.P = 1, max.Q = 1)
## Series: ts.3m
## ARIMA(3,0,1)(1,0,1)[12] with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 ma1 sar1 sma1 mean
## 0.0453 -0.0285 -0.0837 -0.1124 0.5319 -0.4435 0.0103
## s.e. 0.3146 0.0417 0.0387 0.3147 0.2885 0.3049 0.0023
##
## sigma^2 = 0.003998: log likelihood = 1016.63
## AIC=-2017.25 AICc=-2017.06 BIC=-1980.24