Estimación de velocidad y confianza
Sigamos con los datos de rutas de senderismo en Parques Nacionales. Observa que algunas distancias son negativas porque caminaron en dirección opuesta al inicio del sendero; los datos están desordenados, así que centrémonos en la tendencia general.
En este ejercicio, tu objetivo es usar remuestreo bootstrap para obtener la distribución de valores de velocidad para un modelo lineal y, a partir de esa distribución, calcular la mejor estimación de la velocidad y el intervalo de confianza del 90% de esa estimación. Aquí, la velocidad es el parámetro de pendiente del modelo de regresión lineal que ajusta la distancia en función del tiempo.
Para empezar, hemos precargado los datos de distance y time, junto con una función least_squares() predefinida para calcular el valor de la velocidad en cada remuestreo.

Este ejercicio forma parte del curso
Introducción al modelado lineal en Python
Instrucciones del ejercicio
- Usa
np.random.choice()para extraersample_indsdepopulation_inds, preservando el emparejamiento distancia-tiempo de cada dato. - Para conservar el orden temporal, aplica
.sort()asample_indsy luego usasample_indspara indexardistancesytimes. - Usa
least_squares(times, distances)para calcular los parámetros del modelo lineal y guardaa1enresample_speeds. - Aplica
np.mean()ynp.percentiles()aresample_speedspara calcular la velocidad y el intervalo de confianzaci_90, y luego imprime ambos.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Resample each preloaded population, and compute speed distribution
population_inds = np.arange(0, 99, dtype=int)
for nr in range(num_resamples):
sample_inds = np.random.choice(____, size=100, replace=True)
sample_inds.____()
sample_distances = distances[____]
sample_times = times[____]
a0, a1 = ____(sample_times, sample_distances)
resample_speeds[nr] = ____
# Compute effect size and confidence interval, and print
speed_estimate = np.mean(____)
ci_90 = np.percentile(____, [5, 95])
print('Speed Estimate = {:0.2f}, 90% Confidence Interval: {:0.2f}, {:0.2f} '.format(____, ____[0], ____[1]))