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
Instruções do exercício
Calcule a correlação entre
xeyusando o método.corr().Execute uma regressão:
Primeiro, converta a série
xem um DataFramedfx.Adicione uma constante usando
sm.add_constant(), atribuindo-a adfx1Regrida
yemdfx1usandosm.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 completando 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())