【数学建模】《实战数学建模:例题与讲解》第七讲-Bootstrap方法(含Matlab代码)

news2025/2/1 8:46:53

【数学建模】《实战数学建模:例题与讲解》第七讲-Bootstrap方法(含Matlab代码)

    • 基本概念
    • 习题7.3
      • 1. 题目要求
      • 2.解题过程
      • 3.程序
      • 4.结果
    • 习题7.5
      • 1. 题目要求
      • 2.解题过程
      • 3.程序
      • 4.结果

如果这篇文章对你有帮助,欢迎点赞与收藏~
在这里插入图片描述

基本概念

Bootstrap方法是一种统计技术,用于估计一个样本统计量的分布(例如均值、中位数或标准偏差)。它通过从原始数据集中重复抽取样本(通常是带替换的)来工作,允许评估统计量的变异性和不确定性。这种方法特别有用于小样本数据集或当传统参数统计方法不适用时。

Bootstrap过程的基本步骤如下:

  1. 重复抽样:从原始数据集中随机抽取n个观测值,形成一个新的样本。这个过程通常是带替换的,意味着同一个观测值可以在一个样本中出现多次。

  2. 计算统计量:在每个新生成的样本上计算感兴趣的统计量(例如均值或中位数)。

  3. 重复过程:重复上述两步多次(通常是成千上万次),生成统计量的多个估计值。

  4. 分析结果:通过观察所有估计值的分布来评估统计量的分布、置信区间等。

习题7.3

1. 题目要求

image-20230427135726289

2.解题过程

解:

相继地、独立地自原始样本数据用放回抽样的方法,得到10000个容量均为5的Bootstrap 样本。

对每个Bootstrap样本算出样本均值 x ‾ i ∗ ( i = 1 , 2 , ⋯   , 10000 ) \overline{{{x}}}_{i}^{^{\ast}}(i=1,2,\cdots,10000) xi(i=1,2,,10000) ,将10000个 x ‾ ∗ {\overline{{x}}}^{*} x 按自小到大排序,左起第500位为 x ‾ ( 500 ) ∗ = 1098 {\overline{{x}}}_{(500)}^{*}=1098 x(500)=1098 ,左起第9500位为 x ‾ ( 9500 ) ∗ = 1232 {\overline{{x}}}_{(9500)}^{*}=1232 x(9500)=1232 ,于是得 μ 的一个置信水平为0.90的Bootstrap置信区间为
( x ‾ ( 500 ) ∗ , x ‾ ( 9500 ) ∗ ) = ( 1098 , 1232 ) ({\overline{{x}}}_{(500)}^{*},{\overline{{x}}}_{(9500)}^{*})=(1098,1232) (x(500),x(9500))=(1098,1232)

3.程序

求解的MATLAB程序如下:

clc, clear

a = [1050, 1100, 1120, 1250, 1280];
b = bootci(10000, {@ (x)mean(x), a}, 'alpha', 0.1);
b

4.结果

image-20230427140709076

得 μ 的一个置信水平为0.90的Bootstrap置信区间为:
( x ‾ ( 500 ) ∗ , x ‾ ( 9500 ) ∗ ) = ( 1098 , 1232 ) ({\overline{{x}}}_{(500)}^{*},{\overline{{x}}}_{(9500)}^{*})=(1098,1232) (x(500),x(9500))=(1098,1232)

习题7.5

1. 题目要求

image-20230427144554002

2.解题过程

解:

求解 x 和 y 之间的回归方程,即一个能够最佳拟合这些数据的线性模型.

构造线性方程组的系数矩阵 b。它由四列组成,分别是 1/x、1、x 和 x 的平方。这些列的选择基于假设的线性关系形式,但也可以根据具体的问题进行调整。需要注意的是,已经对 x 取了转置,使其成为一个列向量。

求出的系数矩阵如下:
b = [ 1.0000 1.0000 1.0000 1.0000 0.5000 1.0000 2.0000 4.0000 0.2500 1.0000 4.0000 16.0000 0.2000 1.0000 5.0000 25.0000 0.1429 1.0000 7.0000 49.0000 0.1250 1.0000 8.0000 64.0000 0.1111 1.0000 9.0000 81.0000 0.1000 1.0000 10.0000 100.0000 ] b= \begin{bmatrix} 1.0000 & 1.0000 & 1.0000 & 1.0000 \\ 0.5000 & 1.0000 & 2.0000 & 4.0000 \\ 0.2500 & 1.0000 & 4.0000 & 16.0000 \\ 0.2000 & 1.0000 & 5.0000 & 25.0000 \\ 0.1429 & 1.0000 & 7.0000 & 49.0000 \\ 0.1250 & 1.0000 & 8.0000 & 64.0000 \\ 0.1111 & 1.0000 & 9.0000 & 81.0000 \\ 0.1000 & 1.0000 & 10.0000 & 100.0000 \\ \end{bmatrix} b= 1.00000.50000.25000.20000.14290.12500.11110.10001.00001.00001.00001.00001.00001.00001.00001.00001.00002.00004.00005.00007.00008.00009.000010.00001.00004.000016.000025.000049.000064.000081.0000100.0000
最后,使用反斜杠符号求解线性方程组的最小二乘解。具体来说,它使用了正规方程的方法,即求解 ( b T b ) − 1 b T y (b^T b)^{-1} b^T y (bTb)1bTy,其中 b T b^T bT 表示 b 的转置, − 1 ^{-1} 1 表示矩阵的逆, y y y 表示因变量的向量。最终的结果是一个包含了四个系数的列向量,分别对应于 b 矩阵的四列。这些系数定义了回归方程的形式,可以用于预测新的因变量值。

最终求解得到的回归方程为:
y = 0.6498 x + 0.5901 + 0.0666 x − 0.0091 x 2 , y={\frac{0.6498}{x}}+0.5901+0.0666x-0.0091x^{2}, y=x0.6498+0.5901+0.0666x0.0091x2,

3.程序

求解的MATLAB程序如下:

clc, clear

x = [1, 2, 4, 5, 7, 8, 9, 10]';
y = [1.3, 1, 0.9, 0.81, 0.7, 0.6, 0.55, 0.4]';

b = [1 ./ x, ones(size(x)), x, x.^2] % 构造线性方程组的系数矩阵
% 这一行代码构造了线性方程组的系数矩阵 b。它由四列组成,分别是 1/x、1、x 和 x 的平方

% 使用反斜杠符号求解线性方程组的最小二乘解
cs = b \ y % 求最小二乘解

4.结果

image-20230427145734428

回归方程为:
y = 0.6498 x + 0.5901 + 0.0666 x − 0.0091 x 2 , y={\frac{0.6498}{x}}+0.5901+0.0666x-0.0091x^{2}, y=x0.6498+0.5901+0.0666x0.0091x2,

如果这篇文章对你有帮助,欢迎点赞与收藏~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师——计算机网络(二)

📑前言 本文主要是【计算机网络】——软件设计师——计算机网络的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1…

Unity DOTS中的baking(一) Baker简介

Unity DOTS中的baking(一) Baker简介 baking是DOTS ECS工作流的一环,大概的意思就是将原先Editor下的GameObject数据,全部转换为Entity数据的过程。baking是一个不可逆的过程,原先的GameObject在运行时不复存在&#x…

漏刻有时百度地图API实战开发(8)关键词输入检索获取经纬度坐标和地址

在百度地图中进行关键词输入检索时: 在地图页面顶部的搜索框中输入关键词。点击搜索按钮或按下回车键进行搜索。地图将显示与关键词相关的地点、商家、景点等信息。可以使用筛选和排序功能来缩小搜索范围或更改搜索结果的排序方式。点击搜索结果中的地点或商家&…

软件工程考试复习

第一章、软件工程概述 🌟软件程序数据文档(考点) 🌟计算机程序及其说明程序的各种文档称为 ( 文件 ) 。计算任务的处理对象和处理规则的描述称为 ( 程序 )。有关计算机程序功能、…

Spring Cloud Gateway + Nacos + LoadBalancer实现企业级网关

1. Spring Cloud Gateway 整合Nacos、LoadBalancer 实现企业级网关 前置工作: 创建 SpringBoot 多模块项目创建网关(gateway-service)、用户(user-service)模块用户模块添加 Nacos discovery 支持以及 Spring Web&am…

一键抠图2:C/C++实现人像抠图 (Portrait Matting)

一键抠图2:C/C实现人像抠图 (Portrait Matting) 目录 一键抠图2:C/C实现人像抠图 (Portrait Matting) 1. 前言 2. 抠图算法 3. 人像抠图算法MODNet (1)模型训练 (2)将Pytorch模型转换ONNX模型 &…

【IDEA】IntelliJ IDEA中进行Git版本控制

本篇文章主要记录一下自己在IntelliJ IDEA上使用git的操作,一个新项目如何使用git进行版本控制。文章使用的IDEA版本 IntelliJ IDEA Community Edition 2023.3,远程仓库为https://gitee.com/ 1.配置Git(File>Settings) 2.去Git…

Java网络编程——安全网络通信

在网络上,信息在由源主机到目标主机的传输过程中会经过其他计算机。在一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易时,网络上的信息有可能被非法分子监听,从而导致个人隐私的泄露。由于Intern…

adb unauthorized 踩坑记录

给Realme X7 Pro 安装Root后,发现adb连接设备呈现unauthorized 状态: 在Google以后,尝试了很多方案,均无效,尝试的方案如下: 重启手机,电脑。不行撤销调试授权,开关usb调试&#xf…

基于单片机智能安防窗户防盗系统设计

**单片机设计介绍,基于单片机智能安防窗户防盗系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能安防窗户防盗系统是一种利用单片机技术设计的窗户防盗装置。它通过传感器监测窗户状态&#xf…

vue使用echarts显示中国地图

项目引入echarts以后,在页面创建canvas标签 引入一个公共js文件(下面这段代码就是china.js文件) (function (root, factory) {if (typeof define function && define.amd) {// AMD. Register as an anonymous module.define([ex…

成都工业学院Web技术基础(WEB)实验四:CSS3布局应用

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考,前端变化比较大,按照要求,只能做到像,不能做到一模一样 3、图片和文字仅为示例,需要自行替换 4、如果代码不满足你的要求,请寻求其他的…

Windows 和 MacOS 上安装配置ADB(安卓调试桥)

一、Android 调试桥 (ADB) Android 调试桥(ADB) 是一款多功能命令行工具,它让你能够更便捷地访问和管理 Android 设备。使用 ADB 命令,你可以轻松执行以下操作 在设备上安装、复制和删除文件;安装应用程序&#xff1…

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TSOA-TCN-Multihead-…

【Python网络爬虫入门教程1】成为“Spider Man”的第一课:HTML、Request库、Beautiful Soup库

Python 网络爬虫入门:Spider man的第一课 写在最前面背景知识介绍蛛丝发射器——Request库智能眼镜——Beautiful Soup库 第一课总结 写在最前面 有位粉丝希望学习网络爬虫的实战技巧,想尝试搭建自己的爬虫环境,从网上抓取数据。 前面有写一…

移动到末尾(蓝桥杯)

#include <stdio.h> #include <stdlib.h>#define N 1000 //双指针思想 int main(int argc, char *argv[]) {int n;int s[N];scanf("%d",&n);for(int i 0 ; i < n ; i)scanf("%d",&s[i]);int j 0; for(int i 0 ; …

SSM与SpringBoot面试题总结

什么是spring&#xff1f;谈谈你对IOC和AOP的理解。 Spring:是一个企业级java应用框架&#xff0c;他的作用主要是简化软件的开发以及配置过程&#xff0c;简化项目部署环境。 Spring的优点: 1、Spring低侵入设计&#xff0c;对业务代码的污染非常低。 2、Spring的DI机制将…

什么是神经网络的非线性

大家好啊&#xff0c;我是董董灿。 最近在写《计算机视觉入门与调优》&#xff08;右键&#xff0c;在新窗口中打开链接&#xff09;的小册&#xff0c;其中一部分说到激活函数的时候&#xff0c;谈到了神经网络的非线性问题。 今天就一起来看看&#xff0c;为什么神经网络需…

Linux中的SNAT与DNAT实践

Linux中的SNAT与DNAT实践 1、SNAT的介绍1.1&#xff0c;SNAT概述1.2&#xff0c;SNAT源地址转换过程1.3&#xff0c;SNAT转换 2、DNAT的介绍2.1&#xff0c;DNAT概述2.2&#xff0c;DNAT转换前提条件2.3&#xff0c;DNAT的转换 3、防火墙规则的备份和还原4、tcpdump抓包工具的运…

kafka学习笔记--如何保证生产者数据可靠、不重复、有序

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…