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 tali linee di tendenza è la 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 "Esegui regressione lineare" come testo.

  2. Aggiungere una cella Code 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.

    Grafico a dispersione con linea di regressione.

    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.