找回密码
 注册
查看: 6435|回复: 1

R语言中怎么进行单样本和双样本检验

[复制链接]
发表于 2011-1-22 21:32:58 | 显示全部楼层 |阅读模式
到现在为止,我们已经学会了单样本的正态性检验。而更常见的操作是比较两个
样本的特征。在R 里面,所有\传统"的检验都放在包stats 里面。这个包常常会自动
载入。
下面是冰融化过程的潜热(latent heat)(cal/gm) 数据(来自Rice (1995, p.490))
Method A: 79.98 80.04 80.02 80.04 80.03 80.03 80.04 79.97
80.05 80.03 80.02 80.00 80.02
Method B: 80.02 79.94 79.98 79.97 79.97 80.03 79.95 79.97
盒状图(boxplot)为这两组数据提供了简单的图形比较。
A <- scan()
79.98 80.04 80.02 80.04 80.03 80.03 80.04 79.97
80.05 80.03 80.02 80.00 80.02
B <- scan()
80.02 79.94 79.98 79.97 79.97 80.03 79.95 79.97
boxplot(A, B)
从图上可以直观的看出第一组数据相比第二组数据倾向给出较大的值。
为了比较两个样本的均值是否相等,我们可以使用非配对t-检验
> t.test(A, B)
Welch Two Sample t-test
data: A and B
t = 3.2499, df = 12.027, p-value = 0.00694
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.01385526 0.07018320
sample estimates:
mean of x mean of y
80.02077 79.97875
上面的结果表明在正态前提下3,二者有明显的统计差异。R 函数默认两个样本方差
不齐,而SPLUS 类似函数t.test 则默认方差齐性。如果两个样本都是来自正态群
体,我们可以用F检验来确定方差的齐性情况,
> var.test(A, B)
F test to compare two variances
data: A and B
F = 0.5837, num df = 12, denom df = 7, p-value = 0.3938
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.1251097 2.1052687
sample estimates:
ratio of variances
0.5837405
这表明二者方差在统计学上没有显著差异,我们可以采用传统的假设方差齐性的t-检
验。
> t.test(A, B, var.equal=TRUE)
Two Sample t-test
data: A and B
t = 3.4722, df = 19, p-value = 0.002551
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.01669058 0.06734788
sample estimates:
mean of x mean of y
80.02077 79.97875
所有这些检验都假设了数据的正态性。双样本的Wilcoxon (或者Mann-Whitney)
检验没有正态性的前提,仅仅要求在无效假设(null hypothesis)情况下样本来自一个常
规的连续分布。
> wilcox.test(A, B)
Wilcoxon rank sum test with continuity correction
data: A and B
W = 89, p-value = 0.007497
alternative hypothesis: true mu is not equal to 0
Warning message:
Cannot compute exact p-value with ties in: wilcox.test(A, B)
注意警告信息:在两个样本中都有同秩现象, 这表明这些数据来自离散分布(可能由于
数据的近似处理造成)。
有好多种方法可以图形化的显示两个样本的差别。我们已经看过盒状图的比较。
下面的命令
> plot(ecdf(A), do.points=FALSE, verticals=TRUE, xlim=range(A, B))
> plot(ecdf(B), do.points=FALSE, verticals=TRUE, add=TRUE)
同时显示两个样本的经验累计概率分布, 而qqplot 得到的是两个样本的Q-Q
图。Kolmogorov-Smirnov 检验是对两个经验累计概率分布间的最大垂直距离进行
统计的。Kolmogorov-Smirnov 检验只假定数据服从一个常规的连续分布:
> ks.test(A, B)
Two-sample Kolmogorov-Smirnov test
data: A and B
D = 0.5962, p-value = 0.05919
alternative hypothesis: two.sided
Warning message:
cannot compute correct p-values with ties in: ks.test(A, B)
回复

使用道具 举报

发表于 2013-11-18 11:27:56 | 显示全部楼层
好好学习!很好的帖子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-24 12:23 , Processed in 0.023885 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表