如何在R语言中提取零膨胀回归模型的p值?
在R中提取零膨胀回归模型的p值
嘿,我来帮你搞定从零膨胀负二项回归模型里提取p值的事儿!从你给出的summary输出来看,模型已经算出了p值,咱们只需要用代码把它们提取出来就行,下面分两种常用方法给你演示:
方法1:直接从summary对象中提取
首先,假设你已经用pscl包拟合好了模型,并且把它存成了model对象:
library(pscl) # 你的拟合代码 model <- zeroinfl(formula = Walk ~ WalkIndex, data = walkadata, subset = offset(Total_commuters), dist = "negbin")
先生成模型的summary对象:
model_summary <- summary(model)
零膨胀模型分为**计数模型(count component)和零膨胀模型(zero component)**两部分,咱们分别提取它们的p值:
- 提取计数模型的p值(包括截距、WalkIndex和theta的p值):
count_pvals <- model_summary$coefficients$count[, "Pr(>|z|)"] print(count_pvals)
运行后你会得到像这样的结果(对应你给出的输出):
(Intercept) WalkIndex Log(theta) <2e-16 <2e-16 <2e-16
- 如果你的模型有零膨胀部分的系数(你的输出里没显示全,可能是截断了),提取零膨胀模型的p值用这行:
zero_pvals <- model_summary$coefficients$zero[, "Pr(>|z|)"] print(zero_pvals)
方法2:用lmtest包的coeftest函数提取
这个方法更灵活,还能帮你做额外的统计检验,步骤如下:
首先安装并加载lmtest包:
install.packages("lmtest") library(lmtest)
然后分别对计数和零膨胀部分做系数检验,直接输出包含p值的结果:
# 查看计数部分的系数及p值 coeftest(model, component = "count") # 查看零膨胀部分的系数及p值 coeftest(model, component = "zero")
如果只需要提取p值,用下面的代码:
count_pvals_coeftest <- coeftest(model, component = "count")[, 4] zero_pvals_coeftest <- coeftest(model, component = "zero")[, 4]
这样你就能把p值单独提取出来,方便后续的分析或者可视化啦!
内容的提问来源于stack exchange,提问作者Or Caspi




