Aan de slagGa gratis aan de slag

Lineaire regressie

We nemen aan dat vruchtbaarheid een lineaire functie is van het percentage vrouwelijke analfabetisme. Dus, \(f = a i + b\), waarbij \(a\) de helling is en \(b\) het snijpunt. Je kunt het snijpunt zien als het minimale vruchtbaarheidscijfer, waarschijnlijk ergens tussen één en twee. De helling laat zien hoe het vruchtbaarheidscijfer varieert met analfabetisme. We kunnen de best passende lijn vinden met np.polyfit().

Plot de data en de best passende lijn. Print de helling en het snijpunt. (Denk na: wat zijn hun eenheden?)

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Bereken de helling en het snijpunt van de regressielijn met np.polyfit(). Denk eraan: fertility staat op de y-as en illiteracy op de x-as.
  • Print de helling en het snijpunt van de lineaire regressie.
  • Om de best passende lijn te plotten, maak je een array x die bestaat uit 0 en 100 met np.array(). Bereken daarna de theoretische waarden van y op basis van je regressieparameters, dus y = a * x + b.
  • Plot de data en de regressielijn in dezelfde figuur. Vergeet niet je assen te labelen.
  • Klik op Antwoord verzenden om je plot te tonen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren