Come calcolare il bic in python


Il criterio informativo bayesiano , spesso abbreviato BIC , è una misura utilizzata per confrontare la bontà dell’adattamento di diversi modelli di regressione.

In pratica, adattiamo più modelli di regressione allo stesso set di dati e scegliamo il modello con il valore BIC più basso come modello che meglio si adatta ai dati.

Utilizziamo la seguente formula per calcolare il BIC:

BIC: (RSS+log(n)dσ̂ 2 ) / n

Oro:

  • d: il numero di predittori
  • n: osservazioni totali
  • σ̂: Stima della varianza dell’errore associata a ciascuna misura di risposta in un modello di regressione
  • RSS: somma residua dei quadrati dal modello di regressione
  • TSS: somma totale dei quadrati del modello di regressione

Per calcolare il BIC di modelli di regressione multipli in Python, possiamo usare la funzione statsmodels.regression.linear_model.OLS() , che ha una proprietà chiamata bic che ci dice il valore BIC per un dato modello.

L’esempio seguente mostra come utilizzare questa funzione per calcolare e interpretare BIC per vari modelli di regressione in Python.

Esempio: calcolare il BIC dei modelli di regressione in Python

Supponiamo di voler adattare due diversi modelli di regressione lineare multipla utilizzando le variabili del set di dati mtcars .

Innanzitutto, caricheremo questo set di dati:

 from sklearn. linear_model import LinearRegression
import statsmodels. api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#view head of data
data. head ()

        model mpg cyl disp hp drat wt qsec vs am gear carb
0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

Successivamente, adatteremo i seguenti due modelli di regressione:

  • Modello 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
  • Modello 2 : mpg = β 0 + β 1 (disponibile) + β 2 (peso)

Il codice seguente mostra come adattare il primo modello e calcolare il BIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view BIC of model
print (model. bic )

174.23905634994506

Il BIC di questo modello risulta essere 174.239 .

Successivamente, adatteremo il secondo modello e calcoleremo il BIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'wt']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view BIC of model
print (model. bic )

166.56499196301334

Il BIC di questo modello risulta essere 166.565 .

Poiché il secondo modello ha un valore BIC inferiore, è il modello più adatto.

Una volta identificato questo modello come il migliore, possiamo procedere con l’adattamento del modello e analizzare i risultati, incluso il valore R quadrato e i coefficienti beta, per determinare l’esatta relazione tra l’insieme di variabili predittive e la variabile di risposta .

Risorse addizionali

Altri due parametri comunemente utilizzati per confrontare l’adattamento dei modelli di regressione sono l’AIC e l’R quadrato corretto .

I seguenti tutorial spiegano come calcolare ciascuna di queste metriche per i modelli di regressione in Python:

Come calcolare l’AIC dei modelli di regressione in Python
Come calcolare l’R quadrato corretto in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *