Kriteria pemilihan model terbaik dapat menggunakan metode pemilihan peubah penjelas ke dalam model regresi (variabel selection) serta beberapa kriteria untuk perbandingan model terbaik.

A. Metode Seleksi Peubah Penjelas

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

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.

All Possible Regression

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

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

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

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.

B. Kriteria Model Terbaik

Best Subsets Regression

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

Validasi Model

PRESS

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.