Oleh:
Shergio Rizkyputra (13419061)
Dosen Pengampu:
Rully Tri Cahyono, S.T., M.T.,
Titah Yudhistira, S.T., M.T., Ph. D.
PERNYATAAN UJIAN
“Saya mengerjakan UAS ini secara individu, tanpa menerima bantuan dari mahasiswa TI4141 ataupun individu
lainnya. Saya memahami bahwa melakukan tindak plagiarisme dan kerja sama dalam pengerjaan UAS ini adalah
terlarang, dan jika saya terbukti melakukan upaya plagiarisme dan kerja sama, saya bersedia menerima sanksi
sesuai dengan kebijakan ITB.”
Shergio Rizkyputra
(13419061)
DAFTAR ISI
PERNYATAAN UJIAN ................................................................................................................................................. i
DAFTAR ISI ............................................................................................................................................................... ii
DAFTAR TABEL ........................................................................................................................................................ iv
DAFTAR GAMBAR .................................................................................................................................................... v
DAFTAR LAMPIRAN ...................................................................................................Error! Bookmark not defined.
BAB I PENDAHULUAN .............................................................................................................................................. 1
1.1. Latar Belakang ........................................................................................................................................ 1
1.2. Stakeholder Sistem ................................................................................................................................. 3
1.3. Identifikasi Masalah ................................................................................................................................ 3
1.4. Rumusan Masalah .................................................................................................................................. 5
1.5. Tujuan Penelitian .................................................................................................................................... 6
1.6. Asumsi dan Batasan Penelitian............................................................................................................... 6
BAB II LANDASAN TEORI .......................................................................................................................................... 1
2.1. Flowchart Penelitian ............................................................................................................................... 1
2.2. Data Cleaning ......................................................................................................................................... 2
2.3. Decision tree .............................................................................................Error! Bookmark not defined.
2.4. Random forest ..........................................................................................Error! Bookmark not defined.
2.5. Binary Logistic Regression ...................................................................................................................... 4
2.6. Naive-Bayes ............................................................................................................................................ 5
2.7. Validation ............................................................................................................................................... 5
BAB III PENGOLAHAN DATA..................................................................................................................................... 7
3.1. Penjelasan Dataset ................................................................................................................................. 7
3.2. Pre-processing Data................................................................................................................................ 8
BAB IV EKSPLORASI DATA ...................................................................................................................................... 12
4.1 Data Exploration ................................................................................................................................... 12
4.2 Analisis Data ......................................................................................................................................... 13
4.2.1 Decision tree .....................................................................................Error! Bookmark not defined.
4.2.2 Binary Logistic Regression ............................................................................................................ 16
4.2.3 Random forest ..................................................................................Error! Bookmark not defined.
4.2.4 Naive–Bayes ................................................................................................................................. 23
BAB V EVALUASI MODEL ....................................................................................................................................... 24
5.1 Evaluasi Model Decision tree ................................................................................................................ 24
5.2 Evaluasi Model Binary Logistic Regression ........................................................................................... 24
5.3 Evaluasi Model Random forest ............................................................................................................. 25
5.4 Evaluasi Model Naive-Bayes ................................................................................................................. 34
BAB VI IMPLIKASI MANAJERIAL DAN REKOMENDASI PERBAIKAN ........................................................................ 35
6.1 Analisis Model Alternatif Pada Task Prediction .................................................................................... 35
DAFTAR TABEL
Tabel 1 Formulasi stakeholder permasalahan yang dikaji ....................................................................................... 3
Tabel 2 Detail Proses Penyelesaian Permasalahan Spesifik Sistem ......................................................................... 2
Tabel 3 Penggolongan Hasil Klasifikasi .................................................................................................................... 5
Tabel 4 Keterangan Variabel Dataset ...................................................................................................................... 7
Tabel 5 Faktor yang Signifikan dan Tidak Signifikan pada Pengembangan Model Binary Logistic Regression ..... 17
Tabel 6 Confusion Matrix untuk Model Decision tree ........................................................................................... 24
Tabel 7 Evaluasi Model Decision tree .................................................................................................................... 24
Tabel 8 Strategi Preventif PTM Stroke di Indonesia .............................................................................................. 36
DAFTAR GAMBAR
Gambar 1 Kompilasi data penyakit tidak menular di Indonesia per 2019 (Badan Litbangkes Kemenkes RI, 2020) 1
Gambar 2 Age standardized death rate berdasarkan penyakit dan provinsi per 2017 (Badan Litbangkes Kemenkes
RI, 2018) .................................................................................................................................................................. 2
Gambar 3 Identifikasi Akar Masalah Melalui Metode 5 Whys ................................................................................ 4
Gambar 4 Identifikasi Akar Masalah Melalui Metode Fishbone Diagram ............................................................... 5
Gambar 5 Permasalahan Utama dan Permasalahan Spesifik Penelitian ................................................................. 6
Gambar 6 Flowchart Penelitian ............................................................................................................................... 1
Gambar 7 Input-Process-Output Diagram Terkait Permasalahan Spesifik .............................................................. 2
Gambar 8 Contoh Decision tree .............................................................................................................................. 3
Gambar 9 Perbedaan Antara Metode Bagging dan Metode Random forest (James, Witten, Hastie, & Tibshirani,
2021)........................................................................................................................................................................ 4
Gambar 10 Syntax R untuk Menghilangkan Data yang Terduplikasi ....................................................................... 8
Gambar 11 Syntax R untuk Mengganti Jenis Value pada Variabel yang Keliru ....................................................... 9
Gambar 12 Hasil Pengolahan Data Terkait Pergantian Jenis Value ....................................................................... 10
Gambar 13 Syntax R untuk Menghilangkan Missing Value ................................................................................... 10
Gambar 14 Hasil Pengolahan Data Terkait Penghilangan Missing Value .............................................................. 11
Gambar 15 Syntax R untuk Menghilangkan Missing Value pada Dataframe Baru ................................................ 11
Gambar 16 Distribusi kadar gula darah rata-rata pada pasien penderita PTM stroke .......................................... 12
Gambar 17 Distribusi usia pada pasien penderita PTM stroke ............................................................................. 12
Gambar 18 Jumlah Penderita PTM Stroke Berdasarkan Status Pernikahannya .................................................... 13
Gambar 19 Jumlah penderita PTM stroke berdasarkan jenis kelaminnya ............................................................ 13
Gambar 20 Model Kematangan Analitika Data Gartner (Gartner, 2012) .............................................................. 14
Gambar 21 Syntax R untuk Memanggil Packages yang Dibutuhkan ..................................................................... 14
Gambar 22 Syntax R untuk Melakukan Splitting Data ........................................................................................... 15
Gambar 23 Syntax R untuk Membangun Model Decision tree ............................................................................. 15
Gambar 24 Model Decision tree ............................................................................................................................ 15
Gambar 25 Syntax R untuk Mengunduh dan Memanggil Packages yang Dibutuhkan ......................................... 16
Gambar 26 Syntax R untuk Pengembangan Model Binary Logistic Regression .................................................... 16
Gambar 27 Hasil Pengolahan Data dalam Pengembangan Model Binary Logistic Regression ............................. 17
Gambar 28 Syntax R untuk Mengunduh dan Memanggil Package pada Model Random forest .......................... 18
Gambar 29 Syntax R untuk Mengubah Tipe Variabel Data pada Random forest.................................................. 18
Gambar 30 Hasil Pengolahan Data Terkait Penggantian Tipe Data Variabel ........................................................ 19
Gambar 31 Syntax R untuk Visualisasi Histogram ................................................................................................. 19
Gambar 32 Histogram Distribusi Variabel ‘Age’ .................................................................................................... 20
Gambar 33 Histogram Distribusi Variabel ‘bmi’ .................................................................................................... 20
Gambar 34 Histogram Distribusi Variabel ‘avg_glucose_level’ ............................................................................. 20
Gambar 35 Syntax R untuk Visualisasi Histogram Proporsi Pengidap PTM Stroke atau Tidak Stroke .................. 21
Gambar 36 Proporsi Pasien Mengalami PTM Stroke atau Tidak Mengalami Stroke ............................................. 21
Gambar 37 Syntax R untuk Mempartisi Dataset ................................................................................................... 21
Gambar 38 Syntax R untuk Pembuatan Model Random forest Pertama .............................................................. 21
Gambar 39 Syntax R untuk Memodifikasi Vektor dari Prediksi ............................................................................. 22
Gambar 40 Hasil Pengolahan Data Berupa Distribusi dari Prediksi ....................................................................... 22
Gambar 41 Syntax R untuk Membentuk Grafik Variabel Importance ................................................................... 22
Gambar 42 Grafik Variable Importance Model Random forest............................................................................. 23
Gambar 43 Syntax R untuk Mengunduh dan Memanggil Packages pada Model Naïve Bayes ............................. 23
Gambar 44 Syntax R untuk Pengembangan Model Prediksi dengan Naïve Bayes ................................................ 23
Gambar 45 Syntax R untuk Memperolah Confusion Matrix Model Decision tree................................................. 24
Gambar 46 Evaluasi Model Binary Logistic Regression ......................................................................................... 25
Gambar 47 Confusion Matrix Model Random forest Pertama .............................................................................. 25
Gambar 48 Syntax R untuk Melakukan Plotting Error Values Model Random forest Pertama ............................. 25
BAB I
PENDAHULUAN
1.1. Latar Belakang
Selama tahun 1990-2016, profil beban penyakit bergeser dari yang sebelumnya didominasi oleh
penyakit menular menjadi penyakit tidak menular (PTM). Hal ini didukung oleh berbagai faktor risiko yang
mempengaruhi kesehatan tiap kelompok usia penduduk. Dalam kurun waktu tersebut, kematian yang
disebabkan oleh PTM meningkat sebesar 82%. Di Indonesia, tiga PTM tertinggi sebagai penyebab kematian
adalah stroke (penyakit pembuluh otak), penyakit jantung iskemik, dan diabetes. Peningkatan PTM ini
berpengaruh negatif terhadap strategi alokasi anggaran pemerintah, seperti pemberian biaya bantuan/subsidi
perawatan dan pengobatan PTM melalui Badan Penyelenggara Jaminan Sosial (BPJS) Kesehatan sebagai bagian
dari Jaminan Kesehatan Nasional (JKN). Kondisi ini tentunya tidak hanya membebankan negara atau birokrasi
tertentu, tetapi juga umumnya perusahaan juga memiliki kewajiban hukum untuk memenuhi jaminan kesehatan
pekerjanya tersebut. Alokasi anggaran terbesar untuk PTM adalah penyakit pada organ jantung dan diikuti PTM
lainnya yang dapat dilihat selengkapnya beserta data pendukung lainnya pada gambar di bawah ini.
1,42% 12
8,17% 10,5
19,17%
Biaya Per Tahun (Triliun)
10
4 3,4
2,6 2,4
2
0,49 0,36 0,33 0,33
71,24% 0
Penyakit Menular
Penyakit Tidak Menular (PTM)
Penyakit Maternal/Perinatal
Jenis PTM
Cedera
3 2,4
2,5
49,17% 50,83% 2
1,3
1,5
1 0,7 0,7 0,8
0,4
0,5 0,1
0
Gambar 1 Kompilasi Data Penyakit Tidak Menular di Indonesia Per 2019 (Badan Litbangkes
Kemenkes RI, 2020)
Shergio Rizkyputra - 13419061 1
Ujian Akhir Semester: TI4141 – Analitika Data
PTM jantung, salah satunya termasuk PTM stroke, menunjukkan angka yang semakin tinggi seiring
dengan kelompok usia yang lebih tua dan mencapai nilai tertinggi pada kelompok usia 55-59 tahun. Prevalensi
(proporsi dari populasi kelas) pengidap PTM berkaitan organ jantung juga semakin meningkat seiring dengan
pertambahan usia, di mana 4,7% masyrakat Indonesia berusia lebih dari 75 tahun mengidap PTM jantung. Hal ini
menunjukkan bahwa morbiditas masyarakat Indonesia mencapai titik terburuk ketika memasuki usia pensiun
karena beban pembiayaan kesehatan juga akan meningkat diakibatkan adanya beban penyakit yang diderita oleh
penduduk yang tidak lagi produktif.
Gambar 2 Age Standardized Death Rate Berdasarkan Penyakit dan Provinsi Per 2017 (Badan
Litbangkes Kemenkes RI, 2018)
Dapat dilihat pada gambar di atas bahwa PTM stroke menempati urutan pertama sebagai penyakit
penyebab kematian di hampir semua provinsi di Indonesia, kecuali di provinsi Gorontalo, Jawa Timur, dan
Kalimantan Tengah. Hal ini merupakan suatu masalah bagi para masyarakat Indonesia karena masyarakat
Indonesia tidak mengetahui faktor apa saja yang dapat memengaruhi munculnya PTM stroke. Tidak hanya
menjadi masalah bagi masyarakat Indonesia, hal ini akan menjadi masalah utama bagi pemerintah Indonesia
pula, terutama pihak Kementrian Kesehatan Republik Indonesia. Berdasarkan Permenkes 64 Tahun 2016 Pasal
2, Kementrian Kesehatan Republik Indonesia memiliki fungsi untuk merumuskan, menetapkan, dan
melaksanakan kebijakan di bidang kesehatan masyarakat, pencegahan dan pengendalian penyakit, pelayanan
kesehatan, dan kefarmasian dan alat kesehatan. Jika Kementrian Kesehatan Republik Indonesia tidak dapat
mengetahui faktor apa saja yang memengaruhi munculnya PTM stroke dan tidak dapat memprediksi kemunculan
PTM stroke di masa depan, maka Kementrian Kesehatan Republik Indonesia tidak dapat merumuskan strategi
pencegahan dan pengendalian PTM stroke bagi masyarakat Indonesia, yang nantinya akan berdampak buruk
bagi masyarakat Indonesia seperti death rate akibat PTM stroke akan meningkat.
Oleh karena itu, masalah tersebut belum diketahuinya faktor yang memengaruhi PTM stroke dan
prediksi PTM stroke di masa depan ini sangat krusial untuk dipecahkan bagi pihak Kementrian Kesehatan
Shergio Rizkyputra - 13419061 2
Ujian Akhir Semester: TI4141 – Analitika Data
Republik Indonesia. Sehingga pada penelitian kali ini, peneliti melakukan prediksi PTM stroke dengan
menggunakan random forest untuk dapat meninjau metode prediksi yang terakurat sehingga dapat memprediksi
PTM stroke di Indonesia di masa depan sebagai input bagi Kementrian Kesehatan Republik Indonesia dalam
merumuskan strategi preventif dan kontrol PTM stroke bagi masyarakat Indonesia.
Why?
Why?
Why?
Why?
1. Problem
Permasalahan terkait penyakit tidak menular dominan yang diidap masyarakat Indonesia adalah
terdapat tingkat age standardized death rate PTM stroke tertinggi di Indonesia.
2. Why 1
Tingkat age standardized death rate PTM stroke tertinggi di Indonesia diakibatkan karena evaluasi
pelayanan kesehatan dan tindak lanjutnya terhadap pasien belum berjalan dengan baik.
3. Why 2
Evaluasi pelayanan kesehatan terhadap pasien belum berjalan dengan baik karena diduga kurangnya
kompetensi petugas medis dalam mendiagnosis penyakit pasien, khususnya PTM stroke.
4. Why 3
Kurangnya kompetensi petugas medis dalam mendiagnosis penyakit pasien diduga juga disebabkan
kurangnya keakuratan metode analisis dan alat diagnosis penyakit pasien.
5. Why 4
Kurangnya keakuratan metode analisis dan alat diagnosis penyakit pasien mendorong dirancangnya
mekanisme analisis untuk memprediksi gejala PTM stroke.
Dengan demikian, diperlukan solusi yang dapat dilakukan adalah mekanisme analisis untuk
memprediksi gejala PTM stroke. Selain 5 Whys, dilakukan identifikasi faktor masalah lain menggunakan fishbone
diagram yang dapat dilihat pada gambar di bawah ini.
MONEY METHOD
Berdasarkan gambar fishbone diagram di atas, hal-hal yang menjadi akar masalah terkait tingginya
angka kematian akibat PTM stroke dibagi menjadi beberapa sudut pandang, yaitu pengidap dan stakeholder,
termasuk petugas medis. Terdapat beberapa aspek yang digunakan untuk mengidentifikasi masalah pada
penelitian ini yaitu dari segi method, money, man, machine, dan environment. Dari aspek man, mayoritas
masyarakat lebih memilih pengobatan alternatif dan terdapat oknum birokrasi yang menyalahgunakan
kewenangan, tetapi masalah utama yang ditemukan adalah kurangnya kompetensi petugas medis. Petugas
medis akan berperan krusial mulai dari memberikan penyuluhan sebagai tindakan preventif, mendiagnosis,
hingga menindaklanjuti gejala penyakit.
Dari segi machine, permasalahan utamanya berkaitan dengan kurangnya keakuratan metode analisis
dan alat diagonisis. Hal ini berperan krusial dalam memprediksi gejala yang dialami pasien berkaitan dengan PTM
stroke. Salah satu potensi terjadinya kesalahan dalam mendiagnosis penyakit pasien adalah alat medis belum
dikalibrasi secara konsisten. Dari segi environment, permasalahan utamanya berasal dari sudut pandang pasien
yaitu pola hidup yang tidak sehat. PTM stroke disebabkan oleh beberapa kebiasaan buruk yaitu tidak menjaga
keseimbangan pola dan porsi makan, merokok, dan juga meminum minuman beralkohol.
Dari segi method, permasalahan utamanya diakibatkan buruknya evaluasi pelayanan kesehatan dan
tindak lanjutnya terhadap pasien. Untuk mendorong perbaikan layanan, tim pengawas mutu dapat dilibatkan
secara optimal agar terjadi perbaikan berkelanjutan (continuous improvement). Dari segi money, terdapat
beberapa sudut pandang pendorong terjadinya permasalahan utama. Dari sudut pandang pemerintah, alokasi
dana bantuan sosial tidak tepat sasaran dan pemerintah cenderung mengabaikan pentingnya program kerja di
bidang kesehatan, khususnya dalam mengalokasikan anggaran negara. Dari sudut pandang pasien, tingkat
ekonomi pasien PTM stroke cenderung didominasi kelas menengah ke bawah, sehingga hal ini menghambat
pembiayaan untuk pengobatan dan perawatan PTM stroke karena lebih memprioritaskan kebutuhan utamanya.
Dari segi konteks masalah, penelitian ini mengelompokkan permasalahan menjadi permasalahan utama
dan permasalahan spesifik. Berikut adalah permasalahan umum beserta turunannya yang dikaji terkait
pembangunan model prediksi untuk penyakit stroke.
Dengan menggunakan task prediction, peneliti akan membandingkan beberapa model alternatif dan
akan dipilih dengan pertimbangan nilai akurasi, error, sensitivitas, dan spesifisitas sebagai model terbaik. Model-
model alternatif yang digunakan adalah bagain dari task prediction. Peneliti menggunakan empat model
alternatif, yaitu model decision tree, random forest, binary logistic regression (binomial logit), dan Naïve Bayes.
1. Data yang digunakan dikumpulkan sumber www.kaggle.com adalah data dengan responden yang
berasal dari beberapa negara, tidak khusus di Indonesia. Maka, perlu dilakukan analisis terhadap
pemanfaatannya untuk stakeholder dan aktor lainnya pada sistem di Indonesia
2. Peniliti melakukan perbandingan empat model prediksi untuk menentukan model terbaik
3. Terdapat sebelas variabel data yang diolah 5110 sampel yang menjadi responden
BAB II
LANDASAN TEORI
Mulai
Selesai
Dalam menyelesaikan permasalahan yang dikaji, peneliti menggunakan task prediction (prediksi) untuk
memprediksi gejala pasien yang berpotensi mengidap PTM stroke. Task prediction hampir serupa dengan task
classification (klasifikasi) atau task estimation (estimasi). Dataset terkait yang diolah melalui task prediction akan
diklasifikasikan menurut beberapa perilaku masa depan yang diprediksi dengan perkiraan nilai di masa depan.
Berikut adalah penjabaran terkait permasalahan spesifik yang ingin diselesaikan, data yang tersedia dan resource
yang digunakan dengan task prediction yang digunakan untuk menyajikan solusi dari permasalahan yang
dianalisis.
mungkin dalam dataset. Ketika data MCAR atau MAR peneliti dapat mengabaikan alasan untuk hilang
data, yang menyederhanakan pilihan metode yang akan diterapkan. Dalam hal ini, metode penanganan
apapun dapat diaplikasikan. Namun, sulit untuk mendapatkan bukti empiris tentang apakah data
tersebut MCAR atau MAR. Sebuah strategi yang valid adalah memeriksa sensitivitas hasil terhadap
asumsi MCAR dan MAR dengan membandingkan beberapa analisis, di mana perbedaan hasil di
beberapa analisis memberikan beberapa informasi tentang asumsi paling relevan (Salgado, Azevedo, &
Hugo & Vieira, 2016)
2. Penanganan wrong input
Data yang dimasukkan dalam format yang salah menyebabkan data menjadi tidak bisa dibaca atau
disalahartikan nilainya oleh program komputer. Penanganan yang data dilakukan adalah mengubah
tipe data sesuai jenis variabel datanya. Tipe data terdiri atas data logical (tipe data untuk memberi nilai
pada hasil pembandingan atau kombinasi pembandingan), numeric (segala jenis angka), integer
(bilangan bulat), complex (bilangan kompleks), character atau string (umumnya dalam bentuk huruf),
dan factor (dapat ditampilkan dalam bentuk string, tetapi saat pengolahan data akan terbaca sebagai
angka dengan nilai untuk masing-masing faktor).
3. Penangan data terduplikasi
Untuk mengatasi fenomena ini, dilakukan beberapa metode diantaranya menggunakan record linkage,
reference marching, deduplication, dan copy detection. Sejumlah solusi telah diusulkan, mulai dari
aturan yang dikodekan secara manual hingga aplikasi teknik machine learning terbaru. Data yang
terduplikasi, terutama dalam jumlah banyak, jika tidak ditangani dengan baik dapat menyebabkan
kemampuan prediksi yang menurun.
Gambar di atas menunjukkan penggambaran decision tree, yaitu berupa struktur pohon, di mana node
pada pohon merepresentasikan variabel yang telah diuji, setiap cabang adalah suatu pembagian hasil uji, dan
node daun atau leaf node merupakan kelompok kelas tertentu. Tingkatan node teratas adalah node akar atau
berupa variabel yang biasanya memiliki pengaruh paling besar pada kelas tertentu.
Gambar 9 Perbedaan Antara Metode Bagging dan Metode Random forest (James, Witten, Hastie, &
Tibshirani, 2021)
Maka, dalam membangun random forest, pada setiap pemecahan di decision tree, algoritma tidak
diizinkan untuk mempertimbangkan mayoritas predictor yang tersedia. Metode random forest memaksa setiap
𝑝−𝑚
pemecahan untuk mempertimbangkan hanya sebagian dari prediktor. Oleh karena itu, rata-rata dari
2
pemecahan bahkan tidak akan mempertimbangkan prediktor yang kuat sehingga prediktor lain akan memiliki
lebih banyak peluang. Proses ini adalah proses mendekorelasi decision tree, sehingga akan membuat rata-rata
decision tree yang dihasilkan kurang bervariasi sehingga hasil dari metode ini lebih dapat diandalkan.
𝑝𝑟𝑜𝑏𝑒𝑣𝑒𝑛𝑡
𝐿𝑜𝑔𝑖𝑡𝑖 = ln ( ) = 𝑏0 + 𝑏1 𝑋1 + ⋯ + 𝑏𝑛 𝑋𝑛
1 − 𝑝𝑟𝑜𝑏𝑒𝑣𝑒𝑛𝑡
𝑝𝑟𝑜𝑏𝑒𝑣𝑒𝑛𝑡
𝑂𝑑𝑑𝑠𝑖 = ( ) = 𝑒 𝑏0 +𝑏1𝑋1+⋯+ 𝑏𝑛𝑋𝑛
1 − 𝑝𝑟𝑜𝑏𝑒𝑣𝑒𝑛𝑡
Shergio Rizkyputra - 13419061 4
Ujian Akhir Semester: TI4141 – Analitika Data
Berbeda dengan analisis diskriminan, binary logistic regression tidak memerlukan terpenuhinya asumsi
normalitas. Selain itu, analisis ini juga tidak mementingkan pola distribusi dari data yang digunakan sehingga
dapat digunakan dalam berbagai situasi. Namun, perlu diperhatikan jumlah observasi dan juga fitur. Apabila
jumlah observasi lebih kecil jika dibandingkan dengan fitur, hal ini akan menyebabkan model overfitting.
2.6. Naive-Bayes
Naïve Bayes Classifier merupakan sebuah metode klasifikasi yang berakar pada teorema Bayes. Metode
pengklasifikasian dengan menggunakan metode probabilitas dan statistik yang dikemukakan oleh ilmuwan
Inggris, Thomas Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman di masa
sebelumnya sehingga dikenal sebagai Teorema Bayes. Ciri utama dari Naïve Bayes Classifier ini adalah asumsi
yg sangat kuat (naïf) akan independensi dari masing-masing kondisi / kejadian. Menurut Delen (2008)
menjelaskan Naïve Bayes untuk setiap kelas keputusan, menghitung probabilitas dengan syarat bahwa kelas
keputusan adalah benar, mengingat vektor informasi obyek. Teorema Bayes sering pula dikembangkan
mengingat berlakunya hukum probabilitas total, menjadi seperti formula di bawah ini.
𝑃(𝑋|𝐻)
𝑃(𝐻|𝑋) = × 𝑃(𝐻)
∑𝑛𝑖=1 𝑃(𝐻𝑖 |𝑋)
Dengan:
i = 1, 2, 3, …, n dengan n adalah jumlah data hipotesis (probabilitas prior)
𝐻1 U 𝐻2 U 𝐻3 … 𝐻𝑛 = 𝑆 dengan S adalah probabilitas total H (hipotesis)
Untuk menjelaskan Teorema Naïve Bayes, perlu diketahui bahwa proses klasifikasi memerlukan sejumlah
petunjuk untuk menentukan kelas apa yang cocok bagi sampel yang dianalisis tersebut. Karena itu, Teorema
Bayes di atas disesuaikan sebagai berikut.
𝑃(𝐹1 , … , 𝐹𝑛 |𝐶)
𝑃(𝐶|𝐹1 , … , 𝐹𝑛 ) = × 𝑃(𝐶)
𝑃(𝐹1 , … , 𝐹𝑛 )
Variabel C merepresentasikan kelas, sementara variabel 𝐹1 sampai 𝐹𝑛 merepresentasikan karakteristik
pertunjuk yang dibutuhkan untuk melakukan klasifikasi. Maka, rumus tersebut menjelaskan bahwa peluang
masuknya sampel karakteristik tertentu dalam kelas C (posterior) adalah peluang munculnya kelas C (sebelum
masuknya sampel tersebut, seringkali disebut prior), dikali dengan peluang kemunculan karakteristik-
karakteristik sampel pada kelas C (disebut juga likelihood), dibagi dengan peluang kemunculan karakteristik-
karakteristik sampel secara global (disebut juga evidence).
2.7. Validation
Salah satu teknik validasi yang digunakan untuk mengevaluasi model pada klasifikasi binary adalah
confusion matrix. Confusion Matrix terbentuk dari empat outcome (keluaran) yang dihasilkan sebagai hasil dari
klasifikasi biner. Binary classifier memprediksi seluruh contoh data dari kumpulan data uji sebagai output positif
atau negatif, empat output tersebut yaitu True Positive (TP), False Positive (FP), True Negative (TN), dan False
Negative (FN).
Actual
Positive (+) Negative (-)
Positive (+) TP FN
Predicted
Negative (-) FP TN
Dua parameter pengukuran pada Confusion Matrix yang umum digunakan adalah error rate (ERR) dan
accuracy (ACC). Rumus keduanya adalah sebagai berikut.
Biaya kesalahan positif dan negatif dapat menjadi berbeda. Maka, pengukuran lain seperti sensitivity (SN)
dan specitifity (SP) lebih informatif daripada accuracy dan error rate. SN dihitung sebagai jumlah prediksi positif
yang benar dibagi dengan jumlah total positif. Ini juga disebut recall (REC) atau true positive rate (TPR). SN
terbaik adalah 1, sedangkan yang terburuk adalah 0. SP dihitung sebagai jumlah prediksi negatif yang benar
dibagi dengan jumlah total negatif. Ini juga disebut true negative rate (TNR). SP terbaik adalah 1, sedangkan
yang terburuk adalah 0.
𝑇𝑃 𝑇𝑃
𝑆𝑁 = =
𝑇𝑃 + 𝐹𝑁 𝑃
𝑇𝑁 𝑇𝑁
𝑆𝑃 = =
𝑇𝑁 + 𝐹𝑃 𝑁
BAB III
PENGOLAHAN DATA
3.1. Penjelasan Dataset
Dataset yang digunakan atau dikumpulkan bersumber dari website Kaggle dengan tautan
https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset. Dataset terpilih tersebut terdiri dari
responden yang heterogen karena berasal dari beberapa negara, tidak khusus berasal dari Indonesia. Maka, perlu
dilakukan analisis terhadap pemanfaatannya untuk stakeholder dan aktor lainnya pada penerapannya di sistem
layanan kesehatan Indonesia. Pada penelitian kali ini, para peneliti menggunakan dataset penyakit tidak menular
(PTM) stroke yang disediakan oleh World Health Organization (WHO) di mana setiap barisnya merupakan
informasi setiap pasien dengan setiap kolomnya berupa variabel-variabel sebagai berikut.
Variabel
Notasi Keterangan Satuan
Independen
Tanda pengenal unik sebagai identitas yang
id - -
membedakan data tiap barisnya.
Jenis kelamin (gender) dari pasien dengan tiga kategori
yaitu sebagai berikut Tanpa
gender 𝑋1 ‘Male’: gender berjenis laki-laki satuan/kategorikal
‘Female’: gender berjenis perempuan (multiplier)
‘Other’: gender untuk jenis kelamin lainnya.
age 𝑋2 Usia dari pasien. Year (tahun)
Status pasien yang memiliki riwayat hipertensi, di
Tanpa
mana nilai 0 menandakan pasien tidak memiliki
hypertension 𝑋3 satuan/kategorikal
hipertensi dan nilai 1 menandakan pasien memiliki
(multiplier)
hipertensi.
Status pasien memiliki riwayat penyakit jantung, di
Tanpa
mana nilai 0 menandakan pasien tidak memiliki
heart_disease 𝑋4 satuan/kategorikal
penyakit jantung dan nilai 1 menandakan pasien
(multiplier)
memiliki penyakit jantung.
Status pasien telah menikah atau belum dengan
Tanpa
kategori ‘No’ untuk menunjukkan pasien yang belum
ever_married 𝑋5 satuan/kategorikal
menikah dan kategori ‘Yes’ untuk menunjukkan pasien
(multiplier)
yang sudah menikah
Tipe pekerjaan pasien, di mana terdapat lima kategori
sebagai berikut.
‘Children’: menandakan pasien anak-anak
dan tidak bekerja
‘Govt_jov’: menandakan pasien pekerja di
Tanpa
sektor pemerintahan
work_type 𝑋6 satuan/kategorikal
‘Never_worked’: menandakan pasien tidak
(multiplier)
pernah bekerja
‘Private’: menandakan pasien pekerja di
sektor private
‘Self-employed’: menandakan pasien pekerja
sendiri dengan membuka usaha tertentu
bmi 𝑋9 Indeks massa tubuh (body mass index) pada pasien Unit
Status merokok pasien dengan tiga kategori sebagai
berikut.
‘Formerly smoke’: menandakan dahulu
Tanpa
merokok
smoking_status 𝑋10 satuan/kategorikal
‘Never smoke’: menandakan tidak pernah
(multiplier)
merokok
‘Smokes’: menandakan sedang merokok
‘Unknown’: menandakan data tidak tersedia.
Berdasarkan hasil pengolahan dataset, diperoleh jumlah data yang sama antara kedua data (data
sebelum dan setelah diolah). Hal ini menunjukkan tidak ada data yang terduplikasi pada dataset
yang ada. Dengan demikian, pre-processing dapat dilanjutkan ke tahap berikutnya.
as.numeric(dataset_stroke_unique$age)
dataset_stroke_unique$bmi <-
as.numeric(dataset_stroke_unique$bmi)
dataset_stroke_unique$gender <-
as.factor(dataset_stroke_unique$gender)
dataset_stroke_unique$ever_married <-
as.factor(dataset_stroke_unique$ever_married)
dataset_stroke_unique$work_type <-
as.factor(dataset_stroke_unique$Residence_type)
dataset_stroke_unique$smoking_status <-
as.factor(dataset_stroke_unique$smoking_status)
dataset_stroke_unique$Residence_type <-
as.factor(dataset_stroke_unique$Residence_type)
str(dataset_stroke_unique)
Gambar 11 Syntax R untuk Mengganti Jenis Value pada Variabel yang Keliru
Setelah dilakukan penggantian jenis value, dilakukan pengecekan kembali tiap value yang ada.
Dapat diketahui hasil pengolahan data telah memiliki value yang tepat dan dilanjutkan ke tahap
pre-processing berikutnya. Berikut adalah hasil dari pengecekan value.
$ age : num 67 80 49 79 81 74 69 78
0 1 0 ...
..- attr(*, "names")= chr [1:201] "2" "9" "14" "20" ...
Gambar 12 Hasil Pengolahan Data Terkait Pergantian Jenis Value
any(is.na(dataset_stroke_unique))
sum(is.na(dataset_stroke_unique))
Berikut merupakan hasil dari pengolahan dan pengecekan keberadaan missing value beserta
jumlahnya.
> any(is.na(dataset_stroke_unique))
[1] TRUE
> sum(is.na(dataset_stroke_unique))
[1] 201
str(dataset_stroke_clean)
Gambar 15 Syntax R untuk Menghilangkan Missing Value pada Dataframe Baru
BAB IV
EKSPLORASI DAN ANALISIS DATA
1. Distribusi kadar gula darah rata-rata pada pasien penderita PTM stroke
Gambar 16 Distribusi kadar gula darah rata-rata pada pasien penderita PTM stroke
Berdasarkan boxplot di atas, nilai tengah (median) persebaran kadar gula darah rata-rata
penderita PTM stroke lebih tinggi, yakni sekitar 120 bmi (body mass index), dibandingkan pada
non-penderita dengan nilai sekitar 75 bmi. Persebaran nilai interkuartil pada penderita PTM stroke
lebih luas dibandingkan non-penderita. Maka, dapat dikatakan bahwa seseorang yang memiliki
tingkat gula darah yang tinggi juga akan memiliki kemungkinan besar untuk menderita PTM stroke.
Boxplot di atas menunjukkan bahwa penderita PTM stroke cenderung didominasi usia yang lebih
tua dibandingkan non-penderita. Hal ini ditandai oleh besar kuartil pertama dari persebaran data
penderita PTM stroke di angka 60 tahun. Selain itu, persebaran data penderita PTM stroke
cenderung lebih banyak di atas nilai mediannya (di atas 70 tahun). Dapat ditarik kesimpulan bahwa
PTM stroke umummya diderita oleh seseorang yang berusia lebih dari 60 tahun.
Berdasarkan bar chart di atas, dideskripsikan bahwa sebagian besar pasien yang terkena stroke
adalah pasien yang telah menikah. Rasio antara pengidap PTM stroke yang telah menikah dan
belum menikah adalah sekitar 1,88 kali lipat. Hal ini dapat dirasionalisasikan dengan beban mental
yang semakin meningkat selama dalam hubungan menikah karena meningkatnya kebutuhan
sehari-hari yang perlu dipenuhi.
4. Jumlah penderita PTM stroke berdasarkan jenis kelaminnya
Dalam menyelesaikan permasalahan terkait PTM stroke, peneliti menggunakan beberapa model
alternatif dalam task prediction, yaitu model decision tree, binary logistic regression (binomial logit), random
forest, dan Naïve Bayes. Setiap model akan dijabarkan langkah-langkah pembuatannya hingga ditampilkan tools
visualisasinya. Berikut adalah analisis data yang dilakukan pada setiap model alternatif yang merupakan bagain
dari task prediction.
4.2.1 Decision tree
Analisis data dengan decision tree dilakukan pada software RStudio. Sebelum melakukan
komputasi dengan tools decision tree, diperlukan beberapa packages yang harus di-install. Berikut
adalah langkah-langkah syntax untuk memanggil packages yang dibutuhkan. Pastikan seluruh packages
telah terpasang terlebih dahulu.
1. Mengunduh dan memanggil packages yang dibutuhkan
Pada tahap ini, peneliti mengunduh dan memanggil packages yang tersedia pada
software RStudio. Packages yang digunakan oleh peneliti adalah sebagai berikut.
a) dplyr: package untuk memanipulasi data
b) caTools: package untuk melakukan splitting data
c) caret: package untuk menyederhanakan (streamline) proses pada model training untuk
complex regression dan classification
d) rpart: package untuk membangun pohon (trees) model klasifikasi dan regresi
e) rpart.plot: package untuk mengombinasikan package rpart dengan teks yang akan
terdapat pada decision tree
f) e1707: package untuk merancang karakteristik pada genotypic
Berikut adalah syntax yang diperlukan untuk mengunduh dan memanggil pacakges pada
RStudio.
library(dplyr)
library(caTools)
library(caret)
library(rpart)
library(rpart.plot)
Library(e1707)
set.seed(42)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.1711 -0.3002 -0.1577 -0.0769 3.2345
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.029e+01 4.981e+02 -0.041 0.96750
id 1.257e-06 4.221e-06 0.298 0.76584
genderMale 6.705e-03 1.837e-01 0.036 0.97089
age 7.347e-02 7.472e-03 9.833 < 2e-16***
hypertension 5.642e-01 2.082e-01 2.710 0.00674 **
heart_disease 1.780e-01 2.581e-01 0.690 0.49037
ever_marriedYes -8.147e-02 2.975e-01 -0.274 0.78417
work_typeGovt_job 1.262e+01 4.981e+02 0.025 0.97978
work_typeNever_worked -6.253e-01 2.575e+03 0.000 0.99981
work_typePrivate 1.284e+01 4.981e+02 0.026 0.97943
work_typeSelf-employed 1.223e+01 4.981e+02 0.025 0.98041
Residence_typeUrban -1.208e-01 1.790e-01 -0.674 0.50000
avg_glucose_level 3.537e-03 1.579e-03 2.239 0.02513 *
bmi -6.957e-03 1.438e-02 -0.484 0.62861
smoking_statusnever smoked -4.796e-02 2.316e-01 -0.207 0.83597
smoking_statussmokes 4.813e-01 2.715e-01 1.772 0.04634 *
smoking_statusUnknown 1.472e-02 2.829e-01 0.052 0.95851 -
--
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1207.98 on 3435 degrees of freedom
Residual deviance: 956.94 on 3419 degrees of freedom
AIC: 990.94
Gambar 27 Hasil Pengolahan Data dalam Pengembangan Model Binary Logistic Regression
Berdasarkan hasil tersebut, langkah selanjutnya adalah menentukan P-value penelitian. Berikut adalah
hipotesis yang digunakan dengan P-value sebesar 0,05.
Berdasarkan perhitungan yang dihasilkan dari pengolahan data pada RStudio, faktor-faktor dengan nilai
lebih kecil dari 0,05 adalah sebagai berikut beserta kesimpulannya terkait faktor yang mempengaruhio
seseorang terkena stroke.
Tabel 5 Faktor yang Signifikan dan Tidak Signifikan pada Pengembangan Model Binary Logistic
Regression
Faktor Signifikan Faktor Tidak Signifikan
P-value Faktor < P-value Penelitian P-value Faktor < P-value Penelitian
Age (usia) Gender (jenis kelamin)
Hypertension (hipertensi) Heart-disease (riwayat gangguan jantung)
Avg_glucose_level (tingkat gula Worktype (tipe pekerjaan)
darah) Residence_type (tipe area tempat tinggal)
Smoking_status (status merokok) Bmi (indeks massa tubuh)
Kesimpulan: Faktor usia, hipertensi, tingkat gula darah, dan status merokok signifikan sehingga
diduga bahwa mempengaruhi sesorang terkena penyakit tidak menular (PTM) stroke.
library(dplyr)
library(tidyverse) library(corrplot)
library(caret)
install.packages("randomForest")
library(randomForest)
install.packages("ROSE")
library(ROSE)
library("stats")
library("datasets")
install.packages("prediction")
library("prediction")
install.packages("performance")
library("performance")
Gambar 28 Syntax R untuk Mengunduh dan Memanggil Package pada Model Random forest
Setelah didapatkan dataset yang telah melalui tahap pre-processing, maka akan dilakukan
perubahan tipe data variabel ‘gender’, ‘ever_married’, ‘work_type’, ‘Residence_type’, dan
‘smoking_status’, menjadi factor. Lalu, akan dilakukan perubahan tipe data untuk variabel ‘bmi’ dan
‘age’ menjadi numeric dengan syntax pada RStudio sebagai berikut.
str(dataset_stoke_clean
)
Gambar 29 Syntax R untuk Mengubah Tipe Variabel Data pada Random forest
Berikut adalah hasil dari syntax R dari perubahan tipe data variabel yang ingin diubah.
Shergio Rizkyputra - 13419061 18
Ujian Akhir Semester: TI4141 – Analitika Data
Langkah selanjutnya adalah dilakukannya visualisasi data dengan membuat histogram dari
variabel dengan tipe numeric, yaitu ‘age’, ‘avg_glucose_level’ dan’bmi’ dengan syntax pada RStudio
sebagai berikut.
numvars <-
c('age','avg_glucose_level','bmi') for (i
in numvars){ g <-
dataset_stoke_clean%>%ggplot(aes_string(x
= i))+geom_histogram(color = 'black',fill
= 'hotpink',binwidth = 3
)+labs(title = i,y = 'frequency')
plot(g)
}
Gambar 31 Syntax R untuk Visualisasi Histogram
Berikut merupakan hasil dari syntax R untuk pembuatan tools visualisasi histogram variabel
‘age’, ‘avg_glucose_level’ dan’bmi’.
Langkah selanjutnya adalah pembuatan grafik proporsi dari pasien yang mengalami penyakit
tidak menular (PTM) stroke dan tidak mengalami PTM stroke dengan syntax pada R sebagai berikut.
dataset_stoke_clean%>%
ggplot(aes(x = stroke))+geom_bar(fill =
'hotpink')+labs(x = 'Mengalami Stroke?', y = 'Jumlah')
#Proporsi stroke
dataset_stoke_clean%>%
group_by(stroke)%>%count(stroke)
Gambar 35 Syntax R untuk Visualisasi Histogram Proporsi Pengidap PTM Stroke atau Tidak Stroke
Berikut merupakan hasil dari syntax sebelumnya untuk grafik proporsi dari pasien yang
mengalami PTM stroke atau tidak.
Gambar 36 Proporsi Pasien Mengalami PTM Stroke atau Tidak Mengalami Stroke
Dari komputasi yang dilakukan dengan syntax tersebut, diketahui bahwa terdapat 209 pasien
mengalami PTM stroke dan 4700 pasien tidak mengalami PTM stroke. Lalu, untuk melakukan prediksi,
akan dilakukan partisi data untuk data training dan data testing dengan syntax pada RStudio sebagai
berikut.
set.seed(7)
sample_index
<-
sample(nrow(dataset_stoke_clean),nrow(dataset_stoke_clea
n)*0.8)
data_train <- dataset_stoke_clean[sample_index,]
data_test <- dataset_stoke_clean[-sample_index,]
Gambar 37 Syntax R untuk Mempartisi Dataset
Lalu, dilakukan pembuatan model random forest pertama dengan syntax sebagai berikut.
Pembuatan model random forest akan dilakukan menjadi beberapa model untuk memprediksi
pasien memiliki PTM stroke. Langkag-langkah pembuatan setiap model tersebut akan dijabarkan pada
bagian evaluasi model pada bagian selanjutnya. Setelah itu, dilakukan pembentukan dan modifikasi
vector dari prediksi, sehingga akan dihasilkan distribusi dari prediksi dengan syntax pada R sebagai
berikut.
Berikut merupakan hasil dari syntax untuk pembentukan distribusi dari prediksi.
varImp2<-varImp2%>%arrange(-
Overall)
varImp2%
>%
ggplot(aes(x=labels,y=Overall)) +
geom_bar(position="dodge",stat="identity",width = 0, color = "black")
+ coord_flip() + geom_point(color='hotpink') + xlab(" Importance
Score")+ ggtitle("Variable Importance") +
theme(plot.title = element_text(hjust = 0.5)) +
theme(panel.background = element_rect(fill = 'white', colour =
'black'))
Berikut merupakan hasil dari syntax pada RStudio untuk pembentukan grafik variabel
importance. Didapatkan tiga variabel utama yang memiliki kepentingan tertinggi dalam memprediksi
pasien yang memiliki gejala penyakit stroke adalah ‘age’, ‘avg_glucose_level’ dan ‘bmi’.
4.2.4 Naive–Bayes
Analisis data menggunakan tools Naïve Bayes dilakukan dengan software RStudio. Tools ini
digunakan untuk membangun suatu model prediksi apakah seorang akan terkena penyakit tidak
menular (PTM) stroke atau tidak berdasarkan hasil perkalian perbandingan dengan faktor-faktor yang
merupakan variabel independent pada dataset. Variabel ini diasumsikan tidak berkorelasi antara satu
dengan lainnya. Berikut adalah langkah – langkah dalam melakukan analisis dengan Naïve Bayes.
library(dplyr)
library(e1071)
library(caTools)
library(caret)
Gambar 43 Syntax R untuk Mengunduh dan Memanggil Packages pada Model Naïve Bayes
set.seed(100)
split = sample.split(dataset_stroke_clean, SplitRatio =
0.8) training_set = subset(dataset_stroke_clean, split ==
TRUE) testing_set = subset(dataset_stroke_clean, split ==
FALSE)
Gambar 44 Syntax R untuk Pengembangan Model Prediksi dengan Naïve Bayes
Shergio Rizkyputra - 13419061 23
Ujian Akhir Semester: TI4141 – Analitika Data
BAB V
EVALUASI MODEL
Selanjutnya, dibuat matriks dengan membuat table pada code dan membandingkan hasil prediksi pada
tree_pred dengan data aktual, yaitu kolom stroke pada dataframe testing_data_set. Kemudian, barulah
dievaluasi akurasi dengan membagi jumlah diagonal matriks dengan keseluruhan angka pada matriks. Selain itu,
dilakukan pula pengukuran pada aspek lainnya yaitu sebagai berikut.
Actual
1 0
Yes 41 215
Predicted
No 28 1188
Reference
Prediction 0 1
0 1409 63
1 0 0
Accuracy : 0.9572
95% CI : (0.9456, 0.967)
No Information Rate : 0.9572
P-Value [Acc > NIR] : 0.5334
Kappa : 0
Sensitivity : 0.0000
Specificity : 1.0000
Pos Pred Value : NaN
Neg Pred Value : 0.9572
Prevalence : 0.0428
Detection Rate : 0.0000
Detection Prevalence : 0.0000
Balanced Accuracy : 0.5000
'Positive' Class : 1
Call:
randomForest(formula = stroke ~ . - id, data = data_train, ntree = 1000,
mtry = 5)
Type of random forest: classification
Number of trees: 1000
No. of variables tried at each split: 5
OOB estimate of error rate: 4.15%
Confusion matrix:
No Yes class.error
No 3762 7 0.001857257
Yes 156 2 0.987341772
Lalu, akan dilakukan pencarian jumlah variabel optimal yang akan digunakan pada model random forest
penelitian kali ini dengan melakukan plotting error values menggunakan syntax sebagai berikut.
Gambar 48 Syntax R untuk Melakukan Plotting Error Values Model Random forest Pertama
Berikut merupakan hasil dari syntax untuk pencarian jumlah variabel optimal yang akan digunakan
dengan melakukan plotting error values. Dari grafik yang terbentuk, didapatkan error values terendah adalah
ketika penggunaan variabel sebanyak tiga variabel independen.
Setelah didapatkan penggunaan variabel sebanyak tiga variabel independen, maka akan dilakukan
pembuatan model random forest kedua dengan syntax sebagai berikut.
Berikut merupakan hasil dari syntax untuk model random forest kedua dan dihasilkan OOB estimate of
error rate sebesar 4,10% dan Confusion Matrix sebagai berikut.
Call:
randomForest(formula = stroke ~ . - id, data = data_train, ntree = 1000,
mtry = 3)
Type of random forest: classification
Number of trees: 1000
No. of variables tried at each split: 3
OOB estimate of error rate: 4.1%
Confusion matrix:
No Yes class.error
No 3766 3 0.0007959671
Yes 158 0 1.0000000000
Langkah selanjutnya dapat dilakukan pembentukkan plotting error rate dengan jumlah decision tree yang
terbentuk pada model random forest kedua menggunakan syntax sebagai berikut.
errorrate <- data.frame(
Trees = rep(1:nrow(forest2$err.rate)),
Error = forest2$err.rate[,'OOB'] )
errorrate%>%
ggplot(aes(x = Trees, y =
Error))+geom_line(color = 'hotpink',)
Gambar 52 Syntax R untuk Melakukan Plotting Error Values Model Random forest Kedua
Berikut merupakan hasil dari syntax untuk plotting error rate dengan jumlah decision tree yang
terbentuk pada model random forest kedua.
Shergio Rizkyputra - 13419061 26
Ujian Akhir Semester: TI4141 – Analitika Data
Selanjutnya dengan menggunakan dataframe error rate, akan dilakukan pencarian jumlah decision tree
yang memiliki OOB error terendah dan memberikan garis vertikal sebagai penanda dengan menggunakan
syntax sebagai berikut.
minerrorpoints
errorrate%>%
ggplot(aes(x = Trees, y = Error))+geom_line(color =
'hotpink')+geom_vline(xintercept = minerrorpoints[1])
Gambar 54 Syntax R untuk Pencarian Jumlah Decision tree dengan OOB Error Terendah
Berikut merupakan hasil dari syntax untuk pencarian jumlah decision tree yang memiliki OOB error
terendah.
Gambar 55 Grafik yang Menunjukkan Jumlah Decision tree dengan OOB Error Terendah
Setelah itu, akan dilakukan pembuatan model random forest ketiga dengan menggunakan jumlah
decision tree pada langkah sebelumnya. Berikut merupakan syntax untuk pembuatan model random forest
ketiga.
Gambar 56 Syntax R untuk Melakukan Plotting Error Values Model Random forest Ketiga
Berikut merupakan hasil dari syntax pembuatan model random forest ketiga dan dihasilkan OOB
estimate of error rate sebesar 4.07% dan Confusion Matrix sebagai berikut
Call:
randomForest(formula = stroke ~ . - id, data = data_train, ntree =
minerrorpoints[1], mtry = 3)
Type of random forest: classification
Number of trees: 73
No. of variables tried at each split: 3
OOB estimate of error rate: 4.07%
Confusion matrix:
No Yes class.error
No 3765 4 0.001061289
Yes 156 2 0.987341772
Setelah itu, akan dibentuk histogram dari matriks prediksi dengan menggunakan syntax sebagai berikut.
histogram(predictions)
Gambar 58 Syntax R untuk Membentuk Histogram dari Matriks Prediksi
Berikut merupakan hasil dari syntax untuk histogram dari matriks prediksi.
Langkah berikutnya adalah pembentukan Confusion Matrix dengan menggunakan matriks prediksi yang
telah dikomputasi pada langkah sebelumnya. Berikut merupakan syntax dari pembentukan confusion matrix.
Berikut merupakan hasil dari syntax pembentukan Confusion Matrix dan didapatkan nilai akurasi
0,9481, tetapi nilai untuk specificity tidak diketahui dikarenakan tidak memiliki real predictive power untuk
memprediksi pasien memiliki stroke atau tidak. Maka, diperlukan langkah selanjutnya yaitu tahap oversampling
yang akan dijabarkan pada bagian berikut.
Reference
Prediction No Yes
No 931 0
Yes 51 0
Accuracy : 0.9481
95% CI : (0.9323, 0.9611)
No Information Rate : 1
P-Value [Acc > NIR] : 1
Kappa : 0
Sensitivity : 0.9481
Specificity : NA
Pos Pred Value : NA
Neg Pred Value : NA
Prevalence : 1.0000
Detection Rate : 0.9481
Detection Prevalence : 0.9481
Balanced Accuracy : NA
'Positive' Class : No
Gambar 61 Evaluasi Model Random forest
Setelah mendapatkan oversampling data, maka akan dilakukan partisi oversampling data menjadi data
training dan data testing, lalu dibentuk model random forest pertama dengan oversampling data dengan syntax
sebagai berikut.
Gambar 64 Syntax R untuk Membentuk Model Random forest dengan Oversampling Data
Berikut merupakan hasil dari syntax untuk random forest pertama dengan oversampling data dan
didapatkan OOB estimate of error rate sebesar 1.11% dan Confusion Matrix sebagai berikut.
Call:
randomForest(formula = stroke ~ . - id, data = data_train2, ntree = 2000,
mtry = 5)
Type of random forest: classification
Number of trees: 2000
No. of variables tried at each split: 5
OOB estimate of error rate: 1.11%
Confusion matrix:
No Yes class.error
No 3659 60 0.01613337
Yes 0 1681 0.00000000
Gambar 65 Hasil Pengolahan Data berupa Model Random forest dengan Oversampling Data
Selanjutnya, akan dilakukan iterasi jumlah variabel optimal pada model random forest pertama dan
dibentuk plot untuk melihat error values terendah dengan syntax sebagai berikut.
Gambar 66 Syntax R untuk Membentuk Plot dengan Error Values Terendah pada Model Random
forest Pertama
Berikut merupakan hasil dari syntax untuk melihat jumlah variabel optimal pada model random forest
pertama. Didapatkan jumlah variabel paling optimal adalah lima variabel independen, karena pada index
dengan nilai 5 memiliki error values paling rendah.
Setelah diketahui jumlah variabel optimal yang dapat digunakan, maka akan dilakukan pembentukan
model random forest kedua dengan syntax sebagai berikut.
Gambar 68 Syntax R untuk Pemebntukan Model Random forest dengan Jumlah Variabel Optimal
Berikut merupakan hasil dari syntax untuk pembentukan model random forest kedua. Didapatkan nilai
OOB estimate of error rate sebesar 1,06% dan Confusion Matrix sebagai berikut.
Call:
randomForest(formula = stroke ~ . - id, data = data_train2, ntree = 2000,
mtry = 4)
Type of random forest: classification
Number of trees: 2000
No. of variables tried at each split: 5
OOB estimate of error rate: 1.06%
Confusion matrix:
No Yes class.error
No 3662 57 0.0153267
Yes 0 1681 0.0000000
Gambar 69 Confusion Matrix Model Random forest Kedua dengan Jumlah Variabel Optimal
Setelah itu, akan dilakukan pencarian dan plotting jumlah decision tree yang optimal pada model random
forest kedua dengan syntax sebagai berikut.
<- data.frame(
Trees = rep(1:nrow(forest2$err.rate)),
Error = forest2$err.rate[,'OOB']
)
minerrorpoints <- errorrate$Trees[errorrate$Error == min(errorrate$Error)]
minerrorpoints
errorrate%>%
ggplot(aes(x = Trees, y = Error))+geom_line(color
= 'hotpink')+geom_vline(xintercept = minerrorpoints[1])
Gambar 70 Syntax R untuk Pencarian Jumlah Decision tree Optimal pada Model Random forest
Kedua
Berikut merupakan hasil dari syntax dari plotting jumlah decision tree yang optimal pada model random
forest kedua.
Gambar 71 Grafik yang Menunjukkan Jumlah Decision tree dengan OOB Error Terendah pada Model
Random Foresr Kedua
Selanjutnya, akan dibentuk model random forest ketiga dengan menggunakan jumlah decision tree
optimal dan jumlah variabel optimal dengan syntax sebagai berikut.
Gambar 72 Syntax R untuk Pemebntukan Model Random forest Ketiga dengan Jumlah Variabel
Optimal
Berikut merupakan hasil dari syntax untuk pembentukan model random forest ketiga dengan
menggunakan jumlah decision tree optimal dan jumlah variabel optimal. Didapatkan nilai OOB estimate of error
sebesar 1.22% dan Confusion Matrix sebagai berikut.
Call:
randomForest(formula = stroke ~ . - id, data = data_train2, ntree =
minerrorpoints[1], mtry = 5)
Type of random forest: classification
Number of trees: 203
No. of variables tried at each split: 5
OOB estimate of error rate: 1.22%
Confusion matrix:
No Yes class.error
No 3653 66 0.01774671
Yes 0 1681 0.00000000
Gambar 73 Confusion Matrix Model Random forest Ketiga dengan Jumlah Variabel Optimal
Setelah memiliki model random forest ketiga, maka akan dibentuk Confusion Matrix untuk memprediksi
pasien memiliki penyakit stroke dengan syntax sebagai berikut.
Berikut merupakan hasil dari syntax untuk Confusion Matrix dari model random forest ketiga untuk
memprediksi pasien memiliki penyakit stroke. Didapatkan nilai akurasi sebesar 0,9969, nilai sensitivitas sebesar
1.0 dan nilai spesifisitas sebesar 0,9444.
Reference
Prediction No Yes
No 928 3
Yes 0 51
Accuracy : 0.9969
95% CI : (0.9911, 0.9994)
No Information Rate : 0.945
P-Value [Acc > NIR] : <2e-16
Kappa : 0.9698
Sensitivity : 1.0000
Specificity : 0.9444
Pos Pred Value : 0.9968
Neg Pred Value : 1.0000
Prevalence : 0.9450
Detection Rate : 0.9450
Detection Prevalence : 0.9481
Gambar 76 Syntax R untuk Membangun Model Confusion Matrix Model Naïve Bayes
Berikut adalah hasil perhitungan Confusion Matrix untuk model Naïve Bayes.
Confusion Matrix and Statistics
prediksi
0 1 0
1100 34
1 76 17
Accuracy : 0.9104
95% CI : (0.893, 0.9257)
No Information Rate : 0.9584
P-Value [Acc > NIR] : 1
Kappa : 0.1928
Sensitivity : 0.9354
Specificity : 0.3333
Pos Pred Value : 0.9700
Neg Pred Value : 0.1828
Prevalence : 0.9584
Detection Rate : 0.8965
Detection Prevalence : 0.9242
Balanced Accuracy : 0.6344
'Positive' Class : 0
Naïve Bayes membangun model dengan menghitung probabilitas untuk setiap kejadian. Probabilitas
setiap kejadian untuk setiap variabel dihitung, untuk masing-masing sample yang mengalami stroke dan non-
penderita stroke. Kemudian, hasilnya dikali dengan probabilitas kejadian stroke atau non-stroke keseluruhan.
Model membandingkan nilai hasil perkalian probabilitas tersebut. Jika nilainya lebih besar untuk penderita
stroke, maka akan diprediksikan data tersebut adalah orang yang mengalami stroke, begitu pula sebaliknya.
Dengan menggunakan metode random forest, didapatkan nilai akurasi sebesar 99.69%, nilai sensitivitas
sebesar 100%, dan nilai spesifisitas sebesar 94.44%. Nilai sensitivitas sebesar 100% menandakan bahwa model
dapat memprediksi 100% dengan tepat bahwa pasien memiliki penyakit stroke ke dalam klasifikasi pasien
memiliki penyakit stroke. Nilai spesifisitas sebesar 94.44 menandakan bahwa model dapat memprediksi sebesar
94.44% dengan tepat bahwa pasien tidak memiliki penyakit stroke ke dalam klasifikasi pasien tidak memiliki
penyakit stroke. Maka, didapatkan nilai akurasi yang menandakan bahwa model prediksi menggunakan random
forest ini dapat memprediksi klasifikasi dengan tepat sebesar 99.69%. Tidak hanya itu, dari model prediksi
menggunakan random forest ini didapatkan tiga variable importance tertinggi yaitu ‘age’, ‘avg_glucose_level’,
dan ‘bmi’ sebagai variabel independen. Variabel ‘age’ adalah usia pasien, variabel ‘avg_glucose_level’ adalah
rata-rata kadar glukosa dalam darah, dan variabel ‘bmi’ adalah indeks massa tubuh pasien. Variabel ini sama
halnya dengan yang ditemukan pada model decision tree.
Jika dilakukan prediksi menggunakan model binary logistic regression, persentase akurasi yang
didapatkan adalah sebesar 95,72%, nilai sensitivitas sebesar 0% dan spesifisitas sebesar 100%. Nilai spesifisitas
atau dapat disebut juga dengan true negative rate (TNR) sebesar 100% menandakan bahwa seluruh pasien yang
tidak memiliki penyakit stroke diklasifikasikan ke dalam kelompok pasien yang tidak memiliki penyakit stroke.
Akan tetapi, didapatkan nilai sensitivitas sebesar 0% yang berarti tidak ada sama sekali penderita penyakit
stroke yang diklasifikasikan ke dalam kelompok penderita penyakit stroke. Hal ini dapat terjadi karena beberapa
faktor, salah satunya proporsi data yang digunakan untuk training dan juga testing sehingga model ‘mencoba’
untuk meningkatkan percentage of accurate classification (PAC) (Yarnold, 2018).
Sementara itu, dengan menggunakan metode Naïve Bayes, didapatkan nilai akurasi sebesar 91,04%, nilai
sensitivitas sebesar 93,54%, dan nilai spesifisitas sebesar 33,33%. Nilai akurasi sebesar 91,04% menandakan
bahwa dari data testing yang diuji, 91,04%-nya dapat diklasifikasikan sesuai data aslinya, nilai ini diperoleh dari
𝑇𝑃+𝑇𝑁
. Meskipun nilainya cukup baik, namun nilai keakuratan tersebut tidak cukup untuk menilai
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁
validitas suatu model. Maka, peninjauan dari sensitivity dan specificity diperlukan. Dari keduanya, parameter
yang tidak cukup baik adalah specificity. Interpretasinya adalah dari data yang diklasifikasikan bukan sebagai
penderita stroke, ternyata 66,66% (100% - 33,33%) di antaranya justru merupakan penderita stroke. Hal ini
dapat disebabkan karena dataset tersebut yang mengandung sample penderita stroke yang imbalance dengan
penderita non-stroke. Akibatnya, prevalensi penderita stroke dari seluruh sample sebagai faktor pengali yang
digunakan mempengaruhi hasil akhir perkalian dalam menemukan probabilitas sebuah data dimasukkan ke
klasifikasi stroke atau tidak. Pada dunia kesehatan, nilai specitivity yang rendah ini berbahaya karena penderita
stroke mengetahui bahwa dirinya tidak menderita stroke di saat orang tersebut sebenarnya membutuhkan
penanganan/perawatan yang tepat. Beberapa keuntungan dari penggunaan tools ini adalah Naïve Bayes
bekerja dengan cepat dan cocok untuk memecahkan masalah prediksi multi-class. Jika asumsi independensi
antar variabelnya benar, tools ini dapat bekerja lebih baik daripada model lain dan hanya membutuhkan lebih
sedikit data pelatihan. Maka dari itu, jika peneliti sudah mengetahui bahwa terdapat beberapa variabel yang
signifikan dan tidak signifikan dalam suatu dataset, lebih baik menghindari penggunaan tools Naïve Bayes.
Selain itu, Naïve Bayes lebih cocok untuk variabel input yang berjenis faktor dibandingkan variabel numerik.
Shergio Rizkyputra - 13419061 35
Ujian Akhir Semester: TI4141 – Analitika Data
Berikut adalah rekapitulasi nilai akurasi, sensitivitas, dan spesifisitas untuk masing-masing model
alternatif sebagai bagian dari task prediction yang digunakan.
Strategi ini diharapkan dapat menghasilkan keluaran yang diinginkan untuk 3-4 tahun mendatang, yaitu
2025-2026. Data terkini pada tabel bersumber dari data tahunan Badan Penelitian dan Pengembangan
Kesehatan Republik Indonesia pada tahun 2020. Konsiderasi pemilihan target strategi tersebut adalah memiliki
tingkat konversi kematian di atas 1% dari populasi per kelasnya pada bagian latar belakang. Nilai persentase atau
jumlah pada key performance indicator (KPI) bersifat estimasi dari minimal lebih dari rata-rata perubahan
persentase atau jumlah yang terjadi per tahunnya untuk tiap strategi, sehingga strategi tidak terlalu mudah
ataupun terlalu sulit untuk digapai. Selain itu, nilai persentase atau jumlah pada KPI bersifat tentatif karena harus
disesuaikan dengan faktor lainnya, seperti alokasi anggaran pemerintah untuk bidang kesehatan.
6.3 Kesimpulan
Berdasarkan penelitian yang dilakukan, laporan penelitian ini dimulai dengan mencari informasi
mengenai latar belakang permasalahan dan akar permasalahannya. Dalam permasalahan ini, peneliti berperan
sebagai problem solver, sedangkan Kementerian Kesehatan Republik Indonesia (RI) dan Badan Penelitian dan
Shergio Rizkyputra - 13419061 37
Ujian Akhir Semester: TI4141 – Analitika Data
Pengembangan Kesehatan RI sebagai problem solver. Lalu, penelitian dilanjutkan dengan mencari landasan teori
yang relevan dengan permasalahan yang terjadi. Untuk menyelesaikan permasalahan spesifik ini, peneliti
menggunakan task prediction dengan beberapa model alternatif. Pengolahan data dilakuakn untuk mengetahui
karakteristik data, baik dari nilai dan tipe datanya. Untuk mengetahui informasi pada dataset, peneliti melakukan
eksplorasi data dan melakukan analisis data melalui beberapa model alternatif. Setelah dilakukan pengolahan
data, peneliti mengevaluasi setiap model alternatif yang digunakan. Pertimbangan dalam memilih model
alternatif terbaik adalah nilai akurasi, sensitivitasm dan spesifisitasnya. Model alternatif terpilih akan digunakan
untuk membantui stakeholder dalam menentukan strategi preventif terkait penyakit stroke.
Secara garis besar, kesimpulan penelitian ini dinyatakan dalam poin-poin berikut.
1. Pre-processing data terdiri dari pembesihan data. Tahap-tahap yang perlu dilakukan dalam
pembersihan data tersebut adalah menghilangkan data yang terduplikasi, mengganti jenis value pada
variabel yang kurang tepat, dan menghilangkan missing value. Untuk selengkapnya, pre-processing
dijabarkan pada subbab 3.2.
2. Visualisasi (eksplorasi) data dilakukan pada faktor-faktor tertentu pada dataset. Berdasarkan eksplorasi
data didapatkan fakta sebagai berikut.
a) Penyakit tidak menular stroke umumnya diderita oleh seseorang berumur lebih dari 60 tahun.
Fakta pada dataset ini identik dengan kondisi sebenarnya yang ada di Indonesia, di mana
tingkat konversi kematian akibat stroke adalah sebesar 4,6% untuk seseorang berusia lebih dari
65 tahun dan semakin meningkat seiring pertambahan usia.
b) Seseorang yang memiliki tingkat gula darah yang tinggi memiliki kemungkinan besar untuk
menderita stroke. Nilai tengah dari persebaran tingkat gula darah rata-rata penderita stroke
umumnya lebih dari 120 bmi.
c) Rasio antara pengidap stroke berdasarkan status pernikahannya adalah 1,88 kali lipat
seseorang yang telah menikah mengidap stroke.
d) Rasio antara pengidap stroke berdasarkan jenis kelaminnya adalah 1,44 kali lipat berjenis
kelamin perempuan.
Berkaitan dengan eksplorasi dan visualisasi data, peneliti menjabarkan bagian tersebut selengkapnya
pada subbab 4.1.
3. Langkah – langkah pemodelan data dengan task prediction menggunakan beberapa model alternatif,
yaitu model decision tree, binary logistic regression (binomial logit), random forest, dan Naïve Bayes.
Setiap model akan dijabarkan langkah-langkah pembuatannya hingga ditampilkan tools visualisasinya.
Untuk selengkapnya, penjabaran langkah-langkah pembangunan model hingga evaluasi model terdapat
pada subbab 4.2, subbab 5.1, subbab 5.2, subbab 5.3, dan subbab 5.4.
4. Tools yang terbaik untuk memprediksi (prediction) permasalahan memprediksi gejala stroke pada
pasien adalah model random forest dengan nilai akurasi sebesar 99.69%, nilai sensitivitas sebesar 100%,
dan nilai spesifisitas sebesar 94.44%. Untuk selengkapnya, penjabaran analisis dan evaluasi untuk tiap
model terdapat pada subbab 6.1.
5. Berdasarkan hasil prediksi, tiga faktor signifikan yang mempengaruhi penyakit stroke adalah usia pasien,
rata-rata kadar glukosa dalam darah, dan indeks massa tubuh pasien. Ketiga faktor tersebut dapat
menjadi perhatian dari Kementerian Kesehatan Republik Indonesia dan Badan Penelitian dan
Pengembangan Kesehatan Republiki Indonesia untuk merumuskan strategi pencegahan stroke. Peneliti
merekomendasikan beberapa strategi bersifat perventif yang dapat digunakan oleh stakeholder yaitu
sebagai berikut.
a) Penurunan konsumsi tembakau
b) Penurunan tingkat pengidap diabetes dan obesitas
c) Penurunan konsumsi makanan dan minuman beralkohol
d) Penurunan asupan garam
e) Peningkatan aktivitas fisik
f) Peningkatan cakupan pengobatan esensial dan teknologi
g) Penurunan tekanan darah tinggi
h) Peningkatan cakupan farmakologis dan konseling
Detail rekomendasi strategi, baik kondisi terkini dan ukuran pencapain masing-masing strategi tersebut,
selengkapnya dijabarkan pada subbab 6.2.
Gambar 78 Hubungan ROC dan AUC (Juliani, Cyril & Ellefmo, Steiner, 2019)
Proporsi testing dan training dataset juga perlu diperhatikan agar didapatkan nilai spesifisitas dan nilai
spesifikasi yang baik. Hal ini dikarenakan logika yang ingin dibangun peneliti pada algoritma adalah membiarkan
alogirtma tersebut mempelajari data terdahulu untuk kemudian diuji di test dataset. Maka, pada training
dataset, algoritma akan mencari korelasi antara variabel-variabel pada dataset. Setelah korelasi ini terbentuk,
peneliti akan mengujinya ke test dataset. Jika algoritma mempelajari data terlalu keras, algoritma akan
melalukan overfitting yang akan menghasilkan korelasi yang terlalu sempurnan atau bahkan tidak terbentuk
sama sekali.
DAFTAR PUSTAKA
Badan Litbangkes Kementerian Kesehatan Indonesia. (2018 & 2020). Penyakit Tidak Menular. Retrieved from
Litbang Kemenkes: https://www.litbang.kemkes.go.id
Daellenbach, H., & McNickle, D. (2005). Management Science: Decision Making Through System Thinking. New
York: Palgrave McMillan.
Gartner Newsroom. (2012). Gartner Survey Shows Organizations Are Slow to Advance in Data and Analytics.
Retrieved from Gartner: goo.gl/pAhfbt
Hair, J., Black, W., Babin, B., & Anderson, R. (2014). Multivariate Data Analysis. Harlow: Pearson Education.
O'Brien, J., & Marakas, G. (2011). Management Information System (10th ed.). New York: McGraw-Hill/Irwin.
Salgado, C., Azevedo, C. &., & Hugo & Vieira, S. (2016). Missing Data.
Stolcke, A., Zheng, J., Wang, W., & Abrash, V. (2011). Srilm at sixteen: update and outlook. In Proceedings of IEEE
Automatic Speech Recognition and Understanding Workshop.
Techwalla. (n.d.). Advantages & Disadvantages of Microsoft SQL. Retrieved from Techwalla:
https://www.techwalla.com/articles/advantages-disadvantages-of-microsoft-sql
Whitten, J. L., & Bentley, L. D. (2007). Systems Analysis and Design Methods (7th ed.). New York: McGraw-Hill.
Yarnold, P. (2018). Visualizing Application and Summarizing Accuracy of ODA Models. 85-89.