#参数alpha的极大似然估计 for (i in 1:k){ u <- runif(500) #生成500个0-1均匀分布随机数 x <- u^(1/(alpha+1)) #逆变换法生成服从f(x)的随机数 logL=500*log(alpha+1)+alpha*500*(log(x)) #对数极大似然函数 return(logL) }报错
时间: 2023-12-25 19:05:12 浏览: 62
这个报错可能是因为你没有定义函数 `fn`,可以将代码改成以下形式:
```
fn <- function(alpha) {
u <- runif(500)
x <- u^(1/(alpha+1))
logL = 500*log(alpha+1) + alpha*500*log(x)
return(-logL) # optimize 函数默认是最小化,所以要取相反数
}
alphat2 <- optimize(fn,c(-1, 1),maximum=TRUE)
alphat2 <- abs(alphat2$maximum)
```
注意,这里的 `fn` 函数的返回值要取相反数,因为 `optimize` 函数默认是最小化。
阅读全文