I am pleased to announce Release 9.1 of the Real Statistics Resource Pack. The new release is now available for free download at Download Resource Pack for Excel 2010, 2013, 2016, 2019, 2021, and 365 Windows and Mac environments.
I want to thank everyone who has made suggestions or has identified errors in the website or software. Your help has improved the utility and accuracy of Real Statistics.
I also want to express my appreciation to all of you who have donated to Real Statistics. These donations help to offset the costs of maintaining the website. If you are getting value from the Real Statistics website or software, I would appreciate your donation by going to Please Donate.
The following is an overview of the new features in Release 9.1.
Brunner-Munzel Test
The Brunner-Munzel test is a nonparametric substitute for the two independent sample t-test when the assumptions for this test are not met. In fact, it has advantages over the commonly used Mann-Whitney test, especially when the two samples have unequal variances.
This release provides the following worksheet function:
BM_TEST(R1, R2, lab, alpha): returns a column array with the values: p-value, t-stat, df, effect size, CI-lower (effect size), CI-upper (effect size) for the two-tailed Brunner-Munzel test on the data in column arrays or cell ranges in R1 and R2.
alpha is the significance level (default .05). If lab is TRUE (default FALSE), then a column of labels is appended to the output.
This release also supports the (random) permutation version of the Brunner-Munzel test via the following worksheet function:
BM_PTEST(R1, R2, lab, iter, alpha): returns a column array with the values: two-sided, p-value, one-sided p-values, t-stat, effect size, CI-lower (effect size), CI-upper (effect size) for the Permutation Brunner-Munzel test on the data in column arrays or cell ranges in R1 and R2.
iter = the number of permutations (default 10,000).
A new Brunner-Munzel Test data analysis tool has also been added to the Misc tab of the Real Statistics data analysis tools. This tool supports both the Brunner-Munzel test as well as the (random) permutation version of the test.
Thanks to Adrian for motivating the addition of this test.
Taguchi DOE
Taguchi design of experiments is a fractional factorial approach to design that is especially useful in testing preliminary designs. It has the benefit of reduced costs in carrying out the experiment since a limited number of trials are carried out.
This release provides a new Taguchi data analysis tool (in the ANOVA tab) that allows the user to select one of 19 Taguchi designs: L4-2, L8-2, L8-42, L9-3. L12-2, L16-2, L16-4, L16-42a, L18-23, L18-63, L25-5, L27-3, L32-2, L32-24, L36-23, L36-23b, L50-25, L54-23, and L64-4.
To support this data analysis tool, the following worksheet functions have also been added:
TInteract: returns the columns in the Taguchi design that correspond to an interaction of two factors.
TOptimize: returns the optimal design based on the mean of the replications or S/N (signal-to-noise ratio) using either the largest is best, smallest is best, or closest to target is best criterion.
Thanks to Rafal for motivating this new capability.
ANOVA Residuals
The following new worksheet functions have been added that return the residuals of the One-Factor, Two-Factor, and Three-Factor ANOVA, respectively: Anova1Res(R1), Anova2Res(R2), Anova3Res(R3).
Each of these functions returns a column array with the residuals for that ANOVA. R1, R2, and R3 are in stacked format. Thus, R1 is a two-column array or cell range; the first column contains group labels and the second column contains the corresponding data values.
R2 is a three-column array or cell range; the first column contains group labels for the first factor, the second column contains group labels for the second factor, and the third column contains the corresponding data values.
Similarly, R3 is a 4-column array or cell range. The first three columns contain labels for the groups in the three factors, and the last column contains the corresponding data values.
If your One Factor Anova data is in Excel format (i.e. an array or cell range with one data column per group headed by the group labels R1), then you can use the array formula =Anova1Res(StdAnova1(R1)) to obtain the same result. Alternatively, you can use the new function Anova1ResX(R1).
Note that these functions are useful when you want to test the normality assumption for the corresponding ANOVA.
Thanks to Jacques for motivating these new capabilities.
GHK Algorithm and Multivariate Normal Distribution
The new release adds the following new worksheet functions in support of multivariate normal distributions. The implementations use the GHK random sampling algorithm.
MNORMDIST(R0, Rm, Rc, cum, iter) = the cdf of the multivariate normal distribution at R0 if cum = TRUE and the pdf if cum = FALSE.
MNORMRECT(Rlo, Rhi, Rm, Rc, iter) = P(A < X < B) for the multivariate normal distribution where A and B are the column vectors corresponding to Rlo and Rhi.
Here, R0, Rm, Rlo, and Rhi are k × 1 arrays or cell ranges with all the elements in Rlo less than or equal to the corresponding element in Rhi. Rm represents the mean vector and Rc is the k × k covariance matrix. iter = the number of samples used in the GHK algorithm (default 200).
Thanks to Antony for requesting the GHK algorithm.
Fisher Exact Test enhancement
Real Statistics supports the Fisher Exact Test for 2×2, 2×3, 2×4, 2×5, 2×6, 2×7, 2×8, 2×9, 3×3, 3×4, and 3×5 contingency tables using the FISHERTEST and FISHER_TEST worksheet functions.
You could also use the Fisher Exact Test option of the Chi-square Test for Independence data analysis tool. Until now a more limited range of contingency tables was supported. With this release, the full range of contingency tables is supported.
Thanks to Trevor for motivating this enhancement.
Network Design modification
The Network Design data analysis tool (that builds graph networks) has been moved from the Misc tab to the Desc tab. The functionality has not changed.
Bug Fixes
- A bug in the NextPrime(n) worksheet function has now been fixed. This bug returned the square of a prime instead of a prime number. Thanks to Javier for identifying this bug.
- Corrects an error in the ARIMA_Stats worksheet function when p < q. Thanks to Taweechai for identifying this error.
- This release corrects a bug in the Weighted Regression data analysis tool whereby SSReg is set to FALSE instead of the appropriate value. Thanks to Janelle for identifying this error.
- Corrects a bug in the Kernel Density Estimation Curve data analysis tool and KDE worksheet function. Thanks to Antony for identifying this error. Another version of the Epanechnikov density has also been added (labelled Epan5).
- Corrects a bug in the Genz algorithm in the BNORMSDIST, BNORMDIST, BNORMSRECT and BNORMRECT worksheet functions. Thanks to Antony for identifying an error in these functions.
- Removes the unused cum argument from the BNORMSRECT and BNORMRECT worksheet functions.
- Corrects a bug in the BNORMDIST worksheet function when cum = FALSE (pdf case).
Doc Zaionitz thank you very much
DR. CHARLES GOOD EVENING, THE NORMSDIST FUNCTION CONTINUES GIVING ERRORS IN THE LAST DECIMALS. I JUST SENT YOU THE CODE OF THE GENTZ ALGORITHM IN VBA TO YOUR EMAIL SO THAT I CAN IMPLEMENT IT. GREETINGS FROM PERU.
Antony,
Did you set the last parameter to TRUE (Donelly) or FALSE (Genz)?
Charles
I used the gentz parameter
I have also noticed that there is a public function like bvnd in the package.
Antony,
Yes, I use the bvnd function, but it wasn’t meant to be public. The calling function BNORMDIST is public.
Charles
Is there a possibility of implementing the quartimax and equamax method?
Antony,
This is already on my list of future enhancements. Yes, I will look into adding these shortly.
Charles
Antony,
I made the changes suggested in the code you sent me, but the results were worse not better.
Can you give me an example where the code that I released doesn’t give the best result and tell me what the better result is?
Charles
Using the code provided gives me exact results:
https://prnt.sc/SK7CXXtwDf0l
Thanks for sending this to me, Antony.
I plan to create a bug fix release in the next few days and want to make sure that I get this right.
Charles
Antony,
I now get the same results as those in your previous comment.
Thanks.
Charles
When using the integral function I also get this error:
https://prnt.sc/7O2FsVrwLUr8
Antony,
The INTEGRAL function was designed to evaluate ∫F(t)dt where F(t) is a function of the variable t and not F(x,t) where x is evaluated elsewhere. You make a good point, though. It would be good to allow your version. I will look into this enhancement.
Charles
Antony,
I am going to add an LAMBX function to the next bug-fix release which will support the type integration that you referenced in your previous comment. This should be available sometime next week.
Charles