ComeçarComece de graça

Como isso é ótimo?

A função np.polyfit() que você usou para obter os parâmetros da regressão encontra a inclinação e a interceptação ótimas. Ela otimiza a soma dos quadrados dos resíduos, também conhecida como RSS (de residual sum of squares). Neste exercício, você vai plotar a função que está sendo otimizada, o RSS, em função do parâmetro de inclinação a. Para isso, fixe a interceptação como o valor encontrado na otimização. Em seguida, faça o gráfico do RSS versus a inclinação. Onde ele é mínimo?

Este exercício faz parte do curso

Pensamento Estatístico em Python (Parte 2)

Ver curso

Instruções do exercício

  • Especifique os valores da inclinação para calcular o RSS. Use np.linspace() para obter 200 pontos no intervalo entre 0 e 0.1. Por exemplo, para obter 100 pontos no intervalo entre 0 e 0.5, você poderia usar np.linspace() assim: np.linspace(0, 0.5, 100).
  • Inicialize um array, rss, para conter o RSS usando np.empty_like() e o array que você criou acima. A função empty_like() retorna um novo array com o mesmo formato e tipo de um array dado (neste caso, a_vals).
  • Escreva um for para calcular a soma do RSS para a inclinação. Dica: o RSS é dado por np.sum((y_data - a * x_data - b)**2). A variável b que você calculou no último exercício já está no seu namespace. Aqui, fertility é o y_data e illiteracy é o x_data.
  • Faça o gráfico do RSS (rss) versus a inclinação (a_vals).
  • Clique em Enviar para ver o gráfico!

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
Editar e executar o código