Regressione lineare
Supponiamo che la fertilità sia una funzione lineare del tasso di analfabetismo femminile. Cioè, \(f = a i + b\), dove \(a\) è la pendenza e \(b\) è l’intercetta. Possiamo pensare all’intercetta come al tasso minimo di fertilità, probabilmente tra uno e due. La pendenza ci dice come varia il tasso di fertilità con l’analfabetismo. Possiamo trovare la retta di best fit usando np.polyfit().
Traccia i dati e la retta di best fit. Stampa pendenza e intercetta. (Pensa: quali sono le loro unità di misura?)
Questo esercizio fa parte del corso
Pensiero statistico in Python (Parte 2)
Istruzioni dell'esercizio
- Calcola pendenza e intercetta della retta di regressione usando
np.polyfit(). Ricorda:fertilityè sull’asse y eilliteracysull’asse x. - Stampa la pendenza e l’intercetta ottenute dalla regressione lineare.
- Per tracciare la retta di best fit, crea un array
xche contenga 0 e 100 usandonp.array(). Poi calcola i valori teorici diyin base ai parametri della regressione, cioèy = a * x + b. - Rappresenta nello stesso grafico sia i dati sia la retta di regressione. Ricorda di etichettare gli assi.
- Premi Invia per visualizzare il grafico.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()