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)
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”)
# Menghasilkan statistik deskriptif (min, Q1, median, mean, Q3, max) untuk semua variabel numerik
data_numerik <- data_kesehatan_aktif[sapply(data_kesehatan_aktif, is.numeric)]
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)) }
summary_table <- t(sapply(data_numerik, summarize_variable)) summary_table <- as.data.frame(summary_table)
summary_table$Variabel <- rownames(summary_table) rownames(summary_table) <- NULL
summary_table <- summary_table[, c(ncol(summary_table), 1:(ncol(summary_table)-1))]
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) )
kmo_overall <- data.frame( Variabel = “KMO Overall”, MSA = round(kmo_result$MSA, 3) )
kmo_full_table <- rbind(kmo_table, kmo_overall)
data_normalized <- scale(data_numerik) head(data_normalized)
pca <- prcomp(data_normalized) # Lihat langsung matriks korelasi cor_matrix <- cor(data_numerik) round(cor_matrix, 3)
pca_summary <- summary(pca)
pca_variance <- as.data.frame(pca_summary$importance)
pca_variance$Metrik <- rownames(pca_variance)
pca_variance <- pca_variance[, c(ncol(pca_variance), 1:(ncol(pca_variance) - 1))]
pca_variance[, -1] <- round(pca_variance[, -1], 3)
print(pca_variance)
eig <- get_eigenvalue(pca) eig <- round(eig, 3)
if (!require(DT)) install.packages(“DT”)
datatable(eig, caption = “Nilai Eigen & Proporsi Varians Tiap Komponen”, options = list(scrollX = TRUE))
loadings <- pca$rotation loadings <- round(loadings, 3)
datatable(loadings, caption = “Koefisien Loading PCA (Rotasi Komponen)”, options = list(scrollX = TRUE))