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

Suggested prompts:

Can you explain what the `add_constant` function does?

What do the values of `beta_0` and `beta_1` represent in this context?

How do I interpret the output of the `summary()` method?

Awesome!

Completion rate improved to 5.26

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