BUG: Keep array arguments working in the validated stats functions - #10434
Merged
Merged
Conversation
The checks added in statsmodelsGH-10379, statsmodelsGH-10386, statsmodelsGH-10388, statsmodelsGH-10392, statsmodelsGH-10393, statsmodelsGH-10399, statsmodelsGH-10405, statsmodelsGH-10406, statsmodelsGH-10411, statsmodelsGH-10420, statsmodelsGH-10421, statsmodelsGH-10423, statsmodelsGH-10425, statsmodelsGH-10426 and statsmodelsGH-10431 compare the arguments with scalars, for example `if not 0 < alpha < 1`, `if low > upp` or `if dispersion < 0`. These raise "The truth value of an array with more than one element is ambiguous" for arrays and Series. The functions broadcast over these arguments and return the same values as the calls for the elements in 0.15.0, for example a confidence interval for several alpha, the power for several equivalence margins or a table of sample sizes. Test with np.all and the comparison ufuncs instead, which work for scalars, lists, arrays and Series, and which also reject NaN. The error messages are unchanged. A new test checks for 50 arguments that an array of two valid values gives the same result as the two calls with the scalars, and that one invalid element (including NaN) is rejected. Follow-up to statsmodelsGH-10379, statsmodelsGH-10386, statsmodelsGH-10388, statsmodelsGH-10392, statsmodelsGH-10393, statsmodelsGH-10399, statsmodelsGH-10405, statsmodelsGH-10406, statsmodelsGH-10411, statsmodelsGH-10420, statsmodelsGH-10421, statsmodelsGH-10423, statsmodelsGH-10425, statsmodelsGH-10426, statsmodelsGH-10431 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The arguments that broadcast are documented as float or int, but arrays work, and the previous commit keeps them working. Document them as float or array_like in the functions of the previous commit and in chisquare_power, which says in its Notes that it works vectorized. Follow-up to statsmodelsGH-10379, statsmodelsGH-10386, statsmodelsGH-10388, statsmodelsGH-10392, statsmodelsGH-10393, statsmodelsGH-10399, statsmodelsGH-10405, statsmodelsGH-10406, statsmodelsGH-10411, statsmodelsGH-10420, statsmodelsGH-10421, statsmodelsGH-10423, statsmodelsGH-10425, statsmodelsGH-10426, statsmodelsGH-10431 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Thanks, the AI Disclosure section looks complete. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The checks added in GH-10379, GH-10386, GH-10388, GH-10392, GH-10393,
GH-10399, GH-10405, GH-10406, GH-10411, GH-10420, GH-10421, GH-10423,
GH-10425, GH-10426 and GH-10431 compare the arguments with scalars,
for example
if not 0 < alpha < 1,if low > upporif dispersion < 0.These raise "The truth value of an array with more than one element is
ambiguous" for arrays and Series. The functions broadcast over these
arguments and return the same values as the calls for the elements in
0.15.0, for example a confidence interval for several alpha, the power
for several equivalence margins or a table of sample sizes.
Test with np.all and the comparison ufuncs instead, which work for
scalars, lists, arrays and Series, and which also reject NaN. The
error messages are unchanged. A new test checks for 50 arguments that an
array of two valid values gives the same result as the two calls with the
scalars, and that one invalid element (including NaN) is rejected.
Follow-up to GH-10379, GH-10386, GH-10388, GH-10392, GH-10393, GH-10399,
GH-10405, GH-10406, GH-10411, GH-10420, GH-10421, GH-10423, GH-10425,
GH-10426, GH-10431
NumPy's guide.
AI Disclosure
Contributions must comply with the statsmodels AI Policy.
Tick exactly one of the following. If AI tools were used, replace the
<...>placeholders in the second option with the tool name(s) and how the tool's output was
used.
Tool(s): Claude Sonnet
Used for: Automated site detection and doc string correction
I have personally read, understood, and can explain every line of this diff, and
have verified the statistical/numerical correctness of the change.
Details
Notes:
needed for doc changes.
then show that it is fixed with the new code.
verify your changes are well formatted by running
ruffis installed. While passing this test is not required, it is good practice and it helpimprove code quality in
statsmodels.AI Policy for what disclosure
and review is expected of you before submitting.