ComenzarEmpieza gratis

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

Ver curso

Instrucciones de ejercicio

  • Calcula la correlación entre x y y utilizando el método .corr().
  • Ejecuta una regresión:
    • Primero convierte la Serie x en un DataFrame dfx.
    • Añade una constante utilizando sm.add_constant(), asignándola a dfx1
    • Realiza una regresión de y sobre dfx1 utilizando sm.OLS().fit().
  • 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())
Editar y ejecutar código