1
我使用dnbinom()
用于写入数似然函数,然后估算使用mle2()
{bbmle}参数R.的NaN()
的问题是,我得到16个为警告我的负二项模型,所有这些的NaN产生像这样的:
1:在dnbinom(Y,亩=亩,大小= k时,登录= TRUE):NaN的产生
我的代码:
# data
x <- c(0.35,0.45,0.90,0.05,1.00,0.50,0.45,0.25,0.15,0.40,0.26,0.37,0.43,0.34,0.00,0.11,0.00,0.00,0.00,0.41,0.14,0.80,0.60,0.23,0.17,0.31,0.30,0.00,0.23,0.33,0.30,0.00,0.00)
y <- c(1,10,0,0,67,0,9,5,0,0,0,82,36,0,32,7,7,132,14,33,0,67,11,39,41,67,9,1,44,62,111,52,0)
# log-likelihood function
negbinglmLL = function(beta,gamma,k) {
mu= exp(beta+gamma*x)
-sum(dnbinom(y,mu=mu, size=k, log=TRUE))
}
# maximum likelihood estimator
model <- mle2(negbinglmLL, start=list(beta=mean(y), gamma= 0, k=mean(y)^2/(var(y)-mean(y))))
这些警告是什么意思,如果这是一个严重的问题,我该如何避免它?
感谢您的回答。我决定使用你的第一个选择:model < - mle2(negbinglmLL,start = list(beta = mean(y),gamma = 0,k = mean(y)^ 2 /(var(y)-mean(y)) ),method =“L-BFGS-B”,lower = c(beta = -Inf,gamma = -Inf,k = 0),upper = c(beta = Inf,gamma = Inf,k = Inf)) –
唯一的问题是当使用方法= L-BFGS-B时,系数的标准误差与通过使用glm.nb函数获得的误差相当不同。你是对的,我打算给类似日志的函数添加条件,所以我不打算使用glm.nb,但是我期望在这个最简单的情况下得到相似的结果。 –
嗯,你说的“完全不同”是什么意思?将'mle2'与'L-BFGS-B'和'glm.nb'相比较,我得到的std错误为0.445,对于截距为0.460,对于斜率为0.266对0.249 ...是那些你错误的大小关注?他们似乎“相似”... –