是运行了没有出结果么?
加了result <- maxLik()以后呢?
应该就可以了
然后再print(result)
这个例子你看有用没用?
normal <- function(theta){
mu <- theta[1]
sigma <- theta[2]
logL <- -0.5*N*log(2*pi) - N*log(sigma) - sum(0.5*(x - mu)^2/sigma^2)
return (logL)
}
对于给定的数据 x <- rnorm(100,1,2),N <- length(x),然后就可以使用下面的语句进行最大似然估计了:
result <- maxLik(normal,start=c(0,1))
得到的结果如下:
print(result)
Maximum Likelihood estimation
Newton-Raphson maximisation, 8 iterations
Return code 1: gradient close to zero
Log-Likelihood: -2117.389 (2 free parameter(s))
Estimate(s): 1.007240 2.010635
可见,虽然在maxLik()函数中给出的初始值是错误的,最后得到的估计值非常接近真值。