Releases: py-econometrics/pyfixest
Releases · py-econometrics/pyfixest
v0.27.0
PyFixest 0.27.0
Highlights
New Features
- Adds support for Gelbach's (JoLe 2016) Regression Decomposition method by introducing a decompose() method for
Feols
. - Adds support for the multiple hypothesis correction by Westfall & Young via the
pf.wyoung()
function. - Input data frames to
pf.feols()
andpf.fepois()
are now converted topandas
via narwhals.
As a result, users can now provideduckdb
oribis
tables as inputs, as well aspandas
andpolars
data frames.polars
andpyarrow
are dropped as a dependencies.
Documentation
- Adds a vignette on multiple testing corrections: link
- Adds a vignette on Gelbach's regression decomposition: link
Bug Fixes
- Fixes a bug in the
wildboottest
method, which incorrectly used to run a regression on the demeaned dependend variable in case it was
applied after a fixed effects regression. My apologies for that! - Fixes a bug in the
ritest
method, which would use randomization inference coefficients instead of t-statistics whenever the "randomization-t" option would be selected, leading to incorrect results. This had consequences for the rwolf() function, which, in case of running ri-inference, would default to run the "randomization-t". My apolgies!
Full Changelog
- Release v0.27.0 @s3alfisc (#743)
- Tweak to decomposition notebook: add aggregation example @s3alfisc (#746)
- Update Decomposition Notebook @s3alfisc (#744)
- Improve Panelview Function @rafimikail (#736)
- Gelbach notebook @s3alfisc (#742)
- Multcomp Notebook @s3alfisc (#740)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#739)
- Adding westfall-young p-value adjustment for multiple tests @marcandre259 (#725)
- fix bug in ritest with randomization-t @s3alfisc (#730)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#729)
- Gelbach Decomposition @s3alfisc (#669)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#727)
- Update Examples in Docs @s3alfisc (#724)
- polars -> narwhals @s3alfisc (#714)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#722)
- docs: add RoyalTS as a contributor for doc @allcontributors (#723)
- fix docstring typos @RoyalTS (#721)
- Multiple Functions require lists of Feols/Feiv/Fepois object; reject FixestMulti #693 @IshwaraHegde97 (#715)
- docs: add IshwaraHegde97 as a contributor for code @allcontributors (#719)
_narwhals_to_pandas
@vincentarelbundock (#700)- docs: add MarcoGorelli as a contributor for review @allcontributors (#712)
- docs: add vincentarelbundock as a contributor for code @allcontributors (#711)
- Adjust CI: do not run extended tests for push to main @s3alfisc (#710)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#708)
- Drop test runtime dependency on did2s and IVDiag @s3alfisc (#705)
- remove duplicate error classes @leostimpfle (#706)
- Add RUFF rules @juanitorduz (#697)
- Add bugbear to pre-commit and some code improvements @juanitorduz (#694)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#696)
- Add the option to use analytical weights in 2-step diff-in-diff estimator @marcandre259 (#692)
- Adding literals to feols and fepois api's @marcandre259 (#680)
- Run all ci tests from ci-wfl @s3alfisc (#689)
v0.26.2
v0.25.4
Highlights
- Bugfix in fixef() method for WLS @s3alfisc (#682) that would lead to incorrect predictions with WLS when the
newdata
argument was employed. Thanks to @marcandre259 for the 🐛 report! feols()
andfepois()
obtain "split" and "fsplit" arguments, just as you might know them fromfixest::feols()
.- @leostimpfle has added the "iterated rectifier" check for detecting separation in Poisson models.
- We have added timing benchmarks against
linearmodels
(@marcandre259 ).
Changes
- Release V0254 @s3alfisc (#686)
- More predict tests @s3alfisc (#683)
- Bugfix in fixef() method for WLS @s3alfisc (#682)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#681)
- docs: add marcandre259 as a contributor for bug @allcontributors (#679)
- Discourse @s3alfisc (#677)
- docs: add kylebutts as a contributor for data @allcontributors (#673)
- Predict @leostimpfle (#670)
- Reopen iterative rectifier PR @leostimpfle (#660)
- Bug fix to display default table note in etable @dsliwka (#665)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#664)
- docs: add marcandre259 as a contributor for code @allcontributors (#662)
- Add and adjust benchmark notebook with linearmodels (absorbingls) + adding solver argument and integration tests to fepois and feols @marcandre259 (#661)
- Revert "Iterative rectifier" @s3alfisc (#659)
- Iterative rectifier @leostimpfle (#534)
- Fix bug that lead use of the "split" and "fsplit" arguments to not produce FixestMulti objects @s3alfisc (#658)
- Add split and fsplit arguments to feols and fepois @s3alfisc (#656)
- Adjusting Figsize of Outcome Plot @rafimikail (#654)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#653)
- mypy confit to pyproject @juanitorduz (#652)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#651)
- 0.25.0 Release @s3alfisc (#649)
v0.25.2
Highlights
- Environments are now managed via pixi. This should greatly facilitate new contributions!
- We have added a
pf.dtable()
function for producing summary statistics. - We now provide outcome plots via the
panelview()
function. - All difference-in-differences estimators can now be loaded via
pf.lpdid()
,pf.did2s()
, etc - We implement in-memory regression compression a la duckreg, via
polars
.
What's Changed
- Solve pre commit hook error by @s3alfisc in #600
- add publish to pypi wfl by @s3alfisc in #602
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #604
- Try to split and paralelize tests by @juanitorduz in #607
- Bump cryptography from 43.0.0 to 43.0.1 by @dependabot in #612
- test run example notebooks by @juanitorduz in #613
- Run more tests by @s3alfisc in #603
- Skip redundant tests to decrease CI runtime by @s3alfisc in #615
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #617
- Large Refactor to Clean Up
FixestMulti
class by @s3alfisc in #601 - only coverage for pyfixest folder by @s3alfisc in #620
- delete coverage files by @s3alfisc in #622
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #624
- Improve CI Run-Time: Test Smarter by @s3alfisc in #625
- install r and deps in test workflow by @s3alfisc in #627
- Add Support for (in-memory) Regression compression a la
duckreg
by @s3alfisc in #619 - Codecov by @s3alfisc in #628
- Update codecov.yml by @s3alfisc in #629
- update codecov yaml by @s3alfisc in #630
- Set flags for tests in different CI steps by @s3alfisc in #632
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #631
- Add dtables and make_tables functions. Small corrections in etable. Update of ipynb notebooks. by @dsliwka in #614
- Codecov by @s3alfisc in #633
- Update Regression Table Notebook by @s3alfisc in #634
- run codecov only for regulr wfl by @s3alfisc in #636
- Compact tables in dtable & bug fix for FE display in etable by @dsliwka in #637
- Move from
poetry
andjust
topixi
by @s3alfisc in #595 - update contributing.md by @s3alfisc in #638
- Minor docs restructuring by @s3alfisc in #639
- Update Documentation by @s3alfisc in #640
- update all notebooks by @s3alfisc in #641
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #642
- Implementing outcome plot for panelview function by @rafimikail in #581
- Update docs by @s3alfisc in #646
- Adjusting the figsize of panelview by @rafimikail in #650
Full Changelog: v0.24.2...v0.25.2
v0.24.2
Changes
- Fix Bug in Resid / Predict when Model is Emtpy @s3alfisc (#597)
- docs: add daltonm-bls as a contributor for bug @allcontributors (#598)
v0.24.1
Changes
- fix bug in etable # @s3alfisc (#594)
- Option to use Great Tables package for table output @dsliwka (#591)
- [pre-commit.ci] pre-commit autoupdate @pre-commit-ci (#592)
- overhaul mpl backend; fix coordinate flip argument @apoorvalal (#586)
- overhaul DID doc @apoorvalal (#589)
- Simultaneous CI option for iplot, coefplot @s3alfisc (#587)
- fix link formatting @s3alfisc (#585)
v0.24.0
Changes
- Layout improvements and new function arguments for etable, in particular for LaTex output: check out the etable notebook for examples and details @dsliwka (#583)
- Small extension to etable that allows to relabel variables @dsliwka (#577)
- Add
labels
argument tocoefplot()
andiplot()
@s3alfisc (#580) - jit compile multicollinearity detection #466 @s3alfisc (#579)
PyFixest 0.23.0
Hightlights
- PyFixest now includes Wald and F-Tests through the
wald_test()
method. - The new Wald Test feature enables us to provide basic IV diagnostics on the first stage, thanks to a significant overhaul of the
Feiv
class internals. - The
pf.etable()
function for regression output has been significantly enhanced for better aesthetics. - We've greatly improved the speed of the
predict()
method. - A new
panelview
function has been added to inspect staggered treatment rollouts in Difference-in-Differences studies. - We've introduced new arguments to
feols()
andfepois()
, including a "lean" argument to clear memory-heavy objects from Feols instances. - RI support has been added for the
rwolf
function, for experimenters who want to control the family-wise error rate of their tests. - An
update()
method has been implemented, which allows to update regression coefficients based on incoming data (useful for online learning setups). - Additionally, new vignettes on regression tables and using PyFixest with the marginaleffects package have been added.
Take a look at the quickstart notebook for a brief intro to all new features.
Breaking Changes
- We're adjusting the default small sample corrections to exactly match the
fixest
defaults, and a new vignette demonstrates equivalence between fitting models via R-fixest and py-fixest =) This change will lead to minor differences in computed standard errors and vcov's between versions 0.22.0 and 0.23.0.
New Contributors
- @Jayhyung made their first contribution in #514
- @asteves made their first contribution in #520
- @saidamir made their first contribution in #513
- @rafimikail made their first contribution in #528
- @greenguy33 made their first contribution in #527
- @b-knight made their first contribution in #551
What's Changed
- update readme files by @s3alfisc in #511
- type hints for vcov_utils by @s3alfisc in #512
- Add "ri" resampling method to Romano-Wolf procedure, by @Jayhyung in #514
- docs: add Jayhyung as a contributor for code by @allcontributors in #516
- Bump urllib3 from 2.2.1 to 2.2.2 by @dependabot in #517
- Fix Contributing document format issue by @asteves in #520
- docs: add asteves as a contributor for doc by @allcontributors in #521
- Add 1st stage regression in Feiv class by @Jayhyung in #525
- Added solver to feols and created new test file for it by @saidamir in #513
- docs: add saidamir as a contributor for code by @allcontributors in #530
- [Issue-400] Implementing dynamic alpha for coefplot and iplot by @rafimikail in #528
- docs: add rafimikail as a contributor for code by @allcontributors in #535
- Mention
self._vcov
in docs by @greenguy33 in #527 - docs: add greenguy33 as a contributor for code, and doc by @allcontributors in #532
- Bump certifi from 2024.6.2 to 2024.7.4 by @dependabot in #538
- Add Notebook on
Stargazer
andpymarginaleffects
support to the docs by @s3alfisc in #473 - fix typos by @s3alfisc in #540
- Add updates to wald_test method and unit testing files by @Jayhyung in #536
- Add
lean
function argument tofeols()
,fepois()
by @s3alfisc in #548 - Vcov by @s3alfisc in #529
- Bknight regex migration by @b-knight in #551
- add pure numpy predict function that speeds up ~40x by @apoorvalal in #553
- more fleshed-out panelview implementation by @apoorvalal in #552
- lsqr() for fixed effects solver by @greenguy33 in #546
- fix another all-contributors bug by @s3alfisc in #560
- docs: add b-knight as a contributor for code by @allcontributors in #561
- add statsmodels support for stargazer by @s3alfisc in #564
- Add (robust) F statistics of weak iv test and change 1st stage reg code by @Jayhyung in #563
- implement update method for coef vector by @apoorvalal in #567
- Remove Stargazer Dependency by @s3alfisc in #568
- update readme by @s3alfisc in #570
- Revert "update readme" by @s3alfisc in #572
- update quickstart for IV first stage, diagnostics, Wald tests by @s3alfisc in #569
- Update wls types tests by @s3alfisc in #562
- Rerun vignette by @s3alfisc in #575
- Release 0.23 by @s3alfisc in #576
Full Changelog: v0.22.2...v0.23.0
v0.22.2
v0.22.0
Bug Fixes 🐛
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)