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)
Oefeninstructies
- Bereken de helling en het snijpunt van de regressielijn met
np.polyfit(). Denk eraan:fertilitystaat op de y-as enilliteracyop de x-as. - Print de helling en het snijpunt van de lineaire regressie.
- Om de best passende lijn te plotten, maak je een array
xdie bestaat uit 0 en 100 metnp.array(). Bereken daarna de theoretische waarden vanyop basis van je regressieparameters, dusy = 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()