Releases: raphaelvallat/pingouin
Pingouin v0.6.0
This is a major release with several bugfixes and breaking changes, as well as critical updates to the build infrastructure, dependencies and test suite (see PR489)
Some of the key highlights are described below:
Bugfixes
- Disable one-sided Bayes Factor for T-tests, which were ill-defined (PR487)
- Update RBC calculation for Wilcoxon signed-rank test to be dependent on the alternative (PR457)
- Sphericity fix with very low eigenvalues (PR482)
- Fix divide-by-zero in internal _correl_pvalue when r == 1 (PR474
- Fix boxplot z-order in pingouin.plot_paired() (PR442)
API breaking changes
- Column names update (PR443): removed characters that restrict column access to the bracket format (df[“p_val”]) rather than dot method (df.p_val). This includes:
- Replaced dashes with underscores in column names (e.g., p-val –> p_val)
- Replaced parentheses with underscores in column names (e.g., mean(A) –> mean_A)
- Removed percent signs and brackets in column names (e.g., CI95% –> CI95, CI[97.5%] –> CI97.5)
Dependency requirements
This is the first version to be fully compatible with pandas 3.x and numpy 2.x (PR480).
This version requires Python >= 3.10 (tested on Python 3.10-3.14) and:
- NumPy >= 1.22.4
- SciPy >= 1.8.0
- Pandas >= 2.1.1
- Statsmodels >= 0.14.1
- Scikit-learn >= 1.2.2
Build infrastructure
Special thanks to @yann1cks for all the help here!
- Replaced black and flake8 with Ruff for unified linting and formatting (PR446)
- Adopted uv for faster dependency management in CI
- Extended CI matrix to Ubuntu, macOS and Windows across Python 3.10, 3.12 and 3.14, plus a separate matrix testing minimum through latest dependency versions (PR489)
What's Changed
- Fix boxplot z-order in
plot_pairedby @sbwiecko in #442 - Fix the Github Action CI for Python tests by @remrama in #445
- Update parametric.py - fix typo by @Petemir in #448
- Clean dependencies; add extras feature by @getzze in #451
- Pandas-friendly column names by @remrama in #443
- replaces black/flake8 formatting/linting with ruff and ensures numpy 2.0 compatibility by @remrama in #446
- Updated deprecated Seaborn function by @sjg2203 in #459
- Fix ruff + CI by @raphaelvallat in #460
- Update RBC calculation for Wilcoxon signed-rank test to be dependent on the alternative by @rhazn in #457
- Update doc of pairwise ttest: mixed analysis does not support two within-subject factors by @raphaelvallat in #461
- Fixes #453: _correl_pvalue does not divide by zero if r==1 by @AlexanderJCS in #474
- Upgrade supported python versions and support pandas 3.x by @yann1cks in #480
- Sphericity fix with very low eigenvalues by @raphaelvallat in #482
- Disable one-sided BF ttest by @raphaelvallat in #487
- Update build infra; better testing with minimal deps; ruff format by @yann1cks in #489
- Release v0.6.0 by @raphaelvallat in #491
- Fix sklearn version in test_prerelease by @raphaelvallat in #493
- Disable failing unit test for sklearn 1.8+; allow latest sklearn in CI by @raphaelvallat in #494
- Remove legacy file index.html by @raphaelvallat in #495
New Contributors
- @sbwiecko made their first contribution in #442
- @Petemir made their first contribution in #448
- @rhazn made their first contribution in #457
- @AlexanderJCS made their first contribution in #474
Full Changelog: v0.5.5...v0.6.0
v0.5.5
This is a minor release with several bugfixes, and major updates to the internal structure and sphinx documentation.
What's Changed
- Fix penalty for LogisticRegression by @raphaelvallat in #403
- Switch to modern python packaging by @getzze in #406
- Remove call to sns.despine by @raphaelvallat in #410
- Updated deprecated function by @sjg2203 in #414
- Add errstate(divide="ignore") in Bayes Factor calculation by @raphaelvallat in #415
- Remove inplace on single column by @raphaelvallat in #423
- Fix RBC sign in mwu by @raphaelvallat in #424
- Overhaul documentation (pydata_sphinx_theme) by @yann1cks in #432
- Release 0.5.5 by @raphaelvallat in #436
New Contributors
- @getzze made their first contribution in #406
- @sjg2203 made their first contribution in #414
- @yann1cks made their first contribution in #432
Full Changelog: v0.5.4...v0.5.5
v0.5.4
This is a minor release with several bugfixes and no new features. The new version is tested for Python 3.8-3.11 (but should also work with Python 3.12).
This release requires pandas≥1.5. We recommend scipy≥1.11.0.
What's Changed
- Minor typo fix in docs by @musicinmybrain in #329
- clip r values by @remrama in #342
- fix: deprecated parameter by @bitsnaps in #341
- hotfix: CI crash in test_power_chi2 [WIP] by @raphaelvallat in #344
- hotfix: plot_rm_corr crash with specific column names by @remrama in #351
- Add check for noncentrality parameters. by @agkphysics in #347
- Use pyupgrade by @raphaelvallat in #364
- fix groupby.mean for only numeric values by @jajcayn in #363
- Function test fails for np.mean by @gedeck in #380
- Fix in flatten_list for Python 3.12 by @raphaelvallat in #370
corr(): fixCI95%column name in returned dataframe by @kraktus in #382- Replace None in dataset to fix unit tests by @raphaelvallat in #388
- Remove outdated + bump pandas 1.5 by @raphaelvallat in #389
- Fix doctests by @raphaelvallat in #390
- Fix warnings by @raphaelvallat in #391
- Remove non-centrality check (solved in scipy 1.11) by @raphaelvallat in #392
- Use numeric_only=True in DataFrame.corr() and cov() by @raphaelvallat in #393
- Add numeric_only=True in remaining pandas functions by @raphaelvallat in #396
- Release 0.5.4 by @raphaelvallat in #397
New Contributors
- @musicinmybrain made their first contribution in #329
- @bitsnaps made their first contribution in #341
- @agkphysics made their first contribution in #347
- @jajcayn made their first contribution in #363
- @kraktus made their first contribution in #382
Full Changelog: v0.5.3...v0.5.4
v0.5.3
This is a minor release with a few bugfixes, several improvements and one new function/pandas.DataFrame method. Read the changelog at https://pingouin-stats.org/changelog.html
What's Changed
- Fix numerical stability issue in multivariate_normality by @gkanwar in #292
- Add new function for pairwise T-tests between columns of a dataframe (pingouin.ptests) by @raphaelvallat in #291
- Handle single-sample comparsion in pairwise_test by @George3d6 in #299
- Change TestRegression class test methods to fix victim flakiness by @blazyy in #303
- Add aesthetic flexibility to plot_rm_corr by @remrama in #312
- Update distribution.py by @ALL-SPACE-Rob in #310
- Plotting seaborn.FacetGrid compatibility by @remrama in #314
- Use scikit-learn>=1.1.2 by @raphaelvallat in #300
- Plot shift documentation PR by @turkalpmd in #320
- Fix pandas warning by @raphaelvallat in #323
- Deal with small sample size in pingouin.normality when using long-format by @raphaelvallat in #324
- Renamed 'r' with 'pointbiserialr' in convert_effsize by @raphaelvallat in #325
- Exact calculation of effect sizes in pairwise_tukey and pairwise_gameshowell by @raphaelvallat in #328
New Contributors
- @gkanwar made their first contribution in #292
- @George3d6 made their first contribution in #299
- @blazyy made their first contribution in #303
- @remrama made their first contribution in #312
- @ALL-SPACE-Rob made their first contribution in #310
- @turkalpmd made their first contribution in #320
v0.5.2
Bugfixes
a. The eta-squared (n2) effect size was not properly calculated in one-way and two-way repeated measures ANOVAs. Specifically, Pingouin followed the same behavior as JASP, i.e. the eta-squared was the same as the partial eta-squared. However, as explained in #251, this behavior is not valid. In one-way ANOVA design, the eta-squared should be equal to the generalized eta-squared. As of March 2022, this bug is also present in JASP. We have therefore updated the unit tests to use JAMOVI instead.
Please double check any effect sizes previously obtained with the pingouin.rm_anova function!
b. Fixed invalid resampling behavior for bivariate functions in pingouin.compute_bootci when x and y were not paired. #281
c. Fixed bug where confidence (previously ci) was ignored when calculating the bootstrapped confidence intervals in pingouin.plot_shift. #282
Enhancements
a. The pingouin.pairwise_ttests has been renamed to pingouin.pairwise_tests. Non-parametric tests are also supported in this function with the parametric=False argument, and thus the name "ttests" was misleading #209
b. Allow pingouin.bayesfactor_binom to take Beta alternative model. #252
c. Allow keyword arguments for logistic regression in pingouin.mediation_analysis. #245
d. Speed improvements for the Holm and FDR correction in pingouin.multicomp. #271
e. Speed improvements univariate functions in pingouin.compute_bootci (e.g. func="mean" is now vectorized).
f. Rename eta to eta_squared in pingouin.power_anova andpingouin.power_rm_anova to avoid any confusion. #280
g. Add support for DataMatrix objects. #286
h. Use black for code formatting.
v0.5.1
Pingouin 0.5.1
This is a minor release, with several bugfixes and improvements. This release is compatible with SciPy 1.8 and Pandas 1.4.
Bugfixes
- Added support for SciPy 1.8 and Pandas 1.4. #234
- Fixed bug where pingouin.rm_anova() and pingouin.mixed_anova() changed the dtypes of categorical columns in-place #224
Enhancements
- Faster implementation of pingouin.gzscore(), adding all options available in zscore: axis, ddof and nan_policy. Warning: this function is deprecated and will be removed in the next version of Pingouin (use scipy.stats.gzscore() instead). #210.
- Replace use of statsmodels’ studentized range distribution functions with more SciPy’s more accurate scipy.stats.studentized_range(). #229.
- Add support for optional keywords argument in the pingouin.homoscedasticity() function #218
- Add support for the Jarque-Bera test in pingouin.normality() #216.
Lastly, we have also deprecated the Gitter forum in favor of GitHub Discussions. Please use Discussions to ask questions, share ideas / tips and engage with the Pingouin community!
v0.5.0
This is a major release with several important bugfixes. We recommend all users to upgrade to this new version.
See the full changelog at: https://pingouin-stats.org/changelog.html#v0-5-0-october-2021
v0.4.0
This is a major release with an important upgrade of the dependencies (requires Python 3.7+ and SciPy 1.7+), several enhancements in existing function and a new function to test the equality of covariance matrices (pingouin.box_m). We recommend all users to upgrade to the latest version of Pingouin.
See the full changelog at: https://pingouin-stats.org/changelog.html#v0-4-0-august-2021
v0.3.12
This release fixes a critical error in pingouin.partial_corr: the number of covariates was not taken into account when calculating the degrees of freedom of the partial correlation, thus leading to incorrect results (except for the correlation coefficient which remained unaffected). For more details, please see #171.
For the full changelog, please see https://pingouin-stats.org/changelog.html
v0.3.11
This is a minor release with several bug fixes in pingouin.corr. The full changelog can be found here.