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