Začněte nyníZačněte zdarma

Lineární regrese

Budeme předpokládat, že porodnost je lineární funkcí míry ženské negramotnosti. Tedy \(f = a i + b\), kde \(a\) je sklon a \(b\) je intercept. Intercept si můžeme představit jako minimální míru porodnosti, pravděpodobně někde mezi jednou a dvěma. Sklon nám říká, jak se porodnost mění s rostoucí negramotností. Nejlépe přiléhající přímku najdeme pomocí np.polyfit().

Vynes data do grafu spolu s přímkou nejlepšího přiblížení. Vypiš sklon a intercept. (Zamysli se: jaké mají jednotky?)

Toto cvičení je součástí kurzu

Statistical Thinking in Python (Part 2)

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej sklon a intercept regresní přímky pomocí np.polyfit(). Pamatuj, že fertility je na ose y a illiteracy na ose x.
  • Vypiš sklon a intercept z lineární regrese.
  • Pro vykreslení přímky nejlepšího přiblížení vytvoř pole x s hodnotami 0 a 100 pomocí np.array(). Pak vypočítej teoretické hodnoty y na základě odhadnutých parametrů regrese, tedy y = a * x + b.
  • Vykresli data i regresní přímku do jednoho grafu. Nezapomeň popsat osy.
  • Klikni na Submit a zobraz výsledný graf.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód