Saya menyadari bahwa topik ini telah muncul beberapa kali sebelumnya, misalnya di sini , tetapi saya masih tidak yakin bagaimana cara terbaik untuk menafsirkan hasil regresi saya.
Saya memiliki dataset yang sangat sederhana, terdiri dari kolom nilai x dan kolom nilai y , dibagi menjadi dua kelompok sesuai dengan lokasi (loc). Poinnya terlihat seperti ini
Seorang kolega telah berhipotesis bahwa kita harus menyesuaikan regresi linier sederhana yang terpisah untuk setiap kelompok, yang telah saya lakukan menggunakan y ~ x * C(loc)
. Outputnya ditunjukkan di bawah ini.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.873
Model: OLS Adj. R-squared: 0.866
Method: Least Squares F-statistic: 139.2
Date: Mon, 13 Jun 2016 Prob (F-statistic): 3.05e-27
Time: 14:18:50 Log-Likelihood: -27.981
No. Observations: 65 AIC: 63.96
Df Residuals: 61 BIC: 72.66
Df Model: 3
Covariance Type: nonrobust
=================================================================================
coef std err t P>|t| [95.0% Conf. Int.]
---------------------------------------------------------------------------------
Intercept 3.8000 1.784 2.129 0.037 0.232 7.368
C(loc)[T.N] -0.4921 1.948 -0.253 0.801 -4.388 3.404
x -0.6466 0.230 -2.807 0.007 -1.107 -0.186
x:C(loc)[T.N] 0.2719 0.257 1.057 0.295 -0.242 0.786
==============================================================================
Omnibus: 22.788 Durbin-Watson: 2.552
Prob(Omnibus): 0.000 Jarque-Bera (JB): 121.307
Skew: 0.629 Prob(JB): 4.56e-27
Kurtosis: 9.573 Cond. No. 467.
==============================================================================
Melihat nilai-p untuk koefisien, variabel dummy untuk lokasi dan istilah interaksi tidak berbeda secara signifikan dari nol, dalam hal ini model regresi saya pada dasarnya berkurang menjadi hanya garis merah pada plot di atas. Bagi saya, ini menunjukkan bahwa pemasangan garis yang terpisah untuk dua kelompok mungkin merupakan kesalahan, dan model yang lebih baik mungkin merupakan garis regresi tunggal untuk seluruh dataset, seperti yang ditunjukkan di bawah ini.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.593
Model: OLS Adj. R-squared: 0.587
Method: Least Squares F-statistic: 91.93
Date: Mon, 13 Jun 2016 Prob (F-statistic): 6.29e-14
Time: 14:24:50 Log-Likelihood: -65.687
No. Observations: 65 AIC: 135.4
Df Residuals: 63 BIC: 139.7
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept 8.9278 0.935 9.550 0.000 7.060 10.796
x -1.2446 0.130 -9.588 0.000 -1.504 -0.985
==============================================================================
Omnibus: 0.112 Durbin-Watson: 1.151
Prob(Omnibus): 0.945 Jarque-Bera (JB): 0.006
Skew: 0.018 Prob(JB): 0.997
Kurtosis: 2.972 Cond. No. 81.9
==============================================================================
Ini terlihat OK bagi saya secara visual, dan nilai-p untuk semua koefisien sekarang signifikan. Namun, AIC untuk model kedua jauh lebih tinggi daripada yang pertama.
Saya menyadari bahwa pemilihan model adalah lebih dari sekedar nilai-p atau hanya AIC, tetapi saya tidak yakin apa yang harus dilakukan. Adakah yang bisa memberikan saran praktis mengenai menafsirkan output ini dan memilih model yang sesuai ?
Bagi saya, garis regresi tunggal terlihat OK (meskipun saya menyadari tidak ada satupun yang sangat baik), tetapi sepertinya ada setidaknya beberapa pembenaran untuk pemasangan model terpisah (?).
Terima kasih!
Diedit dalam menanggapi komentar
@Cagdas Ozgenc
Model dua garis dipasang menggunakan statsmodels Python dan kode berikut
reg = sm.ols(formula='y ~ x * C(loc)', data=df).fit()
Seperti yang saya pahami, ini pada dasarnya hanya singkatan untuk model seperti ini
yang merupakan garis biru pada plot di atas. AIC untuk model ini dilaporkan secara otomatis dalam ringkasan statsmodels. Untuk model satu baris saya hanya menggunakan
reg = ols(formula='y ~ x', data=df).fit()
Saya pikir ini baik-baik saja?
@ user2864849
Edit 2
Hanya untuk kelengkapan, berikut adalah plot sisa seperti yang disarankan oleh @whuber. Model dua garis memang terlihat jauh lebih baik dari sudut pandang ini.
Model dua garis
Model satu garis
Terima kasih semuanya!