开始使用免费开始使用

用于成对自助法的函数

正如视频中所讨论的,成对自助法需要对成对的数据进行重采样。对每一组成对数据拟合一条直线,这里使用 np.polyfit()。我们不断重复这一过程,以获得参数值的自助法重复。为便于执行成对自助法,您将编写一个函数,对一组 x,y 数据进行成对自助法。

本练习是课程的一部分

Python 统计思维(第 2 部分)

查看课程

练习说明

  • 定义一个函数,调用签名为 draw_bs_pairs_linreg(x, y, size=1),用于对线性回归参数进行成对自助法估计。
    • 使用 np.arange() 建立从 0len(x) 的索引数组。您将重采样这些索引,并用它们从 xy 数组中取值。
    • 使用 np.empty() 初始化斜率和截距的重复数组,大小为 size
    • 编写一个 for 循环以:
      • 重采样索引 inds。使用 np.random.choice() 完成此操作。
      • 使用重采样得到的索引 bs_inds 构造新的 \(x\) 与 \(y\) 数组 bs_xbs_y。为此,用 bs_indsxy 进行切片。
      • 在新的 \(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
编辑并运行代码