pystatistics 3.4.0__tar.gz → 3.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pystatistics-3.4.1/.release/UNRELEASED.md +23 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/CHANGELOG.md +15 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/PKG-INFO +10 -1
- {pystatistics-3.4.0 → pystatistics-3.4.1}/README.md +9 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pyproject.toml +1 -1
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/__init__.py +1 -1
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/pmm.py +32 -11
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_methods.py +29 -0
- pystatistics-3.4.0/.release/UNRELEASED.md +0 -29
- {pystatistics-3.4.0 → pystatistics-3.4.1}/.github/workflows/publish.yml +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/.github/workflows/trigger-docs-rebuild.yml +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/.gitignore +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/.release/CHECKLIST.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/.release/release.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/CLAUDE.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/LICENSE +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/benchmarks/mvnmle_bench.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/DESIGN.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/Forge.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/GPU_BACKEND_NOTES.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/Makefile +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/PYSTATSBIO_CONTEXT.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/ROADMAP.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/_static/custom.css +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/anova.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/conf.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/core.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/descriptive.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/gam.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/hypothesis.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/index.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/mixed.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/montecarlo.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/multinomial.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/multivariate.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/mvnmle.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/ordinal.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/regression.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/survival.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/docs/timeseries.rst +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/GPU_BACKEND_CONVENTION.md +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_contrasts.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_levene.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_posthoc.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_repeated.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/_ss.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/anova/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/capabilities.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/device.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/batched.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/cholesky.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/determinant.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/qr.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/solve.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/linalg/svd.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/optimization/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/optimization/convergence.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/precision.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/timing.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/tolerances.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/torch_interop.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/datasource.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/encoding.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/exceptions.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/protocols.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/result.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/_missing.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/_quantile_types.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/descriptive/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_basis.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_fit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_gam.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_gcv.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/_smooth.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/backends/_gpu_family.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/backends/gpu_pirls.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/gam/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/_design_factories.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/_p_adjust.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_chisq_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_fisher_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_ks_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_prop_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_t_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_var_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/_wilcox_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/hypothesis/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/_chain.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/_rng.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/_visit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/backends/_gpu_linreg.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/backends/_gpu_methods.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/datasets.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/_linreg.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/base.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/norm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/methods/registry.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/pooling.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mice/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_deviance.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_pirls.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_pls.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_random_effects.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/_satterthwaite.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mixed/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/_ci.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/_influence.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/montecarlo/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/_likelihood.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/_solver.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/backends/gpu_likelihood.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multinomial/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/_factor.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/_pca.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/_rotation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/multivariate/backends/gpu_pca.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_monotone.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/base.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/gpu_fp32.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/gpu_fp64.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_objectives/parameterizations.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/_utils.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/_em_batched.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/_em_batched_np.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/_em_batched_patterns.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/_em_batched_torch.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/_squarem.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/em.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/datasets.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/mcar_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/patterns.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/mvnmle/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/_likelihood.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/_solver.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/backends/gpu_likelihood.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/ordinal/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/py.typed +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/_formatting.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/_glm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/_linear.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/_nb_theta.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/backends/cpu_glm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/backends/gpu_glm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/families.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/regression/terms.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/_cox.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/_discrete.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/_km.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/_logrank.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/backends/cpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/backends/gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/solution.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/survival/solvers.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_acf.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_batch.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_factored.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_fit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_forecast.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_kalman.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_likelihood.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_arima_order.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_common.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_decomposition.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_differencing.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_ets_fit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_ets_forecast.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_ets_models.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_stationarity.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/_whittle.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/backends/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/backends/whittle_batch_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/timeseries/backends/whittle_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_contrasts.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_factorial.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_levene.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_oneway.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_posthoc.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/anova/test_repeated_measures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/benchmark_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/core/test_datasource.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/core/test_exceptions.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/core/test_result.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/core/test_torch_interop.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/core/test_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_cor.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_cov.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_describe.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_missing.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_moments.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_quantile.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/descriptive/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_ancova_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_ancova_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_bonferroni_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_bonferroni_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_eta_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_eta_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_levene_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_levene_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_oneway_balanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_oneway_balanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_oneway_unbalanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_oneway_unbalanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_rm_mixed_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_rm_mixed_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_rm_within_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_rm_within_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_tukey_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_tukey_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_twoway_balanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_twoway_balanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_twoway_unbalanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/anova_twoway_unbalanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/basic_100x3.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/basic_100x3_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/basic_100x3_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/collinear_almost.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/collinear_almost_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/collinear_almost_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_basic_100x5.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_basic_100x5_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_basic_100x5_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_constant_column.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_constant_column_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_constant_column_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_extreme_values.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_extreme_values_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_extreme_values_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_large_1000x10.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_large_1000x10_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_large_1000x10_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_columnwise.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_columnwise_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_columnwise_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_scattered.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_scattered_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_nan_scattered_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_negative_correlation.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_negative_correlation_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_negative_correlation_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_perfect_correlation.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_perfect_correlation_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_perfect_correlation_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_single_column.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_single_column_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_single_column_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_ties.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_ties_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/desc_ties_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/different_scales.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/different_scales_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/different_scales_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_anova_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_descriptive_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_glm_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_hypothesis_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_mixed_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_montecarlo_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/generate_survival_fixtures.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_balanced.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_balanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_balanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_basic.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_basic_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_basic_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_large.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_large_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_large_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_separated.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_separated_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_binomial_separated_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_basic.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_basic_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_basic_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_large.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_large_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_gaussian_large_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_basic.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_basic_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_basic_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_large_counts.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_large_counts_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_large_counts_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_zeros.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_zeros_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/glm_poisson_zeros_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/high_noise.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/high_noise_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/high_noise_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_2x2_yates_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_2x2_yates_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_3x3_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_3x3_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_gof_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_gof_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_gof_unequal_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_chisq_gof_unequal_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_2x2_less_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_2x2_less_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_2x2_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_2x2_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_3x3_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_fisher_3x3_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_ks_onesample_norm_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_ks_onesample_norm_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_ks_twosample_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_ks_twosample_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_prop_onesample_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_prop_onesample_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_prop_twosample_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_prop_twosample_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_onesample_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_onesample_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_paired_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_paired_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_pooled_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_pooled_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_welch_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_t_welch_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_var_basic_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_var_basic_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_wilcox_ranksum_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_wilcox_ranksum_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_wilcox_signed_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/htest_wilcox_signed_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/ill_conditioned.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/ill_conditioned_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/ill_conditioned_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/large_coeffs.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/large_coeffs_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/large_coeffs_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_90_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_90_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_normal_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_normal_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_skewed_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_ci_skewed_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_mean_balanced_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_mean_balanced_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_mean_ordinary_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_mean_ordinary_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_median_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_median_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_variance_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_boot_variance_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_greater_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_greater_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_not_significant_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_not_significant_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_significant_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mc_perm_significant_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/glmm_binomial.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/glmm_poisson.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/lmm_crossed.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/lmm_intercept.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/lmm_ml.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/lmm_no_effect.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/lmm_slope.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/mixed_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/mixed/mixed_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/near_square.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/near_square_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/near_square_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/no_intercept.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/no_intercept_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/no_intercept_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_anova_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_descriptive_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_glm_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_hypothesis_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_mixed_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_montecarlo_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_survival_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_r_validation.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/run_validation.sh +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/small_noise.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/small_noise_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/small_noise_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_breslow_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_breslow_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_single_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_single_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_ties_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_ties_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_two_cov_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_cox_two_cov_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_basic_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_basic_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_heavy_cens_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_heavy_cens_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_loglog_ci_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_loglog_ci_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_no_cens_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_no_cens_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_plain_ci_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_plain_ci_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_ties_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_km_ties_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_peto_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_peto_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_three_group_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_three_group_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_two_group_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/surv_lr_two_group_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/tall_skinny.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/tall_skinny_meta.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/tall_skinny_r_results.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/fixtures/validate_against_r.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/gam/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/gam/test_gam.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_chisq_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_design_split.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_fisher_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_ks_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_p_adjust.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_prop_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_t_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_var_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/hypothesis/test_wilcox_test.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/references/generate_mice_fixtures.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/references/mice_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/references/mice_validation_complete.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/references/mice_validation_data.csv +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_datasets.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_design.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_mice.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_pooling.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_rng.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mice/test_visit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_glmm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_lmm_crossed.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_lmm_intercept.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_lmm_nested.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_lmm_slope.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_pls.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_random_effects.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mixed/test_satterthwaite.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_batched_solver.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_boot_ci.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_bootstrap.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_influence.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_permutation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/montecarlo/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/multinomial/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/multinomial/test_multinom.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/multivariate/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/multivariate/test_multivariate.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/apple_em_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/apple_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/generate_em_fixtures.R +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_apple.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_complete.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_extreme.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_missvals.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_simple_mcar.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/little_mcar_summary.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/missvals_em_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/missvals_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/references/small_test_reference.json +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_em.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_mcar.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_mlest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_monotone.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_no_silent_fallback.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/mvnmle/test_squarem.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/ordinal/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/ordinal/test_ordinal.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/benchmark.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/benchmark.r +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_fit.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_gamma_nb.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_glm.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_glm_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_glm_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_module_split.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_stress_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_terms.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/regression/test_terms_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/conftest.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_coxph.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_discrete_time.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_gpu.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_kaplan_meier.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_logrank.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/survival/test_r_validation.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/test_code_quality.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/timeseries/__init__.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/timeseries/test_acf_stationarity.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/timeseries/test_arima.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/timeseries/test_decomposition.py +0 -0
- {pystatistics-3.4.0 → pystatistics-3.4.1}/tests/timeseries/test_ets.py +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Unreleased Changes
|
|
2
|
+
|
|
3
|
+
> This file tracks all changes since the last stable release.
|
|
4
|
+
> Updated by whoever makes a change, on whatever machine.
|
|
5
|
+
> Synced via git so all sessions (Mac, Linux, etc.) see the same state.
|
|
6
|
+
>
|
|
7
|
+
> When ready to release, run: `python .release/release.py --status`
|
|
8
|
+
> and follow the manual release flow in the script docstring.
|
|
9
|
+
|
|
10
|
+
## Changes
|
|
11
|
+
|
|
12
|
+
- CPU PMM (`mice` predictive mean matching) now scales to large datasets.
|
|
13
|
+
Replaced the dense `(n_mis, n_obs)` distance matrix in
|
|
14
|
+
`pystatistics/mice/methods/pmm.py:_match_donors` with a sorted-array windowed
|
|
15
|
+
k-NN (sort the observed predictions once, search a width-`2k` window around
|
|
16
|
+
each missing value's insertion point), matching R `mice`'s `matchindex`
|
|
17
|
+
approach. Cost drops from `O(n_mis·n_obs)` to `O(n_obs log n_obs + n_mis·k)`
|
|
18
|
+
in both time and memory. Measured CPU PMM (p=10-15, m=20, maxit=8): n=3000
|
|
19
|
+
25.4s -> 0.65s (~39x); n=20000 went from minutes/hours to ~6.5s. The window is
|
|
20
|
+
provably exact (the global k nearest neighbours lie in `[pos-k, pos+k-1]` of
|
|
21
|
+
the sorted array), so the donor pool is unchanged; imputations remain
|
|
22
|
+
distributionally identical and still match R. Exact per-seed outputs differ
|
|
23
|
+
from 3.4.0 because the donor ordering within the k-NN set changed.
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.4.1
|
|
4
|
+
|
|
5
|
+
Performance: CPU predictive mean matching now scales to large datasets.
|
|
6
|
+
|
|
7
|
+
- The CPU PMM donor search no longer builds a dense distance matrix between
|
|
8
|
+
every missing and every observed value. It sorts the observed predictions
|
|
9
|
+
once and searches a small window around each missing value (the same approach
|
|
10
|
+
R's `mice` uses), reducing both time and memory from quadratic in the number
|
|
11
|
+
of rows to roughly `n log n`. In practice CPU PMM at n=3000 dropped from ~25s
|
|
12
|
+
to under 1s, and large problems (n=20000) that were effectively unusable now
|
|
13
|
+
finish in seconds.
|
|
14
|
+
- Results are unchanged statistically — the donor pool and all imputation
|
|
15
|
+
distributions are identical, and validation against R's `mice` still passes.
|
|
16
|
+
Exact per-seed imputed values can differ slightly from 3.4.0.
|
|
17
|
+
|
|
3
18
|
## 3.4.0
|
|
4
19
|
|
|
5
20
|
GPU acceleration for MICE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pystatistics
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.1
|
|
4
4
|
Summary: GPU-accelerated statistical computing for Python
|
|
5
5
|
Project-URL: Homepage, https://sgcx.org/technology/pystatistics/
|
|
6
6
|
Project-URL: Documentation, https://sgcx.org/docs/pystatistics/
|
|
@@ -413,6 +413,15 @@ pip install pystatistics[dev]
|
|
|
413
413
|
|
|
414
414
|
## What's New
|
|
415
415
|
|
|
416
|
+
### 3.4.1 — Faster CPU predictive mean matching
|
|
417
|
+
|
|
418
|
+
- CPU PMM in `mice` now scales to large datasets: the donor search sorts the
|
|
419
|
+
observed predictions and scans a small window per missing value (as R's
|
|
420
|
+
`mice` does) instead of forming a full distance matrix, cutting time and
|
|
421
|
+
memory from quadratic to roughly `n log n`. Large problems that were
|
|
422
|
+
effectively unusable on the CPU now finish in seconds. Results are
|
|
423
|
+
statistically unchanged.
|
|
424
|
+
|
|
416
425
|
### 3.4.0 — GPU acceleration for MICE
|
|
417
426
|
|
|
418
427
|
- `mice(..., backend='gpu')` runs the imputation chains on a CUDA GPU, batching
|
|
@@ -366,6 +366,15 @@ pip install pystatistics[dev]
|
|
|
366
366
|
|
|
367
367
|
## What's New
|
|
368
368
|
|
|
369
|
+
### 3.4.1 — Faster CPU predictive mean matching
|
|
370
|
+
|
|
371
|
+
- CPU PMM in `mice` now scales to large datasets: the donor search sorts the
|
|
372
|
+
observed predictions and scans a small window per missing value (as R's
|
|
373
|
+
`mice` does) instead of forming a full distance matrix, cutting time and
|
|
374
|
+
memory from quadratic to roughly `n log n`. Large problems that were
|
|
375
|
+
effectively unusable on the CPU now finish in seconds. Results are
|
|
376
|
+
statistically unchanged.
|
|
377
|
+
|
|
369
378
|
### 3.4.0 — GPU acceleration for MICE
|
|
370
379
|
|
|
371
380
|
- `mice(..., backend='gpu')` runs the imputation chains on a CUDA GPU, batching
|
|
@@ -63,24 +63,45 @@ def _match_donors(
|
|
|
63
63
|
"""For each missing fitted value, pick one of its ``k`` nearest observed
|
|
64
64
|
fitted values at random; return the chosen observed-row indices.
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
Scales like R's ``mice`` matcher: sort the observed fitted values once, then
|
|
67
|
+
for each missing value search a small window around its insertion point
|
|
68
|
+
instead of forming the full ``(n_mis, n_obs)`` distance matrix. Cost is
|
|
69
|
+
``O(n_obs log n_obs + n_mis·k)`` time and ``O(n_mis·k)`` memory — the dense
|
|
70
|
+
version was ``O(n_mis·n_obs)`` in both, which blows up on large data.
|
|
71
|
+
|
|
72
|
+
The window is provably exact. In a sorted array the ``k`` nearest neighbours
|
|
73
|
+
of a query lie in the contiguous block ``[pos-k, pos+k-1]`` around the
|
|
74
|
+
insertion point ``pos``; a width-``2k`` window covers that block (shifted to
|
|
75
|
+
stay in range near the ends), so the windowed k-NN equals the global k-NN.
|
|
68
76
|
"""
|
|
69
77
|
n_obs = yhat_obs.shape[0]
|
|
78
|
+
n_mis = yhat_mis.shape[0]
|
|
70
79
|
k = min(donors, n_obs)
|
|
71
80
|
|
|
72
|
-
#
|
|
73
|
-
|
|
81
|
+
# Sort donor predictions once; keep the map back to original obs rows.
|
|
82
|
+
order = np.argsort(yhat_obs, kind="stable")
|
|
83
|
+
sorted_obs = yhat_obs[order]
|
|
74
84
|
|
|
75
|
-
#
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
# Insertion point of each missing prediction into the sorted donors.
|
|
86
|
+
pos = np.searchsorted(sorted_obs, yhat_mis)
|
|
87
|
+
|
|
88
|
+
# Window of distinct candidate donors guaranteed to contain the k nearest.
|
|
89
|
+
w = min(2 * k, n_obs)
|
|
90
|
+
start = np.clip(pos - k, 0, n_obs - w) # (n_mis,)
|
|
91
|
+
win = start[:, None] + np.arange(w)[None, :] # (n_mis, w) sorted-idx
|
|
92
|
+
dist = np.abs(sorted_obs[win] - yhat_mis[:, None]) # (n_mis, w)
|
|
93
|
+
|
|
94
|
+
# k smallest distances within the window (unordered within the k).
|
|
95
|
+
if k < w:
|
|
96
|
+
knn = np.argpartition(dist, k - 1, axis=1)[:, :k] # (n_mis, k) window cols
|
|
78
97
|
else:
|
|
79
|
-
|
|
98
|
+
knn = np.broadcast_to(np.arange(w), (n_mis, w))
|
|
80
99
|
|
|
81
|
-
|
|
82
|
-
pick = rng.integers(0, k, size=
|
|
83
|
-
|
|
100
|
+
rows = np.arange(n_mis)
|
|
101
|
+
pick = rng.integers(0, k, size=n_mis) # one donor per row
|
|
102
|
+
chosen_win_col = knn[rows, pick] # (n_mis,)
|
|
103
|
+
chosen_sorted = win[rows, chosen_win_col] # idx into sorted_obs
|
|
104
|
+
return order[chosen_sorted] # back to original rows
|
|
84
105
|
|
|
85
106
|
|
|
86
107
|
register(PMMMethod())
|
|
@@ -130,6 +130,35 @@ class TestPMM:
|
|
|
130
130
|
idx = _match_donors(yhat_mis, yhat_obs, donors=5, rng=rng)
|
|
131
131
|
assert np.all((idx >= 0) & (idx < 2))
|
|
132
132
|
|
|
133
|
+
def test_windowed_matcher_returns_true_knn(self):
|
|
134
|
+
# The chosen donor must always be within the true global k-NN computed
|
|
135
|
+
# by brute force — the windowed search must not miss nearer donors.
|
|
136
|
+
rng = make_rng(0)
|
|
137
|
+
obs_rng = np.random.default_rng(1)
|
|
138
|
+
yhat_obs = obs_rng.normal(size=300)
|
|
139
|
+
yhat_mis = obs_rng.normal(size=120)
|
|
140
|
+
k = 5
|
|
141
|
+
# Brute-force k nearest observed indices for each missing value.
|
|
142
|
+
full = np.abs(yhat_mis[:, None] - yhat_obs[None, :])
|
|
143
|
+
true_knn = set(
|
|
144
|
+
(i, j)
|
|
145
|
+
for i in range(len(yhat_mis))
|
|
146
|
+
for j in np.argpartition(full[i], k - 1)[:k]
|
|
147
|
+
)
|
|
148
|
+
chosen = _match_donors(yhat_mis, yhat_obs, donors=k, rng=rng)
|
|
149
|
+
for i, j in enumerate(chosen):
|
|
150
|
+
assert (i, int(j)) in true_knn
|
|
151
|
+
|
|
152
|
+
def test_matcher_donor_values_are_observed(self):
|
|
153
|
+
# End-to-end: the matched index points at a real observed value.
|
|
154
|
+
rng = make_rng(0)
|
|
155
|
+
obs_rng = np.random.default_rng(2)
|
|
156
|
+
y_obs = obs_rng.normal(size=200)
|
|
157
|
+
yhat_obs = obs_rng.normal(size=200)
|
|
158
|
+
yhat_mis = obs_rng.normal(size=80)
|
|
159
|
+
idx = _match_donors(yhat_mis, yhat_obs, donors=5, rng=rng)
|
|
160
|
+
assert np.all((idx >= 0) & (idx < 200))
|
|
161
|
+
|
|
133
162
|
def test_single_donor_picks_nearest(self):
|
|
134
163
|
# With donors=1, each missing gets the single closest observed value.
|
|
135
164
|
rng = make_rng(0)
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Unreleased Changes
|
|
2
|
-
|
|
3
|
-
> This file tracks all changes since the last stable release.
|
|
4
|
-
> Updated by whoever makes a change, on whatever machine.
|
|
5
|
-
> Synced via git so all sessions (Mac, Linux, etc.) see the same state.
|
|
6
|
-
>
|
|
7
|
-
> When ready to release, run: `python .release/release.py --status`
|
|
8
|
-
> and follow the manual release flow in the script docstring.
|
|
9
|
-
|
|
10
|
-
## Changes
|
|
11
|
-
|
|
12
|
-
- GPU backend for `mice` (CUDA). `mice(..., backend='gpu')` runs the `m`
|
|
13
|
-
imputation chains batched on the GPU as the leading tensor dimension: each
|
|
14
|
-
sweep step is a batched Bayesian linear solve (`torch.linalg.solve` + batched
|
|
15
|
-
Cholesky) and, for PMM, a batched nearest-neighbour donor search
|
|
16
|
-
(`(m, n_mis, n_obs)` distances → `topk`). `backend='auto'` selects CUDA when
|
|
17
|
-
available, else CPU (never MPS, matching the other modules). New `use_fp64`
|
|
18
|
-
argument runs the GPU path in double precision on CUDA (default FP32).
|
|
19
|
-
- GPU results match the CPU reference distributionally at the GPU/FP32 tolerance
|
|
20
|
-
tier (PMM donor copies are exact in FP64, exact-to-FP32 otherwise). Validated
|
|
21
|
-
in `tests/mice/test_gpu.py` against the CPU path rather than R directly.
|
|
22
|
-
- Measured PMM speedups vs the CPU backend on an RTX 5070 Ti: ~39× at n=1000
|
|
23
|
-
(p=8, m=20, maxit=8) and ~135× at n=3000 (p=10, m=20, maxit=8); the gain grows
|
|
24
|
-
with n because the donor search dominates and batches well on the GPU.
|
|
25
|
-
- Internal: the MICE backend contract now takes a `seed` (each backend spawns
|
|
26
|
-
its own RNG streams) instead of pre-spawned streams, so the CPU and GPU
|
|
27
|
-
backends share one `run()` signature. No public API change.
|
|
28
|
-
- MPS (Apple Silicon) is not yet validated for MICE; `backend='gpu'` raises a
|
|
29
|
-
clear error on MPS rather than running unverified. CUDA is supported.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/optimization/__init__.py
RENAMED
|
File without changes
|
{pystatistics-3.4.0 → pystatistics-3.4.1}/pystatistics/core/compute/optimization/convergence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|