📜  R编程中方差检验的同质性

📅  最后修改于: 2022-05-13 01:54:37.785000             🧑  作者: Mango

R编程中方差检验的同质性

在统计学中,如果所有随机变量都具有相同的有限方差,则随机变量序列方差的。这也称为方差同质性。在这篇文章中 让我们解释一下检查两个或多个组的 R 编程中方差检验的同质性的方法。一些统计检验,例如两个独立样本 T 检验和 ANOVA 检验,假定组间方差相等。有多种方差检验可用于评估方差的相等性。这些包括:

  • F检验:比较两组的方差。在这个测试中,数据必须是正态分布的。
  • Bartlett 检验:比较两组或更多组的方差。在这个测试中,数据也必须是正态分布的。
  • Levene 检验: Bartlett 检验的稳健替代方案,对偏离正态性不太敏感。
  • Fligner-Killeen 检验:一种非参数检验,对于偏离正态性非常稳健。

准备数据集

在解释每个测试之前,让我们先准备和理解数据集。考虑 R 中包含的标准学习数据集之一是“ ToothGrowth ”数据集。牙齿生长数据集是 10 只豚鼠在三种维生素 C 剂量水平(0.5、1 和 2 毫克)和两种递送方法(橙汁或抗坏血酸)下每只的牙齿长度。该文件包含 3 个变量的 60 个观察值

  • len:齿长
  • supp:补充类型(VC 或 OJ)
  • 剂量:以毫克为单位的剂量
R
# Exploring the ToothGrowth data set
print(head(ToothGrowth, 10))
print(str(ToothGrowth))


R
# R program to illustrate
# F-test
  
# Using var.test()
result = var.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)


R
# R program to illustrate
# Barlett’s test
  
# Using bartlett.test()
result = bartlett.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)


R
# R program to illustrate
# Levene's test
  
# Import required package
library(car)
  
# Using leveneTest()
result = leveneTest(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)


R
# R program to illustrate
# Fligner-Killeen test
  
# Import required package
library(stats)
  
# Using fligner.test()
result = fligner.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)


输出:

len  supp dose
1   4.2   VC  0.5
2  11.5   VC  0.5
3   7.3   VC  0.5
4   5.8   VC  0.5
5   6.4   VC  0.5
6  10.0   VC  0.5
7  11.2   VC  0.5
8  11.2   VC  0.5
9   5.2   VC  0.5
10  7.0   VC  0.5
'data.frame':    60 obs. of  3 variables:
 $ len : num  4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
 $ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
 $ dose: num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
NULL

F检验

用于比较两组的方差。 F检验用于评估两个总体的方差是否相等。在这个测试中,数据必须是正态分布的。

统计假设:

一个假设 一种 关于给定问题的陈述。假设检验是一种统计方法,用于使用实验数据做出统计决策。假设检验基本上是我们对总体参数所做的假设。它评估关于总体的两个相互排斥的陈述,以确定样本数据最能支持哪个陈述。要了解有关统计假设的更多信息,请参阅了解假设检验。对于 F 检验,统计假设是:

  • 零假设:两组的方差相等
  • 替代假设:方差不同

R中的实现:

var.test()方法的帮助下,可以在 R 编程中假设两个总体的方差相等的情况下在两个正态总体之间进行 f 检验。

例子:

R

# R program to illustrate
# F-test
  
# Using var.test()
result = var.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)

输出:

F test to compare two variances

data:  len by supp
F = 0.6386, num df = 29, denom df = 29, p-value = 0.2331
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.3039488 1.3416857
sample estimates:
ratio of variances 
         0.6385951 

解释:

p 值为 p = 0.2,大于显着性水平 0.05。总而言之,这两个方差之间没有显着差异。

巴特利特试验

巴特利特试验 用于测试k个样本是否来自方差相等的总体。总体上的相等方差称为方差同质性或同质性。一些统计检验(例如ANOVA 检验)假设组或样本之间方差相等。 Bartlett 检验可用于验证该假设。巴特利特的测试使 我们比较两个或多个样本的方差,以确定它们是否来自方差相等的总体。它适合正态分布的数据。

统计假设:

  • 零假设:所有总体方差都相等
  • 替代假设:至少有两个不同

R中的实现:

R提供了一个函数 stats 包中的bartlett.test ()用于计算 Barlett 检验。该函数的语法如下:

例子:

R

# R program to illustrate
# Barlett’s test
  
# Using bartlett.test()
result = bartlett.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)

输出:

Bartlett test of homogeneity of variances

data:  len by supp
Bartlett's K-squared = 1.4217, df = 1, p-value = 0.2331

列文的测试

在统计学中, Levene 检验是一种推断统计量用于评估为两个或多个组确定的变量的方差相等性一些标准的统计程序发现,构成各种样本的总体的方差是相等的。 Levene 的检验评估了这一假设。它检查总体方差相等零假设,称为方差同质性同方差性。它比较k个样本的方差,其中 k 可以是两个以上的样本。它是Bartlett 检验的替代方案,对偏离常态不太敏感。

统计假设:

  • 零假设:所有总体方差都相等
  • 替代假设:至少有两个不同

R中的实现:

R提供了一个函数 leveneTest ()car包中可用可用于计算 Levene 的测试。该函数的语法如下:

例子:

R

# R program to illustrate
# Levene's test
  
# Import required package
library(car)
  
# Using leveneTest()
result = leveneTest(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)

输出:

Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  1  1.2136 0.2752
      58     

Fligner-Killeen 测试

Fligner-Killeen检验是基于等级的组方差同质性的非参数检验。当数据非正态分布或无法解决与数据集中异常值相关的问题时,它很有用。它也是众多方差同质性检验之一,对偏离正态性最有效。

统计假设:

  • 零假设:所有总体方差都相等
  • 替代假设:至少有两个不同

R中的实现:

R提供了一个函数 fligner.test()stats包中可用可用于计算Fligner-Killeen 测试。该函数的语法如下:

例子:

R

# R program to illustrate
# Fligner-Killeen test
  
# Import required package
library(stats)
  
# Using fligner.test()
result = fligner.test(len ~ supp, data = ToothGrowth)
  
# print the result
print(result)

输出:

Fligner-Killeen test of homogeneity of variances

data:  len by supp
Fligner-Killeen:med chi-squared = 0.97034, df = 1, p-value = 0.3246