prepare_regression_table
prepare_regression_table(
df,
dvs,
idvs,
feffects=None,
clusters=None,
*,
byvar=None,
format='gt',
)Build a regression table of one or more OLS models.
Supports fixed effects and clustered standard errors (via pyfixest), multiple models side by side, or a single model estimated separately across the levels of byvar.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| df | pd.DataFrame | Data frame containing the data. | required |
| dvs | Sequence[str] | str | Dependent variable name, or a list of names (one per model). | required |
| idvs | Sequence[str] | Sequence[Sequence[str]] | Independent variable names. For multiple models, a list of lists. | required |
| feffects | Sequence[str] | Sequence[Sequence[str]] | None | Fixed-effects variable names (per model when multiple models are given). | None |
| clusters | Sequence[str] | Sequence[Sequence[str]] | None | Cluster variable names for clustered standard errors (per model when multiple). | None |
| byvar | str | None | A categorical variable to estimate the single model separately by. Only valid with a single dependent variable. Levels with too few observations to estimate the model (n <= len(idvs) + 1) are skipped. |
None |
| format | Literal['gt', 'tex', 'md', 'df', 'html'] | Output format for the rendered etable: "gt" (Great Tables), "tex", "md", "df" (DataFrame) or "html". |
'gt' |
Returns
| Name | Type | Description |
|---|---|---|
| RegressionTableResult | models (fitted pyfixest models), etable (rendered table) and df (tidy coefficient frame). |
Examples
Basic — a pooled OLS regression of the cubic Kuznets curve:
import expdpy as ex
from expdpy.data import load_kuznets
df = load_kuznets()
ex.prepare_regression_table(
df,
dvs="gini_regional",
idvs=["log_gdp_pc", "log_gdp_pc_sq", "log_gdp_pc_cu"],
).etableAdvanced — absorb two-way (country + year) fixed effects with standard errors clustered by country, then read the tidy coefficient frame and fitted models:
result = ex.prepare_regression_table(
df,
dvs="gini_regional",
idvs=["log_gdp_pc", "log_gdp_pc_sq", "log_gdp_pc_cu"],
feffects=["country", "year"],
clusters=["country"],
)
result.etable
result.df
result.models