Manual Maximum-Likelihood Estimation of an AR-Model in R

99封情书 提交于 2019-12-03 21:58:11

This works for me -- basically what you've done but leaving out the first element of the response, since we can't predict it with an AR model anyway.

Simulate:

library(stats)
set.seed(101)
data <- arima.sim(n=1000,list(ar=0.1),mean=10)

Negative log-likelihood:

logl <- function(sigma,alpha,beta) {
   -sum(dnorm(data[-1],alpha+beta*data[1:length(data)-1],sigma,log=TRUE))
}

Fit:

library(stats4)
mle(logl,start=list(sigma=1,alpha=5,beta=0.05),method="L-BFGS-B")
## Call:
## mle(minuslogl = logl, start = list(sigma = 1, alpha = 5, beta = 0.05), 
##     method = "L-BFGS-B")
## 
## Coefficients:
##  0.96150573 10.02658632  0.09437847 

Alternatively:

df <- data.frame(y=data[-1],ylag1=head(data,-1))
library(bbmle)
mle2(y~dnorm(alpha+beta*ylag1,sigma),
     start=list(sigma=1,alpha=5,beta=0.05),
     data=df,method="L-BFGS-B")
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!