R语言——两总体样本比例之差检验

区分总体与样本的概念,用到的公式是完全不同的:样本需要计算均值方差,然后矫正近似服从正态分布等,而总体是已有均值方差不用矫正,根据公式计算即可。

对两总体比例计算来说:

假定条件:1 两个总体都服从二项分布;2 可以用正态分布来近似.

注意:原假设两个比率相等时 用上面的公式;原假设两个比例存在差值(eg:A比B比例多0.1),用下面的公式。

例子:在甲地有193人,该病患病率0.0725 ;在乙地 有4177人 某种病患病率是0.03 。两地患病率是否有差异?

解: 1. 设H0:两地患病率相等,即 p1=p2

2. 根据公式计算Z值 

p1 = 0.0725;p2 = 0.030;x1 = 14;x2 = 125
p_pooled = (x1+x2)/(193+4177)
sd = sqrt(p_pooled*(1-p_pooled)*(1/193+1/4177))
teststat <- (p1-p2)/sqrt(p_pooled*(1-p_pooled)*(1/193+1/4177))
teststat # -3.289362

3. 因为该 Z~N(0,1),所以可以根据该Z值计算P value。pnorm可以显示在正态分布的曲线上,返回从负无穷到定点的积分,其中这个定点指的是一个Z-score。因为我们原假设是相等,所以这里是双边检验,因此P值需要pnorm的一边结果乘以2.

P= 2*pnorm(teststat) ## P=0.001004
## 默认pnorm(u=0,sigma=1)

4. 由于P<0.05 ,因此拒绝原假设,即两地患病比率不想等。

 

此外还可以借助卡方检验,列连表计算

a=14;b=125;c=193-14;d=4052
pA=a/(a+c);pB=b/(b+d)
nA=a+c;nB=b+d
# 借助chisq.test检验两总体比率是否一致
a1 <- rbind(c(nA*(1-pA),nA*pA), c(nB*(1-pB), nB*pB))
# 此处为了保持一致未加Yates 校正,但实际应用最好设置 correct=T
chisq.test(a1,correct=F)
#X-squared = 10.878, df = 1, p-value = 0.0009734

# 直接计算统计量,和上面卡方检验的X-squared一致,都是 1.326693
p_fit=(a+b)/(a+b+c+d)
z2=(pA-pB)/sqrt((1/nA+1/nB)*p_fit*(1-p_fit))
z2^2
chisq.test(a1,correct=F)

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值