bundles / scipy latest / scipy / stats / _stats_py / obrientransform
function
scipy.stats._stats_py:obrientransform
source: build-install/usr/lib/python3.14/site-packages/scipy/stats/_stats_py.py:2519
Signature
def obrientransform(*samples, nan_policy = propagate)Summary
Compute the O'Brien transform on input data (any number of arrays).
Extended Summary
Used to test for homogeneity of variance prior to running one-way stats. Each array in *samples is one level of a factor. Significant results of f_oneway on the transformed data suggest that the variances of the underlying distributions are unequal. See Maxwell and Delaney [1], p.112.
Parameters
*samples: array_likeAny number of arrays.
nan_policy: {'propagate', 'omit', 'raise'}Defines how to handle input NaNs.
propagate: if a NaN is present in a sample, all elements of the transformed sample will be NaN.omit: NaNs will be omitted when computing reducing statistics for the transform, but NaNs in the sample will remain NaNs in the transformed sample.raise: if a NaN is present, aValueErrorwill be raised.
Returns
obrientransform: tuple of arraysTransformed arrays for use in ANOVA.
Raises
: ValueErrorIf the mean of the transformed data is not equal to the original variance, indicating a lack of convergence in the O'Brien transform.
Examples
We'll test the following data sets for differences in their variance.x = [10, 11, 13, 9, 7, 12, 12, 9, 10] y = [13, 21, 5, 10, 8, 14, 10, 12, 7, 15]✓
from scipy.stats import obrientransform tx, ty = obrientransform(x, y)✓
from scipy.stats import f_oneway F, p = f_oneway(tx, ty)✓
p
✗np.float64(0.13141394770403342)If we require that ``p < 0.05`` for significance, we cannot conclude that the variances are different.
Aliases
scipy.stats.obrientransform