R语言独立性检验-基础

一。介绍三种检验独立性方法

1.卡方独立性检验

用chisq.test()函数对二维表的行变量和列变量进行卡方独立性检验。

> library(vcd)
> mytable <- xtabs(~Treatment+Improved, data=Arthritis)
> chisq.test(mytable)

	Pearson's Chi-squared test

data:  mytable
X-squared = 13.055, df = 2, p-value = 0.001463   #Treatment与Improvement不独立

> mytable <- xtabs(~Improved+Sex, data=Arthritis)
> chisq.test(mytable)

	Pearson's Chi-squared test

data:  mytable
X-squared = 4.8407, df = 2, p-value = 0.08889  #Treatment与Sex独立

Warning message:
In chisq.test(mytable) : Chi-squared近似算法有可能不准  #因为Male+Some为0

H0:Treatment与Improvement相互独立,当p=0.001463说明H0不成立,Treatment与Improvement存在相关性;

H0:Treatment与Sex相互独立,当p=0.08889时,没有足够理由(p<0.05)说明Treatment与Sex不独立。

2.Fisher精确检验

fisher.test()原理是:边界固定的列联表中行与列相互独立。

3.Cochran-Mantle-Haenszel检验

mentelhean.text()可用来进行Cochran-Mantle-Haenszel检验,其原假设是:两个名义变量在第三个变量的每一层中都是条件独立的,不存在三阶交互作用。

> mytable <- xtabs(~Treatment+Improved+Sex, data=Arthritis)
> mantelhaen.test(mytable)

	Cochran-Mantel-Haenszel test

data:  mytable
Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647

结果表明,患者接受的治疗与得到的改善在性别的美衣水平下并不独立,即:分性别来看,用药治疗的患者较接受安慰剂的患者得到了更多改善。

注:mytable必须是三维阵列,故ftable()得到的列联表不可用于此函数

> t1 <- with(Arthritis,ftable(Treatment,Improved,Sex))
> mantelhaen.test(t1)
Error in mantelhaen.test(t1) : 'x'必需是三维陣列

二。相关性度量

当拒绝原假设时,又该如何判断变量间相关性强弱?vcd包中assocstats()函数可用来计算二位列联表phi系数、列联系数和Cramer's V系数,较大的值意味着较大的相关性。

> library(vcd)
> mytable <- xtabs(~Treatment+Improved, data=Arthritis)
> assocstats(mytable)
                    X^2 df  P(> X^2)
Likelihood Ratio 13.530  2 0.0011536
Pearson          13.055  2 0.0014626

Phi-Coefficient   : NA 
Contingency Coeff.: 0.367 
Cramer's V        : 0.394 

 

你可能感兴趣的:(R)