ComenzarEmpieza gratis

¿Por qué es óptimo?

La función np.polyfit() que usaste para obtener los parámetros de regresión encuentra la pendiente y la intersección óptimas. Optimiza la suma de los cuadrados de los residuos, conocida como RSS (por residual sum of squares). En este ejercicio, representarás la función que se está optimizando, el RSS, frente al parámetro de pendiente a. Para ello, fija la intersección al valor que obtuviste en la optimización. Luego, traza el RSS frente a la pendiente. ¿Dónde es mínimo?

Este ejercicio forma parte del curso

Pensamiento estadístico en Python (Parte 2)

Ver curso

Instrucciones del ejercicio

  • Especifica los valores de la pendiente para calcular el RSS. Usa np.linspace() para obtener 200 puntos en el rango entre 0 y 0.1. Por ejemplo, para obtener 100 puntos en el rango entre 0 y 0.5, podrías usar np.linspace() así: np.linspace(0, 0.5, 100).
  • Inicializa un array, rss, para contener el RSS usando np.empty_like() y el array que creaste arriba. La función empty_like() devuelve un array nuevo con la misma forma y tipo que un array dado (en este caso, a_vals).
  • Escribe un bucle for para calcular la suma del RSS de la pendiente. Pista: el RSS viene dado por np.sum((y_data - a * x_data - b)**2). La variable b que calculaste en el ejercicio anterior ya está en tu espacio de nombres. Aquí, fertility es y_data e illiteracy es x_data.
  • Representa el RSS (rss) frente a la pendiente (a_vals).
  • Pulsa Submit para ver la gráfica.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
Editar y ejecutar código