Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Construção de Regressão Linear Múltipla | Regressão Linear Múltipla
Regressão Linear com Python

bookConstrução de Regressão Linear Múltipla

A classe OLS permite construir uma Regressão Linear Múltipla da mesma forma que a Regressão Linear Simples. No entanto, a função np.polyfit() não suporta o caso com múltiplas variáveis.

Vamos utilizar a classe OLS.

Construção da Matriz X̃

Temos o mesmo conjunto de dados do exemplo de regressão linear simples, mas agora com a altura da mãe como a segunda variável. Vamos carregá-lo e analisar sua variável 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

Lembre-se, deve-se utilizar OLS(y, X_tilde) para inicializar o objeto OLS. Como pode ser observado, a variável X já contém duas variáveis independentes em colunas separadas. Portanto, para obter X_tilde, basta adicionar 1s como primeira coluna. A função sm.add_constant(X) realiza exatamente essa operação!

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

Encontrando os Parâmetros

Ótimo! Agora podemos construir o modelo, encontrar os parâmetros e fazer previsões da mesma forma que fizemos na seção 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

Agora que nosso conjunto de treinamento possui 2 variáveis, precisamos fornecer 2 variáveis para cada nova instância que desejamos prever. Por isso, np.array([[65, 62],[70, 65],[75, 70]]) foi utilizado no exemplo acima. Ele prevê y para 3 novas instâncias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

O que o sm.add_constant(X) faz?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookConstrução de Regressão Linear Múltipla

A classe OLS permite construir uma Regressão Linear Múltipla da mesma forma que a Regressão Linear Simples. No entanto, a função np.polyfit() não suporta o caso com múltiplas variáveis.

Vamos utilizar a classe OLS.

Construção da Matriz X̃

Temos o mesmo conjunto de dados do exemplo de regressão linear simples, mas agora com a altura da mãe como a segunda variável. Vamos carregá-lo e analisar sua variável 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

Lembre-se, deve-se utilizar OLS(y, X_tilde) para inicializar o objeto OLS. Como pode ser observado, a variável X já contém duas variáveis independentes em colunas separadas. Portanto, para obter X_tilde, basta adicionar 1s como primeira coluna. A função sm.add_constant(X) realiza exatamente essa operação!

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

Encontrando os Parâmetros

Ótimo! Agora podemos construir o modelo, encontrar os parâmetros e fazer previsões da mesma forma que fizemos na seção 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

Agora que nosso conjunto de treinamento possui 2 variáveis, precisamos fornecer 2 variáveis para cada nova instância que desejamos prever. Por isso, np.array([[65, 62],[70, 65],[75, 70]]) foi utilizado no exemplo acima. Ele prevê y para 3 novas instâncias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

O que o sm.add_constant(X) faz?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt