Senin, 25 Februari 2019

Faktor apa saja yang mempengaruhi nilai IPK seseorang?


Faktor apa saja yang mempengaruhi nilai IPK seseorang?Tentu pertanyaan itu tidak mudah dijawab, karena banyak factor yang mempengaruhi. Di sini akan dianalisa variable apa saja yang mempengaruhinya, dan prediksi apa saja yang akan didapatkan.
Data awal diambil dari data mahasiswa  data terdiri dari 129 observasi dan 66 variabel, akan dibatasi untuk  variable (MBTI, INTROVERT.I, SENSING.S, THINKING.T, JUDGING.J, E.EKSTROVERT, N.INTUITION, F.FEELING, dan IPK .

Model yang akan dicoba adalah model random forest(rf), model gradient boosting(gbm) dan model neural network(nn),  selanjutnya akan dipilih mana yang paling baik untuk prediksinya.
File excel

Berikut script R dan penjelasannya:



#---Data preparation
df1 <- read.csv(file excel)
#---Data partitioning
set.seed(1)
# randomly pick 70% of the number of observations (129)
index <- sample(1:nrow(df1),size = 0.7*nrow(df1))
# subset weather to include only the elements in the index
train <- df1[index,]
# subset weather to include all but the elements in the index
test <- df1[-index,]

#---Set the model
set.seed(1)
regr_rf <- train(IPK~, data = train, method="rf", ntree = 100)
regr_gbm <- train(IPK~ , data = train, method="gbm")
regr_nn <- train(IPK~., data = train,
                   method = "nnet",
                   linout = TRUE,
                   preProcess = c('center', 'scale'),
                   maxit = 500,
                   tuneGrid = expand.grid(size = 2, decay = 0),
                   trControl = trainControl(method = "none", seeds = 1))

#---Validation
explainer_regr_rf <- DALEX:explain(regr_rf, label="rf",
                                    data = test, y = test$IPK)

explainer_regr_gbm <- DALEX:explain(regr_gbm, label = "gbm",
                                     data = test, y = test$IPK)

explainer_regr_nn <- DALEX:explain(regr_nn, label = "nn",
                                    data = test, y = test$IPK)
Gb1
Gb2


#---Model performance

Function model_performance() calculates predictions and residuals for validation dataset.
mp_regr_rf <- model_performance(explaner_regr_rf)
mp_regr_gbm <- model_performance(explainer_regr_gbm)
mp_regr_nn <- model_performance(explainer_regr_nn)
#Generic function print() returns quantiles for residuals.
mp_regr_rf
Gb4
 
Gb3
plot(mp_regr_rf,mp_regr_gbm,mp_regr_nn)#ok
plot(mp_regr_rf,mp_regr_gbm,mp_regr_nn,geom = "boxplot")#ok

#---Analysis
1.Dari Gb1, menunjukkan bahwa residual model random forest(rf) dan model gradient boosting(gbm) lebih rendah dari model neural network(nn)
2.Dari Gb2, grafik box-plot, jelas terlihat residual minimal ada pada model random forest(rf)
3.Selanjutnya model yang akan dipakai random forest.

#--- Variable importance
Menggunakan paket DALEX, memudahkan melihat variable penting yang berpengaruh. variable Importan dihitung dengan
perhitungan permutasi rata-rata.
Terlihat di Gb3, variable E.EXTROVERT,INTROVERT.I dan THINKING.T sangat dominan.

vi_regr_rf <- variable_importance(explainer_regr_rf, loss_function = loss_root_mean_square)
#vi_regr_gbm <- variable_importance(explainer_regr_gbm, loss_function = loss_root_mean_square)
#vi_regr_nn <- variable_importance(explainer_regr_nn, loss_function = loss_root_mean_square)
plot(vi_regr_rf, vi_regr_gbm)#OK

#--- Variable response
Partial Dependence Plots (PDP) adalah salah satu model paling populer mengexplorasi hubungan antara variable dengan target.

pdp_regr_rf  <- variable_response(explainer_regr_rf, variable =  "MBTI", type = "factor")
#pdp_regr_gbm  <- variable_response(explainer_regr_gbm, variable =  "MBTI", type = "factor")
plot(pdp_regr_rf,pdp_regr_gbm)#ok

#---Kesimpulan
1. Dapat dengan mudah memprediksi kelompok Nilai IPK, lihat Gb4 kelompok paling atas, IPK 3.245-3,26
2. Dapat menentukan dengan detail variable apa saja yang mempengaruhi besarnya IPK.Lihat Gb4. variable yang berpengaruh adalah kelompok variable, ENFP,ESTP dan INTP.
3. Model ini bisa dikembangkan untuk menguji varible yang lain apakah berpengaruh terhadap IPK mahasiswa, misal mahasiswa yang kuliah sambil bekerja, mahasiswa yang ikut banyak kegiatan extra, mahasiswa yang jalan kaki ke kampus dsb.

Referensi:
Jurusanku
Rstudio
Towardsdatascience
NCBI Recources


Tidak ada komentar:

Posting Komentar

Kapan Puncak Covid19 di Indonesia ?

Prediksi Covid19, kapan mencapai puncaknya? Selamat Idhul Fitri from Home, menjawab pertanyaan kapan covid19 mencapai puncaknya? ...