Como calcular o bic em python
O Critério de Informação Bayesiano , muitas vezes abreviado como BIC , é uma medida usada para comparar a qualidade do ajuste de diferentes modelos de regressão.
Na prática, ajustamos vários modelos de regressão ao mesmo conjunto de dados e escolhemos o modelo com o menor valor de BIC como o modelo que melhor se ajusta aos dados.
Usamos a seguinte fórmula para calcular o BIC:
BIC: (RSS+log(n)dσ̂ 2 ) / n
Ouro:
- d: O número de preditores
- n: Total de observações
- σ̂: Estimativa da variância do erro associada a cada medida de resposta em um modelo de regressão
- RSS: Soma residual dos quadrados do modelo de regressão
- TSS: Soma total dos quadrados do modelo de regressão
Para calcular o BIC de modelos de regressão múltipla em Python, podemos usar a função statsmodels.regression.linear_model.OLS() , que possui uma propriedade chamada bic que nos informa o valor BIC para um determinado modelo.
O exemplo a seguir mostra como usar esta função para calcular e interpretar o BIC para vários modelos de regressão em Python.
Exemplo: calcule o BIC de modelos de regressão em Python
Suponha que queiramos ajustar dois modelos diferentes de regressão linear múltipla usando variáveis do conjunto de dados mtcars .
Primeiro, carregaremos este conjunto de dados:
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
A seguir, ajustaremos os dois modelos de regressão a seguir:
- Modelo 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
- Modelo 2 : mpg = β 0 + β 1 (disponível) + β 2 (peso)
O código a seguir mostra como ajustar o primeiro modelo e calcular o 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
O BIC deste modelo é 174.239 .
A seguir, ajustaremos o segundo modelo e calcularemos o 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
O BIC deste modelo é 166.565 .
Como o segundo modelo tem um valor BIC mais baixo, é o modelo com melhor ajuste.
Uma vez identificado este modelo como o melhor, podemos prosseguir com o ajuste do modelo e analisar os resultados, incluindo o valor R-quadrado e os coeficientes beta, para determinar a relação exata entre o conjunto de variáveis preditivas e a variável resposta .
Recursos adicionais
Duas outras métricas comumente usadas para comparar o ajuste de modelos de regressão são AIC e R-quadrado ajustado .
Os tutoriais a seguir explicam como calcular cada uma dessas métricas para modelos de regressão em Python:
Como calcular AIC de modelos de regressão em Python
Como calcular R-quadrado ajustado em Python