r - 用 R 最大化对数似然函数
问题描述
所以我想最大化似然函数,以便估计四个变量(a,b,c,sigma^2),R
但它不起作用我不知道为什么。在这里,我估计年龄 30,60 和 90。对于每个年龄,我将其截断为 30,因此您可以看到 30 岁时 x 变为 0,60 岁时变为 30,依此类推。但是优化不起作用我不知道为什么;有人可以帮助我吗?
d30 <- 2975.1
d60 <- 11456.38
d90 <- 2977.08
r30 <- 1531956.05
r60 <- 650404.58
r90 <- 9728.47
Logg <- function(a,b,c,s)
{
(d30*log((((a*exp(b*0))/(1+((s*a/b)*(exp(b*0)-1))))+c)*r30)-log(factorial(d30))-((((a*exp(b*0))/(1+((s*a/b)*(exp(b*0)-1))))+c)*r30))+
(d60*log((((a*exp(b*30))/(1+((s*a/b)*(exp(b*30)-1))))+c)*r60)-log(factorial(d60))-((((a*exp(b*30))/(1+((s*a/b)*(exp(b*30)-1))))+c)*r60))+
(d90*log((((a*exp(b*60))/(1+((s*a/b)*(exp(b*60)-1))))+c)*r90)-log(factorial(d90))-((((a*exp(b*60))/(1+((s*a/b)*(exp(b*60)-1))))+c)*r90))
}
Logg(1,1,1,1)
optim(c(0,0,0,0),Logg,control = list(fnscale=-1))
对数似然函数
拉姆达定义
亩定义
解决方案
也许这是因为你试图用数值计算非常高的阶乘?对于如此高的数字,R 只会返回无穷大:
> d30<-2975.1
> factorial(d30)
[1] Inf
推荐阅读
- tsql - IF 条件返回太多值
- python - 使用多线程从请求中提取 Gzip 文件
- reactjs - 使用 MSAL React 调用 API
- php - laravel eloquent 中复杂的条件关系用于多态性
- docker - 改善 Docker 映像的 ECS 任务拉取时间的延迟?
- docker - $CI_COMMIT_TAG 在常规工作的“if”状态中
- angular - 我应该在组件销毁上完成 BehaviorSubject – Angular2
- java - 如何在java中使用正则表达式为elasticsearch创建多匹配查询?
- c# - get postback control 和 RegisterStartupScript 之间的奇怪冲突
- python - Scape gtag/jquery 变量与 BeautifulSoup?