Kom igångKom igång gratis

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)

Visa kurs

Övningsinstruktioner

  • Beräkna lutningen och interceptet för regressionslinjen med hjälp av np.polyfit(). Kom ihåg att fertility finns på y-axeln och illiteracy på 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 x med värdena 0 och 100 via np.array(). Beräkna sedan de teoretiska värdena för y utifrån dina regressionsparametrar, det vill säga y = 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()
Redigera och kör kod