用于成对自助法的函数
正如视频中所讨论的,成对自助法需要对成对的数据进行重采样。对每一组成对数据拟合一条直线,这里使用 np.polyfit()。我们不断重复这一过程,以获得参数值的自助法重复。为便于执行成对自助法,您将编写一个函数,对一组 x,y 数据进行成对自助法。
本练习是课程的一部分
Python 统计思维(第 2 部分)
练习说明
- 定义一个函数,调用签名为
draw_bs_pairs_linreg(x, y, size=1),用于对线性回归参数进行成对自助法估计。- 使用
np.arange()建立从0到len(x)的索引数组。您将重采样这些索引,并用它们从x和y数组中取值。 - 使用
np.empty()初始化斜率和截距的重复数组,大小为size。 - 编写一个
for循环以:- 重采样索引
inds。使用np.random.choice()完成此操作。 - 使用重采样得到的索引
bs_inds构造新的 \(x\) 与 \(y\) 数组bs_x和bs_y。为此,用bs_inds对x与y进行切片。 - 在新的 \(x\) 与 \(y\) 数组上使用
np.polyfit(),并存储计算得到的斜率和截距。
- 重采样索引
- 返回斜率和截距的成对自助法重复结果。
- 使用
交互式实操练习
通过完成这段示例代码来试试这个练习。
def draw_bs_pairs_linreg(x, y, size=1):
"""Perform pairs bootstrap for linear regression."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_slope_reps, bs_intercept_reps
bs_slope_reps = ____
bs_intercept_reps = ____
# Generate replicates
for i in range(size):
bs_inds = np.random.choice(____, size=____)
bs_x, bs_y = x[____], y[____]
bs_slope_reps[i], bs_intercept_reps[i] = ____
return bs_slope_reps, bs_intercept_reps