如何在 Python 中执行 F 检验

pythonserver side programmingprogramming

统计学家使用 F 检验来检查两个数据集是否具有相同的方差。F 检验以罗纳德·费舍尔爵士的名字命名。要使用 F 检验,我们需要提出两个假设,一个零假设和一个备择假设。然后,我们选择 F 检验认可的这两个假设中的任何一个。

方差是一种数据分布指标,用于表示数据与平均值的偏差。较高的值比较小的值表现出更大的分散性。

在本文中,您将学习如何使用 Python 编程语言执行 F 检验及其用例。

F 检验过程

执行 F 检验的过程如下 -

  • 首先,定义零假设和备择假设。

    • 零假设或 H0:σ12 = σ22(总体的方差相等)

    • 备择假设或 H1:σ12 ≠ σ22(总体的方差不相等)

  • 选择统计量测试。

  • 计算种群的自由度。例如,如果 m 和 n 是种群形状,则自由度分别表示为 (df1) = m–1 和 (df2) = n – 1

  • 现在从 F 表 中找到 F 值。

  • 最后,将双尾检验的 alpha 值除以 2 以计算临界值。

因此,我们使用种群的自由度来定义 F 值。我们在第一行读取 df1,在第一列读取 df2。

对于不同种类的自由度,有各种 F 表。我们将步骤 2 中的 F 统计量与步骤 4 中计算出的临界值进行比较。然后,如果临界值小于 F 统计量,我们可以拒绝零假设。相反,当临界值在某个显著水平上大于 F 统计量时,我们可以接受零假设。

假设

在根据数据集执行 F 检验之前,我们做出了一些假设。

  • 数据总体服从正态分布,即符合钟形曲线。

  • 样本彼此不相关,即总体中没有多重共线性。

除了这些假设之外,在执行 F 检验时,我们还应考虑以下关键点 -

  • 最大方差值应位于分子中以执行右尾检验。

  • 在双尾检验的情况下,将 alpha 除以 2 后确定临界值。

  • 检查您是否有方差或标准差。

  • 如果 F 表中没有自由度,则将最大值作为临界值值。

Python 中的 F 检验

语法

scipy stats.f()

参数

x :分位数
q :下尾或上尾概率
dfn、dfd 形状参数
loc :位置参数
scale :比例参数(默认值 = 1)
size :随机变量形状
moments :['mvsk'] 字母,指定要计算哪些矩

解释

在此方法中,用户必须将每个数组的 f_value 和可迭代长度传递到 scipy.stats.f.cdf() 中,并将其减去 1 以执行 F 检验。

算法

  • 首先,导入 NumPy 和 Scipy.stats 库进行操作。

  • 然后创建两个具有两个不同变量名的随机选择值列表,并将它们转换为NumPy 数组并使用 Numpy 计算每个数组的方差。

  • 定义一个函数来计算 F 分数,首先我们将自由度为 1 的数组的方差除以 1。

  • 然后计算每个数组的可迭代长度,并将 f 值(方差比)和长度传入 CDF 函数,并从 1 中减去以计算 p 值。

  • 最后,函数返回 p_value 和 f_value。

示例

import numpy as np
import scipy.stats

# 创建数据
group1 = [0.28, 0.2, 0.26, 0.28, 0.5]
group2 = [0.2, 0.23, 0.26, 0.21, 0.23]

# 将列表转换为数组
x = np.array(group1)
y = np.array(group2)

# 计算每个组的方差
print(np.var(group1), np.var(group2))

def f_test(group1, group2):
   f = np.var(group1, ddof=1)/np.var(group2, ddof=1)
   nun = x.size-1
   dun = y.size-1
   p_value = 1-scipy.stats.f.cdf(f, nun, dun)
   return f, p_value

# 执行 F 检验
f_test(x, y)

输出

Variances:0.010464 0.00042400000000000017

您可以观察到 F 检验值为 4.38712,相应的 p 值等于 0.019127

由于 p 值小于 .05,我们将放弃零假设。因此,我们可以说这两个总体的方差不相等。

结论

阅读本文后,您现在知道如何使用 F 检验来检查两个样本是否属于具有相同方差的总体。您已经了解了 F 检验过程、假设和 Python 实现。让我们用几个要点来总结一下这篇文章 -

  • F 检验告诉您两个总体是否具有相等的方差。

  • 计算自由度并计算临界值。

  • 从 F 表中找到 F 统计量,并将其与上一步计算出的关键值进行比较。

  • 根据临界值和 F 统计量的比较接受或拒绝零假设。


相关文章