Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Construcción de Regresión Lineal Múltiple | Regresión Lineal Múltiple
Regresión Lineal con Python

bookConstrucción de Regresión Lineal Múltiple

La clase OLS permite construir una Regresión Lineal Múltiple de la misma manera que una Regresión Lineal Simple. Sin embargo, la función np.polyfit() no admite el caso de múltiples características.

Utilizaremos la clase OLS.

Construcción de la matriz X̃

Contamos con el mismo conjunto de datos del ejemplo de regresión lineal simple, pero ahora incluye la altura de la madre como segunda característica. Lo cargaremos y observaremos su variable X:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Recuerde que se debe utilizar OLS(y, X_tilde) para inicializar el objeto OLS. Como puede observar, la variable X ya contiene dos características en columnas separadas. Por lo tanto, para obtener X_tilde, solo es necesario añadir unos como primera columna. ¡La función sm.add_constant(X) realiza exactamente esa operación!

1234567891011
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Encontrar los Parámetros

¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y hacer predicciones de la misma manera que hicimos en la sección anterior.

12345678910111213141516171819202122
import pandas as pd import statsmodels.api as sm import numpy as np file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
copy
Note
Nota

Ahora que nuestro conjunto de entrenamiento tiene 2 características, es necesario proporcionar 2 características para cada nueva instancia que se desee predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]) en el ejemplo anterior. Predice y para 3 nuevas instancias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

¿Qué hace sm.add_constant(X)?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookConstrucción de Regresión Lineal Múltiple

La clase OLS permite construir una Regresión Lineal Múltiple de la misma manera que una Regresión Lineal Simple. Sin embargo, la función np.polyfit() no admite el caso de múltiples características.

Utilizaremos la clase OLS.

Construcción de la matriz X̃

Contamos con el mismo conjunto de datos del ejemplo de regresión lineal simple, pero ahora incluye la altura de la madre como segunda característica. Lo cargaremos y observaremos su variable X:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Recuerde que se debe utilizar OLS(y, X_tilde) para inicializar el objeto OLS. Como puede observar, la variable X ya contiene dos características en columnas separadas. Por lo tanto, para obtener X_tilde, solo es necesario añadir unos como primera columna. ¡La función sm.add_constant(X) realiza exactamente esa operación!

1234567891011
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Encontrar los Parámetros

¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y hacer predicciones de la misma manera que hicimos en la sección anterior.

12345678910111213141516171819202122
import pandas as pd import statsmodels.api as sm import numpy as np file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
copy
Note
Nota

Ahora que nuestro conjunto de entrenamiento tiene 2 características, es necesario proporcionar 2 características para cada nueva instancia que se desee predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]) en el ejemplo anterior. Predice y para 3 nuevas instancias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

¿Qué hace sm.add_constant(X)?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3
some-alt