pyfixest-cupy64-absorbed-regressors

Solid

pyfixest demeaner_backend="cupy64" (including its CPU fallback when cupy is absent) is NOT numerically identical to the default numba backend and does NOT drop fully-absorbed/collinear regressors the same way. Use when: (1) adding demeaner_backend="cupy64" to existing pf.feols/fepois calls changes the printed coefficient table, (2) a regression report suddenly gains rows with absurd estimates (e.g. coef 435.8, SE 7106) for controls absorbed by the fixed effects, (3) diffing outputs before/after a backend change, or (4) anything parses a pyfixest text report by line position.

Data & Documents 57 stars 0 forks Updated 5 days ago MIT

Install

View on GitHub

Quality Score: 90/100

Stars 20%
59
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# pyfixest cupy64 backend: absorbed regressors survive, reports change shape ## Problem Adding `demeaner_backend="cupy64"` to an existing `pf.feols()` call is treated as a pure performance switch, but it changes the output: regressors with zero within-FE identifying variation (fully absorbed by the fixed effects) that the default numba backend silently drops are RETAINED by the cupy64 path (also in its scipy/CPU fallback when cupy is not installed). They appear in the coefficient table as non-identified garbage (huge coefficient, huge SE). ## Context / Trigger Conditions Observed 2026-07-18 (Specialist Directors US, H5 re-baseline audit): adding the kwarg to 4 feols sites left the headline triple stable to 4 decimals (B1 diff 1.45e-6, SE diff 9.9e-6) but the text report grew from 366 to 390 lines — 24 new rows for absorbed controls (e.g. `event_x_lrisk = 435.8059`, SE `7106.3365`) under firm-year + director FE, where firm-year-level variables have no identifying variation. ## Solution 1. Treat a backend change as a POTENTIALLY OUTPUT-CHANGING edit: diff the report and expect schema changes, not byte equality. Verify the coefficients of interest at ~4-decimal precision instead. 2. Never interpret retained absorbed-regressor rows as estimates; check within-FE variation before reading nuisance coefficients. 3. Never parse pyfixest text reports by line position; anchor on the variable name of the coefficient you need. 4. When byte-stable reports matter (regression-...

Details

Author
kennethkhoocy
Repository
kennethkhoocy/applied-micro-skills
Created
6 days ago
Last Updated
5 days ago
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

pyfixest-grid-sharding

Diagnose and fix slow pyfixest regression GRIDS (many feols/fepois calls run sequentially) that stay slow despite demeaner_backend="cupy64" and an idle GPU. Use when: (1) a script looping dozens of pf.feols models on a 100k+ row panel takes ~1 min/model, (2) process inspection shows ~1-1.5 cores busy and nvidia-smi shows ~0% GPU utilization with a resident cupy context, (3) planning any worker prompt that will run a model grid (robustness variants x FE structures x domains). Root cause: per-model CPU-side single-threaded fixed costs (formulaic model-matrix build, interaction construction, singleton detection, cluster vcov) dominate wall time; GPU demeaning is a small slice. Fix: shard the model grid across OS processes and/or use pyfixest multiple-estimation syntax; mandate this IN THE WORKER PROMPT.

57 Updated 5 days ago
kennethkhoocy
AI & Automation Solid

latex-empirical-tables

Set up, format, fix, and clean up LaTeX regression and estimation tables in empirical economics or finance papers. Use when (a) creating a .tex, results.tex, main.tex, or preamble to display regression or estimation output from Python (pyfixest), Stata, or R — including any mention of estout, esttab, estauto, estwide, or table fragments; (b) formatting or repairing estout-style regression tables that overflow the right margin, have cramped or boxed notes, misaligned columns, or poor significance stars, or when asked to match a reference paper, make the note fill the table width, or choose among \estwide, \estauto, and landscape layouts; (c) diagnosing "Misplaced \omit" errors from \input-ed table fragments inside tabular environments. Covers \@@input, \estwide, \estauto, \estautoLT, \specialcell, \sym, minipage notes below tabulars, and the convert-and-verify workflow. Do NOT trigger for general LaTeX documents like beamer presentations, problem sets, letters, or CVs.

57 Updated 5 days ago
kennethkhoocy
Data & Documents Listed

pg-regression-mediation

Run or generate Pingouin code for linear regression, binary logistic regression, and mediation analysis with reproducible reporting.

0 Updated 6 days ago
Exekiel179