Bootstrap自助抽样法的原理、应用与python实现

这篇具有很好参考价值的文章主要介绍了Bootstrap自助抽样法的原理、应用与python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

概念

Bootstrap自助抽样和交叉验证(Cross-Validation)一样也是一种重抽样(resampling)方法,它可以帮助近似得到统计量估计量的分布。

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

优点

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

帮助估计统计量估计量的方差①

假设有bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档(其中T是分布bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档的函数)的估计量bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档(X1, ... ,Xn),一般来说,要评价bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档的准确性(accuracy),需要计算其均方误差(MSE ,Mean Squared Error):

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

当样本量n较大时,经验分布函数bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档会趋近于实际分布bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档,因此bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档的估计量自然是bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档,因此上式的前半部的可写为:

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

接下来计算后半部分bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档的方差,根据公式有:

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

由于上式的和中有bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档项,因此计算此式并不合理,即便样本量小到bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档.

考虑到bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档会在X1, ... ,Xn每个数据点上都乘以1/n,所以从bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档中取任何观测值和直接在原始数据中取值一样。

Notice that bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档 puts mass 1/n at each data point X 1 , ... ,X n . Therefore, rawing an observation from bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档 is equivalent to drawing one point at random from the original data set. ②

因此,解决上述问题可以通过从bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档中取m个大小为n的随机样本,并根据每个分别样本求bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档(共m个),使用这m个数据的样本方差作为估计量:

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

这里的m个样本被称为是bootstrap样本(bootstrap samples)或者重抽样样本(resamples),它们的均值称为bootstrap均值(bootstrap mean),bootstrap标准误(bootstrap standard error)则为(下文记为bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档):

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

应用与步骤

综上所述,bootstrap常用于:

  • 统计量的标准误差

  • 未知参数的置信区间

  • 假设检验的p值

进行步骤

  1. 有放回的重抽样n个样本;

  1. 根据1的样本计算统计量;

  1. 将1和2重复m次,得到bootstrap样本,再计算其样本方差或者样本标准误.

The distribution of statistics(bootstrap samples) in 3 is called a bootstrap distribution, which gives information about the shape, center, and spread of the sampling distribution of the statistic.

更多应用

假设检验内容见③

既然知道了统计量的标准误,就可以进一步计算bootstrap置信区间 (bootstrap confidence interval),主要有3种(证明见②):

    • 正态置信区间(The Normal Interval)

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

*该区间仅在bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档接近于正态分布时准确(如样本均值bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档)。

2. 枢轴量置信区间(Pivotal Intervals)

定义枢轴量为bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档 bootstrap枢轴量置信区间为:

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

其中,bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档为bootstrap样本,bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档为bootstrap样本中的α/2分位数。

3. 百分位数置信区间(Percentile Intervals)

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档

Python实现

population = list(np.random.normal(loc =2.0, scale= 2.0, size = 2000))  # 产生总体数据

result = pd.DataFrame({                                  # 产生bootstrap samples的以及模拟数据的容器
    "sample_time": [10,50,100,500,1000,5000,10000,50000,100000,500000,1000000],
    "sample_mean": [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    "sample_mean_std": [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]
})

sampl = random.sample(population,36)  # 抽取36个初始样本

for _ in range(len(result["sample_mean"])):
    btstp_stat = []
    for i in range(int(result["sample_time"][_])): # 指定抽样次数
        bst_sampl = list(np.random.choice(sampl,size=36, replace=True))  # 重抽样
        btstp_stat.append(np.mean(bst_sampl))   # 产生抽样统计量列表
    result.loc[_,"sample_mean"] = np.mean(btstp_stat)
    result.loc[_,"sample_mean_std"] = np.std(btstp_stat,ddof=1)   # 将结果写入bootstrap结果数据框里
    print(len(btstp_stat))
    btstp_stat.clear()

print(result)  #打印结果

从结果中可以看到,随着bootstrap 抽样次数的增加(从10次到100万次),bootstrap mean 和bootstrap standard error渐趋收敛。

bootstrap抽样,bootstrap,概率论,python,Powered by 金山文档
参考文献

① https://www.utstat.toronto.edu/mikevans/jeffrosenthal/book.pdf

② 《all-of-statistics》

③ https://zhuanlan.zhihu.com/p/367069334文章来源地址https://www.toymoban.com/news/detail-784028.html

到了这里,关于Bootstrap自助抽样法的原理、应用与python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用Django和Bootstrap如何实现收藏功能?

    要实现影片详情页中的收藏按钮,可以结合Bootstrap和Django来完成。以下是一种可能的实现方式: 数据库模型: 首先,你需要有一个数据库模型来存储用户的收藏信息。在Django中,可以创建一个模型来表示用户的收藏关系,例如: 视图函数: 创建一个视图函数,用于处理用户

    2024年02月02日
    浏览(37)
  • Python进阶项目--只因博客(bootstrap+flask+mysql)

    只因首页效果图 1.1 具体步骤 1.2 Pycharm虚拟环境的配置 2.1 Flask的ORM 2.2 数据迁移 2.3 插件代码 3.1 app.py 3.2 init.py 3.3 views.py 3.4 views_admin.py 3.5 models.py 3.6 models_admin.py Flask入门和视图–01 Flask会话技术和Flask模板语言–02 Flask模型基础–03 敲黑板!!🎮看此片段时建议先看看这篇博客

    2024年02月03日
    浏览(35)
  • Vue--》搭配Bootstrap实现Vue的列表增删功能

    在日常开发中,我们可以用 “拿来主义” 借助Bootstarp现成的一些样式,快速生成我们想要的页面布局,避免书写大量的HTML和CSS代码,省下了许多不必要的时间。 当我们想要生成表单表格时我们可以查看Bootstrap的官方文档,来选择我们想要的样式,并根据自己的一些实际情况

    2024年02月02日
    浏览(43)
  • 【前端素材】bootstrap5实现美食餐饮网站RegFood

    一、需求分析 美食餐饮网站是指专门提供关于美食和餐饮的信息、服务和资源的在线平台。这类网站通常提供以下功能: 餐厅搜索和预订:用户可以在网站上搜索附近的餐厅,并预订桌位。网站会提供餐厅的详细信息,包括菜单、地址、电话号码和用户评价等。 菜谱和食谱

    2024年02月03日
    浏览(44)
  • 用前端框架Bootstrap和Django实现用户注册页面

    命令如下: 执行下面条命令依次创建需要的应用: 名叫users的应用创建好后,还需要在全局配置文件中对应在用进行注册,具体方法如下: 打开““E:Python_projectP_001myshop-testmall_backendmall_backendsettings.py””文件,找到名叫“INSTALLED_APPS”的列表(list),在其中加入应用名,

    2024年02月06日
    浏览(51)
  • 基于SpringBoot+Bootstrap的旅游管理系统的设计与实现

    目录 前言  一、技术栈 二、系统功能介绍 登录模块的实现 景点信息管理界面 订票信息管理界面 用户评价管理界面 用户管理界面 景点资讯界面 系统主界面 用户注册界面 景点信息详情界面 订票信息界面 三、核心代码 1、登录模块  2、文件上传模块 3、代码封装 随着旅游业

    2024年02月07日
    浏览(37)
  • 关于BootStrap的前端简易样式和简单分页的实现

    理想如下:  以学生登录系统为例,下方代码能够搭建基本的左侧导航栏,右侧内容的框架  导航栏中每一行用超链接表示,a 指向对应的controller层方法,target=\\\"iframe_a\\\" 指向右侧内容 ,最终实现在iframe_a容器中显示conroller层调用的方法显示的界面 如下所示,点击报修后 任意

    2024年01月24日
    浏览(49)
  • 实现bootstrap table可设置列宽和可拖动列宽

    (1)第一种设置data-resizable属性 表格会自动实现拖拽 临界位置会出现…覆盖 (2)第二种通过动态计算宽度设置头部div宽度实现,可以配置最小的宽度minWidth 设置最小宽度后临界效果 demo下载地址

    2024年02月06日
    浏览(38)
  • django bootstrap html实现左右布局,带折叠按钮,左侧可折叠隐藏

         在django项目中,需要使用bootstrap 实现一个左右分布的布局,左侧区域可以折叠隐藏起来,使得右侧的显示区域变大。(为了区分区域,左右加了配色,不好看的修改颜色即可)  点击折叠按钮,左侧区域隐藏,右侧区域铺满:          1、使用col-md属性,让左右两个区

    2024年02月14日
    浏览(55)
  • 利用Bootstrap的面包屑组件实现面包屑层次分级导航效果

    可以用类breadcrumb实现面包屑层次导航效果。 当使用 Bootstrap 构建网页时, breadcrumb 类用于创建面包屑导航(breadcrumb navigation),这是一种可视化导航元素,通常用于指示用户当前页面在网站层次结构中的位置。面包屑导航以层次结构形式显示,通常采用类似 “Home Products Ca

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包