process-improve 2.3.0__tar.gz → 2.3.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.
Files changed (329) hide show
  1. {process_improve-2.3.0 → process_improve-2.3.1}/PKG-INFO +1 -1
  2. {process_improve-2.3.0 → process_improve-2.3.1}/pyproject.toml +1 -1
  3. {process_improve-2.3.0 → process_improve-2.3.1}/pyproject.toml.orig +1 -1
  4. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/_robust_regression.py +40 -10
  5. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/tools.py +1 -0
  6. {process_improve-2.3.0 → process_improve-2.3.1}/README.md +0 -0
  7. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/__init__.py +0 -0
  8. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/_extras.py +0 -0
  9. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/_linalg.py +0 -0
  10. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/_random.py +0 -0
  11. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/_remote_data.py +0 -0
  12. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/_tool_registry.py +0 -0
  13. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/__init__.py +0 -0
  14. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_batch_monitor.py +0 -0
  15. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_batch_pca.py +0 -0
  16. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_batch_plots.py +0 -0
  17. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_batch_pls.py +0 -0
  18. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_common.py +0 -0
  19. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_gaps.py +0 -0
  20. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/_online.py +0 -0
  21. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/alignment_helpers.py +0 -0
  22. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/control.py +0 -0
  23. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/data_input.py +0 -0
  24. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/datasets.py +0 -0
  25. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/features.py +0 -0
  26. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/plotting.py +0 -0
  27. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/preprocessing.py +0 -0
  28. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/batch/tools.py +0 -0
  29. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/bivariate/__init__.py +0 -0
  30. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/bivariate/_elbow_peak.py +0 -0
  31. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/bivariate/methods.py +0 -0
  32. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/bivariate/tools.py +0 -0
  33. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/chemistry/__init__.py +0 -0
  34. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/chemistry/preprocessing.py +0 -0
  35. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/config.py +0 -0
  36. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/batch/batch-fake-data.csv +0 -0
  37. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/batch/details.txt +0 -0
  38. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/batch/dryer.csv +0 -0
  39. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/batch/nylon.csv +0 -0
  40. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/biscuit/NOTICE +0 -0
  41. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/biscuit/biscuit.csv +0 -0
  42. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/boilingpot.csv +0 -0
  43. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/corrosion.csv +0 -0
  44. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/golf.csv +0 -0
  45. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/pollutant.csv +0 -0
  46. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/NOTICE.md +0 -0
  47. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/anderson-whitcomb-2007.json +0 -0
  48. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/box-draper-2007.json +0 -0
  49. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/box-hunter-hunter-1978.json +0 -0
  50. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/davies-1956.json +0 -0
  51. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/derringer-suich-1980.json +0 -0
  52. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/efi-mooc-quizzes.json +0 -0
  53. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/fries-hunter-1980.json +0 -0
  54. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/goos-2025.json +0 -0
  55. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/goos-jones-2011.json +0 -0
  56. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/jones-nachtsheim-2011.json +0 -0
  57. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/jones-nachtsheim-2013.json +0 -0
  58. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/lenth-1989.json +0 -0
  59. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/mcmullen-jurica-2024.json +0 -0
  60. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/montgomery-2013.json +0 -0
  61. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/nair-ffd-tutorial-2004.json +0 -0
  62. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/nist-ehandbook-ch5.json +0 -0
  63. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/nunez-ares-et-al-2023.json +0 -0
  64. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/nunez-ares-goos-2019.json +0 -0
  65. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/nunez-ares-goos-2020.json +0 -0
  66. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/pid-book.json +0 -0
  67. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/schmidt-launsby-2000.json +0 -0
  68. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/topics.json +0 -0
  69. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/reference_catalogue/ullmann-doe-2012.json +0 -0
  70. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/solar.csv +0 -0
  71. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/experiments/test_doe1.csv +0 -0
  72. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/monitoring/batch-yield-and-purity.csv +0 -0
  73. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/monitoring/rubber-colour.csv +0 -0
  74. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/C.csv +0 -0
  75. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/Hotellings_T2_A3.csv +0 -0
  76. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/Hotellings_T2_A6.csv +0 -0
  77. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/LDPE.csv +0 -0
  78. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/P.csv +0 -0
  79. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/R.csv +0 -0
  80. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/T.csv +0 -0
  81. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/U.csv +0 -0
  82. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/W.csv +0 -0
  83. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/LDPE/Yhat_A6.csv +0 -0
  84. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/cheddar-cheese.csv +0 -0
  85. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/NOTICE +0 -0
  86. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/extraction1.csv +0 -0
  87. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/extraction2.csv +0 -0
  88. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/extraction3.csv +0 -0
  89. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/ftir1.csv +0 -0
  90. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/ftir2.csv +0 -0
  91. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/dtu-pectin/ftir3.csv +0 -0
  92. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/kamyr.csv +0 -0
  93. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/solvents.csv +0 -0
  94. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tablet-spectra.csv +0 -0
  95. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/SOURCE +0 -0
  96. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group1.csv +0 -0
  97. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group2.csv +0 -0
  98. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group3.csv +0 -0
  99. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group4.csv +0 -0
  100. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group5.csv +0 -0
  101. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/process_conditions.csv +0 -0
  102. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group1.csv +0 -0
  103. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group2.csv +0 -0
  104. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group3.csv +0 -0
  105. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group4.csv +0 -0
  106. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group5.csv +0 -0
  107. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/datasets/multivariate/tpls-pyphi/quality_indicators.csv +0 -0
  108. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/__init__.py +0 -0
  109. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/__init__.py +0 -0
  110. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/_shared.py +0 -0
  111. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/aliasing.py +0 -0
  112. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/box_cox.py +0 -0
  113. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/curvature.py +0 -0
  114. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/diagnostics.py +0 -0
  115. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/glm.py +0 -0
  116. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/lack_of_fit.py +0 -0
  117. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/lenth.py +0 -0
  118. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/mixture.py +0 -0
  119. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/model_selection.py +0 -0
  120. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/ols_extractors.py +0 -0
  121. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/prediction.py +0 -0
  122. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/split_plot.py +0 -0
  123. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_analyses/transforms.py +0 -0
  124. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_blocking.py +0 -0
  125. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_classical.py +0 -0
  126. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_desirability.py +0 -0
  127. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_expression_text.py +0 -0
  128. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_finite_fields.py +0 -0
  129. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_lm.py +0 -0
  130. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_moment_aberration.py +0 -0
  131. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_orthogonal_arrays.py +0 -0
  132. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_region_geometry.py +0 -0
  133. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_region_quadrature.py +0 -0
  134. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_rules.py +0 -0
  135. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/__init__.py +0 -0
  136. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/analyze_experiment.py +0 -0
  137. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/analyze_omars.py +0 -0
  138. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/augment_design.py +0 -0
  139. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/compare_designs.py +0 -0
  140. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/create_factorial_design.py +0 -0
  141. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/doe_knowledge.py +0 -0
  142. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/evaluate_design.py +0 -0
  143. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/fit_linear_model.py +0 -0
  144. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/generate_design.py +0 -0
  145. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/optimize_responses.py +0 -0
  146. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/recommend_next_step.py +0 -0
  147. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/recommend_strategy.py +0 -0
  148. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/run_sheet.py +0 -0
  149. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/search_design_catalog.py +0 -0
  150. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/simulate_design_performance.py +0 -0
  151. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/trade_off_table.py +0 -0
  152. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_tools/visualize_doe.py +0 -0
  153. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/_uniform_sampling.py +0 -0
  154. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/across_blocks.py +0 -0
  155. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/allocation.py +0 -0
  156. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/analysis.py +0 -0
  157. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/augment.py +0 -0
  158. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/benchmark.py +0 -0
  159. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/compare.py +0 -0
  160. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/crossed_arrays.py +0 -0
  161. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/datasets.py +0 -0
  162. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/design_catalog.py +0 -0
  163. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/design_measures.py +0 -0
  164. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs.py +0 -0
  165. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_constrained.py +0 -0
  166. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_covariates.py +0 -0
  167. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_factorial.py +0 -0
  168. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_mixture.py +0 -0
  169. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_mixture_constrained.py +0 -0
  170. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_mixture_process.py +0 -0
  171. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_omars.py +0 -0
  172. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_omars_ilp.py +0 -0
  173. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_optimal.py +0 -0
  174. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_response_surface.py +0 -0
  175. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_screening.py +0 -0
  176. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_space_filling.py +0 -0
  177. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_split_plot.py +0 -0
  178. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_supersaturated.py +0 -0
  179. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_three_level.py +0 -0
  180. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/designs_utils.py +0 -0
  181. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/evaluate.py +0 -0
  182. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/factor.py +0 -0
  183. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/gaussian_process.py +0 -0
  184. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/incomplete_blocks.py +0 -0
  185. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/__init__.py +0 -0
  186. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/api.py +0 -0
  187. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/data/concepts.yaml +0 -0
  188. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/data/decision_rules.yaml +0 -0
  189. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/data/design_types.yaml +0 -0
  190. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/data/diagnostics.yaml +0 -0
  191. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/engine.py +0 -0
  192. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/knowledge/models.py +0 -0
  193. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/layouts.py +0 -0
  194. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/least_squares_means.py +0 -0
  195. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/marginal_means.py +0 -0
  196. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/model_comparison.py +0 -0
  197. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/models.py +0 -0
  198. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/multistratum.py +0 -0
  199. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/next_step.py +0 -0
  200. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/omars.py +0 -0
  201. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/omars_trade_off.py +0 -0
  202. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/optimal.py +0 -0
  203. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/optimization.py +0 -0
  204. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/projections.py +0 -0
  205. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/pseudocomponents.py +0 -0
  206. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/random_effects.py +0 -0
  207. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/reference_catalogue.py +0 -0
  208. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/region.py +0 -0
  209. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/run_order.py +0 -0
  210. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/run_sheet.py +0 -0
  211. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/separating.py +0 -0
  212. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/sequential.py +0 -0
  213. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/simulate.py +0 -0
  214. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/simulations.py +0 -0
  215. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/strategy/__init__.py +0 -0
  216. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/strategy/budget.py +0 -0
  217. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/strategy/domain_templates.py +0 -0
  218. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/strategy/engine.py +0 -0
  219. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/strategy/models.py +0 -0
  220. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/structures.py +0 -0
  221. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/surface_checks.py +0 -0
  222. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/three_level_components.py +0 -0
  223. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/tools.py +0 -0
  224. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/trade_off.py +0 -0
  225. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/true_process.py +0 -0
  226. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/variance_dispersion.py +0 -0
  227. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/__init__.py +0 -0
  228. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/api.py +0 -0
  229. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/__init__.py +0 -0
  230. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/cube_plot.py +0 -0
  231. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/design_quality.py +0 -0
  232. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/diagnostics.py +0 -0
  233. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/effects.py +0 -0
  234. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/optimization_plots.py +0 -0
  235. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/registry.py +0 -0
  236. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/significance.py +0 -0
  237. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/square_plot.py +0 -0
  238. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/visualization/plots/surfaces.py +0 -0
  239. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/experiments/yates.py +0 -0
  240. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/interactions.py +0 -0
  241. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/mcp_server.py +0 -0
  242. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/monitoring/__init__.py +0 -0
  243. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/monitoring/control_charts.py +0 -0
  244. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/monitoring/evop.py +0 -0
  245. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/monitoring/metrics.py +0 -0
  246. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/monitoring/tools.py +0 -0
  247. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/__init__.py +0 -0
  248. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_adaptive.py +0 -0
  249. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_asca.py +0 -0
  250. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_base.py +0 -0
  251. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_categorical.py +0 -0
  252. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_common.py +0 -0
  253. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_cv_criteria.py +0 -0
  254. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_diagnostics.py +0 -0
  255. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_impute.py +0 -0
  256. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_limits.py +0 -0
  257. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_mbpca.py +0 -0
  258. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_mbpls.py +0 -0
  259. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_nipals.py +0 -0
  260. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_null.py +0 -0
  261. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_opls.py +0 -0
  262. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_optimal_inversion.py +0 -0
  263. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_pca.py +0 -0
  264. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_pca_pls.py +0 -0
  265. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_pls.py +0 -0
  266. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_plsda.py +0 -0
  267. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_preprocessing.py +0 -0
  268. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_prm.py +0 -0
  269. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_procrustes.py +0 -0
  270. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_projection.py +0 -0
  271. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_resampling.py +0 -0
  272. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_robust.py +0 -0
  273. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/_tpls.py +0 -0
  274. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/methods.py +0 -0
  275. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/plots.py +0 -0
  276. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/multivariate/tools.py +0 -0
  277. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/py.typed +0 -0
  278. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/recipes.py +0 -0
  279. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/__init__.py +0 -0
  280. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/_variance_components.py +0 -0
  281. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/box_tidwell.py +0 -0
  282. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/methods.py +0 -0
  283. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/regression/nonlinear.py +0 -0
  284. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/__init__.py +0 -0
  285. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/analysis.py +0 -0
  286. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/designed.py +0 -0
  287. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/diagnostics.py +0 -0
  288. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/ingest.py +0 -0
  289. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/mam.py +0 -0
  290. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/panel.py +0 -0
  291. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/recipes.py +0 -0
  292. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/tools.py +0 -0
  293. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/sensory/validation.py +0 -0
  294. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/__init__.py +0 -0
  295. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/batch.py +0 -0
  296. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/context.py +0 -0
  297. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/latent.py +0 -0
  298. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/model.py +0 -0
  299. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/recipes.py +0 -0
  300. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/simulation/tools.py +0 -0
  301. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/tool_safety.py +0 -0
  302. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/tool_spec.py +0 -0
  303. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/__init__.py +0 -0
  304. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/classical.py +0 -0
  305. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/error_transmission.py +0 -0
  306. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/metrics.py +0 -0
  307. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/reference_distribution.py +0 -0
  308. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/serial_correlation.py +0 -0
  309. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/stated_values.py +0 -0
  310. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/univariate/tools.py +0 -0
  311. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/__init__.py +0 -0
  312. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/adapters/__init__.py +0 -0
  313. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/adapters/base.py +0 -0
  314. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/adapters/echarts_adapter.py +0 -0
  315. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/adapters/plotly_adapter.py +0 -0
  316. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/charts/__init__.py +0 -0
  317. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/charts/boxplot.py +0 -0
  318. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/colors.py +0 -0
  319. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/raincloud.py +0 -0
  320. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/spec.py +0 -0
  321. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/themes.py +0 -0
  322. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/tools.py +0 -0
  323. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/visualization/types.py +0 -0
  324. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/__init__.py +0 -0
  325. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/_expressions.py +0 -0
  326. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/project.py +0 -0
  327. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/recipe.py +0 -0
  328. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/tools.py +0 -0
  329. {process_improve-2.3.0 → process_improve-2.3.1}/src/process_improve/workbench/variant.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: process-improve
3
- Version: 2.3.0
3
+ Version: 2.3.1
4
4
  Summary: Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.
5
5
  Keywords: Designed Experiments,Design of Experiments,DoE,Optimal Design,Response Surface,Latent Variables,PCA,PLS,Multivariate Data Analysis,Chemometrics,Process Monitoring,Batch data analysis
6
6
  Author: Kevin Dunn
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "process-improve"
3
- version = "2.3.0"
3
+ version = "2.3.1"
4
4
  description = "Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "process-improve"
3
- version = "2.3.0"
3
+ version = "2.3.1"
4
4
  description = 'Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.'
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import warnings
3
4
  from typing import Any, Literal
4
5
 
5
6
  import numpy as np
@@ -234,7 +235,7 @@ def robust_regression( # noqa: PLR0913, PLR0915
234
235
  nowarn: bool = False,
235
236
  pi_resolution: int = 50,
236
237
  *,
237
- intervals: Literal["bootstrap", "least_squares"] = "bootstrap",
238
+ intervals: Literal["bootstrap", "least_squares"] | None = None,
238
239
  n_boot: int = 999,
239
240
  random_state: int | np.random.Generator | None = 0,
240
241
  ) -> dict:
@@ -261,19 +262,22 @@ def robust_regression( # noqa: PLR0913, PLR0915
261
262
  pi_resolution : int, default 50
262
263
  The number of x values, evenly spaced over the range of the data, at which
263
264
  ``pi_range`` gives the prediction interval.
264
- intervals : {"bootstrap", "least_squares"}, default "bootstrap"
265
+ intervals : {"bootstrap", "least_squares"} or None, default None
265
266
  How ``conf_intervals``, ``conf_interval_intercept`` and ``pi_range`` are found.
266
267
  ``"bootstrap"`` takes percentiles over ``n_boot`` resamples of the ``(x, y)`` pairs,
267
268
  each refitted with the repeated median, so the intervals resist outliers as the
268
269
  slope does. ``"least_squares"`` applies the least-squares formulas to the residuals
269
- around the robust line, as releases up to 2.2.2 did for every call: one gross outlier
270
- widens those intervals even when it leaves the slope where it was.
270
+ around the robust line: one gross outlier widens those intervals even when it leaves
271
+ the slope where it was. ``None`` means ``"least_squares"`` until 3.0 and
272
+ ``"bootstrap"`` from 3.0. Until then, a call whose intervals the change would move
273
+ issues a ``FutureWarning`` and returns its text as ``intervals_note`` (see Notes).
274
+ Passing either value silences it.
271
275
  n_boot : int, default 999
272
- The number of bootstrap resamples. Ignored when ``intervals="least_squares"``.
276
+ The number of bootstrap resamples. Used only with ``intervals="bootstrap"``.
273
277
  random_state : int, np.random.Generator or None, default 0
274
278
  Seeds the bootstrap resamples; see
275
279
  :func:`process_improve._random.check_random_state`. The default seed makes a
276
- repeated call return the same intervals. Ignored when ``intervals="least_squares"``.
280
+ repeated call return the same intervals. Used only with ``intervals="bootstrap"``.
277
281
 
278
282
  Returns
279
283
  -------
@@ -309,6 +313,9 @@ def robust_regression( # noqa: PLR0913, PLR0915
309
313
  as ``intervals`` says
310
314
  leverage: the hat-matrix diagonal (leverage) for each observation
311
315
  influence: Cook-style influence values for each observation
316
+ intervals_note: only when ``intervals`` is not given and the default's change
317
+ in 3.0 would change the intervals: the text of the
318
+ ``FutureWarning`` that says so
312
319
 
313
320
  On the degenerate early-return path (fewer than three usable observations
314
321
  in ``x`` or ``y``), the returned dictionary is the initialization stub:
@@ -318,7 +325,19 @@ def robust_regression( # noqa: PLR0913, PLR0915
318
325
 
319
326
  Notes
320
327
  -----
321
- With ``intervals="bootstrap"`` (the default) the three interval keys are percentile
328
+ By default the three interval keys are least-squares intervals, as they were up to 2.2.2.
329
+ 2.3.0 made the bootstrap the default without the announcement that the deprecation policy
330
+ requires for a changed default, so code that kept running got other numbers; 2.3.1
331
+ restored least squares. The default becomes ``"bootstrap"`` in 3.0, because its intervals
332
+ resist outliers as the slope does. Until then a call that the change would affect (one
333
+ with spread in x, a finite ``SE`` and a ``conflevel`` that has an interval) warns and
334
+ carries ``intervals_note``.
335
+
336
+ A ``conflevel`` that has no t value (NaN, infinite, or larger than 1 in absolute value)
337
+ gives NaN intervals, with the x column of ``pi_range`` kept, whichever ``intervals`` is,
338
+ and no resample is drawn.
339
+
340
+ With ``intervals="bootstrap"`` the three interval keys are percentile
322
341
  intervals over the resamples, each refitted as above. A resample whose x values are all
323
342
  equal has no slope and is left out. The prediction limits add to each resampled line a
324
343
  normal error scaled by 1.4826 times that resample's median absolute residual, so an
@@ -336,7 +355,7 @@ def robust_regression( # noqa: PLR0913, PLR0915
336
355
  points, 3 s for 500 and over 10 s for 1,000; for more points, lower ``n_boot`` or use
337
356
  ``intervals="least_squares"``.
338
357
  """
339
- if intervals not in ("bootstrap", "least_squares"):
358
+ if intervals not in (None, "bootstrap", "least_squares"):
340
359
  raise ValueError(f"intervals must be 'bootstrap' or 'least_squares'; got {intervals!r}.")
341
360
 
342
361
  out: dict[str, Any] = {
@@ -470,8 +489,19 @@ def robust_regression( # noqa: PLR0913, PLR0915
470
489
  ]
471
490
  )
472
491
 
473
- # With no spread in x, or a non-finite value kept in (SE is then not finite), the NaN intervals above stand.
474
- if intervals == "bootstrap" and out["x_ssq"] >= __eps and np.isfinite(out["SE"]):
492
+ # With no spread in x, a non-finite value kept in (SE is then not finite), or a conflevel with no t value
493
+ # (NaN, infinite, or outside -1 to 1, exactly where the bootstrap's percentiles would fall outside 0 to 100),
494
+ # the NaN intervals above stand whichever intervals is, so the default's change in 3.0 changes nothing.
495
+ has_intervals = out["x_ssq"] >= __eps and np.isfinite(out["SE"]) and not np.isnan(c_t)
496
+ if intervals is None and has_intervals:
497
+ out["intervals_note"] = (
498
+ "process_improve.regression.robust_regression's default intervals='least_squares' is deprecated since "
499
+ "2.3.1 and will change to intervals='bootstrap' in 3.0, whose percentile-bootstrap intervals resist "
500
+ "outliers as the slope does. Pass intervals='least_squares' to keep these numbers, or "
501
+ "intervals='bootstrap' for the new ones; either silences this warning."
502
+ )
503
+ warnings.warn(out["intervals_note"], FutureWarning, stacklevel=2)
504
+ if intervals == "bootstrap" and has_intervals:
475
505
  slopes, intercepts, errors = _bootstrap_lines(x, y, fit_intercept, n_boot, check_random_state(random_state))
476
506
  tails = [50 * (1 - conflevel), 50 * (1 + conflevel)]
477
507
  out["conf_intervals"] = np.percentile(slopes, tails)[None, :]
@@ -105,6 +105,7 @@ def robust_regression(spec: RobustRegressionInput) -> dict[str, Any]:
105
105
  conflevel=spec.confidence_level,
106
106
  n_boot=spec.n_boot,
107
107
  random_state=spec.random_state,
108
+ intervals="bootstrap",
108
109
  )
109
110
  if result["N"] is None:
110
111
  # The fit hands back its empty result when two or fewer complete pairs remain.