在 chol.default(K) 中出现错误:5 阶的主要未成年人与 betareg 不是正定的

Getting Error in chol.default(K) : the leading minor of order 5 is not positive definite with betareg

我正在尝试使用 betareg packagebetareg functionbeta regression 模型拟合到这些数据:

df <- data.frame(category=c("c1","c1","c1","c1","c1","c1","c2","c2","c2","c2","c2","c2","c3","c3","c3","c3","c3","c3","c4","c4","c4","c4","c4","c4","c5","c5","c5","c5","c5","c5"),
                 value=c(6.6e-18,0.0061,0.015,1.1e-17,4.7e-17,0.0032,0.29,0.77,0.64,0.59,0.39,0.72,0.097,0.074,0.073,0.08,0.06,0.11,0.034,0.01,0.031,0.041,4.7e-17,0.025,0.58,0.14,0.24,0.29,0.55,0.15),stringsAsFactors = F)

df$category <- factor(df$category,levels=c("c1","c2","c3","c4","c5"))

使用此命令:

library(betareg)
fit <- betareg(value ~ category, data = df)

我得到这个 error:

Error in chol.default(K) : 
  the leading minor of order 5 is not positive definite
In addition: Warning message:
In sqrt(wpp) : NaNs produced
Error in chol.default(K) : 
  the leading minor of order 5 is not positive definite
In addition: Warning messages:
1: In betareg.fit(X, Y, Z, weights, offset, link, link.phi, type, control) :
  failed to invert the information matrix: iteration stopped prematurely
2: In sqrt(wpp) : NaNs produced

是否有任何解决方案,或者 Beta 回归是否根本无法拟合这些数据?

将 beta 分布拟合到类别 1 中的数据将非常具有挑战性,因为三个观测值基本上为零。四舍五入为五位数:0.00000、0.00000、0.00000、0.00320、0.00610、0.01500。我不清楚这个类别是否应该以与其他类别相同的方式建模。

在类别 4 中,还有一个数值为零的观测值,尽管其他观测值稍大一些:0.00000、0.01000、0.02500、0.03100、0.03400、0.04100。

省略类别 1 至少可以在没有数值问题的情况下估计模型。渐近推断是否是来自每组六个观察值的两个参数的良好近似是另一个问题。不过,各组之间的精度似乎并不相同。

betareg(value ~ category | 1, data = df, subset = category != "c1")
## Call:
## betareg(formula = value ~ category | 1, data = df, subset = category != 
##     "c1")
## 
## Coefficients (mean model with logit link):
## (Intercept)   categoryc3   categoryc4   categoryc5  
##      0.2634      -2.2758      -4.4627      -1.0206  
## 
## Phi coefficients (precision model with log link):
## (Intercept)  
##       2.312  
betareg(value ~ category | category, data = df, subset = category != "c1")
## Call:
## betareg(formula = value ~ category | category, data = df, subset = category != 
##     "c1")
## 
## Coefficients (mean model with logit link):
## (Intercept)   categoryc3   categoryc4   categoryc5  
##      0.2566      -2.6676      -4.0601      -0.9784  
## 
## Phi coefficients (precision model with log link):
## (Intercept)   categoryc3   categoryc4   categoryc5  
##      2.0849       3.5619      -0.2308      -0.1376