Costruzione 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()
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.
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)
Effettuare le previsioni
Le nuove istanze possono essere facilmente previste utilizzando il metodo predict(), ma è necessario anche preprocessare l'input:
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))
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().
1print(model.summary())
Sono molte statistiche. Discuteremo le parti più importanti della tabella nelle sezioni successive.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Costruzione 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()
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.
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)
Effettuare le previsioni
Le nuove istanze possono essere facilmente previste utilizzando il metodo predict(), ma è necessario anche preprocessare l'input:
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))
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().
1print(model.summary())
Sono molte statistiche. Discuteremo le parti più importanti della tabella nelle sezioni successive.
Grazie per i tuoi commenti!