Mario,
Thanks a lot for writing the stats package.
I appreciate your dedication to the project.
As the major aspects of the package are very good,
I'll restrict myself to some minor quibbling.
(1) I don't think it's appropriate to modify global variables by
loading the stats package. This can lead to bad surprises,
e.g. interactions with other packages, or unexpected results.
(2) About numer in particular, numer : true defeats one of Maxima's
major features. We really shouldn't discourage people from
exploiting Maxima's capability to do exact integer and rational
arithmetic.
If some functions in the stats package need to convert non-floats
to floats, then (LET (($NUMER T)) ..) or block([numer : true], ...)
is the way to go.
(3) I think it is a good idea to present the results in an
inference_result object. I like the way the results are presented
in a nice format by a display function.
A possibility here is to use the existing (though not quite
finished) defstruct code to construct the inference_result objects.
Then the methods for accessing fields within a structure don't
need to be duplicated.
(4) I think the written documentation is very good; every share package
should have such nice documentation. I'll make some minor revisions
to the texinfo file.
(5) I recommend renaming shapiro_wilk_test --> test_normality and
making shapiro_wilk an option (since there are other normality
tests)
(6) I recommend renaming dif_means_test --> means_difference_test
or means_diff_test
(7) I recommend renaming simple_linear_reg --> linear_regression
or simple_linear_regression
(8) (MAYBE) Test functions could be renamed in big-endian style,
to give these similar functions names which are more similar.
It's a minor point.
mean_test --> test_mean
means_difference_test --> test_means_difference
variance_test --> test_variance
variance_ratio_test --> test_variance_ratio
sign_test --> test_sign
signed_rank_test --> test_signed_rank
normality_test --> test_normality
Thanks again, & all the best,
Robert