scipy.stats.mood¶
-
scipy.stats.
mood
(x, y, axis=0)[source]¶ Perform Mood’s test for equal scale parameters.
Mood’s two-sample test for scale parameters is a non-parametric test for the null hypothesis that two samples are drawn from the same distribution with the same scale parameter.
Parameters: x, y : array_like
Arrays of sample data.
axis : int, optional
The axis along which the samples are tested. x and y can be of different length along axis. If axis is None, x and y are flattened and the test is done on all values in the flattened arrays.
Returns: z : scalar or ndarray
The z-score for the hypothesis test. For 1-D inputs a scalar is returned.
p-value : scalar ndarray
The p-value for the hypothesis test.
See also
Notes
The data are assumed to be drawn from probability distributions
f(x)
andf(x/s) / s
respectively, for some probability density function f. The null hypothesis is thats == 1
.For multi-dimensional arrays, if the inputs are of shapes
(n0, n1, n2, n3)
and(n0, m1, n2, n3)
, then ifaxis=1
, the resulting z and p values will have shape(n0, n2, n3)
. Note thatn1
andm1
don’t have to be equal, but the other dimensions do.Examples
>>> from scipy import stats >>> np.random.seed(1234) >>> x2 = np.random.randn(2, 45, 6, 7) >>> x1 = np.random.randn(2, 30, 6, 7) >>> z, p = stats.mood(x1, x2, axis=1) >>> p.shape (2, 6, 7)
Find the number of points where the difference in scale is not significant:
>>> (p > 0.1).sum() 74
Perform the test with different scales:
>>> x1 = np.random.randn(2, 30) >>> x2 = np.random.randn(2, 35) * 10.0 >>> stats.mood(x1, x2, axis=1) (array([-5.7178125 , -5.25342163]), array([ 1.07904114e-08, 1.49299218e-07]))