如何在Python中执行F检验

如何在Python中执行F检验

统计学家使用F检验来检查两个数据集的方差是否相同。F检验得名于Ronald Fisher先生。为了使用F检验,我们制定了两个假设,一个是零假设,另一个是备择假设。然后我们选择F检验批准的这两个假设中的任何一个。

方差是一个数据分布度量,用于说明数据离均值的偏差程度。较高的值显示比较小的值更分散。

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

F检验过程

执行F检验的过程如下−

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

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

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

  • 选择用于测试的统计量。

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

  • 现在,从 F表格 找到F值

  • 最后,将α值除以2用于双尾检验,以计算临界值。

因此,我们使用总体的自由度定义F值。我们在第一行中读取df1,而在第一列中读取df2。

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

如何在Python中执行F检验

假设

我们在进行基于数据集的F检验之前做出一些假设。

  • 数据集满足正态分布,即符合钟形曲线。

  • 样本之间互不相关,即总体不存在多重共线性。

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

  • 在右侧检验中,最大方差值应该在分子中。

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

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

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

在Python中进行F检验

语法

scipy stats.f()
Bash

参数

x:分等级
q:下限或上限概率
dfndfd形状参数
loc:位置参数
scale:尺度参数(默认值= 1
size:随机变量形状
moments[mvsk]字母,指定要计算的矩
Bash

解释

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

算法

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

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

  • 定义一个函数来计算 F-得分,其中我们首先将数组的方差除以自由度 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)
Bash

输出

方差: 0.010464 0.00042400000000000017
Bash

您可以观察到 F 测试值为 4.38712, 并且相应的 p值等于 0.019127

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

结论

阅读完本文后,您现在知道如何使用 F-测试来检查两个样本是否属于具有相同方差的群体。您已经学习了 F-测试的过程、假设和 Python 实现。让我们用一些要点来总结本文。

  • F 测试告诉您两个群体是否具有相等的方差。

  • 计算自由度并计算关键值。

  • 从 F-表中找到 F-统计值,并将其与先前步骤中计算的关键值进行比较。

  • 基于关键值和 F-统计值的比较接受或拒绝原假设。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册