Linjär regression
Vi antar att fertiliteten är en linjär funktion av kvinnors analfabetismgrad. Det vill säga \(f = a i + b\), där \(a\) är lutningen och \(b\) är interceptet. Interceptet kan ses som den minimala fertilitetsgraden, troligtvis någonstans mellan ett och två. Lutningen visar hur fertilitetsgraden varierar med analfabetismen. Den bäst anpassade linjen beräknar vi med np.polyfit().
Plotta datan och den bäst anpassade linjen. Skriv ut lutningen och interceptet. (Fundera på: vilka enheter har de?)
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Beräkna lutningen och interceptet för regressionslinjen med hjälp av
np.polyfit(). Kom ihåg attfertilityfinns på y-axeln ochilliteracypå x-axeln. - Skriv ut lutningen och interceptet från den linjära regressionen.
- För att plotta den bäst anpassade linjen skapar du en array
xmed värdena 0 och 100 vianp.array(). Beräkna sedan de teoretiska värdena föryutifrån dina regressionsparametrar, det vill sägay = a * x + b. - Plotta datan och regressionslinjen i samma diagram. Se till att märka ut dina axlar.
- Klicka på Skicka in svar för att visa diagrammet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()