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

如何在R中高效编写含大量变量的negative binomial回归代码

R语言负二项回归批量生成自变量公式的高效写法

方法1:全量纳入除因变量外的所有变量

如果你的数据框df1中,除了因变量V1之外的其余列全部需要作为自变量纳入模型,可以直接用.代替所有自变量,写法最简洁:

# 加载负二项回归所需依赖包
library(MASS)
# . 直接指代数据框中除因变量外的所有变量
nb_model <- glm.nb(V1 ~ ., data = df1)

注意:使用该方法前需提前清理数据框,确保没有ID、时间戳这类不需要纳入模型的无效列,避免变量误引入

方法2:按规则筛选指定变量纳入

如果自变量有统一命名规律(比如示例中的V2到V100,均为V加数字的格式),可以批量生成自变量名后用reformulate()自动构造回归公式:

library(MASS)
# 批量生成V2到V100的自变量名向量
predictors <- paste0("V", 2:100)
# 自动生成回归公式,response参数指定因变量名
nb_formula <- reformulate(termlabels = predictors, response = "V1")
# 代入模型运行
nb_model <- glm.nb(nb_formula, data = df1)

如果自变量没有统一命名规则,但你知道对应的列索引范围,也可以通过列名索引获取自变量:

# 取df1第2列到第100列的列名作为自变量
predictors <- names(df1)[2:100]

方法3:排除指定变量后纳入剩余变量

如果你只需要排除少数几个特定变量,其余全部纳入模型,可以用setdiff()处理列名实现:

library(MASS)
# 排除因变量V1和不需要的id、录入时间变量,其余全部作为自变量
predictors <- setdiff(names(df1), c("V1", "id", "create_time"))
nb_formula <- reformulate(predictors, response = "V1")
nb_model <- glm.nb(nb_formula, data = df1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:36:05