==============================

1. Install dan load library

==============================

install.packages(“psych”) install.packages(“factoextra”) install.packages(“readxl”) install.packages(“DT”) library(DT) library(readxl) library(psych) # Untuk KMO test library(factoextra) # Untuk PCA dan visualisasi library(ggplot2) # Untuk plot (dipakai factoextra)

==============================

2. Input Data (Ambil data dari excel)

==============================

data <- read_excel(“C:/Users/hehehe/Downloads/DATA_KESEHATAN_BERSIH.xlsx”) data_kesehatan_aktif <- data[1:35, 1:27] # Tampilkan seluruh data dalam viewer interaktif datatable(data_kesehatan_aktif, options = list(pageLength = 10), caption = “Data Kesehatan Aktif”)

==============================

3. Ringkasan Statistik Awal

# Menghasilkan statistik deskriptif (min, Q1, median, mean, Q3, max) untuk semua variabel numerik

==============================

Ambil kolom numerik

data_numerik <- data_kesehatan_aktif[sapply(data_kesehatan_aktif, is.numeric)]

Buat fungsi untuk ringkasan satu variabel

summarize_variable <- function(x) { c(Min = min(x, na.rm = TRUE), Q1 (25%) = quantile(x, 0.25, na.rm = TRUE), Median = median(x, na.rm = TRUE), Mean = mean(x, na.rm = TRUE), Q3 (75%) = quantile(x, 0.75, na.rm = TRUE), Max = max(x, na.rm = TRUE)) }

Terapkan ke semua kolom dan jadikan data frame

summary_table <- t(sapply(data_numerik, summarize_variable)) summary_table <- as.data.frame(summary_table)

Tambahkan kolom nama variabel

summary_table$Variabel <- rownames(summary_table) rownames(summary_table) <- NULL

Susun ulang kolom

summary_table <- summary_table[, c(ncol(summary_table), 1:(ncol(summary_table)-1))]

==============================

4. Uji Kelayakan PCA (KMO) untuk menilai apakah data cocok untuk PCA

==============================

KMO(data_numerik) # Jika > 0.5, lanjutkan PCA kmo_result <- KMO(data_numerik) # Buat tabel MSA per variabel kmo_table <- data.frame( Variabel = names(kmo_result\(MSAi), MSA = round(kmo_result\)MSAi, 3) )

Tambahkan baris baru untuk KMO keseluruhan

kmo_overall <- data.frame( Variabel = “KMO Overall”, MSA = round(kmo_result$MSA, 3) )

Gabungkan ke satu tabel

kmo_full_table <- rbind(kmo_table, kmo_overall)

==============================

5. Normalisasi/standarisasi data agar PCA tidak bias terhadap skala variabel

==============================

data_normalized <- scale(data_numerik) head(data_normalized)

==============================

6. Lakukan PCA terhadap data yang telah dinormalisasi

==============================

pca <- prcomp(data_normalized) # Lihat langsung matriks korelasi cor_matrix <- cor(data_numerik) round(cor_matrix, 3)

========================================

7. Ringkasan PCA: untuk mendapatkan proporsi varians dan kumulatif

========================================

pca_summary <- summary(pca)

Ubah matriks ‘importance’ jadi data frame

pca_variance <- as.data.frame(pca_summary$importance)

Tambahkan nama baris sebagai kolom baru

pca_variance$Metrik <- rownames(pca_variance)

Pindahkan kolom ‘Metrik’ ke depan

pca_variance <- pca_variance[, c(ncol(pca_variance), 1:(ncol(pca_variance) - 1))]

Bulatkan nilai numerik

pca_variance[, -1] <- round(pca_variance[, -1], 3)

Tampilkan tabel ringkasan PCA

print(pca_variance)

========================================

8. Eigenvalue dan Proporsi Varians untuk mendapatkan nilai eigen dan % varians

========================================

eig <- get_eigenvalue(pca) eig <- round(eig, 3)

Tampilkan sebagai tabel (jika ingin pakai DT)

if (!require(DT)) install.packages(“DT”)

datatable(eig, caption = “Nilai Eigen & Proporsi Varians Tiap Komponen”, options = list(scrollX = TRUE))

========================================

9. Loading (Koefisien Variabel terhadap Komponen)

========================================

loadings <- pca$rotation loadings <- round(loadings, 3)

datatable(loadings, caption = “Koefisien Loading PCA (Rotasi Komponen)”, options = list(scrollX = TRUE))