Uma função para fazer pairs bootstrap
Como discutido no vídeo, o pairs bootstrap envolve reamostrar pares de dados. Cada coleção de pares é ajustada com uma reta, neste caso usando np.polyfit(). Repetimos esse processo várias vezes para obter réplicas bootstrap dos valores dos parâmetros. Para ter uma ferramenta útil para fazer pairs bootstrap, você vai escrever uma função que faça pairs bootstrap em um conjunto de dados x,y.
Este exercício faz parte do curso
Pensamento Estatístico em Python (Parte 2)
Instruções do exercício
- Defina uma função com a assinatura
draw_bs_pairs_linreg(x, y, size=1)para realizar estimativas de pairs bootstrap nos parâmetros de uma regressão linear.- Use
np.arange()para criar um array de índices de0atélen(x). Esses índices serão reamostrados e usados para selecionar valores dos arraysxey. - Use
np.empty()para inicializar os arrays de réplicas de inclinação e intercepto com tamanhosize. - Escreva um laço
forpara:- Reamostrar os índices
inds. Usenp.random.choice()para isso. - Criar novos arrays \(x\) e \(y\),
bs_xebs_y, usando os índices reamostradosbs_inds. Para isso, faça slicing dexeycombs_inds. - Usar
np.polyfit()nos novos arrays \(x\) e \(y\) e armazenar a inclinação e o intercepto calculados.
- Reamostrar os índices
- Retorne as réplicas de pairs bootstrap da inclinação e do intercepto.
- Use
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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