ComeçarComece gratuitamente

Analisando o R-Squared de uma regressão

O R-quadrado mede a proximidade com que os dados se ajustam à linha de regressão, de modo que o R-quadrado em uma regressão simples está relacionado à correlação entre as duas variáveis. Em particular, a magnitude da correlação é a raiz quadrada do R-quadrado e o sinal da correlação é o sinal do coeficiente de regressão.

Neste exercício, você começará a usar o pacote estatístico statsmodels, que executa grande parte da modelagem e dos testes estatísticos encontrados no R e em pacotes de software como SAS e MATLAB.

Você pegará duas séries, x e y, calculará a correlação entre elas e, em seguida, regredirá y em x usando a função OLS(y,x) na biblioteca statsmodels.api (observe que a variável dependente ou do lado direito y é o primeiro argumento). A maioria das regressões lineares contém um termo constante que é o intercepto (o \(\small \alpha\) na regressão \(\small yt=\alpha + \beta xt + \epsilon_t\)). Para incluir uma constante usando a função OLS(), você precisa adicionar uma coluna de 1's ao lado direito da regressão.

O módulo statsmodels.api foi importado para você como sm.

Este exercício faz parte do curso

Análise de séries temporais em Python

Ver Curso

Instruções de exercício

  • Calcule a correlação entre x e y usando o método .corr().

  • Execute uma regressão:

    • Primeiro, converta a série x em um DataFrame dfx.

    • Adicione uma constante usando sm.add_constant(), atribuindo-a a dfx1

    • Regrida y em dfx1 usando sm.OLS().fit().

  • Imprima os resultados da regressão e compare o R-quadrado com a correlação.

Exercício interativo prático

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

# Import the statsmodels module
import statsmodels.api as sm

# Compute correlation of x and y
correlation = ___
print("The correlation between x and y is %4.2f" %(correlation))

# Convert the Series x to a DataFrame and name the column x
dfx = pd.DataFrame(x, columns=['x'])

# Add a constant to the DataFrame dfx
dfx1 = sm.add_constant(___)

# Regress y on dfx1
result = sm.OLS(___, ___).fit()

# Print out the results and look at the relationship between R-squared and the correlation above
print(result.summary())
Editar e executar código