Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bygga Linjär Regression med Statsmodels | Enkel Linjär Regression
Linjär Regression med Python

bookBygga Linjär Regression med Statsmodels

Bygga en linjär regressionsmodell

I statsmodels kan klassen OLS användas för att skapa en linjär regressionsmodell.

Vi behöver först initiera ett objekt av klassen OLS med sm.OLS(y, X_tilde). Träna sedan modellen med metoden fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Vilket är ekvivalent med:

model = sm.OLS(y, X_tilde).fit()
Note
Notering

Konstruktorn för klassen OLS förväntar sig en specifik array X_tilde som indata, vilket vi såg i den normala ekvationen. Därför behöver du konvertera din X-array till X_tilde. Detta kan göras med funktionen sm.add_constant().

Hitta parametrar

När modellen är tränad kan parametrarna enkelt nås med attributet params.

123456789
import statsmodels.api as sm import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv') X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) model = sm.OLS(y, X_tilde).fit() beta_0, beta_1 = model.params print(beta_0, beta_1)
copy

Göra prediktioner

Nya instanser kan enkelt förutsägas med metoden predict(), men även dessa måste förbehandlas:

12345
import numpy as np X_new = np.array([65, 70, 75]) X_new_tilde = sm.add_constant(X_new) print(model.predict(X_new_tilde))
copy

Hämta sammanfattningen

Som du förmodligen har märkt är det inte lika enkelt att använda OLS-klassen som funktionen polyfit(). Men att använda OLS har sina fördelar. Under träningen beräknar den mycket statistisk information. Du kan komma åt informationen med metoden summary().

1
print(model.summary())
copy

Det var mycket statistik. Vi kommer att diskutera tabellens viktigaste delar i senare avsnitt.

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookBygga Linjär Regression med Statsmodels

Svep för att visa menyn

Bygga en linjär regressionsmodell

I statsmodels kan klassen OLS användas för att skapa en linjär regressionsmodell.

Vi behöver först initiera ett objekt av klassen OLS med sm.OLS(y, X_tilde). Träna sedan modellen med metoden fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Vilket är ekvivalent med:

model = sm.OLS(y, X_tilde).fit()
Note
Notering

Konstruktorn för klassen OLS förväntar sig en specifik array X_tilde som indata, vilket vi såg i den normala ekvationen. Därför behöver du konvertera din X-array till X_tilde. Detta kan göras med funktionen sm.add_constant().

Hitta parametrar

När modellen är tränad kan parametrarna enkelt nås med attributet params.

123456789
import statsmodels.api as sm import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv') X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) model = sm.OLS(y, X_tilde).fit() beta_0, beta_1 = model.params print(beta_0, beta_1)
copy

Göra prediktioner

Nya instanser kan enkelt förutsägas med metoden predict(), men även dessa måste förbehandlas:

12345
import numpy as np X_new = np.array([65, 70, 75]) X_new_tilde = sm.add_constant(X_new) print(model.predict(X_new_tilde))
copy

Hämta sammanfattningen

Som du förmodligen har märkt är det inte lika enkelt att använda OLS-klassen som funktionen polyfit(). Men att använda OLS har sina fördelar. Under träningen beräknar den mycket statistisk information. Du kan komma åt informationen med metoden summary().

1
print(model.summary())
copy

Det var mycket statistik. Vi kommer att diskutera tabellens viktigaste delar i senare avsnitt.

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4
some-alt