1 Pendahuluan

Pada analisis ini data yang digunakan berasal dari Kaggle, Graduate Admission 2 - Mohan S Acharya data Admission_Predict_Ver1.1.csv dimana pada dataset yang ada, akan dipilih Chance.Of.Admit sebagai variabel target untuk pengujian analisis Regression Model.

2 Eksplorasi Data

2.1 Dataset

Dataset ini digunakan untuk memprediksi Graduate Admission yang bertujuan untuk mengetahui apa saja parameter yang penting untuk digunakan dalam graduate admission. Dataset dibuat dengan tujuan membantu siswa dalam memilih universitas sesuai dengan profil mereka. Hasil yang di prediksi akan memberi gambaran peluang mereka untuk masuk universitas tertentu.

Dataset berisi beberapa parameter, diantaranya :

  1. GRE Scores ( out of 340 )

  2. TOEFL Scores ( out of 120 )

  3. University Rating ( out of 5 )

  4. Statement of Purpose ( out of 5 )

  5. Letter of Recommendation Strength ( out of 5 )

  6. Undergraduate GPA ( out of 10 )

  7. Research Experience ( either 0 or 1 )

  8. Chance of Admit ( ranging from 0 to 1 )

2.2 Load Library

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.4
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.0.5
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.0.5
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Warning: package 'car' was built under R version 4.0.4
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.0.3
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
library(GGally)
## Warning: package 'GGally' was built under R version 4.0.5
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.0.4
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(MLmetrics)
## Warning: package 'MLmetrics' was built under R version 4.0.5
## 
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:base':
## 
##     Recall
options(scipen = 9999)

2.3 Input Data

admission <- read.csv("dataset/Admission_Predict_Ver1.1.csv") %>%
  select(-Serial.No.) 
names(admission) <- c("gre_score", "toefl_score", "university_rating", "sop", "lor", "cgpa", "research", "chance_of_admit") 
head(admission,20)
##    gre_score toefl_score university_rating sop lor cgpa research
## 1        337         118                 4 4.5 4.5 9.65        1
## 2        324         107                 4 4.0 4.5 8.87        1
## 3        316         104                 3 3.0 3.5 8.00        1
## 4        322         110                 3 3.5 2.5 8.67        1
## 5        314         103                 2 2.0 3.0 8.21        0
## 6        330         115                 5 4.5 3.0 9.34        1
## 7        321         109                 3 3.0 4.0 8.20        1
## 8        308         101                 2 3.0 4.0 7.90        0
## 9        302         102                 1 2.0 1.5 8.00        0
## 10       323         108                 3 3.5 3.0 8.60        0
## 11       325         106                 3 3.5 4.0 8.40        1
## 12       327         111                 4 4.0 4.5 9.00        1
## 13       328         112                 4 4.0 4.5 9.10        1
## 14       307         109                 3 4.0 3.0 8.00        1
## 15       311         104                 3 3.5 2.0 8.20        1
## 16       314         105                 3 3.5 2.5 8.30        0
## 17       317         107                 3 4.0 3.0 8.70        0
## 18       319         106                 3 4.0 3.0 8.00        1
## 19       318         110                 3 4.0 3.0 8.80        0
## 20       303         102                 3 3.5 3.0 8.50        0
##    chance_of_admit
## 1             0.92
## 2             0.76
## 3             0.72
## 4             0.80
## 5             0.65
## 6             0.90
## 7             0.75
## 8             0.68
## 9             0.50
## 10            0.45
## 11            0.52
## 12            0.84
## 13            0.78
## 14            0.62
## 15            0.61
## 16            0.54
## 17            0.66
## 18            0.65
## 19            0.63
## 20            0.62

Target variable dari dataset ini adalah chance_of_admit. Kolom Serial.No di delete karena tidak perlu digunakan, dan perubahan pada nama masing-masing kolom dilakukan akan lebih seragam (optional).

2.4 Struktur Data

Cek terlebih dahulu struktur dataset. Dimana dalam pengujian analisis Regresi Model, hendaknya variabel berupa numerik (angka).

str(admission)
## 'data.frame':    500 obs. of  8 variables:
##  $ gre_score        : int  337 324 316 322 314 330 321 308 302 323 ...
##  $ toefl_score      : int  118 107 104 110 103 115 109 101 102 108 ...
##  $ university_rating: int  4 4 3 3 2 5 3 2 1 3 ...
##  $ sop              : num  4.5 4 3 3.5 2 4.5 3 3 2 3.5 ...
##  $ lor              : num  4.5 4.5 3.5 2.5 3 3 4 4 1.5 3 ...
##  $ cgpa             : num  9.65 8.87 8 8.67 8.21 9.34 8.2 7.9 8 8.6 ...
##  $ research         : int  1 1 1 1 0 1 1 0 0 0 ...
##  $ chance_of_admit  : num  0.92 0.76 0.72 0.8 0.65 0.9 0.75 0.68 0.5 0.45 ...

2.5 Explorasi Data

Sebelum melakukan analisis lebih lanjut, ekplorasi data diperlukan untuk mempelajari dataset apakah sudah sesuai atau masih perlu ada yang dirubah.

  • research : int -> factor
#Mengubah tipe data `research`menjadi factor
admission <- admission %>% 
  mutate(research = as.factor(research))

Tipe data dalam dataset sudah sesuai, kemudian cek apakah terdapat missing value :

anyNA(admission)
## [1] FALSE

Tidak ada nilai Missing Value yang ditemukan, maka

Selanjutnya melakukan pengecekan visualisasi histogram, korelasi antar data, dan visualisasi boxplot untuk melihat outlier.

#histogram
hist(admission$chance_of_admit)

Cek distribusi dalam prameter : university_rating, sop, lor, cgpa, research

#boxplot
boxplot(admission[,3:7])

> Terdapat 1 outlier pada kolom lor

boxplot(admission$lor,plot = F)$out
## [1] 1
admission[admission$lor==1,]
##     gre_score toefl_score university_rating sop lor cgpa research
## 348       299          94                 1   1   1 7.34        0
##     chance_of_admit
## 348            0.42

Setelah memeriksa outliers didalam kolom lor dengan nilai = 1, menghasilkan 0.42 peluang untuk diterima (artinya tidak akan lolos) dan hal ini tidak akan mempengaruhi model sehingga outlier ini akan tetap dipertahankan

Cek distribusi dalam prameter : gre dan toefl

boxplot(admission[,1:2])

> Tidak ada outliers

3 Linear Model (Model Regression Linier)

Dalam pembuatan atau analisa model regresi linier, terlebih dahulu melakukan pengecekan terhadap korelasi chance_of_admit dengan variabel-variabel dari dataset.

ggcorr(admission, label= TRUE, hjust = 1, layout.exp = 2)
## Warning in ggcorr(admission, label = TRUE, hjust = 1, layout.exp = 2): data in
## column(s) 'research' are not numeric and were ignored

Terlihat pada visualisasi dari grafik korelasi diatas terlihat bahwa semua variabel berpengaruh positif terhadap variabel chance_of_admit sebagai vaiabel sasaran. cgpa memiliki pengaruh tertinggi sebesar (0,9) untuk variabel target diikuti oleh toefl_score dan gre_score dengan 0,8.

3.1 Pembuatan dan Analisa Model Linear

Untuk membuat model ke persamaan linear, dapat menggunakan function lm() dan predict()

3.1.1 Pemodelan dengan satu prediktor

chance_of_admit akan dijadikan variabel target dan cgpa sebagai prediktornya.

m1 <- lm(chance_of_admit ~ cgpa, admission)
admission$pred1 <- predict(object = m1, 
                           newdata = data.frame(cgpa = admission$cgpa))

3.1.2 Pemodelan dengan 2 prediktor

chance_of_admit akan dijadikan variabel target dan cgpa dan gre_score sebagai prediktornya.

m2 <- lm(chance_of_admit ~ cgpa + gre_score, admission)
admission$pred2 <- predict(object = m2,
                           newdata = data.frame(cgpa = admission$cgpa, 
                                                gre_score = admission$gre_score))

3.1.3 Pemodelan dengan 3 prediktor

chance_of_admit akan dijadikan variabel target dan cgpa, gre_score dan toefl_score sebagai prediktornya.

m3 <- lm(chance_of_admit ~ cgpa + gre_score + toefl_score , admission)
admission$pred3 <- predict(object = m3, 
                           newdata = data.frame(cgpa = admission$cgpa, 
                                                gre_score = admission$gre_score,
                                                toefl_score = admission$toefl_score))

3.1.4 Pemodelan dengan keseluruhan data sebagai prediktor

m4 <- lm(chance_of_admit ~ ., admission)
admission$pred4 <- predict(object = m4, 
                           databaru = data.frame)

3.2 R-Squared

R squared merupakan angka yang berkisar antara 0 sampai 1 yang mengindikasikan besarnya kombinasi variabel independen secara bersama – sama mempengaruhi nilai variabel dependen. Semakin mendekati angka satu, model yang dikeluarkan oleh regresi tersebut akan semakin baik. Sifat R-squared yang akan semakin baik jika menambah variabel inilah yang menjadi kelemahan dari R squared itu sendiri. Semakin banyak variabel independen yang digunakan maka akan semakin banyak “noise” dalam model tersebut dan ini tidak dapat dijelaskan oleh R squared.

Salah satu tujuan untuk meregresikan variabel independen dengan variabel dependen adalah membuat rumus dan menggunakannya untuk melakukan prediksi dengan nilai nilai tertentu dari variabel independennya. Jika anda ingin melakukan prediksi nilai Y, maka anda juga seharusnya melihat nilai dari R squared predicted. R Squared predicted mengindikasikan seberapa baik model tersebut untuk melakukan prediksi dari observasi yang baru.

Penggunakan R Square (R Kuadrat) sering menimbulkan permasalahan, yaitu bahwa nilainya akan selalu meningkat dengan adanya penambahan variabel bebas dalam suatu model. Hal ini akan menimbulkan bias, karena jika ingin memperoleh model dengan R tinggi, seorang penelitian dapat dengan sembarangan menambahkan variabel bebas dan nilai R akan meningkat, tidak tergantung apakah variabel bebas tambahan itu berhubungan dengan variabel terikat atau tidak.

Oleh karena itu, banyak peneliti yang menyarankan untuk menggunakan Adjusted R Square. Interpretasinya sama dengan R Square, akan tetapi nilai Adjusted R Square dapat naik atau turun dengan adanya penambahan variabel baru, tergantung dari korelasi antara variabel bebas tambahan tersebut dengan variabel terikatnya. Nilai Adjusted R Square dapat bernilai negatif, sehingga jika nilainya negatif, maka nilai tersebut dianggap 0, atau variabel bebas sama sekali tidak mampu menjelaskan varians dari variabel terikatnya.

3.2.1 Perbandingan Model

Saatnya kita lakukan perbandingan antara keempat model yang sudah dibuat berdasarkan nilai R-Squared, Adj. R-Squared.

summary(m1)$r.squared ; 
## [1] 0.778652
summary(m2)$r.squared ; 
## [1] 0.7995883
summary(m3)$r.squared ;
## [1] 0.8046167
summary(m4)$r.squared
## [1] 0.8219007

Terlihat jelas peningkatan nilai R-Squared dengan penambahan variabel dependen (prediktor), yang mana pada m4 prediktor yang digunakan adalah seluruh varibel data. Selanjutnya, mari lakukan perbandingan nilai Adj.R-Squared.

summary(m1)$adj.r.squared ; 
## [1] 0.7782075
summary(m2)$adj.r.squared ; 
## [1] 0.7987818
summary(m3)$adj.r.squared ;
## [1] 0.8034349
summary(m4)$adj.r.squared
## [1] 0.8193668

Pada hasil Adj.R-Squared keempat model didapatkan bahwa nilai tertinggi ada pada model keempat yang artinya model keempat sudah memiliki tingkat model yang cukup baik. Lalu bagaimana dengan nilai predict nya?? Mari kita lakukan analisa tingkat error nya melalui RMSE.

3.3 RMSE (Root Mean Square Error)

RMSE adalah metode alternatif untuk mengevaluasi teknik peramalan yang digunakan untuk mengukur tingkat akurasi hasil prakiraan suatu model. RMSE merupakan nilai rata-rata dari jumlah kuadrat kesalahan, juga dapat menyatakan ukuran besarnya kesalahan yang dihasilkan oleh suatu model prakiraan. Nilai RMSE rendah menunjukkan bahwa variasi nilai yang dihasilkan oleh suatu model prakiraan mendekati variasi nilai obeservasinya.

RMSE(admission$pred1, y_true = admission$chance_of_admit) ; 
## [1] 0.06633679
RMSE(admission$pred2, y_true = admission$chance_of_admit) ;
## [1] 0.06312162
RMSE(admission$pred3, y_true = admission$chance_of_admit) ;
## [1] 0.06232472
RMSE(admission$pred4, y_true = admission$chance_of_admit) ;
## [1] 0.05950421

Melihat hasil perbandingan ketiga model dari nilai RMSE yang paling rendah, dapat disimpulkan model keempat adalah model terbaik. Namun bila masih belum yakin atau dari model yang dibuat belum menampilkan hasil yang memuaskan, atau bingung memilih predictor yang tepat untuk mendapatkan hasil terbaik. Kita bisa melakukan analisa metode lain yaitu seperti Stepwise Regression yang didalamnya terdapat metode backward, forward dan both yang dilanjutkan kembali dengan perbandingan keempatnya.

3.4 Stepwise Regression

Regresi stepwise melibatkan dua jenis proses yaitu: forward selection dan backward elimination. Teknik ini dilakukan melalui beberapa tahapan. Pada masing-masing tahapan, kita akan memutuskan variabel mana yang merupakan prediktor terbaik untuk dimasukkan ke dalam model. Nilai yang dilihat pada model analisa ini adalah nilai AIC (Akaike Information Criterion) terendah.

3.5 Backward

Sebelum melakukan analisa, baiknya kita hapus terlebih dahulu beberapa kolom variabel predict yang sebelumnya sudah kita buat dengan membuat dataframe admissionstepwise.

head(admission)
##   gre_score toefl_score university_rating sop lor cgpa research chance_of_admit
## 1       337         118                 4 4.5 4.5 9.65        1            0.92
## 2       324         107                 4 4.0 4.5 8.87        1            0.76
## 3       316         104                 3 3.0 3.5 8.00        1            0.72
## 4       322         110                 3 3.5 2.5 8.67        1            0.80
## 5       314         103                 2 2.0 3.0 8.21        0            0.65
## 6       330         115                 5 4.5 3.0 9.34        1            0.90
##       pred1     pred2     pred3     pred4
## 1 0.9428093 0.9555389 0.9587271 0.9518830
## 2 0.7821904 0.7918110 0.7809789 0.8040313
## 3 0.6030385 0.6300344 0.6276580 0.6534481
## 4 0.7410060 0.7541049 0.7571562 0.7445193
## 5 0.6462821 0.6564786 0.6499060 0.6315496
## 6 0.8789736 0.8845887 0.8881596 0.8744934
summary(lm(chance_of_admit ~ ., admission[,-c(11,12,13,14)]))
## 
## Call:
## lm(formula = chance_of_admit ~ ., data = admission[, -c(11, 12, 
##     13, 14)])
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.266657 -0.023327  0.009191  0.033714  0.156818 
## 
## Coefficients: (2 not defined because of singularities)
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2757251  0.1042962 -12.232 < 0.0000000000000002 ***
## gre_score          0.0018585  0.0005023   3.700             0.000240 ***
## toefl_score        0.0027780  0.0008724   3.184             0.001544 ** 
## university_rating  0.0059414  0.0038019   1.563             0.118753    
## sop                0.0015861  0.0045627   0.348             0.728263    
## lor                0.0168587  0.0041379   4.074            0.0000538 ***
## cgpa               0.1183851  0.0097051  12.198 < 0.0000000000000002 ***
## research1          0.0243075  0.0066057   3.680             0.000259 ***
## pred1                     NA         NA      NA                   NA    
## pred2                     NA         NA      NA                   NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05999 on 492 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8194 
## F-statistic: 324.4 on 7 and 492 DF,  p-value: < 0.00000000000000022
admissionstepwise <- admission[,-c(11,12,13,14)] 
lm.all <- lm(chance_of_admit ~ ., admissionstepwise)

step(lm.all, direction = "backward")
## Start:  AIC=-2805.71
## chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     sop + lor + cgpa + research + pred1 + pred2
## 
## 
## Step:  AIC=-2805.71
## chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     sop + lor + cgpa + research + pred1
## 
## 
## Step:  AIC=-2805.71
## chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     sop + lor + cgpa + research
## 
##                     Df Sum of Sq    RSS     AIC
## - sop                1   0.00043 1.7708 -2807.6
## <none>                           1.7704 -2805.7
## - university_rating  1   0.00879 1.7792 -2805.2
## - toefl_score        1   0.03648 1.8069 -2797.5
## - research           1   0.04872 1.8191 -2794.1
## - gre_score          1   0.04926 1.8196 -2794.0
## - lor                1   0.05973 1.8301 -2791.1
## - cgpa               1   0.53542 2.3058 -2675.6
## 
## Step:  AIC=-2807.59
## chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     lor + cgpa + research
## 
##                     Df Sum of Sq    RSS     AIC
## <none>                           1.7708 -2807.6
## - university_rating  1   0.01190 1.7827 -2806.2
## - toefl_score        1   0.03760 1.8084 -2799.1
## - research           1   0.04893 1.8197 -2796.0
## - gre_score          1   0.04901 1.8198 -2795.9
## - lor                1   0.06892 1.8397 -2790.5
## - cgpa               1   0.55954 2.3304 -2672.3
## 
## Call:
## lm(formula = chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     lor + cgpa + research, data = admissionstepwise)
## 
## Coefficients:
##       (Intercept)          gre_score        toefl_score  university_rating  
##         -1.280014           0.001853           0.002807           0.006428  
##               lor               cgpa          research1  
##          0.017287           0.118999           0.024354

Dari data AIC terkecil pada metode backward didapatkan model baru seperti berikut ini :

backwardmodel <-
    lm(formula = chance_of_admit ~ gre_score + toefl_score + university_rating + lor + cgpa + research, data = admissionstepwise)

summary(backwardmodel)
## 
## Call:
## lm(formula = chance_of_admit ~ gre_score + toefl_score + university_rating + 
##     lor + cgpa + research, data = admissionstepwise)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.26617 -0.02321  0.00946  0.03345  0.15713 
## 
## Coefficients:
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2800138  0.1034717 -12.371 < 0.0000000000000002 ***
## gre_score          0.0018528  0.0005016   3.694             0.000246 ***
## toefl_score        0.0028072  0.0008676   3.236             0.001295 ** 
## university_rating  0.0064279  0.0035318   1.820             0.069363 .  
## lor                0.0172873  0.0039464   4.380            0.0000145 ***
## cgpa               0.1189994  0.0095344  12.481 < 0.0000000000000002 ***
## research1          0.0243538  0.0065985   3.691             0.000248 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05993 on 493 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8197 
## F-statistic: 379.1 on 6 and 493 DF,  p-value: < 0.00000000000000022

Buat analisa predict terhadap model backward

admissionstepwise$predict_backward <- predict(object = backwardmodel, 
                                              data.frame(
                                                gre_score = admissionstepwise$gre_score, 
                                                toefl_score = admissionstepwise$toefl_score,
                                                university_rating = admissionstepwise$university_rating, 
                                                lor = admissionstepwise$lor, 
                                                cgpa = admissionstepwise$cgpa, 
                                                research = admissionstepwise$research))

3.6 Forward

Forward Selection Model merupakan salah satu metode pemodelan untuk menemukan kombinasi model variabel predikto yang “terbaik” dari suatu deret data. Dalam Prosedur Forward selection, sekalinya variable masuk kedalam persamaan maka tidak bisa dihilangkan.

Selain itu, Forward selection dapat berarti memasukkan variabel bebas yang memiliki korelasi yang paling erat dengan variabel tak bebasnya (variabel yang paling potensial untuk memiliki hubungan linier dengan Y). kemudian secara bertahap memasukkan variabel bebas yang potensial berikutnya dan nanti akan terhenti sampai tidak ada lagi variabel bebas yang potensial

lm.none <- lm(chance_of_admit ~ 1, admissionstepwise)

step(lm.none, scope = list(lower = lm.none, upper = lm.all),
     direction = "forward")
## Start:  AIC=-1957
## chance_of_admit ~ 1
## 
##                     Df Sum of Sq    RSS     AIC
## + pred2              1    7.9482 1.9922 -2758.7
## + cgpa               1    7.7401 2.2003 -2709.0
## + pred1              1    7.7401 2.2003 -2709.0
## + gre_score          1    6.5275 3.4129 -2489.5
## + toefl_score        1    6.2388 3.7016 -2448.9
## + university_rating  1    4.7344 5.2060 -2278.4
## + sop                1    4.6525 5.2879 -2270.6
## + lor                1    4.1401 5.8003 -2224.3
## + research           1    2.9620 6.9784 -2131.9
## <none>                           9.9404 -1957.0
## 
## Step:  AIC=-2758.69
## chance_of_admit ~ pred2
## 
##                     Df Sum of Sq    RSS     AIC
## + lor                1  0.114061 1.8781 -2786.2
## + research           1  0.059387 1.9328 -2771.8
## + university_rating  1  0.059137 1.9330 -2771.8
## + sop                1  0.048565 1.9436 -2769.0
## + toefl_score        1  0.046308 1.9459 -2768.4
## <none>                           1.9922 -2758.7
## + gre_score          1  0.000000 1.9922 -2756.7
## + cgpa               1  0.000000 1.9922 -2756.7
## + pred1              1  0.000000 1.9922 -2756.7
## 
## Step:  AIC=-2786.17
## chance_of_admit ~ pred2 + lor
## 
##                     Df Sum of Sq    RSS     AIC
## + research           1  0.051155 1.8270 -2798.0
## + toefl_score        1  0.042793 1.8353 -2795.7
## + university_rating  1  0.022513 1.8556 -2790.2
## + sop                1  0.008842 1.8693 -2786.5
## <none>                           1.8781 -2786.2
## + gre_score          1  0.002171 1.8759 -2784.8
## + cgpa               1  0.002171 1.8759 -2784.8
## + pred1              1  0.002171 1.8759 -2784.8
## 
## Step:  AIC=-2797.98
## chance_of_admit ~ pred2 + lor + research
## 
##                     Df Sum of Sq    RSS     AIC
## + toefl_score        1  0.040346 1.7866 -2807.1
## + university_rating  1  0.018527 1.8084 -2801.1
## + sop                1  0.007789 1.8192 -2798.1
## <none>                           1.8270 -2798.0
## + gre_score          1  0.000016 1.8269 -2796.0
## + cgpa               1  0.000016 1.8269 -2796.0
## + pred1              1  0.000016 1.8269 -2796.0
## 
## Step:  AIC=-2807.14
## chance_of_admit ~ pred2 + lor + research + toefl_score
## 
##                     Df Sum of Sq    RSS     AIC
## + university_rating  1 0.0124425 1.7742 -2808.6
## <none>                           1.7866 -2807.1
## + sop                1 0.0042531 1.7824 -2806.3
## + gre_score          1 0.0038992 1.7827 -2806.2
## + cgpa               1 0.0038992 1.7827 -2806.2
## + pred1              1 0.0038992 1.7827 -2806.2
## 
## Step:  AIC=-2808.64
## chance_of_admit ~ pred2 + lor + research + toefl_score + university_rating
## 
##             Df Sum of Sq    RSS     AIC
## <none>                   1.7742 -2808.6
## + gre_score  1 0.0033548 1.7708 -2807.6
## + cgpa       1 0.0033548 1.7708 -2807.6
## + pred1      1 0.0033548 1.7708 -2807.6
## + sop        1 0.0006641 1.7735 -2806.8
## 
## Call:
## lm(formula = chance_of_admit ~ pred2 + lor + research + toefl_score + 
##     university_rating, data = admissionstepwise)
## 
## Coefficients:
##       (Intercept)              pred2                lor          research1  
##         -0.170607           0.722230           0.017843           0.022906  
##       toefl_score  university_rating  
##          0.002571           0.006568

Dari data analisa diatas AIC terkecil pada metode forward didapatkan model baru seperti berikut ini :

forwardmodel <- lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + toefl_score + university_rating, data = admissionstepwise)

summary(forwardmodel)
## 
## Call:
## lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + 
##     toefl_score + university_rating, data = admissionstepwise)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.26617 -0.02321  0.00946  0.03345  0.15713 
## 
## Coefficients:
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2800138  0.1034717 -12.371 < 0.0000000000000002 ***
## cgpa               0.1189994  0.0095344  12.481 < 0.0000000000000002 ***
## gre_score          0.0018528  0.0005016   3.694             0.000246 ***
## lor                0.0172873  0.0039464   4.380            0.0000145 ***
## research1          0.0243538  0.0065985   3.691             0.000248 ***
## toefl_score        0.0028072  0.0008676   3.236             0.001295 ** 
## university_rating  0.0064279  0.0035318   1.820             0.069363 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05993 on 493 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8197 
## F-statistic: 379.1 on 6 and 493 DF,  p-value: < 0.00000000000000022

Analisa predict terhadap model forward.

admissionstepwise$predict_forward <- predict(object = forwardmodel, 
                                             data.frame(
                                               cgpa = admissionstepwise$cgpa,
                                               gre_score = admissionstepwise$gre_score,
                                               lor = admissionstepwise$lor,
                                               research = admissionstepwise$research,
                                               toefl_score = admissionstepwise$toefl_score, 
                                               university_rating = admissionstepwise$university_rating))

3.7 Both

Metode both adalah gabungan antara metode regresi forward dan backward. Variabel prediktor yang pertama kali masuk adalah variabel yang korelasinya tertinggi dan significant dengan variabel respon, variabel yang masuk kedua adalah variabel yang korelasi parsialnya tertinggi dan masih significant. Apabila tidak signifikan setelah variabel tertentu masuk ke dalam model maka variabel lain yang ada di dalam model dievaluasi. Apabila ada variabel yang tidak significant maka variabel tersebut dikeluarkan dari model.

step(lm.none, scope = list(lower = lm.none, upper = lm.all),
     direction = "both")
## Start:  AIC=-1957
## chance_of_admit ~ 1
## 
##                     Df Sum of Sq    RSS     AIC
## + pred2              1    7.9482 1.9922 -2758.7
## + cgpa               1    7.7401 2.2003 -2709.0
## + pred1              1    7.7401 2.2003 -2709.0
## + gre_score          1    6.5275 3.4129 -2489.5
## + toefl_score        1    6.2388 3.7016 -2448.9
## + university_rating  1    4.7344 5.2060 -2278.4
## + sop                1    4.6525 5.2879 -2270.6
## + lor                1    4.1401 5.8003 -2224.3
## + research           1    2.9620 6.9784 -2131.9
## <none>                           9.9404 -1957.0
## 
## Step:  AIC=-2758.69
## chance_of_admit ~ pred2
## 
##                     Df Sum of Sq    RSS     AIC
## + lor                1    0.1141 1.8781 -2786.2
## + research           1    0.0594 1.9328 -2771.8
## + university_rating  1    0.0591 1.9330 -2771.8
## + sop                1    0.0486 1.9436 -2769.0
## + toefl_score        1    0.0463 1.9459 -2768.4
## <none>                           1.9922 -2758.7
## + gre_score          1    0.0000 1.9922 -2756.7
## + cgpa               1    0.0000 1.9922 -2756.7
## + pred1              1    0.0000 1.9922 -2756.7
## - pred2              1    7.9482 9.9404 -1957.0
## 
## Step:  AIC=-2786.17
## chance_of_admit ~ pred2 + lor
## 
##                     Df Sum of Sq    RSS     AIC
## + research           1    0.0512 1.8270 -2798.0
## + toefl_score        1    0.0428 1.8353 -2795.7
## + university_rating  1    0.0225 1.8556 -2790.2
## + sop                1    0.0088 1.8693 -2786.5
## <none>                           1.8781 -2786.2
## + gre_score          1    0.0022 1.8759 -2784.8
## + cgpa               1    0.0022 1.8759 -2784.8
## + pred1              1    0.0022 1.8759 -2784.8
## - lor                1    0.1141 1.9922 -2758.7
## - pred2              1    3.9222 5.8003 -2224.3
## 
## Step:  AIC=-2797.98
## chance_of_admit ~ pred2 + lor + research
## 
##                     Df Sum of Sq    RSS     AIC
## + toefl_score        1   0.04035 1.7866 -2807.1
## + university_rating  1   0.01853 1.8084 -2801.1
## + sop                1   0.00779 1.8192 -2798.1
## <none>                           1.8270 -2798.0
## + gre_score          1   0.00002 1.8269 -2796.0
## + cgpa               1   0.00002 1.8269 -2796.0
## + pred1              1   0.00002 1.8269 -2796.0
## - research           1   0.05116 1.8781 -2786.2
## - lor                1   0.10583 1.9328 -2771.8
## - pred2              1   2.89638 4.7233 -2325.1
## 
## Step:  AIC=-2807.14
## chance_of_admit ~ pred2 + lor + research + toefl_score
## 
##                     Df Sum of Sq    RSS     AIC
## + university_rating  1   0.01244 1.7742 -2808.6
## <none>                           1.7866 -2807.1
## + sop                1   0.00425 1.7824 -2806.3
## + gre_score          1   0.00390 1.7827 -2806.2
## + cgpa               1   0.00390 1.7827 -2806.2
## + pred1              1   0.00390 1.7827 -2806.2
## - toefl_score        1   0.04035 1.8270 -2798.0
## - research           1   0.04871 1.8353 -2795.7
## - lor                1   0.10274 1.8893 -2781.2
## - pred2              1   1.00356 2.7902 -2586.2
## 
## Step:  AIC=-2808.64
## chance_of_admit ~ pred2 + lor + research + toefl_score + university_rating
## 
##                     Df Sum of Sq    RSS     AIC
## <none>                           1.7742 -2808.6
## + gre_score          1   0.00335 1.7708 -2807.6
## + cgpa               1   0.00335 1.7708 -2807.6
## + pred1              1   0.00335 1.7708 -2807.6
## - university_rating  1   0.01244 1.7866 -2807.1
## + sop                1   0.00066 1.7735 -2806.8
## - toefl_score        1   0.03426 1.8084 -2801.1
## - research           1   0.04564 1.8198 -2797.9
## - lor                1   0.07502 1.8492 -2789.9
## - pred2              1   0.87525 2.6494 -2610.1
## 
## Call:
## lm(formula = chance_of_admit ~ pred2 + lor + research + toefl_score + 
##     university_rating, data = admissionstepwise)
## 
## Coefficients:
##       (Intercept)              pred2                lor          research1  
##         -0.170607           0.722230           0.017843           0.022906  
##       toefl_score  university_rating  
##          0.002571           0.006568

Dari data analisa diatas AIC terkecil pada metode both didapatkan model baru seperti berikut ini :

bothmodel <- lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + toefl_score + university_rating, data = admissionstepwise)

summary(bothmodel)
## 
## Call:
## lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + 
##     toefl_score + university_rating, data = admissionstepwise)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.26617 -0.02321  0.00946  0.03345  0.15713 
## 
## Coefficients:
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2800138  0.1034717 -12.371 < 0.0000000000000002 ***
## cgpa               0.1189994  0.0095344  12.481 < 0.0000000000000002 ***
## gre_score          0.0018528  0.0005016   3.694             0.000246 ***
## lor                0.0172873  0.0039464   4.380            0.0000145 ***
## research1          0.0243538  0.0065985   3.691             0.000248 ***
## toefl_score        0.0028072  0.0008676   3.236             0.001295 ** 
## university_rating  0.0064279  0.0035318   1.820             0.069363 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05993 on 493 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8197 
## F-statistic: 379.1 on 6 and 493 DF,  p-value: < 0.00000000000000022

Analisa predict terhadap model both.

admissionstepwise$predict_both <- predict(object = bothmodel,
                                          data.frame(
                                            cgpa = admissionstepwise$cgpa,
                                            gre_score = admissionstepwise$gre_score,
                                            lor = admissionstepwise$lor,
                                            research = admissionstepwise$research,
                                            toefl_score = admissionstepwise$toefl_score,
                                            university_rating = admissionstepwise$university_rating))

Dari hasil analisa didapatkan bahwa model dan nilai AIC antara model forward dan both memiliki kesamaan. Sekarang mari kita lakukan perbandingan nilai Adj. R-Squared dan AIC antara ketiganya.

summary(backwardmodel)$adj.r.squared ; 
## [1] 0.8196889
summary(forwardmodel)$adj.r.squared ;
## [1] 0.8196889
summary(bothmodel)$adj.r.squared
## [1] 0.8196889

Terlihat bahwa nilai Adj.R-Squared backward, fordward dan both model memiliki nilai yang sama artinya semuanya bisa kita jadikan suatu model untuk analisa data admission. Bagaimana dengan tingkat error predict nya? Berikut perbandingannya :

RMSE (admissionstepwise$predict_backward, y_true = admissionstepwise$chance_of_admit);
## [1] 0.05951152
RMSE (admissionstepwise$predict_forward, y_true = admissionstepwise$chance_of_admit);
## [1] 0.05951152
RMSE (admissionstepwise$predict_both, y_true = admissionstepwise$chance_of_admit)
## [1] 0.05951152

Dan jika dilihat lagi tingkat error pada analisis RMSE ketiga model diatas dapat disimpulkan model linear ketiganya memiliki tingkat error juga yang sama. Maka model manapun dapat dijadikan model linear fix untuk analisis lanjutan yaitu analisis/tes asumsi.

3.8 Tes Asumsi Linear Model

Dari hasil perbandingan ketiga model dalam analisa stepwise regression memiliki nilai yang sama maka digunakan salah satunya “backward” :

admission.modelfix <- 
  lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + toefl_score + university_rating, data = admissionstepwise)

summary(admission.modelfix)
## 
## Call:
## lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + 
##     toefl_score + university_rating, data = admissionstepwise)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.26617 -0.02321  0.00946  0.03345  0.15713 
## 
## Coefficients:
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2800138  0.1034717 -12.371 < 0.0000000000000002 ***
## cgpa               0.1189994  0.0095344  12.481 < 0.0000000000000002 ***
## gre_score          0.0018528  0.0005016   3.694             0.000246 ***
## lor                0.0172873  0.0039464   4.380            0.0000145 ***
## research1          0.0243538  0.0065985   3.691             0.000248 ***
## toefl_score        0.0028072  0.0008676   3.236             0.001295 ** 
## university_rating  0.0064279  0.0035318   1.820             0.069363 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05993 on 493 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8197 
## F-statistic: 379.1 on 6 and 493 DF,  p-value: < 0.00000000000000022

3.8.1 Test Normality Residual

plot(density(admission.modelfix$residuals))

Pada grafik terlihat distribusi normal namun bila ingin melakukan test lagi bisa dilakukan dengan menggunakan function shapiro.test().

shapiro.test(admission.modelfix$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  admission.modelfix$residuals
## W = 0.92626, p-value = 0.000000000000005868

Ketentuan : - H0 = residual menyebar normal - H1 = residual tidak menyebar normal Untuk mengetahui sebaran normal dari residual maka p-value yg di inginkan atau dihasilkan harus besar (lebih dari 0.05). Terlihat dari hasil uji shapirotest P-value < dari alpha (0.05) yg artinya gagal tolak H1 (Asumsi Tidak Terpenuhi).

3.8.2 Test Homocedascity

Alasan kenapa residual tidak boleh ada pola adalah, karena kita ingin semua pola yang ada sudah berhasil di tangkap oleh model kita. untuk menguji error kita memiliki pola atau tidak bisa menggunakan fungsi bptest dari package lmtest.

Untuk melihat penyebaran, bisa dilakukan dengan visualisasi data terlebih dahulu.

plot(admissionstepwise$chance_of_admit, admission.modelfix$residuals, 
     ylim = c(-1500, 1500))
abline(h = 0, col="red")

library(lmtest)
bptest(admission.modelfix)
## 
##  studentized Breusch-Pagan test
## 
## data:  admission.modelfix
## BP = 27.599, df = 6, p-value = 0.0001118

pvalue < alpha, gagal tolak H1 alpha = 0.05

Kesimpulan : model linear admission.modelfix tidak memenuhi asumsi homocedasticity karena nilai p-value = 0.0001118 yang artinya lebih kecil dari alpha. yang berarti gagal tolak H1 (Asumsi Tidak Terpenuhi).

3.8.3 Test Asumsi Multicollinearity (Variance Inflation Factor)

Pengecekan asumsi ini dilakukan karena kita ingin setiap variabel predictor kita adalah independent/ tidak dipengaruhi oleh variabel lainnya. untuk mengecek nilai ini bisa dilakukan dengan fungsi vif dari package car. nilai vif yg baik adalah dibawah 10

library(car)
vif(admission.modelfix)
##              cgpa         gre_score               lor          research 
##          4.619554          4.459541          1.853078          1.493400 
##       toefl_score university_rating 
##          3.867976          2.265898

Ketika VIF nilainya > 10, maka harus ada variabel yang dieliminasi atau dilakukan feature engineering (membuat variabel baru dari variabel-variabel yang sudah ada).

Kesimpulan : Model linear tidak terjadi multicollinearity/no multicolinearity atau tidak ada korelasi tinggi antar variabel pada model linear (Asumsi Terpenuhi).

Setelah semua asumsi kita dapat melakukan prediksi terhadap model.

3.8.4 Prediksi Model

admission.modelfix$predictfix <- predict(object = backwardmodel, data.frame(
    cgpa = admissionstepwise$cgpa, 
    gre_score = admissionstepwise$gre_score,
    lor = admissionstepwise$lor, 
    research = admissionstepwise$research, 
    toefl_score = admissionstepwise$toefl_score, 
    university_rating = admissionstepwise$university_rating))
summary(admission.modelfix)
## 
## Call:
## lm(formula = chance_of_admit ~ cgpa + gre_score + lor + research + 
##     toefl_score + university_rating, data = admissionstepwise)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.26617 -0.02321  0.00946  0.03345  0.15713 
## 
## Coefficients:
##                     Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)       -1.2800138  0.1034717 -12.371 < 0.0000000000000002 ***
## cgpa               0.1189994  0.0095344  12.481 < 0.0000000000000002 ***
## gre_score          0.0018528  0.0005016   3.694             0.000246 ***
## lor                0.0172873  0.0039464   4.380            0.0000145 ***
## research1          0.0243538  0.0065985   3.691             0.000248 ***
## toefl_score        0.0028072  0.0008676   3.236             0.001295 ** 
## university_rating  0.0064279  0.0035318   1.820             0.069363 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05993 on 493 degrees of freedom
## Multiple R-squared:  0.8219, Adjusted R-squared:  0.8197 
## F-statistic: 379.1 on 6 and 493 DF,  p-value: < 0.00000000000000022
head(admissionstepwise)
##   gre_score toefl_score university_rating sop lor cgpa research chance_of_admit
## 1       337         118                 4 4.5 4.5 9.65        1            0.92
## 2       324         107                 4 4.0 4.5 8.87        1            0.76
## 3       316         104                 3 3.0 3.5 8.00        1            0.72
## 4       322         110                 3 3.5 2.5 8.67        1            0.80
## 5       314         103                 2 2.0 3.0 8.21        0            0.65
## 6       330         115                 5 4.5 3.0 9.34        1            0.90
##       pred1     pred2 predict_backward predict_forward predict_both
## 1 0.9428093 0.9555389        0.9518428       0.9518428    0.9518428
## 2 0.7821904 0.7918110        0.8040573       0.8040573    0.8040573
## 3 0.6030385 0.6300344        0.6535684       0.6535684    0.6535684
## 4 0.7410060 0.7541049        0.7439709       0.7439709    0.7439709
## 5 0.6462821 0.6564786        0.6326201       0.6326201    0.6326201
## 6 0.8789736 0.8845887        0.8740585       0.8740585    0.8740585
admission.modelfix$predictfix
##         1         2         3         4         5         6         7         8 
## 0.9518428 0.8040573 0.6535684 0.7439709 0.6326201 0.8740585 0.7093120 0.5962861 
##         9        10        11        12        13        14        15        16 
## 0.5502302 0.7161692 0.7321017 0.8363145 0.8528744 0.6422852 0.6421732 0.6467286 
##        17        18        19        20        21        22        23        24 
## 0.7141449 0.6560976 0.7363193 0.6503694 0.6167477 0.7020587 0.9267745 0.9614693 
##        25        26        27        28        29        30        31        32 
## 0.9597876 0.9634936 0.7624228 0.5201593 0.4254397 0.4884032 0.6011011 0.7154858 
##        33        34        35        36        37        38        39        40 
## 0.9239458 0.9380068 0.9568040 0.8594088 0.6531463 0.5397899 0.5028577 0.5816401 
##        41        42        43        44        45        46        47        48 
## 0.6469452 0.6564603 0.6835724 0.8413243 0.8854600 0.8339273 0.8992130 0.9377360 
##        49        50        51        52        53        54        55        56 
## 0.8067561 0.7562712 0.6841538 0.6166005 0.7183899 0.6918891 0.6571747 0.5894753 
##        57        58        59        60        61        62        63        64 
## 0.5435569 0.5018690 0.4283011 0.6232914 0.6018444 0.6192737 0.6428699 0.7045653 
##        65        66        67        68        69        70        71        72 
## 0.7488400 0.7842550 0.7904035 0.7317217 0.8251329 0.8597923 0.9564601 0.9613082 
##        73        74        75        76        77        78        79        80 
## 0.8938187 0.7999224 0.7641537 0.7745826 0.7734430 0.5812072 0.5041484 0.4426268 
##        81        82        83        84        85        86        87        88 
## 0.6427006 0.9538094 0.8531452 0.8875467 0.9316077 0.7169334 0.6829559 0.6577373 
##        89        90        91        92        93        94        95        96 
## 0.6533976 0.7644718 0.6555842 0.5376062 0.5675189 0.5767741 0.5333447 0.5658525 
##        97        98        99       100       101       102       103       104 
## 0.5843860 0.8491590 0.8965960 0.8051661 0.7278467 0.6238189 0.6544453 0.6892129 
##       105       106       107       108       109       110       111       112 
## 0.8108600 0.7805183 0.8614400 0.9282785 0.9180530 0.7018324 0.6813940 0.7728596 
##       113       114       115       116       117       118       119       120 
## 0.6746572 0.7136809 0.6920175 0.7955403 0.6658816 0.5059218 0.4860145 0.7867648 
##       121       122       123       124       125       126       127       128 
## 0.9496915 0.9352894 0.6556923 0.6518005 0.6607504 0.6825902 0.8402385 0.7401431 
##       129       130       131       132       133       134       135       136 
## 0.8168100 0.9238031 0.9638375 0.7154275 0.6985473 0.7876045 0.8841499 0.7705997 
##       137       138       139       140       141       142       143       144 
## 0.6811894 0.6463080 0.8192309 0.7673798 0.8162762 0.8779258 0.8964549 0.9865019 
##       145       146       147       148       149       150       151       152 
## 0.8005130 0.7386889 0.6700014 0.8236144 0.9504967 0.6657869 0.9002320 0.9080059 
##       153       154       155       156       157       158       159       160 
## 0.8502161 0.7447377 0.7648812 0.7093052 0.6533415 0.6234694 0.6092454 0.5320954 
##       161       162       163       164       165       166       167       168 
## 0.5691080 0.4960685 0.6978123 0.6918706 0.8325665 0.7941035 0.6628612 0.6415279 
##       169       170       171       172       173       174       175       176 
## 0.5697187 0.5884629 0.6360676 0.8808853 0.8483567 0.8618874 0.8129838 0.7905874 
##       177       178       179       180       181       182       183       184 
## 0.8815176 0.7753756 0.6331098 0.6304109 0.6099655 0.6435196 0.5657798 0.7461952 
##       185       186       187       188       189       190       191       192 
## 0.6751245 0.8550188 0.7361188 0.9122878 0.8869350 0.8581546 0.8475801 0.8387874 
##       193       194       195       196       197       198       199       200 
## 0.8261161 0.9507815 0.7250465 0.7007663 0.6207181 0.6392666 0.6884074 0.7314745 
##       201       202       203       204       205       206       207       208 
## 0.7082301 0.7082269 1.0003834 0.9931500 0.6715741 0.5195478 0.5851643 0.6478606 
##       209       210       211       212       213       214       215       216 
## 0.6184162 0.6486994 0.8226835 0.8433764 0.9691436 0.9691364 0.9191923 0.9051766 
##       217       218       219       220       221       222       223       224 
## 0.8607973 0.8264094 0.8070915 0.6717830 0.7187421 0.7213410 0.7783830 0.6841934 
##       225       226       227       228       229       230       231       232 
## 0.6066517 0.5579768 0.6832949 0.6866446 0.7351074 0.8060150 0.7182930 0.6867238 
##       233       234       235       236       237       238       239       240 
## 0.6559268 0.5976539 0.8821614 0.8596157 0.8556459 0.8861231 0.6621273 0.5346110 
##       241       242       243       244       245       246       247       248 
## 0.5241571 0.6137514 0.7810661 0.8134316 0.7027859 0.8031655 0.7188913 0.6706423 
##       249       250       251       252       253       254       255       256 
## 0.7974073 0.7898960 0.7115221 0.7191065 0.7038771 0.9432855 0.8321888 0.6971271 
##       257       258       259       260       261       262       263       264 
## 0.6774921 0.7592528 0.7892807 0.9066431 0.8325034 0.6411568 0.6809941 0.7474764 
##       265       266       267       268       269       270       271       272 
## 0.7538115 0.6816740 0.6544450 0.6785142 0.8428786 0.6984392 0.6489556 0.5262401 
##       273       274       275       276       277       278       279       280 
## 0.4729174 0.5858808 0.5800400 0.7871243 0.9056121 0.6869125 0.6634666 0.6904515 
##       281       282       283       284       285       286       287       288 
## 0.7234931 0.8216410 0.7457810 0.7809387 0.9417481 0.8864858 0.8930344 0.8551253 
##       289       290       291       292       293       294       295       296 
## 0.7792471 0.7566914 0.5586249 0.5461261 0.5533102 0.6292344 0.6508678 0.6639532 
##       297       298       299       300       301       302       303       304 
## 0.7062487 0.8309176 0.8724265 0.7086405 0.5981440 0.7213699 0.7059708 0.7404095 
##       305       306       307       308       309       310       311       312 
## 0.6480814 0.7720680 0.8142807 0.8267723 0.6874581 0.7004189 0.7490393 0.8425220 
##       313       314       315       316       317       318       319       320 
## 0.7954403 0.5863096 0.6293263 0.6076503 0.5384233 0.5565802 0.7573100 0.7791081 
##       321       322       323       324       325       326       327       328 
## 0.7205353 0.7275416 0.6682761 0.6009238 0.6493443 0.8500860 0.5629367 0.5328648 
##       329       330       331       332       333       334       335       336 
## 0.7889060 0.5174608 0.7691103 0.6290325 0.6520627 0.7346153 0.7469997 0.8456987 
##       337       338       339       340       341       342       343       344 
## 0.7283385 0.9362302 0.7873259 0.7768516 0.7006747 0.7793794 0.6399225 0.6150683 
##       345       346       347       348       349       350       351       352 
## 0.4569491 0.5057551 0.5121316 0.4350309 0.4612027 0.6113508 0.6978255 0.7818882 
##       353       354       355       356       357       358       359       360 
## 0.6189648 0.5968975 0.5228262 0.6445339 0.7882587 0.6062580 0.5531175 0.6582577 
##       361       362       363       364       365       366       367       368 
## 0.7836191 0.9102927 0.9103658 0.6356473 0.7581386 0.8445935 0.7187268 0.5087046 
##       369       370       371       372       373       374       375       376 
## 0.5091107 0.5910033 0.6201351 0.8217699 0.9405835 0.7324846 0.5648040 0.5343840 
##       377       378       379       380       381       382       383       384 
## 0.4713647 0.4786657 0.5164918 0.6599386 0.7732885 0.7416637 0.8371550 0.6192803 
##       385       386       387       388       389       390       391       392 
## 0.9627189 0.9806313 0.5836655 0.6208183 0.5163489 0.7332119 0.6247392 0.7072406 
##       393       394       395       396       397       398       399       400 
## 0.8342615 0.7064355 0.8587464 0.8089936 0.8107548 0.9094587 0.7204592 0.9341706 
##       401       402       403       404       405       406       407       408 
## 0.6068602 0.6555572 0.7856428 0.8659915 0.5757556 0.5151456 0.6533988 0.6116822 
##       409       410       411       412       413       414       415       416 
## 0.5793167 0.5549630 0.5223927 0.5700517 0.6104653 0.6139288 0.7363970 0.7925286 
##       417       418       419       420       421       422       423       424 
## 0.6219744 0.5623967 0.6416808 0.6243234 0.5088243 0.8156268 0.7976629 0.9510730 
##       425       426       427       428       429       430       431       432 
## 0.9108416 0.9463141 0.7211782 0.7373103 0.7253264 0.8851979 0.6597741 0.7698289 
##       433       434       435       436       437       438       439       440 
## 0.8510994 0.7454834 0.6242253 0.5831879 0.5634528 0.6065301 0.7255211 0.6642787 
##       441       442       443       444       445       446       447       448 
## 0.5428411 0.7627115 0.9101215 0.8590868 0.8811917 0.8767947 0.9443381 0.8135688 
##       449       450       451       452       453       454       455       456 
## 0.7594344 0.7706968 0.8094919 0.8661202 0.9063156 0.7554029 0.6156669 0.5366641 
##       457       458       459       460       461       462       463       464 
## 0.5398489 0.4776690 0.6764986 0.8711870 0.7641888 0.6097005 0.6059905 0.5900986 
##       465       466       467       468       469       470       471       472 
## 0.4671321 0.6410308 0.7464115 0.7804587 0.8204596 0.8446358 0.8504515 0.6364968 
##       473       474       475       476       477       478       479       480 
## 0.9074701 0.6350222 0.6247435 0.5595804 0.5953296 0.6209688 0.7300638 0.8163980 
##       481       482       483       484       485       486       487       488 
## 0.7860512 0.7212201 0.7818373 0.5988655 0.6393020 0.6699146 0.6559012 0.8312057 
##       489       490       491       492       493       494       495       496 
## 0.7695662 0.6969050 0.6648394 0.5637927 0.5986211 0.5838357 0.6393587 0.8373213 
##       497       498       499       500 
## 0.9902870 0.9488489 0.7025246 0.8223350

Dari analisa prediksi terhadap data admissionstepwise didapatkan nilai yang tidak terlalu berbeda secara signifikan. Artinya model bekerja cukup baik.

4 Kesimpulan

Kita dapat mengambil kesimpulan, dari keempat model (1 parameter, 2 parameter, 3 parameter, semua parameter dan stepwise backward, forward, both), nilai tertinggi adj.r-squared adalah model dengan menggunakan stepwise (menggunakan stepwise backward, forward dan both dengan hasil yang sama 0.8196889 - parameter yang digunakan adalah cgpa, gre_score, lor, research, toefl_score, university_rating) dengan MSE 0.05951152.

Validasi Model menunjukkan kepada kita kasus spesifik, dimana untuk model ini telah lolos uji linieritas dan uji multikolinieritas yang artinya semua model memiliki hubungan linier antara parameter dan variabel target (peluang untuk mengakui). Selain itu, ketiga model tersebut menunjukkan nilai vif kurang dari 10 yang berarti tidak terdapat korelasi yang tinggi antar parameter yang digunakan.

Namun semua model pada saat bersamaan tidak lolos uji normalitas dan uji homoscedascity. Artinya error berdistribusi normal dan error berpola.