繁体   English   中英

用 R 最大化对数似然函数

[英]maximize log likelihood function with R

所以我想,为了得到四个变量(A,B,C,西格马^ 2)的估计,以最大化似然函数R但它不工作,我不知道为什么。 在这里,我估计了 30、60 和 90 岁。对于每个年龄,我将其截断为 30,因此您可以看到,30 岁的 x 变为 0,60 岁的 x 变为 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))

对数似然函数

对数似然函数

lambda 定义

lambda 定义

亩定义

亩定义

也许这是因为你试图用数值计算非常高的阶乘? 对于如此高的数字,R 只会返回无穷大:

> d30<-2975.1
> factorial(d30)
[1] Inf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM