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)
Pokyny k cvičení
- Vypočítej sklon a intercept regresní přímky pomocí
np.polyfit(). Pamatuj, žefertilityje na ose y ailliteracyna ose x. - Vypiš sklon a intercept z lineární regrese.
- Pro vykreslení přímky nejlepšího přiblížení vytvoř pole
xs hodnotami 0 a 100 pomocínp.array(). Pak vypočítej teoretické hodnotyyna základě odhadnutých parametrů regrese, tedyy = 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()