Comencemos por crear una base de datos. Hagamos que sea con 1000 observaciones, donde los valores de \(x\) vienen de una distribución normal y los valores de \(y\) dependen linealmente de \(x\):
$$ y = \alpha + \beta x + \varepsilon $$
Digamos que \(\alpha = 1\) y \(\beta = 1.5\). Entonces el siguiente código nos puede crear nuestra base de datos:
from numpy import random
import pandas as pd
n = 1000
random.seed(42)
df = pd.DataFrame({"x": random.normal(size = n)})
df['y'] = 1 + 1.5 * df['x'] + random.normal(size = n)
print(df.head())
En el caso de que hayas cargado tu base de datos a partir de un archivo con pandas, el resto del código sería exactamente igual en adelante.
Veamos en un gráfico cómo se ven nuestros datos. Escribe el código siguiente
import matplotlib.pyplot as plt
plt.scatter(df['x'], df['y'], color = "#154957", alpha = 0.2)
plt.show()
Este código genera el siguiente gráfico de dispersión.
El código es muy simple y su interpretación es directa. En la primera línea estamos llamando el submódulo matplotlib.pyplot
con el alias plt
. La segunda línea llama a la función scatter
, con x
y y
como primeros argumentos. La función debería funcionar únicamente así, pero hemos agregado algunos argumentos adicionales para mejorar el diseño del gráfico, como el nivel de transparencia y el color de los puntos. La tercera línea debe imprimir el gráfico en tu pantalla.
Mínimos Cuadrados Ordinarios
Este es el paso final. Haremos un modelo de Mínimos Cuadrados Ordinarios. Hay muchos módulos con los que se puede hacer esto. Algunos de los más populares incluyen scikit-learn
y tensorflow
. Para este ejemplo usaremos statsmodels
, pues el reporte que arroja es el mas útil para hacer inferencia estadística.
Leer el artículo completo
Registrarse ahora para leer el artículo completo y acceder a todos los artículos por solo suscriptores pagos.
Suscribirse