当前位置: 首页 > news >正文

Bootstrap法进行随机模拟

一、问题背景

# 26名神经功能受损儿童接受了两组(A组与B组)空间知觉测试,得分如下A组和B组数据。
# A组数据
x_A <- c(48, 36, 20, 29, 42, 42, 20, 42, 22, 41, 45, 14, 6, 0, 33, 28, 34, 4, 32, 24, 47, 41, 24, 26, 30, 41)# B组数据
x_B <- c(42, 33, 16, 39, 38, 36, 15, 33, 20, 43, 34, 22, 7, 15, 34, 29, 41, 13, 38, 25, 27, 41, 28, 14, 28, 40)

二、问题求解

问题一

  • 给出A组与B组得分的皮尔逊相关系数的Bootstrap点估计、区间估计(95%置信区间)

Bootstrap估计皮尔逊相关系数及置信区间的步骤原理

  1. 计算原始样本的皮尔逊相关系数
    先对A组和B组的原始数据计算皮尔逊相关系数,作为点估计。

  2. Bootstrap重抽样
    设定Bootstrap重复次数B(如1000),每次从原始数据中有放回地随机抽取n对(n为样本容量)A组和B组数据,形成新的样本对。

  3. 每次重抽样计算相关系数
    对每一次Bootstrap样本,计算其皮尔逊相关系数,记录下来,最终得到B个相关系数的Bootstrap分布。

  4. 点估计与置信区间

    • 点估计:用原始样本的皮尔逊相关系数。
    • 置信区间:对B个Bootstrap相关系数,取其2.5%和97.5%的分位数,作为95%置信区间的下限和上限。
  5. 结果解释
    通过Bootstrap方法,可以在不依赖正态分布假设的情况下,获得相关系数的稳健置信区间。

    公式原理说明

皮尔逊相关系数公式:

设有两组数据 X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn) Y = ( y 1 , y 2 , . . . , y n ) Y = (y_1, y_2, ..., y_n) Y=(y1,y2,...,yn),其皮尔逊相关系数计算公式为:
r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^n (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^n (y_i - \bar{y})^2}} r=i=1n(xixˉ)2 i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
其中 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 分别为 X X X Y Y Y 的均值。

Bootstrap置信区间原理:

  1. 从原始样本 ( x i , y i ) (x_i, y_i) (xi,yi) 有放回地抽取 n n n 对,重复 B B B 次,得到 B B B 组Bootstrap样本。
  2. 每组Bootstrap样本计算皮尔逊相关系数 r b ∗ r^*_b rb b = 1 , 2 , . . . , B b=1,2,...,B b=1,2,...,B
  3. 置信区间为 r ∗ r^* r 的第2.5百分位数和第97.5百分位数:
    CI 95 % = [ Q 0.025 ( r ∗ ) , Q 0.975 ( r ∗ ) ] \text{CI}_{95\%} = \left[ Q_{0.025}(r^*),\ Q_{0.975}(r^*) \right] CI95%=[Q0.025(r), Q0.975(r)]
    其中 Q p ( r ∗ ) Q_p(r^*) Qp(r) 表示 r ∗ r^* r 的第 p p p 分位数。

这种方法无需对原始数据分布做正态性假设,适用于样本量较小或分布未知的情况。

set.seed(1234)
n <- length(x_A)
B <- 1000 # Bootstrap重复次数
boot_corr <- numeric(B)for (i in 1:B) {idx <- sample(1:n, n, replace = TRUE)boot_corr[i] <- cor(x_A[idx], x_B[idx], method = "pearson")
}# 点估计
corr_hat <- cor(x_A, x_B, method = "pearson")
# 置信区间
ci <- quantile(boot_corr, c(0.025, 0.975))cat("皮尔逊相关系数点估计:", round(corr_hat, 3), "\n")
cat("Bootstrap 95%置信区间: [", round(ci[1], 3), ",", round(ci[2], 3), "]\n")
皮尔逊相关系数点估计: 0.821 
Bootstrap 95%置信区间: [ 0.662 , 0.913 ]

问题二

  • 以B组得分为因变量,A组得分为自变量,建立一元线性回归模型: B i = b + a A i + ϵ i ( i = 1 , 2 , . . . , 26 ) B_i = b +aA_i + \epsilon_i(i=1,2,...,26) Bi=b+aAi+ϵi(i=1,2,...,26),请给出a的Bootstrap点估计和假设检验

Bootstrap点估计与假设检验的具体操作步骤

  1. 建立一元线性回归模型
    用B组得分为因变量,A组得分为自变量,拟合模型 B i = b + a A i + ϵ i B_i = b + aA_i + \epsilon_i Bi=b+aAi+ϵi,得到回归系数 a a a的原始点估计。

  2. Bootstrap重抽样
    设定Bootstrap重复次数 B B B(如1000),每次从原始数据中有放回地随机抽取 n n n ( A i , B i ) (A_i, B_i) (Ai,Bi),形成新的样本对。

  3. 每次重抽样拟合回归模型
    对每一次Bootstrap样本,拟合一元线性回归模型,记录回归系数 a b ∗ a^*_b ab,最终得到 B B B a ∗ a^* a的Bootstrap分布。

  4. 点估计与置信区间

    • 点估计:用原始样本拟合得到的 a a a
    • 置信区间:对 B B B a ∗ a^* a,取其2.5%和97.5%的分位数,作为 a a a的95%置信区间。
  5. 假设检验(a=0)
    计算 a = 0 a=0 a=0在Bootstrap分布中的分位数,得到双侧 p p p值: p = 2 × min ⁡ ( 比例 ( a ∗ ≥ 0 ) , 比例 ( a ∗ ≤ 0 ) ) p = 2 \times \min(\text{比例}(a^* \geq 0), \text{比例}(a^* \leq 0)) p=2×min(比例(a0),比例(a0))。若 p p p值较小,说明 a a a显著不为0。

  6. 结果解释
    通过Bootstrap方法,可以在不依赖正态分布假设的情况下,对回归系数 a a a进行稳健的点估计、区间估计和显著性检验。

set.seed(1234)
n <- length(x_A)
B <- 1000
boot_a <- numeric(B)for (i in 1:B) {idx <- sample(1:n, n, replace = TRUE)fit <- lm(x_B[idx] ~ x_A[idx])boot_a[i] <- coef(fit)[2]
}# 点估计
fit_full <- lm(x_B ~ x_A)
a_hat <- coef(fit_full)[2]# 置信区间
ci_a <- quantile(boot_a, c(0.025, 0.975))# 假设检验(p值):计算a=0在bootstrap分布中的分位数
p_value <- 2 * min(mean(boot_a >= 0), mean(boot_a <= 0))cat("回归系数a的点估计:", round(a_hat, 3), "\n")
cat("Bootstrap 95%置信区间: [", round(ci_a[1], 3), ",", round(ci_a[2], 3), "]\n")
cat("a=0的双侧p值:", round(p_value, 4), "\n")
回归系数a的点估计: 0.656 
Bootstrap 95%置信区间: [ 0.49 , 0.847 ]
a=0的双侧p值: 0 
http://www.xdnf.cn/news/691111.html

相关文章:

  • 第11章:工程组织与系列总结
  • 8086 处理器寄存器超详细解析:从原理到实战
  • 三分钟打通Stable Diffusion提示词(附实战手册)
  • TDengine 运维——用户和权限
  • Agent 的7 中设计模式
  • 4.Consul服务注册与发现
  • 【深度学习】10. 深度推理(含链式法则详解)RNN, LSTM, GRU,VQA
  • 33.第二阶段x64游戏实战-InLineHook
  • Jmeter——JDBC连接数据库相关
  • 【vscode】切换英文字母大小写快捷键如何配置
  • 《Google I/O 2025:AI浪潮下的科技革新风暴》
  • 宁夏农业科技:创新引领,赋能现代农业新篇章
  • c语言实现Linux命令行补全机制
  • 运用集合知识做斗地主案例
  • 智能指针的使用及原理
  • MCP 登场:掘金开启 AI 前端项目部署新时代
  • 第三章、数据链路层
  • C++智能指针用法及内存管理
  • 双因子COX 交互 共线性 -spss
  • 多态 向上转型
  • YOLO人体姿态估计Pytorch推理ONNX模型推理
  • Android-GestureDetector学习总结
  • 微信小程序(uniapp)对接腾讯云IM
  • Vue 实例生命周期
  • 2025.5.28总结
  • 接口幂等性原理与方案总结
  • Avue表单个别字段实现全选的思路
  • 【Pandas】pandas DataFrame drop
  • Transformer核心技术解析LCPO方法:精准控制推理长度的新突破
  • Redis学习(十四)主从复制的工作原理、集群搭建(一主二从)