从具有多个统计信息的boot()函数中获取图和95%CI

时间:2018-07-16 23:30:42

标签: r

我开始探索boot()软件包中boot函数的局限性。我刚刚想出了如何从一个调用中提取多个统计信息,但是我不知道如何为它们建立索引。

bs <- function(formula, data, indices) {
  d <- data[indices,] # allows boot to select sample
  fit <- lm(formula, data=d)
  return(c(coef(fit), summary(fit)$r.squared)) # four stats extracted 
}

现在具有1000个重复的引导程序。

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

现在,如果我们绘制并尝试获得此对象的95%CI,我们将仅获取统计信息中的第一个,在这种情况下,该模型的截距为。

plot(results)
boot.ci(results, type="bca")

# BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
# Based on 1000 bootstrap replicates
# 
# CALL : 
#   boot.ci(boot.out = results, type = "bca")
# 
# Intervals : 
#   Level       BCa          
# 95%   (30.27, 39.53 )  
# Calculations and Intervals on Original Scale

如何索引其他四个参数(一个一和/或一起)?

1 个答案:

答案 0 :(得分:2)

首先注意:

> head(results$t)
         [,1]      [,2]         [,3]      [,4]
[1,] 35.94765 -4.358146 -0.010605142 0.7471584
[2,] 33.54691 -3.319141 -0.011821276 0.8463980
[3,] 34.01732 -3.627647 -0.009797742 0.6727989
[4,] 32.26678 -1.717800 -0.030443778 0.7466273
[5,] 35.78895 -3.944054 -0.016471864 0.8277447
[6,] 33.99407 -3.560855 -0.014129072 0.8412922

因此,您可以仅使用result$t[,i]来访问第ith个元素。看起来第一列是截距,第二列是权重系数,第三列是位移系数,最后一列是R平方。

您还可以使用boot.ci(results, type="bca", index=i)访问第i列,情节plot(results, index=i)也是如此。