Exercício – Efetuar uma Regressão Linear com a Numpy

Concluído

Os gráficos de dispersão são um meio útil de visualizar dados. Vamos supor que pretende sobrepor uma linha de tendência no gráfico de dispersão para mostrar como os dados evoluem ao longo do tempo. Uma forma de calcular essas linhas é através da regressão linear. Neste exercício, irá utilizar a NumPy para efetuar uma regressão linear e a Matplotlib para desenhar a linha de tendência a partir dos dados.

  1. Coloque o cursor numa célula vazia na parte inferior do bloco de notas. Altere o tipo de célula para Markdown e introduza "Perform linear regression" ("Efetuar uma regressão linear") como o texto.

  2. Adicione uma célula do tipo Code (Código) e cole o seguinte código. Dedique uns momentos a ler os comentários (as linhas que começam com o sinal #) para compreender o que o código está a fazer.

    # Creates a linear regression from the data points
    m,b = np.polyfit(yearsBase, meanBase, 1)
    
    # This is a simple y = mx + b line function
    def f(x):
        return m*x + b
    
    # This generates the same scatter plot as before, but adds a line plot using the function above
    plt.scatter(yearsBase, meanBase)
    plt.plot(yearsBase, f(yearsBase))
    plt.title('scatter plot of mean temp difference vs year')
    plt.xlabel('years', fontsize=12)
    plt.ylabel('mean temp difference', fontsize=12)
    plt.show()
    
    # Prints text to the screen showing the computed values of m and b
    print(' y = {0} * x + {1}'.format(m, b))
    plt.show()
    
  3. Agora, execute a célula para apresentar um gráfico de dispersão com uma linha de regressão.

    Scatter plot with regression line.

    Gráfico de dispersão com linha de regressão

A partir da linha de regressão, pode ver que a diferença entre as temperaturas médias em 30 anos e as temperaturas médias em 5 anos está a aumentar. A maioria do trabalho computacional necessário para gerar a linha de regressão foi efetuado pela função polyfit da NumPy, que calcula os valores de m e b na equação y = mx + b.