如何在 python 中执行 f 测试
F 检验用于检验两个总体方差是否相等。检验的原假设和备择假设如下:
H 0 : σ 1 2 = σ 2 2 (总体方差相等)
H 1 : σ 1 2 ≠ σ 2 2 (总体方差不相等)
本教程介绍如何在 Python 中执行 F 测试。
示例:Python 中的 F 测试
假设我们有以下两个例子:
x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55] y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]
我们可以使用以下函数进行 F 检验来确定这些样本来自的两个总体是否具有相等的方差:
import numpy as np #define F-test function def f_test(x, y): x = np.array(x) y = np.array(y) f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic dfn = x.size-1 #define degrees of freedom numerator dfd = y.size-1 #define degrees of freedom denominator p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic return f,p #perform F-test f_test(x, y) (4.38712, 0.019127)
F 检验统计量为4.38712 ,相应的 p 值为0.019127 。由于该 p 值小于 0.05,因此我们将拒绝原假设。这意味着我们有足够的证据表明两个总体方差不相等。
评论
- F 检验统计量的计算公式为 s 1 2 / s 2 2 。默认情况下, numpy.var计算总体方差。为了计算样本方差,我们需要指定ddof=1 。
- p 值对应于分布 F 的 1 – cdf,分子自由度 = n 1 -1,分母自由度 = n 2 -1。
- 仅当第一个样本的方差大于第二个样本的方差时,此函数才起作用。因此,设置两个示例以使用该函数。
何时使用 F 检验
F 检验通常用于回答以下问题之一:
1.两个样本是否来自方差相等的总体?
2. 新的处理或工艺是否会减少当前处理或工艺的可变性?