Skip to content

Commit

Permalink
Release PyFixest 0.28 (#787)
Browse files Browse the repository at this point in the history
* add jax benchmark notebook

* prepare 0.28 release, add experimental status of feglm and demean_jax to docs

* update release notes

* update lock file
  • Loading branch information
s3alfisc authored Jan 13, 2025
1 parent f6ce66e commit 4a4bc1c
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 6 deletions.
7 changes: 6 additions & 1 deletion docs/changelog.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

## PyFixest 0.28.0 (In Development, can be installed from github)

- Adds a `pf.feglm()` function that supports GLMs with normal and binomial families (gaussian, logit, probit) without fixed effects. Fixed effects support is work in progress.
### New features and bug fixes
- Adds a function argument `context`, that allows to pass information / context to the `formulaic.Formulaic.get_model_matrix()` call that creates the model matrix.
- Fix a bug that caused reindexing of `LPDID._coeftable` when calling `LPDID.iplot()`. As a result, a second call of `LPDID.iplot()` would fail.
- Bumps the required `formulaic` version to `1.1.0` and fixes errors that arose when a) the ref argument was used for i() syntax, which led to a silent failure under formulaic >= 1.1.0, and fixef() / predict() with fixed effects, which led to a loud error.

### New experimental Features
- Adds a `pf.feglm()` function that supports GLMs with normal and binomial families (gaussian, logit, probit) without fixed effects. Fixed effects support is work in progress.
- Adds options to run the demean function via JAX. This might speed up the model fit if GPU is available.


## PyFixest 0.27.0

- Adds support for Gelbach's (JoLe 2016) Regression Decomposition method using a `decompose()` method for `Feols`.
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ fit.wald_test(R=R1, q=q1)

# Other GLMs (without fixed effects)

`PyFixest` supports a range of other GLMs without fixed effects (adding fixed effect support is WIP) via the `pf.feglm()` function.
`PyFixest` experimentally supports a range of other GLMs without fixed effects (adding fixed effect support is WIP) via the `pf.feglm()` function. Full support with all bells and whistles (in particular, fixed effects demeaning) is planned for PyFixest 0.29.

```{python}
data_glm = pf.get_data(N=100, seed = 170)
Expand Down
4 changes: 2 additions & 2 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion pyfixest/estimation/estimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ def feols(
demeaner_backend: DemeanerBackendOptions, optional
The backend to use for demeaning. Can be either "numba" or "jax". Defaults to "numba".
The "jax" backend is experimental. A full release is planned for pyfixest 0.29.
use_compression: bool
Whether to use sufficient statistics to losslessly fit the regression model
Expand Down Expand Up @@ -573,7 +574,9 @@ def fepois(
demeaner_backend: DemeanerBackendOptions, optional
The backend to use for demeaning. Can be either "numba" or "jax".
Defaults to "numba".
Defaults to "numba". The "jax" backend is experimental.
A full release is planned for pyfixest 0.29.
drop_intercept : bool, optional
Whether to drop the intercept from the model, by default False.
Expand Down Expand Up @@ -746,6 +749,7 @@ def feglm(
) -> Union[Feols, Fepois, FixestMulti]:
"""
Estimate GLM regression models (currently without fixed effects, this is work in progress).
This feature is currently experimental, full support will be released with pyfixest 0.29.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "pyfixest"
description = "Fast high dimensional fixed effect estimation following syntax of the fixest R package."
requires-python = ">= 3.9"
version = "0.27.0"
version = "0.28.0"
authors = [
{ name = "Alexander Fischer", email = "[email protected]" },
{ name = "Styfen Schär" },
Expand Down

0 comments on commit 4a4bc1c

Please sign in to comment.