一、問題背景
# 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