一、问题背景
# 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)
二、问题求解
问题一
Bootstrap估计皮尔逊相关系数及置信区间的步骤原理
-
计算原始样本的皮尔逊相关系数
先对A组和B组的原始数据计算皮尔逊相关系数,作为点估计。 -
Bootstrap重抽样
设定Bootstrap重复次数B(如1000),每次从原始数据中有放回地随机抽取n对(n为样本容量)A组和B组数据,形成新的样本对。 -
每次重抽样计算相关系数
对每一次Bootstrap样本,计算其皮尔逊相关系数,记录下来,最终得到B个相关系数的Bootstrap分布。 -
点估计与置信区间
- 点估计:用原始样本的皮尔逊相关系数。
- 置信区间:对B个Bootstrap相关系数,取其2.5%和97.5%的分位数,作为95%置信区间的下限和上限。
-
结果解释
通过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(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
其中 x ˉ \bar{x} xˉ 和 y ˉ \bar{y} yˉ 分别为 X X X 和 Y Y Y 的均值。
Bootstrap置信区间原理:
- 从原始样本 ( x i , y i ) (x_i, y_i) (xi,yi) 有放回地抽取 n n n 对,重复 B B B 次,得到 B B B 组Bootstrap样本。
- 每组Bootstrap样本计算皮尔逊相关系数 r b ∗ r^*_b rb∗, b = 1 , 2 , . . . , B b=1,2,...,B b=1,2,...,B。
- 置信区间为 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点估计与假设检验的具体操作步骤
-
建立一元线性回归模型
用B组得分为因变量,A组得分为自变量,拟合模型 B i = b + a A i + ϵ i B_i = b + aA_i + \epsilon_i Bi=b+aAi+ϵi,得到回归系数 a a a的原始点估计。 -
Bootstrap重抽样
设定Bootstrap重复次数 B B B(如1000),每次从原始数据中有放回地随机抽取 n n n对 ( A i , B i ) (A_i, B_i) (Ai,Bi),形成新的样本对。 -
每次重抽样拟合回归模型
对每一次Bootstrap样本,拟合一元线性回归模型,记录回归系数 a b ∗ a^*_b ab∗,最终得到 B B B个 a ∗ a^* a∗的Bootstrap分布。 -
点估计与置信区间
- 点估计:用原始样本拟合得到的 a a a。
- 置信区间:对 B B B个 a ∗ a^* a∗,取其2.5%和97.5%的分位数,作为 a a a的95%置信区间。
-
假设检验(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(比例(a∗≥0),比例(a∗≤0))。若 p p p值较小,说明 a a a显著不为0。 -
结果解释
通过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