Goals:
- Mengurangi tingkat employee attrition (resign) hingga di bawah 10%.
- Mengetahui faktor-faktor yang dapat menyebabkan seorang karyawan resign.
Objectives:
- Menganalisa faktor-faktor dari data yang dimiliki terhadap potensi employee attrition (resign).
- Membuat model yang dapat digunakan untuk memprediksi karyawan-karyawan yang berpotensi untuk meninggalkan perusahaan.
Berdasarkan ilustrasi di atas, dapat disimpulkan bahwa 16.1% dari total karyawan memilih untuk keluar dari perusahaan sedangkan 83.9% dari total karyawan memilih untuk bertahan.
- Karyawan dengan
Monthly Income
sekitar 1800 - 3200 merupakan tipe karyawan yang memiliki Attrition Rate yang paling tinggi. Kemudian karyawan denganMonthly Income
sekitar 13000 - 19000 merupakan tipe karyawan yang memiliki Attrition Rate yang paling rendah. - Karyawan dengan rentang umur di bawah 40 tahun cenderung memiliki Attrition Rate yang lebih tinggi. Kemudian, karyawan dengan rentang umur sekitar 25 - 35 tahun memiliki Attrition rate yang paling tinggi.
- Karyawan dengan nilai
Distance From Home
lebih dari 10 km cenderung memiliki Attrition Rate yang lebih tinggi. - Karyawan dengan nilai
Daily Rate
kurang dari 800 cenderung memiliki Attrition Rate yang lebih tinggi. - Karyawan dengan nilai
Total Working Years
sekitar 0 - 2 tahun serta 4,5 - 6 tahun merupakan dua tipe karyawan yang memiliki Attrition Rate yang paling tinggi. - Karyawan dengan nilai
Years at Company
,Years in Current
, andYears with Current Manager
sekitar 0 - 1 tahun tipe karyawan yang memiliki Attrition Rate yang paling tinggi.
- Karyawan yang bekerja melebihi jam kerja reguler (
over time
) memiliki Attrition Rate yang lebih tinggi dibandingkan dengan karyawan yang tidak bekerja lembur. - Karyawan yang memiliki tingkat
Job Satisfaction
,Environment Satisfaction
,Relationship Satisfaction
,JobLevel
,Work Life Balance
, danJobInvolvement
yang lebih rendah cenderung memiliki Attrition Rate yang lebih tinggi dan yang bernilai 1 merupakan tipe karyawan yang memiliki Attrition Rate yang paling tinggi. - Karyawan yang bekerja pada Departemen
Sales
memiliki Attrition Rate yang paling tinggi dibandingkan dengan departemen lainnya. - Karyawan yang menjabat sebagai
Sales Representative
,Laboratory Technician
, danHuman Resources
merupakan 3 tipe karyawan yang memiliki Attrition rate paling tinggi.
Dari grafik di atas yang menunjukkan hubungan MonthlyIncome
dengan fitur lain (OverTime
, JobSatisfaction
,EnvironmentSatisfaction
, RelationshipSatisfaction
, JobLevel
, WorkLifeBalance
, JobInvolvement
, Department
, JobRole
) dapat disimpulkan bahwa karyawan dengan pendapatan bulanan (Monthly Income
) yang lebih rendah cenderung memiliki Attrition Rate yang lebih tinggi atau kecenderungan untuk meninggalkan perusahaan lebih besar.
- Tidak terdapat missing values atau data duplikat pada dataset.
- Dilakukan penghapusan outliers sehingga hanya tersisa 1387 baris data.
- Merubah fitur kategorik dengan Label Encoding jika memiliki 2 unique values atau data ordinal dan menggunakan OHE jika data nominal.
- Melakukan feature engineering untuk membuat 2 fitur baru, yaitu EmployeeSatisfaction dan JobLevelSatisfaction.
- Melakukan feature selection menggunakan Pearson Correlation.
- Standarisasi untuk data training dan test.
- Menangani class imbalance dengan menggunakan teknik SMOTE.
- Membagi data dengan proporsi 70:30, 70% untuk training dan 30% untuk testing.
Metrics yang akan digunakan untuk mengukur tingkat keberhasilan model machine learning adalah metric recall. Hal ini karena false negative memiliki dampak negatif yang lebih besar kepada perusahaan seperti terjadinya kekosongan jabatan sehingga dapat berpotensi menurunkan performa perusahaan ketimbang false positive.
No | Model | Recall (Train) | Recall (Test) | Cross Validation (Train) | Cross Validation (Test) | Time Elapsed |
---|---|---|---|---|---|---|
1 | KNNeighbors | 0.992565 | 0.971510 | 0.997217 | 0.989633 | 1.431684 |
2 | Extra Trees | 1.000000 | 0.914530 | 1.000000 | 0.922391 | 2.786827 |
3 | Random Forest | 1.000000 | 0.871795 | 1.000000 | 0.908598 | 4.175266 |
4 | Ada Boost | 0.912020 | 0.874644 | 0.902707 | 0.868028 | 2.066318 |
5 | Gradient Boosting | 0.950434 | 0.871795 | 0.931108 | 0.867226 | 6.598724 |
6 | Decision Tree | 1.000000 | 0.840456 | 1.000000 | 0.835210 | 0.293376 |
7 | Logistic Regression | 0.843866 | 0.846154 | 0.848014 | 0.832534 | 0.216894 |
Berdasarkan hasil Cross Validation (Test) di atas, maka tiga model terbaik yang dipilih untuk hyperparameter tuning adalah model KNNeigbors, Extra Trees dan Random Forest.
No | Model | Recall (Train) | Recall (Test) |
---|---|---|---|
0 | Random Forest | 0.997522 | 0.840456 |
1 | KNNeighbors | 0.975217 | 0.937322 |
2 | Extra Trees | 0.996283 | 0.883191 |
Berdasarkan hasil hyperparameter tuning di atas, didapatkan bahwa model KNNeighbors adalah model terbaik karena memiliki skor recall paling tinggi serta perbedaan skor recall pada data train dan data test yang tidak terlalu jauh, sehingga sudah dapat dikatakan best-fit atau tidak terjadi overfitting.
Dengan menggunakan hasil hyperparameter tuning untuk model KNN, kita melatih lagi model tersebut untuk mendapatkan confusion matrix seperti gambar di atas, dengan hasil yaitu:
- True Positive: Diprediksi keluar dan ternyata benar sebanyak 329
- True Negative: Diprediksi bertahan dan ternyata benar sebanyak 240
- False Positive: Diprediksi keluar dan ternyata salah sebanyak 104
- False Negative: Diprediksi bertahan dan ternyata salah sebanyak 22
Employee attrition rate setelah menggunakan machine learning: (22/695) * 100% = 3.2%
Beberapa insight yang bisa didapatkan berdasarkan grafik Shap Values pada slide sebelumnya adalah :
- Sepuluh fitur yang paling mempengaruhi tingkat attrition karyawan adalah
EmployeeSatisfaction
,StockOptionLevel
,DistanceFromHome
,YearsInCurrentRole
,WorkLifeBalance
,JobLevelSatisfaction
,TotalWorkingYears
,Age
,MaritaslStatus_Married
, andDailyRate
. - Semakin rendah tingkat kepuasan seorang karyawan terhadap perusahaan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah kompensasi seorang karyawan dalam bentuk ekuitas semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin jauh jarak seorang karyawan dengan perusahaan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah jumlah tahun seorang karyawan bekerja pada posisi yang sedang dikerjakan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah tingkat work life balance dari seorang karyawan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah tingkat kepuasan dari seorang karyawan terhadap level posisi pekerjaannya semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah pengalaman kerja dari seorang karyawan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Semakin rendah muda umur seorang karyawan semakin tinggi kemungkinan karyawan tersebut untuk keluar dari perusahaan.
- Karyawan dengan marital status menikah memiliki attrition rate yang lebih rendah jika dibandingkan dengan karyawan dengan marital status selain menikah.
- Semakin tinggi Daily Rate maka semakin tinggi juga kemungkinan karyawan untuk keluar dari perusahaan.
- Melakukan peninjauan kembali terhadap fasilitas yang sudah ada atau yang akan diberikan kepada masing-masing karyawan seperti gaji dan insentif untuk meningkatkan job satisfaction.
- Menerapkan positive culture sebagai budaya perusahaan serta membuat sebuah kegiatan untuk meningkatkan engagement antar karyawan untuk meningkatkan environment satisfaction para karyawan.
- Kami merekomendasikan karyawan diberikan prioritas dan kesempatan untuk terlibat dalam pembelian saham perusahaan.
- Menerapkan hybrid working bagi karyawan yang memiliki rumah jauh dari kantor.
- Kami merekomendasikan untuk memberikan fasilitas bagi karyawan untuk melakukan self-development atau training, serta pemberian jenjang karir yang jelas kepada karyawan muda atau yang baru masuk sehingga bisa meningkatkan job level dan lama seorang karyawan bekerja di suatu jabatan tertentu.
- Melakukan analisa beban kerja masing-masing karyawan untuk meminimalisir jumlah karyawan yang bekerja diluar jam kerja reguler (over time) dengan memperhitungkan jumlah karyawan yang berada pada masing-masing departemen untuk meningkatkan work-life balance karyawan.