12.4 置换检验点评

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

logregperm包提供了Logistic回归的置换检验。另外一个非常重要的包是glmperm,它涵盖了广义线性模型的置换检验依靠基础的抽样分布理论知识,置换检验提供了另外一个十分强大的可选检验思路。对于上面描述的每一种置换检验,我们完全可以在做统计假设检验时不理会正态分布、t分布、F分布或者卡方分布。当然,置换检验真正发挥功用的地方是处理非正态数据(如分布偏倚很大)、存在离群点、样本很小或无法做参数检验等情况。不过,如果初始样本对感兴趣的总体情况代表性很差,即使是置换检验也无法提高推断效果。置换检验主要用于生成检验零假设的p值,它有助于回答“效应是否存在”这样的问题。

12.5 自助法

所谓自助法,即从初始样本重复随机替换抽样,生成一个或一系列待检验统计量的经验分布。

无需假设一个特定的理论分布,便可生成统计量的置信区间,并能检验统计假设。比如,你想计算一个样本均值95%的置信区间。假设均值的样本分布不是正态分布:

(1) 从样本中随机选择10个观测,抽样后再放回。有些观测可能会被选择多次,有些可能一

直都不会被选中。

(2) 计算并记录样本均值。

(3) 重复1和2一千次。

(4) 将1000个样本均值从小到大排序。

(5) 找出样本均值2.5%和97.5%的分位点。此时即初始位置和最末位置的第25个数,它们就限

定了95%的置信区间。

12.6 boot 包中的自助法

boot包扩展了自助法和重抽样的相关用途。可以对一个统计量(如中位数)或一个统计

量向量(如一列回归系数)使用自助法.

自助法有三个主要步骤。

(1) 写一个能返回待研究统计量值的函数。如果只有单个统计量(如中位数),函数应该返回

一个数值;如果有一列统计量(如一列回归系数),函数应该返回一个向量。

(2) 为生成R中自助法所需的有效统计量重复数,使用boot()函数对上面所写的函数进行处理。

(3) 使用boot.ci()函数获取第(2)步生成的统计量的置信区间。

主要的自助法函数是boot(),它的格式为:bootobject<-boot(data=,statistic=,R=,…)

data:量、矩阵或者数据框

statistic:生成k个统计量以供自举的函数(k=1时对单个统计量进行自助抽样)函数需包括indices参数,以便boot()函数用它从每个重复中选择实例

R:自助抽样的次数

...:其他对生成待研究统计量有用的参数,可在函数中传输

boot()函数调用统计量函数R次,每次都从整数1:nrow(data)中生成一列有放回的随机指

标,这些指标被统计量函数用来选择样本。统计量将根据所选样本进行计算,结果存储在

bootobject中。boot()函数中返回对象所含的元素

t0 从原始数据得到的k个统计量的观测值

t 一个R × k矩阵,每行即k个统计量的自助重复值

你可以如bootobject$t0和bootobject$t这样来获取这些元素。

一旦生成了自助样本,可通过print()和plot()来检查结果。如果结果看起来还算合理,

使用boot.ci()函数获取统计量的置信区间。格式如下:

Boot.ci(bootobject,couf=type=)

bootobject boot()函数返回的对象

conf 预期的置信区间(默认:conf =0.95)

type 返回的置信区间类型。可能值为norm、basic、stud、perc、bca和all(默认:type =all)

type参数设定了获取置信区间的方法。perc方法(分位数)展示的是样本均值,bca将根据

偏差对区间做简单调整

12.6.1 对单个统计量使用自助法

> rsq<-function(formula,data,indices){

+ d<-data[indices,]

+ fit<-lm(formula,data=d)

+ return(summary(fit)$r.square)

+ }

> set.seed(1234)

> results<-boot(data=mtcars,statistic=rsq,R=1000,formula=mpg~wt+disp)

> print(results)

ORDINARY NONPARAMETRICBOOTSTRAP

Call:

boot(data = mtcars,statistic = rsq, R = 1000, formula = mpg ~

wt + disp)

Bootstrap Statistics :

original bias std. error

t1* 0.78093060.0133367 0.05068926

可以看到,自助的R平方值不呈正态分布。它的95%的置信区间可以通过如下代

码获得:

> boot.ci(results,type=c("perc","bca"))

BOOTSTRAP CONFIDENCE INTERVALCALCULATIONS

Based on 1000 bootstrap replicates

CALL :

boot.ci(boot.out = results, type =c("perc", "bca"))

Intervals :

Level Percentile BCa

95% ( 0.6838, 0.8833 ) ( 0.6344, 0.8549 )

Calculations and Intervals on OriginalScale

Some BCa intervals may be unstable

12.6.2 多个统计量的自助法

首先,创建一个返回回归系数向量的函数:

> bs<-function(formula,data,indices){

+ d<-data[indices,]

+ fit<-lm(formula,data=d)

+ return(coef(fit))

+ }

> results<-boot(data=mtcars,statistic=bs,R=1000,formula=mpg~wt+disp)

> print(results)

ORDINARY NONPARAMETRIC BOOTSTRAP

Call:

boot(data = mtcars, statistic = bs, R= 1000, formula = mpg ~

wt + disp)

Bootstrap Statistics :

original bias std. error

t1* 34.96055404 0.1101475088 2.445950503

t2* -3.35082533 -0.08573079461.114315903

t3* -0.01772474 0.0003223228 0.008201569

plot(results,index=2)

12.7 小结

本章,我们介绍了一系列基于随机化和重抽样的计算机密集型方法,它们使你无需理论分布

的知识便能够进行假设检验,获得置信区间。当数据来自未知分布,或者存在严重的离群点,或

者样本量过小,又或者没有参数方法可以回答你感兴趣的假设问题时,这些方法是非常实用的。

R in action读书笔记(17)第十二章 重抽样与自助法的更多相关文章

  1. R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

    第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被 ...

  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读书笔记(21)第十六章 高级图形进阶(上)

    16.1 R 中的四种图形系统 基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice)).要调用ggplot2函数需下载并安装该包(inst ...

随机推荐

  1. 理解static关键字

    1.static 变量是类变量,通过类名引用. 2.static 方法不需要针对某个对象进行操作,其运行结果仅仅与输入的参数有关,调用时直接类名引用. 3.static 方法不能对非静态成员进行访问. ...

  2. 修改系统时间(取得服务器时间,使用SetLocalTime API函数,需要UAC权限)

    我的客户遇到系统时间不对,自己又不会改,于是想到利用服务端时间来修改本地的系统时间. 第一步,把下面xml存成uac.xml文件备用. <?xml version="1.0" ...

  3. ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址

    1:下载地址http://code.google.com/p/autosetup1/downloads/detail?name=jdk-6u20-linux-i586.bin&can=2&am ...

  4. 洛谷 P1082 同余方程 —— exgcd

    题目:https://www.luogu.org/problemnew/show/P1082 用 exgcd 即可. 代码如下: #include<iostream> #include&l ...

  5. Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  6. 【194】Windows 上使用 wget

    本文包括两部分,首先就是在 Windows 使用 wget 来下载文件,这样固然很好,然而问题并非这么简单,在 PowerShell 4.0 版本中增加了 Invoke-WebRequest 的别名 ...

  7. Objective-C NSData/NSMutableData

    创建于完成: 2018/02/06 总览: http://www.cnblogs.com/lancgg/p/8404975.html  数据类   简介 处理比特列 Foundation/NSData ...

  8. Ruby Encoding类

    Encoding类  内部编码  IO对象内部处理时候的编码   外部编码  IO对象对外输出的时候的编码  输入  外部字符与自己的外部编码对比(没设定的默认                     ...

  9. bzoj 3105: [cqoi2013]新Nim游戏【线性基+贪心】

    nim游戏的先手必胜条件是所有堆的火柴个数异或和为0,也就是找一个剩下火柴堆数没有异或和为0的子集的方案,且这个方案保证剩下的火柴个数总和最大 然后我就不会了,其实我到现在也不知道拟阵是个什么玩意-- ...

  10. zoj 2760 How Many Shortest Path【最大流】

    不重叠最短路计数. 先弗洛伊德求一遍两两距离(其实spfa或者迪杰斯特拉会更快但是没必要懒得写),然后设dis为st最短距离,把满足a[s][u]+b[u][v]+a[v][t]==dis的边(u,v ...