fixest包feglm模型输出为列表,Stargazer无法识别求解
解决fixest::feglm模型无法被stargazer识别的问题
问题场景
使用fixest包的feglm()拟合了包含银行个体固定效应(IssuerName)与时间固定效应(YearOfIssuance)的二项Logit模型,但模型结果为列表格式,stargazer无法直接识别。手动提取系数表后,stargazer输出的是描述性统计而非预期的回归结果表。
原始回归代码
BinomialLogitModelWinsorizedLag <- feglm( CoCoIssuance ~ log(TotalAssetsLagged) + DepositsOverAssetsLagged + T1RatioLagged + AssetGrowthLagged + EquityOverAssetsLagged + CashOverAssetsLagged + CET1RatioLagged + DividendsOverEquityLagged + PriceOverBookLagged + ROALagged + LoansOverAssetsLagged | IssuerName + YearOfIssuance, data = WinsorizedDataLagged, family = binomial("logit") )
尝试过的无效代码
# 提取系数和标准误 coef_tableLogitLag <- BinomialLogitModelWinsorizedLag$coeftable stargazer(coef_tableLogitLag, type = "text")
问题原因
stargazer默认不支持fixest包的模型对象结构;直接传入提取的系数表(数据框格式)时,stargazer会将其视为普通数据集,输出描述性统计而非回归结果。
解决方案
方案1:使用fixest自带的etable()(推荐)
fixest包内置了etable()函数,专门适配自身模型,支持直接输出包含固定效应、拟合优度等信息的标准回归表,无需依赖stargazer:
# 输出文本格式回归表 etable(BinomialLogitModelWinsorizedLag, type = "text") # 若需输出LaTeX格式 etable(BinomialLogitModelWinsorizedLag, type = "latex", file = "logit_reg_table.tex")
方案2:通过broom转换后适配stargazer
使用broom包将feglm模型结果转换为stargazer可识别的结构化数据,再手动配置回归表参数:
library(broom) library(stargazer) # 提取模型结果(包含系数、标准误、置信区间) tidy_logit <- tidy(BinomialLogitModelWinsorizedLag, conf.int = TRUE) # 用stargazer输出回归表,手动补充固定效应说明 stargazer(tidy_logit, type = "text", dep.var.caption = "被解释变量:CoCoIssuance", dep.var.labels.include = FALSE, covariate.labels = c("对数滞后总资产", "滞后存款资产比", "滞后一级资本充足率", "滞后资产增长率", "滞后权益资产比", "滞后现金资产比", "滞后CET1比率", "滞后股利权益比", "滞后市净率", "滞后资产收益率", "滞后贷款资产比"), title = "二项Logit回归结果(控制银行个体与时间固定效应)", notes = "注:模型控制了银行个体固定效应与年度固定效应", omit.stat = c("ser", "f"))
内容的提问来源于stack exchange,提问作者MathisVS
相关产品推荐
相关产品推荐

