En quoi est-ce optimal?
La fonction np.polyfit() que vous avez utilisée pour obtenir vos paramètres de régression trouve la pente et l'ordonnée à l'origine optimales. Elle optimise la somme des carrés des résidus, aussi appelée RSS (pour residual sum of squares). Dans cet exercice, vous allez tracer la fonction optimisée, soit la RSS, en fonction du paramètre de pente a. Pour y arriver, fixez l'ordonnée à l'origine à la valeur trouvée lors de l'optimisation. Ensuite, tracez la RSS en fonction de la pente. Où est son minimum?
Cette activité fait partie du cours
Réflexion statistique en Python (partie 2)
Instructions de l’exercice
- Indiquez les valeurs de la pente pour calculer la RSS. Utilisez
np.linspace()pour obtenir200points dans l'intervalle entre0et0.1. Par exemple, pour obtenir100points dans l'intervalle entre0et0.5, vous pourriez utilisernp.linspace()ainsi :np.linspace(0, 0.5, 100). - Initialisez un tableau,
rss, pour contenir la RSS à l'aide denp.empty_like()et du tableau que vous avez créé ci-dessus. La fonctionempty_like()retourne un nouveau tableau avec la même forme et le même type qu'un tableau donné (dans ce cas-ci,a_vals). - Écrivez une boucle
forpour calculer la somme de la RSS pour la pente. Indice : la RSS est donnée parnp.sum((y_data - a * x_data - b)**2). La variablebque vous avez calculée dans le dernier exercice est déjà dans votre espace de noms. Ici,fertilitycorrespond ày_dataetilliteracyàx_data. - Tracez la RSS (
rss) en fonction de la pente (a_vals). - Appuyez sur Soumettre pour voir le graphique!
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()