【发布时间】:2020-03-06 19:12:36
【问题描述】:
我正在使用 mle2 进行估计,并且我的所有参数都得到 0 个标准误差(即使在拟合不好的情况下)。谁能告诉我为什么?有没有更聪明的方法来估计最大似然?
# Define Log likelihood function for product i.
LL<-function(product, gamma0, beta_0, beta_1, beta_2, beta_3, beta_4, beta_5, beta_6, beta_7, beta_8, beta_9,beta0, beta1, beta2, beta3, beta4, beta5, beta6, beta7, beta8, beta9, var1) {
y <- data_$Patients_ln[data_$Brand==product]
R <- myfunc(product, gamma0, beta_0, beta_1, beta_2, beta_3, beta_4, beta_5, beta_6, beta_7, beta_8, beta_9,beta0, beta1,beta2, beta3, beta4, beta5, beta6, beta7,beta8, beta9)
R <- - sum(dnorm(y,mean=R, sd=exp(var1), log=TRUE))
return(R)
}
# Sum all the log likelihood function ( sum over all products)
sumLL <- function(gamma0, beta_0, beta_1, beta_2, beta_3, beta_4, beta_5, beta_6, beta_7, beta_8, beta_9
, beta0, beta1, beta2,beta3, beta4, beta5, beta6, beta7, beta8, beta9, var1) {
products <- unique(data_$Brand)
sum_ <- 0
for(i in 1:length(products)){
sum_ <- sum_ + LL(products[i], gamma0, beta_0, beta_1, beta_2, beta_3, beta_4, beta_5, beta_6, beta_7, beta_8, beta_9, beta0, beta1, beta2,beta3, beta4, beta5, beta6, beta7, beta8, beta9, var1)
}
return(sum_)
}
fit<- mle2(sumLL, start=list(gamma0=values[1], beta_0=values[2],beta_1=values[3],beta_2=values[4],beta_3=values[5],beta_4=values[6],beta_5=values[7],beta_6=values[8],beta_7=values[9],beta_8=values[10],beta_9=values[11], beta0=values[12], beta1=values[13], beta2=values[14],beta3=values[15], beta4=values[16], beta5=values[17],beta6=values[18],beta7=values[19], beta8=values[20], beta9=values[21], var1=values[22]), control=list(maxit=3000))
这是我的输出:
【问题讨论】:
-
嗨,阿曼达。我不确定你是什么意思。您的标准错误都不是零。你能解释一下你期待看到什么吗?
-
许多标准误差在1E-15的数量级,在零机器精度范围内。
-
我可能是一个在交叉验证stats.stackexchange.com 上得到更好回答的统计问题
-
这是过拟合的问题吗?你有多少观察结果?
-
@mob 您必须将 1e-15 除以另一个 ~1e300 才能在 R 中接近零。问题实际上与模型拟合有关,并且它的右眼球在交叉验证上已经结束。
标签: r