如何在 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. 新的处理或工艺是否会减少当前处理或工艺的可变性?

相关:如何在 R 中执行 F 测试

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注