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 de exercício
Calcule a correlação entre
x
ey
usando o método.corr()
.Execute uma regressão:
Primeiro, converta a série
x
em um DataFramedfx
.Adicione uma constante usando
sm.add_constant()
, atribuindo-a adfx1
Regrida
y
emdfx1
usandosm.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())