Bygga 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()
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.
123456789import 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)
Göra prediktioner
Nya instanser kan enkelt förutsägas med metoden predict(), men även dessa måste förbehandlas:
12345import numpy as np X_new = np.array([65, 70, 75]) X_new_tilde = sm.add_constant(X_new) print(model.predict(X_new_tilde))
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().
1print(model.summary())
Det var mycket statistik. Vi kommer att diskutera tabellens viktigaste delar i senare avsnitt.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Bygga 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()
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.
123456789import 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)
Göra prediktioner
Nya instanser kan enkelt förutsägas med metoden predict(), men även dessa måste förbehandlas:
12345import numpy as np X_new = np.array([65, 70, 75]) X_new_tilde = sm.add_constant(X_new) print(model.predict(X_new_tilde))
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().
1print(model.summary())
Det var mycket statistik. Vi kommer att diskutera tabellens viktigaste delar i senare avsnitt.
Tack för dina kommentarer!