第十二章:重抽样与自助法

本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法

12.1 置换检验

置换检验,也称随机化检验或重随机化检验.

有两种处理条件的实验,十个受试者已经被随机分配到其中一种条件(A或B)中,相应的结果变量(score)也已经被记录。实验结果如下:

如果两种处理方式真的等价,那么分配给观测得分的标签(A处理或B处理)便是任意的。为检验两种处理方式的差异,我们可遵循如下步骤:

(1) 与参数方法类似,计算观测数据的t统计量,称为t0;

(2) 将10个得分放在一个组中;

(3) 随机分配五个得分到A处理中,并分配五个得分到B处理中;

(4) 计算并记录新观测的t统计量;

(5) 对每一种可能随机分配重复(3)~(4)步,此处有252种可能的分配组合;

(6) 将252个t统计量按升序排列,这便是基于(或以之为条件)样本数据的经验分布;

(7) 如果t0落在经验分布中间95%部分的外面,则在0.05的显著性水平下,拒绝两个处理组的

总体均值相等的零假设。

12.2 用coin 包做置换检验

对于独立性问题,coin包提供了一个进行置换检验的一般性框架。通过该包可以回答

如下问题:

响应值与组的分配独立吗?

两个数值变量独立吗?

两个类别型变量独立吗?

相对于传统检验,提供可选置换检验的coin函数:

检验

coin函数

两样本和K样本置换检验

oneway_test(y ~ A)

含一个分层(区组)因子的两样本和K样本置换检验

oneway_test(y ~ A | C)

Wilcoxon-Mann-Whitney秩和检验

wilcox_test(y ~ A)

Kruskal-Wallis检验

kruskal_test(y ~ A)

Person卡方检验

chisq_test(A ~ B)

Cochran-Mantel-Haenszel检验

cmh_test(A ~ B | C)

线性关联检验

lbl_test(D ~ E)

Spearman检验

spearman_test(y ~ x)

Friedman检验

friedman_test(y ~ A | C)

Wilcoxon符号秩检验

wilcoxsign_test(y1 ~ y2)

在coin函数中,y和x是数值变量,A和B是分类因子,C是类别型区组变量,D和E是有序因子,y1和y2是相匹配的

数值变量。

函数形式:function(formula,data,distribution=)

其中:

formula描述的是要检验变量间的关系。示例可参见表12-2;

data是一个数据框;

distribution指定经验分布在零假设条件下的形式,可能值有exact,asymptotic和

approximate。若distribution = "exact",那么在零假设条件下,分布的计算是精确的(即依据所有可能的排列组合)。当然,也可以根据它的渐进分布(distribution = "asymptotic")或蒙特卡洛重抽样(distribution ="approxiamate(B = #)")来做近似计算,其中#指所需重复的次数。distribution = "exact"当前仅可用于两样本问题。

12.2.1 独立两样本和K样本检验

虚拟数据中的t检验与单因素置换检验:

> library(coin)
> score<-c(40,57,45,55,58,57,64,55,62,65)
>treatment<-factor(c(rep("A",5),rep("B",5)))
> mydata<-data.frame(treatment,score)
> t.test(score~treatment,data=mydata,var.equal=TRUE)
Two Samplet-test
data: score bytreatment
t = -2.345, df = 8, p-value = 0.04705
alternative hypothesis: true difference in means is notequal to 0
95 percent confidence interval:
-19.0405455 -0.1594545
sample estimates:
mean in group A mean in group B
51.0 60.6
>oneway_test(score~treatment,data=mydata,distribute="exact")
Asymptotic2-Sample Permutation Test
data: score by treatment(A, B)
Z = -1.9147, p-value = 0.05553
alternative hypothesis: true mu is not equal to 0
Wilcoxon-Mann-Whitney U检验
> library(MASS)
> UScrime<-transform(UScrime,So=factor(So))
>wilcox_test(Prob~So,data=UScrime,distribute="exact")
Asymptotic WilcoxonMann-Whitney Rank Sum Test
data: Prob by So(0, 1)
Z = -3.7493, p-value = 0.0001774
alternative hypothesis: true mu is not equal to 0

近似的K样本置换检验

> library(multcomp)

> set.seed(1234)

> oneway_test(response~trt,data=cholesterol,

+ distribution=approximate(B=9999))
ApproximativeK-Sample Permutation Test
data: response by
trt (1time, 2times, 4times, drugD, drugE)
maxT = 4.7623, p-value < 2.2e-16

12.2.2 列联表中的独立性

通过chisq_test()或cmh_test()函数,我们可用置换检验判断两类别型变量的独立性。

当数据可根据第三个类别型变量进行分层时,需要使用后一个函数。若变量都是有序型,可使用

lbl_test()函数来检验是否存在线性趋势。

> library(coin)

> library(vcd)

载入需要的程辑包:grid

> Arthritis<-transform(Arthritis,

+ Improved=as.factor(as.numeric(Improved)))

> set.seed(1234)

> chisq_test(Treatment~Improved,data=Arthritis,distribution=approximate(B=9999))

ApproximativePearson's Chi-Squared Test

data: Treatment byImproved (1, 2, 3)

chi-squared = 13.055, p-value = 0.0018

需要把变量Improved从一个有序因子变成一个分类因子是因为,如果用有序因子,coin()

将会生成一个线性与线性趋势检验,而不是卡方检验。

12.2.3 数值变量间的独立性

spearman_test()函数提供了两数值变量的独立性置换检验。

> states<-as.data.frame(state.x77)

> set.seed(1234)

>spearman_test(Illiteracy~Murder,data=states,distribution=approximate(B=9999))

ApproximativeSpearman Correlation Test

data: Illiteracyby Murder

Z = 4.7065, p-value < 2.2e-16

alternative hypothesis: true mu is not equal to 0#独立性假设并不被满足。

  

12.2.4 两样本和K样本相关性检验

当处于不同组的观测已经被分配得当,或者使用了重复测量时,样本相关检验便可派上用场。

对于两配对组的置换检验,可使用wilcoxsign_test()函数;多于两组时,使用friedman_

test()函数。

> library(coin)

> library(MASS)

>wilcoxsign_test(U1~U2,data=UScrime,distribution="exact")

ExactWilcoxon-Signed-Rank Test

data: y by x (neg,pos)

stratified by block

Z = 5.9691, p-value = 1.421e-14

alternative hypothesis: true mu is not equal to 0#结果表明两者的失业率是不同的

  

R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验的更多相关文章

  1. R in action读书笔记(17)第十二章 重抽样与自助法

    12.4 置换检验点评 除coin和lmPerm包外,R还提供了其他可做置换检验的包.perm包能实现coin包中的部分功能,因此可作为coin包所得结果的验证.corrperm包提供了有重复测量的相 ...

  2. 《深入理解java虚拟机》读书笔记十一——第十二章

    第十二章  Java内存模型与线程 1.硬件效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cac ...

  3. R in action读书笔记(12)第九章 方差分析

    第九章方差分析 9.2 ANOVA 模型拟合 9.2.1 aov()函数 aov(formula, data = NULL, projections =FALSE, qr = TRUE, contra ...

  4. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader) 代码工 ...

  6. JavaScript DOM编程艺术-学习笔记(第十二章)

    第十二章 1.本章是综合前面章节的所有东西的,一个综合实例 2.流程:①项目简介:a.获取原始资料(包括文本.图片.音视频等) b.站点结构(文件目录结构) c.页面(文件)结构 ②设计(切图) ③c ...

  7. R in action读书笔记(19)第十四章 主成分和因子分析

    第十四章:主成分和因子分析 本章内容 主成分分析 探索性因子分析 其他潜变量模型 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因 ...

  8. Linux内核设计与实现 总结笔记(第十二章)内存管理

    内核里的内存分配不像其他地方分配内存那么容易,内核的内存分配不能简单便捷的使用,分配机制也不能太复杂. 一.页 内核把页作为内存管理的基本单位,尽管处理器最小寻址坑是是字或者字节.但是内存管理单元MM ...

  9. R in action读书笔记(22)第十六章 高级图形进阶(下)

    16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set() ...

随机推荐

  1. Android 怎样在java/native层改动一个文件的权限(mode)与用户(owner)?

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载.但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. Linux进程间通信——使用信号量【转】

    本文转载自:http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号 ...

  3. 小幻美图 API

    『不忘初心,方得始终.』 小幻美图 API 更新:2015.03.29 目前提供的API共有10种! 必应各种今日获取API共4种! 本站收录图片获取API共4种! 网络图片尺寸修改API共1枚! 百 ...

  4. YTU 2953: A代码填充--学画画

    2953: A代码填充--学画画 时间限制: 1 Sec  内存限制: 128 MB 提交: 62  解决: 52 题目描述 最近小平迷上了画画,经过琨姐的指导,他学会了RGB色彩的混合方法.对于两种 ...

  5. openssl动态库编译

    通常Linux系统自带OpenSSL,但是其so文件由于没有debug信息,因此无法跟踪内部函数,对于学习 不太方便,需要通过源码重新安装.         我的Linux系统是CentOS7,自带的 ...

  6. CollectionView旋转水平卡片布局

    概述 UICollectionView真的好强大,今天我们来研究一下这种很常见的卡片动画效果是如何实现了.本篇不能太深入地讲解,因为笔者也是刚刚摸索出点眉目,但是并没有深刻地理解.如果在讲解过程中,出 ...

  7. 【JSOI 2007】祖玛

    [题目链接] 点击打开链接 [算法] f[i][j]表示第i段到第j段,最少需要多少次全部消除 那么,当color[i] = color[j]时 : 若s[i] + s[j] > 2,根据题目中 ...

  8. 动态点分治入门 ZJOI2007 捉迷藏

    传送门 这道题好神奇啊……如果要是不带修改的话那就是普通的点分治了,每次维护子树中距离次大值和最大值去更新. 不过这题要修改,而且还改500000次,总不能每改一次都点分治一次吧. 所以我们来认识一个 ...

  9. Python+页面元素高亮源码实例

    简单写了一个页面元素高亮的方法,原理就是在python中调用js实现元素高亮,分享一下源码如下: 1.元素高亮源码 Js调用 js = "var q=document.getElementB ...

  10. J20170524-hm

    取りこぼし 意外地输给较自己实力弱的对手,爆出冷门,败给手下败将 振り分け 分配,整理 スキーマ 图解.模式.图式