Regressão linear
Vamos supor que a taxa de fertilidade é uma função linear da taxa de analfabetismo feminino. Ou seja, \(f = a i + b\), em que \(a\) é a inclinação (slope) e \(b\) é a interceptação (intercept). Podemos pensar na interceptação como a taxa mínima de fertilidade, provavelmente entre um e dois. A inclinação nos diz como a taxa de fertilidade varia com o analfabetismo. Podemos encontrar a reta de melhor ajuste usando np.polyfit().
Trace os dados e a reta de melhor ajuste. Imprima a inclinação e a interceptação. (Pense: quais são as unidades?)
Este exercício faz parte do curso
Pensamento Estatístico em Python (Parte 2)
Instruções do exercício
- Calcule a inclinação e a interceptação da linha de regressão usando
np.polyfit(). Lembre-se:fertilityestá no eixo y eilliteracyno eixo x. - Imprima a inclinação e a interceptação da regressão linear.
- Para traçar a reta de melhor ajuste, crie um array
xque contenha 0 e 100 usandonp.array(). Depois, calcule os valores teóricos deycom base nos parâmetros da regressão, isto é,y = a * x + b. - Plote os dados e a linha de regressão no mesmo gráfico. Não se esqueça de rotular os eixos.
- Clique em Enviar para exibir seu gráfico.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()