Pyfixest

Latest version: v0.28.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 11

0.22.2

Changes

- update justfile, contributing comments for R s3alfisc (509)
- fix doubleml test bug s3alfisc (508)

Maintenance

- VCOV: Refactoring of the VCOV Method s3alfisc (510)

0.21.1

Bug Fixes 🐛

- Fix bug in wildboottest method s3alfisc (506)

Changes

- Docs: Poetry contributing s3alfisc (507)
- docs: add sanskriti2005 as a contributor for infra allcontributors (503)
- Infra: added the release-drafter for automation of release notes sanskriti2005 (502)
- Fix broken link in contributing.md s3alfisc (499)
- docs: add leostimpfle as a contributor for bug allcontributors (495)
- Update justfile leostimpfle (494)
- docs: add baggiponte as a contributor for doc allcontributors (490)
- docs: improve installation section baggiponte (489)
- Bump tornado from 6.4 to 6.4.1 dependabot (487)
- docs: add leostimpfle as a contributor for code allcontributors (478)
- Feols: speed up the creation of interacted fixed effects via `fe1^fe2` syntax leostimpfle (475)
- rename resampling iterations to 'reps' in all methods s3alfisc (474)
- fix a lot of broken links throught the repo s3alfisc (472)
- Multiple readme fixes required after package was moved to py-econometrics project s3alfisc (450)

Infrastructure

- infrastructure: fix minor release drafter bugs s3alfisc (504)

0.21.0

Highlights

- We have a new and improved [quickstart section](https://py-econometrics.github.io/pyfixest/quickstart.html), thanks to work by juanitorduz 🎉
- We add a `ritest` module for randomization inference:

python
import numpy as np
import pyfixest as pf
rng = np.random.default_rng(2332)

data = pf.get_data(N = 100_000, seed = 1432)
fit = pf.feols("Y ~ f3 + X1 | f1", data=data)

fit.ritest(resampvar = "f3", reps = 1000)


Full Changelog

* Fix small bugs with weights by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/437
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/py-econometrics/pyfixest/pull/438
* Fix weights r2 bug by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/439
* Bump requests from 2.31.0 to 2.32.2 by dependabot in https://github.com/py-econometrics/pyfixest/pull/440
* Add more intro material quick start by juanitorduz in https://github.com/py-econometrics/pyfixest/pull/436
* Set default fig size per plot backend by juanitorduz in https://github.com/py-econometrics/pyfixest/pull/442
* Fix typos in quickstart by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/443
* Add support for randomization inference by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/431
* Ritest tweaks & bug fixes by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/445
* bump version to 0.21.0 / release version 0.21.0 by s3alfisc in https://github.com/py-econometrics/pyfixest/pull/449


**Full Changelog**: https://github.com/py-econometrics/pyfixest/compare/v0.20.0...v0.21.0

0.20.0

Summary

This version introduces `MyPy` type checks to the entire `pyfixest` codebase. Thanks to juanitorduz for nudging me to get started with this =). It also fixes a handful of smaller bugs.

New Contributors
* juanitorduz made their first contribution in https://github.com/s3alfisc/pyfixest/pull/373
* allcontributors made their first contribution in https://github.com/s3alfisc/pyfixest/pull/389
* pre-commit-ci made their first contribution in https://github.com/s3alfisc/pyfixest/pull/417

What's Changed
* update readme by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/368
* update readme by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/372
* improve pre-commit by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/373
* Add ruff checks on notebooks via nbqa by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/374
* Add colors to tests and cov report by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/376
* PNG -> SVG Badge by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/377
* Add pre-commit-ci by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/375
* Rename readme by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/385
* Rename readme to README in pyproject.toml by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/388
* docs: add NKeleher as a contributor for code, and infra by allcontributors in https://github.com/s3alfisc/pyfixest/pull/389
* docs: add styfenschaer as a contributor for code by allcontributors in https://github.com/s3alfisc/pyfixest/pull/386
* docs: add Wenzhi-Ding as a contributor for code by allcontributors in https://github.com/s3alfisc/pyfixest/pull/390
* docs: add apoorvalal as a contributor for code by allcontributors in https://github.com/s3alfisc/pyfixest/pull/391
* Fix contributors by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/392
* docs: add juanitorduz as a contributor for infra, and code by allcontributors in https://github.com/s3alfisc/pyfixest/pull/393
* Fix readme by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/394
* docs: add s3alfisc as a contributor for code, and infra by allcontributors in https://github.com/s3alfisc/pyfixest/pull/396
* Remove pre-commit from GitHub action by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/397
* `matplotlib` (via `seaborn`) support for `coefplot` and `iplot` by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/395
* Readme call contributions by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/399
* Add codecov config yml by juanitorduz in https://github.com/s3alfisc/pyfixest/pull/401
* docs: add apoorvalal as a contributor for bug by allcontributors in https://github.com/s3alfisc/pyfixest/pull/406
* Fix iplot bug by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/405
* docs: add aeturrell as a contributor for tutorial, doc, and promotion by allcontributors in https://github.com/s3alfisc/pyfixest/pull/408
* Pass `MyPy` Checks by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/402
* Mypy estimation by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/412
* Mypy ccv by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/413
* Mypy fepois by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/414
* Mypy feols by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/415
* Mypy fixest multi by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/416
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/s3alfisc/pyfixest/pull/417
* Pass MyPy checks for model_matrix and formula parser by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/419
* Version info + documentation updates by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/420
* Update docs by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/421
* Fix several small issues by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/423
* Pass MyPy Checks for the DiD module by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/424
* Fix bug with negative fixef 425 by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/426
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/s3alfisc/pyfixest/pull/432
* Bump jinja2 from 3.1.3 to 3.1.4 by dependabot in https://github.com/s3alfisc/pyfixest/pull/433
* PyFixest `0.20.0` by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/434


**Full Changelog**: https://github.com/s3alfisc/pyfixest/compare/v0.19.0...v0.20.0

0.19.0

- Fixes multiple smaller and larger performance regressions. The NYC-Taxi example regression now takes approximately 22 seconds to run (... if my laptop is connected to a power charger)!

python

%load_ext autoreload
%autoreload 2

import duckdb
import time
import numpy as np
import pyfixest as pf

%%
nyc = duckdb.sql(
'''
FROM 'C:/Users/alexa/Documents/nyc-taxi/**/*.parquet'
SELECT
tip_amount, trip_distance, passenger_count,
vendor_id, payment_type, dropoff_at,
dayofweek(dropoff_at) AS dofw
WHERE year = 2012 AND month <= 3
'''
).df()

convert dowf, vendor_id, payment_type to categorical
tic = time.time()
nyc["dofw"] = nyc["dofw"].astype(int)
nyc["vendor_id"] = nyc["vendor_id"].astype("category")
nyc["payment_type"] = nyc["payment_type"].astype("category")
print(f"""
I am convering columns of type 'objects' to 'categories' and 'int'data types outside
of the regression, hence I am cheating a bit. This saves {np.round(time.time() - tic)} seconds.
"""
)
I am convering columns of type 'objects' to 'categories' and 'int'data types outside
of the regression, hence I am cheating a bit. This saves 7.0 seconds.

run = True
if run:

mock regression for JIT compilation
fit = pf.feols(
fml = "tip_amount ~ trip_distance + passenger_count | vendor_id + payment_type + dofw",
data = nyc.iloc[1:10_000],
copy_data = False,
store_data = False
)

import time
tic = time.time()
fit = pf.feols(
fml = "tip_amount ~ trip_distance + passenger_count | vendor_id + payment_type + dofw",
data = nyc,
copy_data = False, saves a few seconds
store_data = False saves a few second
)
passed = time.time() - tic
print(f"Passed time is {np.round(passed)}.")
Passed time is 22.


- Three new function arguments for `feols()` and `fepois()`: `copy_data`, `store_data`, and `fixef_tol`.
- Support for frequency weights via the `weights_type` function argument.
{python}
import pyfixest as pf

data = pf.get_data(N = 10000, model = "Fepois")
df_weighted = data[["Y", "X1", "f1"]].groupby(["Y", "X1", "f1"]).size().reset_index().rename(columns={0: "count"})
df_weighted["id"] = list(range(df_weighted.shape[0]))

print("Dimension of the aggregated df:", df_weighted.shape)
print(df_weighted.head())

fit = pf.feols(
"Y ~ X1 | f1",
data = data
)
fit_weighted = pf.feols(
"Y ~ X1 | f1",
data = df_weighted,
weights = "count",
weights_type = "fweights"
)
pf.etable([fit, fit_weighted], coef_fmt = "b(se) \n (t) \n (p)")


- Bugfix: Wild Cluster Bootstrap Inference with Weights would compute unweighted standard errors. Sorry about that! WLS is not supported for the WCB.
- Adds support for CRV3 inference with weights.

What's Changed
* Performance Improvements by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/359
* Fweights by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/365
* release version 0.19.0 by s3alfisc in https://github.com/s3alfisc/pyfixest/pull/366


**Full Changelog**: https://github.com/s3alfisc/pyfixest/compare/v0.18.0...v0.19.0

0.18.0

- Large(ish) Refactoring of Interal Processing of Model Formulas, in particular `FixestFormulaParser` and `model_matrix_fixest`. As a results, the code should be cleaner and more robust.
- The `fml` argument of `model_matrix_fixest` is deprecated. Instead, `model_matrix_fixest` now asks for a `FixestFormula`, which is essentially a dictionary with information on model specifications like a first stage formula (if applicable), dependent variables, fixed effects, etc.
- Additionally, `model_matrix_fixest` now returns a dictionary instead of a tuple.
- Fixed effects reference setting via `i(var1, var2, ref)` syntax is back. The `i_ref1`, `i_ref2` function arguments are deprecated. It is again possible to run

python
import pyfixest as pf
data = pf.get_data()

fit1 = pf.feols("Y ~ i(f1, X2)", data=data)
fit2 = pf.feols("Y ~ i(f1, X2, ref = 1)", data=data)

fit1.coef()
Coefficient
Intercept -0.164200

Page 4 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.