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