Cara melakukan tes rasio kemungkinan dengan python


Uji rasio kemungkinan membandingkan kesesuaian dua model regresi bertingkat.

Model bersarang hanyalah model yang berisi subkumpulan variabel prediktor dalam model regresi keseluruhan.

Misalnya, kita memiliki model regresi berikut dengan empat variabel prediktor:

Y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + β 4 x 4 + ε

Contoh model bertingkat adalah model berikut yang hanya memiliki dua variabel prediktor asli:

Y = β 0 + β 1 x 1 + β 2 x 2 + ε

Untuk mengetahui apakah kedua model ini berbeda secara signifikan, kita dapat melakukan uji rasio kemungkinan yang menggunakan hipotesis nol dan hipotesis alternatif berikut:

H 0 : Model lengkap dan model tersarang sama-sama cocok dengan data. Jadi, Anda harus menggunakan model bersarang .

H A : Model lengkap lebih cocok dengan data dibandingkan model tersarang. Jadi harus menggunakan template yang lengkap .

Jika nilai p dari pengujian tersebut berada di bawah tingkat signifikansi tertentu (misalnya 0,05), maka kita dapat menolak hipotesis nol dan menyimpulkan bahwa model lengkap memberikan kesesuaian yang jauh lebih baik.

Contoh langkah demi langkah berikut menunjukkan cara melakukan uji rasio kemungkinan dengan Python.

Langkah 1: Muat data

Dalam contoh ini, kami akan menunjukkan cara menyesuaikan dua model regresi berikut dengan Python menggunakan data dari kumpulan data mtcars :

Model lengkap: mpg = β 0 + β 1 tersedia + β 2 karbohidrat + β 3 hp + β 4 silinder

Model: mpg = β 0 + β 1 tersedia + β 2 karbohidrat

Pertama, kita akan memuat kumpulan data:

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

#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)

Terkait: Cara Membaca File CSV dengan Pandas

Langkah 2: Sesuaikan model regresi

Pertama, kita akan menyesuaikan model lengkap dan menghitung log-likelihood model tersebut:

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

#define predictor variables
x1 = data[['disp', 'carb', 'hp', 'cyl']]

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

#fit regression model
full_model = sm. OLS (y1,x1). fit ()

#calculate log-likelihood of model
full_ll = full_model. llf

print (full_ll)

-77.55789711787898

Selanjutnya, kita akan menyesuaikan model tereduksi dan menghitung log-likelihood model tersebut:

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

#define predictor variables
x2 = data[['disp', 'carb']]

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

#fit regression model
reduced_model = sm. OLS (y2, x2). fit ()

#calculate log-likelihood of model
reduced_ll = reduced_model. llf

print (reduced_ll)

-78.60301334355185

Langkah 3: Lakukan uji kemungkinan log

Selanjutnya, kita akan menggunakan kode berikut untuk melakukan uji masuk akal:

 #calculate likelihood ratio Chi-Squared test statistic
LR_statistic = -2 * (reduced_ll-full_ll)

print (LR_statistic)

2.0902324513457415

#calculate p-value of test statistic using 2 degrees of freedom
p_val = scipy. stats . chi2 . sf (LR_statistic, 2)

print (p_val)

0.35165094613502257

Dari hasil tersebut, kita dapat melihat bahwa statistik uji chi-square adalah 2,0902 dan nilai p-value yang sesuai adalah 0,3517 .

Karena nilai p ini tidak kurang dari 0,05, kita akan gagal menolak hipotesis nol.

Artinya, model lengkap dan model tersarang sama-sama cocok dengan data. Oleh karena itu kita harus menggunakan model bersarang, karena variabel prediktor tambahan dalam model lengkap tidak memberikan peningkatan kecocokan yang signifikan.

Jadi, model terakhir kita adalah:

mpg = β 0 + β 1 tersedia + β 2 karbohidrat

Catatan : Kami menggunakan 2 derajat kebebasan saat menghitung nilai p karena ini mewakili perbedaan total variabel prediktor yang digunakan antara kedua model.

Sumber daya tambahan

Tutorial berikut memberikan informasi tambahan tentang penggunaan model regresi dengan Python:

Panduan Lengkap Regresi Linier dengan Python
Cara melakukan regresi polinomial dengan Python
Cara Melakukan Regresi Logistik dengan Python

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *