如何在Python版Stargazer中筛选显示指定自变量?
Python版Stargazer筛选显示指定自变量的实现方法
Python版Stargazer(非R版)目前没有内置的select_covariates方法,但可以通过以下两种方式实现仅显示部分自变量的需求:
方法一:直接修改Stargazer对象的协变量列表
初始化star_out后,手动筛选并保留目标变量,覆盖原有的协变量列表即可:
# 定义需要保留的自变量列表 target_vars = ['var1', 'var8'] # 筛选出目标变量(仅保留存在于原协变量列表中的目标变量) star_out.covariates = [var for var in star_out.covariates if var in target_vars] # 生成表格(根据需求选择渲染格式) star_out.render_html() # 生成HTML表格 # star_out.render_latex() # 生成LaTeX表格
注意:部分旧版本的Stargazer可能使用私有属性
_covariates,此时将代码中的star_out.covariates替换为star_out._covariates即可。
方法二:预处理模型,仅保留目标变量的结果
如果需要更精细的控制,可以先对每个模型提取目标变量的关键统计量,构造简化版模型后再传入Stargazer:
import statsmodels.api as sm def filter_model(model, keep_vars): # 提取目标变量的系数、p值、标准误等核心数据 filtered_params = model.params.loc[keep_vars] filtered_pvalues = model.pvalues.loc[keep_vars] filtered_bse = model.bse.loc[keep_vars] # 基于原模型创建简化版结果对象 filtered_result = sm.regression.linear_model.RegressionResultsWrapper(model) filtered_result.params = filtered_params filtered_result.pvalues = filtered_pvalues filtered_result.bse = filtered_bse # 若表格需要显示R²等统计量,需同步调整对应属性(可选) # filtered_result.rsquared = model.rsquared return filtered_result # 批量处理所有模型 filtered_models = [filter_model(m, ['var1', 'var8']) for m in models] # 使用处理后的模型初始化Stargazer star_out = Stargazer(filtered_models)
内容的提问来源于stack exchange,提问作者Arturo Sbr
相关产品推荐
相关产品推荐

