วิธีการคำนวณ bic ใน python


Bayesian Information Criterion ซึ่งมักเรียกสั้น ๆ ว่า BIC เป็นการวัดที่ใช้ในการเปรียบเทียบความพอดีของแบบจำลองการถดถอยต่างๆ

ในทางปฏิบัติ เราปรับแบบจำลองการถดถอยหลายตัวให้เหมาะกับชุดข้อมูลเดียวกัน และเลือกแบบจำลองที่มีค่า BIC ต่ำสุดเป็นแบบจำลองที่เหมาะกับข้อมูลมากที่สุด

เราใช้สูตรต่อไปนี้เพื่อคำนวณ BIC:

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

ทอง:

  • d: จำนวนตัวทำนาย
  • n: การสังเกตทั้งหมด
  • σ̂: การประมาณค่าความแปรปรวนของข้อผิดพลาดที่เกี่ยวข้องกับการวัดการตอบสนองแต่ละรายการในแบบจำลองการถดถอย
  • RSS: ผลรวมที่เหลือของกำลังสองจากแบบจำลองการถดถอย
  • TSS: ผลรวมกำลังสองของแบบจำลองการถดถอย

ในการคำนวณ BIC ของโมเดลการถดถอยหลายตัวใน Python เราสามารถใช้ฟังก์ชัน statsmodels.regression.linear_model.OLS() ซึ่งมีคุณสมบัติที่เรียกว่า bic ซึ่งบอกเราถึงค่า BIC สำหรับโมเดลที่กำหนด

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้เพื่อคำนวณและตีความ BIC สำหรับโมเดลการถดถอยต่างๆ ใน Python

ตัวอย่าง: คำนวณ BIC ของแบบจำลองการถดถอยใน Python

สมมติว่าเราต้องการปรับ โมเดลการถดถอยเชิงเส้นหลายตัว ที่แตกต่างกันสองแบบโดยใช้ตัวแปรจากชุดข้อมูล mtcars

ขั้นแรก เราจะโหลดชุดข้อมูลนี้:

 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

ต่อไป เราจะใส่โมเดลการถดถอยสองแบบต่อไปนี้:

  • รุ่น 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
  • รุ่น 2 : mpg = β 0 + β 1 (มี) + β 2 (น้ำหนัก)

รหัสต่อไปนี้แสดงวิธีการปรับให้พอดีกับรุ่นแรกและคำนวณ 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

BIC ของรุ่นนี้กลายเป็น 174.239 .

ต่อไป เราจะใส่โมเดลที่สองให้พอดีและคำนวณ 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

BIC ของรุ่นนี้กลายเป็น 166.565 .

เนื่องจากรุ่นที่สองมีค่า BIC ต่ำกว่า จึงเป็นรุ่นที่เหมาะสมที่สุด

เมื่อเราระบุแบบจำลองนี้ดีที่สุดแล้ว เราจะดำเนินการปรับแบบจำลองให้เหมาะสมและวิเคราะห์ผลลัพธ์ รวมถึงค่า R-squared และค่าสัมประสิทธิ์เบต้า เพื่อกำหนดความสัมพันธ์ที่แน่นอนระหว่างชุดของตัวแปรทำนายและ ตัวแปรตอบสนอง

แหล่งข้อมูลเพิ่มเติม

ตัวชี้วัดที่ใช้กันทั่วไปอีกสองตัวเพื่อเปรียบเทียบความพอดีของแบบจำลองการถดถอยคือ AIC และ R-squared ที่ปรับแล้ว

บทช่วยสอนต่อไปนี้จะอธิบายวิธีคำนวณแต่ละหน่วยเมตริกเหล่านี้สำหรับโมเดลการถดถอยใน Python:

วิธีการคำนวณ AIC ของตัวแบบการถดถอยใน Python
วิธีการคำนวณ R-squared ที่ปรับแล้วใน Python

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *