我有一个相当复杂的 ZINB 模型。我试图复制我正在尝试做的基本结构:
MyDat<-cbind.data.frame(fac1 = rep(c("A","B","C","D"),10),
fac2=c(rep("X",20),rep("Y",20)),
offset=c(runif(20, 50,60),runif(20,150,165)),
fac3=rep(c(rep("a1",4),rep("a2",4),rep("a3",4),rep("a4",4),rep("a5",4)),2),
Y=c(0,0,0,1,0,0,11,10,0,0,0,5,0,0,0,35,60,0,0,0,0,2,0,0,16,0,0,0,0,0,3,88,0,0,0,0,0,0,27,0))
f<-formula(Y~fac1+ offset(log(offset))|fac3+ fac2)
ZINB <-zeroinfl(f, dist = "negbin",link = "logit", data = MyDat)
summary(ZINB)
该模型的主要目标是查看 fac1 在四个级别上的影响。其他变量只是采样过程的产物。
这是输出:
Call:
zeroinfl(formula = f, data = MyDat, dist = "negbin", link = "logit")
Pearson residuals:
Min 1Q Median 3Q Max
-0.418748 -0.338875 -0.265109 -0.001566 2.682920
Count model coefficients (negbin with log link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.7192 0.9220 -1.865 0.062239 .
fac1B -4.4161 1.4700 -3.004 0.002663 **
fac1C -1.2008 1.2896 -0.931 0.351778
fac1D 0.1928 1.3003 0.148 0.882157
Log(theta) -1.7349 0.4558 -3.806 0.000141 ***
Zero-inflation model coefficients (binomial with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -11.5899 210.8434 -0.055 0.956
fac3a2 -0.4775 2.4608 -0.194 0.846
fac3a3 -11.2284 427.5200 -0.026 0.979
fac3a4 10.7771 210.8056 0.051 0.959
fac3a5 -0.3135 2.3358 -0.134 0.893
fac2Y 11.8292 210.8298 0.056 0.955
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Theta = 0.1764
Number of iterations in BFGS optimization: 76
Log-likelihood: -63.82 on 11 Df
我已经查阅了论文和统计书籍和论坛,但我仍然不确定如何呈现这些信息。我真正想要的是一个条形图,显示 Y 轴上的效果和 X 上的 4 个级别。
如果我理解正确,fac1 的 A 级当前设置为 0,是我的参考级别(如果我在这里错了,请纠正我)。因此,我可以绘制 4 个级别(包括 A 级为零)的图。这似乎并不理想。我真的很想在所有级别都有 95% 的 CI。
我也可以使用 predict 函数,但是 predict.zeroinfl 没有给出错误估计,我不确定如何解释偏移量的影响。
类似的论文只是将原始数据的箱线图放在预测的箱线图旁边并进行比较。我觉得我应该可以做得更好。
下面是创建预测值的代码和绘图:
MyDat$phat<-predict(ZINB, type="response")
MyDat$phat_os<-MyDat$phat/MyDat$offset
plot(phat~fac1, MyDat)
引导是要走的路吗?我已经尝试过这个并且遇到了各种各样的麻烦,因为我不确定是否有必要。
提前谢谢你,如果我在做一个愚蠢的疏忽/假设,请放轻松。我还在学习,但这些统计数据感觉有点遥不可及。