Releases: raphaelvallat/pingouin
Pingouin v0.6.1
Summary
Minor release with one new feature, several bugfixes, and internal improvements.
New features
-
compute_effsize: addedeftype='cohen_dz'for paired-samples designs ($d_z = \bar{X-Y} / \sigma_{X-Y}$ );ynow also accepts a scalar for one-sample effect sizes (#508)
Improvements
compute_bootci: replaced custom bootstrap implementation withscipy.stats.bootstrap; default CI method upgraded to BCa; minimum SciPy bumped to 1.10 (#505)intraclass_corr: updated ICC type labels in output dataframe and documentation (#501)
Bugfixes
partial_corr/pcorr: fixed numerical instability when variables differ by many orders of magnitude (#510)partial_corr: raiseValueErroron identical covariates; warn on rank-deficient covariance matrix (#500)bayesfactor_pearson: fixed catastrophic float64 cancellation in one-sided tests for strongly negativer(#503)logistic_regression: fixed compatibility with scikit-learn >= 1.8 (#504)
Breaking changes
- Removed
plot_shiftfunction (#502)
What's Changed
- Fix broken links in doc; add uv install instructions; use uv in ruff workflow; do not trigger pytest/coverage workflow for doc-only PRs by @raphaelvallat in #496
- Use relative imports for intra-package dependencies by @raphaelvallat in #499
- fix(partial_corr): raise on identical covariates, warn on rank-defici⦠by @raphaelvallat in #500
- Update ICC types in output dataframe and documentation by @raphaelvallat in #501
- Fix catastrophic float64 cancellation in
bayesfactor_pearsonone-si⦠by @raphaelvallat in #503 - Fix test logistic regression by @raphaelvallat in #504
- Remove plot_shift function by @raphaelvallat in #502
- Add pre-commit hooks and consolidate dev dependencies by @raphaelvallat in #506
- Fix numerical instability in
partial_corrandpcorrwhen variables differ in magnitude by @raphaelvallat in #510 - Add Cohen's dz for paired samples and one-sample Cohen's d documentation by @raphaelvallat in #508
- Refactor
compute_bootcito usescipy.stats.bootstrapby @raphaelvallat in #505 - Release Pingouin 0.6.1 by @raphaelvallat in #511
Full Changelog: v0.6.0...v0.6.1
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