IniziaInizia gratis

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)

Visualizza il corso

Istruzioni dell'esercizio

  • Calcola pendenza e intercetta della retta di regressione usando np.polyfit(). Ricorda: fertility è sull’asse y e illiteracy sull’asse x.
  • Stampa la pendenza e l’intercetta ottenute dalla regressione lineare.
  • Per tracciare la retta di best fit, crea un array x che contenga 0 e 100 usando np.array(). Poi calcola i valori teorici di y in 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()
Modifica ed esegui il codice