Oefening: lineaire regressie uitvoeren met Numpy

Voltooid

Spreidingsplots bieden een handige manier om gegevens te visualiseren, maar stel dat u een trendlijn als overlay aan de spreidingsplot wilt toevoegen om de trend voor de gegevens in de loop van de tijd te tonen. U kunt dergelijke trendlijnen onder andere bereken met lineaire regressie. In deze oefening gebruikt u NumPy om een lineaire regressie uit te voeren en Matplotlib om een trendlijn op basis van de gegevens te tekenen.

  1. Plaats de muisaanwijzer in de lege cel onderaan het notebook. Wijzig het celtype in Markdown en voer de tekst 'Lineaire regressie uitvoeren' in.

  2. Voeg een codecel toe en plak hier de volgende code in. Neem een ogenblik de tijd om de opmerkingen te lezen (de regels die beginnen met het #-teken) om te begrijpen wat de code doet.

    # 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. Voer de cel nu uit om een spreidingsplot met een regressielijn weer te geven.

    Scatter plot with regression line.

    Spreidingsplot met regressielijn

De regressielijn laat zien dat het verschil tussen de gemiddelde temperaturen over een periode van dertig jaar en de gemiddelde temperaturen over een periode van vijf jaar na verloop van tijd toeneemt. Het meeste rekenwerk dat nodig is om de regressielijn te genereren is gedaan door de NumPy-functie polyfit. Met deze functie zijn de waarden voor m en b berekend in de vergelijking y = mx + b.