-
Notifications
You must be signed in to change notification settings - Fork 71
Open
Description
Hi all,
In the last years, the time between the years has always been extremely productive for PyFixest / OSS development and I'd like to keep it that way! We have quite a few open for packages in the py-econometrics projects that can be tackled in less than one day of work. If you feel like coding a bit over the holidays, here's how you could help us:
maketables
maketablesintegration: we have recently releasedmaketables, which we hope can become for Python whatmodelsummaryis in the R ecosystem.maketablesspins out the regression table functionality from PyFixest. We now would like to clean up the PyFixest code base and make maketables an optional dependency for PyFixest.- We have started adding support for new packages, including duckreg, glum, CausalPy, doubleML, lifelines, and py marginaleffects. We want to support all relevant regression packages in the Python ecosystem. If you know one of these packages, adding support for them should be less than one morning of work!
PyFixest
There are good first issues to challenging features, some problems if you like coding in Rust, and some annoying housekeeping tasks for unit tests =)
Good first issues:
- Currently, we ignore white space in formula implementations - either we should allow it, or throw a helpful error message:
i()errors if the reference category contains some white space #991 - The demeaning function in the Fepois class ignores the
demeaner_backendargument set in theFepoisclass. We need to pass the arg along for users to run the Rust or JAX orcupybackend: fepois not honoring demean_backend? #852 - By default, all regressions run via pf should report F-Statistics: Automatically compute F-Stat in
pf.feols()calls #1025 - etable currently contains no information on the samples when using multiple estimation syntax with split, fsplit arguments: Cannot distinguish the samples in
etable()after usingsplitorfsplit#993
Mid level features:
- We want to add support for IV with multiple endogenous variables: IV with multiple endogenous variables #791
- We want to move the Frisch-Newton Solver for our QuantReg implementation to using sparse matrices to efficiently accommodate fixed effects: Sparse Implementation of the Frisch-Newton Quantile Regression Algorithm #963
- Add support for regression weights for the GLM classes.
- The Gelbach Decomposition class should support regression weights: Add support for Frequency Weights For Decomposition #1022
Challenging:
- We finally want to add support for fixed effects demeaning for GLMs: Add Support for Fixed Effects Demeaning for GLMs #872
- It would be very cool to add support for sensitivity analyses as in Cinelli et al.
- We have been experimenting with GPU support for the demeaning algo via
cupy- it looks like there is still some room for performance improvement: pyfixest is MUCH slower than (Stata + Julia) reghdfejl #1042 - The
FixestFormulaParsercould use a larger refactor. It works, but is not pretty. - Regression Weights support for event studies, in particular the fully interacted Sun-Abraham estimator: Allow event study methods to take aweights argument. #919
If you like Rust:
- Write Rust implementations of all numba-based functions (ritest, HAC SEs). The goal is to make the Rust BE the default and make numba an optional dependency.
If you like PyTorch:
- implement the LSMR solver in torch so that we can support GPU acceleration on Mac / M chips
Annoying and a lot of work:
- Make the dev env run with more up to date rpy2 versions.
Out of the box ideas
- Did you now that there is a
rdrobustimplementation in Python that does everything thatrdrobustcan do in R and Stata? One reason is that the package is very lightly documented. It would be great to write a more user-friendly front end plus to set up great documentation for the package and how to use it.
leostimpfle and damandhaliwal
Metadata
Metadata
Assignees
Labels
No labels