Principal Component Analysis (PCA) adalah metode statistik multivariat yang digunakan untuk mereduksi dimensi data dengan cara mengubah variabel-variabel asli menjadi sejumlah komponen utama (principal components) yang saling ortogonal. Tujuan utama dari PCA adalah menyederhanakan struktur data kompleks tanpa kehilangan informasi penting, sehingga pola-pola laten dalam data dapat lebih mudah dianalisis dan divisualisasikan.
Dalam studi kasus kali ini, PCA diterapkan pada data kesehatan yang mencakup berbagai indikator dari kabupaten/kota. Dengan bantuan kriteria Kaiser (eigenvalue > 1), proses ini bertujuan untuk mengidentifikasi komponen utama yang berkontribusi signifikan terhadap variasi dalam data, sekaligus menyederhanakan dimensi data untuk eksplorasi dan interpretasi yang lebih efektif.
# 1. Install dan load package
library(readxl)
library(dplyr)
library(tidyr)
library(corrplot)
library(ggplot2)
library(factoextra)
# 2. Baca data dari Excel
data_raw <- read_excel("D:/KULIAH NOVIA/SMT 4 NOVIA/ANALISIS MULTIVARIATE/DATA_KESEHATAN.xlsx")
print(data_raw)
## # A tibble: 37 × 27
## `Kabupaten / Kota` Angka Penemuan TBC per 100.000 pe…¹ Angka Keberhasilan P…²
## <chr> <dbl> <dbl>
## 1 Cilacap 83.7 84
## 2 Banyumas 104. 91
## 3 Purbalingga 107. 90
## 4 Banjarnegara 61.7 88
## 5 Kebumen 80.3 85
## 6 Purworejo 67.1 81
## 7 Wonosobo 82.6 90
## 8 Magelang 58.4 83
## 9 Boyolali 59.5 88
## 10 Klaten 74.1 85
## # ℹ 27 more rows
## # ℹ abbreviated names: ¹​`Angka Penemuan TBC per 100.000 penduduk`,
## # ²​`Angka Keberhasilan Pengobatan TBC (%)`
## # ℹ 24 more variables: `Jumlah Kasus Baru AIDS` <dbl>,
## # `Penemuan Kasus Baru Kusta per 100.000 penduduk` <dbl>,
## # `Angka Kesakitan Malaria per 1.000 penduduk` <dbl>,
## # `Angka Kesakitan DBD per 100.000 penduduk` <dbl>, …
Tahapan ini bertujuan untuk mempersiapkan lingkungan analisis. Pertama, dilakukan instalasi dan pemanggilan package yang diperlukan seperti readxl untuk membaca file Excel, dplyr dan tidyr untuk manipulasi data, corrplot untuk visualisasi korelasi, ggplot2 untuk plotting, serta factoextra untuk analisis PCA. Selanjutnya, data kesehatan dibaca dari file Excel eksternal menggunakan fungsi read_excel() dan dimuat ke dalam variabel data_raw. Hasil yang ditampilkan pada tahap ini adalah tabel data asli yang memuat informasi kesehatan dari masing-masing kabupaten/kota.
Data yang digunakan dalam analisis ini berasal dari data kesehatan publik berbagai Kabupaten/Kota di Provinsi Jawa Tengah, yang mencakup indikator-indikator utama layanan kesehatan dan penyakit menular. Dataset ini bersifat kuantitatif dan tersusun dalam bentuk data panel lintas wilayah (cross-sectional). Terdapat 35 observasi yang mewakili masing-masing Kabupaten/Kota, dengan jumlah variabel sebanyak 28 variabel utama yang mencerminkan kondisi kesehatan, pelayanan, dan tenaga medis di wilayah tersebut. Beberapa kategori data yang terdapat dalam dataset ini meliputi: - Indikator penyakit menular: Angka penemuan TBC, angka keberhasilan pengobatan TBC, kasus AIDS, malaria, kusta, DBD, dan IMS. - Cakupan layanan kesehatan: Penemuan kasus diare balita, jumlah rumah sakit umum, rumah sakit khusus, puskesmas rawat inap, puskesmas non rawat inap, klinik pratama, posyandu. - Ketersediaan tenaga kesehatan: Jumlah tenaga medis, tenaga keperawatan, kebidanan, kefarmasian, gizi, kesehatan lingkungan, keterapian fisik, tenaga kesehatan tradisional, psikolog klinis, teknik biomedika, dan teknis medis lainnya. Sifat dari data ini beragam dalam skala pengukuran: ada yang berbentuk rasio (misalnya kasus per 100.000 penduduk), persentase, maupun jumlah absolut (misalnya jumlah tenaga medis).
# 3. Hapus baris dengan 'Kabupaten / Kota' kosong
data_clean <- data_raw %>%
filter(!is.na(`Kabupaten / Kota`) & `Kabupaten / Kota` != "")
# 4. Bersihkan dan ubah nilai "-" menjadi NA, lalu jadi 0
data_clean <- data_clean %>%
mutate(across(-`Kabupaten / Kota`, as.character)) %>%
mutate(across(-`Kabupaten / Kota`, ~na_if(., "-"))) %>%
mutate(across(-`Kabupaten / Kota`, as.numeric)) %>%
mutate(across(-`Kabupaten / Kota`, ~replace_na(., 0)))
# 5. Ambil data numerik saja
X <- data_clean %>% select(-`Kabupaten / Kota`)
# 6. Standarisasi data
X_scaled <- scale(X)
print(X_scaled)
## Angka Penemuan TBC per 100.000 penduduk
## [1,] -0.24797809
## [2,] 0.42103661
## [3,] 0.50168406
## [4,] -0.96825453
## [5,] -0.36160284
## [6,] -0.79259328
## [7,] -0.28487348
## [8,] -1.07436960
## [9,] -1.03975976
## [10,] -0.56371123
## [11,] -0.22642857
## [12,] -1.14293626
## [13,] -0.57187393
## [14,] -0.56175219
## [15,] -0.40927300
## [16,] -0.01321891
## [17,] 0.32341074
## [18,] -0.24569253
## [19,] 1.02834131
## [20,] -0.53367251
## [21,] 0.04783807
## [22,] -1.17428102
## [23,] -0.70378313
## [24,] -0.09778445
## [25,] -0.22904063
## [26,] 0.42168962
## [27,] 0.11542521
## [28,] 0.07134664
## [29,] -0.09092779
## [30,] 0.46021756
## [31,] 0.53041676
## [32,] 1.40970255
## [33,] 0.73513721
## [34,] 0.83570165
## [35,] 4.43185972
## Angka Keberhasilan Pengobatan TBC (%) Jumlah Kasus Baru AIDS
## [1,] -0.500756932 0.631730759
## [2,] 1.277293045 1.673289818
## [3,] 1.023285905 -0.664067125
## [4,] 0.515271626 -0.688670883
## [5,] -0.246749793 0.008435574
## [6,] -1.262778351 -0.869098436
## [7,] 1.023285905 -0.762482155
## [8,] -0.754764072 -0.926507203
## [9,] 0.515271626 -0.065375698
## [10,] -0.246749793 -0.368822038
## [11,] -0.754764072 -0.409828300
## [12,] 0.515271626 -0.647664621
## [13,] 0.007257347 -0.295010766
## [14,] 0.515271626 0.336485671
## [15,] 1.277293045 0.115051856
## [16,] -1.008771212 0.303680661
## [17,] 0.261264486 -0.270407009
## [18,] 0.007257347 1.419050992
## [19,] 1.023285905 -0.278608261
## [20,] 0.515271626 -0.254004504
## [21,] 1.023285905 -0.106381960
## [22,] 0.769278766 -0.368822038
## [23,] -1.008771212 -0.967513465
## [24,] -1.008771212 -0.057174446
## [25,] -1.516785491 0.016636826
## [26,] 1.023285905 -0.598457106
## [27,] 1.531300185 0.016636826
## [28,] 0.769278766 0.188863127
## [29,] -1.770792631 -0.073576950
## [30,] -2.532814049 -0.910104698
## [31,] 0.769278766 2.427805041
## [32,] 0.261264486 -0.655865873
## [33,] -1.262778351 3.928634236
## [34,] -0.246749793 -0.491840824
## [35,] -0.500756932 -0.336017028
## Penemuan Kasus Baru Kusta per 100.000 penduduk
## [1,] -0.49836811
## [2,] -0.74124000
## [3,] -0.36669057
## [4,] -0.76464934
## [5,] -0.43399242
## [6,] -0.63589797
## [7,] -0.45447560
## [8,] -0.60371013
## [9,] -0.50714661
## [10,] -0.25257005
## [11,] -0.24671771
## [12,] -0.04188600
## [13,] -0.53640828
## [14,] -0.14430185
## [15,] -0.50422044
## [16,] 0.68087735
## [17,] -0.49251577
## [18,] 0.37070360
## [19,] -0.27012705
## [20,] 0.30340175
## [21,] -0.09163084
## [22,] -0.84950819
## [23,] -0.89632687
## [24,] -0.49251577
## [25,] 0.15124105
## [26,] 1.39486219
## [27,] 0.45556246
## [28,] 2.47461795
## [29,] 2.82283187
## [30,] -0.69149515
## [31,] -0.70905216
## [32,] -0.78513251
## [33,] -0.55396529
## [34,] 2.89598605
## [35,] 1.01446043
## Angka Kesakitan Malaria per 1.000 penduduk
## [1,] -0.10303321
## [2,] 0.24878751
## [3,] -0.19098839
## [4,] -0.19098839
## [5,] -0.19098839
## [6,] -0.19098839
## [7,] -0.27894358
## [8,] -0.19098839
## [9,] -0.27894358
## [10,] -0.27894358
## [11,] -0.01507803
## [12,] -0.27894358
## [13,] -0.27894358
## [14,] -0.19098839
## [15,] -0.10303321
## [16,] -0.01507803
## [17,] -0.10303321
## [18,] -0.01507803
## [19,] -0.19098839
## [20,] -0.27894358
## [21,] -0.19098839
## [22,] -0.19098839
## [23,] -0.27894358
## [24,] -0.19098839
## [25,] -0.19098839
## [26,] -0.19098839
## [27,] -0.27894358
## [28,] -0.27894358
## [29,] -0.27894358
## [30,] -0.10303321
## [31,] 0.07287715
## [32,] 5.70200878
## [33,] 0.07287715
## [34,] -0.27894358
## [35,] -0.27894358
## Angka Kesakitan DBD per 100.000 penduduk Jumlah Kasus baru IMS
## [1,] -0.19287591 -0.17704068
## [2,] 2.43615883 0.92372123
## [3,] -0.51300191 -0.35019424
## [4,] 1.34773044 -0.31308991
## [5,] -0.91315940 -0.05335957
## [6,] -0.06482551 -0.39966669
## [7,] -0.22088694 -0.01625523
## [8,] -0.58503026 -0.37493046
## [9,] 1.84792731 -0.23888124
## [10,] 2.11603284 0.10742588
## [11,] 0.83152728 0.14453022
## [12,] 0.10724221 -0.39966669
## [13,] -0.03681449 -0.23888124
## [14,] 0.13125166 -0.35019424
## [15,] 1.51179502 -0.39966669
## [16,] 0.14325638 -0.42440291
## [17,] 0.39135403 -0.38729857
## [18,] 0.14325638 0.61451845
## [19,] -0.44897671 -0.43677102
## [20,] -0.28091056 -0.36256235
## [21,] -0.48499088 -0.36256235
## [22,] -0.86914208 -0.01625523
## [23,] -1.20527438 -0.39966669
## [24,] 1.91195251 -0.39966669
## [25,] -0.78110743 -0.39966669
## [26,] 0.23129103 -0.43677102
## [27,] -1.37734210 -0.18940879
## [28,] -0.97318303 -0.35019424
## [29,] -1.04521138 -0.37493046
## [30,] -0.05682236 -0.23888124
## [31,] -0.14485701 1.07213857
## [32,] -0.82512476 -0.04099145
## [33,] -0.85713735 5.33913700
## [34,] -0.19287591 -0.31308991
## [35,] -1.08122555 0.24347511
## % Penemuan Kasus Diare Balita Jumlah Rumah Sakit Umum
## [1,] -0.78991526 0.67323800
## [2,] -0.08018203 1.97030204
## [3,] 1.64315709 -0.40764870
## [4,] -0.06399062 -1.05618072
## [5,] 0.85378126 0.45706066
## [6,] -0.81626363 0.45706066
## [7,] 0.04014820 -1.05618072
## [8,] -1.22869637 -0.40764870
## [9,] -0.84105859 0.88941534
## [10,] -0.63672425 0.67323800
## [11,] 0.58868434 -0.19147136
## [12,] -0.51860466 0.02470598
## [13,] 0.07796798 -0.19147136
## [14,] -0.71953343 0.67323800
## [15,] -1.22744169 0.45706066
## [16,] -0.25769002 0.02470598
## [17,] 1.15293391 -1.05618072
## [18,] -0.82462820 0.24088332
## [19,] -0.96449565 -0.19147136
## [20,] -0.21538922 -0.62382604
## [21,] -0.44009725 -0.62382604
## [22,] -0.03375870 -0.62382604
## [23,] 0.46004930 -1.05618072
## [24,] -0.27238775 -0.40764870
## [25,] -0.88981205 -1.27235806
## [26,] -0.77934006 -0.84000338
## [27,] -0.84028188 0.02470598
## [28,] 0.25248862 0.24088332
## [29,] -0.90176142 1.10559268
## [30,] 1.63509126 -0.40764870
## [31,] 0.65816996 1.53794736
## [32,] -0.20194617 -1.05618072
## [33,] 1.57426893 3.48354342
## [34,] 3.09291522 -0.19147136
## [35,] 1.51434281 -1.27235806
## Jumlah Rumah Sakit Khusus Jumlah Puskesmas Rawat Inap
## [1,] -0.1819804 2.17176528
## [2,] 2.3657458 0.94576875
## [3,] 0.2426406 0.07005694
## [4,] -0.6066015 0.77062639
## [5,] -0.1819804 0.07005694
## [6,] -0.1819804 0.24519931
## [7,] -0.1819804 -0.45537014
## [8,] -0.6066015 -0.45537014
## [9,] -0.6066015 0.24519931
## [10,] -0.1819804 0.77062639
## [11,] -0.1819804 -0.10508542
## [12,] -0.6066015 -0.98079722
## [13,] -0.1819804 0.94576875
## [14,] -0.1819804 1.82148055
## [15,] -0.1819804 0.42034167
## [16,] 0.2426406 -0.10508542
## [17,] -0.6066015 0.77062639
## [18,] -0.1819804 0.42034167
## [19,] 0.6672616 -0.10508542
## [20,] -0.6066015 0.59548403
## [21,] -0.6066015 0.77062639
## [22,] -0.6066015 -0.10508542
## [23,] -0.6066015 -0.80565486
## [24,] -0.6066015 0.07005694
## [25,] -0.6066015 -1.15593958
## [26,] -0.1819804 -0.63051250
## [27,] -0.6066015 -0.63051250
## [28,] -0.1819804 -0.10508542
## [29,] 0.2426406 2.17176528
## [30,] 0.2426406 -1.85650903
## [31,] 1.5165037 -0.98079722
## [32,] 0.2426406 -1.68136667
## [33,] 4.4888510 -0.10508542
## [34,] -0.6066015 -1.15593958
## [35,] -0.1819804 -1.85650903
## Jumlah Puskesmas Non Rawat Inap Jumlah Klinik Pratama Jumlah Posyandu
## [1,] 0.06139848 0.85986911 0.22947277
## [2,] 1.35076647 0.91053480 1.82212140
## [3,] -0.51165396 -0.30544172 -0.32195682
## [4,] 0.77771403 -0.86276429 -0.19367864
## [5,] 1.35076647 -0.30544172 0.79422997
## [6,] 0.06139848 -0.35610741 0.71426435
## [7,] 0.20466159 -0.81209860 1.30567676
## [8,] 0.92097714 -0.10277897 -0.21033814
## [9,] -0.22512774 -0.15344466 0.32110005
## [10,] 0.63445092 -0.30544172 -0.48355402
## [11,] -1.80102196 0.50520929 -0.01042409
## [12,] 2.06708202 -0.55877016 1.16407097
## [13,] -1.37123263 0.35321223 0.03622252
## [14,] -1.51449574 0.50520929 1.44561660
## [15,] 0.34792470 -0.35610741 -0.99000295
## [16,] 0.20466159 -0.45743878 1.75881528
## [17,] -1.80102196 -1.01476135 0.29277889
## [18,] 0.20466159 0.60654067 -0.03541335
## [19,] -0.79818019 0.15054947 -0.32195682
## [20,] -0.94144330 0.25188085 -0.31529302
## [21,] -0.36839085 0.65720635 0.35775096
## [22,] 0.20466159 0.85986911 -0.32862062
## [23,] 0.77771403 -0.86276429 0.45770798
## [24,] 0.63445092 0.09988379 0.30444054
## [25,] 0.34792470 -0.86276429 -0.37193534
## [26,] 0.77771403 -0.76143291 0.19115591
## [27,] 0.49118781 -0.25477603 0.16616666
## [28,] 0.63445092 0.04921810 1.21238353
## [29,] 0.06139848 0.20121516 -0.20200839
## [30,] -1.37123263 -0.81209860 -2.05121338
## [31,] -0.36839085 0.09988379 -1.68470428
## [32,] -1.37123263 -0.30544172 -2.02789008
## [33,] 1.92381891 4.76112709 0.34442335
## [34,] -0.65491707 -0.81209860 -1.33485469
## [35,] -0.94144330 -0.60943585 -2.03455388
## Tenaga Medis Psikologi Klinis Tenaga Keperawatan Tenaga Kebidanan
## [1,] 0.266466089 5.72054746 -0.15579844 0.05311423
## [2,] 5.668194258 0.37200696 5.70482888 5.73242217
## [3,] -0.166829260 -0.16928407 -0.11792686 -0.08915603
## [4,] 0.003965426 -0.16928407 0.01724844 -0.08390919
## [5,] -0.251764996 -0.19561714 -0.20894989 -0.20236684
## [6,] -0.278230479 -0.19269125 -0.24654025 -0.19812900
## [7,] -0.198834031 -0.18976535 -0.15729830 -0.10106234
## [8,] -0.258535236 -0.19269125 -0.22535466 -0.19752360
## [9,] -0.268075120 -0.18683945 -0.26472611 -0.24555242
## [10,] -0.224068561 -0.19269125 -0.24129072 -0.20478846
## [11,] -0.201911412 -0.18391355 -0.19451369 -0.19974342
## [12,] -0.110205436 -0.17220996 -0.10761529 -0.15756684
## [13,] -0.122822702 -0.15758048 -0.12420754 -0.20256864
## [14,] -0.217298321 -0.19269125 -0.20210676 -0.21144792
## [15,] -0.221298917 -0.19561714 -0.22779194 -0.19167135
## [16,] -0.211759034 -0.20146894 -0.17135953 -0.13375423
## [17,] -0.190525100 -0.19269125 -0.14961150 -0.08754162
## [18,] -0.252072735 -0.18976535 -0.23547875 -0.19570738
## [19,] -0.281307861 -0.19854304 -0.24072827 -0.22557405
## [20,] -0.160982235 -0.17513586 -0.13883122 -0.09985153
## [21,] -0.159751282 -0.18976535 -0.15186129 -0.18420468
## [22,] -0.212066772 -0.18391355 -0.20707506 -0.20216504
## [23,] -0.208681652 -0.19561714 -0.23032296 -0.18299387
## [24,] -0.202219150 -0.19269125 -0.22947929 -0.20882450
## [25,] -0.257304284 -0.19561714 -0.24944624 -0.23021549
## [26,] -0.228069157 -0.19854304 -0.20220050 -0.17189477
## [27,] -0.294540603 -0.19561714 -0.25900787 -0.21245693
## [28,] -0.264690000 -0.19561714 -0.24635277 -0.18016864
## [29,] -0.241609637 -0.19561714 -0.21091846 -0.14081729
## [30,] -0.208681652 -0.19269125 -0.18495206 -0.10267675
## [31,] -0.192371529 -0.19561714 -0.15945436 -0.02720288
## [32,] -0.210220343 -0.17513586 -0.19620104 -0.30871639
## [33,] 0.045510080 -0.15172868 0.10086590 -0.20922810
## [34,] -0.247148924 -0.18683945 -0.26238257 -0.29095783
## [35,] 0.559740569 -0.09906253 0.37684099 -0.10509838
## Tenaga Kefarmasian Tenaga Kesehatan Masyarakat
## [1,] 0.29768320 2.54918343
## [2,] 5.67913502 5.04691850
## [3,] -0.16840137 -0.15040348
## [4,] -0.09314309 -0.05310799
## [5,] -0.23784571 -0.25786418
## [6,] -0.27789733 -0.23608160
## [7,] -0.19391813 -0.23898595
## [8,] -0.27822033 -0.26367286
## [9,] -0.28435727 -0.27529024
## [10,] -0.21975788 -0.27819458
## [11,] -0.21297495 -0.29271629
## [12,] -0.12253581 -0.22882075
## [13,] -0.03080468 -0.26948155
## [14,] -0.22169586 -0.30142932
## [15,] -0.17033935 -0.27819458
## [16,] -0.19585611 -0.24334246
## [17,] -0.17906027 -0.14459480
## [18,] -0.27628234 -0.25495983
## [19,] -0.28468026 -0.23753378
## [20,] -0.17130834 -0.15766434
## [21,] -0.17679929 -0.29852498
## [22,] -0.21814290 -0.25060332
## [23,] -0.22589482 -0.28109892
## [24,] -0.19779409 -0.17799474
## [25,] -0.27046840 -0.21429903
## [26,] -0.20845299 -0.22736857
## [27,] -0.28048130 -0.29707281
## [28,] -0.25302657 -0.28545544
## [29,] -0.23655372 -0.27674241
## [30,] -0.11962883 -0.25641201
## [31,] -0.14385360 -0.18815994
## [32,] -0.25205757 -0.31740321
## [33,] 0.08773519 -0.25641201
## [34,] -0.28274228 -0.29562064
## [35,] 0.42042203 0.18940466
## Tenaga Kesehatan Lingkungan Tenaga Gizi Tenaga Keterapianfisik
## [1,] 3.97817945 3.06688888 3.472353703
## [2,] 4.01256409 4.75012204 4.419922670
## [3,] -0.14582769 -0.21592794 -0.279867185
## [4,] -0.01688531 -0.11862136 -0.179021492
## [5,] -0.24898160 -0.28592039 -0.336949653
## [6,] -0.19095753 -0.24494920 -0.338852402
## [7,] -0.21244792 -0.22958500 -0.274158939
## [8,] -0.25757776 -0.26031340 -0.243714956
## [9,] -0.29840951 -0.30299173 -0.331241406
## [10,] -0.25113064 -0.27055620 -0.344560649
## [11,] -0.26187584 -0.26202053 -0.192340735
## [12,] -0.19095753 -0.16642108 -0.026801578
## [13,] -0.23393832 -0.21251367 -0.002065842
## [14,] -0.24468352 -0.23641354 -0.232298462
## [15,] -0.26832295 -0.27055620 -0.190437986
## [16,] -0.26832295 -0.23812067 -0.199951730
## [17,] -0.26832295 -0.22617074 -0.255131449
## [18,] -0.27047199 -0.24324207 -0.310311168
## [19,] -0.27477007 -0.26202053 -0.329338658
## [20,] -0.24253448 -0.21763507 -0.213270973
## [21,] -0.29196239 -0.28250613 -0.258936947
## [22,] -0.26832295 -0.25860627 -0.304602921
## [23,] -0.28981335 -0.28250613 -0.302700173
## [24,] -0.25542872 -0.22787787 -0.312213917
## [25,] -0.28981335 -0.30128459 -0.277964436
## [26,] -0.26187584 -0.22787787 -0.321727662
## [27,] -0.31345279 -0.30128459 -0.346463398
## [28,] -0.27047199 -0.27567760 -0.316019415
## [29,] -0.27262103 -0.27226333 -0.316019415
## [30,] -0.23608736 -0.23812067 -0.268450692
## [31,] -0.19095753 -0.21592794 -0.310311168
## [32,] -0.30270759 -0.30469886 -0.287478181
## [33,] -0.22749120 -0.13910695 0.039794635
## [34,] -0.32204895 -0.32006306 -0.258936947
## [35,] -0.05126995 0.09477027 0.230069528
## Tenaga Keteknisan Medis Tenaga Teknik Biomedika
## [1,] 1.18019920 0.90735474
## [2,] 5.54398593 5.59706861
## [3,] -0.16659151 -0.18027991
## [4,] -0.05339641 -0.01669258
## [5,] -0.24821519 -0.25417843
## [6,] -0.26592599 -0.28260094
## [7,] -0.21279359 -0.20743920
## [8,] -0.27054620 -0.26428421
## [9,] -0.31135804 -0.29144350
## [10,] -0.22665422 -0.25354682
## [11,] -0.16274134 -0.20175469
## [12,] -0.12808977 -0.14743612
## [13,] -0.08496783 -0.13543551
## [14,] -0.20740335 -0.24217782
## [15,] -0.20278314 -0.25607327
## [16,] -0.15119082 -0.21312370
## [17,] -0.25206536 -0.21059725
## [18,] -0.27208627 -0.26049454
## [19,] -0.26361588 -0.27312677
## [20,] -0.23743470 -0.18785925
## [21,] -0.28055665 -0.21691336
## [22,] -0.23435456 -0.22196626
## [23,] -0.27285630 -0.24217782
## [24,] -0.21048349 -0.21880820
## [25,] -0.28363679 -0.30154928
## [26,] -0.24898522 -0.23396687
## [27,] -0.30057755 -0.29081189
## [28,] -0.28363679 -0.25923132
## [29,] -0.29749741 -0.23649332
## [30,] -0.26515595 -0.21122886
## [31,] -0.20124307 -0.18027991
## [32,] -0.24436502 -0.25038876
## [33,] 0.07211925 0.10141873
## [34,] -0.28594689 -0.26491582
## [35,] 0.33085092 0.40143409
## Tenaga Kesehatan Tradisional
## [1,] 5.74614553
## [2,] -0.07530694
## [3,] -0.17476895
## [4,] -0.17184359
## [5,] -0.17476895
## [6,] -0.17476895
## [7,] -0.17476895
## [8,] -0.17476895
## [9,] -0.17476895
## [10,] -0.17476895
## [11,] -0.17476895
## [12,] -0.14551542
## [13,] -0.16599289
## [14,] -0.17476895
## [15,] -0.16014218
## [16,] -0.16891824
## [17,] -0.17184359
## [18,] -0.17476895
## [19,] -0.17476895
## [20,] -0.17476895
## [21,] -0.17476895
## [22,] -0.17476895
## [23,] -0.17476895
## [24,] -0.17476895
## [25,] -0.17476895
## [26,] -0.17476895
## [27,] -0.17476895
## [28,] -0.17476895
## [29,] -0.17476895
## [30,] -0.16891824
## [31,] -0.17476895
## [32,] -0.17476895
## [33,] -0.17476895
## [34,] -0.17476895
## [35,] -0.14844077
## attr(,"scaled:center")
## Angka Penemuan TBC per 100.000 penduduk
## 9.133486e+01
## Angka Keberhasilan Pengobatan TBC (%)
## 8.597143e+01
## Jumlah Kasus Baru AIDS
## 1.859714e+02
## Penemuan Kasus Baru Kusta per 100.000 penduduk
## 3.183143e+00
## Angka Kesakitan Malaria per 1.000 penduduk
## 3.171429e-02
## Angka Kesakitan DBD per 100.000 penduduk
## 3.962000e+01
## Jumlah Kasus baru IMS
## 3.631429e+01
## % Penemuan Kasus Diare Balita
## 2.714303e+02
## Jumlah Rumah Sakit Umum
## 8.885714e+00
## Jumlah Rumah Sakit Khusus
## 1.428571e+00
## Jumlah Puskesmas Rawat Inap
## 1.060000e+01
## Jumlah Puskesmas Non Rawat Inap
## 1.457143e+01
## Jumlah Klinik Pratama
## 2.402857e+01
## Jumlah Posyandu
## 1.429257e+03
## Tenaga Medis
## 1.158114e+03
## Psikologi Klinis
## 6.885714e+01
## Tenaga Keperawatan
## 3.686000e+03
## Tenaga Kebidanan
## 1.760800e+03
## Tenaga Kefarmasian
## 1.102371e+03
## Tenaga Kesehatan Masyarakat
## 2.685714e+02
## Tenaga Kesehatan Lingkungan
## 1.728571e+02
## Tenaga Gizi
## 2.274857e+02
## Tenaga Keterapianfisik
## 1.990857e+02
## Tenaga Keteknisan Medis
## 4.913429e+02
## Tenaga Teknik Biomedika
## 5.874286e+02
## Tenaga Kesehatan Tradisional
## 5.974286e+01
## attr(,"scaled:scale")
## Angka Penemuan TBC per 100.000 penduduk
## 3.062713e+01
## Angka Keberhasilan Pengobatan TBC (%)
## 3.936897e+00
## Jumlah Kasus Baru AIDS
## 1.219326e+02
## Penemuan Kasus Baru Kusta per 100.000 penduduk
## 3.417440e+00
## Angka Kesakitan Malaria per 1.000 penduduk
## 1.136943e-01
## Angka Kesakitan DBD per 100.000 penduduk
## 2.499016e+01
## Jumlah Kasus baru IMS
## 8.085309e+01
## % Penemuan Kasus Diare Balita
## 1.673727e+02
## Jumlah Rumah Sakit Umum
## 4.625832e+00
## Jumlah Rumah Sakit Khusus
## 2.355041e+00
## Jumlah Puskesmas Rawat Inap
## 5.709641e+00
## Jumlah Puskesmas Non Rawat Inap
## 6.980164e+00
## Jumlah Klinik Pratama
## 1.973722e+01
## Jumlah Posyandu
## 6.002580e+02
## Tenaga Medis
## 3.249516e+03
## Psikologi Klinis
## 3.417755e+02
## Tenaga Keperawatan
## 1.066763e+04
## Tenaga Kebidanan
## 4.955357e+03
## Tenaga Kefarmasian
## 3.096005e+03
## Tenaga Kesehatan Masyarakat
## 6.886239e+02
## Tenaga Kesehatan Lingkungan
## 4.653241e+02
## Tenaga Gizi
## 5.857774e+02
## Tenaga Keterapianfisik
## 5.255554e+02
## Tenaga Keteknisan Medis
## 1.298643e+03
## Tenaga Teknik Biomedika
## 1.583252e+03
## Tenaga Kesehatan Tradisional
## 3.418391e+02
Data yang didapatkan seringkali masih terdapat banyak masalah dan tidak bisa langsung digunakan untuk analisis, maka dari itu dilakukan pembersihan data terlebih dahulu dengan menghapus baris yang tidak termasuk dalam ke 35 kabupaten/kota. Lalu mengisi missing value dengan angka 0 karena ini merupakan data Kesehatan yang tidak bisa dilakukan imputasi mean/modus menghindari perubahan data asli secara masif. PCA sangat sensitif terhadap skala variabel. Oleh karena itu, seluruh variabel diubah ke dalam skala standar (z-score) sehingga memiliki rata-rata 0 dan standar deviasi 1. Ini bertujuan agar variabel dengan skala besar tidak mendominasi pembentukan komponen utama.
# 7. Hitung matriks korelasi
R <- cor(X_scaled)
# 8. Visualisasi matriks korelasi
corrplot(R, method = "color", type = "upper", tl.cex = 0.6, tl.col = "black",
addCoef.col = "black", title = "Matriks Korelasi Variabel", mar = c(0,0,2,0))
# 9. Hitung eigenvalue dan eigenvector
eigen_R <- eigen(R)
eigenvalues <- eigen_R$values
eigenvectors <- eigen_R$vectors
# 10. Hitung proporsi dan kumulatif variansi
prop_var <- eigenvalues / sum(eigenvalues)
cum_var <- cumsum(prop_var)
# 11. Buat ringkasan PCA
pca_summary <- data.frame(
Komponen = paste0("PC", 1:length(eigenvalues)),
Eigenvalue = eigenvalues,
Proporsi = round(prop_var, 4),
Kumulatif = round(cum_var, 4),
Dipertahankan = ifelse(eigenvalues > 1, "Ya", "Tidak")
)
# 12. Tampilkan ringkasan PCA
print(pca_summary)
## Komponen Eigenvalue Proporsi Kumulatif Dipertahankan
## 1 PC1 1.070293e+01 0.4117 0.4117 Ya
## 2 PC2 3.734479e+00 0.1436 0.5553 Ya
## 3 PC3 2.911276e+00 0.1120 0.6673 Ya
## 4 PC4 2.470260e+00 0.0950 0.7623 Ya
## 5 PC5 1.374762e+00 0.0529 0.8151 Ya
## 6 PC6 1.010315e+00 0.0389 0.8540 Ya
## 7 PC7 1.001075e+00 0.0385 0.8925 Ya
## 8 PC8 7.381957e-01 0.0284 0.9209 Tidak
## 9 PC9 6.415455e-01 0.0247 0.9456 Tidak
## 10 PC10 4.279513e-01 0.0165 0.9620 Tidak
## 11 PC11 3.180480e-01 0.0122 0.9743 Tidak
## 12 PC12 2.315643e-01 0.0089 0.9832 Tidak
## 13 PC13 1.739550e-01 0.0067 0.9899 Tidak
## 14 PC14 1.387793e-01 0.0053 0.9952 Tidak
## 15 PC15 8.008079e-02 0.0031 0.9983 Tidak
## 16 PC16 3.564569e-02 0.0014 0.9996 Tidak
## 17 PC17 6.092259e-03 0.0002 0.9999 Tidak
## 18 PC18 1.301752e-03 0.0001 0.9999 Tidak
## 19 PC19 6.035990e-04 0.0000 1.0000 Tidak
## 20 PC20 4.532453e-04 0.0000 1.0000 Tidak
## 21 PC21 3.111841e-04 0.0000 1.0000 Tidak
## 22 PC22 1.770864e-04 0.0000 1.0000 Tidak
## 23 PC23 1.099483e-04 0.0000 1.0000 Tidak
## 24 PC24 5.016807e-05 0.0000 1.0000 Tidak
## 25 PC25 2.982314e-05 0.0000 1.0000 Tidak
## 26 PC26 7.247488e-06 0.0000 1.0000 Tidak
# 13. Visualisasi Scree Plot
pca_summary$Komponen <- factor(paste0("PC", 1:nrow(pca_summary)), levels = paste0("PC", 1:nrow(pca_summary)))
ggplot(pca_summary, aes(x = Komponen, y = Eigenvalue)) +
geom_col(fill = "#0072B2") +
geom_line(aes(group = 1), color = "red", linetype = "dashed") +
geom_point(color = "red", size = 2) +
geom_hline(yintercept = 1, color = "darkgreen", linetype = "dotted") +
labs(title = "Scree Plot - PCA", x = "Komponen Utama", y = "Nilai Eigen") +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
# 14. Hitung Loading Factor
loading_factors <- eigenvectors %*% diag(sqrt(eigenvalues))
rownames(loading_factors) <- colnames(X_scaled)
colnames(loading_factors) <- paste0("PC", 1:ncol(loading_factors))
print("Matriks Loading Factor:")
## [1] "Matriks Loading Factor:"
print(round(loading_factors, 3))
## PC1 PC2 PC3 PC4
## Angka Penemuan TBC per 100.000 penduduk -0.074 0.252 0.586 -0.561
## Angka Keberhasilan Pengobatan TBC (%) -0.165 -0.208 0.094 0.294
## Jumlah Kasus Baru AIDS -0.487 0.747 -0.207 -0.007
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.185 0.019 0.100 -0.090
## Angka Kesakitan Malaria per 1.000 penduduk 0.002 0.058 0.321 -0.326
## Angka Kesakitan DBD per 100.000 penduduk -0.393 -0.238 -0.008 0.395
## Jumlah Kasus baru IMS -0.333 0.902 -0.076 -0.047
## % Penemuan Kasus Diare Balita 0.039 0.358 0.458 -0.362
## Jumlah Rumah Sakit Umum -0.520 0.637 -0.339 0.151
## Jumlah Rumah Sakit Khusus -0.535 0.791 0.047 -0.034
## Jumlah Puskesmas Rawat Inap -0.337 -0.176 -0.653 0.195
## Jumlah Puskesmas Non Rawat Inap -0.298 0.207 -0.257 0.409
## Jumlah Klinik Pratama -0.383 0.749 -0.359 -0.021
## Jumlah Posyandu -0.341 -0.125 -0.397 0.569
## Tenaga Medis -0.931 -0.083 0.321 0.125
## Psikologi Klinis -0.422 -0.263 -0.586 -0.625
## Tenaga Keperawatan -0.911 -0.058 0.353 0.184
## Tenaga Kebidanan -0.917 -0.111 0.305 0.199
## Tenaga Kefarmasian -0.936 -0.075 0.307 0.128
## Tenaga Kesehatan Masyarakat -0.966 -0.215 0.028 -0.124
## Tenaga Kesehatan Lingkungan -0.894 -0.255 -0.201 -0.300
## Tenaga Gizi -0.956 -0.213 -0.057 -0.184
## Tenaga Keterapianfisik -0.936 -0.202 -0.113 -0.253
## Tenaga Keteknisan Medis -0.971 -0.114 0.197 0.037
## Tenaga Teknik Biomedika -0.963 -0.098 0.236 0.060
## Tenaga Kesehatan Tradisional -0.352 -0.261 -0.617 -0.638
## PC5 PC6 PC7 PC8
## Angka Penemuan TBC per 100.000 penduduk -0.175 -0.192 0.131 0.017
## Angka Keberhasilan Pengobatan TBC (%) 0.176 -0.471 0.565 0.488
## Jumlah Kasus Baru AIDS 0.021 -0.148 0.061 0.051
## Penemuan Kasus Baru Kusta per 100.000 penduduk -0.788 -0.274 0.208 -0.338
## Angka Kesakitan Malaria per 1.000 penduduk 0.619 -0.008 0.339 -0.409
## Angka Kesakitan DBD per 100.000 penduduk 0.286 -0.166 -0.484 0.033
## Jumlah Kasus baru IMS 0.086 0.073 -0.012 0.096
## % Penemuan Kasus Diare Balita -0.310 0.005 -0.324 0.367
## Jumlah Rumah Sakit Umum -0.038 -0.124 -0.087 -0.119
## Jumlah Rumah Sakit Khusus 0.083 -0.007 0.002 -0.033
## Jumlah Puskesmas Rawat Inap -0.054 -0.476 -0.149 -0.165
## Jumlah Puskesmas Non Rawat Inap -0.196 0.591 0.323 0.059
## Jumlah Klinik Pratama 0.098 -0.120 0.043 -0.024
## Jumlah Posyandu -0.239 0.059 0.157 0.010
## Tenaga Medis -0.032 0.009 -0.009 -0.035
## Psikologi Klinis -0.001 0.051 0.039 0.086
## Tenaga Keperawatan -0.026 0.005 -0.007 -0.044
## Tenaga Kebidanan -0.023 0.003 -0.015 -0.049
## Tenaga Kefarmasian -0.028 0.008 -0.017 -0.034
## Tenaga Kesehatan Masyarakat -0.027 0.029 0.004 0.003
## Tenaga Kesehatan Lingkungan -0.010 0.045 0.015 0.031
## Tenaga Gizi -0.020 0.034 0.012 0.006
## Tenaga Keterapianfisik -0.023 0.039 0.012 0.017
## Tenaga Keteknisan Medis -0.021 0.018 -0.005 -0.023
## Tenaga Teknik Biomedika -0.031 0.015 -0.006 -0.026
## Tenaga Kesehatan Tradisional 0.000 0.053 0.040 0.089
## PC9 PC10 PC11 PC12
## Angka Penemuan TBC per 100.000 penduduk 0.118 -0.203 0.323 0.054
## Angka Keberhasilan Pengobatan TBC (%) 0.110 0.075 -0.068 0.006
## Jumlah Kasus Baru AIDS 0.121 -0.056 0.029 -0.175
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.221 0.160 -0.037 0.031
## Angka Kesakitan Malaria per 1.000 penduduk -0.049 0.340 0.029 0.023
## Angka Kesakitan DBD per 100.000 penduduk 0.451 0.174 0.212 0.062
## Jumlah Kasus baru IMS -0.006 0.013 0.059 0.116
## % Penemuan Kasus Diare Balita -0.177 0.387 -0.069 0.046
## Jumlah Rumah Sakit Umum 0.161 0.079 -0.135 -0.205
## Jumlah Rumah Sakit Khusus -0.027 -0.010 0.041 -0.080
## Jumlah Puskesmas Rawat Inap -0.148 -0.004 -0.043 0.179
## Jumlah Puskesmas Non Rawat Inap 0.296 0.078 -0.009 0.158
## Jumlah Klinik Pratama -0.159 -0.061 -0.019 0.235
## Jumlah Posyandu -0.369 0.176 0.346 -0.112
## Tenaga Medis -0.034 -0.038 -0.019 0.031
## Psikologi Klinis 0.060 0.044 0.032 -0.014
## Tenaga Keperawatan -0.050 -0.030 -0.031 0.020
## Tenaga Kebidanan -0.048 -0.013 -0.068 -0.035
## Tenaga Kefarmasian -0.037 -0.036 -0.029 0.013
## Tenaga Kesehatan Masyarakat 0.001 -0.010 -0.018 -0.008
## Tenaga Kesehatan Lingkungan 0.017 0.023 -0.015 -0.017
## Tenaga Gizi 0.001 0.002 -0.013 -0.011
## Tenaga Keterapianfisik -0.003 0.006 0.001 0.004
## Tenaga Keteknisan Medis -0.026 -0.016 -0.013 0.010
## Tenaga Teknik Biomedika -0.030 -0.024 -0.022 0.021
## Tenaga Kesehatan Tradisional 0.066 0.047 0.036 -0.020
## PC13 PC14 PC15 PC16
## Angka Penemuan TBC per 100.000 penduduk -0.138 -0.003 -0.078 0.007
## Angka Keberhasilan Pengobatan TBC (%) -0.012 -0.042 0.016 -0.007
## Jumlah Kasus Baru AIDS 0.139 0.249 -0.029 0.040
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.109 -0.032 0.058 -0.009
## Angka Kesakitan Malaria per 1.000 penduduk -0.016 0.043 -0.024 0.001
## Angka Kesakitan DBD per 100.000 penduduk 0.059 -0.035 0.017 0.015
## Jumlah Kasus baru IMS 0.056 0.019 0.055 -0.146
## % Penemuan Kasus Diare Balita -0.047 0.047 -0.033 0.025
## Jumlah Rumah Sakit Umum -0.137 -0.135 -0.131 -0.031
## Jumlah Rumah Sakit Khusus -0.139 -0.072 0.200 0.059
## Jumlah Puskesmas Rawat Inap -0.190 0.142 0.008 -0.007
## Jumlah Puskesmas Non Rawat Inap -0.118 0.067 -0.028 0.030
## Jumlah Klinik Pratama 0.156 -0.133 -0.066 0.074
## Jumlah Posyandu 0.021 -0.031 -0.018 -0.005
## Tenaga Medis 0.008 0.007 -0.021 -0.013
## Psikologi Klinis 0.008 -0.017 0.011 -0.004
## Tenaga Keperawatan 0.005 0.008 -0.005 -0.008
## Tenaga Kebidanan 0.010 0.015 0.021 0.014
## Tenaga Kefarmasian 0.008 0.000 -0.012 -0.004
## Tenaga Kesehatan Masyarakat 0.009 0.013 0.005 0.005
## Tenaga Kesehatan Lingkungan -0.001 -0.005 0.017 0.003
## Tenaga Gizi 0.013 -0.006 0.006 0.001
## Tenaga Keterapianfisik 0.028 -0.022 -0.004 -0.011
## Tenaga Keteknisan Medis 0.009 -0.006 -0.008 -0.003
## Tenaga Teknik Biomedika 0.009 0.001 -0.008 -0.008
## Tenaga Kesehatan Tradisional 0.006 -0.017 0.013 -0.001
## PC17 PC18 PC19 PC20
## Angka Penemuan TBC per 100.000 penduduk -0.006 -0.002 -0.001 -0.001
## Angka Keberhasilan Pengobatan TBC (%) 0.001 0.000 0.000 0.000
## Jumlah Kasus Baru AIDS 0.005 0.001 0.001 0.000
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.000 0.000 0.000 0.000
## Angka Kesakitan Malaria per 1.000 penduduk 0.000 0.000 0.000 0.000
## Angka Kesakitan DBD per 100.000 penduduk -0.001 0.000 0.000 0.000
## Jumlah Kasus baru IMS -0.009 -0.001 -0.001 -0.001
## % Penemuan Kasus Diare Balita 0.001 0.000 0.000 0.000
## Jumlah Rumah Sakit Umum -0.002 0.000 0.000 0.000
## Jumlah Rumah Sakit Khusus 0.008 0.002 0.001 0.001
## Jumlah Puskesmas Rawat Inap 0.001 -0.001 0.000 0.000
## Jumlah Puskesmas Non Rawat Inap 0.000 -0.001 0.000 0.000
## Jumlah Klinik Pratama -0.005 0.000 0.000 0.000
## Jumlah Posyandu -0.002 0.000 0.000 0.000
## Tenaga Medis 0.012 0.007 0.010 0.006
## Psikologi Klinis -0.002 -0.003 0.005 0.001
## Tenaga Keperawatan 0.002 0.004 0.002 0.007
## Tenaga Kebidanan -0.038 -0.022 -0.002 -0.003
## Tenaga Kefarmasian 0.016 -0.014 0.009 -0.003
## Tenaga Kesehatan Masyarakat -0.028 0.009 -0.012 0.009
## Tenaga Kesehatan Lingkungan -0.018 0.014 0.004 -0.006
## Tenaga Gizi -0.013 -0.001 -0.002 -0.002
## Tenaga Keterapianfisik 0.050 -0.009 -0.012 0.003
## Tenaga Keteknisan Medis 0.015 0.010 -0.006 -0.015
## Tenaga Teknik Biomedika 0.003 0.006 0.006 0.002
## Tenaga Kesehatan Tradisional -0.001 -0.006 0.005 0.001
## PC21 PC22 PC23 PC24
## Angka Penemuan TBC per 100.000 penduduk 0.001 0.000 0.000 0.000
## Angka Keberhasilan Pengobatan TBC (%) 0.000 0.000 0.000 0.000
## Jumlah Kasus Baru AIDS 0.000 0.000 0.000 0.000
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.000 0.000 0.000 0.000
## Angka Kesakitan Malaria per 1.000 penduduk 0.000 0.000 0.000 0.000
## Angka Kesakitan DBD per 100.000 penduduk 0.000 0.000 0.000 0.000
## Jumlah Kasus baru IMS 0.000 0.000 0.000 0.000
## % Penemuan Kasus Diare Balita 0.000 0.000 0.000 0.000
## Jumlah Rumah Sakit Umum 0.000 0.000 0.000 0.000
## Jumlah Rumah Sakit Khusus -0.001 0.000 0.000 0.000
## Jumlah Puskesmas Rawat Inap 0.000 0.000 0.000 0.000
## Jumlah Puskesmas Non Rawat Inap 0.000 0.000 0.000 0.000
## Jumlah Klinik Pratama 0.000 0.000 0.000 0.000
## Jumlah Posyandu 0.000 0.000 0.000 0.000
## Tenaga Medis 0.000 -0.004 0.002 -0.005
## Psikologi Klinis -0.003 -0.003 -0.002 0.000
## Tenaga Keperawatan 0.006 -0.001 -0.003 0.004
## Tenaga Kebidanan 0.004 -0.004 -0.001 -0.001
## Tenaga Kefarmasian -0.008 0.007 -0.003 0.000
## Tenaga Kesehatan Masyarakat -0.008 0.001 -0.002 -0.001
## Tenaga Kesehatan Lingkungan 0.008 0.005 -0.003 -0.001
## Tenaga Gizi 0.000 0.005 0.008 0.000
## Tenaga Keterapianfisik 0.005 0.001 0.000 -0.001
## Tenaga Keteknisan Medis -0.004 -0.005 -0.001 0.000
## Tenaga Teknik Biomedika -0.001 -0.002 0.003 0.003
## Tenaga Kesehatan Tradisional -0.001 -0.004 0.000 0.001
## PC25 PC26
## Angka Penemuan TBC per 100.000 penduduk 0.000 0.000
## Angka Keberhasilan Pengobatan TBC (%) 0.000 0.000
## Jumlah Kasus Baru AIDS 0.000 0.000
## Penemuan Kasus Baru Kusta per 100.000 penduduk 0.000 0.000
## Angka Kesakitan Malaria per 1.000 penduduk 0.000 0.000
## Angka Kesakitan DBD per 100.000 penduduk 0.000 0.000
## Jumlah Kasus baru IMS 0.000 0.000
## % Penemuan Kasus Diare Balita 0.000 0.000
## Jumlah Rumah Sakit Umum 0.000 0.000
## Jumlah Rumah Sakit Khusus 0.000 0.000
## Jumlah Puskesmas Rawat Inap 0.000 0.000
## Jumlah Puskesmas Non Rawat Inap 0.000 0.000
## Jumlah Klinik Pratama 0.000 0.000
## Jumlah Posyandu 0.000 0.000
## Tenaga Medis 0.001 0.000
## Psikologi Klinis 0.000 -0.002
## Tenaga Keperawatan 0.003 0.000
## Tenaga Kebidanan -0.001 0.000
## Tenaga Kefarmasian 0.000 0.000
## Tenaga Kesehatan Masyarakat 0.000 0.000
## Tenaga Kesehatan Lingkungan -0.001 0.000
## Tenaga Gizi 0.002 0.000
## Tenaga Keterapianfisik -0.001 0.000
## Tenaga Keteknisan Medis 0.001 0.000
## Tenaga Teknik Biomedika -0.004 0.000
## Tenaga Kesehatan Tradisional 0.001 0.002
Matriks korelasi dihitung dari data yang telah distandarkan menggunakan fungsi cor(). Matriks ini menunjukkan hubungan linear antar variabel dalam skala -1 hingga 1. Selanjutnya, dilakukan dekomposisi eigen terhadap matriks korelasi menggunakan eigen(), menghasilkan eigenvalue dan eigenvector. Eigenvalue menunjukkan besarnya variansi yang dijelaskan oleh setiap komponen utama. Eigenvector adalah vektor arah yang digunakan untuk mengubah basis data ke ruang komponen baru.
Visualisasi matriks korelasi dibuat menggunakan corrplot, sedangkan Scree Plot dan Variansi Kumulatif divisualisasikan dengan ggplot2. Output yang dihasilkan adalah: Matriks korelasi berwarna, Tabel ringkasan PCA yang menampilkan eigenvalue, proporsi variansi, dan variansi kumulatif, Scree plot yang menunjukkan penurunan nilai eigenvalue dan Tabel Loading Faktor.
Scree plot menunjukkan bahwa hanya 7 komponen utama (principal components) yang memiliki nilai eigen lebih dari 1, sehingga layak dipertahankan berdasarkan Kaiser Criterion. Komponen-komponen ini menjelaskan sebagian besar variasi dalam data. Komponen pertama memiliki kontribusi paling besar terhadap total varians.
Tabel nilai eigen menguatkan hasil scree plot, di mana hanya 7 nilai eigen di atas 1. Total proporsi varians kumulatif yang dijelaskan oleh ketujuh komponen tersebut sudah mendekati atau melebihi 80%, artinya data telah berhasil direduksi tanpa kehilangan banyak informasi.
Pada Tabel Loading Faktor, PC1 merepresentasikan dimensi sumber daya tenaga kesehatan, dengan kontribusi kuat dari variabel Tenaga Medis (-0,931), Tenaga Keperawatan (-0,911), dan Tenaga Kebidanan (-0,917), menunjukkan peran dominan ketersediaan tenaga kesehatan dalam komponen ini. PC2 mencerminkan dimensi penyakit menular dan fasilitas kesehatan, ditandai dengan loading tinggi pada Jumlah Kasus Baru AIDS (0,747) dan Jumlah Kasus Baru IMS (0,902), sementara PC3 mengidentifikasi dimensi layanan kesehatan spesifik seperti Psikologi Klinis (-0,586) dan Tenaga Kesehatan Tradisional (-0,617). Interpretasi ini memperlihatkan struktur data kesehatan yang terbagi atas ketersediaan tenaga medis, beban penyakit infeksi, serta layanan kesehatan pendukung, sehingga membantu memahami variasi utama dalam sistem kesehatan secara lebih komprehensif. Interpretasi ini sangat penting untuk memahami arti dari masing-masing komponen utama, karena membantu kita mengetahui apa yang direpresentasikan oleh komponen tersebut secara konseptual.
# 15. Hitung Skor Komponen Utama (PC Scores)
PC_scores <- X_scaled %*% eigenvectors
# 16. Buat dataframe skor PC
PC_df <- as.data.frame(PC_scores)
colnames(PC_df) <- paste0("PC", 1:ncol(PC_df))
PC_df$Kabupaten <- data_clean$`Kabupaten / Kota`
# 17. Ambil hanya komponen dengan eigenvalue > 1 (reduksi dimensi)
retained_components <- which(eigenvalues > 1)
PC_reduced <- PC_df[, c(retained_components, ncol(PC_df))] # kolom terpilih + kabupaten
print(PC_reduced)
## PC1 PC2 PC3 PC4 PC5 PC6
## 1 -6.3266634 -2.87345123 -6.11349019 -5.78453157 0.006381886 0.29908545
## 2 -16.9765126 -1.09837244 3.19916899 2.03203665 -0.086311477 0.02442812
## 3 0.7898494 -0.12312316 1.00359490 -0.51652940 -0.185366011 -0.63326827
## 4 0.3738161 -1.59204016 -0.20221515 1.21226315 0.751238382 0.29459451
## 5 0.6712553 0.50741540 -0.45767237 0.62176730 -0.635919967 1.16915111
## 6 0.8861997 -0.53405688 -0.88030912 0.83761821 0.240475572 0.90203583
## 7 0.8818886 -0.97834766 0.19863860 0.90020541 -0.009459620 0.42547703
## 8 1.1880426 -0.79150285 -0.57729443 0.72614967 0.413857523 1.66518892
## 9 0.5753929 -0.54170042 -1.00903741 1.59700917 1.016828715 -0.61634351
## 10 0.4297877 -0.22757174 -0.81113953 1.26293992 0.705437289 -0.13579630
## 11 0.8279958 0.05860894 0.27647797 -0.29314296 0.516845687 -0.71074107
## 12 0.5032434 -0.82876634 -0.56432309 1.73313147 -0.348537545 1.80741699
## 13 0.5426311 -0.36970198 -0.39198592 0.19083894 0.475980835 -1.03141312
## 14 0.3111360 -0.17070866 -1.51970105 1.15195939 0.289732063 -2.07251697
## 15 0.4663551 -0.53019494 -0.49413886 1.12826054 1.317657583 -0.81694136
## 16 0.5113184 0.02366274 -0.41513442 0.76450243 -0.905986847 0.44855755
## 17 1.0449038 -1.18288756 0.75892853 -0.30922675 0.176806197 -1.31286167
## 18 0.3685259 1.10298523 -0.91461949 0.56868029 0.140694049 -0.50470041
## 19 0.8697420 0.04275591 0.34291004 -0.18354536 0.513838752 -1.03471424
## 20 0.9009665 -0.70398434 -0.14768749 0.17340877 -0.008456826 -1.02758592
## 21 0.7908631 -0.43889697 -0.41336340 0.50047857 0.107266442 -1.02534704
## 22 0.9489014 -0.13424163 -0.42743859 0.50161362 0.684414264 0.35148128
## 23 1.4508911 -0.88489854 0.28541474 0.17747947 -0.269493108 2.19648776
## 24 0.5823842 -0.49172581 -0.38987790 0.91473171 0.455250500 0.62310937
## 25 1.5520769 -0.70678449 0.41109595 -0.25412776 -0.328728209 1.72680115
## 26 1.0540958 -0.94386418 0.50418520 0.58229904 -0.869879662 -0.03256030
## 27 1.1210283 -0.19125237 -0.03061832 0.45999522 -0.461419669 -0.10821621
## 28 0.8392602 0.29166486 -0.23582661 0.55526985 -2.343690316 -0.55500128
## 29 0.7298970 0.56289218 -1.31121517 0.07198241 -2.362167822 -1.01106843
## 30 1.5594143 0.18828347 2.17206536 -2.11336858 0.219664186 1.45269018
## 31 -0.1653296 3.07925719 0.59909734 -0.74953290 1.017544369 -0.64774053
## 32 1.5957016 0.13688478 3.10019182 -2.95999087 4.004509032 -0.03412932
## 33 -2.8885279 9.76967133 -1.85656697 -0.24496306 0.168045575 0.70300407
## 34 1.7192036 0.17470892 2.25447335 -1.80987782 -2.764770396 -0.60673171
## 35 0.2702657 0.39928341 4.05741272 -3.44578417 -1.642281427 -0.17183164
## PC7 Kabupaten
## 1 0.226501177 Cilacap
## 2 -0.028020361 Banyumas
## 3 -0.034779249 Purbalingga
## 4 -0.583419240 Banjarnegara
## 5 0.308319756 Kebumen
## 6 -0.736450704 Purworejo
## 7 0.779531896 Wonosobo
## 8 0.222436724 Magelang
## 9 -0.823024874 Boyolali
## 10 -1.272472985 Klaten
## 11 -1.672974375 Sukoharjo
## 12 1.076221384 Wonogiri
## 13 -0.858243813 Karanganyar
## 14 -0.265732922 Sragen
## 15 0.031481339 Grobogan
## 16 -0.075330324 Blora
## 17 -1.139107116 Rembang
## 18 0.311559726 Pati
## 19 0.828949836 Kudus
## 20 -0.008188420 Jepara
## 21 0.763132906 Demak
## 22 0.554971681 Semarang
## 23 -0.080280886 Temanggung
## 24 -1.316571719 Kendal
## 25 0.039059939 Batang
## 26 1.367159117 Pekalongan
## 27 2.071697782 Pemalang
## 28 1.645462725 Tegal
## 29 -0.159207949 Brebes
## 30 -2.604189459 Kota Magelang
## 31 -0.007283058 Kota Surakarta
## 32 2.080528654 Kota Salatiga
## 33 -0.043984388 Kota Semarang
## 34 -0.736045164 Kota Pekalongan
## 35 0.138292367 Kota Tegal
# 18. Visualisasi hasil reduksi (scatter plot PC1 vs PC2)
ggplot(PC_reduced, aes(x = PC1, y = PC2, label = Kabupaten)) +
geom_point(color = "steelblue", size = 3) +
geom_text(size = 2.5, vjust = -1) +
theme_minimal() +
labs(title = "Scatterplot Komponen Utama (PC1 vs PC2)",
x = "PC1", y = "PC2")
Pada tahap ini, ditentukan berapa banyak komponen utama yang akan dipertahankan menggunakan Kaiser Criterion, yaitu hanya mempertahankan komponen dengan eigenvalue > 1. Alasan penggunaan kriteria ini adalah karena komponen dengan eigenvalue di bawah 1 dianggap tidak cukup kuat untuk menjelaskan lebih banyak variasi daripada variabel asli.
Skor dari komponen utama (Principal Component Scores) dihitung dengan mengalikan data hasil standarisasi dengan vektor eigen menggunakan operasi matriks X_scaled %*% eigenvectors. Kemudian diambil hanya skor dari komponen yang memenuhi kriteria. Output berupa Dataframe PC tereduksi (PC1, PC2, dst) + nama kabupaten dan Scatter plot PC1 vs PC2 untuk melihat distribusi dan pola klaster antar daerah.
Plot PCA scores menampilkan distribusi individu (observasi) dalam ruang dua dimensi berdasarkan PC1 dan PC2. Titik-titik dengan pola yang serupa cenderung berdekatan, mengindikasikan adanya kemiripan karakteristik antara observasi. Plot ini berguna untuk mengidentifikasi klaster atau outlier dalam data.
# 19. Ringkasan akhir
cat("\n\nJumlah variabel asli:", ncol(X),
"\nJumlah komponen utama terpilih (Eigenvalue > 1):", length(retained_components),
"\nTotal variansi yang dijelaskan:", round(cum_var[max(retained_components)] * 100, 2), "%\n")
##
##
## Jumlah variabel asli: 26
## Jumlah komponen utama terpilih (Eigenvalue > 1): 7
## Total variansi yang dijelaskan: 89.25 %
# 20. (Opsional) Simpan hasil PCA tereduksi untuk analisis lanjutan
write.csv(PC_reduced, "PCA_Hasil_Tereduksi.csv", row.names = FALSE)
Bagian ini memberikan ringkasan dari hasil analisis PCA. Informasi yang ditampilkan meliputi: Jumlah variabel asli dari data sebelum dilkakukan PCA ada sebanyak 26 variabel Jumlah komponen utama yang dipertahankan berdasarkan kriteria Kaiser ada 7 variabel Total persentase variansi yang dijelaskan oleh komponen terpilih sebesar 89.25 %
Hasil ini memberikan insight bahwa sebagian besar variasi dalam data kesehatan dapat dijelaskan hanya dengan beberapa komponen utama saja. Data tereduksi ini bisa digunakan untuk analisis lanjutan seperti klasterisasi atau visualisasi dua dimensi.