Kriteria pemilihan model terbaik dapat menggunakan metode pemilihan peubah penjelas ke dalam model regresi (variabel selection) serta beberapa kriteria untuk perbandingan model terbaik.
Metode seleksi peubah penjelas berguna untuk mengidentifikasi peubah-peubah yang terbaik dan signifikan terhadap model. Perlu diingat bahwa model regresi yang disukai yaitu model yang memiliki peubah penjelas paling sederhana. Metode seleksi peubah yang akan dipelajari yaitu backward selection, forward selection, dan stepwise. Sebelum menggunakan ketiga metode tersebut, perlu dipahami dulu uji F-parsial dan Uji F-Sekuensial. Uji F-parsial digunakan pada backward selection sedangkan uji F-sekuensial digunakan pada forward selection.
Uji F-sekuensial digunakan untuk melihat pengaruh r peubah penjelas yang ditambahkan ke dalam model. Contoh penerapan uji F-sekuensial menggunakan supervisor performance data (Chatterjee & Hadi, 2013) seperti berikut:
Supervisor performance data terdiri dari 6 peubah penjelas dan 30 observasi (departemen).
# Input supervisor performance data
dt.sp <- read.csv('supervisor data.csv', header =T, sep = ',')
str(dt.sp)
## 'data.frame': 30 obs. of 8 variables:
## $ Observation: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Y : int 43 63 71 61 81 43 58 71 72 67 ...
## $ X1 : int 51 64 70 63 78 55 67 75 82 61 ...
## $ X2 : int 30 51 68 45 56 49 42 50 72 45 ...
## $ X3 : int 39 54 69 47 66 44 56 55 67 47 ...
## $ X4 : int 61 63 76 54 71 54 66 70 71 62 ...
## $ X5 : int 92 73 86 84 83 49 68 66 83 80 ...
## $ X6 : int 45 47 48 35 47 34 35 41 31 41 ...
head(dt.sp)
Penentuan peubah yang akan dimasukkan ke dalam model didasarkan pada nilai korelasi antara peubah penjelas terhadap peubah respon. Peubah penjelas dengan korelasi paling tinggi dimasukkan terlebih dahulu.
## == korelasi all X vs Y
cor(dt.sp[3:8], dt.sp$Y)
## [,1]
## X1 0.8254176
## X2 0.4261169
## X3 0.6236782
## X4 0.5901390
## X5 0.1564392
## X6 0.1550863
Peubah X1 dimasukkan ke model 1 (model tanpa peubah penjelas) terlebih dahulu sehingga menjadi model 2
## Model 1: Y=b0
model1.sp <- lm(Y~1, data = dt.sp)
summary(model1.sp)
##
## Call:
## lm(formula = Y ~ 1, data = dt.sp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.6333 -5.8833 0.8667 7.1167 20.3667
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 64.633 2.222 29.08 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.17 on 29 degrees of freedom
Peubah X1 berpengaruh nyata terhadap Y pada taraf nyata 5%.
## model 2: Y=b0+b1X1 (memasukkan X1 ke model)
model2.sp <- lm(Y~X1, data = dt.sp)
summary(model2.sp)
##
## Call:
## lm(formula = Y ~ X1, data = dt.sp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.8799 -5.9905 0.1783 6.2978 9.6294
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.37632 6.61999 2.172 0.0385 *
## X1 0.75461 0.09753 7.737 1.99e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.993 on 28 degrees of freedom
## Multiple R-squared: 0.6813, Adjusted R-squared: 0.6699
## F-statistic: 59.86 on 1 and 28 DF, p-value: 1.988e-08
Selanjutnya, memilih peubah penjelas lain yang akan dimasukkan ke dalam model berdasarkan nilai korelasi antara peubah respon dengan peubah penjelas sisanya.
cor(dt.sp[4:8], dt.sp$Y)
## [,1]
## X2 0.4261169
## X3 0.6236782
## X4 0.5901390
## X5 0.1564392
## X6 0.1550863
Peubah X3 akan dimasukkan ke dalam model 2 sehingga menjadi model 3
## Model 3: Y=b0+b1X1+b3X3 (memasukkan X3 ke model 2)
model3.sp <- lm(Y~X1+X3, data = dt.sp)
summary(model3.sp)
##
## Call:
## lm(formula = Y ~ X1 + X3, data = dt.sp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.5568 -5.7331 0.6701 6.5341 10.3610
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.8709 7.0612 1.398 0.174
## X1 0.6435 0.1185 5.432 9.57e-06 ***
## X3 0.2112 0.1344 1.571 0.128
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.817 on 27 degrees of freedom
## Multiple R-squared: 0.708, Adjusted R-squared: 0.6864
## F-statistic: 32.74 on 2 and 27 DF, p-value: 6.058e-08
Hasil uji t di atas menunjukkan bahwa peubah X2 tidak berpengaruh nyata terhadap Y pada taraf nyata 5%.
Untuk menentukan apakah X3 dapat(bermanfaat) dimasukkan ke dalam model digunakan uji F-sekuensial seperti berikut
## JK(b1) dari model 2
aov(model2.sp)
## Call:
## aov(formula = model2.sp)
##
## Terms:
## X1 Residuals
## Sum of Squares 2927.584 1369.382
## Deg. of Freedom 1 28
##
## Residual standard error: 6.993319
## Estimated effects may be unbalanced
JK.b1 <- 2927.584
## JK(b1, b3) dari model 3
aov(model3.sp)
## Call:
## aov(formula = model3.sp)
##
## Terms:
## X1 X3 Residuals
## Sum of Squares 2927.5843 114.7334 1254.6490
## Deg. of Freedom 1 1 27
##
## Residual standard error: 6.816779
## Estimated effects may be unbalanced
JK.b1b3 <- 3042.318
## Uji F skuensial mode; 2 dan 3
# H0: b3 = 0 vs H1: b3 != 0
# menghitung F hitung
JK.b3_b1 <- JK.b1b3 - JK.b1 #JK(b3|b1)
JK.b3_b1
## [1] 114.734
KT.b3_b1 <- JK.b3_b1/1 #KT(b3|b1)
KT.res <- 1254.6490 #KT(b1,b3)
F.hit <- KT.b3_b1/KT.res
F.tabel <- qf(0.95, 1, (nrow(dt.sp)-3))
cbind(F.hit, F.tabel)
## F.hit F.tabel
## [1,] 0.09144709 4.210008
F hitung dari output diatas lebih kecil dari pada F tabel sehingga tak tolak H0. Artinya, Peubah X3 tidak perlu ditambahkan ke dalam model 2.
Pada metode ini, akan diuji semua kemungkinan model subset regresi dari semua kandidat peubah penjelas. Banyaknya model yang mungkin yaitu \(2^k\), di mana k = banyaknya peubah penjelas. Contoh penerapan metode ini menggunakan Hald Cement Data (Montgomery et al, 2012). Data tersebut juga akan digunakan untuk forward, backward, stepwise, best subsets regression, dan PRESS.
##== Hald Cement data
dt.hc <- read.csv('hald cement data.csv', header = T, sep = ',')
head(dt.hc)
str(dt.hc)
## 'data.frame': 13 obs. of 6 variables:
## $ obs: int 1 2 3 4 5 6 7 8 9 10 ...
## $ y : num 78.5 74.3 104.3 87.6 95.9 ...
## $ x1 : int 7 1 11 11 7 11 3 1 2 21 ...
## $ x2 : int 26 29 56 31 52 55 71 31 54 47 ...
## $ x3 : int 6 15 8 8 6 9 17 22 18 4 ...
## $ x4 : int 60 52 20 47 33 22 6 44 22 26 ...
Gunakan package olsrr
library(olsrr)
##
## Attaching package: 'olsrr'
## The following object is masked from 'package:datasets':
##
## rivers
#jumlah kombinasi model = 2^k, k=# peubah penjelas
full.model.hc <- lm(y~., data = dt.hc[,-1])
ols_step_all_possible(full.model.hc)
Berdasarkan output di atas, model ke 5, 11, 12, 13, dan 15 menghasilkan nilai \(R^2\) dan adj-\(R^2\) sangat besar serta Cp Mallows yang kecil mendekati k+1. Model 5 terdiri dari 2 peubah (X1 dan X2), model 11 dan 12 terdiri dari 3 peubah X yang keduanya mengandung X1 dan X2, sedangkan model 15 terdiri dari keempat peubah. Perubahan \(R^2\) dan adj-\(R^2\) yang paling besar terjadi ketika menambahkan satu X ke model yang terdiri dari 1 peubah bebas, yaitu terjadi pada model 5. Model 11 memperbaiki model 5 dan menjadi model terbaik.
Forward selection diawali dengan model tanpa peubah penjelas, kemudian memasukkan peubah penjelas satu per satu ke dalam model berdasarkan nilai korelasi seperti contoh uji F-sekuensial di atas. Setiap peubah yang masuk ke dalam model tidak akan dikeluarkan. Proses seleksi akan berhenti jika tidak ada lagi peubah penjelas yang signifikan di antara yang tersisa.
##== Forward selection
fw.hc <- ols_step_forward_p(full.model.hc)
fw.hc
##
## Selection Summary
## -------------------------------------------------------------------------
## Variable Adj.
## Step Entered R-Square R-Square C(p) AIC RMSE
## -------------------------------------------------------------------------
## 1 x4 0.6745 0.6450 138.7308 97.7440 8.9639
## 2 x1 0.9725 0.9670 5.4959 67.6341 2.7343
## 3 x2 0.9823 0.9764 3.0182 63.8663 2.3087
## -------------------------------------------------------------------------
Peubah yang pertama kali dimasukkan ke dalam model yaitu X4 dilanjutkan dengan X1 dan X3. Penambahan X1 setelah X4 menghasilkan perubahan kriteria yang besar dan model menjadi lebih baik. Model dengan ketiga peubah (X4, X1, X2) juga memperbaiki model sebelumnya.
Backward selection diawali dengan model penuh (semua peubah penjelas ada di dalam model), kemudian mengeluarkan peubah penjelas satu per satu berdasarkan signifikansi hasil uji F-parsial. Setiap peubah penjelas yang dikeluarkan dari model tidak akan dimasukkan kembali. Proses seleksi akan berhenti jika tidak ada lagi peubah penjelas yang tidak signifikan di antara yang tersisa.
##== Backward selection
bw.hc <- ols_step_backward_p(full.model.hc)
bw.hc
##
##
## Elimination Summary
## -----------------------------------------------------------------------
## Variable Adj.
## Step Removed R-Square R-Square C(p) AIC RMSE
## -----------------------------------------------------------------------
## 1 x3 0.9823 0.9764 3.0182 63.8663 2.3087
## -----------------------------------------------------------------------
Hanya terdapat satu peubah penjelas yang dikeluarkan dari model penuh, yaitu peubah X3. Model akhir yang diperoleh dari metode ini sama dengan model akhir (step 3) dari forward selection.
Stepwise Regression digunakan untuk mencari model terbaik dan dapat mengatasi multikolinearitas. Metode tersebut mengombinasikan forward dan backward selection. Proses seleksi diawali dari model tanpa peubah penjelas, lalu memasukkan peubah X berdasarkan nilai korelasi tertinggi (langkah selanjutnya seperti forward selection). Peubah penjelas yang sudah masuk ke dalam model, dapat dikeluarkan menggunakan backward selection. Pada metode ini, digunakan dua taraf nyata, yaitu taraf nyata masuk dan keluar yang besar nilainya berdasarkan bidang yang diteliti.
##== Stepwise
sw.hc <- ols_step_both_p(full.model.hc, details = T)
## Stepwise Selection Method
## ---------------------------
##
## Candidate Terms:
##
## 1. x1
## 2. x2
## 3. x3
## 4. x4
##
## We are selecting variables based on p value...
##
##
## Stepwise Selection: Step 1
##
## - x4 added
##
## Model Summary
## --------------------------------------------------------------
## R 0.821 RMSE 8.964
## R-Squared 0.675 Coef. Var 9.394
## Adj. R-Squared 0.645 MSE 80.352
## Pred R-Squared 0.560 MAE 6.894
## --------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## --------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## --------------------------------------------------------------------
## Regression 1831.896 1 1831.896 22.799 6e-04
## Residual 883.867 11 80.352
## Total 2715.763 12
## --------------------------------------------------------------------
##
## Parameter Estimates
## -------------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -------------------------------------------------------------------------------------------
## (Intercept) 117.568 5.262 22.342 0.000 105.986 129.150
## x4 -0.738 0.155 -0.821 -4.775 0.001 -1.078 -0.398
## -------------------------------------------------------------------------------------------
##
##
##
## Stepwise Selection: Step 2
##
## - x1 added
##
## Model Summary
## -------------------------------------------------------------
## R 0.986 RMSE 2.734
## R-Squared 0.972 Coef. Var 2.865
## Adj. R-Squared 0.967 MSE 7.476
## Pred R-Squared 0.955 MAE 2.015
## -------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## ---------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## ---------------------------------------------------------------------
## Regression 2641.001 2 1320.500 176.627 0.0000
## Residual 74.762 10 7.476
## Total 2715.763 12
## ---------------------------------------------------------------------
##
## Parameter Estimates
## -------------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -------------------------------------------------------------------------------------------
## (Intercept) 103.097 2.124 48.540 0.000 98.365 107.830
## x4 -0.614 0.049 -0.683 -12.621 0.000 -0.722 -0.506
## x1 1.440 0.138 0.563 10.403 0.000 1.132 1.748
## -------------------------------------------------------------------------------------------
##
##
##
## Model Summary
## -------------------------------------------------------------
## R 0.986 RMSE 2.734
## R-Squared 0.972 Coef. Var 2.865
## Adj. R-Squared 0.967 MSE 7.476
## Pred R-Squared 0.955 MAE 2.015
## -------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## ---------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## ---------------------------------------------------------------------
## Regression 2641.001 2 1320.500 176.627 0.0000
## Residual 74.762 10 7.476
## Total 2715.763 12
## ---------------------------------------------------------------------
##
## Parameter Estimates
## -------------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -------------------------------------------------------------------------------------------
## (Intercept) 103.097 2.124 48.540 0.000 98.365 107.830
## x4 -0.614 0.049 -0.683 -12.621 0.000 -0.722 -0.506
## x1 1.440 0.138 0.563 10.403 0.000 1.132 1.748
## -------------------------------------------------------------------------------------------
##
##
##
## Stepwise Selection: Step 3
##
## - x2 added
##
## Model Summary
## -------------------------------------------------------------
## R 0.991 RMSE 2.309
## R-Squared 0.982 Coef. Var 2.419
## Adj. R-Squared 0.976 MSE 5.330
## Pred R-Squared 0.969 MAE 1.606
## -------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## ---------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## ---------------------------------------------------------------------
## Regression 2667.790 3 889.263 166.832 0.0000
## Residual 47.973 9 5.330
## Total 2715.763 12
## ---------------------------------------------------------------------
##
## Parameter Estimates
## -----------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -----------------------------------------------------------------------------------------
## (Intercept) 71.648 14.142 5.066 0.001 39.656 103.641
## x4 -0.237 0.173 -0.263 -1.365 0.205 -0.629 0.155
## x1 1.452 0.117 0.568 12.410 0.000 1.187 1.717
## x2 0.416 0.186 0.430 2.242 0.052 -0.004 0.836
## -----------------------------------------------------------------------------------------
##
##
##
## Model Summary
## -------------------------------------------------------------
## R 0.991 RMSE 2.309
## R-Squared 0.982 Coef. Var 2.419
## Adj. R-Squared 0.976 MSE 5.330
## Pred R-Squared 0.969 MAE 1.606
## -------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## ---------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## ---------------------------------------------------------------------
## Regression 2667.790 3 889.263 166.832 0.0000
## Residual 47.973 9 5.330
## Total 2715.763 12
## ---------------------------------------------------------------------
##
## Parameter Estimates
## -----------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -----------------------------------------------------------------------------------------
## (Intercept) 71.648 14.142 5.066 0.001 39.656 103.641
## x4 -0.237 0.173 -0.263 -1.365 0.205 -0.629 0.155
## x1 1.452 0.117 0.568 12.410 0.000 1.187 1.717
## x2 0.416 0.186 0.430 2.242 0.052 -0.004 0.836
## -----------------------------------------------------------------------------------------
##
##
##
## No more variables to be added/removed.
##
##
## Final Model Output
## ------------------
##
## Model Summary
## -------------------------------------------------------------
## R 0.991 RMSE 2.309
## R-Squared 0.982 Coef. Var 2.419
## Adj. R-Squared 0.976 MSE 5.330
## Pred R-Squared 0.969 MAE 1.606
## -------------------------------------------------------------
## RMSE: Root Mean Square Error
## MSE: Mean Square Error
## MAE: Mean Absolute Error
##
## ANOVA
## ---------------------------------------------------------------------
## Sum of
## Squares DF Mean Square F Sig.
## ---------------------------------------------------------------------
## Regression 2667.790 3 889.263 166.832 0.0000
## Residual 47.973 9 5.330
## Total 2715.763 12
## ---------------------------------------------------------------------
##
## Parameter Estimates
## -----------------------------------------------------------------------------------------
## model Beta Std. Error Std. Beta t Sig lower upper
## -----------------------------------------------------------------------------------------
## (Intercept) 71.648 14.142 5.066 0.001 39.656 103.641
## x4 -0.237 0.173 -0.263 -1.365 0.205 -0.629 0.155
## x1 1.452 0.117 0.568 12.410 0.000 1.187 1.717
## x2 0.416 0.186 0.430 2.242 0.052 -0.004 0.836
## -----------------------------------------------------------------------------------------
sw.hc
##
## Stepwise Selection Summary
## -------------------------------------------------------------------------------------
## Added/ Adj.
## Step Variable Removed R-Square R-Square C(p) AIC RMSE
## -------------------------------------------------------------------------------------
## 1 x4 addition 0.675 0.645 138.7310 97.7440 8.9639
## 2 x1 addition 0.972 0.967 5.4960 67.6341 2.7343
## 3 x2 addition 0.982 0.976 3.0180 63.8663 2.3087
## -------------------------------------------------------------------------------------
Pada kasus ini, tidak ada peubah yang dikeluarkan setelah dimasukkan ke dalam model. Hasil model dengan metode stepwise sama dengan hasil forward selection.
Memilih model terbaik dari beberapa model subset regresi terbaik (dari hasil all possible regression) berdasarkan beberapa kriteria baku seperti memiliki nilai \(R^2\) dan adj-\(R^2\) terbesar, cp Mallows terkecil, dan AIC terkecil, dan Pred-\(R^2\) terbesar.
# Hald Cement data
full.model.hc <- lm(y~., data = dt.hc[,-1])
bs.hc <- ols_step_best_subset(full.model.hc)
bs.hc
Model terbaik yaitu model 3 dengan peubah X1, X2, dan x4 di dalam model
PRESS (Prediction Sum of Square) merupakan kombinasi dari all possible regression, analisis sisaan, dan teknik validasi yang digunakan untuk mengukur validitas model. Model yang baik memiliki nilai PRESS yang kecil.
##== PRESS
PRESS.x4 <- ols_press(lm(y~x4, data = dt.hc))
PRESS.x1x2 <- ols_press(lm(y~x1+x2, data = dt.hc))
PRESS.x1x2x4 <- ols_press(lm(y~x1+x2+x4, data = dt.hc))
PRESS.full <- ols_press(full.model.hc)
cbind(PRESS.x4, PRESS.x1x2, PRESS.x1x2x4, PRESS.full)
## PRESS.x4 PRESS.x1x2 PRESS.x1x2x4 PRESS.full
## [1,] 1194.218 93.88255 85.35112 110.3466
Model dengan peubah X1, X2, dan X4 menjadi model terbaik karena memiliki PRESS yang paling kecil.