国际惯例,先看几个例子:
以下是问题的解答,其中统一取p=0.01,也就是小于1%的话,认为事件不可能发生
1:p=C(12)(10)* (1/2)^10*(1/2)^2=0.016;
也就是说有1.6%的概率发生这件事情,既然我们之前取得概率是1%,所以可以接受这个巧合
2: 最简单的卡方检验
x2<-c(30,30,40,20)
p2<-rep(0.25,4)
chisq.test(x2,p=p2)
pvalue=0.08,无法拒绝原假设,也就是有8%的概率出现以上的情况。
3:一维卡方
p3<-c(0.1,0.1,0.1,0.7)
x3<-c(10,10,20,80)
chisq.test(x3,p=p3)
#结果:
Chi-squared test for given probabilities
data: x3
X-squared = 6.1905, df = 3, p-value = 0.1027
可以看到p=0.1,所以可以接受原假设
4:二维卡方检验,不再检验样本和理论频率,而是两个样本之间的检验;
b<-matrix(c(100,20,90,30),nrow=2)
b<-as.table(b)
rownames(b)<-c(0,1)
colnames(b)<-c('A','B')
chisq.test(b)
看出P=0.15,同样无法拒绝原假设
5:同样的二维,但不是普通的2*2卡方,代码如下
b<-matrix(c(20,20,40,40,30,20,30,40),ncol=2)
b<-as.table(b)
rownames(b)<-c(1,2,3,4)
colnames(b)<-c('A','B')
chisq.test(b)
结果
Pearson's Chi-squared test
data: b
X-squared = 3.4286, df = 3, p-value = 0.3301
p=0.33,说明AB间有关联。
6:同样扩展到三个变量的独立性检验:
b<-matrix(c(3,3,3,3,6,7,5,6,8,8,6,7),ncol=3)
b<-as.table(b)
rownames(b)<-c(1,2,3,4)
colnames(b)<-c('A','B','C')
chisq.test(b)
结果
Pearson's Chi-squared test
data: b
X-squared = 0.17829, df = 6, p-value = 0.9999
P值很大,不能拒绝三个没有相关的假设,也就是不独立
7:这个问题涉及到卡方检验和t检验的本质,卡方检验主要检验几个变量之间的独立性,也就是有没有关联,而t检验更多的检验显著性,也就是几组数据到底一不一样。也就涉及到相关性和显著性的问题。
比如这个例子,扔第一个骰子100次,又扔了第二个骰子200次,如果是一个骰子的话,这两个骰子出现的次数应该保持近似一致,如果检验后发现出现一致的概率很低,那么可以拒绝原假设(也就是不一致);但是两个骰子本身的性质(均匀分布或者灌铅骰子)和这一个骰子的实验结果展现的次数有关系。也就是说卡方检验检验的是次数,而t检验检验的是值
再举个更通俗的例子,假如身高高的人一般体重都大,那么我取了10个身高段“150,155,160…200cm”1000个人,然后按照体重分为10个体重段,比如‘50kg,60kg….’,然后做成列联表,最后按照卡方检验求p值,发现p值=0.001,也就是说如果没有联系的话,实验这么多次出现这个结果的概率为0.001,显然这么小的概率可以认为不能发生,所以是有关联的。(Fisher检验更精确的说明这个论点)。
而t检验可以利用操作均值的差异,检验1000个样本,身高放在A列,体重放在B列,从而看A,B列的差异,如果p=1 则说明A和B没有差异。
所以卡方检验和T检验的前提条件(原假设)是对立的:
卡方检验:假设没有相关性
T检验:假设没有差异(相等)
刚才的例子,举个n=100的样本,代码如下
F检验
a<-c(35,15,41,9)
dim(a)<-c(2,2)
rownames(a)<-c('high','low')
colnames(a)<-c('heavy','light')
chisq.test(a)
首先建立一个tablea,a,假设超过180cm叫high,超过90kg叫heavy,则这个列联表如下:
heavy light
high 35 41
low 15 9
检验结果如下:
Pearson's Chi-squared test with Yates' continuity correction
data: a
X-squared = 1.3706, df = 1, p-value = 0.2417
p=0.24,不能拒绝没有相关性的检验,也就是相关
相似的如果按照第二个t检验,需要出身高和体重的数据,模拟一下:
b1<-seq(160,200,5)
set.seed(100)
b2<-b1/2+rnorm(9)
t.test(b1,b2,mu=80)
其中b1是从160-200cm中,每隔5cm取一个序列,b2是体重值,简单起见,用b1/2加上一个随机数,mu=80,是b1的均值-b2的均值=80这个假设,也就是线性分布。
结果为:
Welch Two Sample t-test
data: b1 and b2
t = 1.9572, df = 11.739, p-value = 0.07453
alternative hypothesis: true difference in means is not equal to 80
95 percent confidence interval:
78.84237 101.11757
sample estimates:
mean of x mean of y
180.00000 90.02003
可以看到p=0.07,不能拒绝原假设,也就是两个值的差值在80这个结论可以成立。
最后以最后一题的结论结束这篇文章:
1: 代码如下:
p7<-rep(0.25,4)
x7<-c(20,20,25,35)
dim(x7)<-c(2,2)
chisq.test(x7,p=p7)
结果为
Pearson's Chi-squared test with Yates' continuity correction
data: x7
X-squared = 0.37879, df = 1, p-value = 0.5383
p值为0.5,说明无法拒绝,所以是均匀分布。
2:代码如下:
x7_2<-c(10,20,30,140)
x7<-c(20,20,25,35)
t.test(x7,x7_2)
结果:
Welch Two Sample t-test
data: x7 and x7_2
t = -0.82015, df = 3.0818, p-value = 0.4708
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-120.56751 70.56751
sample estimates:
mean of x mean of y
25 50
因为p=0.47,也就是说有0.47的概率均值相等,所以不能拒绝原假设,也就是没有显著差别。
3:
x7_3<-c(140,60)
x7_4<-c(35,65)
t.test(x7_3,x7_4,alternative='greater')
p=0.2,所以不能认为后者比前者大,有可能是随机造成的
The end