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 ...是那些你錯誤的大小關注?他們似乎「相似」... –