代码之家  ›  专栏  ›  技术社区  ›  Shima

逻辑模型中的Bootstrap

  •  0
  • Shima  · 技术社区  · 9 年前

    我有以下逻辑模型

     Call:
     glm(formula = Y ~ ., family = binomial, data = datasim)
    
     Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
    -1.79670  -1.06758   0.00754   1.08200   1.69251  
    
    Coefficients:
                 Estimate Std. Error z value Pr(>|z|)   
    (Intercept) -0.11504    1.02968  -0.112  0.91104   
    X1           0.17173    0.31899   0.538  0.59034   
    X2          -0.01573    0.28294  -0.056  0.95567   
    X3          -0.36905    0.29577  -1.248  0.21212   
    X4          -0.34710    0.29518  -1.176  0.23965   
    X5           0.01733    0.36088   0.048  0.96170   
    X6          -0.33492    0.38217  -0.876  0.38083   
    X7           0.20179    0.31615   0.638  0.52328   
    X8          -0.42734    0.26011  -1.643  0.10040   
    X9          -0.02750    0.29571  -0.093  0.92590   
    X10          0.76991    0.26840   2.868  0.00412 **
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    (Dispersion parameter for binomial family taken to be 1)
    
    Null deviance: 138.63  on 99  degrees of freedom
    Residual deviance: 125.09  on 89  degrees of freedom
    AIC: 147.09
    
    Number of Fisher Scoring iterations: 4
    

    然后我计算模型的“分数”,例如X=$null.deviance-$deviance。在这种情况下,X=138.63-125.09。 现在,我想使用bootstrap计算得分的平均值和置信区间。我如何在R中实现这一点?

    1 回复  |  直到 4 年前
        1
  •  2
  •   J.R.    9 年前

    看看包裹 boot 。下面是一个适合您情况的模拟示例:

    library(boot)
    x <- rnorm(100)
    Y <- exp(x + rnorm(100)) > 1
    datasim <- data.frame(Y, x)
    
    dDeviance <- function(data, indices){
      fit <- glm(formula = Y ~ ., family = binomial, data = data[indices, ])
      with(fit, null.deviance - deviance)
    }
    boot(data = datasim, statistic = dDeviance, R = 100)
    

    带输出:

    ORDINARY NONPARAMETRIC BOOTSTRAP
    
    
    Call:
    boot(data = datasim, statistic = dDeviance, R = 100)
    
    
    Bootstrap Statistics :
        original   bias    std. error
    t1* 41.02692 1.445287    9.712626