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 del ejercicio
- Calcula la correlación entre
xyyutilizando el método.corr(). - Ejecuta una regresión:
- Primero convierte la Serie
xen un DataFramedfx. - Añade una constante utilizando
sm.add_constant(), asignándola adfx1 - Realiza una regresión de
ysobredfx1utilizandosm.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
Prueba este ejercicio y completa el 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())