Materi ini diproduksi oleh tim dari Algoritma untuk Analisis Kerentanan Sosial terhadap COVID-19 di DKI Jakarta Menggunakan Analisis Faktor dan Klaster. Materi berikut hanya ditujukan untuk kalangan terbatas, meliputi individu/personal yang menerima materi ini secara langsung dari lembaga pelatihan. Materi ini dilarang untuk direproduksi, didistribusikan, diterjemahkan, atau diadaptasikan dalam bentuk apapun di luar izin dari individu dan organisasi yang berkepentingan.
Algoritma adalah pusat pendidikan Data Science di Jakarta. Kami mengadakan workshop dan program pelatihan untuk membantu para profesional dan pelajar untuk mendapatkan keahlian dalam berbagai bidang dalam ruang lingkup Data Science: data visualization, machine learning, data modeling, statistical inference, dan lain-lainnya.
Sebelum masuk ke dalam materi dan menjalankan kode-kode di dalam materi ini, silakan anda melihat bagian Library and Setup untuk melihat dan memastikan semua persyaratan dasar untuk mengikuti materi ini sudah terpenuhi termasuk package-package yang diperlukan. Pada bagian Tujuan Pembelajaran anda dapat melihat secara umum apa saja yang akan dipelajari dalam modul materi ini. Kami harap materi ini akan bermanfaat bagi karir ataupun menambah keahlian peserta.
Pandemi COVID-19 merupakan bentuk bahaya yang memiliki potensi mengancam segala aspek kehidupan masyarakat seperti sosial, kesehatan, dan psikologis. Dampak pada masyarakat Indonesia tidak berbeda jauh dengan negara lain yang juga mengalami COVID 19. Kondisi kerentanan sosial menjadi realitas nyata yang terjadi pada masyarakat dalam menghadapi pandemi COVID-19.
Di era pemulihan ekonomi ini, kerentanan dapat dipandang dari dua arah. Dimana sisi positif kerentanan ini dapat kita pandang sebagai suatu masalah yang dapat diselesaikan dalam ranah pihak CSR. Di sinilah peran industri untuk pro aktif dalam mencari peluang dengan memanfaatkan kerentanan yang ditimbulkan oleh COVID-19. Sementara sisi lainnya, kerentanan ini dapat kita pandang sebagai permasalahan yang disebabkan oleh berbagai aspek yang diakibatkan oleh COVID-19, sehingga dapat ditanggulangi dengan mengintegrasikan perencanaan penanggulangan resiko dengan program pengembangan lainnya.
Materi ini bertujuan memberikan pemahaman kepada peserta workshop terkait penggunaan unsupervised learning yang dapat digunakan untuk project berbasis social behaviour. Beberapa metode yang dapat diimplementasikan diantaranya analisis faktor dalam membentuk faktor-faktor laten kerentanan sosial serta PCA dalam melakukan ekstraksi variabel menjadi komponen yang akan membentuk index kerentanan sosial masing-masing daerah. Hasil index ini dapat kita manfaatkan untuk melakukan visualisasi demografis dan profiling masing-masing daerah menggunakan fuzzy c-means clustering sehingga insight yang diambil akan lebih bermakna. Adapun setelah mempelajari materi ini peserta diharapkan dapat memahami kegunaan dan potensi pemanfaatan analisis faktor dan fuzzy clustering sesuai dengan proses bisnis yang ada di bidang industri yang dijalani oleh peserta.
Untuk dapat mengikuti materi ini, peserta diharapkan sudah menginstall beberapa packages di bawah ini. Apabila package tersebut belum terinstall, silahkan jalankan chunk atau baris kode berikut. Apabila sudah ter-install, lewati chunk berikut dan muat package yang dibutuhkan dengan menjalankan chunk selanjutnya.
# install.packages(c("readr","tidyverse", "stringr", "sf", rmarkdown", "GGally", "psych", "GPArotation", "factoextra", "BAMMtools", "ppclust", "gridExtra", "leaflet"))
#data cleaning
library(readr) # untuk membaca data
library(dplyr) # untuk data manipulation
library(stringr)
library(sf) # untuk membaca data shp
#data analysis
library(GGally) # untuk membuat matriks korelasi
library(psych) # untuk melakukan analisis KMO
library(GPArotation) # untuk melakukan factor analysis
library(factoextra) # untuk mengekstrak dan visualisasi Hasil analisis data multivariat
library(BAMMtools) # untuk membuat natural breaks pada pemetaan
library(ppclust) # untuk membuat Probabilistic and Possibilistic Cluster Analysis
#data visualization
library(gridExtra) # untuk membuat mixed plot dalam satu hasil
library(leaflet) # untuk visualisasi interaktif
Tujuan utama dari workshop ini adalah untuk memberikan pengenalan yang komprehensif mengenai tools dan perangkat lunak yang digunakan untuk mengetahui kelompok yang memiliki resiko lebih tinggi (rentan) dan seberapa cepat pulih terhadap dampak COVID-19, yakni sebuah open-source populer: R. Adapun materi ini akan mencakup:
Introductory Module:
tidyverse
Main Module:
fa()
fa.parallel()
untuk menemukan jumlah faktor
optimalfa.diagram()
getJenksBreaks()
leaflet()
fcm()
Ground Truth Story
Sampai saat ini, pandemi COVID-19 belum juga usai. Provinsi DKI Jakarta menjadi provinsi dengan jumlah kasus positif COVID-19 terbanyak di Indonesia. Meski disadari bahwa virus COVID-19 dapat menginfeksi siapa saja, tetapi beberapa kelompok orang memiliki tingkat risiko yang lebih tinggi untuk terpapar. Sebagai contoh, jika dilihat pada data kematian akibat COVID-19 per kelompok umur per tanggal 30 September 2022, penduduk rentan seperti usia lansia (≥ 60 tahun) menyumbang kematian sebesar 47,6% dari total kematian akibat COVID-19.
Selain itu, pada kasus positif COVID-19 dan sedang dirawat atau isolasi, proporsi penduduk berjenis kelamin perempuan lebih banyak dibandingkan laki-laki (Kemenkes, 2021). Tingkat kerentanan sosial masyarakat telah banyak dilakukan melalui indeks kerentanan sosial. Kerentanan sosial wilayah menggambarkan kerapuhan sosial dari suatu wilayah akibat pengaruh dari adanya bahaya. Faktor-faktor kerentanan sosial menjadi salah satu hal yang krusial di tengah pandemi COVID-19. Hal ini dikarenakan gabungan faktor kerentanan sosial tersebut dapat meningkatkan risiko terkena COVID-19 dan risiko pulih dari kondisi setelah terpapar COVID-19.
Tujuan Analisis
Untuk mengetahui kelompok yang memiliki resiko lebih tinggi (rentan) dan seberapa cepat pulih terhadap dampak COVID-19 menjadi penting, mengingat hal ini dapat meningkatkan kesadaran, mencegah terinfeksi COVID-19, dan menurunkan tingkat kematian.
Pada analisis ini, dilakukan observasi pada level kecamatan dengan jumlah observasi sebanyak 44 kecamatan di Provinsi DKI Jakarta. Hal ini diakibatkan observasi level kecamatan memiliki data yang terbaru dan paling lengkap. Adapun variabel yang digunakan berasal dari berbagai sumber dengan tanggal terakhir diambil yaitu 30 April 2021, yaitu:
Berikut adalah 14 variabel yang digunakan:
Berikut adalah deskripsi data untuk rentan
:
Kecamatan
= Nama kecamatan pada masing-masing kota
administratif pada Provinsi DKI Jakartaperempuan
= persentase penduduk perempuanKK_perempuan
= persenyase kepala keluarga berjenis
kelamin perempuanlansia
= persentase penduduk lansiapengangguran
= persentase pengangguranwajib_ktp
= persentase penduduk wajib KTPbanjir
= jumlah daerah rawan banjirinformal
= persentase pekerja di sektor informalRS
= jumlah RS umumpuskesmas
= jumlah puskesmaspositif_cov
= jumlah kasus positif akibat COVID-19
(data 30 april 2021)rawat
= jumlah penduduk yang dirawat akibat COVID-19
(data 30 april 2021)isoman
= jumlah penduduk yang melakukan isolasi mandiri
akibat COVID-19 (data 30 april 2021)kode
= kode wilayah untuk kebutuhan pemetaan peta.Melakukan inspeksi untuk melihat keseluruhan data.
#> Rows: 44
#> Columns: 14
#> $ Kecamatan <chr> "Cakung", "Cempaka Putih", "Cengkareng", "Cilandak", "Cil…
#> $ perempuan <dbl> 49.2096, 50.0816, 49.3437, 50.4252, 49.4534, 49.6205, 49.…
#> $ KK_perempuan <dbl> 18.05886, 23.00326, 18.54968, 20.79268, 20.51346, 17.1236…
#> $ lansia <dbl> 6.217495, 10.852327, 6.585898, 9.310706, 5.975218, 7.0006…
#> $ pengangguran <dbl> 2909, 544, 2839, 584, 2746, 2388, 1818, 2071, 702, 1187, …
#> $ wajib_ktp <dbl> 70.20066, 75.12540, 70.84496, 73.73298, 74.35980, 71.1721…
#> $ banjir <dbl> 31, 0, 55, 2, 38, 15, 8, 2, 0, 28, 12, 32, 2, 0, 4, 4, 0,…
#> $ informal <dbl> 6.503218, 13.910844, 6.791649, 10.869546, 11.266610, 14.2…
#> $ RS <dbl> 1, 2, 1, 3, 1, 0, 1, 2, 1, 3, 3, 2, 0, 1, 3, 2, 4, 2, 1, …
#> $ puskesmas <dbl> 9, 4, 10, 6, 10, 11, 6, 12, 4, 10, 6, 12, 7, 13, 11, 9, 8…
#> $ positiv_cov <dbl> 11740, 4998, 13036, 8201, 7899, 10437, 9529, 14329, 3796,…
#> $ rawat <dbl> 82, 50, 109, 62, 73, 63, 73, 139, 25, 67, 80, 55, 25, 73,…
#> $ isoman <dbl> 102, 17, 146, 114, 63, 124, 108, 145, 42, 43, 175, 87, 19…
#> $ Kode_shp <chr> "38", "5", "15", "28", "12", "42", "41", "39", "1", "16",…
melkukan pengecekan missing value pada data untuk setiap variabel.
#> Kecamatan perempuan KK_perempuan lansia pengangguran wajib_ktp
#> 0 0 0 0 0 0
#> banjir informal RS puskesmas positiv_cov rawat
#> 0 0 0 0 0 0
#> isoman Kode_shp
#> 0 0
Sebelum dilakukannya analisis lebih lanjut, alangkah lebih baik kita mengeksplorasi data kerentanan sosial dalam bentuk visualisasi.
Pada step ini dilakukan untuk memahami data terlebih dahulu dan mencoba mengumpulkan sebanyak mungkin wawasan dari data.
Exploratory Data Analysis refers to the critical process of performing initial investigations on data so as to discover patterns,to spot anomalies,and to check the summary statistics and graphical representations
#> Kecamatan perempuan KK_perempuan lansia
#> Length:44 Min. :48.27 Min. :14.78 Min. : 5.873
#> Class :character 1st Qu.:49.43 1st Qu.:18.93 1st Qu.: 7.844
#> Mode :character Median :49.67 Median :21.11 Median : 8.845
#> Mean :49.71 Mean :21.09 Mean : 8.997
#> 3rd Qu.:49.98 3rd Qu.:22.94 3rd Qu.: 9.776
#> Max. :50.98 Max. :27.49 Max. :13.219
#> pengangguran wajib_ktp banjir informal
#> Min. : 207.0 Min. :70.20 Min. : 0.00 Min. : 6.148
#> 1st Qu.: 596.2 1st Qu.:72.06 1st Qu.: 0.00 1st Qu.: 9.543
#> Median : 931.0 Median :73.04 Median : 9.00 Median :10.540
#> Mean :1244.9 Mean :73.57 Mean :12.86 Mean :12.412
#> 3rd Qu.:1666.5 3rd Qu.:74.52 3rd Qu.:18.75 3rd Qu.:16.318
#> Max. :3468.0 Max. :79.73 Max. :59.00 Max. :25.738
#> RS puskesmas positiv_cov rawat
#> Min. :0.000 Min. : 3.00 Min. : 242 Min. : 0.00
#> 1st Qu.:1.000 1st Qu.: 6.00 1st Qu.: 5698 1st Qu.: 49.75
#> Median :1.500 Median : 7.50 Median : 7966 Median : 62.50
#> Mean :1.818 Mean : 7.75 Mean : 7587 Mean : 65.61
#> 3rd Qu.:3.000 3rd Qu.: 9.25 3rd Qu.: 9622 3rd Qu.: 77.00
#> Max. :7.000 Max. :14.00 Max. :14329 Max. :142.00
#> isoman Kode_shp
#> Min. : 0.00 Length:44
#> 1st Qu.: 41.75 Class :character
#> Median : 62.50 Mode :character
#> Mean : 67.93
#> 3rd Qu.: 88.50
#> Max. :175.00
Insight: Berdasarkan hasil
summary(rentan)
:
Terdapat 49,67 persen jumlah penduduk perempuan yang ditunjukkan
oleh rata-rata variabel perempuan
dengan 21,09 persen
merupakan kepala keluarga yang berjenis kelamin perempuan.
Persentase wajib KTP di DKI Jakarta yang ditunjukkan oleh
variabel wajib_ktp
secara umum hanya sebesar 73.57 persen,
yang menandakan belum semua masyarakat sadar akan pentingnya kepemilikan
KTP.
Terdapat 12.412 persen pekerja informal di DKI Jakarta
Dari hasil summary()
, diketahui bahwa setiap variabel
memiliki range nilai yang cukup berbeda, hal ini menyebabkan data yang
dimiliki perlu untuk dilakukan scaling/standardisasi.
Pertama dilakukan pemeriksaan nilai korelasi antar variabel dengan melihat scatter plot antar masing-masing nilai variabel berpasangan pada data.
ggpairs(rentan[,c(2:13)], upper = list(continuous = wrap("cor", size=2)))+
theme(axis.text = element_text(colour = "black", size = 4),
strip.text = element_text(size = 5))
Insight: - -
Pada bagian ini dilakukan tiga teknik analisis untuk melihat bagaimana kerentanan sosial yang diakibatkan COVID-19.
Analisis faktor termasuk salah satu teknik statistika yang dapat digunakan untuk memberikan deskripsi yang relatif sederhana melalui reduksi jumlah variabel yang disebut faktor.
Analisis faktor dipergunakan untuk mereduksi data atau meringkas, dari variabel lama yang banyak diubah menjadi sedikit variabel baru yang disebut faktor, dan masih memuat sebagian besar informasi yang terkandung dalam variabel asli.
Analisis faktor dipergunakan dalam kondisi sebagai berikut :
Mengenali atau mengidentifikasi faktor, yang menjelaskan korelasi antara suatu set variabel.
Mengenali atau mengidentifikasi suatu set variabel baru yang independent dan lebih sedikit jumlahnya untuk menggantikan suatu set variabel asli yang saling berkorelasi di dalam analisis multivariat selanjutnya.
Mengidentifikasi suatu set variabel yang penting dari suatu set variabel yang lebih banyak jumlahnya untuk dipergunakan dalam analisis multivariat selanjutnya.
Karakteristik Analisis Faktor
Tujuan dari membentuk plot korelasi adalah untuk menguji kolinearitas dari data. Asumsi pada analisis faktor yaitu seluruh variabel harus memiliki korelasi, tetapi tidak terlalu tinggi.
Correlation plot di atas yang digunakan untuk menguji multikolinearitas dari data. Pada analisis ini, digunakan batas (>0,85) sebagai batas korelasi ekstrem terhadap setiap variabel. Dapat dilihat bahwa semua variabel tidak memiliki nilai korelasi yang lebih dari 0,85.
KMO-MSA (proporsi korelasi) adalah uji yang dilakukan untuk menentukan kelayakan (appropriateness) dari suatu analisis faktor yang akan dilakukan.
Skala uji KMO-MSA berkisar antara 0 sampai 1.
Jika nilai KMO-MSA hitung lebih rendah dari 0.5, maka analisis faktor tidak layak dilakukan. Sedangkan jika nilai KMO hitung lebih besar dari 0.5, maka analisis faktor layak dilakukan.
Untuk dapat melakukan pengujian KMO-MSA, pada R disediakan suatu
function KMO()
dari library psych
.
#> Kaiser-Meyer-Olkin factor adequacy
#> Call: KMO(r = rentan_cor)
#> Overall MSA = 0.74
#> MSA for each item =
#> perempuan KK_perempuan lansia pengangguran wajib_ktp banjir
#> 0.59 0.65 0.74 0.68 0.75 0.85
#> informal RS puskesmas positiv_cov rawat isoman
#> 0.71 0.54 0.87 0.72 0.83 0.75
Insight: - Untuk nilai MSA didapatkan sebesar 0,73. Syarat dapat dilanjutkannya proses analisis faktor adalah nilai KMO lebih besar dari nilai 0,5. Dari hasil tersebut dapat dikatakan bahwa proses analisis faktor bisa dilanjutkan ke proses selanjutnya karena syarat dilanjutkannya proses analisis faktor terpenuhi.
Bartlett’s test digunakan untuk mengkonfirmasi bahwa data berkorelasi secara berpasangan (Mickey & Sharma, 1997). Dengan kata lain uji bartlett digunakan untuk mengetahui homogenitas variance.
#>
#> Bartlett test of homogeneity of variances
#>
#> data: rentan[, 2:13]
#> Bartlett's K-squared = 4496.9, df = 11, p-value < 0.00000000000000022
Hasil perhitungan dengan R dihasilkan nilai Bartlett test of homogeneity variances sebesar 5144 dengan signifikansi sebesar 0,000. Dengan demikian, Bartlett test of homogeneity of variances memenuhi persyaratan karena signifikansi di bawah 0,05 (5%), sehingga variance tidak homogen.
Untuk membentuk faktor-faktor penyusun kerentanan sosial digunakan
metode analisis faktor, fungsi yang tersedia di R adalah
fa()
dari library psych
.
Parameter fungsi fa()
- r
:
Correlation/covariance matrix dari data awal
#> Factor Analysis using method = minres
#> Call: fa(r = rentan_cor)
#> Standardized loadings (pattern matrix) based upon correlation matrix
#> MR1 h2 u2 com
#> perempuan 0.03 0.00083 0.999 1
#> KK_perempuan -0.43 0.18150 0.818 1
#> lansia -0.53 0.27661 0.723 1
#> pengangguran 0.65 0.41698 0.583 1
#> wajib_ktp -0.62 0.38288 0.617 1
#> banjir 0.56 0.31535 0.685 1
#> informal -0.57 0.32381 0.676 1
#> RS 0.19 0.03505 0.965 1
#> puskesmas 0.70 0.48876 0.511 1
#> positiv_cov 0.97 0.93146 0.069 1
#> rawat 0.75 0.56067 0.439 1
#> isoman 0.78 0.60599 0.394 1
#>
#> MR1
#> SS loadings 4.52
#> Proportion Var 0.38
#>
#> Mean item complexity = 1
#> Test of the hypothesis that 1 factor is sufficient.
#>
#> The degrees of freedom for the null model are 66 and the objective function was 9.22
#> The degrees of freedom for the model are 54 and the objective function was 4.63
#>
#> The root mean square of the residuals (RMSR) is 0.18
#> The df corrected root mean square of the residuals is 0.2
#>
#> Fit based upon off diagonal values = 0.81
Secara default, objek factor analysis yang terbentuk menghasilkan sejumlah 1 faktor. Jumlah ini dapat saja belum optimal, sehingga perlu untuk mencari jumlah faktor yang optimal dari data yang kita miliki.
Menentukan jumlah faktor optimal
Secara teori, kita dapat mengambil faktor sebanyak variabel yang kita miliki. Tapi hal tersebut tentunya berkebalikan dengan tujuan analisis faktor.
Sehingga, akan dicari faktor laten dalam kumpulan variabel. Oleh karena itu, kita hanya akan tertarik pada faktor-faktor yang menjelaskan proporsi variasi yang substansial dalam data.
Langkah di balik penentuan jumlah faktor optimal: 1. Mencari eigen value: variance/informasi yang dirangkum oleh tiap faktor
#> [1] 4.99667306 2.46039233 1.12792938 0.99712076 0.65274905 0.49540729
#> [7] 0.37580580 0.36473044 0.24043800 0.13934914 0.10192060 0.04748414
Di R terdapat sebuah fungsi yaitu fa.parallel()
. Fungsi
ini mencari jumlah faktor optimal dari nilai eigen yang berurutan,
kemudian penurunan tajam dalam plot menunjukkan jumlah komponen atau
faktor yang sesuai untuk diekstraksi.
#> Parallel analysis suggests that the number of factors = 2 and the number of components = NA
Insight: Dari hasil paralell analysis scree plot di
atas dihasilkan factors=2
sebagai jumlah faktor yang
optimal pada data rentan.
Membentuk Analisis Faktor dengan Jumlah Faktor yang ditentukan
Selanjutnya akan kembali dilakukan analisis faktor menggunakan jumlah faktor optimal yang sudah didapatkan.
Parameter tambahan fungsi fa()
- nfactors
:
banyaknya faktor yang akan dibentuk - rotate
: tipe rotasi.
Rotasi meminimalkan kompleksitas faktor untuk membuat struktur lebih
sederhana untuk ditafsirkan. Beberapa tipe rotasi yang dapat dipilih: +
Rotasi ortogonal (varimax
, quartimax
,
equamax
) -> Jika ingin memulai dengan asumsi faktor
saling tidak berkorelasi + Rotasi oblique (oblimin
,
promax
) -> asumsi faktor saling berkorelasi
# jumlah faktor optimal yang didapat
nfact <- nfactors$nfact
# factor analysis dengan tipe rotasi varimax
fa_rentan_opt <- fa(r = rentan_cor, nfactors = nfact, rotate = "varimax")
fa_rentan_opt
#> Factor Analysis using method = minres
#> Call: fa(r = rentan_cor, nfactors = nfact, rotate = "varimax")
#> Standardized loadings (pattern matrix) based upon correlation matrix
#> MR1 MR2 h2 u2 com
#> perempuan 0.21 0.57 0.37 0.6313 1.3
#> KK_perempuan -0.24 0.80 0.70 0.2972 1.2
#> lansia -0.33 0.90 0.93 0.0705 1.3
#> pengangguran 0.60 -0.20 0.40 0.5982 1.2
#> wajib_ktp -0.58 0.18 0.37 0.6297 1.2
#> banjir 0.56 -0.07 0.32 0.6826 1.0
#> informal -0.43 0.61 0.55 0.4521 1.8
#> RS 0.31 0.32 0.20 0.7994 2.0
#> puskesmas 0.69 -0.11 0.48 0.5152 1.1
#> positiv_cov 1.00 -0.03 1.01 -0.0074 1.0
#> rawat 0.87 0.16 0.78 0.2229 1.1
#> isoman 0.79 -0.06 0.63 0.3660 1.0
#>
#> MR1 MR2
#> SS loadings 4.36 2.38
#> Proportion Var 0.36 0.20
#> Cumulative Var 0.36 0.56
#> Proportion Explained 0.65 0.35
#> Cumulative Proportion 0.65 1.00
#>
#> Mean item complexity = 1.3
#> Test of the hypothesis that 2 factors are sufficient.
#>
#> The degrees of freedom for the null model are 66 and the objective function was 9.22
#> The degrees of freedom for the model are 43 and the objective function was 2.13
#>
#> The root mean square of the residuals (RMSR) is 0.08
#> The df corrected root mean square of the residuals is 0.1
#>
#> Fit based upon off diagonal values = 0.96
Dari output di atas dengan menggunakan faktor sebanyak 2 didapatkan beberapa informasi sebagai berikut:
SS Loadings
: Sum square loadings (jumlah kuadrat
masing-masing nilai loading)
Proportion Var
: Memberitahu kita berapa banyak
varians/informasi keseluruhan yang diperhitungkan faktor dari semua
variabel.
Cumulative Var
: Nilai akumulasi dari proportion
var.
Proportion Explained
: Jumlah variansi relatif yang
terjelaskan. Merupakan pembagian dari proportion var/ sum(proportion
var).
Cumulative Proportion
: Jumlah akumulasi dari
proportion explained.
MR
: Factor Loading -> kekuatan hubungan dari
masing-masing variabel terhadap faktor utama.
h2
: jumlah varians dalam item/variabel yang
dijelaskan oleh faktor-faktor (yang dipertahankan) ->
communality
u2
: merupakan nilai 1-h2
adalah
residual variance.
com
: item complexity.
Dengan menggunakan 2 faktor, maka informasi keseluruhan yang diperhitungkan faktor dari semua variabel sebanyak 0,59 atau 59%.
Salah satu tujuan dari factor analysis adalah melakukan ekstraksi dengan menghasilkan faktor laten. Faktor laten yang dihasilkan nantinya akan dijadikan sebagai faktor-faktor pembentuk kerentanan sosial pada data.
Arah dari masing-masing variabel ditentukan berdasarkan pengaruhnya terhadap kerentanan sosial. Arah positif berpengaruh terhadap peningkatan kerentanan sosial, sebaliknya arah negatif menurunkan tingkat kerentanan sosial.
Dari plot di atas dilakukan pengekstrakan terhadap 2 faktor/ komponen utama, yaitu kesehatan, Lingkungan, dan pekerjaan serta kependudukan dan KRT perempuan.
Faktor ini terdiri dari tujuh variabel pembentuk, yaitu jumlah kasus positif COVID-19, jumlah penduduk yang dirawat akibat COVID-19, jumlah penduduk yang melakukan isolasi mandiri akibat COVID-19, jumlah puskesmas, jumlah penduduk dengan status pengangguran, persentase penduduk wajib KTP, dan jumlah daerah rawan banjir. Pada faktor ini menjelaskan 36 persen varians yang membentuk kerentanan sosial. Enam variabel berpengaruh positif dan satu variabel berpengaruh negatif dalam kerentanan sosial.
Daerah yang memiliki jumlah penderita COVID-19 yang tinggi meningkatkan kontribusi terhadap kerentanan, dimana penularan COVID-19 yang sangat cepat dapat menimbulkan daerah tersebut diberlakukan pembatasan kegiatan, sehingga memperlambat pemulihan terhadap dampak yang ditimbulkan COVID-19.
Kemudian, persentase penduduk wajib KTP yang banyak dapat menurunkan kerentanan sosial, hal ini dikarenakan masyarakat yang memiliki KTP akan lebih mudah mendapatkan akses terhadap pendataan, sehingga dengan pendataan yang baik dapat menyalurkan bantuan yang terarah dan terukur sesuai KTP dan menyebabkan pemulihan lebih cepat.
Faktor kependudukan terdiri dari lima variabel pembentuk, yaitu persentase penduduk lansia, persentase kepala keluarga berjenis kelamin perempuan, persentase pekerja di sektor informal, persentase penduduk perempuan, dan jumlah RS. Pada faktor ini menjelaskan 20 persen varians yang membentuk kerentanan sosial.
Struktur penduduk yang didominasi oleh penduduk lansia menyebabkan ketergantungan yang besar terhadap orang lain, sehingga ketika terjadi COVID-19 kelompok ini akan sangat rentan. Kelompok ini akan lebih sulit untuk memulihkan diri dikarenakan kemampuan fisik yang sudah menurun, sehingga mobilitas terhambat.
Selain itu, perempuan menjadi kelompok yang lebih sulit untuk pulih dari dampak COVID-19.
Sebelumnya, kita menggunakan jumlah faktor optimal berdasarkan scree
plot yang ada pada function fa.parallel
. Akan tetapi,
beberapa literatur menyebutkan bahwa jumlah faktor optimal dapat dicari
menggunakan nilai eigen value > 1.
#> [1] 4.99667306 2.46039233 1.12792938 0.99712076 0.65274905 0.49540729
#> [7] 0.37580580 0.36473044 0.24043800 0.13934914 0.10192060 0.04748414
dari output di atas terdapat 3 nilai eigen yang besarnya >1. Coba tambahkan jumlah faktor yang dibuat menjadi 3 faktor. Lalu coba interpretasikan faktor pembentuk yang baru sesuai dengan pemahaman Anda.
jawaban
#please type your code
fa_rentan_3 <- fa(r = rentan_cor, nfactors = 3, rotate = "varimax")
fa_rentan_3
#> Factor Analysis using method = minres
#> Call: fa(r = rentan_cor, nfactors = 3, rotate = "varimax")
#> Standardized loadings (pattern matrix) based upon correlation matrix
#> MR1 MR2 MR3 h2 u2 com
#> perempuan 0.52 0.44 -0.20 0.50 0.4988 2.3
#> KK_perempuan -0.09 0.93 0.02 0.87 0.1278 1.0
#> lansia 0.01 0.88 -0.32 0.88 0.1226 1.3
#> pengangguran 0.13 -0.16 0.95 0.95 0.0536 1.1
#> wajib_ktp -0.53 0.33 -0.18 0.41 0.5863 1.9
#> banjir 0.32 -0.11 0.50 0.37 0.6312 1.8
#> informal -0.24 0.69 -0.18 0.57 0.4324 1.4
#> RS 0.37 0.23 0.09 0.20 0.8018 1.8
#> puskesmas 0.45 -0.19 0.51 0.50 0.4997 2.3
#> positiv_cov 0.85 -0.24 0.48 1.00 -0.0031 1.8
#> rawat 0.72 0.00 0.48 0.75 0.2460 1.7
#> isoman 0.78 -0.27 0.23 0.73 0.2706 1.4
#>
#> MR1 MR2 MR3
#> SS loadings 2.91 2.69 2.13
#> Proportion Var 0.24 0.22 0.18
#> Cumulative Var 0.24 0.47 0.64
#> Proportion Explained 0.38 0.35 0.28
#> Cumulative Proportion 0.38 0.72 1.00
#>
#> Mean item complexity = 1.7
#> Test of the hypothesis that 3 factors are sufficient.
#>
#> The degrees of freedom for the null model are 66 and the objective function was 9.22
#> The degrees of freedom for the model are 33 and the objective function was 1.2
#>
#> The root mean square of the residuals (RMSR) is 0.05
#> The df corrected root mean square of the residuals is 0.07
#>
#> Fit based upon off diagonal values = 0.99
Faktor 1 Karakteristik: - -
Faktor 2 Karakteristik: - -
Faktor 3 Karakteristik: - -
Ada banyak metode untuk melakukan pembobotan dalam agregasi indeks. Beberapa di antaranya sudah pernah dilakukan oleh beberapa peneliti:
(Cutter et al., 2003) menggunakan pembobot tertimbang,
(Solangaarachchi et al., 2012) menggunakan pembobot berdasarkan kontribusi terhadap varians terjelaskan,
(Siagian et al., 2014) menggunakan pembobot tidak sama, dan
(Rygel et al., 2006) menggunakan pareto-ranking. Tidak ada kesepakatan yang membatasi penggunaan pembobotan yang berbeda.
Dalam analisis ini, digunakan pembobotan tidak sama untuk melakukan
agregasi indeks. Pembobot didapatkan dari pembagian antara
varians terjelaskan masing-masing komponen dibagi dengan total varians
terjelaskan atau nilai
proportion explained
dari object
fa_rentan_opt
. Dengan cara ini komponen yang memiliki
varians terjelaskan yang lebih tinggi berpengaruh lebih besar terhadap
kerentanan sosial. Perhitungan kerentanan sosial mengikuti persamaan
sebagai berikut:
\[SoVI=|(0.65*komponen1)+(0.35*komponen2)|\]
\[SoVI=|\sum(bobot_{komponen_1}*komponen_1)+...+(bobot_{komponen_n}*komponen_n)|\] SoVI merujuk peda Social Vulnarability Index.
rentan
Principal Component Analysis (PCA) PCA merupakan suatu algoritma unsupervised learning yang bertujuan untuk dimentionality reduction. Salah satu tujuan dari PCA adalah untuk mengubah variabel asli yang saling berkorelasi satu sama lainnya menjadi satu set variabel baru yang memiliki korelasi lebih kecil atau saling bebas.
Ide dasar dari PCA adalah untuk membuat sumbu (axis) baru yang dapat menangkap informasi sebesar mungkin. Sumbu baru ini adalah yang dinamakan sebagai Principal Component (PC). Untuk melakukan dimensionality reduction, kita akan memilih beberapa PC untuk dapat merangkum informasi yang dibutuhkan. Nilai masing-masing PC dibentuk dari matriks varian-kovarians dari suatu set variabel melalui kombinasi linear dari variabel-variabel tersebut.
\[ PC1 = a_{11}x_1 + a_{12}x_2 + ... + a_{1p}x_p \] di mana:
vektor \(a_1\) adalah eigen vector dari suatu matriks varian kovarians
Nilai \(x_i\) adalah nilai suatu data pada baris ke-i
Hal-hal yang menjadi pedoman dalam menentukan jumlah PC, yaitu:
PCA bertujuan untuk melakukan reduksi data dari sekumpulan variabel
(Mickey & Sharma, 1997). Pada analisis ini, PCA digunakan untuk
menghitung nilai SoVI masing-masing kecamatan yang ada pada dataset
dengan cara mengambil sejumlah komponen hasil ekstraksi dari PCA. Untuk
itu akan dilakukan inspeksi untuk pca$x
untuk mendapatkan
nilai data yang baru.
Sesuai dengan hasil dari factor analysis dengan objek
fa_rentan_opt()
, akan kita ambil sebanyak 2 principal
component untuk kebutuhan pemetaan SoVI masing-masing kecamatan di
Provinsi DKI Jakarta.
Melakukan perhitungan persamaan indeks kerentanan sosial. Sehingga dihasilkan SoVI atau Social Vulnerability Index untuk masing-masing kecamatan.
Melakukan penggabungan variabel kecamatan
,
kode
atau kode area, dan juga nilai SoVI
yang
sudah didapatkan
Selanjutnya, dilakukan pengabungan nilai hasil perhitungan Social
Vulnerability Index dengan nama-nama kecamatan dan kode area yang ada
pada dataset rentan
untuk kebutuhan visualisasi
geospasial.
rentan_new <- rentan %>%
select_if(~!is.numeric(.)) %>% # ambil kolom Kecamatan
cbind(SoVI = SoVI[,3]) # gabungkan dengan kolom SoVI
rentan_new
Dari indeks kerentanan sosial yang terbentuk, selanjutnya perlu untuk
melakukan kategorisasi pengkategorian indeks menjadi 3, yaitu rendah,
sedang, tinggi. Hal ini bertujuan untuk memudahkan insight yang dapat
diambil. Pengkategorian indeks dilakukan dengan menggunakan Natural
Breaks pada R menggunakan function getJenksBreaks()
dari
library BAMMtools
.
# Membagi SoVI ke dalam 3 kategori
natural_breaks <- function(df, var) {
breaks <- BAMMtools::getJenksBreaks(df[[var]], k = 4)
df %>%
mutate("jenks" :=
case_when(df[[var]] >= breaks[[1]] & df[[var]] < breaks[[2]] ~ 1,
df[[var]] >= breaks[[2]] & df[[var]] < breaks[[3]] ~ 2,
df[[var]] >= breaks[[3]] & df[[var]] <= breaks[[4]] ~ 3))
}
rentan_new <- natural_breaks(rentan_new, "SoVI")
rentan_new
#> [1] 0.2817538 1.1949798 2.2508194 3.8883591
# Melihat jumlah kecamatan per masing-masing kategori
rentan_new %>%
group_by(jenks) %>%
summarise(Total = n_distinct(Kecamatan))
Hasil yang didapatkan yaitu 0.28175 sampai 1.1949 untuk kategori rendah; 1.1949 sampai 2.2508 untuk kategori sedang; 2.2508 sampai 3.88835 untuk kategori tinggi; dan . Secara umum, sebagian besar masyarakat di wilayah DKI Jakarta memiliki kerentanan sosial terhadap COVID-19 yang berada pada rentang kategori rendahsedang.
Pemetaan dalam bentuk visual dilakukan untuk melihat persebaran indeks kerentanan sosial menurut kecamatan di DKI Jakarta. Visualisasi yang akan dilakukan dinamakan visualisasi geospasial, kita bisa memberikan informasi yang hanya dengan bantuan peta maka informasi tersebut dapat tersampaikan dengan baik.
Pada analisis ini akan dibuat visualisasi geocoding berupa choropleth.
Pertama-tama dilakukan penarikan data shapefile yang mengandung data geometri untuk kecamatan di DKI Jakarta melalui web https://hub.arcgis.com/datasets/18d008ec01aa41ab928c1959c451c6e7/explore?layer=0&location=-6.257734%2C106.896911%2C12.75
Langkah kedua, untuk membaca data .shp di R menggunakan function
read_sf()
pada packagesf
.
Dalam melakukan penggabungan data, ada beberapa hal yang perlu
dilakukan: 1. Mengubah tipe data OBJECTID
menjadi character
agar dapat dilakukan penggabungan data. 2. Menggabungkan data spasial
yang dimiliki pada object jakarta_rentan_new
dimana
variabel OBJECTID
akan dipasangkan dengan dataset
rentan
pada variabel Kode_shp
3. Melakukan
reorder baris pada dataframe hasil gabungan menggunakan column name
KECAMATAN
jakarta_rentan_new <- shapefile %>%
mutate(OBJECTID = as.character(OBJECTID))
glimpse(jakarta_rentan_new)
#> Rows: 44
#> Columns: 11
#> $ OBJECTID_1 <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, …
#> $ OBJECTID <chr> "43", "44", "1", "2", "3", "4", "5", "6", "7", "8", "9", "1…
#> $ NO_KAB <chr> NA, NA, "71", "71", "71", "71", "71", "71", "71", "71", "72…
#> $ NO_KEC <chr> NA, NA, "01", "02", "03", "04", "05", "06", "07", "08", "01…
#> $ KECAMATAN <chr> "KEP. SERIBU SELATAN", "KEP. SERIBU UTARA", "GAMBIR", "SAWA…
#> $ WILAYAH <chr> "KAB.ADM.KEP.SERIBU", "KAB.ADM.KEP.SERIBU", "JAKARTA PUSAT"…
#> $ Shape__Are <dbl> 1528586439, 3126051321, 7508915, 5358573, 7168174, 4350701,…
#> $ Shape__Len <dbl> 175577.253, 229963.261, 13230.033, 13639.388, 13630.925, 13…
#> $ Shape_Leng <dbl> 0.46211226, 0.85004576, 0.11956374, 0.12328821, 0.12317691,…
#> $ Shape_Area <dbl> 0.0003136000, 0.0005370378, 0.0006133681, 0.0004376953, 0.0…
#> $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON Z (((106.7359 ..., MULTIPOLYGON Z…
Dikarenakan output yang ingin ditampilkan adalah visualisasi geometri
map 2 dimensi menggunakan leaflet, maka kita perlu mengubah dimensi
object spasial geometri kita menjadi 2 dimensi. Di R, hal ini dapat
dilakukan dengan bantuan function st_zm()
dengan parameter
drop = TRUE
.
leaflet()
Dalam penyajian data, pertama-tama dimasukkan data
rentan
dalam leaflet. Lalu, akan ditentukan pewarnaan yang
sesuai untuk choropleth yang nanti akan dibentuk. Palette ditentukan
dari kuning hingga merah (silahkan lihat cheatsheet yang sudah
disediakan). Selain itu, dibuat juga popup pada tiap tempat. Referensi
untuk melakukan pemilihan warna palette: https://www.datanovia.com/en/blog/the-a-z-of-rcolorbrewer-palette/
library(leaflet)
m <- leaflet(jakarta_rentan_clean)
# popup
popup.cont <- paste("Region: ", jakarta_rentan_clean$KECAMATAN, "<br>",
"Value: ", jakarta_rentan_clean$SoVI, "<br>")
# mendefinisikan variabel yang menjadi dasar pewarnaan
col <- jakarta_rentan_clean$SoVI
# kategorisasi variabel
bins <- c(getJenksBreaks(jakarta_rentan_clean$SoVI, 4))
# melakukan pewarnaan
pal <- colorBin("YlOrRd",
domain = col, #variabel yang ingin dipetakan
bins = bins )
Terakhir, kita akan membentuk peta dengan tiles yang disediakan oleh
CartoDB
menggunakan fungsi addProviderTiles
.
Lalu kita atur poligon dan legenda pada peta, serta mengubah nama tiap
elemen pada legenda agar lebih masuk akal.
m %>%
addProviderTiles(providers$CartoDB.DarkMatter) %>%
addPolygons(fillColor = pal(col),
weight = 1,
opacity = 1,
color = "black",
dashArray = "3",
fillOpacity = 0.8,
popup = popup.cont) %>%
addLegend("bottomright",
pal = pal,
values = ~col,
title = "Social Vulnerability Index",
labFormat = labelFormat(digits = 2),
opacity = 1)
Setelah melakukan pembentukan indeks kerentanan sosial, selanjutnya
clustering digunakan untuk mengetahui variabel yang berpengaruh pada
masing-masing klaster. Supaya hasil klaster dapat diinterpretasikan,
akan digunakan data rentan
awal dengan variabel-variabel
numerik yang mana sudah signifikan melalui pengujian KMO-MSA dan
bartlett. Metode yang digunakan dalam melakukan klastering ini adalah
Fuzzy C-Means Clustering.
Fuzzy C-means clustering merupakan suatu metode clustering yang hampir mirip seperti k-means clustering. Karena metode clustering ini mirip dengan k-means clustering, ada yang menyebut metode ini fuzzy k-means clustering.
Algoritma Fuzzy C-Means (FCM) pertama kali diperkenalkan oleh Dunn pada tahun 1973 dan dikembangkan kembali oleh Bezdek pada tahun 1981 sebagai metode clustering yang menggunakan konsep fuzzy.
Fuzzy c-means merupakan salah satu jenis soft clustering di mana dalam mengelompokan suatu data, setiap data bisa dimiliki lebih dari satu cluster. Contohnya sebuah tomat bisa dikelompokkan ke warna merah atau warna hijau jika dalam hard clustering, namun tomat bisa dikelompokkan ke warna merah dan hijau dalam fuzzy clustering. Tomat berwarna merah memiliki tingkatan yang sama dengan tomat berwarna hijau. Jika dimisalkan dengan angka dari 0 sampai 1, tomat warna merah 0.5 dan tomat warna hijau 0.5.
Kami melakukan pengolahan klaster menggunakan perangkat lunak
R-Studio dengan package ppclust
.
Langkah pertama mendefinisikan data yang akan digunakan dalam
analisis FCM ini ke dalam object rentan_FCM
dimana data ini
berisi variabel-variabel bertipe data numerik dan keterangan
kecamatan.
Melakukan assign nilai dari kolom Kecamatan yang ada pada
data rentan
kita menjadi nama baris.
library(tidyverse)
rentan_FCM <- rentan_FCM %>%
remove_rownames %>%
column_to_rownames(var="Kecamatan")
head(rentan_FCM)
Normalisasi/standarisasi data diperlukan sebelum melakukan clustering untuk memudahkan kita melakukan identifikasi cluster. Apabila skala data untuk dilakukan clustering tidak sama, maka kita tidak akan dapat membandingkan setiap nilai dengan semua nilai lain dalam kumpulan data yang kita miliki.
Teknik penskalaan Min-Max merupakan salah satu metode normaliasi dengan melakukan perubahan linear terhadap data asli. Teknik normalisasi Min-Max dapat dilakukan dengan formula berikut:
\[ a'_i = \frac{a_i -
min(a)}{max(a)-min(a)}\] Selanjutnya, karena pada R tidak
terdapat build-in function dari formula Min-Max ini, maka akan dibuat
fungsi manual dengan minMax
. Lalu melakukan pengaplikasian
fungsi yang sudah dibuat pada data rentan_FCM
kita.
# custom function to implement min max scaling
minMax <- function(x) {
(x - min(x)) / (max(x) - min(x))
}
#Normalisasi data menggunakan fungsi custom
rentan_scale <- as.data.frame(lapply(rentan_FCM, minMax))
#Menambahkan rownames kecamatan pada data yang sudah discale
rentan_FCM <- as.data.frame(rentan_scale, rentan$Kecamatan)
Pada analisis ini, akan digunakan metode silhouette untuk melakukan pemilihan nilai k (jumlah cluster) optimal.
Silhouette mengukur seberapa baik suatu observasi menjadi satu cluster atau memperkirakan nilai rata-rata jarak antar cluster. Nilai dari silhouette coefficient menginterpretasikan seberapa dekat suatu data pada satu cluster terhadap tetangga pada cluster yang lain. Semakin besar nilai silhouette (mendekati 1), maka semakin baik cluster tersebut.
Di mana akan dipilih nilai k pada saat nilai k ditambah, penurunan
Total WSS (Whitin Sum of Squares) tidak terlalu drastis (dapat dikatakan
sudah melandai). Secara statistik, dalam melakukan visualisasi elbow
digunakan function fviz_nbclust()
dari package
factoextra
.
set.seed(123)
elbow <-
fviz_nbclust(
x = rentan_scale,
FUNcluster = kmeans,
method = "silhouette",
k.max = 10
) + labs(subtitle = "Metode Elbow")
elbow
Nilai k optimum dari data
rentan_FCM
didapatkan pada saat k=2
fcm()
Membuat object fcm.rentan
dengan menggunakan fungsi
fcm()
dengan jumlah \(k=2\) dan membership degree \(m=2\).
#> Summary for 'fcm.rentan'
#>
#> Number of data objects: 44
#>
#> Number of clusters: 2
#>
#> Crisp clustering vector:
#> [1] 2 1 2 2 2 2 2 2 1 1 2 2 1 2 1 2 2 1 2 2 1 1 2 2 2 1 1 1 1 2 1 2 2 2 2 2 1 1
#> [39] 1 1 1 1 2 1
#>
#> Initial cluster prototypes:
#> perempuan KK_perempuan lansia pengangguran wajib_ktp banjir
#> Cluster 1 0.4207626 0.2174588 0.0000000 0.5617909 0.04974973 0.0000000
#> Cluster 2 0.6848996 0.3799949 0.4628804 0.5716038 0.21393593 0.0338983
#> informal RS puskesmas positiv_cov rawat isoman
#> Cluster 1 0.01501601 0.1428571 0.9090909 0.553489 0.5140845 0.2857143
#> Cluster 2 0.01414969 0.2857143 0.8181818 1.000000 0.9788732 0.8285714
#>
#> Final cluster prototypes:
#> perempuan KK_perempuan lansia pengangguran wajib_ktp banjir
#> Cluster 1 0.5389905 0.6162944 0.5619571 0.2209669 0.4455888 0.1271250
#> Cluster 2 0.5210274 0.3989750 0.3105454 0.4079368 0.2562638 0.2963236
#> informal RS puskesmas positiv_cov rawat isoman
#> Cluster 1 0.4673842 0.2265458 0.3294159 0.3923736 0.3665275 0.2634173
#> Cluster 2 0.1986334 0.2812407 0.5169692 0.6422221 0.5513181 0.5059506
#>
#> Distance between the final cluster prototypes
#> Cluster 1
#> Cluster 2 0.4759771
#>
#> Difference between the initial and final cluster prototypes
#> perempuan KK_perempuan lansia pengangguran wajib_ktp banjir
#> Cluster 1 0.1182279 0.39883559 0.5619571 -0.3408239 0.39583911 0.1271250
#> Cluster 2 -0.1638722 0.01898006 -0.1523350 -0.1636670 0.04232784 0.2624253
#> informal RS puskesmas positiv_cov rawat isoman
#> Cluster 1 0.4523682 0.083688701 -0.5796750 -0.1611154 -0.1475570 -0.02229703
#> Cluster 2 0.1844837 -0.004473622 -0.3012126 -0.3577779 -0.4275551 -0.32262080
#>
#> Root Mean Squared Deviations (RMSD): 1.015206
#> Mean Absolute Deviation (MAD): 34.74745
#>
#> Membership degrees matrix (top and bottom 5 rows):
#> Cluster 1 Cluster 2
#> Cakung 0.2248502 0.7751498
#> Cempaka Putih 0.8585258 0.1414742
#> Cengkareng 0.2755678 0.7244322
#> Cilandak 0.4970376 0.5029624
#> Cilincing 0.2914759 0.7085241
#> ...
#> Cluster 1 Cluster 2
#> Tamansari 0.7645847 0.2354153
#> Tambora 0.7258928 0.2741072
#> Tanahabang 0.8497685 0.1502315
#> Tanjung Priok 0.3348927 0.6651073
#> Tebet 0.7364816 0.2635184
#>
#> Descriptive statistics for the membership degrees by clusters
#> Size Min Q1 Mean Median Q3 Max
#> Cluster 1 20 0.5704471 0.6287925 0.7072370 0.7270529 0.7704006 0.8585258
#> Cluster 2 24 0.5029624 0.6715673 0.7042262 0.7164671 0.7553940 0.9221182
#>
#> Dunn's Fuzziness Coefficients:
#> dunn_coeff normalized
#> 0.6029278 0.2058555
#>
#> Within cluster sum of squares by cluster:
#> 1 2
#> 9.563466 10.156608
#> (between_SS / total_SS = 20.84%)
#>
#> Available components:
#> [1] "u" "v" "v0" "d" "x"
#> [6] "cluster" "csize" "sumsqrs" "k" "m"
#> [11] "iter" "best.start" "func.val" "comp.time" "inpargs"
#> [16] "algorithm" "call"
Untuk mengetahui jumlah kecamatan untuk setiap clusternya digunakan
inspeksi pada object fcm$csize
#> 1 2
#> 20 24
Berikut merupakan nilai untuk masing-masing kecamatan dan juga hasil
cluster setiap kecamatannya. Hasil cluster dapat diakses dengan
melakukan inspeksi pada object fcm$cluster
.
#> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#> 2 1 2 2 2 2 2 2 1 1 2 2 1 2 1 2 2 1 2 2 1 1 2 2 2 1
#> 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#> 1 1 1 2 1 2 2 2 2 2 1 1 1 1 1 1 2 1
# Inspeksi nilai-nilai kecamatan permasing-masing cluster
cluster <- fcm_keep %>%
filter(fcm.rentan.cluster %in% 2)
cluster
Kluster 1 berisi 20 Kecamatan, mencakup Kecamatan Cempaka Putih, Gambir, Grogolpetamburan, Johar Baru, Kebayoran Baru, Kelapa Gading, Kepulauan Seribu Selatan, Kepulauan Seribu Utara, Mampang Prapatan, Matraman, Menteng, Pademangan, Pancoran, Sawah Besar, Senen, Setia Budi, Tamansari, Tambora, Tanahabang, dan Tebet
Kluster 2 berisi 24 Kecamatan, mencakup Kecamatan Cakung, Cengkareng, Cilandak, Cilincing, Cipayung, Ciracas, Duren Sawit, Jagakarsa, Jatinegara, Kebayoran Lama, Kebon Jeruk, Kemayoran, Kembangan, Koja, Kramatjati, Makasar, Palmerah, Pasar Minggu, Pasarrebo, Penjaringan, Pesanggrahan, Pulogadung, dan Tanjung Priok.
###Interpretasi: Cluster Profiling
Untuk dapat melakukan cluster profiling, dibutuhkan informasi pusat
cluster (centroid) masing-masing variabel terhadap cluster yang
dihasilkan. Dalam object fcm.rentan
, kita dapat melakukan
inspeksi menggunakan fcm.rentan$v
yang mana merupakan
matriks numerin yang berisi pusat masing-masing cluster (centroid).
Cluster Profiling:
Berikut merupakan hasil visualisasi kluster dalam plot 2 dimensi.
fcm.rentan2 <- ppclust2(fcm.rentan, "fanny")
factoextra::fviz_cluster(fcm.rentan2, data = rentan_FCM,
ellipse.type = "convex",
palette = "jco",
repel = TRUE)
Peta kerentanan sosial juga dapat menjadi informasi yang baik dalam penanggulangan bencana. Integrasi dengan sistem peringatan yang dirancang untuk mencegah penularan penyakit dapat memberikan informasi yang berguna bagi wilayah yang memiliki risiko penyebaran COVID-19 yang tinggi. Permasalahan yang disebabkan oleh kependudukan, pekerjaan, kesehatan, dan pendidikan yang diakibatkan oleh COVID-19, dapat ditanggulangi dengan mengintegrasikan perencanaan penanggulangan resiko dengan program pengembangan lainnya.
Pada analisis ini ditemukan 2 faktor yang berpengaruh terhadap kerentanan sosial yaitu kesehatan dan pekerjaan serta kependudukan dan KRT perempuan. Oleh karena itu, disarankan bahwa penanggulan dampak COVID-19 dapat diintegrasikan dengan program pengembangan lainnya yang sesuai dengan beberapa faktor yang telah disebutkan.
Oleh karena itu, hasil analisis ini dapat menjadi masukan bagi pemerintah dalam hal ini Badan Penanggulangan Bencana Daerah (BPBD) DKI Jakarta, dimana hasilnya dapat digunakan untuk perencanaan program penanggulangan bencana kedepannya. Lebih jauh lagi berdasarkan hasil analisis ini dapat dilihat tingkat kerentanan yang berbeda pada masing-masing wilayah, Hal ini berarti kapasitas kesiapan dan respon terhadap COVID-19 berbeda beda. Bagi CSR perusahaan, hal ini dapat menjadi rujukan informasi yang bersesuaian agar lebih tepat sasaran dalam memberikan bantuan kepada daerah dengan karakteristik tertentu
Ketika informasi yang terbatas, penggunaan peta kerentanan sosial dapat dijadikan informasi untuk memprioritaskan terlebih dahulu daerah dengan tingkat kerentanan sosial yang tinggi.
Analisis ini merupakan upaya yang dilakukan untuk mendukung penanggulangan dampak yang diakibatkan oleh COVID-19 di DKI Jakarta. Pendekatan indeks dan klaster dilakukan untuk mengetahui bagaimana indeks kerentanan dan pengaruh variabel terhadap masing-masing wilayah kecamatan DKI Jakarta. Dari project ini, kami mendapatkan 2 faktor yang berpengaruh terhadap kerentanan sosial, yaitu kesehatan dan pekerjaan serta kependudukan dan KRT perempuan.
Analisis ini menggunakan 12 variabel untuk mengukur kerentanan sosial. Hal ini dikarenakan keterbatasan data yang ada. Menggunakan data yang lebih lengkap dan terbaru maka pengukuran akan menjadi lebih baik. Akhirnya, poin penting bahwa project ini melakukan penilaian terhadap kerentanan sosial pada kecamatan di DKI Jakarta. Karakteristik wilayah yang berbeda beda menyebabkan penggunaan variabel yang berbeda juga, sehingga penilaian terhadap kerentanan sosial akan menjadi tantangan tersendiri.