Esercizio - Eseguire la regressione lineare con Numpy

Completato

I grafici a dispersione permettono di visualizzare i dati in modo pratico, ma si potrebbe voler sovrapporre al grafico una linea di tendenza per mostrare l’andamento dei dati nel tempo. Un modo per calcolare linee di tendenza di questo tipo è rappresentato dalla regressione lineare. In questo esercizio si userà NumPy per eseguire una regressione lineare e Matplotlib per tracciare una linea di tendenza dei dati.

  1. Posizionare il cursore nella cella vuota nella parte inferiore del notebook. Modificare il tipo di cella in Markdown e immettere "Perform linear regression" (Eseguire la regressione lineare) come testo.

  2. Aggiungere una cella Code (Codice) e incollare il codice seguente. Dedicare alcuni secondi alla lettura dei commenti (le righe che iniziano con il segno #) per comprendere le operazioni eseguite dal codice.

    # Creates a linear regression from the data points
    m,b = np.polyfit(yearsBase, meanBase, 1)
    
    # This is a simple y = mx + b line function
    def f(x):
        return m*x + b
    
    # This generates the same scatter plot as before, but adds a line plot using the function above
    plt.scatter(yearsBase, meanBase)
    plt.plot(yearsBase, f(yearsBase))
    plt.title('scatter plot of mean temp difference vs year')
    plt.xlabel('years', fontsize=12)
    plt.ylabel('mean temp difference', fontsize=12)
    plt.show()
    
    # Prints text to the screen showing the computed values of m and b
    print(' y = {0} * x + {1}'.format(m, b))
    plt.show()
    
  3. Eseguire ora la cella per visualizzare un grafico a dispersione con una linea di regressione.

    Scatter plot with regression line.

    Grafico a dispersione con linea di regressione

Dalla linea di regressione si può notare che la differenza tra le temperature medie su 30 anni e le temperature medie su 5 anni aumenta nel tempo. La maggior parte delle operazioni di calcolo necessarie per generare la linea di regressione è stata eseguita dalla funzione polyfit di NumPy, che ha calcolato i valori di m e b nell'equazione y = mx + b.