【问题标题】:Parameter Estimation of Benini Probability Distribution Using R使用 R 的贝尼尼概率分布的参数估计
【发布时间】:2018-06-03 02:30:45
【问题描述】:

我想估计两参数贝尼尼模型的参数。在此处查看模型功能:https://en.wikipedia.org/wiki/Benini_distribution 我们使用逆 CDF 方法对来自该模型的数据进行概括,并尝试使用 R 中“MASS”包下的 fitdistr 程序估计参数。代码如下

###################################################
n=100
u=runif(n,0,1)
beta=.1
sigma=0.002
your_data<-sigma*exp((-1/beta*log(1-u))^(0.5));your_data
hist(your_data,prob=T,col=3,angle=c(45),density=20,main="Benini",cex.main=1)
mean(your_data)
length(your_data)
ELL=function(x,beta,sigma) ((2*beta)/x)*(exp(-beta*(log(x/sigma))^2))*(log(x/sigma))
library(MASS)
your_estimate=fitdistr(x = your_data,densfun = ELL,start = list(beta=0.01,sigma=0.002))
your_estimate

############################################## #########

但是我们得到了优化错误,我不知道为什么?因为我们应该得到估计,因为我们只从这个模型中生成了数据。任何人都可以帮助调试R代码。我尝试了另一种方法,如下所示,但同样的错误。

##############################################

n=100
u=runif(n,0,1)
beta=.1
sigma=0.002
x<-sigma*exp((-1/beta*log(1-u))^(0.5));your_data



hist(x,prob=T,col=3,angle=c(45),density=20,main="Benini",cex.main=1)

library(stats4) ## loading package stats4
ll<-function(beta,sigma) 
{
n<-length(x)
-(n*log(2*beta)*sum(log(x))-beta*sum((log(x/sigma))^2)+sum(log(log(x/sigma))))
}

fit=mle(minuslogl=ll,start=list(beta=0.1,sigma=0.002),method="CG")
summary(fit)
#

帮助调试 R 代码。

【问题讨论】:

  • 你得到什么错误
  • 错误是:统计错误::optim(x = c(0.00981816763294864, 0.028141372232572, 0.00847853281395321, : 非有限差分值 [2] 另外:警告消息:在 log(dens (parm, ...)) : 产生的 NaNs

标签: r inference mle


【解决方案1】:

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 1970-01-01
  • 2017-11-20
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多