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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:30:51