Berikut adalah analisis mengenai data Admission untuk program Master di UCLA Graduate yang disediakan oleh Mohan S Acharya, Asfia Armaan, Aneeta S Antony : A Comparison of Regression Models for Prediction of Graduate Admissions, IEEE International Conference on Computational Intelligence in Data Science 2019. Data admission tersebut menunujukkan pengaruh dari parameter terhadap pengajuan program master.

Data tersebut akan diolah dengan linear regression analysis dan dibuat suatu model untuk memprediksi faktor-faktor yang menjadikan nilai GPA menjadi salah satu aspek yang penting dalam mengajukan program Master.

1. Load the library

library(readr)
library(dplyr)
## 
## 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(ggplot2)
library(tidyverse)
## -- Attaching packages --------------------------- tidyverse 1.3.0 --
## v tibble  2.1.3     v stringr 1.4.0
## v tidyr   1.0.0     v forcats 0.4.0
## v purrr   0.3.3
## -- Conflicts ------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## 
## Attaching package: 'GGally'
## The following object is masked from 'package:dplyr':
## 
##     nasa
library(funModeling)
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
## 
##     src, summarize
## The following objects are masked from 'package:base':
## 
##     format.pval, units
## funModeling v.1.9.3 :)
## Examples and tutorials at livebook.datascienceheroes.com
##  / Now in Spanish: librovivodecienciadedatos.ai
## 
## Attaching package: 'funModeling'
## The following object is masked from 'package:GGally':
## 
##     range01
library(lme4)
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack

2. Load Dataset dan Explanatory Data Analysis

graduate <- read.csv("Admission_Predict.csv")
str(graduate)
## 'data.frame':    400 obs. of  9 variables:
##  $ Serial.No.       : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ 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 ...

jika dilihat dataset tersebut mengandung beberapa parameter yang dianggap penting selama mengajukan aplikasi untuk program Master di UCLA Graduate , berikut ini penjelasan setiap parameter:

  1. Serial. No.: Nomor Serial ( out of 400 )
  2. GRE Scores: Nilai GRE ( out of 340 )
  3. TOEFL Scores: Nilai TOEFL ( out of 120 )
  4. University Rating: Rating dari Universitas ( out of 5 )
  5. Statement of Purpose and Letter of Recommendation Strength: Lembar pernyataan tujuan dan lembar rekomendasi dari universitas ( out of 5 )
  6. Undergraduate GPA: Nilai dari GPA ( out of 10 )
  7. Research Experience: Pengalaman dalam penelitian ( either 0 or 1 )
  8. Chance of Admit: Peluang untuk diterima ( ranging from 0 to 1 )

pada kasus bisnis ini saya ingin melihat, dengan asumsi bahwa nilai CGPA sangat berpengaruh dengan Chance of admit, TOEFL Score dan GRE Score atau pada setiap parameter yang ada untuk aplikasi program Master

sebelum memulai pembuatan model hal pertama yang perlu dilakukan adalah mengecek keberadaan missing value pada dataset

table(anyNA(graduate))
## 
## FALSE 
##     1

kesimpulan tidak terdapat nilai missing apda semua data

Melakukan eksplorasi data analisis

ggcorr(graduate, label = TRUE, hjust=1)

Pada grafik korelasi, terlihat bahwa hampir semua variabel kecuali Serial No. memiliki pengaruh positif terhadap Chance Of Admit dimana faktor CGPA memiliki korelasi positif yang paling tinggi dibandingkan faktor-faktor lain.

Cek outlier mengunakan plot_num atau boxplot

plot_num(graduate)

kolom research dan Serial No. akan dihapus karena tidak menghasilkan informasi yg diperlukan

graduate <- graduate %>% 
  select(GRE.Score, TOEFL.Score, University.Rating, SOP, LOR, CGPA, Chance.of.Admit)
head(graduate,1)
##   GRE.Score TOEFL.Score University.Rating SOP LOR CGPA Chance.of.Admit
## 1       337         118                 4 4.5 4.5 9.65            0.92
boxplot(graduate)

bila dillihat terdapat data outlier di variabel LOR, CGPA, dan Chance.of.Admit

Menghapus data outlier untuk variabel LOR, CGPA, dan Chance of Admit

graduate <- graduate %>% 
  select(TOEFL.Score, GRE.Score, SOP, LOR, CGPA, Chance.of.Admit, University.Rating) %>% 
  filter(graduate$CGPA > 8 & graduate$Chance.of.Admit > 0.5 & graduate$University.Rating > 1)

boxplot(graduate)

plot_num(graduate)

setelah dilakukan Data Wrangling tidak terdapat outlier dan secara umum data berbentuk distribusi normal.

3. Pembuatan Model Regresi Linear

feature selection yg ingin dilakukan adalah melihat hubungan antara CGPA (variabel target) dengan nilai TOEFL, GRE dan chance of Admit (variabel prediktor) karena nilai tersebut memiliki korelasi positif yang tinggi terhadap variabel target. maka dari itu kita perlu membuat modelnya terlebih dahulu

model_gr <- lm(formula = CGPA ~ TOEFL.Score + GRE.Score + Chance.of.Admit, graduate)
model_gr
## 
## Call:
## lm(formula = CGPA ~ TOEFL.Score + GRE.Score + Chance.of.Admit, 
##     data = graduate)
## 
## Coefficients:
##     (Intercept)      TOEFL.Score        GRE.Score  Chance.of.Admit  
##         0.90456          0.02041          0.01310          1.92154

melakukan interpertasi pada adj R-Squared dan signifikansi prediktor dengan menggunakan summary

summary(model_gr)
## 
## Call:
## lm(formula = CGPA ~ TOEFL.Score + GRE.Score + Chance.of.Admit, 
##     data = graduate)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7177 -0.1346  0.0127  0.1226  0.6434 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.904563   0.496296   1.823   0.0693 .  
## TOEFL.Score     0.020411   0.003889   5.249 2.81e-07 ***
## GRE.Score       0.013098   0.002161   6.060 3.87e-09 ***
## Chance.of.Admit 1.921541   0.179680  10.694  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2096 on 316 degrees of freedom
## Multiple R-squared:  0.799,  Adjusted R-squared:  0.7971 
## F-statistic: 418.7 on 3 and 316 DF,  p-value: < 2.2e-16

dapat dilihat bahwa nilai Adjusted R-squared dari model_gr bernilai 0.7971

selanjutnya akan dicoba menggunakan pemilihan variabel prediktor secara otomatis menggunakan step wise regression dengan metode backward elimination

model_gr1 <- lm(CGPA~., graduate)
step(model_gr1, direction =  "backward")
## Start:  AIC=-1028.96
## CGPA ~ TOEFL.Score + GRE.Score + SOP + LOR + Chance.of.Admit + 
##     University.Rating
## 
##                     Df Sum of Sq    RSS      AIC
## <none>                           12.293 -1028.96
## - LOR                1   0.08216 12.376 -1028.83
## - University.Rating  1   0.23217 12.526 -1024.98
## - SOP                1   0.33216 12.626 -1022.43
## - TOEFL.Score        1   0.77663 13.070 -1011.36
## - GRE.Score          1   1.64089 13.934  -990.87
## - Chance.of.Admit    1   1.96337 14.257  -983.55
## 
## Call:
## lm(formula = CGPA ~ TOEFL.Score + GRE.Score + SOP + LOR + Chance.of.Admit + 
##     University.Rating, data = graduate)
## 
## Coefficients:
##       (Intercept)        TOEFL.Score          GRE.Score                SOP  
##           1.23399            0.01666            0.01325            0.06028  
##               LOR    Chance.of.Admit  University.Rating  
##           0.02767            1.36140            0.04155

cek menggunakan function summary untuk mendapatkan nilai Adj. R-Squared dari model yang dihasilkan oleh step wise

summary(lm(formula = CGPA ~ TOEFL.Score + GRE.Score + SOP + LOR + Chance.of.Admit + 
    University.Rating, data = graduate))
## 
## Call:
## lm(formula = CGPA ~ TOEFL.Score + GRE.Score + SOP + LOR + Chance.of.Admit + 
##     University.Rating, data = graduate)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.75023 -0.12272  0.00726  0.12396  0.65932 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.233987   0.479457   2.574   0.0105 *  
## TOEFL.Score       0.016665   0.003748   4.447 1.21e-05 ***
## GRE.Score         0.013250   0.002050   6.464 3.92e-10 ***
## SOP               0.060276   0.020727   2.908   0.0039 ** 
## LOR               0.027668   0.019130   1.446   0.1491    
## Chance.of.Admit   1.361403   0.192553   7.070 1.01e-11 ***
## University.Rating 0.041548   0.017089   2.431   0.0156 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1982 on 313 degrees of freedom
## Multiple R-squared:  0.822,  Adjusted R-squared:  0.8186 
## F-statistic: 240.9 on 6 and 313 DF,  p-value: < 2.2e-16

Menyimpan model step-wise regression ke dalam object

model_gr1 <- lm(formula = CGPA ~ TOEFL.Score + GRE.Score + SOP + LOR + Chance.of.Admit + University.Rating, data = graduate)

Metode step-wise regression akan menghasilkan formula optimum berdasarkan nilai Akaike Information Criterion (AIC) terendah, semakin rendah nilai AIC, maka nilai observasi yang tidak tertangkap semakin kecil.

bila dibandingkan dengan model_gr yang menggunakan variabel TOEFL.Score, GRE.Score, dan Chance.of.Admit didapatkan nilai R-Squared sebesar 0.7971, nilai tersebut lebih rendah dibandingkan dengan hasil Adj. R-squared yang didapatkan dengan metode step-wise regression yaitu 0.8186.

\(CGPA = 0.01325(GRE.Score) + 0.01666(TOEFL.Score) + 0.04155(University.Rating) + 0.06028(SOP) + 0.02767(LOR) + 1.36140(Chance.of.Admit)\)

\(CGPA = 0.01310(GRE.Score) + 0.02041(TOEFL.Score) + 1.92154(Chance.of.Admit)\)

4. Prediksi model dan Error

Akan dicoba prediksi nilai CGPA berdasarkan nlai prediktor dan hasilnya akan dibandingkan dengan data actual yg dimiliki

predict(model_gr, data.frame(GRE.Score = 337, TOEFL.Score = 118, Chance.of.Admit = 0.92), interval = "confidence", level = 0.95)
##        fit      lwr      upr
## 1 9.494795 9.447199 9.542391
predict(model_gr1, data.frame(GRE.Score = 337, TOEFL.Score = 118, University.Rating = 4, SOP = 4.5, LOR = 4.5, Chance.of.Admit = 0.92), interval = "confidence", level = 0.95)
##        fit      lwr      upr
## 1 9.480227 9.431318 9.529136

menghitung error pada model_gr

sqrt((9.920-9.4947)^2)
## [1] 0.4253

menghitung error pada model_gr1

sqrt((9.920-9.4802)^2)
## [1] 0.4398

Analisis dari perhitungan Root Square Error (RSE) menghasilkan model_gr memiliki nilai RSE yang lebih kecil sehingga lebih baik dibandingkan dari model_gr1

5. Model Evaluation

Normalitas

cek normalitas pada model_gr

hist(model_gr$residuals, breaks=20)

shapiro.test(model_gr$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  model_gr$residuals
## W = 0.99146, p-value = 0.06127

cek normalitas pada model_gr1

hist(model_gr1$residuals, breaks=20)

shapiro.test(model_gr1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  model_gr1$residuals
## W = 0.99061, p-value = 0.03864

pada model_gr mendapatkan P-value > 0.05 sehingga H0 ditolak. akan tetapi pada model_gr1 nilai P-value < 0.05 sehingga error tidak berdistribusi normal pada mean.

Heteroscedasticity

Melakukan uji Heterscedasticity pada model model_gr

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
plot(graduate$CGPA, model_gr$residuals)
abline(h = 0, col = "red")

menggunakan fungsi bptest untuk mendapatkan nilai p-value

bptest(model_gr)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_gr
## BP = 8.6939, df = 3, p-value = 0.03365

selanjutnya melakukan uji Heterscedasticity pada model model_gr1

plot(graduate$CGPA, model_gr1$residuals)
abline(h = 0, col = "red")

bptest(model_gr1)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_gr1
## BP = 7.0153, df = 6, p-value = 0.3194

Untuk kedua model, P-value < 0.05 sehingga H0 ditolak. Hal ini juga berarti residual memiliki pola (Homoscedasticity) dimana semua pola yang ada tidak berhasil ditangkap oleh model yang dibuat.

Varian Inflation Factor (Multicololinearity)

library(car)
## Loading required package: carData
## Registered S3 methods overwritten by 'car':
##   method                          from
##   influence.merMod                lme4
##   cooks.distance.influence.merMod lme4
##   dfbeta.influence.merMod         lme4
##   dfbetas.influence.merMod        lme4
## 
## Attaching package: 'car'
## The following object is masked from 'package:purrr':
## 
##     some
## The following object is masked from 'package:dplyr':
## 
##     recode

melakukan uji Varian Inflation Factor (Multicololinearity) pada model_gr

vif(model_gr)
##     TOEFL.Score       GRE.Score Chance.of.Admit 
##        3.040914        3.458325        2.821137

selanjutnya melakukan uji Varian Inflation Factor (Multicololinearity) pada model_gr1

vif(model_gr1)
##       TOEFL.Score         GRE.Score               SOP               LOR 
##          3.159310          3.480423          2.599956          1.961072 
##   Chance.of.Admit University.Rating 
##          3.624185          2.479542

berdasarkan pada 2 model tidak ada nilai sama dengan atau lebih dari 10 sehingga tidak ditemukan Multicololinearity antar variabel (antar variabel prediktor saling independen).

Berdasarkan hasil analisis, kedua model memiliki kriteria yang cukup baik sebagai model linear regression. Kemudian, bila dibandingkan RSE antara kedua model, model_gr memberikan nilai RSE yang lebih rendah. Oleh karena itu model_gr dipilih sebagai model yang lebih baik.

6. Simpulan dan Saran

model_gr yang didapatkan memiliki R-square 0.7971 dan memiliki RSE sebesar 0.4253. Selain itu setelah dilakukan uji analisis, model memiliki kriteria yang hampir baik, meskipun hasil dari uji homoscedasticity tidak memenuhi.

Berdasarkan model ini, nilai GPA berkorelasi positif dengan nilai-nlai TOEFL.Score, GRE.Score, dan Chance.of.Admit. Sehingga dapat diartikan bahwa mahasiswa yang memiliki nilai GPA yang tinggi cenderung pula untuk memiliki nilai TOEFL, GRE dan Peluang untuk diterima pada program Master lebih besar.