R语言 Chi-Square测试

R语言 Chi-Square测试

独立性的卡方检验评估了两个变量的类别之间是否存在关联。基本上有两种类型的随机变量,它们产生两种类型的数据:数字型和分类型。Chi-square统计学被用来研究分类变量的分布是否彼此不同。在比较两个(或更多)独立组之间的分类反应的统计数字或计数时,Chi-square检验也很有用。

在R中,用于进行卡方检验的函数是 chisq.test()。

语法:

chisq.test(data)

参数:

data :data是一个包含表中变量的计数值的表格。

例子

我们将采取 MASS 库中的调查数据,它代表了对学生进行调查的数据。

# load the MASS package
library(MASS)        
print(str(survey))

输出

'data.frame':    237 obs. of  12 variables:
 Sex   : Factor w/ 2 levels "Female","Male": 1 2 2 2 2 1 2 1 2 2 ... Wr.Hnd: num  18.5 19.5 18 18.8 20 18 17.7 17 20 18.5 ...
 NW.Hnd: num  18 20.5 13.3 18.9 20 17.7 17.7 17.3 19.5 18.5 ... W.Hnd : Factor w/ 2 levels "Left","Right": 2 1 2 2 2 2 2 2 2 2 ...
 Fold  : Factor w/ 3 levels "L on R","Neither",..: 3 3 1 3 2 1 1 3 3 3 ... Pulse : int  92 104 87 NA 35 64 83 74 72 90 ...
 Clap  : Factor w/ 3 levels "Left","Neither",..: 1 1 2 2 3 3 3 3 3 3 ... Exer  : Factor w/ 3 levels "Freq","None",..: 3 2 2 2 3 3 1 1 3 3 ...
 Smoke : Factor w/ 4 levels "Heavy","Never",..: 2 4 3 2 2 2 2 2 2 2 ... Height: num  173 178 NA 160 165 ...
 M.I   : Factor w/ 2 levels "Imperial","Metric": 2 1 NA 2 2 1 1 2 2 2 ... Age   : num  18.2 17.6 16.9 20.3 23.7 ...
NULL

上述结果表明,数据集有许多因素变量,可以被视为分类变量。对于我们的模型,我们将考虑变量 “Exer “和 “Smoke “。 Smoke一栏记录了学生的吸烟习惯,Exer一栏记录了他们的运动水平。 我们的目的是在0.05的显著性水平上检验学生的吸烟习惯是否与他们的运动水平无关的假说

# Create a data frame from the main data set.
stu_data = data.frame(surveySmoke,surveyExer)
  
# Create a contingency table with the needed variables.           
stu_data = table(surveySmoke,surveyExer) 
                  
print(stu_data)

输出

         Freq None Some
  Heavy    7    1    3
  Never   87   18   84
  Occas   12    3    4
  Regul    9    1    7

最后我们将 chisq.test() 函数应用于或然率表stu_data。

# applying chisq.test() function
print(chisq.test(stu_data))

输出

       Pearson's Chi-squared test

data:  stu_data
X-squared = 5.4885, df = 6, p-value = 0.4828

由于P值0.4828大于0.05,我们得出结论,吸烟习惯与学生的运动水平无关,因此这两个变量之间存在着微弱的或不相关的关系。

下面是完整的R代码。

# R program to illustrate
# Chi-Square Test in R
  
library(MASS)
print(str(survey))
  
stu_data = data.frame(surveySmoke,surveyExer)           
stu_data = table(surveySmoke,surveyExer)                
print(stu_data)
  
print(chisq.test(stu_data))

因此,综上所述,可以说使用R语言进行Chi-square检验是非常容易的。人们可以使用R语言中的 chisq.test() 函数来执行这一任务。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程