You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让easystats parameters包对pscl模型返回变量标签?

解决parameters包处理zeroinfl模型不显示变量标签的问题

目前parameters包对pscl::zeroinfl这类双部分模型的变量标签提取逻辑尚未适配,不过可以通过手动替换的方式解决,以下是两种可行方案:

方案一:手动匹配变量标签替换参数列

通过提取数据框的变量标签,再替换model_parameters返回结果中的参数名称:

options(parameters_labels = TRUE)
mydf <- pscl::bioChemists
labelled::var_label(mydf) <- list(art="MyCount", fem="MyGender", mar="MyMarried")

# 拟合零膨胀模型
model <- pscl::zeroinfl(art ~ fem + mar, data = mydf)
params <- parameters::model_parameters(model)

# 获取变量标签映射表
var_labels <- labelled::var_label(mydf)

# 替换参数列中的变量名为对应标签
params$Parameter <- sapply(params$Parameter, function(param) {
  # 剥离模型部分前缀(如"Count: "或"Zero Inflation: ")
  clean_param <- gsub("^(Count: |Zero Inflation: )", "", param)
  # 匹配标签,无标签则保留原名称
  if (clean_param %in% names(var_labels)) {
    var_labels[[clean_param]]
  } else {
    param
  }
})

# 查看结果
print(params)

方案二:使用label_parameters函数辅助替换

利用parameters包内置的label_parameters函数,结合自定义标签映射完成替换:

options(parameters_labels = TRUE)
mydf <- pscl::bioChemists
labelled::var_label(mydf) <- list(art="MyCount", fem="MyGender", mar="MyMarried")

model <- pscl::zeroinfl(art ~ fem + mar, data = mydf)
params <- parameters::model_parameters(model)

# 提取并替换标签
params$Parameter <- parameters::label_parameters(
  model,
  labels = labelled::var_label(mydf)
)

print(params)

长期解决方案

如果需要更原生的支持,可以向easystats团队提交issue,请求添加对pscl::zeroinfl模型的变量标签识别适配。

内容的提问来源于stack exchange,提问作者robertspierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:06:06