Regresie liniară
Vom presupune că fertilitatea este o funcție liniară a ratei de analfabetism feminin. Adică \(f = a i + b\), unde \(a\) este panta și \(b\) este interceptul. Putem considera interceptul ca rata minimă de fertilitate, probabil undeva între unu și doi. Panta ne arată cum variază rata de fertilitate în funcție de analfabetism. Putem găsi dreapta de regresie care se potrivește cel mai bine folosind np.polyfit().
Reprezintă grafic datele și dreapta de regresie. Afișează panta și interceptul. (Gândește-te: care sunt unitățile lor de măsură?)
Acest exercițiu face parte din cursul
Gândire statistică în Python (Partea 2)
Instrucțiuni pentru exercițiu
- Calculează panta și interceptul dreptei de regresie folosind
np.polyfit(). Ține minte căfertilityse află pe axa y, iarilliteracype axa x. - Afișează panta și interceptul obținute din regresia liniară.
- Pentru a reprezenta dreapta de regresie, creează un array
xcare conține valorile 0 și 100 folosindnp.array(). Apoi calculează valorile teoretice ale luiype baza parametrilor de regresie, adicăy = a * x + b. - Reprezintă datele și dreapta de regresie pe același grafic. Asigură-te că etichetezi axele.
- Apasă pe Trimite răspunsul pentru a afișa graficul.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()