卡方检验的R语言实现

R函数: chisq.test()

chisq.test : 执行卡方检验

chisq.test(

x,        #数值型向量或矩阵,或者x 、y 全为因子

y=null ,  #数值型向量或x为因子时设为因子。x为矩阵时,列联表保存于其中,故忽略Y

#与x等长的概率,该值测试比率是否与概率一致,若不设置该参数,则检测概率彼此是否相同。

#p=rep(1/length(x),length(x)) #用于多组类别资料比率的检定 >=3。

)

     概率论中,“独立”是指两个事件彼此不影响,“非独立”是指一个事件会对另一个事件产生影响。比如抛硬币,从坛子中取颜色球。

统计量:

~x2 (r-1)(c-1)

列联表:行变量与列变量

期望值:T=n*p(i,j)=n*p(i)*p(j)   r 行数,c 列数

包含了以下两个信息:
1. 实际值与理论值偏差的绝对大小(由于平方的存在,差异是被放大的),偏差程度。
2. 差异程度与理论值的相对大小。

假设检验

H0: 独立

H1: 非独立

显著水平 : α=0.05

解读P值 :

p < 0.05

变量之间无关的可能性小于5%,反过来,就是两者相关的概率大于95%。拒绝Ho.

当 p-value < 0.1

时就可以认为他们之间没有显著的相关性。

 

注意:卡方检验针对分类变量

R提供了多种检验类别型变量独立性的方法,卡方独立性检验、Fisher精确检验和Cochran-Mantel–Haenszel检验。

一:分类变量(定性的变量)

该类变量如分类, 等级等等, 如男女, 用于表示变量的属性, 他的取值一定是离散的, 而且不同的取值, 代表不同的性质。

二:定量变量(定量的变量)

该类变量一般为实数, 表示大小不同的度量。

研究不同类型变量的相关性, 自然方法上也会用一些区别:

一:定量变量: 回归分析(三点图, 相关系数等等)

二:定性变量:独立性检查(卡方独立性检查等等)

 

应用场景:

test ( 卡方檢定) :

1. 多 組類別資料 比率的檢定

2. 兩組類別資料 獨立性檢定

3. 配合度檢定

4. 隨機樣本之檢定

相应的知识点看课本吧。

 

补充:费舍尔精确检验与McNemar检验

 

fisher.test: 执行费舍尔精确检验

fisher.test (

x  # 矩阵形式的二维列联表或向量

y=null # 因子,x为矩阵时忽略。

alternative=”two.sided’#针对备择假设,默认双尾,less  表示小  greater 表示大)

创建列联表后,应用卡方检验时,如果样本数较少,或者样本分布不过于倾向列联表中的某个单元,那么卡方检验的最终结果就可能不准确。样本数较少的标准:列联表中期望频数低于5 的单元,可以使用fisher.test()

 

McNemar检验常用于检验事件发生前后被调查者的反应变化。

mcnemar.test (

x  # 矩阵形式的二维列联表或向量

y=null # 因子,x为矩阵时忽略。

correct = TRUE #是否应用连续性矫正)

binom.test (

x  # 成功数

n  # 施行次数

p=0.5 对成功概率的假设

alternative=”two.sided’#针对备择假设,默认双尾,less  表示小  greater 表示大)

 

> performance<-matrix(c(794,86,150,570),nrow=2,dimnames=list(

+                                                            '1st survey'=c('app','dis'),

+                                                            '2st survey'=c('app','dis')))

> performance

          2st survey

1st survey app dis

       app 794 150

       dis  86 570

> mcnemar.test(performance)

 

               McNemar's Chi-squared test with continuity correction

 

data:  performance

McNemar's chi-squared = 16.818, df = 1, p-value = 4.115e-05 #推翻‘事件前后app\dis无差别’的假设,也就是说事件前后app\dis的比率发生了变化。

 

> binom.test(150,150+86,0.5)

 

               Exact binomial test

 

data:  150 and 150 + 86

number of successes = 150, number of trials = 236, p-value =

3.716e-05                                                    #‘ 150为150+86的一半’的零假设被推翻,也就是说事件前后app\dis的倾向发生了变化。

alternative hypothesis: true probability of success is not equal to 0.5

95 percent confidence interval:

 0.5706732 0.6970596

sample estimates:

probability of success

             0.6355932

你可能感兴趣的:(卡方检验的R语言实现)