1. Intro

Berikut adalah analisis data “Graduate Admisssion 2” yang disediakan oleh kaggle.com. Data yang digunakan adalah data yang dianggap penting untuk penentuan penerimaan mahasiswa baru pada sebuah universitas. Analisis akan menggunakan linear regression yang akan membuat sebuah model untuk memprediksi faktor yang berpengaruh terhadap penerimaan mahasiswa baru.

1.1 Library

library(tidyverse)
library(GGally)
library(ggplot2)
library(car)
library(lmtest)
library(MLmetrics)

1.2 Load Data Test

adm <- read.csv("data/Admission_Predict_Ver1.1.csv")
adm <- adm %>% 
  select(-Serial.No.)
glimpse(adm)
## Rows: 500
## Columns: 8
## $ GRE.Score         <int> 337, 324, 316, 322, 314, 330, 321, 308, 302, 323, 32~
## $ TOEFL.Score       <int> 118, 107, 104, 110, 103, 115, 109, 101, 102, 108, 10~
## $ University.Rating <int> 4, 4, 3, 3, 2, 5, 3, 2, 1, 3, 3, 4, 4, 3, 3, 3, 3, 3~
## $ SOP               <dbl> 4.5, 4.0, 3.0, 3.5, 2.0, 4.5, 3.0, 3.0, 2.0, 3.5, 3.~
## $ LOR               <dbl> 4.5, 4.5, 3.5, 2.5, 3.0, 3.0, 4.0, 4.0, 1.5, 3.0, 4.~
## $ CGPA              <dbl> 9.65, 8.87, 8.00, 8.67, 8.21, 9.34, 8.20, 7.90, 8.00~
## $ Research          <int> 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1~
## $ Chance.of.Admit   <dbl> 0.92, 0.76, 0.72, 0.80, 0.65, 0.90, 0.75, 0.68, 0.50~

Keterangan: -GRE.Score : Nilai tes ujian penilaian -TOEFL.Score : Nilai ujian kemampuan bahasa inggris -University.Rating : Rating universitas -SOP : (Statement of Purpose) Essay yang singkat yang menjelaskan latar belakang calon mahasiswa -LOR : (Letter of Recomendation) Surat rekomendasi -CGPA : GPA saat undergraduate -Research : Pengalaman penelitian -Chance.of.Admit : Kesempatan diterima

1.3 Cek nilai NA

colSums(is.na(adm))
##         GRE.Score       TOEFL.Score University.Rating               SOP 
##                 0                 0                 0                 0 
##               LOR              CGPA          Research   Chance.of.Admit 
##                 0                 0                 0                 0

2. Exploratory Data Analysis

ggcorr(data = adm, label = T, hjust = 1,layout.exp = 2)

Dapat dilihat dari grafik korelasi semua kolom berkorelasi Positif terhadap Chance.of.Admit. Dari semua kolom yang ada pada tabel, kolom CGPA adalah sebuah faktor yang paling tinggi dibandingkan dengan faktor yang lain dan kolom Research adalah faktor yang paling rendah dibandingkan kolom lainnya.

3. Membuat Model Regresi Linear

Membuat model regresi dengan mengambil seluruh variabel prediktor

model_rm <- lm(CGPA ~ ., adm)
model_rm_step <- step(model_rm, direction = "backward")
## Start:  AIC=-1401.96
## CGPA ~ GRE.Score + TOEFL.Score + University.Rating + SOP + LOR + 
##     Research + Chance.of.Admit
## 
##                     Df Sum of Sq    RSS     AIC
## - Research           1    0.0989 29.431 -1402.3
## <none>                           29.332 -1402.0
## - University.Rating  1    0.2441 29.576 -1399.8
## - LOR                1    0.2549 29.587 -1399.6
## - SOP                1    0.6936 30.026 -1392.3
## - TOEFL.Score        1    0.9366 30.269 -1388.2
## - GRE.Score          1    2.1818 31.514 -1368.1
## - Chance.of.Admit    1    8.8709 38.203 -1271.8
## 
## Step:  AIC=-1402.28
## CGPA ~ GRE.Score + TOEFL.Score + University.Rating + SOP + LOR + 
##     Chance.of.Admit
## 
##                     Df Sum of Sq    RSS     AIC
## <none>                           29.431 -1402.3
## - University.Rating  1    0.2328 29.664 -1400.3
## - LOR                1    0.2491 29.680 -1400.1
## - SOP                1    0.6892 30.120 -1392.7
## - TOEFL.Score        1    0.9935 30.424 -1387.7
## - GRE.Score          1    2.0853 31.516 -1370.0
## - Chance.of.Admit    1    8.7944 38.225 -1273.6
summary(model_rm_step)
## 
## Call:
## lm(formula = CGPA ~ GRE.Score + TOEFL.Score + University.Rating + 
##     SOP + LOR + Chance.of.Admit, data = adm)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.06563 -0.14162  0.02516  0.16035  0.69402 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.587773   0.462820   3.431 0.000653 ***
## GRE.Score         0.011467   0.001940   5.910 6.38e-09 ***
## TOEFL.Score       0.014369   0.003522   4.079 5.26e-05 ***
## University.Rating 0.030506   0.015449   1.975 0.048863 *  
## SOP               0.062415   0.018370   3.398 0.000735 ***
## LOR               0.034843   0.017059   2.043 0.041631 *  
## Chance.of.Admit   1.929305   0.158956  12.137  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2443 on 493 degrees of freedom
## Multiple R-squared:  0.8388, Adjusted R-squared:  0.8368 
## F-statistic: 427.4 on 6 and 493 DF,  p-value: < 2.2e-16

4 Evaluasi

4.1 Performa Model

Cek performa model dengan menggunakan RMSE. Sebelum itu, dilakukan prediksi model_rm_step menggunakan fungsi predict()

pred <- predict(model_rm_step, newdata = adm)
newmodel <- adm %>% 
  mutate(prediksi = pred,
         prediksi = as.integer(prediksi))

Setelah itu prediksi menggunakan fungsi RMSE()

RMSE(y_pred = newmodel$prediksi, newmodel$CGPA)
## [1] 0.6065559

Hasil prediksi menyimpang sebanyak 0.6065

Lalu gunakan MAPE untuk melihat berapa persen penyimpangan dari hasil prediksi

MAPE(y_pred = newmodel$prediksi, newmodel$CGPA)
## [1] 0.06012216

Dari hasil MAPE, model memprediksi kemungkinan untuk melenceng sebesar 6% dari nilai asli/aktual

4.2 Uji Asumsi

4.2.1 Linearity

data.frame(prediksi = model_rm_step$fitted.values,
           error = model_rm_step$residuals) %>% 
  ggplot(aes(x = prediksi, y = error)) +
  geom_hline(yintercept = 0, lty = "dashed") +
  geom_point() +
  geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Uji linearity mayoritas sudah mendekati garis 0 yang berarti prediktor sudah linear dengan target variable

4.2.2 Normality

plot(density(model_rm_step$residuals))

Plot diatas menunjukkan bahwa data sudah terdistribusi secara normal

5 Kesimpulan

Dari hasil pengerjaan ini dapat disimpulkan bahwa regresi model model_rm_step mendapatkan R-squared 0.8368 atau 83.6% untuk menjelaskan variance di target variable (CGPA) dan hasil RMSE dan MAPE melenceng sebesar 0.6065 dan sebanyak 6%. Dan hasil uji normality memperlihatkan bahwa data terdistribusi secara normal