Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Costruzione della Regressione Lineare Utilizzando Statsmodels | Regressione Lineare Semplice
Regressione Lineare con Python

bookCostruzione della Regressione Lineare Utilizzando Statsmodels

Costruzione di un Modello di Regressione Lineare

In statsmodels, la classe OLS può essere utilizzata per creare un modello di regressione lineare.

Per prima cosa è necessario inizializzare un oggetto della classe OLS utilizzando sm.OLS(y, X_tilde). Successivamente, si addestra il modello tramite il metodo fit().

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

Che equivale a:

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

Il costruttore della classe OLS si aspetta come input uno specifico array X_tilde, come visto nell'Equazione Normale. È quindi necessario convertire l'array X in X_tilde. Questo è possibile utilizzando la funzione sm.add_constant().

Ricerca dei parametri

Quando il modello è addestrato, è possibile accedere facilmente ai parametri utilizzando l'attributo 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

Effettuare le previsioni

Le nuove istanze possono essere facilmente previste utilizzando il metodo predict(), ma è necessario anche preprocessare l'input:

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

Ottenere il riepilogo

Come probabilmente avrai notato, utilizzare la classe OLS non è semplice come la funzione polyfit(). Tuttavia, l'uso di OLS offre dei vantaggi. Durante l'addestramento, calcola molte informazioni statistiche. Puoi accedere a queste informazioni tramite il metodo summary().

1
print(model.summary())
copy

Sono molte statistiche. Discuteremo le parti più importanti della tabella nelle sezioni successive.

question mark

Scegli l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookCostruzione della Regressione Lineare Utilizzando Statsmodels

Scorri per mostrare il menu

Costruzione di un Modello di Regressione Lineare

In statsmodels, la classe OLS può essere utilizzata per creare un modello di regressione lineare.

Per prima cosa è necessario inizializzare un oggetto della classe OLS utilizzando sm.OLS(y, X_tilde). Successivamente, si addestra il modello tramite il metodo fit().

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

Che equivale a:

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

Il costruttore della classe OLS si aspetta come input uno specifico array X_tilde, come visto nell'Equazione Normale. È quindi necessario convertire l'array X in X_tilde. Questo è possibile utilizzando la funzione sm.add_constant().

Ricerca dei parametri

Quando il modello è addestrato, è possibile accedere facilmente ai parametri utilizzando l'attributo 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

Effettuare le previsioni

Le nuove istanze possono essere facilmente previste utilizzando il metodo predict(), ma è necessario anche preprocessare l'input:

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

Ottenere il riepilogo

Come probabilmente avrai notato, utilizzare la classe OLS non è semplice come la funzione polyfit(). Tuttavia, l'uso di OLS offre dei vantaggi. Durante l'addestramento, calcola molte informazioni statistiche. Puoi accedere a queste informazioni tramite il metodo summary().

1
print(model.summary())
copy

Sono molte statistiche. Discuteremo le parti più importanti della tabella nelle sezioni successive.

question mark

Scegli l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4
some-alt