Tutorial

Random Forest Regression : Studi Kasus di R

Hai sobat Exsight! Selamat datang di artikel kami. Setelah sebelumnya kita telah mempelajari konsep dasar dari algoritma Random Forest Regression pada artikel “Random Forest Regression: Memahami Konsep Dasar“, kini saatnya kita melangkah lebih jauh dan menerapkan pengetahuan tersebut dalam praktik. Dalam dunia analisis data, kemampuan untuk membuat prediksi yang akurat adalah kunci untuk mengambil keputusan yang berbasis data. Random Forest merupakan salah satu metode yang paling populer dan efektif untuk pemodelan regresi, yang mampu menangani data yang kompleks dan non-linier.

Hari ini, kita akan fokus pada penggunaan Random Forest Regression di R, sebuah bahasa pemrograman yang banyak digunakan dalam statistik dan analisis data. Untuk memberikan gambaran yang lebih jelas, kita akan menggunakan studi kasus nyata yang menarik, yaitu dataset Boston Housing. Dataset ini terkenal di kalangan analis data karena mencakup berbagai fitur yang mempengaruhi harga median rumah di Boston.

Melalui tutorial ini, Anda akan belajar langkah demi langkah mulai dari memuat dan menjelajahi dataset, membangun model regresi menggunakan package randomForest(), hingga mengevaluasi kinerja model dan memahami faktor-faktor yang mempengaruhi prediksi. Dengan pemahaman yang mendalam tentang proses ini, Anda akan dapat menerapkan teknik Random Forest Regression dalam proyek analisis data Anda sendiri.

Mari kita mulai perjalanan ini dan eksplorasi bagaimana Random Forest Regression dapat membantu kita memprediksi harga rumah serta memahami dinamika yang ada di balik data tersebut. Bersiaplah untuk menggali lebih dalam ke dalam dunia regresi dan pembelajaran mesin di R!

Package randomForest() untuk Random Forest Regression

Random Forest Regression di R dapat menggunakan package randomForest(). Package randomForest() adalah salah satu package utama di R yang digunakan untuk membangun model Random Forest baik untuk klasifikasi maupun regresi. Paket ini mengimplementasikan algoritma Random Forest yang dikembangkan oleh Leo Breiman, dengan fitur-fitur seperti pemilihan variabel otomatis dan estimasi pentingnya variabel (variable importance). Kelebihan dari randomForest() adalah kemampuannya untuk bekerja dengan dataset besar dan komplek, serta kemampuan untuk mengurangi overfitting yang sering terjadi pada model pohon keputusan tunggal.

Syntax Umum

model <- randomForest(formula, data = NULL, ..., ntree = 500,
                          mtry = if (!is.null(y) && !is.factor(y))
                          max(floor(ncol(x) / 3), 1) else floor(sqrt(ncol(x))),
                          replace = TRUE, sampsize = if (replace) nrow(x) else ceiling(.632 * nrow(x)),
                          nodesize = 5, maxnodes = NULL,
                          importance = FALSE, proximity = FALSE,
                          keep.forest = TRUE, ...)

Berikut ini penjelasan syntax diatas

  • formula
    • Deskripsi : Menentukan model regresi menggunakan notasi formula R
  • data
    • Deskripsi : Merupakan data frame yang berisi dataset yang akan digunakan untuk melatih model. Dataset ini harus berisi variabel target dan semua variabel prediktor yang dirujuk dalam formula.
    • Tipe : `data.frame` atau `NULL`
  • ntree
    • Deskripsi : Menentukan jumlah pohon yang akan dibangun dalam random forest. Semakin banyak pohon yang dibangun, semakin stabil dan akurat model, meskipun juga akan memerlukan lebih banyak waktu untuk pelatihan.
    • Nilai Default : `500`
  • mtry
    • Deskripsi : Menentukan jumlah variabel yang dipilih secara acak pada setiap split (pembelahan) di pohon. Untuk regresi, nilai ini biasanya adalah sepertiga dari jumlah total variabel (fitur).
    • Perhitungan : Jika `y` (variabel target) tidak NULL dan bukan faktor, maka `mtry` dihitung sebagai `max(floor(ncol(x) / 3), 1)`, yang memastikan bahwa setidaknya 1 variabel dipilih. Jika `y` adalah faktor (mengindikasikan model klasifikasi), maka dihitung sebagai `floor(sqrt(ncol(x)))`.
    • Nilai Default : Tergantung pada tipe variabel target
  • replace
    • Deskripsi : Menentukan apakah pengambilan sampel dilakukan dengan penggantian (replacement) saat membangun pohon. Jika TRUE, data yang sama dapat muncul beberapa kali dalam satu pohon; jika FALSE, setiap pohon akan dilatih pada subset yang berbeda dari data.
    • Nilai Default : `TRUE`
  • sampsize
    • Deskripsi : Menentukan ukuran sampel yang akan digunakan untuk membangun setiap pohon. Jika `replace` adalah TRUE, ukuran sampel sama dengan jumlah baris dalam `x`; jika FALSE, ukuran sampel diatur ke sekitar 63,2% dari total jumlah baris (seperti pada bootstrap).
    • Perhitungan : `if (replace) nrow(x) else ceiling(.632 * nrow(x))`
    • Nilai Default : Sesuai dengan rumus di atas
  • nodesize
    • Deskripsi : Menentukan ukuran minimum sampel di node daun. Ini mengontrol kedalaman pohon dan dapat mempengaruhi kemampuan model untuk generalisasi. Nilai yang lebih kecil akan menghasilkan pohon yang lebih dalam dan lebih rumit.
    • Nilai Default : `5` (ukuran minimum untuk regresi)
  • maxnodes
    • Deskripsi : Mengatur jumlah maksimum node pada setiap pohon. Membatasi jumlah node dapat mencegah overfitting, tetapi juga bisa mengurangi kompleksitas model.
    • Nilai Default : `NULL` (tidak ada batas)
  • importance
    • Deskripsi : Menentukan apakah pentingnya variabel akan dihitung. Jika TRUE, model akan menghitung dan mengembalikan informasi tentang pentingnya setiap variabel dalam prediksi.
    • Nilai Default : `FALSE`
  • proximity
    • Deskripsi : Jika TRUE, menghitung matriks kedekatan antar sampel berdasarkan pohon yang dibangun. Ini dapat digunakan untuk analisis lebih lanjut, seperti pengelompokan atau visualisasi.
    • Nilai Default : `FALSE`
  • keep.forest
    • Deskripsi : Menentukan apakah model akan disimpan setelah pelatihan. Jika TRUE, Anda dapat melakukan prediksi lebih lanjut menggunakan model ini.
    • Nilai Default : `TRUE`

Studi Kasus: Prediksi Harga Median Rumah di Boston dengan Menggunakan Random Forest Regression

Deskripsi Masalah

  • Latar Belakang : Harga rumah merupakan salah satu indikator ekonomi yang sangat penting, karena tidak hanya memengaruhi keputusan pembelian dan penjualan properti, tetapi juga berdampak pada kebijakan ekonomi yang lebih luas. Dalam konteks investasi properti, memahami faktor-faktor yang memengaruhi harga rumah dapat memberikan wawasan berharga bagi pembeli, penjual, dan pembuat kebijakan. Misalnya, pembeli rumah perlu mempertimbangkan berbagai variabel, seperti lokasi, fasilitas, dan lingkungan sosial yang dapat mempengaruhi nilai properti dalam jangka panjang. Begitu juga, penjual harus menyadari dinamika pasar untuk menentukan harga yang kompetitif dan menarik bagi pembeli. Sementara itu, bagi pembuat kebijakan, analisis harga rumah yang tepat dapat membantu dalam perumusan kebijakan perumahan yang berkelanjutan dan aksesibel. Dalam studi ini, kita akan memanfaatkan dataset Boston Housing yang terkenal, yang menyimpan informasi lengkap tentang berbagai karakteristik lingkungan dan sosial yang berhubungan dengan harga median rumah (medv). Dataset ini mencakup fitur-fitur seperti jumlah kamar, tingkat kriminalitas, jarak ke pusat kota, dan banyak variabel lainnya. Dengan membangun model regresi menggunakan teknik Random Forest, kita akan berusaha untuk memprediksi harga rumah dan mengeksplorasi faktor-faktor kunci yang berkontribusi terhadap fluktuasi harga, sehingga memberikan panduan yang berguna bagi semua pihak yang terlibat dalam pasar perumahan.
  • Tujuan : Tujuan dari analisis ini adalah untuk membangun model regresi yang akurat untuk memprediksi harga median rumah di Boston. Model ini akan membantu kita memahami faktor-faktor yang mempengaruhi harga rumah dan memberikan prediksi untuk harga rumah baru.

Dataset

Dataset Boston Housing, yang dapat diakses melalui paket MASS di R, adalah salah satu dataset yang paling terkenal dan sering digunakan dalam analisis regresi. Terdiri dari 506 baris dan 14 kolom, dataset ini memberikan informasi tentang berbagai karakteristik lingkungan dan sosial yang dapat mempengaruhi harga median rumah di Boston. Berikut adalah penjelasan lebih lengkap mengenai fitur-fitur utama yang terdapat dalam dataset ini:

  • crim: Tingkat kriminalitas per kapita di kota.
  • zn: Persentase luas perumahan yang memiliki lahan lebih dari 25.000 kaki persegi.
  • indus: Proporsi area bisnis non-ritel per kota.
  • chas: Variabel dummy Sungai Charles (1 jika wilayah berbatasan dengan sungai, 0 jika tidak).
  • nox: Konsentrasi nitrogen oksida (bagian per 10 juta).
  • rm: Rata-rata jumlah kamar per rumah.
  • age: Proporsi unit hunian yang dimiliki pemilik dan dibangun sebelum tahun 1940.
  • dis: Rata-rata tertimbang dari jarak ke lima pusat pekerjaan di Boston.
  • rad: Indeks aksesibilitas ke jalan raya radial.
  • tax: Tarif pajak properti penuh per $10.000.
  • ptratio: Rasio murid-guru di setiap kota.
  • black: 1000 ((Bk – 0.63)^2), di mana (Bk) adalah proporsi populasi kulit hitam per kota.
  • lstat: Persentase populasi berstatus sosial ekonomi rendah.
  • medv: Nilai median rumah milik pemilik dalam ribuan dolar.

Analisis dan Pembahasan

Langkah 1: Memuat Data dan Library

# Memuat library yang dibutuhkan
library(randomForest)
library(MASS)
library(caret)

# Memuat dataset Boston Housing
data("Boston")

Langkah 2: Eksplorasi Data

Pada tahap ini kita akan mengetahui ringkasan data, struktur data dan salah satu contoh visualisasi hubungan antara variabel X dengan variabel y nya

# Melihat ringkasan data
summary(Boston)

Ringkasan statistik untuk dataset Boston Housing menunjukkan beberapa karakteristik penting pada variabel-variabel utama. Tingkat kejahatan (crim) memiliki rata-rata yang jauh lebih tinggi dari median, mengindikasikan adanya nilai ekstrem di beberapa wilayah. Persentase lahan perumahan besar (zn) didominasi oleh nilai nol, namun ada beberapa wilayah dengan lahan luas, hingga 100 persen. Persentase lahan non-perumahan (indus) bervariasi dengan rata-rata 11,14 persen. Variabel biner chas, yang menunjukkan kedekatan dengan Sungai Charles, menunjukkan bahwa hanya sebagian kecil wilayah berbatasan dengan sungai tersebut. Konsentrasi nitrogen oksida (nox) memiliki rata-rata dan median yang mendekati, menunjukkan distribusi yang relatif simetris. Tahap selanjutanya akan dilihat struktur data boston seperti berikut:

# Melihat struktur data
str(Boston)

Output dari fungsi str(Boston) menunjukkan bahwa dataset Boston Housing terdiri dari 506 observasi dan 14 variabel. Variabel chas (dekat Sungai Charles) dan rad (indeks aksesibilitas ke jalan raya) bertipe integer, sedangkan variabel lainnya bertipe numerik. Tipe dari variabel-variabel di atas sudah sesuai untuk melakukan analisis Random Forest Regression. Oleh karena itu, tidak perlu ada penyesuaian tipe data. Setelah mengetahui ringkasan dan struktur data selanjutnya kita dapat mevisualisasikan fitur-fitur atau variabel-variabel di atas. Untuk mevisualisasikan hubungan antar dua variabel dapat menggunakan code sebagai berikut:

# Visualisasi hubungan antara jumlah kamar dan harga median rumah
library(ggplot2)
ggplot(Boston, aes(x = rm, y = medv)) + 
  geom_point() + 
  geom_smooth(method = "lm", col = "blue") +
  labs(title = "Hubungan Jumlah Kamar dan Harga Median Rumah",
       x = "Rata-rata Jumlah Kamar",
       y = "Harga Median Rumah")

Dari grafik hubungan jumlah kamar dan harga median rumah dapat dilihat bahwa semakin besar rata-rata jumlah kamar maka semakin tinggi harga median rumah. Tahap selanjutnya yaitu membagi dataset.

Kita juga dapat membuat scatterplot yang menggambarkan beberapa variabel sekaligus

# Pilih variabel yang relevan untuk ditampilkan bersama medv
selected_vars <- c("medv", "crim", "rm", "age", "dis","lstat")

# Menggunakan fungsi pairs untuk membuat matriks scatterplot
pairs(Boston[, selected_vars], 
      main = "Matriks Scatterplot medv dengan Variabel Lain",
      pch = 21,  # Menggunakan titik dengan lingkaran
      col = "blue",  # Menggunakan warna biru solid
      bg = rgb(0, 0, 1, 0.5),  # Latar belakang titik dengan transparansi
      lower.panel = NULL)  # Menyembunyikan panel bawah

Output di atas menunjukan bahwa untuk variabel crime, age, lstat semakin meningkat nilainya maka semakin rendah harga median rumah sedangkan untuk variabel rm dan dis menunjukan sebaliknya. Dengan kata lain, semakin meningkatnya tingkat kriminal, umur rumah dan persentase populasi berstatus sosial ekonomi rendah maka semakin rendah harga median rumah. Kemudian semakin meningkatnya jumlah kamar dan rata-rata tertimbang dari jarak ke lima pusat pekerjaan di Boston maka semakin tinggi harga median rumah.

Langkah 3: Membagi Dataset

Pada tahap ini dataset akan dibagi menjadi dua bagian, yaitu data latih sebanyak 80% dan data uji sebanyak 20%. Data latih digunakan untuk membuat model Random Forest Regression sedangkan data uji digunakan untuk memprediksi data.

# Membagi data menjadi data latih (train) dan data uji (test)
set.seed(123)
sample_index <- sample(seq_len(nrow(Boston)), size = 0.8 * nrow(Boston))
dataTrain <- Boston[sample_index, ]
dataTest <- Boston[-sample_index, ]

Langkah 4: Membangun Model Random Forest

Berikut ini adalah model Random Forest Regression yang dibangun berdasarkan satu kali percobaan. Untuk mencari model terbaik, kita bisa melakukan tuning parameter. Namun, pada tahap ini, kita hanya akan fokus pada pembuatan satu model saja.

# Membangun model Random Forest Regression
model_reg <- randomForest(medv ~ ., data = dataTrain, ntree = 100, mtry = 4, importance = TRUE)

# Melihat ringkasan model
print(model_reg)

Model Random Forest Regression pada kode di atas dibangun menggunakan variabel target medv (harga median rumah) dan beberapa variabel prediktor dari dataset dataTrain. Parameter ntree = 500 menentukan jumlah pohon yang digunakan dalam model. Semakin banyak pohon (ntree), umumnya model akan lebih stabil dan akurat, namun waktu komputasi juga akan meningkat. Parameter mtry = 4 menunjukkan bahwa untuk setiap split, empat variabel dipilih secara acak sebagai kandidat untuk membangun pembagian pada setiap node. Hal ini membantu meningkatkan variasi antar pohon dan mengurangi overfitting, yang merupakan kelebihan utama dari Random Forest Regression. Selain itu, importance = TRUE berarti model akan menghitung metrik kepentingan variabel, yaitu pengaruh masing-masing variabel prediktor terhadap variabel target.

Hasil analisis menunjukkan bahwa rata-rata kuadrat residuals adalah 10.77207, yang menggambarkan seberapa baik model ini dapat memprediksi harga median rumah di Boston. Selain itu, model ini menjelaskan 87.24% varians dalam data, menunjukkan bahwa model memiliki kemampuan yang baik dalam menangkap pola dan hubungan antara variabel independen dan harga rumah. Dengan hasil ini, kita dapat menyimpulkan bahwa model Random Forest Regression ini cukup efektif untuk digunakan dalam memprediksi harga median rumah berdasarkan fitur yang tersedia.

Langkah 5: Evaluasi Model

# Mengukur kinerja model pada data uji
predictions <- predict(model_reg, newdata = dataTest)

# Menghitung Mean Squared Error (MSE)
mse <- mean((predictions - dataTest$medv)^2)

# Menghitung Mean Absolute Percentage Error (MAPE)
mape <- mean(abs((predictions - dataTest$medv) / dataTest$medv)) * 100

# Menampilkan hasil
cat("Mean Squared Error (MSE) pada data uji:", mse, "\n")
cat("Mean Absolute Percentage Error (MAPE) pada data uji:", mape, "%\n")

Hasil dari pengukuran kinerja model Random Forest Regression pada data uji menunjukkan bahwa Mean Squared Error (MSE) model adalah sebesar 11.66. MSE adalah ukuran yang menghitung rata-rata kuadrat dari kesalahan antara nilai prediksi dan nilai aktual. Nilai MSE yang lebih rendah menunjukkan bahwa model Random Forest Regression lebih baik dalam memprediksi harga median rumah (medv). Dalam hal ini, MSE sebesar 11.66 menunjukkan bahwa rata-rata kesalahan kuadrat dalam prediksi harga rumah oleh model tidak terlalu besar, yang menandakan bahwa model cukup akurat.

Sementara itu, Mean Absolute Percentage Error (MAPE) model sebesar 11.39% mengindikasikan bahwa, secara rata-rata, prediksi model menyimpang sekitar 11.39% dari nilai aktual harga rumah. MAPE adalah ukuran yang memberikan gambaran lebih jelas tentang akurasi model Random Forest Regression dalam konteks persentase, sehingga lebih mudah dipahami oleh pemangku kepentingan. Nilai MAPE di bawah 15% umumnya dianggap baik dalam analisis prediksi, yang menunjukkan bahwa model mampu memberikan prediksi yang relatif akurat untuk harga rumah di Boston.

Secara keseluruhan, kedua metrik ini menunjukkan bahwa model Random Forest Regression yang dibangun memiliki performa yang baik dalam memprediksi harga median rumah di Boston, dengan kesalahan yang relatif rendah dan dapat diterima dalam konteks analisis harga properti.

Langkah 6: Analisis Pentingnya Variabel

# Menghitung pentingnya variabel
importance <- importance(model_reg)
importance <- as.data.frame(importance)

# Menampilkan pentingnya variabel
print(importance)

IncMSE (Increase in Mean Squared Error): Nilai ini menunjukkan seberapa banyak kesalahan rata-rata kuadrat (MSE) model meningkat jika variabel tersebut dihapus dari model. Dapat dilihat bahwa variabel rm memiliki nilai IncMSE tertinggi sebesar 33.83, yang berarti bahwa jika variabel ini dihapus, MSE model akan meningkat sebesar 33.83. Ini menunjukkan bahwa variabel rm sangat penting dalam memprediksi harga rumah.

IncNodePurity: Nilai ini mengukur seberapa banyak impurity (ketidakmurnian) dalam model berkurang ketika variabel tersebut digunakan untuk membagi pohon. Variabel dengan nilai IncNodePurity yang tinggi menunjukkan bahwa variabel tersebut memiliki kekuatan prediksi yang kuat. Dapat dilihat bahwa rm juga memiliki nilai IncNodePurity tertinggi sebesar 10330.26, yang menunjukkan bahwa variabel ini sangat efektif dalam membedakan harga rumah berdasarkan fitur lainnya.

# Menampilkan plot pentingnya variabel
varImpPlot(model_reg)

Plot menampilkan variabel pada sumbu y dan nilai penting (IncMSE atau IncNodePurity) pada sumbu x. Variabel dengan titik plot yang lebih jauh dari sumbu y menunjukkan kontribusi yang lebih besar dalam model. Dapat dilihat bahwa variabel rm (rata-rata jumlah kamar) memiliki titik plot terjauh, ini menegaskan bahwa variabel tersebut adalah yang paling berpengaruh terhadap prediksi harga median rumah (medv) diikuti oleh variabel lstat, nox, dan seterusnya hingga variabel chas.

Kesimpulan

Kesimpulan dari analisis Random Forest Regression untuk memprediksi harga median rumah di Boston menunjukkan bahwa model yang dibangun memiliki performa yang baik, dengan nilai Mean Squared Error (MSE) sebesar 11.66 dan Mean Absolute Percentage Error (MAPE) sebesar 11.39%. Hal ini menandakan bahwa model dapat memberikan prediksi yang akurat, dengan kesalahan rata-rata yang dapat diterima. Variabel-variabel seperti rata-rata jumlah kamar (rm) dan status sosial ekonomi (lstat) diidentifikasi sebagai faktor kunci yang mempengaruhi harga rumah, sementara variabel chas memiliki tingkat kepentingan yang rendah. Temuan ini memberikan wawasan berharga bagi pembuat kebijakan dan investor dalam pengambilan keputusan terkait pengembangan properti dan kebijakan publik, serta membuka peluang untuk pengembangan model yang lebih lanjut dengan tuning parameter untuk meningkatkan akurasi prediksi.

Referensi

Breiman, L. (2001). Random forestsMachine Learning, 45(1), 5–32. https://doi.org/10.1023/A:1010950718922.

Breiman, L (2002), “Manual On Setting Up, Using, And Understanding Random Forests V3.1”, https://www.stat.berkeley.edu/~breiman/Using_random_forests_V3.1.pdf.

Sampai di sini dulu penjelasan terkait Tutorial Random Forest Regression di R. Apabila sobat Exsight masih ada yang dibingungkan terkait pembahasan pada artikel ini, bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya. See you in the next article yaa!

Random Forest Regression : Studi Kasus di R Read More »

Clustering K-Medoids

Clustering K-Medoids – Hai hai sobat Exsight, seiring berkembangnya zaman kemampuan untuk mengekstrak informasi berharga dari kumpulan data sangatlah penting untuk kita kuasai. Salah satu teknik yang bisa kita gunakan untuk menemukan pola tersembunyi di dalam data adalah clustering. Ketika membicarakan tentang clustering, seringkali metode K-Means menjadi topik utama. Namun, di balik bayang-bayang popularitas K-Means,terdapat metode lain yang tak kalah menariknya untuk menangani data dengan outlier dan noise, yaitu metode clustering K-Medoids. Tanpa berlama-lama lagi, yuk simak artikel ini dengan seksama yaa!

Definisi

Clustering k-medoids adalah salah satu metode clustering yang mirip dengan k-means, tetapi berbeda dalam cara memilih pusat kluster (centroid). Pada k-medoid, pusat kluster dipilih dari data aktual yang ada, bukan dari rata-rata posisi data. Metode clustering K-Medoids menawarkan pendekatan yang lebih kuat dengan memilih pusat kluster dari data yang sebenarnya, bukan sekadar rata-rata. Hal ini menjadikan metode clustering K-Medoids mampu menghasilkan kluster yang lebih representatif, terutama ketika kita berurusan dengan data yang tidak ideal atau memiliki karakteristik unik

Konsep Dasar

Clustering K-Medoids adalah salah satu metode clustering yang digunakan untuk mengelompokkan data ke dalam beberapa kluster berdasarkan kesamaan di antara data-data tersebut. Berikut adalah konsep dasar dari clustering K-Medoids:

  1. Medoid sebagai Pusat Kluster
    Berbeda dengan metode clustering K-Means yang menggunakan rata-rata (mean) sebagai pusat kluster, clustering K- Medoids menggunakan medoid, yaitu data titik yang sebenarnya dalam dataset yang menjadi pusat kluster. Medoid adalah titik yang meminimalkan jarak total ke semua titik lain dalam kluster.
  2. Pengukuran Jarak
    Sama halnya seperti clustering K-Means, pada clustering K-Medoids menggunakan pengukuran jarak untuk menentukan kesamaan antara titik-titik data. Umumnya, jarak Euclidean digunakan, tetapi jenis jarak lain seperti Manhattan distance juga bisa digunakan tergantung pada konteks dan tipe data.
  3. Proses Iteratif:
    • Inisialisasi
      Pilih k data secara acak sebagai medoid awal.
    • Penugasan (Assignment)
      Setiap data dalam dataset ditugaskan ke kluster yang medoidnya paling dekat berdasarkan jarak terpendek.
    • Pembaruan Medoid
      Untuk setiap cluster yang terbentuk, tentukan medoid baru dengan memilih titik yang meminimalkan total jarak dalam kluster tersebut.
    • Iterasi
      Ulangi langkah penugasan dan pembaruan hingga tidak ada perubahan pada medoid, atau hingga perubahan total jarak tidak signifikan.
  4. Kekokohan Terhadap Outlier
    Salah satu kelebihan dari clustering K-Medoids dibandingkan dengan clustering K-Means adalah kekokohannya terhadap outlier atau data ekstrem. Karena medoid adalah titik nyata dari data, metode ini lebih tahan terhadap pengaruh negatif dari data yang berada jauh dari pusat kluster.
  5. Kompleksitas Komputasi
    Clustering K-Medoids biasanya lebih lambat daripada clustering K-Means karena perlu menghitung jarak antara setiap titik data dengan setiap medoid, terutama jika dataset besar. Namun, keunggulan dalam menangani outlier dan memberikan kluster yang lebih representatif menjadikan K-Medoids pilihan yang baik dalam situasi tertentu.

Clustering K-Medoids sering digunakan dalam analisis data yang mengandung noise atau outlier, serta dalam situasi di mana hasil yang lebih stabil dan robust diinginkan dibandingkan dengan K-Means.

Perbedan Clustering K-Medoids & K-Means

Penelitian mengenai clustering seringkali dikaitkan dengan metode K-Means, namun tentunya terdapat perbedaan mendasar antara clustering K-Medoids dan K-Means, yaitu sebagai berikut.

NoAspek PerbedaanClustering K-MedoidsClustering K-Means
1.Pemilihan Pusat ClusterPusat cluster disebut dengan medoid, dimana medoid merupakan salah satu titik data sebenarnya dari dataset yang memiliki total jarak terkecil terhadap semua titik lain dalam cluster tersebut. Medoid selalu merupakan titik data aktual dalam dataset, tidak seperti centroid dalam K-Means.Pusat cluster atau disebut dengan centroid , dimana centroid merupakan rata-rata aritmatika dari semua data dalam satu cluster. Centroid dapat berupa titik data yang bukan bagian dari dataset asli, karena dihitung berdasarkan rata-rata posisi semua titik dalam cluster tersebut.
2.Ketahanan (Robustness) Terhadap OutlierLebih tahan terhadap outliers dan noise. Hal ini dikarenakan medoid adalah titik data yang sebenarnya, pemilihan medoid tidak dipengaruhi oleh outliers secara signifikan. Ini membuat K-Medoids lebih stabil dalam menghadapi dataset yang memiliki nilai ekstrim.Lebih sensitif terhadap outliers dan data yang memiliki noise, karena centroid bisa dipengaruhi oleh nilai ekstrim. Outliers dapat menyebabkan centroid bergerak jauh dari pusat cluster yang sebenarnya.
3.KomputasiLebih memakan waktu komputasi, terutama untuk dataset yang besar, karena harus menghitung total jarak untuk setiap titik data dalam cluster setiap kali mengubah medoid. Proses ini membuat K-Medoids lebih lambat dibandingkan K-Means.Lebih efisien dalam hal komputasi karena perhitungan centroid lebih sederhana dan langsung. Algoritma K-Means biasanya lebih cepat dalam konvergensi.
4.Hasil ClusteringCenderung memberikan hasil clustering yang lebih stabil karena medoid adalah titik data yang sebenarnya, sehingga perubahan dalam dataset atau inisialisasi tidak terlalu memengaruhi hasil akhir secara signifikan.Hasil clustering dapat bervariasi karena centroid yang dihitung dapat berubah dengan dataset yang berbeda atau inisialisasi yang berbeda.

Kelebihan dan Kelemahan

Terdapat beberapa kelebihan dan kelemahan dari algoritma Clustering K-Medoids diantaranya adalah sebagai berikut.

Kelebihan

1. Robust terhadap Outlier
K-Medoids menggunakan medoid sebagai pusat klaster, yang merupakan titik data aktual dari dataset. Berbeda dengan centroid di K-means yang bisa sangat dipengaruhi oleh data ekstrem atau outlier, medoid tidak terpengaruh secara signifikan. Hal ini membuat K-medoids lebih tahan terhadap outlier, sehingga hasil klasterisasi lebih stabil dan representatif.

2. Medoid adalah Titik Data Nyata
Dalam K-medoids, pusat setiap klaster adalah medoid yang dipilih dari titik data yang ada, bukan centroid yang dihitung. Hal ini menjadikan hasil klasterisasi lebih mudah diinterpretasikan karena medoid merupakan elemen dari dataset asli.

3. Stabilitas pada Distribusi Data yang Tidak Merata
Algorima K-Medoids lebih baik dalam menangani situasi di mana data tidak terdistribusi secara merata. Hal ini dikarenakan pemilihan medoid tidak terpengaruh oleh jarak rata-rata yang bisa dipengaruhi oleh ukuran klaster, metode ini bisa memberikan hasil klasterisasi yang lebih konsisten.

Kelemahan

1. Waktu Komputasi Lebih Tinggi
Proses menemukan medoid yang optimal di K-medoids membutuhkan perhitungan jarak antara setiap titik data dengan setiap medoid, dan memerlukan iterasi untuk mengevaluasi biaya total klasterisasi. Ini bisa memakan waktu, terutama untuk dataset yang besar, karena banyaknya perhitungan yang harus dilakukan. Oleh karena itu, K-medoids sering lebih lambat dibandingkan K-means.

2. Tidak Cocok untuk Dataset yang Sangat Besar
Dikarenakan waktu komputasi yang lebih tinggi, K-medoids tidak cocok digunakan untuk dataset dengan jumlah data yang sangat besar. Skalabilitas menjadi masalah karena setiap iterasi membutuhkan pengecekan semua kemungkinan medoid, yang bisa menjadi sangat tidak efisien dengan bertambahnya jumlah data.

3. Pemilihan Medoid Awal yang Sulit
Hasil akhir dari K-medoids bisa dipengaruhi oleh pemilihan medoid awal. Jika medoid awal tidak dipilih dengan baik, algoritma mungkin akan menemukan solusi suboptimal yang tidak merepresentasikan struktur data dengan baik.

Tahapan Algoritma Clustering K Medoids

  1. Menentukan k sebagai banyaknya klaster yang ingin dibentuk.
  2. Membangkitkan k pusat klaster (medoid) secara acak.
  3. Menghitung jarak objek non-medoid dengan medoid pada tiap klaster dan menempatkan tiap objek non-medoid tersebut ke medoid terdekat, kemudian hitung total jaraknya.
  4. Memilih secara acak objek non-medoid pada masing-masing klaster sebagai kandidat medoid baru
  5. Menghitung jarak setiap objek non- medoid baru dan menempatkan tiap objek non-medoid tersebut ke kandidat medoid terdekat, kemudian hitung total jaraknya.
  6. Menghitung selisih total jarak (Stotal jarak), dimana
    Stotal jarak = total jarak pada kandidat medoidbaru – total jarak pada medoid lama
  7. Jika diperoleh nilai Stotaljarak< 0, maka kandidat medoidbaru tersebut menjadi medoidbaru dan jika diperoleh Stotaljarak > 0 iterasi berhenti
  8. Kembali ke langkah (4) sampai (7) sampai tidak terjadi perubahan medoidatau Stotal jarak> 0

Tutorial Clustering K-Medoids dengan Software R

Selengkapnya kita akan mencoba tutorial clustering K-Medoids dengan software R. Adapun studi kasus yang akan kita gunakan yaitu terkait Tindak Pindak Kriminal yang didapatkan dari situs Badan Pusat Statistik Indonesia tahun 2022. Adapun data bisa di-download di sini.
Keterangan terkait data yang digunakan yaitu:
* Tidak terdapat missing value pada data.
* Data terdiri atas 34 observasi.

Clustering K- Medoids

#Load Library

Tahapan awal, sebelum melakukan running syntax di software R terlebih dahulu melakukan load library R.  Adapun syntax R yang digunakan adalah sebagai berikut.

# Import library untuk data wrangling
library(tidyverse)
library(dplyr)

# Import library untuk visualisasi
library(factoextra) # Visualisasi hasil clustering
library(gridExtra) # Visualisasi karakteristik cluster
library(GGally) # Correlation matrix
library(ggiraphExtra)
library(sf) # Read data map
library(plotly) # Interactive Plotting
library(Rtsne)

# Machine Learning - Clustering 
library(cluster)
library(factoextra)
library(mvnTest)

#Load Data

data=read.csv(file.choose(),header=TRUE,sep=",")
rownames(data) <- data$Provinsi
Clustering K- Medoids
Gambar 1. Data

Berdasarkan Gambar 1. terlihat bahwa data yang digunakan terdiri atas 34 data dengan 7 variabel.

#Standarisasi Data

dataclus <- data[,-1]
datafix<-scale(dataclus)
Clustering K- Medoids
Gambar 2. Data Setelah Distandarisasi

#Penentuan Jumlah Cluster (K optimum)

set.seed(1000)

fviz_nbclust(x =datafix, 
             FUNcluster = pam,
             method = 'wss',
             k.max = 10)
Clustering K- Medoids
Gambar 3. Penentuan Jumlah Cluster (K Optimum)

Jumlah cluster optimum (K Optimum) dapat ditentukan juga menggunakan bantuan grafik Elbow, dimana k minimum akan didapat ketika grafik sudah tidak bergerak menurun dengan tajam.
Berdasarkan Gambar 3, terlihat bahwa grafik sudah tidak bergerak menurun dengan tajam ketika pada titik cluster 4 sehingga dapat diartikan jumlah cluster optimum yaitu sebesar 4.

#Hasil Pembagian Cluster

RNGkind(sample.kind = "Rounding")
set.seed(1000)

customer_kmedoid <- pam(x =datafix, k = 4, metric = "euclidean", stand = FALSE)
table(customer_kmedoid$clustering)
fviz_cluster(object = customer_kmedoid, data = datafix)
clustering K- Medoids
Gambar 4. Visualisasi Pembagian Cluster Berdasarkan Provinsi

Hasil pada Gambar 4, menampilkan informasi bahwa terdapat 4 cluster yang terbentuk dalam hal ini terlihat bahwa untuk cluster yang ditandai dengan warna Hijau hanya terdiri atas 1 provinsi yaitu Sumatera Utara. Kemudian untuk cluster yang ditandai dengan warna Ungu terdiri atas Provinsi Jawa Timur, DKI Jakarta, Sumatera Selatan, dan Sulawesi Selatan, sedangkan provinsi-provinsi lainnya terdapat pada cluster yang ditandai dengan warna Merah dan warna Biru.

Clustering K- Medoids
Gambar 5. Jumlah Anggota Tiap Cluster

Secara lebih detail apabila kita perhatikan jumlah Provinsi tiap cluster terlihat seperti pada Gambar 5. dimana terlihat bahwa mayoritas Provinsi terdapat pada cluster 3 sebanyak 17 provinsi, lalu di posisi terbanyak kedua terdapat 12 provinsi pada cluster 1.

Secara lebih pengkategorian cluster untuk masing- masing Provinsi adalah sebagai berikut.

ProvinsiCluster K- Medoid
Aceh1
Sumatera Utara2
Sumatera Barat1
Riau1
Jambi3
Sumatera Selatan4
Bengkulu1
Lampung1
Kep. Bangka Belitung3
Kep. Riau3
DKI Jakarta4
Jawa Barat1
Jawa Tengah1
DI Yogyakarta3
Jawa Timur4
Banten3
Bali3
Nusa Tenggara Barat3
Nusa Tenggara Timur1
Kalimantan Barat3
Kalimantan Tengah3
Kalimantan Selatan1
Kalimantan Timur3
Kalimantan Utara3
Sulawesi Utara1
Sulawesi Tengah1
Sulawesi Selatan4
Sulawesi Tenggara3
Gorontalo3
Sulawesi Barat3
Maluku3
Maluku Utara3
Papua Barat3
Papua1
Tabel 1. Pembagian Cluster Tiap Provinsi

Berdasarkan Tabel di atas selanjutnya kita melakukan profiling cluster untuk mengetahui karakteristik dari setiap cluster . Dalam hal ini kita akan menghitung nilai Rata-Rata Tiap Cluster pada Data Asli yaitu sebagai berikut.

VariabelCluster 1Cluster 2Cluster 3Cluster 4
Nyawa33,50096,00010,94160,750
Fisik951,0005396,000344,2353108,250
Kesusilaan873,5006949,000435,6473284,250
Kemerdekaan2201,33312973,000882,1184950,000
Hak Milik39,50086,00028,882150,750
Narkotika840,0004287,000355,2941921,000
Penipuan210,250904,00094,176219,250
Tabel 2. Nilai Rata- Rata Tiap Cluster pada Data Asli

Berdasarkan Tabel 2. diperoleh informasi bahwa nilai hampir sebagian besar kejahatan (kejahatan nyawa, fisik, kesusilaan, kemerdekaan, Narkotika, dan Penipuan) memiliki nilai rata- rata tertinggi pada Cluster 2 , dalam hal ini hanya terdapat 1 Provinsi yang masuk dalam Cluster 2 yaitu Provinsi Sumatera Utara.

Namun ada 1 kejahatan dengan nilai rata-rata tertinggi di cluster lainnya, yaitu kejahatan Hak Milik dimana nilai rata-rata tertinggi sebesar 150,750 dan terdapat pada cluster 4. Adapun cluster 4 terdiri atas 4 provinsi yaitu Provinsi Sumatera Selatan, DKI Jakarta, Jawa Timur, dan Sulawesi Selatan.

Referensi

Nahdliyah, M., Widiharih, T., & Prahutama, A. (2019). Metode K- Medoids Clustering dengan Validasi Silhouette Index dan C- Index (Studi Kasus Jumlah Kriminalitas Kabupaten/Kota di Jawa Tengah Tahun 2018). Jurnal Gaussian, Vol.8, No.2, 161 – 170.

Oktarina, C., Notodiputro, K., & Indahwati. (2020). Comparison of K- Means Clustering Method and K- Medoids on Twitter Data. Indonesian Journal of Statistics and Its Applications, Vol.4, No.1, 189- 202.

https://rpubs.com/Anoe/cluster-kmeans-kmedoids

Finally, sampai sudah nih kita di penghujung artikel, sekian dulu ya penjelasan terkait Clustering K- Medoids . Apabila masih ada yang dibingungkan bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya. Bye bye!

Clustering K-Medoids Read More »

Analisis Survival Cox Proportional Hazard dengan SPSS

Hai hai sobat Exsight, masih ingat gak nih? Pada beberapa artikel yang lalu, kita pernah membahas terkait suatu analisis statistika yang berkaitan dengan ketahanan hidup. Yapss analisis tersebut bernama analisis survival. Dulu kita pernah membahas pada artikel Analisis Survival Cox Proportional Hazard. Melanjutkan dari artikel sebelumnya, sekarang kita akan membahas lebih detail, di mana dalam hal ini berfokus pada penerapan analisis survival Cox Proportional Hazard menggunakan software SPSS.

Tanpa berlama- lama lagi cuss simak artikel kali ini dengan seksama yaa!

Konsep Dasar

Analisis survival adalah metode statistik yang digunakan untuk menganalisis data di mana hasil utamanya adalah waktu sampai suatu peristiwa terjadi. Peristiwa ini bisa berupa kematian, kegagalan produk, kambuhnya penyakit, atau kejadian penting lainnya. Secara umum konsep dasar dan cara kerja analis survival dapat dilihat pada Gambar 1.

analisis survival
Gambar 1. Konsep Dasar Analisis Survival

Data Survival
Analisis survival diawali dari adanya data survival. Data survival melibatkan waktu hingga suatu kejadian (misalnya, kematian, kambuhnya penyakit, kegagalan mesin) terjadi.

Distribusi Data (Data Distribution)
Jika data mengikuti distribusi tertentu, kita menggunakan Model Survival Parametrik (Parametric Survival Model). Jika data tidak mengikuti distribusi tertentu, kita lanjut ke langkah berikutnya yaitu pengecekan asumsi Proportional Hazards (PH).

Asumsi Proportional Hazards (PH Assumption)

Jika asumsi Proportional Hazards (PH) dipenuhi, kita menggunakan Model Cox Proportional Hazards (Cox PH).
Pada model Cox PH, kita bisa memilih antara:
Model Interaksi (Interaction Model): Model yang mempertimbangkan interaksi antar variabel.
Model Tanpa Interaksi (No Interaction Model): Model yang tidak mempertimbangkan interaksi antar variabel.

Jika asumsi Proportional Hazards (PH) tidak dipenuhi, kita memiliki dua pilihan model

  • Model Stratifikasi (Stratified Model) yaitu model yang membagi data ke dalam strata untuk mengatasi pelanggaran asumsi PH.
    Pada model Stratifikasi, kita bisa memilih antara:
    • Model Interaksi (Interaction Model)
    • Model Tanpa Interaksi (No Interaction Model)
  • Model Ekstensi (Extended Model): Model yang memperluas model dasar untuk mengatasi pelanggaran asumsi PH. Pada model Ekstensi, kita juga bisa memilih antara:
    • Model Interaksi (Interaction Model)
    • Model Tanpa Interaksi (No Interaction Model)

Kelebihan dan Kelemahan

Dalam penerapannya, analisis survival Cox Proportional Hazard memiliki beberapa kelebihan dan kelemahan diantaranya adalah sebagai berikut.

Kelebihan

  1. Tidak Memerlukan Asumsi Distribusi Survival
    Model Cox Proportional Hazard tidak memerlukan asumsi spesifik tentang bentuk distribusi waktu survival, sehingga lebih fleksibel dibandingkan model parametrik.
  2. Interpretasi yang Mudah
    Koefisien dalam model Cox Proportional Hazard dapat dengan mudah diinterpretasikan sebagai hazard ratio, yang menunjukkan risiko relatif dari kejadian (event) berdasarkan perubahan pada variabel kovariat.
  3. Kemampuan Menangani Data Censored
    Model Cox Proportional Hazard dapat dengan efektif menangani data yang tidak lengkap atau censored, yang umum terjadi dalam studi survival.
  4. Penyesuaian untuk Kovariat Multiple
    Model Cox Proportional Hazard dapat mengakomodasi banyak kovariat sekaligus, memungkinkan analisis multivariat yang kompleks.

Kelemahan

  1. Kesulitan dalam Menangani Non Proportional Hazard
    Jika asumsi proporsional hazard tidak terpenuhi, harus ada penyesuaian atau model alternatif (seperti stratified model, extended model, model time-dependent covariate) yang bisa memperumit analisis.
  2. Penggunaan yang Kompleks untuk Data yang Besar
    Dalam dataset yang sangat besar atau kompleks, model Cox Proportional Hazard bisa menjadi sulit untuk diimplementasikan dan diinterpretasikan tanpa perangkat lunak statistik yang canggih dan pengetahuan yang mendalam.
  3. Ketergantungan pada Data Berkualitas
    Model Cox Proportional Hazard sangat sensitif terhadap kualitas data. Data yang tidak lengkap atau tidak akurat dapat mempengaruhi hasil analisis secara signifikan.
  4. Tidak Menghitung Efek Waktu Secara Eksplisit
    Sementara model Cox Proportional Hazard menganggap proporsional hazard, ia tidak menghitung perubahan efek kovariat terhadap hazard over time secara eksplisit yang bisa menjadi batasan dalam beberapa analisis.

Tutorial SPSS Analisis Survival Cox Proportional Hazard

Studi Kasus

Studi kasus yang akan kita gunakan pada pembahasan artikel kali ini akan menggunakan dataset terkait Pasien Penderita Penyakit Leukemia.

Leukemia adalah jenis penyakit kanker darah yang terjadi ketika fungsi sumsum tulang mengalami gangguan sehingga menyebabkan produksi sel darah putih yang tidak normal, terlalu banyak, tidak terkendali, dan tidak berfungsi sebagaimana mestinya. Tumbuhnya sel darah putih yang abnormal dan tidak berfungsi normal tersebut menyebabkan tubuh tidak mampu melawan infeksi dan juga menyebabkan terganggunya kemampuan sumsum tulang dalam memproduksi sel darah merah dan trombosit yang penting bagi tubuh.

Selengkapnya dataset terkait Leukemia dapat diakses disini. Adapun keterangan dari masing- masing variabel adalah sebagai berikut.

VariabelKeterangan
SurvtWaktu Survival pasien penderita penyakit Leukemia (dalam satuan tahun)
RxTreatment (Penanganan), terdapat 2 kategori:
* Rx = 0 untuk New Treatment (Penanganan dengan Metode Baru)
* Rx =1 untuk Standard Treatment (Penanganan dengan Metode Lama)
Log_WBCLog White Blood Cell Count (Jumlah Sel Darah Putih dalam Tubuh Pasien)
RelapseStatus Pasien
* 0 untuk Status Censored
* 1 untuk Status Relapse
SexJenis Kelamin, terdapat 2 kategori:
* 1 untuk Perempuan
* 0 untuk Laki- Laki

Sebagai catatan, apabila sobat Exsight perhatikan pada Tabel di atas, untuk variabel Relapse, terdapat 2 kategori yaitu 0 (Censored) dan 1 (Relapse). Penjelasan lebih lengkapnya dari masing- masing kategori tersebut adalah sebagai berikut.

  • 1 untuk Status Relapse
    Kategori ini menunjukkan kejadian yang menjadi fokus utama dalam selang waktu penelitian (kambuhnya penyakit leukemia ).
  • 0 untuk Status Censored
    Untuk kategori 0 menunjukkan kejadian censored dalam hal ini yaitu (kambuhnya penyakit leukemia belum terdeteksi). Istilah “censored” dapat diartikan bahwa selama waktu penelitian, kambuhnya penyakit belum bisa terdeteksi dengan pasti (bisa saja, selama waktu penelitian pasien tiba- tiba pindah rumah sakit, penelitian sudah selesai sebelum terdeteksi kambuhnya penyakit leukemia pada pasien).

Dengan menggunakan status ini, peneliti dapat menganalisis data survival untuk menentukan berbagai hal, seperti probabilitas bertahan hidup tanpa kambuh (relapse-free survival) atau waktu rata-rata sampai terjadinya kejadian tertentu.

analisis survival
  1. Buka software SPSS, kemudian entry data pada variable view dan data view.
analisis survival
Gambar 2. SPSS Tahap 1a

Pada bagian data view berisi data-data dari masing-masing variabel, sedangkan untuk bagian variable view berisi pendefinisian dari masing-masing (khususnya terkait jenis data pada bagian measure).

analisis survival
Gambar 3. SPSS Tahap 1b

2. Tahapan SPSS berikutnya yaitu kita perlu klik Analyze – Survival – Cox Regression seperti yang tertera pada Gambar 4.

analisis survival
Gambar 4. SPSS Tahap 2

3. Setelah kita melakukan tahapan seperti pada Gambar 4. nantinya akan muncul output seperti yang tertera pada Gambar 5. Dalam hal ini terdapat beberapa variabel yang perlu diisi dalam tempat- tempat tertentu. Seperti halnya untuk:
– Variabel Survt kita masukkan dalam Time (ditunjukkan seperti pada kotak Merah).
– Variabel Rx, Log_WBC, dan Sex kita masukkan dalam Covariates (seperti yang tertera pada kotak Merah).
– Variabel Relapse kita masukkan dalam Status (ditandai dengan kotak berwarna hijau).

Sebagai catatan apabila kita perhatikan untuk variabel Relapse terdapat tanda tanya (?). Hal ini menandakan bahwa kita perlu mendefinisikan dari variabel Relapse kategori apa yang menjadi fokus utama sebagai kejadian. Dalam hal ini kita fokus pada kategori 1 untuk Status Relapse Kategori ini menunjukkan bahwa kejadian yang sedang dipelajari (kambuhnya penyakit leukemia telah terjadi).

Dalam hal ini kita fokus pada kotak yang ditandai warna hijau, kita pilih Define Event, setelah itu akan muncul pop-up seperti kotak pada sebelah kanan. Pada bagian Value(s) Indicating Event Has Occured kita tandai pada bagian Single Value. Setelah itu kita isikan dengan nilai sebesar 1, lalu klik Continue.

analisis survival
Gambar 5. SPSS Tahap 3

4. Masih melanjutkan dari tahapan pada Gambar 5, setelah itu kita klik pada tombol Save, sehingga akan muncul Pop-Up seperti yang tertera pada bagian kanan. Dalam hal ini untuk bagian Save Model Variables kita centang pada bagian Partial residuals. Kemudian kita klik Continue.

analisis survival
Gambar 5. SPSS Tahap 3

5. Setelah melakukan tahapan seperti pada Gambar 5. sehingga akan muncul tampilan 3 kolom variabel baru berupa Residual untuk masing- masing kovariates yaitu:
– PR1_1 (Residual untuk variabel Rx)
– PR2_1 (Residual untuk variabel Log_WBC)
– PR3_1 (Residual untuk variabel Sex).
Secara lebih detail, untuk residual- residual untuk tiap variabel dapat dilihat pada Gambar 6.

analisis survival
Gambar 6. Residual Variabel (Rx, Log_WBC, Sex)

6. Tahapan berikutnya melanjutkan dari tahapan pada Gambar 5, kita klik pada bagian Options, nantinya akan muncul tampilan seperti pada pop-up disebelah kanan. Dalam hal ini kita centang pada Model Statistics yaitu CI for exp(B) 95%. Selanjutnya kita beri tanda centang pada Display baseline function. Kemudian kita klik Continue.
Lalu kembali lagi pada pop- up yang di sebelah kiri, kita klik OK.

analisis survival
Gambar 7 . SPSS Tahap 4

7. Selanjutnya kita akan melanjutkan pengecekan asumsi Proportional Hazard, dengan cara berdasarkan Gambar 6, residual- residual variabel kita buat plotnya. Caranya klik Graphs lalu klik Legacy Dialogs kemudian klik Scatter/Dot.

analisis survival
Gambar 8 . SPSS Tahap 5

8. Melanjutkan dari Gambar 8, berikutnya kita klik pada bagian Simple Scatter lalu klik Define

analisis survival
Gambar 9 . SPSS Tahap 6

9. Selanjutnya dalam hal ini kita buat Scatterplot untuk residual tiap kovariat, sehingga kita akan buat scatterplot untuk
– PR1_1 (Residual untuk variabel Rx)
– PR2_1 (Residual untuk variabel Log_WBC)
– PR3_1 (Residual untuk variabel Sex).

Dalam hal ini pada Gambar 10, kita akan membuat scatterplot dimana untuk bagian Y-Axis kita isi dengan Partial residual for Rx [PR1_1] sedangkan untuk bagian X-Axis kita isi dengan Survt. Lalu klik OK.

Dengan cara yang sama kita buat Sccaterplot untuk variabel PR2_1 dan PR3_1 dalam hal ini diisikan pada bagian Y Axis.

analisis survival
Gambar 10 . SPSS Tahap 7

Pembahasan Hasil Output SPSS

Interpretasi Hasil (Karakteristik Data)

Setelah klik OK, maka didapatkan hasil output SPSS sebagai berikut.

analisis survival
Gambar 11. Output Plot Residual Variabel Log_WBC
analisis survival
Gambar 12. Output Plot Residual Variabel Rx
analisis survival
Gambar 13. Output Plot Residual Variabel Sex

Apabila kita perhatikan pada Gambar 11, Gambar 12, dan Gambar 13 menampilkan hasil output Plot residual parsial. Plot residual parsial digunakan untuk mengidentifikasi apakah efek kovariat berubah seiring waktu, yang dapat melanggar asumsi proportional hazard.. Apabila kita perhatikan pada keseluruhan hasil output plot residual tidak membentuk pola sistematis. Jika tidak ada pola yang jelas atau residual tersebar acak tanpa menunjukkan tren, ini menunjukkan bahwa asumsi proportional hazard mungkin dipenuhi.

analisis survival
Gambar 14. Hasil Output SPSS (1)

Selanjutnya ditampilkan pula, berdasarkan hasil output SPSS pada Gambar 14. diketahui bahwa terdapat 42 data yang digunakan dalam analisis survival Cox Proportional Hazard dimana 30 data termasuk (data Event atau Pasien Mengalami Kambuh Penyakit Leukemia) sedangkan 12 data lainnya termasuk (data Censored atau Pasien Tidak Mengalami Kambuh Penyakit Leukemia).

Interpretasi Hasil (Pengecekan Asumsi Proportional Hazard)

analisis survival
Gambar 15. Hasil Output SPSS (2)

Selanjutnya pada hasil output SPSS kita perhatika pada bagian Block1:Method=Enter (bagian ini memuat model Cox Proportional Hazard mencakup semua kovariat atau variabel yang dimasukkan dalam analisis).

Omnibus Tests of Model Coefficients digunakan untuk menguji apakah secara keseluruhan model yang mencakup semua kovariat yang dimasukkan secara signifikan lebih baik dalam menjelaskan data dibandingkan dengan model tanpa kovariat (model null). Berdasarkan Gambar 15. terlihat bahwa pada hasil overall (score) nilai Chi-Square sebesar 44,571 dengan P-Value atau disebut juga dengan Sig yaitu sebesar 0,000. Dalam hal ini kita akan menggunakan taraf signifikansi sebesar 5% atau 0,05, maka dikarenakan P-Value bernilai lebih kecil daripada taraf signifikansi maka secara statistik terbukti bahwa bahwa kovariat (variabel) yang dimasukkan dalam model memiliki pengaruh secara keseluruhan terhadap hasil survival.

analisis survival
Gambar 16. Hasil Output SPSS (3)

Setelah dilakukan pengujian secara keseluruhan, selanjutnya diuji pengaruh masing-masing kovariat dalam model terhadap hazard rate. Apabila kita perhatikan pada Gambar 16, terlihat bahwa nilai Sig. atau P-Value untuk variabel Rx dan Log_WBC bernilai lebih kecil daripada taraf signifikansi (0,05). Sedangkan untuk variabel Sex memiliki P-Value dengan nilai lebih besar daripada taraf signifikansi (0,05). Sehingga dapat diartikan bahwa hanya variabel Rx dan Log WBC berpengaruh signifikan terhadap waktu survival pasien leukemia.

Selanjutnya dapat dilihat pula berdasarkan Gambar 16 bahwa terdapat kolom Exp(B) atau menunjukkan tentang Hazard Ratio (HR). Apabila kita perhatikan nilai Hazard Ratio untuk variabel yang signifikan yaitu:
– Rx dengan Hazard Ratio sebesar 4,018
– Log_WBC dengan Hazard Ratio sebesar 4,922.

Rx dengan Hazard Ratio sebesar 4,018
Nilai HR sebesar 4,018 menunjukkan bahwa pasien yang menerima penanganan penyakit leukemia (Rx) memiliki risiko relapse (kambuh) yang 4,018 kali lebih tinggi dibandingkan dengan kelompok referensi (misalnya, kelompok yang tidak menerima penanganan tertentu), jika semua variabel lain dianggap konstan. Ini menunjukkan bahwa jenis penanganan yang diberikan secara signifikan mempengaruhi risiko relapse, dan penanganan tersebut mungkin kurang efektif dalam mencegah relapse atau mungkin berhubungan dengan kondisi yang lebih parah.

Log_WBC dengan Hazard Ratio sebesar 4,922.
Nilai HR sebesar 4,922 untuk variabel Log WBC menunjukkan bahwa dengan setiap peningkatan satu unit dalam logaritma jumlah sel darah putih, risiko relapse meningkat 4,922 kali lipat, dengan asumsi semua variabel lain konstan. Hal ini mengindikasikan bahwa jumlah sel darah putih yang lebih tinggi (setelah diubah menjadi skala logaritmik) berkorelasi dengan peningkatan risiko relapse pada pasien leukemia. Ini bisa berarti bahwa jumlah sel darah putih yang lebih tinggi mencerminkan beban penyakit yang lebih besar atau respons yang tidak menguntungkan terhadap pengobatan.

Referensi

Kleinbaum, D., & Klein, M. (2012). Survival Analysis A Self-Learning Text Third Edition. Atlanta: Springer.

https://www.siloamhospitals.com/informasi-siloam/artikel/apa-itu-leukemia

Yeayy selesai sudah penjelasan terkait Analisis Survival dengan Software SPSS. Apabila masih ada yang dibingungkan bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya.

Analisis Survival Cox Proportional Hazard dengan SPSS Read More »

Hubungi Admin
Halo, selamat datang di Exsight! 👋

Hari ini kita ada DISKON 20% untuk semua transaksi. Klaim sekarang!