Exploratory Data Analysis (EDA) adalah tahap awal dalam analisis data yang bertujuan untuk memahami karakteristik, pola, dan struktur dataset sebelum melakukan analisis statistik atau pemodelan lebih lanjut. EDA memungkinkan peneliti untuk mengidentifikasi distribusi variabel, nilai ekstrem (outlier), missing values, serta hubungan antar variabel. Dengan kata lain, EDA berfungsi untuk memberikan gambaran menyeluruh tentang data dan membantu menentukan metode analisis yang tepat (Tukey, 1977; Bruce, Miles, & Field, 2020).
EDA biasanya dilakukan menggunakan statistik deskriptif, visualisasi data (misalnya histogram, boxplot, dan scatterplot), serta pemeriksaan normalitas dan korelasi antar variabel (Field, 2013). Proses ini sangat penting karena membantu peneliti menghindari kesalahan analisis akibat asumsi data yang tidak terpenuhi atau adanya data yang menyimpang secara ekstrem.
pacman::p_load(readxl, psych, dplyr, tidyr, survey, janitor, magrittr, car, ggplot2)
Data yang dianalisis dilakukan pada level kabupaten/kota di beberapa provinsi.
## tibble [135 × 10] (S3: tbl_df/tbl/data.frame)
## $ Urut : num [1:135] 1 2 3 4 5 6 7 8 9 10 ...
## $ Kode_Prov : num [1:135] 12 12 12 12 12 12 12 12 12 12 ...
## $ Kode_Kab : num [1:135] 1201 1202 1203 1204 1205 ...
## $ Nama_Kab : chr [1:135] "1201. NIAS" "1202. MANDAILING NATAL" "1203. TAPANULI SELATAN" "1204. TAPANULI TENGAH" ...
## $ ECDI_total : num [1:135] 71.3 73.6 87 69.4 93.8 ...
## $ RSE_ECDI : num [1:135] 17.3 11.66 10.02 12.41 6.64 ...
## $ Sanitasi : num [1:135] 34.1 41.2 57.7 60 88.5 ...
## $ RSE_Sanitasi: num [1:135] 16.59 13.13 10.7 8.65 5.19 ...
## $ Gizi : num [1:135] 73.9 77.8 93.4 67.7 67.5 ...
## $ RSE_Gizi : num [1:135] 17.6 11.71 21.48 6.71 8.19 ...
Dataset yang dianalisis terdiri dari 135 observasi dengan variabel-variabel sebagai berikut:
Kode_Prov – Kode provinsi.
Kode_Kab – Kode kabupaten/kota.
Nama_Kab – Nama kabupaten/kota.
ECDI_total – Skor Early Childhood Development
Index (ECDI), mengukur perkembangan anak usia dini secara
keseluruhan. Nilai ini sebagai indikator utama status perkembangan
anak.
RSE_ECDI – Relative Standard Error (RSE)
dari ECDI_total, yang menunjukkan presisi estimasi ECDI di tiap
wilayah.
Sanitasi – Persentase anak umur 2-4 tahun yang
tinggal di rumah dengan akses sanitasi layak. Variabel ini digunakan
sebagai indikator lingkungan dan kondisi kesehatan masyarakat.
RSE_Sanitasi – RSE dari variabel Sanitasi
Gizi – Persentase balita dengan status gizi normal.
Variabel ini digunakan sebagai indikator status gizi dan kesehatan
anak.
RSE_Gizi – RSE dari variabel Gizi.
describe(df %>% select(ECDI_total,
Sanitasi,
Gizi))
## vars n mean sd median trimmed mad min max range skew
## ECDI_total 1 135 77.90 14.36 80.01 78.70 14.92 43.32 100.00 56.68 -0.44
## Sanitasi 2 135 83.97 15.70 89.29 86.47 10.11 20.31 100.00 79.69 -1.52
## Gizi 3 135 75.34 8.31 75.97 75.90 7.26 43.25 94.37 51.12 -0.74
## kurtosis se
## ECDI_total -0.68 1.24
## Sanitasi 2.03 1.35
## Gizi 1.19 0.71
Berdasarkan hasil analisis deskriptif terhadap 135 observasi, diperoleh informasi mengenai tiga variabel utama: ECDI_total, Sanitasi, dan Status Gizi.
ECDI_total memiliki rata-rata sebesar 77,90 dengan median 80,01, menunjukkan distribusi data yang relatif simetris namun sedikit condong ke kiri (skewness = -0.44). Standar deviasi sebesar 14,36 mengindikasikan variasi yang moderat antar wilayah. Kurtosis negatif (-0,68) menandakan distribusi lebih flat (platykurtic), sehingga tidak terdapat outlier yang signifikan. Secara umum, perkembangan anak berdasarkan ECDI terlihat cukup merata.
Sanitasi menunjukkan rata-rata 83,97 dan median 89,29, dengan standar deviasi 15,70. Nilai median yang lebih tinggi dari mean serta skewness negatif yang cukup besar (-1,52) mengindikasikan distribusi yang sangat condong ke kiri, artinya sebagian besar wilayah memiliki kondisi sanitasi yang baik, tetapi terdapat beberapa wilayah dengan nilai rendah yang menjadi outlier. Kurtosis positif (2,03) mendukung adanya nilai ekstrem pada sisi bawah distribusi. Hal ini menunjukkan bahwa meskipun kondisi sanitasi secara umum baik, perhatian khusus tetap diperlukan pada daerah dengan nilai rendah.
Status Gizi Normal memiliki rata-rata 75.34 dan median 75.97, dengan standar deviasi 8,31. Distribusi sedikit condong ke kiri (skewness = -0,74), yang berarti terdapat beberapa wilayah dengan tingkat gizi normal lebih rendah dibanding mayoritas daerah lain. Kurtosis positif (1,19) menunjukkan adanya nilai ekstrim di sisi atas distribusi.
par(mfrow = c(3,3), mar = c(4,4,2,1))
vars <- c("ECDI_total", "Sanitasi", "Gizi")
for (v in vars) {
hist(df[[v]],
main = paste("Histogram", v),
xlab = "Nilai",
col = "brown",
breaks = 20)
boxplot(df[[v]],
main = paste("Boxplot", v),
ylab = "Nilai",
col = "lightgreen")
plot(ecdf(df[[v]]),
main = paste("ECDF Plot", v),
xlab = "Nilai",
ylab = "Proporsi Kumulatif",
col = "darkgreen",
lwd = 2)
grid()
}
Kualitas presisi hasil estimasi suatu survei bisa diamati dari nilai Relative Standard Error (RSE) yang dihasilkan. Kesalahan sampling dari beberapa estimasi harus digunakan secara hati-hati. Untuk estimasi yang berdasarkan jumlah kasus yang kecil, kesalahan relatif cenderung besar.
Batasan nilai RSE ( Australian Bureau Statistics):
Jika \(RSE \le 25\%\), estimasi bersifat presisi.
Jika \(25\% < RSE \le 50\%\), estimasi perlu dilakukan dengan hati-hati.
Jika \(RSE > 50\%\), estimasi dianggap sangat tidak presisi.
Kelompok RSE ECDI:
df <- df %>%
mutate(
RSE_ECDI_kat = case_when(
RSE_ECDI < 10 ~ "< 10%",
RSE_ECDI >= 10 & RSE_ECDI <= 25 ~ "10–25%",
RSE_ECDI > 25 & RSE_ECDI <= 50 ~ "26–50%",
RSE_ECDI > 50 ~ "> 50%",
TRUE ~ NA_character_
)
)
table(df$RSE_ECDI_kat)
##
## < 10% 10–25% 26–50%
## 53 75 7
Dari pengelompokkan, kategori RSE ECDI yang <10% sebanyak 53 data. Sementara itu, kategori 10–25% berjumlah 75 data, dan kategori 26–50% terdiri dari 7 data.
ggplot(df, aes(x = Urut, y = RSE_ECDI, group = 1, color = RSE_ECDI_kat)) +
geom_point(size = 3) +
geom_hline(yintercept = 25, linetype = "dashed", color = "red") +
geom_hline(yintercept = 50, linetype = "dashed", color = "blue") +
scale_color_manual(
name = "Kategori RSE",
values = c(
"< 10%" = "#1B9E77",
"10–25%" = "#FF8C00",
"26–50%" = "#4E342E",
"> 50%" = "#7570B3"
)
) +
labs(
title = "RSE ECDI per Kabupaten/Kota",
subtitle = "dengan garis batas RSE 25% dan 50%",
x = NULL,
y = "Nilai RSE (%)"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 15),
legend.position = "bottom",
axis.text.x = element_text(angle = 40, vjust = 1, hjust = 1)
)
Kelompok RSE Sanitasi:
df <- df %>%
mutate(
RSE_Sanitasi_kat = case_when(
RSE_Sanitasi < 10 ~ "< 10%",
RSE_Sanitasi >= 10 & RSE_Sanitasi <= 25 ~ "10–25%",
RSE_Sanitasi > 25 & RSE_Sanitasi <= 50 ~ "26–50%",
RSE_Sanitasi > 50 ~ "> 50%",
TRUE ~ NA_character_
)
)
table(df$RSE_Sanitasi_kat)
##
## < 10% 10–25%
## 126 9
Dari hasil diatas, terlihat kategori RSE<10% ada sebanyak 126 data dan kategori RSE 10-25% sebanyak 9 data.
ggplot(df, aes(x = Urut, y = RSE_Sanitasi, color = RSE_Sanitasi_kat)) +
geom_point(size = 3) +
geom_hline(yintercept = 25, linetype = "dashed", color = "red") +
geom_hline(yintercept = 50, linetype = "dashed", color = "blue") +
scale_color_manual(
name = "Kategori RSE",
values = c(
"< 10%" = "#1B9E77",
"10–25%" = "#FF8C00",
"26–50%" = "#4E342E",
"> 50%" = "#7570B3"
)
) +
labs(
title = "RSE Sanitasi per Kabupaten/Kota",
subtitle = "dengan garis batas RSE 25% dan 50%",
x = NULL,
y = "Nilai RSE (%)"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 15),
legend.position = "bottom",
axis.text.x = element_text(angle = 40, vjust = 1, hjust = 1)
)
Kelompok RSE Gizi Normal:
df <- df %>%
mutate(
RSE_Gizi_kat = case_when(
RSE_Gizi < 10 ~ "< 10%",
RSE_Gizi >= 10 & RSE_Gizi <= 25 ~ "10–25%",
RSE_Gizi > 25 & RSE_Gizi <= 50 ~ "26–50%",
RSE_Gizi > 50 ~ "> 50%",
TRUE ~ NA_character_
)
)
table(df$RSE_Gizi_kat)
##
## < 10% 10–25% 26–50%
## 77 57 1
Berdasarkan hasil pengelompokkan, kategori RSE <10% mencakup 77 data. Sementara itu, kategori 10–25% berjumlah 57 data, dan kategori 26–50% hanya terdiri dari 1 data.
ggplot(df, aes(x = Urut, y = RSE_Gizi, color = RSE_Gizi_kat)) +
geom_point(size = 3) +
geom_hline(yintercept = 25, linetype = "dashed", color = "red") +
geom_hline(yintercept = 50, linetype = "dashed", color = "blue") +
scale_color_manual(
name = "Kategori RSE",
values = c(
"< 10%" = "#1B9E77",
"10–25%" = "#FF8C00",
"26–50%" = "#4E342E",
"> 50%" = "#7570B3"
)
) +
labs(
title = "RSE Status Gizi Normal per Kabupaten/Kota",
subtitle = "dengan garis batas RSE 25% dan 50%",
x = NULL,
y = "Nilai RSE (%)"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 15),
legend.position = "bottom",
axis.text.x = element_text(angle = 40, vjust = 1, hjust = 1)
)
Korelasi adalah ukuran statistik yang digunakan untuk menggambarkan derajat hubungan linier antara dua variabel. Nilai korelasi menunjukkan seberapa kuat kedua variabel, apakah meningkat secara bersamaan, bergerak berlawanan arah, atau tidak memiliki hubungan sama sekali.
Menurut Field (2013), Korelasi Pearson digunakan untuk mengukur hubungan linear antara dua variabel numerik dan memiliki nilai antara -1 hingga +1.
Hipotesis:
\(H_0 : r = 0\)
\(H_1 : r \neq 0\)
Rumus koefisien korelasi Pearson:
\[ r = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})} {\sqrt{\sum (X_i - \bar{X})^2 \cdot \sum (Y_i - \bar{Y})^2}} \]
cor_ECSan <- cor.test(df$ECDI_total, df$Sanitasi, method = "pearson")
cor_EcGizi <- cor.test(df$ECDI_total, df$Gizi, method = "pearson")
Matrik Korelasi yang dihasilkan adalah:
library(corrplot)
df_corr <- df %>%
select(ECDI_total, Sanitasi, Gizi)
corr_matrix <- cor(df_corr, use = "pairwise.complete.obs")
cor_matrix <- cor(df %>%
select(ECDI_total,
Sanitasi,
Gizi),
use = "pairwise.complete.obs")
cor_matrix
## ECDI_total Sanitasi Gizi
## ECDI_total 1.0000000 0.2129038 0.4624113
## Sanitasi 0.2129038 1.0000000 0.3643423
## Gizi 0.4624113 0.3643423 1.0000000
Matriks korelasi menunjukkan hubungan antar variabel ECDI_total, Sanitasi, dan Status Gizi Normal.
Skor ECDI_total berkorelasi positif tetapi lemah dengan Sanitasi (r = 0,21), yang berarti secara umum wilayah dengan sanitasi lebih baik cenderung memiliki skor ECDI_total lebih tinggi, meskipun hubungan ini tidak terlalu kuat.
Sebaliknya, ECDI_total memiliki korelasi positif sedang dengan Status Gizi Normal (r = 0,46), yang menunjukkan bahwa semakin baik perkembangan anak secara keseluruhan, maka semakin tinggi pula kemungkinan anak berada pada kategori gizi normal.
Hubungan antara Sanitasi dan Status Gizi Normal juga positif sedang (r = 0,36), menandakan bahwa wilayah dengan kondisi sanitasi yang lebih baik cenderung memiliki status gizi anak yang lebih baik pula.
Visualisasi Korelogram
corrplot(corr_matrix,
method = "color",
type = "upper",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
col = colorRampPalette(c("red", "white", "blue"))(200))
Signifikansi Korelasi
hasil_korelasi <- data.frame(
Variabel = c("ECDI_total vs Sanitasi",
"ECDI_total vs Status Gizi Normal"),
Korelasi = c(cor_ECSan$estimate,
cor_EcGizi$estimate),
p_value = c(cor_ECSan$p.value,
cor_EcGizi$p.value)
)
print(hasil_korelasi)
## Variabel Korelasi p_value
## 1 ECDI_total vs Sanitasi 0.2129038 1.316741e-02
## 2 ECDI_total vs Status Gizi Normal 0.4624113 1.640983e-08
Berdasarkan hasil uji korelasi Pearson, terdapat dua hubungan yang signifikan antara ECDI_total dan variabel lainnya.
Pertama, ECDI_total memiliki korelasi positif lemah dengan sanitasi (r = 0,21; p = 0,013), yang menunjukkan bahwa wilayah dengan kondisi sanitasi yang lebih baik cenderung memiliki skor perkembangan anak (ECDI_total) yang lebih tinggi. Hubungan ini signifikan pada tingkat α = 0,05.
Kedua, ECDI_total menunjukkan korelasi positif sedang dengan status gizi normal (r = 0,46; p < 0,001). Hal ini mengindikasikan bahwa semakin banyak anak yang berada dalam kategori gizi normal, maka semakin tinggi pula nilai perkembangan anak (ECDI_total). Nilai p yang sangat kecil menunjukkan bahwa hubungan ini sangat signifikan secara statistik.
Secara keseluruhan, hasil ini mendukung bahwa faktor lingkungan seperti sanitasi yang memadai serta status gizi yang baik berasosiasi dengan perkembangan anak yang lebih optimal.
Uji normalitas adalah prosedur statistik yang digunakan untuk menentukan apakah suatu variabel mengikuti distribusi normal. Distribusi normal adalah asumsi penting dalam banyak analisis statistik parametrik, seperti uji t, ANOVA, dan regresi linear. Jika data tidak berdistribusi normal, penggunaan metode parametrik dapat menghasilkan kesimpulan yang menyesatkan, sehingga alternatif non-parametrik mungkin lebih tepat (Field, 2013).
Salah satu uji normalitas yang paling umum digunakan adalah Shapiro–Wilk test. Uji ini mengevaluasi hipotesis nol (H₀) bahwa data berasal dari distribusi normal:
\(H_{0}\): Data berdistribusi Normal
\(H_{1}\): Data tidak berdistribusi Normal
shapiro.test(df$Sanitasi)
##
## Shapiro-Wilk normality test
##
## data: df$Sanitasi
## W = 0.82852, p-value = 2.962e-11
shapiro.test(df$Gizi)
##
## Shapiro-Wilk normality test
##
## data: df$Gizi
## W = 0.96812, p-value = 0.002957
Hasil uji normalitas Shapiro–Wilk menunjukkan bahwa distribusi data kedua variabel berbeda dari distribusi normal.
Untuk variabel Sanitasi, nilai statistik W = 0,829 dengan p-value = 2,96 × 10⁻¹¹, jauh di bawah α = 0,05, sehingga hipotesis nol ditolak dan dapat disimpulkan bahwa data Sanitasi tidak berdistribusi normal.
Sedangkan untuk variabel Status Gizi Normal, nilai W = 0,968 dengan p-value = 0,002957, juga lebih kecil dari 0,05, sehingga distribusi Status Gizi Normal juga tidak normal.
Dalam praktiknya, uji normalitas biasanya didukung dengan visualisasi data, seperti histogram, Q–Q plot, atau boxplot, untuk melihat secara langsung pola distribusi dan adanya outlier.
par(mfrow = c(2, 2))
# QQ Plot
qqnorm(df$Sanitasi,
main = "QQ Plot Akses Sanitasi Layak")
qqline(df$Sanitasi, col = "red", lwd = 2)
# Histogram
hist(df$Sanitasi,
breaks = 25,
probability = TRUE,
main = "Histogram Akses Sanitasi Layak",
col = "pink",
xlab = "Sanitasi")
lines(density(df$Sanitasi), col = "red", lwd = 2)
# QQ Plot
qqnorm(df$Gizi,
main = "QQ Plot Gizi")
qqline(df$Gizi, col = "red", lwd = 2)
# Histogram
hist(df$Gizi,
breaks = 25,
probability = TRUE,
main = "Histogram Gizi Normal",
col = "skyblue",
xlab = "Gizi")
lines(density(df$Gizi), col = "red", lwd = 2)
par(mfrow = c(2, 2))
Untuk mengidentifikasi apakah terdapat nilai ekstrem (outlier) pada Variabel X, digunakan pendekatan Interquartile Range (IQR). Metode IQR digunakan untuk menentukan batas nilai yang dianggap wajar dalam sebuah himpunan data berdasarkan nilai kuartil pertama (Q1) dan kuartil ketiga (Q3).
Nilai yang berada di luar rentang:
\[ Q_1 - 1.5 \times IQR \quad \text{dan} \quad Q_3 + 1.5 \times IQR \]
dikategorikan sebagai outlier karena dianggap menyimpang dari distribusi data utama (Tukey, 1977; Bruce, Miles, & Field, 2020).
# --- SANITASI ---
Q1_Sanitasi <- as.numeric(quantile(df$Sanitasi, 0.25, na.rm = TRUE))
Q3_Sanitasi <- as.numeric(quantile(df$Sanitasi, 0.75, na.rm = TRUE))
IQR_Sanitasi <- Q3_Sanitasi - Q1_Sanitasi
LB_Sanitasi <- Q1_Sanitasi - 1.5 * IQR_Sanitasi
UB_Sanitasi <- Q3_Sanitasi + 1.5 * IQR_Sanitasi
# --- STATUS GIZI NORMAL ---
Q1_Gizi <- as.numeric(quantile(df$Gizi, 0.25, na.rm = TRUE))
Q3_Gizi <- as.numeric(quantile(df$Gizi, 0.75, na.rm = TRUE))
IQR_Gizi <- Q3_Gizi - Q1_Gizi
LB_Gizi <- Q1_Gizi - 1.5 * IQR_Gizi
UB_Gizi <- Q3_Gizi + 1.5 * IQR_Gizi
# --- Vektor batas (jika perlu) ---
Batas1 <- c(LB_Sanitasi, UB_Sanitasi)
Batas2 <- c(LB_Gizi, UB_Gizi)
library(tibble)
tabel_batas <- tibble(
Variabel = c("Sanitasi", "Gizi"),
Q1 = c(Q1_Sanitasi, Q1_Gizi),
Q3 = c(Q3_Sanitasi, Q3_Gizi),
IQR = c(IQR_Sanitasi, IQR_Gizi),
Batas_Bawah = c(LB_Sanitasi, LB_Gizi),
Batas_Atas = c(UB_Sanitasi, UB_Gizi)
) %>% mutate(across(where(is.numeric), ~round(.x, 2)))
print(tabel_batas)
## # A tibble: 2 × 6
## Variabel Q1 Q3 IQR Batas_Bawah Batas_Atas
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Sanitasi 78.2 94.8 16.6 53.4 120.
## 2 Gizi 71.3 80.9 9.65 56.8 95.4
Tabel di atas menunjukkan ringkasan analisis outlier menggunakan Interquartile Range (IQR) untuk variabel Sanitasi dan Status Gizi Normal. Untuk masing-masing variabel, ditampilkan kuartil pertama (Q1), kuartil ketiga (Q3), selisihnya (IQR), serta batas bawah dan atas yang digunakan untuk mendeteksi nilai ekstrem.
Untuk Sanitasi, Q1 = 78,2 dan Q3 = 94,8, sehingga IQR = 16,6. Batas bawah ditentukan sebesar 53,4 dan batas atas 120, yang berarti nilai di luar rentang ini dianggap outlier.
Sedangkan untuk Status Gizi Normal, Q1 = 71,3 dan Q3 = 80,9, dengan IQR = 9,65. Batas bawah dan atas masing-masing 56,8 dan 95,4, sehingga nilai di luar interval ini dapat dikategorikan sebagai nilai ekstrem.
par(mfrow = c(1, 2))
boxplot(df$Sanitasi,
main = "Boxplot Sanitasi",
ylab = "Nilai Sanitasi",
col = "pink")
boxplot(df$Gizi,
main = "Boxplot Gizi Normal",
ylab = "Nilai Gizi Normal",
col = "lightblue")
par(mfrow = c(1, 1))
Mengidentifikasi jumlah outlier
outlier_sanitasi_idx <- which(df$Sanitasi < LB_Sanitasi | df$Sanitasi > UB_Sanitasi)
outlier_Gizi_idx <- which(df$Gizi < LB_Gizi | df$Gizi > UB_Gizi)
cat("Jumlah outlier Sanitasi:", length(outlier_sanitasi_idx), "\n")
## Jumlah outlier Sanitasi: 9
cat("Jumlah outlier Gizi:", length(outlier_Gizi_idx), "\n")
## Jumlah outlier Gizi: 4
Nilai estimasi yang dianggap outlier:
# Outlier Sanitasi
bp_sanitasi <- boxplot(df$Sanitasi, plot = FALSE)
outlier_sanitasi <- round(bp_sanitasi$out, 2)
# Outlier Status Gizi Normal
bp_Gizi <- boxplot(df$Gizi, plot = FALSE)
outlier_Gizi <- round(bp_Gizi$out,2)
cat("Nilai outlier Sanitasi:", outlier_sanitasi, "\n\n")
## Nilai outlier Sanitasi: 34.15 41.23 20.31 49.06 50.55 50.97 52.92 46.26 41.56
cat("Nilai outlier Gizi:", outlier_Gizi, "\n")
## Nilai outlier Gizi: 43.25 52.64 55.7 52.52
Posisi data dari nilai estimasi yang outlier:
if(length(outlier_sanitasi_idx) > 0) {
cat("\nContoh baris outlier Sanitasi:\n")
print(df %>% dplyr::slice(head(outlier_sanitasi_idx, 10)) %>% dplyr::select(Kode_Kab, Sanitasi))
}
##
## Contoh baris outlier Sanitasi:
## # A tibble: 9 × 2
## Kode_Kab Sanitasi
## <dbl> <dbl>
## 1 1201 34.1
## 2 1202 41.2
## 3 1214 20.3
## 4 1224 49.1
## 5 1271 50.6
## 6 1277 51.0
## 7 5317 52.9
## 8 6411 46.3
## 9 8105 41.6
if(length(outlier_Gizi_idx) > 0) {
cat("\nContoh baris outlier Status Gizi Normal:\n")
print(df %>% dplyr::slice(head(outlier_Gizi_idx, 10)) %>% dplyr::select(Kode_Kab, Gizi))
}
##
## Contoh baris outlier Status Gizi Normal:
## # A tibble: 4 × 2
## Kode_Kab Gizi
## <dbl> <dbl>
## 1 5304 43.2
## 2 5305 52.6
## 3 5306 55.7
## 4 5317 52.5
[1] Bruce, P., Miles, J., & Field, Z. (2020). Practical Statistics for Data Scientists: 50+ Essential Concepts Using R and Python. O’Reilly Media.
[2] Field, A. (2013). Discovering statistics using IBM SPSS statistics (4th ed.). SAGE Publications.
[3] Tukey, J. W. (1977). Exploratory Data Analysis. Reading, MA: Addison-Wesley.
Direktorat Statistik Kesejahteraan Rakyat, BPS, saptahas@bps.go.id