friedmanchisquare#
- scipy.stats.friedmanchisquare(*samples, axis=0, nan_policy='propagate', keepdims=False)[源代码]#
计算重复样本的弗里德曼检验。
弗里德曼检验检验重复样本的原假设具有相同的分布。它通常用于检验通过不同方式获得的样本之间的一致性。例如,如果对同一组个体使用两种抽样技术,则弗里德曼检验可用于确定这两种抽样技术是否一致。
- 参数:
- sample1、sample2、sample3…类似数组
观测数组。所有数组必须具有相同数量的元素。必须给出至少三个样本。
- axisint 或 None,默认值:0
如果是 int,则输入轴沿着其轴计算统计量。每个轴切片(例如行)的统计量将显示在输出的对应元素中。如果
None
,计算统计量前输入将被拉直。- nan_policy{‘propagate’, ‘omit’, ‘raise’}
定义如何处理输入 NaN。
传递
:如果在根据其计算统计值的轴片断(例如,行)中存在 NaN,则输出的对应条目将为 NaN。省略
:执行计算时,将省略 NaN。如果在根据其计算统计值的轴片断中剩余的数据不足,则输出的对应条目将为 NaN。引发
:如果存在 NaN,将引发ValueError
。
- keepdims布尔值,默认值:False
如果将此项设置为 True,则会减少的轴将作为大小为 1 的维度留在结果中。通过此选项,结果将针对输入数组正确广播。
- 返回值:
- statistic浮点数
检验统计量,校正了同分。
- pvalue浮点数
相关 p 值,假设检验统计量为卡方分布。
注释
由于假设检验统计量为卡方分布,因此仅当 n > 10 且重复样本多于 6 个时,p 值才可靠。
从 SciPy 1.9 开始,在执行计算之前,
np.matrix
输入(不建议用于新代码)将转换为np.ndarray
。在这种情况下,输出将是适当形状的标量或np.ndarray
,而不是 2Dnp.matrix
。类似地,虽然会忽略掩码数组的掩码元素,但输出将是标量或np.ndarray
,而不是掩码=False 的掩码数组。参考
[2]P. Sprent 和 N.C. Smeeton,“应用非参数统计方法,第三版”。第 6 章,第 6.3.2 节。
示例
在 [2] 中,对七名学生的脉冲率(每分钟)进行了测量,包括运动前、运动后和运动后 5 分钟。是否有证据表明这三个场合的脉冲率相似?
我们首先制定原假设 \(H_0\)
这三个场合的脉冲率相同。
让我们通过 Friedman 检验来评估这一假设的可能性。
>>> from scipy.stats import friedmanchisquare >>> before = [72, 96, 88, 92, 74, 76, 82] >>> immediately_after = [120, 120, 132, 120, 101, 96, 112] >>> five_min_after = [76, 95, 104, 96, 84, 72, 76] >>> res = friedmanchisquare(before, immediately_after, five_min_after) >>> res.statistic 10.57142857142857 >>> res.pvalue 0.005063414171757498
使用显著性水平为 5%,我们将拒绝原假设,支持备择假设:“这三个场合的脉冲率不同”。