Cara mengekstrak nilai p dari regresi linier dalam model statistik


Anda dapat menggunakan metode berikut untuk mengekstrak nilai p untuk koefisien dalam kecocokan model regresi linier menggunakan modul statsmodels dengan Python:

 #extract p-values for all predictor variables
for x in range(0, 3):
    print ( model.pvalues [x])

#extract p-value for specific predictor variable name
model. pvalues . loc [' predictor1 ']

#extract p-value for specific predictor variable position
model. pvalues [0]

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.

Contoh: Ekstrak nilai P dari regresi linier dalam model statistik

Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang jam belajar, ujian persiapan yang diambil, dan nilai akhir yang diterima siswa di kelas tertentu:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]})

#view head of DataFrame
df. head ()

	hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72

Kita dapat menggunakan fungsi OLS() dari modul statsmodels agar sesuai dengan model regresi linier berganda , menggunakan “jam” dan “ujian” sebagai variabel prediktor dan “skor” sebagai variabel respons :

 import statsmodels. api as sm

#define predictor and response variables
y = df['score']
x = df[['hours', 'exams']]

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

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

#view model summary
print ( model.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.718
Model: OLS Adj. R-squared: 0.661
Method: Least Squares F-statistic: 12.70
Date: Fri, 05 Aug 2022 Prob (F-statistic): 0.00180
Time: 09:24:38 Log-Likelihood: -38.618
No. Observations: 13 AIC: 83.24
Df Residuals: 10 BIC: 84.93
Df Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 71.4048 4.001 17.847 0.000 62.490 80.319
hours 5.1275 1.018 5.038 0.001 2.860 7.395
exams -1.2121 1.147 -1.057 0.315 -3.768 1.344
==================================================== ============================
Omnibus: 1,103 Durbin-Watson: 1,248
Prob(Omnibus): 0.576 Jarque-Bera (JB): 0.803
Skew: -0.289 Prob(JB): 0.669
Kurtosis: 1.928 Cond. No. 11.7
==================================================== ============================

Secara default, fungsi ringkasan() menampilkan nilai p dari setiap variabel prediktor hingga tiga tempat desimal:

  • Nilai P untuk intersepsi: 0,000
  • Nilai P untuk jam: 0,001
  • Nilai P untuk ujian: 0,315

Namun, kita dapat mengekstrak nilai p lengkap untuk setiap variabel prediktor dari model menggunakan sintaks berikut:

 #extract p-values for all predictor variables
for x in range(0, 3):
    print ( model.pvalues [x])

6.514115622692573e-09
0.0005077783375870773
0.3154807854805659

Ini memungkinkan kita melihat nilai p dengan lebih banyak tempat desimal:

  • Nilai P untuk intersepsi: 0,00000000651411562269257
  • Nilai P untuk jam: 0,0005077783375870773
  • Nilai P untuk ujian: 0,3154807854805659

Catatan : Kami menggunakan 3 dalam fungsi range() kami karena ada tiga koefisien total dalam model regresi kami.

Kita juga dapat menggunakan sintaks berikut untuk secara khusus mengekstrak nilai p untuk variabel “jam”:

 #extract p-value for 'hours' only
model. pvalues . loc [' hours ']

0.0005077783375870773

Atau kita dapat menggunakan sintaks berikut untuk mengekstrak nilai p dari koefisien suatu variabel pada posisi tertentu dalam model regresi:

 #extract p-value for coefficient in index position 0
model. pvalues [0]

6.514115622692573e-09

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya dengan Python:

Cara Melakukan Regresi Logistik dengan Python
Cara menghitung AIC model regresi dengan Python
Cara menghitung R-kuadrat yang disesuaikan dengan Python

Tambahkan komentar

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