找回密码
 注册
查看: 3960|回复: 0

R语言:常用统计检验

  [复制链接]
发表于 2012-1-11 08:47:41 | 显示全部楼层 |阅读模式
# 理论分布依赖于若干未知参数时

# Kolmogorov-Smirnov 检验

# ks.test()



例一 对一台设备进行寿命检验,记录十次无故障操作时间,并按从小到大的次序排列如下,

# 用ks检验方法检验此设备无故障工作时间是否符合rambda=1/1500的指数分布

# 命令:

X<-c(420, 500, 920, 1380, 1510, 1650, 1760, 2100, 2300, 2350)

ks.test(X, "pexp", 1/1500)



例二 假设从分布函数F(x)和G(x)的总体中分别随机抽取25个和20个观察值样本,检验F(x)和G(x)是否相同。

# 命令

X<-scan()

0.61 0.29 0.06 0.59 -1.73 -0.74 0.51 -0.56 0.39

1.64 0.05 -0.06 0.64 -0.82 0.37 1.77 1.09 -1.28

2.36 1.31 1.05 -0.32 -0.40 1.06 -2.47

Y<-scan()

2.20 1.66 1.38 0.20 0.36 0.00 0.96 1.56 0.44

1.50 -0.30 0.66 2.31 3.29 -0.27 -0.37 0.38 0.70

0.52 -0.71

ks.test(X, Y)

# ks多样本检验的局限性,只用在理论分布为一维连续分布,且分布完全已知的情形。ks检验可用的情况下,功效一般优于Pearson chisq检验



# 列联表(contingerncy table)的独立性检验

# Pearson chisquare 进行独立性检验



例三 为了研究吸烟是否与肺癌有关,对63位患者及43名非肺癌患者调查了其中的吸烟人数,得到2*2列联表

# 数据     肺癌     健康      合计

# 吸烟     60        32          92

# 不吸烟    3        11          14

# 合计     63        43         106

# 命令

x<-c(60, 3, 32, 11)

dim(x)<-c(2,2)

chisq.test(x,correct = FALSE) # 不带连续校正的情况

chisq.test(x) # 带连续校正的情况



例四 在一次社会调查中,以问卷方式调查了901人的年收入,及其对工作的满意程度,其中年收入A分为四档:小于6000元,6000-15000元,15000元至25000元,超过25000元。对工作的满意程度B 分为 很不满意,较不满意,基本满意和很满意四档,结果如下

#                     很不满意  较不满意   基本满意   很满意        合计

# < 6000               20        24         80           82            206

# 6000 ~15000          22        38         104        125           289

# 15000~25000          13        28         81          113           235

# > 25000               7          18         54           92            171

# 合计                 62        108       319        412           901

# 命令如下

x<-scan()

20 24 80 82 22 38 104 125

13 28 81 113 7 18 54 92

dim(x)<-c(4,4)

chisq.test(x)

# Fisher 精确的独立检验

# 试用条件 样本数小于4

例五  某医师研究乙肝免疫球蛋白防止子宫内胎儿感染HBV的效果,将33例HBsAg阳性孕妇随机分为预防注射组和对照组,结果由下表所示,两组新生儿HBV总体感染率有无差别

# 组别           阳性    阴性    合计   感染率

# 预防注射组     4       18      22     18.8

# 对照组         5       6       11     45.5

# 命令如下

x<-c(4,5,18,6); dim(x)<-c(2,2)

fisher.test(x)



# 对前面提到的肺癌进行检验

x<-c(60, 3, 32, 11);

dim(x)<-c(2,2)

fisher.test(x)



# McNemar检验

# McNemar检验不是独立性检验,但是是关于列连表的检验

例六 甲乙两种方法检测细菌的结果

#          乙方法           

#                            合计

# 甲方法   +        -            

# +        49      25         74

# -        21      107        128

# 合计     70      132        202

# 命令

X <- c(49, 21, 25, 107);

dim(X) <- c(2,2)

mcnemar.test(X,correct=FALSE)



# 符号检验

# 1 假设一个样本是否来自某个总体

例七 联合国人员在世界上66个大城市的生活花费指数(以纽约1996年12月为100),按照从小到大的次序排列如下,其中北京的指数为99。假设这个样本是从世界大城市中随机抽样得到的。用符号检验分析,北京是在中位数之上,还是中位数之下。

X<-scan()

66 75 78 80 81 81 82 83 83 83 83

84 85 85 86 86 86 86 87 87 88 88

88 88 88 89 89 89 89 90 90 91 91

91 91 92 93 93 96 96 96 97 99 100

101 102 103 103 104 104 104 105 106 109 109

110 110 110 111 113 115 116 117 118 155 192



binom.test(sum(X>99), length(X), al="l")

# 2 用成对样本检验两总体间是否有差异

例八  两种不同饲料,对猪增重情况如下,分析两种饲料养猪有无差异

# 命令

x<-scan()

25 30 28 23 27 35 30 28 32 29 30 30 31 16

y<-scan()

19 32 21 19 25 31 31 26 30 25 28 31 25 25

binom.test(sum(x<y), length(x))



例九 某饮料店为调查了顾客对饮料的爱好情况,某日随机调查了13为顾客,喜欢奶茶超过咖啡用-表示,喜欢咖啡超过奶茶用+表示,两者都喜欢用0表示,结果如下,分析顾客是更喜欢咖啡开始奶茶。

# 顾客编号 1 2 3 4 5 6 7 8 9 10 11 12 13

# 喜欢咖啡 1   1 1 1 0 1   1  1  1    1

# 喜欢奶茶   1           1          1

binom.test(3,12,p=1/2, al="l", conf.level = 0.90)

# 秩统计量



# Spearman秩相关检验

例十  一项有六人参加表演的竞赛,有两人进行评定,评定结果用如表所示,试用Spearman秩相关检验方法检验这两个评定员对于等级评定有无相关性

# 选手编号 1 2 3 4 5 6

# 甲的打分 4 2 2 4 5 6

# 乙的打分 5 3 4 3 2 5

x<-c(4,2,2,4,5,6); y<-c(5,3,4,3,2,5)

cor.test(x, y, method = "spearman")



# Kendall相关检验

例十一 某幼儿园对9对双胞胎的智力进行测验,并按照百分制打分,试用Kendall相关检验方法检验双胞胎的智力是否相关。

# 1   2  3  4  5  6  7  8   9

# 86  77 68 91 70 71 85 87 63

# 88  76 64 96 65 80 81 72 60

X<-c(86, 77, 68, 91, 70, 71, 85, 87, 63)

Y<-c(88, 76, 64, 96, 65, 80, 81, 72, 60)

cor.test(X, Y, method = "kendall")



# Wilcoxon秩检验—— 考虑了样本观察值月总体中位数的差。

# 1 对于来自同一个总体样本的检验

例十二  某电池厂称其生产的某种电池,中位数为140安培小时,现随机从其新生产的电池中抽取20个,检验其寿命,137.0 140.0 138.3 139.0 144.3 139.1 141.7 137.3 133.5 138.2 141.1 139.2 136.5 136.5 135.6 138.0 140.9 140.6 136.3 134.1

# 用Wilcoxon符号检验分析该厂生产的电池是否符合标准

X<-scan()

137.0 140.0 138.3 139.0 144.3 139.1 141.7 137.3 133.5 138.2

141.1 139.2 136.5 136.5 135.6 138.0 140.9 140.6 136.3 134.1

wilcox.test(X, mu=140, alternative="less",

exact=FALSE, correct=FALSE, conf.int=TRUE)

# 该方法也可用于成对样本的检验



例十三  为检验某种新肥料,将现有麦地分为十块,再将每一块分为两部分,一半施普通肥料,一半儿施新肥料,用Wilcoxon符号检验法检验新复合肥能否显著提高小麦产量。

# 1   2   3   4   5   6   7   8   9   10

# 459 367 303 392 310 342 421 446 430 412

# 414 306 321 443 281 301 353 391 405 390

#   

x<-c(459, 367, 303, 392, 310, 342, 421, 446, 430, 412)

y<-c(414, 306, 321, 443, 281, 301, 353, 391, 405, 390)

wilcox.test(x, y, alternative = "greater", paired = TRUE)

wilcox.test(x-y, alternative = "greater")

binom.test(sum(x>y), length(x), alternative = "greater")



# 非成对样本的秩次和检验

# Wilcoxon-Mann-Whitney 统计量 U

例十四  测量了10名不同作业组的工人血铅含量,分析两组之间是否有差别。

# 非铅作业组 24 26 29 34 43 58 63 72 87 101

# 含铅作业组 82 87 97 121 164 208 213

x<-c(24, 26, 29, 34, 43, 58, 63, 72, 87, 101)

y<-c(82, 87, 97, 121, 164, 208, 213)

wilcox.test(x,y,alternative="less",exact=FALSE,correct=FALSE)

wilcox.test(x, y, alternative="less", exact=FALSE)

例十五 学生数学能力排序

新方法 3 5 7 9 10

原方法 1 2 4 6 8

问新旧方法之间是否有差别。



x<-c(3, 5, 7, 9, 10);

y<-c(1, 2, 4, 6, 8)

wilcox.test(x, y, alternative="greater")

#

例十六 检验一种药物对于慢性支气管炎有没有效果,抽取了216个病例,治疗效果。分析该药物对两种慢性支气管炎的治疗效果是否相同。

#       控制 显效 进步 无效

# 单纯型 62   41   14   11

# 喘息型 20   37   16   15

x<-rep(1:4, c(62, 41, 14,11));

y<-rep(1:4, c(20, 37, 16, 15))

wilcox.test(x, y, exact=FALSE)





本文引用地址:http://bbs.sciencenet.cn/home.ph ... =blog&id=240182


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 06:23 , Processed in 0.026812 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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