Régression linéaire
Nous supposerons que la fécondité est une fonction linéaire du taux d’analphabétisme féminin. Autrement dit, \(f = a i + b\), où \(a\) est la pente et \(b\) l’ordonnée à l’origine. On peut interpréter l’ordonnée à l’origine comme le taux de fécondité minimal, probablement entre un et deux. La pente indique comment la fécondité varie avec l’analphabétisme. Nous pouvons trouver la droite de régression par ajustement optimal avec np.polyfit().
Tracez les données et la droite d’ajustement. Affichez la pente et l’ordonnée à l’origine. (Réfléchissez : quelles sont leurs unités ?)
Cet exercice fait partie du cours
Réflexion statistique en Python (Partie 2)
Instructions
- Calculez la pente et l’ordonnée à l’origine de la droite de régression avec
np.polyfit(). Rappelez-vous,fertilityest en ordonnée (axe y) etilliteracyen abscisse (axe x). - Affichez la pente et l’ordonnée à l’origine issues de la régression linéaire.
- Pour tracer la droite d’ajustement, créez un tableau
xcontenant 0 et 100 avecnp.array(). Calculez ensuite les valeurs théoriques deyà partir de vos paramètres de régression, c.-à-d.y = a * x + b. - Tracez les données et la droite de régression sur le même graphique. N’oubliez pas d’étiqueter vos axes.
- Appuyez sur Soumettre pour afficher votre graphique.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Plot the illiteracy rate versus fertility
_ = plt.plot(illiteracy, fertility, marker='.', linestyle='none')
plt.margins(0.02)
_ = plt.xlabel('percent illiterate')
_ = plt.ylabel('fertility')
# Perform a linear regression using np.polyfit(): a, b
a, b = ____
# Print the results to the screen
print('slope =', a, 'children per woman / percent illiterate')
print('intercept =', b, 'children per woman')
# Make theoretical line to plot
x = ____
y = ____ * ____ + ____
# Add regression line to your plot
_ = plt.plot(____, ____)
# Draw the plot
plt.show()