使用lm_robust与texreg生成仅含观测数的回归表格问题
解决
lm_robust+texreg保留指定统计量的问题 问题背景
使用estimatr包的lm_robust拟合带Stata风格聚类标准误的回归模型后,调用texreg生成表格时,设置include.rsquared = FALSE等参数无法去除R²、调整R²等多余统计量,同时出现类型转换警告,需要生成仅包含系数和观测数(nobs)的表格。
问题原因
- 原代码存在拼写错误:
inlcude.rmse应为include.rmse; lm_robust模型对象被texreg通过broom包提取时,会生成默认include参数未覆盖的额外统计量(如Statistic、P Value等),这些需要通过gof.map参数手动排除。
解决方案
修正拼写错误,并通过gof.map精确指定保留的统计量,同时排除所有不需要的项:
library(estimatr) library(texreg) # 生成数据 data <- data.frame( x = rnorm(100), z = rnorm(100), b = rbinom(100, 1, 0.5), n = rpois(100, 10) ) data$y <- 0.5 + 2 * data$x + 0.1 * data$z + 0.5 * data$b - 0.1 * (data$x - 0.5) ^ 2 + rnorm(100) # 拟合模型 model1 <- lm_robust(y ~ x, data = data, clusters = data$b, se_type = "stata") model2 <- lm_robust(y ~ x + z, data = data, clusters = data$b, se_type = "stata") model3 <- lm_robust(y ~ x + b, data = data, clusters = data$z, se_type = "stata") model4 <- lm_robust(y ~ x + z + b, data = data, clusters = data$n, se_type = "stata") # 生成目标表格 texreg( list(model1, model2, model3, model4), table = FALSE, custom.model.names = c("Model 1", "Model 2", "Model 3", "Model 4"), custom.coef.map = list("x" = "only coeff"), include.ci = FALSE, include.adjr = FALSE, include.rsquared = FALSE, include.rmse = FALSE, include.nobs = TRUE, # 关键:用gof.map排除所有不需要的统计量,仅保留nobs gof.map = list( "R^2" = FALSE, "Adj. R^2" = FALSE, "Statistic" = FALSE, "P Value" = FALSE, "DF Resid." = FALSE, "se_type" = FALSE, "nobs" = TRUE ), digits = 3 )
效果验证
运行上述代码后,将生成仅包含系数和观测数的LaTeX表格,与期望输出一致,同时消除类型转换警告。
内容的提问来源于stack exchange,提问作者Jorge Paredes
相关产品推荐
相关产品推荐

