EmpezarEmpieza gratis

Analizando el R-cuadrado de una regresión

R-cuadrado mide qué tan bien se ajustan los datos a la recta de regresión, así que en una regresión simple está relacionado con la correlación entre las dos variables. En particular, la magnitud de la correlación es la raíz cuadrada del R-cuadrado y el signo de la correlación coincide con el signo del coeficiente de regresión.

En este ejercicio empezarás a usar el paquete estadístico statsmodels, que realiza gran parte del modelado y las pruebas estadísticas que se encuentran en R y en paquetes como SAS y MATLAB.

Tomarás dos series, x y y, calcularás su correlación y después ajustarás una regresión de y sobre x usando la función OLS(y,x) de la librería 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 incluyen un término constante, que es la intersección (la \(\small \alpha\) en la regresión \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Para incluir una constante con la función OLS(), necesitas añadir una columna de 1 a la parte derecha de la regresión.

El módulo statsmodels.api se ha importado por ti como sm.

Este ejercicio forma parte del curso

Análisis de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Calcula la correlación entre x e y usando el método .corr().
  • Ejecuta una regresión:
    • Primero convierte la Series x en un DataFrame dfx.
    • Añade una constante usando sm.add_constant(), asignándola a dfx1.
    • Regresa y sobre dfx1 usando sm.OLS().fit().
  • Imprime los resultados de la regresión y compara el R-cuadrado con la correlación.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código