Observar el R-cuadrado de una regresión
El R-cuadrado mide el grado de ajuste de los datos a la recta de regresión, por lo que el R-cuadrado en una regresión simple está relacionado con la correlación entre las dos variables. En concreto, la magnitud de la correlación es la raíz cuadrada de la R-cuadrado y el signo de la correlación es el signo del coeficiente de regresión.
En este ejercicio, empezarás a utilizar el paquete estadístico statsmodels
, que realiza gran parte del modelado y las pruebas estadísticas que se encuentran en R y en paquetes de software como SAS y MATLAB.
Tomarás dos series, x
y y
, calcularás su correlación y, a continuación, harás una regresión de y
sobre x
utilizando la función OLS(y,x)
de la biblioteca statsmodels.api
(ten en cuenta que la variable dependiente o del lado derecho y
es el primer argumento). La mayoría de las regresiones lineales contienen un término constante que es el intercepto (el (\pequeño \alfa) en la regresión (\pequeño y_t=\alfa + \beta x_t + \epsilon_t)). Para incluir una constante mediante la función OLS()
, tienes que añadir una columna de 1 a la parte derecha de la regresión.
El módulo statsmodels.api
se ha importado para ti como sm
.
Este ejercicio forma parte del curso
Análisis de Series Temporales en Python
Instrucciones de ejercicio
- Calcula la correlación entre
x
yy
utilizando el método.corr()
. - Ejecuta una regresión:
- Primero convierte la Serie
x
en un DataFramedfx
. - Añade una constante utilizando
sm.add_constant()
, asignándola adfx1
- Realiza una regresión de
y
sobredfx1
utilizandosm.OLS().fit()
.
- Primero convierte la Serie
- Imprime los resultados de la regresión y compara la R-cuadrado con la correlación.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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())