如何在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统计量,则我们可以接受零假设。
假设
我们在进行基于数据集的F检验之前做出一些假设。
-
数据集满足正态分布,即符合钟形曲线。
-
样本之间互不相关,即总体不存在多重共线性。
除了这些假设外,我们在执行F检验时还应考虑以下关键点−
-
在右侧检验中,最大方差值应该在分子中。
-
在双侧检验的情况下,将alpha值除以2后确定临界值。
-
检查是否有方差或标准差。
-
如果F表格中没有自由度,则将最大值作为临界值。
在Python中进行F检验
语法
参数
解释
在这种方法中,用户必须将f值和每个数组的可迭代长度传递到 scipy.stats.f.cdf() 并将其减去1以执行F检验。
算法
-
首先,为操作导入NumPy和Scipy.stats库。
-
然后,创建两个具有不同变量名称的随机选择值列表,并将它们转换为 NumPy 数组,并使用 Numpy 计算每个数组的方差。
-
定义一个函数来计算 F-得分,其中我们首先将数组的方差除以自由度 1。
-
然后计算每个数组的可迭代长度,并将 f值(方差比率)和长度传递到 CDF 函数中,并从 1 中减去以计算 p值。
-
最后,函数返回 p_value 和 f_value。
示例
输出
您可以观察到 F 测试值为 4.38712, 并且相应的 p值等于 0.019127 。
由于 p-value 小于 .05, 我们将放弃原假设。因此,我们可以说这两个群体的方差不相等。
结论
阅读完本文后,您现在知道如何使用 F-测试来检查两个样本是否属于具有相同方差的群体。您已经学习了 F-测试的过程、假设和 Python 实现。让我们用一些要点来总结本文。
-
F 测试告诉您两个群体是否具有相等的方差。
-
计算自由度并计算关键值。
-
从 F-表中找到 F-统计值,并将其与先前步骤中计算的关键值进行比较。
-
基于关键值和 F-统计值的比较接受或拒绝原假设。