我有一个R最大可能性的问题,我希望你可以帮助我。在代码中,Nt代表观察到的索赔计数和相应卷的vt。
首先我假设一个Poisson dist。所以我估计lambda与mle并得到0.10224。然后我尝试用fitdistr估计lambda,结果是1022.4。为什么这两个功能有什么区别?我该如何纠正?
后来我尝试使用相同的数据来估计负二项式的参数。但我还没有把它付诸实践。你能看出我做错了什么吗? lambda和gamma的起始值只是我选择的随机数。
library(stats4)
library(MASS)
Nt <- c(1000, 997, 985, 989, 1056, 1070, 994, 986, 1093, 1054)
vt <- rep(10000, 10)
n <- length(Nt)
obs.freq <- Nt/vt
overall.freq <- sum(Nt)/sum(vt)
#####
# mle - poisson
#####
fit.poisson <- function(lamda){
-sum(dpois(Nt, lamda*vt, log=TRUE))
}
mle.poisson <- mle(fit.poisson, start=list(lamda=overall.freq), nobs = NROW(Nt))
mle.poisson.summary <- summary(mle.poisson)
fitdistr(Nt, "Poisson")
#####
# mle - negative binomial
#####
fit.negbin <- function(lamda, gamma){
SUM <- numeric(n)
for(i in 1:n){
SUM[i] <- lfactorial(Nt[i]+gamma-1) - lfactorial(Nt[i]) - lfactorial(gamma-1) + gamma*log(1-lamda*vt[i]/(gamma+lamda*vt[i])) + Nt[i]*log(lamda*vt[i]/(gamma+lamda*vt[i]))
}
-sum(SUM)
}
mle.negbin <- mle(fit.negbin, start=list(lamda=0.1, gamma=2), nobs=n)
mle.negbin.summary <- summary(mle.negbin)
fitdistr(Nt,"Negative binomial")
答案 0 :(得分:0)
在您使用mle()
的第一次尝试中,您在vt
尝试时合并了fitdistr()
,但事实并非如此。您可以通过将fit.poisson
更改为just:
fit.poisson <- function(lamda){
-sum(dpois(Nt, lambda, log=TRUE))
}
或将fitdistr()
更改为:
fitdistr(Nt/vt, "Poisson")
我认为您的负二项模型没有任何问题。负二项模型(0.10197)的λ估计值非常接近泊松模型中的λ估计值(0.10224)。