zoukankan      html  css  js  c++  java
  • R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

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

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

    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#结果表明两者的失业率是不同的
    

      

  • 相关阅读:
    psi
    firefox修改语言
    automapper
    堆喷图解
    脱壳系列_0_FSG壳_详细版
    脱壳系列_1_UPX壳_详细版
    算法01-最大子数组详解
    逆向MFC程序
    如何执行shell命令
    Unity之流光效果
  • 原文地址:https://www.cnblogs.com/jpld/p/4470116.html
Copyright © 2011-2022 走看看