diff --git a/.all-contributorsrc b/.all-contributorsrc index d9e9f60e..6f42de75 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -59,7 +59,7 @@ "login": "s3alfisc", "name": "Alexander Fischer", "avatar_url": "https://avatars.githubusercontent.com/u/19531450?v=4", - "profile": "https://s3alfisc.github.io/blog/", + "profile": "https://s3alfisc.github.io/", "contributions": [ "code", "infra" @@ -82,5 +82,5 @@ "repoType": "github", "repoHost": "https://github.com", "projectName": "pyfixest", - "projectOwner": "s3alfisc" + "projectOwner": "py-econometrics" } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3d6ce40d..362326cc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,6 @@ Thanks for taking the time to contribute! We appreciate all contributions, from reporting bugs to implementing new features. -Please refer to the [contributing section](https://https://s3alfisc.github.io/pyfixest/contributing.html) of our documentation to get started. +Please refer to the [contributing section](https://https://py-econometrics.github.io/pyfixest/contributing.html) of our documentation to get started. We look forward to your contributions! diff --git a/docs/_quarto.yml b/docs/_quarto.yml index 9c58b4db..9e4b2cb2 100644 --- a/docs/_quarto.yml +++ b/docs/_quarto.yml @@ -11,11 +11,11 @@ website: favicon: "figures/pyfixest-logo.png" #page-footer: # center: | - # Developed by [Alexander Fischer](https://github.com/s3alfisc) and [Styfen SchΓ€r](https://github.com/styfenschaer) + # Developed by [Alexander Fischer](https://github.com/py-econometrics) and [Styfen SchΓ€r](https://github.com/styfenschaer) search: true right: - icon: github - href: https://github.com/s3alfisc/pyfixest/ + href: https://github.com/py-econometrics/pyfixest/ left: - text: "PyFixest" file: pyfixest.md diff --git a/docs/contributing.qmd b/docs/contributing.qmd index 65295a15..68161a79 100644 --- a/docs/contributing.qmd +++ b/docs/contributing.qmd @@ -13,7 +13,7 @@ either Python or econometrics will help, but you really don't need to be a `nump ## Reporting bugs -We use [GitHub issues](https://github.com/s3alfisc/pyfixest/issues) to track bugs. You can report a bug by opening a new issue or contribute to an existing issue if +We use [GitHub issues](https://github.com/py-econometrics/pyfixest/issues) to track bugs. You can report a bug by opening a new issue or contribute to an existing issue if related to the bug you are reporting. Before creating a bug report, please check that your bug has not already been reported, and that your bug exists on the latest version of pyfixest. If you find a closed issue that seems to report the same bug you're experiencing, open a new issue and include a link to the original issue in your issue description. @@ -22,7 +22,7 @@ Please include as many details as possible in your bug report. The information h ## Suggesting enhancements -We use [GitHub issues](https://github.com/s3alfisc/pyfixest/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) to track bugs and suggested enhancements. You can suggest an enhancement by opening a new feature request. Before creating an enhancement suggestion, please check that a similar issue does not already exist. +We use [GitHub issues](https://github.com/py-econometrics/pyfixest/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) to track bugs and suggested enhancements. You can suggest an enhancement by opening a new feature request. Before creating an enhancement suggestion, please check that a similar issue does not already exist. Please describe the behavior you want and why, and provide examples of how pyfixest would be used if your feature were added. diff --git a/docs/difference-in-differences.ipynb b/docs/difference-in-differences.ipynb index 7fe07542..8537d942 100644 --- a/docs/difference-in-differences.ipynb +++ b/docs/difference-in-differences.ipynb @@ -233,7 +233,7 @@ } ], "source": [ - "url = \"https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv\"\n", + "url = \"https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv\"\n", "df_het = pd.read_csv(url)\n", "df_het.head()" ] diff --git a/docs/news.qmd b/docs/news.qmd index ae92abd3..01cdedee 100644 --- a/docs/news.qmd +++ b/docs/news.qmd @@ -216,27 +216,27 @@ from pyfixest.did.estimation import did2s, lpdid, event_study ### Enhancements: -- Good performance improvements for singleton fixed effects detection. Thanks to [@styfenschaer](https://github.com/styfenschaer) for the PR! See [#229](https://github.com/s3alfisc/pyfixest/issues/229). +- Good performance improvements for singleton fixed effects detection. Thanks to [@styfenschaer](https://github.com/styfenschaer) for the PR! See [#229](https://github.com/py-econometrics/pyfixest/issues/229). - Uses the [r2u project](https://github.com/eddelbuettel/r2u) for installing R and R packages on github actions, with great performance improvements. -- Allows to pass `polars` data frames to `feols()`, `fepois()` and `predict()`. [#232](https://github.com/s3alfisc/pyfixest/issues/232). Thanks to [@vincentarelbundock](https://github.com/s3alfisc/pyfixest/issues/232) for the suggestion! +- Allows to pass `polars` data frames to `feols()`, `fepois()` and `predict()`. [#232](https://github.com/py-econometrics/pyfixest/issues/232). Thanks to [@vincentarelbundock](https://github.com/py-econometrics/pyfixest/issues/232) for the suggestion! ### Bug Fixes: -- Missing variables in features were not always handled correctly in `predict()` with `newdata` not `None` in the presence of missing data, which would lead to an error. See [#246](https://github.com/s3alfisc/pyfixest/issues/246) for details. -- Categorical variables were not always handled correctly in `predict()` with `newdata` not `None`, because the number of fixed effects levels in `newdata` might be smaller than in `data`. In consequence, some levels were not found, which lead to an error. See [#245](https://github.com/s3alfisc/pyfixest/issues/245) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! -- Multicollinearity checks for over-identified IV was not implemented correctly, which lead to a dimension error. See [#236](https://github.com/s3alfisc/pyfixest/issues/236) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! -- The number of degrees of freedom `k` was computed incorrectly if columns were dropped from the design matrix `X` in the presence of multicollinearity. See [#235](https://github.com/s3alfisc/pyfixest/issues/235) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! -- If all variables were dropped due to multicollinearity, an unclear and imprecise error message was produced. See [#228](https://github.com/s3alfisc/pyfixest/issues/228) for details. Thanks to [@manferdinig](https://github.com/manferdinig) for the pointer! -- If selection `fixef_rm = 'singleton'`, `feols()` and `fepois()` would fail, which has been fixed. [#192](https://github.com/s3alfisc/pyfixest/issues/192) +- Missing variables in features were not always handled correctly in `predict()` with `newdata` not `None` in the presence of missing data, which would lead to an error. See [#246](https://github.com/py-econometrics/pyfixest/issues/246) for details. +- Categorical variables were not always handled correctly in `predict()` with `newdata` not `None`, because the number of fixed effects levels in `newdata` might be smaller than in `data`. In consequence, some levels were not found, which lead to an error. See [#245](https://github.com/py-econometrics/pyfixest/issues/245) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! +- Multicollinearity checks for over-identified IV was not implemented correctly, which lead to a dimension error. See [#236](https://github.com/py-econometrics/pyfixest/issues/236) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! +- The number of degrees of freedom `k` was computed incorrectly if columns were dropped from the design matrix `X` in the presence of multicollinearity. See [#235](https://github.com/py-econometrics/pyfixest/issues/235) for details. Thanks to [@jiafengkevinchen](https://github.com/jiafengkevinchen) for the pointer! +- If all variables were dropped due to multicollinearity, an unclear and imprecise error message was produced. See [#228](https://github.com/py-econometrics/pyfixest/issues/228) for details. Thanks to [@manferdinig](https://github.com/manferdinig) for the pointer! +- If selection `fixef_rm = 'singleton'`, `feols()` and `fepois()` would fail, which has been fixed. [#192](https://github.com/py-econometrics/pyfixest/issues/192) ### Dependency Requirements -- For now, sets `formulaic` versions to be `0.6.6` or lower as version `1.0.0` seems to have introduced a problem with the `i()` operator, See [#244](https://github.com/s3alfisc/pyfixest/issues/244) for details. +- For now, sets `formulaic` versions to be `0.6.6` or lower as version `1.0.0` seems to have introduced a problem with the `i()` operator, See [#244](https://github.com/py-econometrics/pyfixest/issues/244) for details. - Drops dependency on `pyhdfe`. ## PyFixest 0.11.1 -- Fixes some bugs around the computation of R-squared values (see [issue #103](https://github.com/s3alfisc/pyfixest/issues/103)). +- Fixes some bugs around the computation of R-squared values (see [issue #103](https://github.com/py-econometrics/pyfixest/issues/103)). - Reports R-squared values again when calling `.summary()`. ## PyFixest 0.11.0 @@ -253,7 +253,7 @@ Fixes bugs with i(var1, var2) syntax introduced with PyFixest 0.10.10. ## PyFixest 0.10.10 -Fixes a bug with variable interactions via `i(var)` syntax. See [issue #221](https://github.com/s3alfisc/pyfixest/issues/211). +Fixes a bug with variable interactions via `i(var)` syntax. See [issue #221](https://github.com/py-econometrics/pyfixest/issues/211). ## PyFixest 0.10.9 @@ -275,7 +275,7 @@ from pyfixest.visualize import iplot import pandas as pd import numpy as np -df_het = pd.read_csv("https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv") +df_het = pd.read_csv("https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv") fit = did2s( df_het, @@ -345,7 +345,7 @@ pf.etable([fit_twfe, fit_did2s]) ## PyFixest 0.10.5 -- Fixes a big in IV estimation that would trigger an error. See [here](https://github.com/s3alfisc/pyfixest/issues/197) for details. Thanks to @aeturrell for reporting! +- Fixes a big in IV estimation that would trigger an error. See [here](https://github.com/py-econometrics/pyfixest/issues/197) for details. Thanks to @aeturrell for reporting! ## PyFixest 0.10.4 @@ -420,7 +420,7 @@ np.allclose(res_pyhdfe , res_pyfixest) ## PyFixest 0.9.10 -- Fixes a big in the `wildboottest` method (see [#158](https://github.com/s3alfisc/pyfixest/issues/158)). +- Fixes a big in the `wildboottest` method (see [#158](https://github.com/py-econometrics/pyfixest/issues/158)). - Allows to run a wild bootstrap after fixed effect estimation. ## PyFixest 0.9.9 @@ -438,7 +438,7 @@ Fixes a bug in `predict()` produced when multicollinear variables are dropped. ## PyFixest 0.9.6 -Improved Collinearity handling. See [#145](https://github.com/s3alfisc/pyfixest/issues/145) +Improved Collinearity handling. See [#145](https://github.com/py-econometrics/pyfixest/issues/145) ## PyFixest 0.9.5 diff --git a/docs/pyfixest.md b/docs/pyfixest.md index 22f51c5d..15a3bb99 100644 --- a/docs/pyfixest.md +++ b/docs/pyfixest.md @@ -7,13 +7,13 @@ Version](https://img.shields.io/pypi/v/pyfixest.svg)](https://pypi.org/project/p ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyfixest.svg) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pyfixest.svg) -[![image](https://codecov.io/gh/s3alfisc/pyfixest/branch/master/graph/badge.svg)](https://codecov.io/gh/s3alfisc/pyfixest) [![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) +[![image](https://codecov.io/gh/py-econometrics/pyfixest/branch/master/graph/badge.svg)](https://codecov.io/gh/py-econometrics/pyfixest) [![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) `PyFixest` is a Python implementation of the formidable [fixest](https://github.com/lrberge/fixest) package for fast high-dimensional fixed effects regression. -The package aims to mimic `fixest` syntax and functionality as closely as Python allows: if you know `fixest` well, the goal is that you won't have to read the docs to get started! In particular, this means that all of `fixest's` defaults are mirrored by `PyFixest` - currently with only [one small exception](https://github.com/s3alfisc/pyfixest/issues/260). +The package aims to mimic `fixest` syntax and functionality as closely as Python allows: if you know `fixest` well, the goal is that you won't have to read the docs to get started! In particular, this means that all of `fixest's` defaults are mirrored by `PyFixest` - currently with only [one small exception](https://github.com/py-econometrics/pyfixest/issues/260). -Nevertheless, for a quick introduction, you can take a look at the [quickstart](https://s3alfisc.github.io/pyfixest/quickstart.html) or the regression chapter of [Arthur Turrell's](https://github.com/aeturrell) book on [Coding for Economists](https://aeturrell.github.io/coding-for-economists/econmt-regression.html#imports). +Nevertheless, for a quick introduction, you can take a look at the [quickstart](https://py-econometrics.github.io/pyfixest/quickstart.html) or the regression chapter of [Arthur Turrell's](https://github.com/aeturrell) book on [Coding for Economists](https://aeturrell.github.io/coding-for-economists/econmt-regression.html#imports). ## Features @@ -22,7 +22,7 @@ Nevertheless, for a quick introduction, you can take a look at the [quickstart]( - Multiple Estimation Syntax - Several **Robust** and **Cluster Robust Variance-Covariance** Estimators - **Wild Cluster Bootstrap** Inference (via - [wildboottest](https://github.com/s3alfisc/wildboottest)) + [wildboottest](https://github.com/py-econometrics/wildboottest)) - **Difference-in-Differences** Estimators: - The canonical Two-Way Fixed Effects Estimator - [Gardner's two-stage @@ -45,7 +45,7 @@ pip install -U pyfixest or the development version from github by running ``` py -pip install git+https://github.com/s3alfisc/pyfixest.git +pip install git+https://github.com/py-econometrics/pyfixest.git ``` ## Benchmarks @@ -209,13 +209,13 @@ Thanks goes to these wonderful people: - - - - - - - + + + + + + +
styfenschaer
styfenschaer

πŸ’»
Niall Keleher
Niall Keleher

πŸš‡ πŸ’»
Wenzhi Ding
Wenzhi Ding

πŸ’»
Apoorva Lal
Apoorva Lal

πŸ’» πŸ›
Juan Orduz
Juan Orduz

πŸš‡ πŸ’»
Alexander Fischer
Alexander Fischer

πŸ’» πŸš‡
aeturrell
aeturrell

βœ… πŸ“– πŸ“£
styfenschaer
styfenschaer

πŸ’»
Niall Keleher
Niall Keleher

πŸš‡ πŸ’»
Wenzhi Ding
Wenzhi Ding

πŸ’»
Apoorva Lal
Apoorva Lal

πŸ’» πŸ›
Juan Orduz
Juan Orduz

πŸš‡ πŸ’»
Alexander Fischer
Alexander Fischer

πŸ’» πŸš‡
aeturrell
aeturrell

βœ… πŸ“– πŸ“£
diff --git a/docs/quickstart.ipynb b/docs/quickstart.ipynb index e79d0159..33b6fd92 100644 --- a/docs/quickstart.ipynb +++ b/docs/quickstart.ipynb @@ -730,7 +730,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It is also possible to run a wild (cluster) bootstrap after estimation (via the [wildboottest module](https://github.com/s3alfisc/wildboottest), see [MacKinnon, J. G., Nielsen, M. Ø., & Webb, M. D. (2023). Fast and reliable jackknife and bootstrap methods for cluster-robust inference. Journal of Applied Econometrics, 38(5), 671–694.](http://qed.econ.queensu.ca/pub/faculty/mackinnon/working-papers/qed_wp_1485.pdf)):" + "It is also possible to run a wild (cluster) bootstrap after estimation (via the [wildboottest module](https://github.com/py-econometrics/wildboottest), see [MacKinnon, J. G., Nielsen, M. Ø., & Webb, M. D. (2023). Fast and reliable jackknife and bootstrap methods for cluster-robust inference. Journal of Applied Econometrics, 38(5), 671–694.](http://qed.econ.queensu.ca/pub/faculty/mackinnon/working-papers/qed_wp_1485.pdf)):" ] }, { @@ -2400,7 +2400,7 @@ } ], "source": [ - "url = \"https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv\"\n", + "url = \"https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv\"\n", "df_het = pd.read_csv(url)\n", "\n", "df_het.head()" @@ -2578,7 +2578,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For more details see the vignette on [Difference-in-Differences Estimation](https://s3alfisc.github.io/pyfixest/difference-in-differences.html)." + "For more details see the vignette on [Difference-in-Differences Estimation](https://py-econometrics.github.io/pyfixest/difference-in-differences.html)." ] } ], diff --git a/pyfixest/did/estimation.py b/pyfixest/did/estimation.py index d1386f28..6b2ae340 100644 --- a/pyfixest/did/estimation.py +++ b/pyfixest/did/estimation.py @@ -59,7 +59,7 @@ def event_study( import pandas as pd from pyfixest.did.estimation import event_study - url = "https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv" + url = "https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv" df_het = pd.read_csv(url) fit_twfe = event_study( @@ -174,7 +174,7 @@ def did2s( import numpy as np from pyfixest.did.estimation import did2s - url = "https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv" + url = "https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv" df_het = pd.read_csv(url) df_het.head() ``` @@ -322,7 +322,7 @@ def lpdid( import pandas as pd from pyfixest.did.estimation import lpdid - url = "https://raw.githubusercontent.com/s3alfisc/pyfixest/master/pyfixest/did/data/df_het.csv" + url = "https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv" df_het = pd.read_csv(url) fit = lpdid( diff --git a/pyfixest/estimation/estimation.py b/pyfixest/estimation/estimation.py index 1801e241..edcf3246 100644 --- a/pyfixest/estimation/estimation.py +++ b/pyfixest/estimation/estimation.py @@ -163,7 +163,7 @@ class for multiple models specified via `fml`. The `ssc` argument specifies the small sample correction for inference. In general, `feols()` uses all of `fixest::feols()` defaults, but sets the `fixef.K` argument to `"none"` whereas the `fixest::feols()` default is `"nested"`. - See here for more details: [link to github](https://github.com/s3alfisc/pyfixest/issues/260). + See here for more details: [link to github](https://github.com/py-econometrics/pyfixest/issues/260). `feols()` supports a range of multiple estimation syntax, i.e. you can estimate multiple models in one call. The following example estimates two models, one with diff --git a/pyproject.toml b/pyproject.toml index a7904768..d77a7403 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,8 +6,8 @@ description = "Fast high dimensional fixed effect estimation following syntax of authors = ["Alexander Fischer ", "Styfen SchΓ€r"] license = "MIT" readme = "README.md" -homepage = "https://s3alfisc.github.io/pyfixest/" -repository = "https://github.com/s3alfisc/pyfixest" +homepage = "https://py-econometrics.github.io/pyfixest/" +repository = "https://github.com/py-econometrics/pyfixest" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/tests/readme.md b/tests/readme.md index 342229b9..d03b7e00 100644 --- a/tests/readme.md +++ b/tests/readme.md @@ -1,5 +1,5 @@ ## Readme -- [Check How close `PyFixest` reproduces standard errors produced via `fixest` and `stats::glm`](https://github.com/s3alfisc/pyfixest/tree/master/tests/check-crv-diffs-fixest-pyfixest-glm.qmd) -- [Test `PyFixest` against `fixest`](https://github.com/s3alfisc/pyfixest/tree/master/tests/test_vs_fixest.py) +- [Check How close `PyFixest` reproduces standard errors produced via `fixest` and `stats::glm`](https://github.com/py-econometrics/pyfixest/tree/master/tests/check-crv-diffs-fixest-pyfixest-glm.qmd) +- [Test `PyFixest` against `fixest`](https://github.com/py-econometrics/pyfixest/tree/master/tests/test_vs_fixest.py) - `pandas` needs to be a version lower than `1.5.3` to be compatible with `rpy2`, else you'll run into [this error](https://stackoverflow.com/questions/76404811/attributeerror-dataframe-object-has-no-attribute-iteritems). The github actions for testing ensures that `pandas` is of a version lower than `1.5.3`. diff --git a/tests/test_predict_resid_fixef.py b/tests/test_predict_resid_fixef.py index 4a73f459..3ff0605b 100644 --- a/tests/test_predict_resid_fixef.py +++ b/tests/test_predict_resid_fixef.py @@ -162,7 +162,7 @@ def test_vs_fixest(data, fml): def test_predict_nas(): - # tests to fix #246: https://github.com/s3alfisc/pyfixest/issues/246 + # tests to fix #246: https://github.com/py-econometrics/pyfixest/issues/246 # NaNs in depvar, covar and fixed effects data = get_data()