Bootstrap方法在之前的博文《R语言与点估计学习笔记(EM算法与Bootstrap法)》里有提到过,简而言之,bootstrap方法就是重抽样。为什么需要bootstrap方法呢?因为bootstrap方法使得我们无需分布理论的知识也可以进行假设检验,获得置信区间。当数据来自未知分布,或者存在严重异常点,又或者样本量过小,没有参数方法解决问题时,bootstrap方法将是一个很棒的方法。
对于回归分析而言,bootstrap无疑对回归的正态性假设做了极大地放松,使得回归推断越来越好用,也更具有说服力。
从博文《R语言与点估计学习笔记(EM算法与Bootstrap法)》里可以看到,对于参数统计,特别是在已知分布的参数估计,bootstrap并没有多大的意义,它的结果和矩估计或者极大似然估计的结果并没有多大的差别(如果有差别会令人觉得很奇怪,不是吗?)
Boot包中提供了做bootstrap的两个十分好用的函数:boot(),boot.ci()。两者的调用格式与参数说明如下:
Boot()函数:
boot(data, statistic, R, sim ="ordinary", stype = c("i", "f", "w"),
strata= rep(1,n), L = NULL, m = 0, weights = NULL,
ran.gen = function(d, p) d, mle = NULL, simple = FALSE, ...,
parallel = c("no", "multicore", "snow"),
ncpus = getOption("boot.ncpus", 1L), cl = NULL)
参数说明:
Data:数据,可以是向量,矩阵,数据框
Statistic:统计量,如均值,中位数,回归参数,回归里的R^2等
R:调用统计量函数次数
Boot()的返回值:
T0:从原始数据中得到的k个统计量的观测值
T:一个R*K的矩阵
Boot.ci()函数:
boot.ci(boot.out, conf = 0.95, type = "all",
index = 1:min(2,length(boot.out$t0)), var.t0 = NULL,
var.t = NULL, t0 = NULL, t = NULL, L = NULL,
h = function(t) t, hdot = function(t) rep(1,length(t)),
hinv = function(t) t, ...)
参数说明:
Boot.out():boot函数的返回值
Type:返回置信区间的类型,R中提供的有"norm" ,"basic", "stud","perc", "bca"