这是建模过程:
方法一:
lf8 <- function(pa){
mu <- pa[1]
ar1 <- pa[2]
omega <- pa[3]
alpha <- pa[4]
beta <- pa[5]
epsilon <- 0
ht <- ht_0
zt <- 0
l <- 0
for(i in 3: length(rt)){
epsilon[i] <- rt[i] - mu -ar1*rt[i-1]
ht[i] <- omega + alpha * (rt[i-1]-mu-ar1*rt[i-2])^2 + beta * ht[i-1]
zt[i] <- epsilon[i] / sqrt(ht[i])
l[i] <- -0.5*log(2*pi) - 0.5*log(ht[i]) - 0.5*(zt[i])^2
}
log_sum <- sum(l)
result <- l
return(result)
}
#对极大似然函数进行估计
est8 <- maxLik(lf8, start=c(0, 0.2, 0.2, 0, 0.8))
est8
方法二:
lf4 <- function(pa){
mu <- pa[1]
ar1 <- pa[2]
omega <- pa[3]
alpha <- pa[4]
beta <- pa[5]
ht <- ht_0
l <- 0
for(i in 3: length(rt)){
ht[i] <- omega + alpha * (rt[i-1]-mu-ar1*rt[i-2])^2 + beta * ht[i-1]
l[i] <- -0.5*log(2*pi) - 0.5*log(ht[i]) - 0.5*(rt[i] -mu -ar1*rt[i-1])^2 / ht[i]
}
log_sum <- sum(l)
result <- l
return(result)
}
#对极大似然函数进行估计
est4 <- maxLik(lf4, start=c(0, 0.2, 0.2, 0, 0.8))
est4
在方法一中,你定义了epsilon和zt向量,但是没有给它们初始值
在方法二中,你定义了ht和log_sum的变量,但是没有在代码中使用它们