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

如何在fixest::etable()中转换系数及标准误差为100*(exp(β)-1)

如何在fixest::etable()中转换系数和标准误差为百分比变化形式

问题背景

在对数线性模型(如log(Ozone) ~ Wind + Temp | Month)中,fixest::etable()默认报告半弹性系数(β),但我们需要将其转换为X每变化1单位时Y的百分比变化,即计算100*(exp(β)-1),同时对标准误差进行对应的delta法调整。用户偏好etable的LaTeX输出,因此不考虑使用modelsummary。

之前尝试使用transform参数报错,因为etable并无该参数,正确的参数是针对系数和标准误差的专用转换参数。

最小可复现示例

est = fixest::feols(log(Ozone) ~ Wind + Temp | Month, data = airquality)
fixest::etable(est) # 默认输出半弹性系数

解决方案

方法1:使用etable内置的转换参数(推荐)

fixest::etable()提供了coef.transform和se.transform参数,分别用于转换系数和标准误差,完全满足需求:

fixest::etable(est,
               # 转换系数为百分比变化
               coef.transform = function(x) 100 * (exp(x) - 1),
               # 根据delta法调整标准误差:导数为100*exp(β),故标准误差=原SE*exp(β)*100
               se.transform = function(se, coef) se * exp(coef) * 100)

方法2:手动转换后传入etable

如果需要更灵活的自定义处理,可以先提取模型结果手动转换,再传入etable:

# 提取原模型的系数和标准误差
coef_orig = coef(est)
se_orig = sqrt(diag(vcov(est)))

# 执行转换
coef_trans = 100 * (exp(coef_orig) - 1)
se_trans = se_orig * exp(coef_orig) * 100

# 传入etable输出
fixest::etable(est, coef = coef_trans, se = se_trans)

注意事项

  • 两种方法都不会改变模型的其他统计量(如R²、F检验值、样本量等),仅调整系数和标准误差的显示
  • 确保你的fixest版本≥0.10.0(用户当前版本0.12.1完全支持这些参数)
  • 转换后的结果可直接用于LaTeX输出,保持etable原生的排版优势

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:43:12