Bootstrap本意是拎着靴带让自己跳起来,在统计学中是一种重采样的方法,通常在样本量小的时候,可以从中不断再次抽样。

1. Bootstrap 简单应用

Bootstrap bias偏差 &variance 方差

library(bootstrap)
bslogc<-function(x,B){n<-length(x)thetastar<-replicate(B,{xstar<-sample(x,n,replace = T)median(xstar)} )thetastar
}x <- diabetes$logCpeptide
hist(x, freq = FALSE, main = "Histogram of diabetes data")
median(x)
bscpep<-bslogc(x,1000)
hist(bscpep,freq = FALSE, breaks = 7,main = "Histogram of bootstrap diabetes medians")
var(bscpep)
bias<-mean(bscpep)-median(x)

Bootstrap correlation

samplecorr <- function(data, B) {n <- nrow(data)res <- numeric(B)for(i in 1:B) {ind <- sample(n, n, replace = TRUE)bs_data <-  data[ind, ]res[i] <- cor(bs_data[ , 1], bs_data[ , 2])}res
}
cor(law)
cor(law[ , 1], law[ , 2])
bs_law <- samplecorr(law, 10000)
hist(bs_law,  freq = FALSE,main = "Histogram of law data bootstrap corellation coefficients")
bias.law <- mean(bs_law) - cor.law[1, 2]
bias.law
var(bs_law)cor(law82)
bs_law82 <- samplecorr(law82[ , 2:3], 10000)
hist(bs_law82,  freq = FALSE,main = "Histogram of law82 data bootstrap corellation coefficients")
bias.law82 <- mean(bs_law82) - cor.law82[1, 2]
bias.law82
var(bs_law82)

Bootstrap方法比较实验组与对照组

mean(mouse.t)-mean(mouse.c)
bsmice<-function(x,y,B){n1<-length(x)n2<-length(y)thet1<-replicate(B,{xstar<-sample(x,n1,replace = T)mean(xstar)})thet2<-replicate(B,{ystar<-sample(y,n2,replace = T)mean(ystar)})d=thet1-thet2}df1=bsmice(mouse.t,mouse.c,1000)
head(df1)
pihat <- sum(df1 > 10) / length(df1) #probability that survival time difference > 10
pihat

2.Bootstrap residuals

ebs_eps<-function(y,x,B){fit <- lm(y ~ x)e <- residuals(fit)y_fitted <- fitted(fit) # or : beta[1] + beta[2] * x <- wood$density # for conveniencebs_resid <- matrix(0, nrow = B, ncol = 2)n<-length(y)for(i in 1:B){e_star <- sample(e, n, replace = TRUE)y_star <- y_fitted + e_starfit_star <- lm(y_star ~ x)bs_resid[i, ] <- coef(fit_star)}bs_resid
}wood <- read.table("wood.txt", header = TRUE)
bs_beta <-ebs_eps(y = wood$hardness, x = wood$density, 1000)fit_wood <- lm(hardness ~ density, data = wood)
beta <- coef(fit_wood)plot(wood$density, wood$hardness, main = "",  xlab = "density", ylab = "hardness")
yreg <- beta[1] + beta[2] * wood$density
lines(wood$density, yreg, col = "red")
for(i in 1:10) {yest <- bs_beta[i, 1] + bs_beta[i, 2] * wood$densitylines(wood$density, yest)
}hist(bs_beta[, 1], xlab = "Estimate of alpha", freq = FALSE)
hist(bs_beta[ , 2], xlab = "Estimate of beta", freq = FALSE)

3.Bootstrap 置信区间

s1=rgamma(50,shape = 4,rate = 1)
hist(s1)
n <- length(s1)
B=10000
zstar<-{}
for (i in 1:B){xstar<- sample(s1,n,replace = T)ths<-mean(xstar)se<-sd(xstar)/sqrt(n)zstar[i]<- (ths-theta_hat)/se
}tq<-quantile(zstar,c(0.05,1-0.05))
theta_hat-c(tq[2],tq[1])*se_hat
library(bootstrap)
help(bootstrap)
boott(s1,theta = function(x) mean(x),perc=c(.025,.05,.10,.50,.90,.95,.975))

Bootstrap方法在R语言中的运用相关推荐

  1. raster | R语言中的空间栅格对象及其基本处理方法(Ⅰ)

    前面的系列推文已经完成了对R语言中的两个管理空间矢量数据的工具包(sf和sp)的介绍,以及空间自相关.空间插值等空间分析方法. 这里小编再推出一个系列来介绍R语言中管理空间栅格数据的工具包:raste ...

  2. R语言中读取xlsx文件的方法

    R语言中读取xlsx文件的方法 安装包 install.packages("openxlsx") library(openxlsx) 文件名+sheet的序号 data<- ...

  3. R语言中不同类型的聚类方法比较

    聚类方法用于识别从营销,生物医学和地理空间等领域收集的多变量数据集中的相似对象.我们围绕聚类技术进行一些咨询,帮助客户解决独特的业务问题.它们是不同类型的聚类方法,包括: 划分方法 分层聚类 模糊聚类 ...

  4. R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据

    原文链接:http://tecdat.cn/?p=20828 本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是_最小_最_大凹_度_惩罚_函数_(MCP)_和光滑切片绝 ...

  5. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  6. R开发(part8)--应用R语言中的函数环境空间

    学习笔记,仅供参考,有错必纠 文章目录 R开发 应用R语言中的函数环境空间 R语言的函数环境空间 封闭环境 绑定环境 运行环境 调用环境 函数环境空间图示 R开发 应用R语言中的函数环境空间 R语言的 ...

  7. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  8. r语言c5.0要求因子输出,R语言中因子的创建与使用

    原标题:R语言中因子的创建与使用 因子在R语言中可以用来表示名义型变量或有序变量.名义变量一般表示类别,如性别,种族等等.有序变量是有一定排序顺序的变量,如职称,年级等等.在R语言中,名义变量和有序变 ...

  9. 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...

    高德地图和百度地图都提供了坐标拾取系统,通过坐标查询或坐标反查操作可以查询一个地址对应的经纬度或经纬度对应的地址名称.但是,手动查询的方式效率很低,也不能进行批量查询. 本篇就来介绍在R语言中调用高德 ...

最新文章

  1. NetworkOnMainThreadException异常
  2. 上传漏洞新姿势(限Linux)
  3. 26.智能指针和动态内存
  4. Mybatis如何打印sql语句
  5. python缓存技术_Python中整数的缓存机制讲解
  6. freemind在ubuntu20.04下面的安装
  7. 3.1 读入一个参数
  8. hibernate中antlr对于hql生成抽象语法树源码解析
  9. node express创建项目步骤
  10. 融云联合ofo给大家送福利!
  11. TP5.0Composer安装phpQuery
  12. 【Serenity BDD】使用ChromeDriver打开Chrome浏览器是弹出“Chrome is being controlled by automated software”提示栏
  13. 在visio中不借助公式编辑器在字母上方打波浪线
  14. 产品生命周期用户生命周期?
  15. 冲激响应(impulse response)
  16. 信阳师范学院计算机老师,信阳师范学院计算机与信息技术学院导师教师师资介绍简介-樊建伟...
  17. 门店私域运营,突围线上冲击
  18. Java产生一个随机数【详细教学】巨简单
  19. 浅析ArcIMS---转自Mars的自语
  20. electron-vue跨平台桌面应用开发实战教程(三)——动态修改窗口大小

热门文章

  1. luogu2161 SHOI2009 会场预约
  2. ERP实施-保密配方管理方案
  3. VASP全家桶示例 | Singularity方案
  4. html的font字号1-7,CSS 字体大小font-size设置
  5. 项目部署-didi/LogiKM
  6. 日本动画现状“我是一个前动画师,有什么要问的”
  7. 捕鱼达人的算法猜测—较色碰撞算法
  8. mysql slap_组合方法和SLAP
  9. 人民币大小写转换工具类
  10. Monaco Editor