Pengangguran terbuka merupakan salah satu indikator penting dalam membaca kondisi pasar kerja. Pada penelitian ini, data yang dianalisis adalah jumlah pengangguran terbuka berdasarkan wilayah dan tingkat pendidikan. Karena data berbentuk frekuensi pada kombinasi kategori, pendekatan yang digunakan adalah analisis tabel kontingensi dan model log-linear dua arah.
Model log-linear digunakan untuk memodelkan frekuensi harapan setiap sel tabel kontingensi. Dalam pendekatan ini, frekuensi sel diasumsikan mengikuti distribusi Poisson dan dimodelkan menggunakan link log.
Tujuan utama analisis: mengevaluasi apakah terdapat asosiasi antara wilayah dan tingkat pendidikan dalam distribusi pengangguran terbuka di Kabupaten Bandung dan Kota Bandung tahun 2025.
Tujuan analisis dalam penelitian ini adalah:
data <- data.frame(
Wilayah = c(rep("Kabupaten Bandung", 5), rep("Kota Bandung", 5)),
Pendidikan = rep(c("SD ke bawah", "SMP", "SMA Umum", "SMA Kejuruan", "Diploma/PT"), 2),
Freq = c(18433, 25153, 43658, 36838, 4775,
8477, 11871, 23569, 34997, 20392)
)
data## Pendidikan
## Wilayah Diploma/PT SD ke bawah SMA Kejuruan SMA Umum SMP Sum
## Kabupaten Bandung 4775 18433 36838 43658 25153 128857
## Kota Bandung 20392 8477 34997 23569 11871 99306
## Sum 25167 26910 71835 67227 37024 228163
kable(tab_margins, caption = "Tabel 1. Tabel kontingensi jumlah pengangguran terbuka berdasarkan wilayah dan tingkat pendidikan.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#17324D") %>%
column_spec(1, bold = TRUE)| Diploma/PT | SD ke bawah | SMA Kejuruan | SMA Umum | SMP | Sum | |
|---|---|---|---|---|---|---|
| Kabupaten Bandung | 4775 | 18433 | 36838 | 43658 | 25153 | 128857 |
| Kota Bandung | 20392 | 8477 | 34997 | 23569 | 11871 | 99306 |
| Sum | 25167 | 26910 | 71835 | 67227 | 37024 | 228163 |
<div class="metric-label">Total pengangguran</div>
<div class="metric-value">228.163</div>
<div class="metric-label">Kabupaten Bandung</div>
<div class="metric-value">128.857</div>
<div class="metric-label">Kota Bandung</div>
<div class="metric-value">99.306</div>
Berdasarkan Tabel 1, total pengangguran terbuka pada dua wilayah adalah 228.163 orang. Kabupaten Bandung memiliki total 128.857 orang, sedangkan Kota Bandung memiliki total 99.306 orang. Kategori terbesar di Kabupaten Bandung adalah SMA Umum, sedangkan kategori terbesar di Kota Bandung adalah SMA Kejuruan. Perbedaan kategori dominan ini memberi indikasi awal bahwa pola pengangguran menurut pendidikan tidak sama antara kedua wilayah.
## Pendidikan
## Wilayah Diploma/PT SD ke bawah SMA Kejuruan SMA Umum SMP
## Kabupaten Bandung 0.03705658 0.14305005 0.28588280 0.33880969 0.19520088
## Kota Bandung 0.20534509 0.08536242 0.35241577 0.23733712 0.11953960
## Pendidikan
## Wilayah Diploma/PT SD ke bawah SMA Kejuruan SMA Umum SMP
## Kabupaten Bandung 0.1897326 0.6849870 0.5128141 0.6494117 0.6793701
## Kota Bandung 0.8102674 0.3150130 0.4871859 0.3505883 0.3206299
kable(round(prop_baris * 100, 2), caption = "Tabel 2. Proporsi baris dalam persen.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2F80ED")| Diploma/PT | SD ke bawah | SMA Kejuruan | SMA Umum | SMP | |
|---|---|---|---|---|---|
| Kabupaten Bandung | 3.71 | 14.31 | 28.59 | 33.88 | 19.52 |
| Kota Bandung | 20.53 | 8.54 | 35.24 | 23.73 | 11.95 |
Proporsi baris menunjukkan komposisi pendidikan dalam masing-masing wilayah. Di Kabupaten Bandung, pengangguran lebih terkonsentrasi pada lulusan SMA Umum, sedangkan di Kota Bandung proporsi lulusan SMA Kejuruan dan Diploma/Perguruan Tinggi tampak lebih menonjol. Khusus kelompok Diploma/PT, proporsinya di Kota Bandung jauh lebih besar dibandingkan Kabupaten Bandung. Hal ini menunjukkan adanya perbedaan struktur pengangguran yang kuat antara wilayah kabupaten dan kota.
ggplot(data, aes(x = Pendidikan, y = Freq, fill = Wilayah)) +
geom_col(position = "dodge", width = 0.75) +
geom_text(aes(label = fmt_int(Freq)), position = position_dodge(width = 0.75), vjust = -0.35, size = 3.2) +
scale_y_continuous(labels = label_number(big.mark = ".", decimal.mark = ",")) +
labs(
title = "Pengangguran Terbuka Menurut Wilayah dan Pendidikan",
subtitle = "Kabupaten Bandung dan Kota Bandung, 2025",
x = "Tingkat Pendidikan", y = "Jumlah Pengangguran", fill = "Wilayah"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", color = "#17324D", size = 15),
plot.subtitle = element_text(color = "#486581"),
axis.text.x = element_text(angle = 25, hjust = 1),
legend.position = "top"
)Figure 1. Distribusi jumlah pengangguran terbuka berdasarkan wilayah dan tingkat pendidikan.
Frekuensi harapan pada tabel kontingensi dihitung dengan rumus:
\[ E_{ij}=\frac{n_{i+}n_{+j}}{n}, \]
dengan \(n_{i+}\) adalah total baris ke-\(i\), \(n_{+j}\) adalah total kolom ke-\(j\), dan \(n\) adalah total keseluruhan.
## Pendidikan
## Wilayah Diploma/PT SD ke bawah SMA Kejuruan SMA Umum SMP
## Kabupaten Bandung 14213.28 15197.65 40569.43 37967.02 20909.62
## Kota Bandung 10953.72 11712.35 31265.57 29259.98 16114.38
kable(expected_count, digits = 2, caption = "Tabel 3. Frekuensi harapan berdasarkan model independensi.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#17324D")| Diploma/PT | SD ke bawah | SMA Kejuruan | SMA Umum | SMP | |
|---|---|---|---|---|---|
| Kabupaten Bandung | 14213.28 | 15197.65 | 40569.43 | 37967.02 | 20909.62 |
| Kota Bandung | 10953.72 | 11712.35 | 31265.57 | 29259.98 | 16114.38 |
cek_sel <- data.frame(
Minimum_Observed = min(tab),
Minimum_Expected = min(expected_count),
Jumlah_Sel_Observed_Nol = sum(tab == 0),
Jumlah_Sel_Expected_Kurang_5 = sum(expected_count < 5),
Persentase_Expected_Kurang_5 = mean(expected_count < 5) * 100
)
cek_selkable(cek_sel, digits = 4, caption = "Tabel 4. Pemeriksaan frekuensi sel.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#27AE60")| Minimum_Observed | Minimum_Expected | Jumlah_Sel_Observed_Nol | Jumlah_Sel_Expected_Kurang_5 | Persentase_Expected_Kurang_5 |
|---|---|---|---|---|
| 4775 | 10953.72 | 0 | 0 | 0 |
Seluruh expected count bernilai lebih dari 5 dan tidak terdapat sel observasi bernilai nol. Dengan demikian, data memenuhi kelayakan dasar untuk analisis chi-square dan pemodelan log-linear.
Lima model log-linear dua arah yang dianalisis adalah sebagai berikut.
\[ M_0: \log(\mu_{ij})=\lambda \] \[ M_1: \log(\mu_{ij})=\lambda+\lambda_i^W \] \[ M_2: \log(\mu_{ij})=\lambda+\lambda_j^P \] \[ M_3: \log(\mu_{ij})=\lambda+\lambda_i^W+\lambda_j^P \] \[ M_4: \log(\mu_{ij})=\lambda+\lambda_i^W+\lambda_j^P+\lambda_{ij}^{WP} \]
Keterangan: \(W\) menyatakan wilayah, \(P\) menyatakan pendidikan, dan \(\mu_{ij}\) adalah frekuensi harapan pada sel ke-\((i,j)\).
Pada output standar R, kendala parameter menggunakan reference category. Artinya, salah satu kategori dijadikan acuan, lalu koefisien kategori lain ditafsirkan relatif terhadap kategori acuan tersebut.
## Kota Bandung
## Kabupaten Bandung 0
## Kota Bandung 1
## SD ke bawah SMA Kejuruan SMA Umum SMP
## Diploma/PT 0 0 0 0
## SD ke bawah 1 0 0 0
## SMA Kejuruan 0 1 0 0
## SMA Umum 0 0 1 0
## SMP 0 0 0 1
Koefisien GLM dengan kategori referensi tidak harus sama dengan estimasi manual berbasis sum-to-zero. Namun, keduanya menghasilkan fitted value yang sama untuk model yang sama.
Model log-linear diestimasi menggunakan GLM Poisson dengan link log:
\[ N_{ij}\sim \text{Poisson}(\mu_{ij}), \qquad \log(\mu_{ij})=\eta_{ij}. \]
model_null <- glm(Freq ~ 1, family = poisson(link = "log"), data = data)
model_wilayah <- glm(Freq ~ Wilayah, family = poisson(link = "log"), data = data)
model_pendidikan <- glm(Freq ~ Pendidikan, family = poisson(link = "log"), data = data)
model_ind <- glm(Freq ~ Wilayah + Pendidikan, family = poisson(link = "log"), data = data)
model_sat <- glm(Freq ~ Wilayah * Pendidikan, family = poisson(link = "log"), data = data)##
## Call:
## glm(formula = Freq ~ Wilayah + Pendidikan, family = poisson(link = "log"),
## data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 9.561932 0.006566 1456.281 < 2e-16 ***
## WilayahKota Bandung -0.260497 0.004223 -61.691 < 2e-16 ***
## PendidikanSD ke bawah 0.066964 0.008769 7.636 2.23e-14 ***
## PendidikanSMA Kejuruan 1.048838 0.007325 143.186 < 2e-16 ***
## PendidikanSMA Umum 0.982541 0.007390 132.959 < 2e-16 ***
## PendidikanSMP 0.386033 0.008170 47.252 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 68651 on 9 degrees of freedom
## Residual deviance: 21385 on 4 degrees of freedom
## AIC: 21514
##
## Number of Fisher Scoring iterations: 5
##
## Call:
## glm(formula = Freq ~ Wilayah * Pendidikan, family = poisson(link = "log"),
## data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 8.47115 0.01447 585.37 <2e-16
## WilayahKota Bandung 1.45175 0.01608 90.30 <2e-16
## PendidikanSD ke bawah 1.35075 0.01624 83.18 <2e-16
## PendidikanSMA Kejuruan 2.04314 0.01538 132.84 <2e-16
## PendidikanSMA Umum 2.21299 0.01524 145.19 <2e-16
## PendidikanSMP 1.66158 0.01579 105.26 <2e-16
## WilayahKota Bandung:PendidikanSD ke bawah -2.22853 0.02075 -107.39 <2e-16
## WilayahKota Bandung:PendidikanSMA Kejuruan -1.50302 0.01773 -84.80 <2e-16
## WilayahKota Bandung:PendidikanSMA Umum -2.06820 0.01799 -114.94 <2e-16
## WilayahKota Bandung:PendidikanSMP -2.20263 0.01956 -112.63 <2e-16
##
## (Intercept) ***
## WilayahKota Bandung ***
## PendidikanSD ke bawah ***
## PendidikanSMA Kejuruan ***
## PendidikanSMA Umum ***
## PendidikanSMP ***
## WilayahKota Bandung:PendidikanSD ke bawah ***
## WilayahKota Bandung:PendidikanSMA Kejuruan ***
## WilayahKota Bandung:PendidikanSMA Umum ***
## WilayahKota Bandung:PendidikanSMP ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 6.8651e+04 on 9 degrees of freedom
## Residual deviance: 1.4937e-12 on 0 degrees of freedom
## AIC: 136.88
##
## Number of Fisher Scoring iterations: 2
Model independensi hanya memuat efek utama wilayah dan pendidikan. Model ini mengasumsikan bahwa tidak terdapat interaksi antara wilayah dan pendidikan. Sebaliknya, model saturated memuat interaksi \(WP\), sehingga mampu mereproduksi seluruh frekuensi observasi secara sempurna.
Evaluasi kecocokan model dilakukan menggunakan deviance \(G^2\), Pearson \(X^2\), AIC, dan BIC. Statistik deviance didefinisikan sebagai:
\[ G^2=2\sum_i\sum_j n_{ij}\log\left(\frac{n_{ij}}{\hat{\mu}_{ij}}\right), \]
sedangkan statistik Pearson didefinisikan sebagai:
\[ X^2=\sum_i\sum_j\frac{(n_{ij}-\hat{\mu}_{ij})^2}{\hat{\mu}_{ij}}. \]
gof_model <- function(model, nama_model) {
G2 <- deviance(model)
df <- df.residual(model)
if (df > 0) {
p_G2 <- pchisq(G2, df = df, lower.tail = FALSE)
X2 <- sum(residuals(model, type = "pearson")^2)
p_X2 <- pchisq(X2, df = df, lower.tail = FALSE)
} else {
X2 <- 0
p_G2 <- NA
p_X2 <- NA
}
data.frame(
Model = nama_model,
df_residual = df,
G2 = G2,
p_G2 = p_G2,
Pearson_X2 = X2,
p_Pearson = p_X2,
AIC = AIC(model),
BIC = BIC(model)
)
}
hasil_gof <- rbind(
gof_model(model_null, "Null"),
gof_model(model_wilayah, "Efek Wilayah Saja"),
gof_model(model_pendidikan, "Efek Pendidikan Saja"),
gof_model(model_ind, "Independensi"),
gof_model(model_sat, "Saturated")
) %>%
mutate(
p_G2_tampil = fmt_p(p_G2),
p_Pearson_tampil = fmt_p(p_Pearson)
)
hasil_gofhasil_gof_tampil <- hasil_gof %>%
select(Model, df_residual, G2, p_G2_tampil, Pearson_X2, p_Pearson_tampil, AIC, BIC)
kable(hasil_gof_tampil, digits = 4,
col.names = c("Model", "df", "G²", "p-value G²", "Pearson X²", "p-value Pearson", "AIC", "BIC"),
caption = "Tabel 5. Goodness-of-fit lima model log-linear.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#17324D") %>%
row_spec(5, bold = TRUE, background = "#EFFFF4")| Model | df | G² | p-value G² | Pearson X² | p-value Pearson | AIC | BIC |
|---|---|---|---|---|---|---|---|
| Null | 9 | 68650.60 | < 0,001 | 64049.60 | < 0,001 | 68769.4862 | 68769.7888 |
| Efek Wilayah Saja | 8 | 64812.47 | < 0,001 | 58357.70 | < 0,001 | 64933.3548 | 64933.9599 |
| Efek Pendidikan Saja | 5 | 25222.90 | < 0,001 | 24189.39 | < 0,001 | 25349.7874 | 25351.3004 |
| Independensi | 4 | 21384.77 | < 0,001 | 20709.42 | < 0,001 | 21513.6560 | 21515.4715 |
| Saturated | 0 | 0.00 | NA | 0.00 | NA | 136.8837 | 139.9095 |
Berdasarkan Tabel 5, model null, model efek wilayah saja, model efek pendidikan saja, dan model independensi memiliki nilai \(G^2\) dan \(X^2\) yang sangat besar dengan p-value kurang dari 0,001. Hal ini menunjukkan bahwa model-model tersebut tidak mampu menjelaskan pola frekuensi pengangguran terbuka dengan baik.
Model saturated memiliki deviance mendekati nol karena model ini memuat seluruh efek utama dan interaksi. Namun, secara metodologis, model saturated perlu dipahami sebagai model pembanding karena model ini selalu cocok sempurna pada tabel dua arah.
Perbandingan model bersarang dilakukan menggunakan likelihood ratio test.
lrt_wilayah <- anova(model_null, model_wilayah, model_ind, model_sat, test = "Chisq")
lrt_pendidikan <- anova(model_null, model_pendidikan, model_ind, model_sat, test = "Chisq")
lrt_ind_sat <- anova(model_ind, model_sat, test = "Chisq")
lrt_wilayahPerbandingan model independensi dengan model saturated menghasilkan p-value kurang dari 0,001. Artinya, penambahan interaksi antara wilayah dan pendidikan secara signifikan memperbaiki kecocokan model. Dengan demikian, pola pengangguran terbuka tidak dapat dijelaskan hanya oleh efek wilayah dan pendidikan secara terpisah, tetapi memerlukan komponen interaksi \(WP\).
Residual Pearson dihitung dengan rumus:
\[ r_{ij}=\frac{n_{ij}-\hat{\mu}_{ij}}{\sqrt{\hat{\mu}_{ij}}}. \]
Residual standar digunakan untuk melihat sel mana yang paling menyimpang dari model independensi. Nilai residual standar dengan \(|r|>2\) menunjukkan penyimpangan yang perlu diperhatikan.
data$Expected <- fitted(model_ind)
data$Pearson_Residual <- residuals(model_ind, type = "pearson")
data$Std_Residual <- rstandard(model_ind, type = "pearson")
hasil_residual <- data %>%
select(Wilayah, Pendidikan, Observed = Freq, Expected, Pearson_Residual, Std_Residual)
hasil_residualkable(hasil_residual, digits = 4,
caption = "Tabel 6. Frekuensi observasi, frekuensi harapan, dan residual model independensi.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#17324D")| Wilayah | Pendidikan | Observed | Expected | Pearson_Residual | Std_Residual |
|---|---|---|---|---|---|
| Kabupaten Bandung | SD ke bawah | 18433 | 15197.65 | 26.2442 | 42.3564 |
| Kabupaten Bandung | SMP | 25153 | 20909.62 | 29.3453 | 48.5984 |
| Kabupaten Bandung | SMA Umum | 43658 | 37967.02 | 29.2068 | 52.7126 |
| Kabupaten Bandung | SMA Kejuruan | 36838 | 40569.43 | -18.5257 | -33.9246 |
| Kabupaten Bandung | Diploma/PT | 4775 | 14213.28 | -79.1673 | -127.2212 |
| Kota Bandung | SD ke bawah | 8477 | 11712.35 | -29.8950 | -42.3564 |
| Kota Bandung | SMP | 11871 | 16114.38 | -33.4276 | -48.5984 |
| Kota Bandung | SMA Umum | 23569 | 29259.98 | -33.2698 | -52.7126 |
| Kota Bandung | SMA Kejuruan | 34997 | 31265.57 | 21.1029 | 33.9246 |
| Kota Bandung | Diploma/PT | 20392 | 10953.72 | 90.1803 | 127.2212 |
Residual standar terbesar terdapat pada kombinasi Kota Bandung–Diploma/PT dengan residual positif sangat besar dan Kabupaten Bandung–Diploma/PT dengan residual negatif sangat besar. Artinya, jumlah pengangguran lulusan Diploma/Perguruan Tinggi di Kota Bandung jauh lebih besar dibandingkan frekuensi harapan model independensi. Sebaliknya, jumlah pengangguran lulusan Diploma/Perguruan Tinggi di Kabupaten Bandung jauh lebih kecil dibandingkan frekuensi harapannya.
Temuan ini menunjukkan bahwa kelompok Diploma/PT menjadi sumber utama perbedaan pola pengangguran antara Kabupaten Bandung dan Kota Bandung.
ggplot(data, aes(x = Pendidikan, y = Wilayah, fill = Std_Residual)) +
geom_tile(color = "white", linewidth = 1.1) +
geom_text(aes(label = round(Std_Residual, 2)), size = 4, fontface = "bold") +
scale_fill_gradient2(low = "#2F80ED", mid = "white", high = "#EB5757", midpoint = 0) +
labs(
title = "Heatmap Residual Standar Model Independensi",
subtitle = "Wilayah × Pendidikan",
x = "Tingkat Pendidikan", y = "Wilayah", fill = "Residual\nStandar"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", color = "#17324D", size = 15),
plot.subtitle = element_text(color = "#486581"),
axis.text.x = element_text(angle = 25, hjust = 1)
)Figure 2. Heatmap residual standar model independensi. Warna merah menunjukkan observed count lebih besar daripada expected count, sedangkan warna biru menunjukkan observed count lebih kecil daripada expected count.
data$Kategori <- paste(data$Wilayah, data$Pendidikan, sep = " - ")
ggplot(data, aes(x = reorder(Kategori, Std_Residual), y = Std_Residual, fill = Std_Residual > 0)) +
geom_col(width = 0.72) +
coord_flip() +
geom_hline(yintercept = c(-2, 2), linetype = "dashed", color = "#EB5757", linewidth = 0.8) +
geom_hline(yintercept = 0, color = "#102A43") +
scale_fill_manual(values = c("#2F80ED", "#EB5757"), guide = "none") +
labs(
title = "Residual Standar Setiap Sel",
subtitle = "Garis merah menunjukkan batas ±2",
x = "Kombinasi Wilayah dan Pendidikan", y = "Residual Standar"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", color = "#17324D", size = 15),
plot.subtitle = element_text(color = "#486581")
)Figure 3. Residual standar untuk setiap kombinasi wilayah dan pendidikan. Garis merah menunjukkan batas residual standar ±2.
Karena tabel berukuran \(2\times 5\), odds ratio dihitung dengan menjadikan satu kategori pendidikan sebagai referensi. Dalam analisis ini, kategori Diploma/PT digunakan sebagai referensi.
\[ OR=\frac{a\times d}{b\times c}, \]
dengan \(a\) adalah frekuensi Kabupaten Bandung pada kategori pendidikan tertentu, \(b\) adalah frekuensi Kabupaten Bandung pada kategori referensi, \(c\) adalah frekuensi Kota Bandung pada kategori pendidikan tertentu, dan \(d\) adalah frekuensi Kota Bandung pada kategori referensi.
ref <- "Diploma/PT"
hitung_or <- function(kat, ref, tab) {
a <- tab["Kabupaten Bandung", kat]
b <- tab["Kabupaten Bandung", ref]
c <- tab["Kota Bandung", kat]
d <- tab["Kota Bandung", ref]
OR <- (a * d) / (b * c)
log_OR <- log(OR)
SE_log_OR <- sqrt(1/a + 1/b + 1/c + 1/d)
z <- log_OR / SE_log_OR
p_value <- 2 * (1 - pnorm(abs(z)))
lower <- exp(log_OR - 1.96 * SE_log_OR)
upper <- exp(log_OR + 1.96 * SE_log_OR)
data.frame(
Pendidikan = kat,
Referensi = ref,
OR = OR,
Log_OR = log_OR,
SE_Log_OR = SE_log_OR,
Z = z,
p_value = p_value,
CI_95_Lower = lower,
CI_95_Upper = upper
)
}
kategori_uji <- setdiff(colnames(tab), ref)
hasil_OR <- do.call(rbind, lapply(kategori_uji, hitung_or, ref = ref, tab = tab))
hasil_ORhasil_OR_tampil <- hasil_OR %>%
mutate(p_value = fmt_p(p_value))
kable(hasil_OR_tampil, digits = 4,
caption = "Tabel 7. Odds ratio kategori pendidikan terhadap Diploma/PT.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#17324D")| Pendidikan | Referensi | OR | Log_OR | SE_Log_OR | Z | p_value | CI_95_Lower | CI_95_Upper |
|---|---|---|---|---|---|---|---|---|
| SD ke bawah | Diploma/PT | 9.2862 | 2.2285 | 0.0208 | 107.3846 | < 0,001 | 8.9161 | 9.6718 |
| SMA Kejuruan | Diploma/PT | 4.4952 | 1.5030 | 0.0177 | 84.7955 | < 0,001 | 4.3417 | 4.6541 |
| SMA Umum | Diploma/PT | 7.9106 | 2.0682 | 0.0180 | 114.9362 | < 0,001 | 7.6365 | 8.1946 |
| SMP | Diploma/PT | 9.0488 | 2.2026 | 0.0196 | 112.6286 | < 0,001 | 8.7085 | 9.4023 |
Odds ratio yang lebih besar dari 1 menunjukkan bahwa kategori pendidikan tersebut relatif lebih dominan di Kabupaten Bandung dibandingkan Kota Bandung, jika dibandingkan dengan kategori referensi Diploma/PT. Dengan menggunakan Diploma/PT sebagai referensi, kategori pendidikan dasar dan menengah cenderung memiliki odds yang lebih besar di Kabupaten Bandung. Hal ini konsisten dengan hasil residual yang menunjukkan bahwa Kota Bandung memiliki konsentrasi pengangguran Diploma/PT yang jauh lebih tinggi.
<div class="metric-label">Model terbaik AIC</div>
<div class="metric-value">Saturated</div>
<div class="metric-label">Model terbaik BIC</div>
<div class="metric-value">Saturated</div>
Berdasarkan AIC dan BIC, model saturated memiliki nilai terkecil. Namun, model saturated perlu ditafsirkan secara hati-hati karena model ini memiliki derajat bebas nol dan selalu mereproduksi data secara sempurna pada tabel dua arah. Secara substantif, hasil utama yang perlu ditekankan adalah bahwa model independensi ditolak, sehingga terdapat asosiasi antara wilayah dan tingkat pendidikan.
Dengan demikian, struktur asosiasi \([WP]\) diperlukan untuk menjelaskan pola pengangguran terbuka. Artinya, distribusi pengangguran menurut pendidikan berbeda antara Kabupaten Bandung dan Kota Bandung.
Ringkasan hasil utama:
Kesimpulan statistik: Wilayah dan tingkat pendidikan tidak independen dalam distribusi pengangguran terbuka. Dengan kata lain, pola pengangguran menurut pendidikan berbeda antara Kabupaten Bandung dan Kota Bandung.
validasi <- data.frame(
Minimum_Observed = min(tab),
Minimum_Expected = min(expected_count),
Jumlah_Observed_Nol = sum(tab == 0),
Jumlah_Expected_Kurang_5 = sum(expected_count < 5),
Persentase_Expected_Kurang_5 = mean(expected_count < 5) * 100
)
validasikable(validasi, digits = 4, caption = "Tabel 8. Validasi sensitivitas frekuensi sel.") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#27AE60")| Minimum_Observed | Minimum_Expected | Jumlah_Observed_Nol | Jumlah_Expected_Kurang_5 | Persentase_Expected_Kurang_5 |
|---|---|---|---|---|
| 4775 | 10953.72 | 0 | 0 | 0 |
Tidak terdapat sel observasi bernilai nol, dan seluruh expected count bernilai lebih besar dari 5. Oleh karena itu, tidak diperlukan penggabungan kategori. Analisis dapat dipertahankan menggunakan lima kategori pendidikan asli.
Berdasarkan analisis tabel kontingensi dan model log-linear, diperoleh bahwa model independensi antara wilayah dan pendidikan ditolak secara signifikan. Hal ini menunjukkan bahwa pola pengangguran terbuka menurut tingkat pendidikan berbeda antara Kabupaten Bandung dan Kota Bandung.
Perbedaan paling menonjol ditemukan pada kelompok Diploma/Perguruan Tinggi. Kota Bandung memiliki frekuensi pengangguran Diploma/PT yang jauh lebih tinggi daripada nilai harapan model independensi, sedangkan Kabupaten Bandung memiliki frekuensi yang jauh lebih rendah. Sementara itu, Kabupaten Bandung lebih menonjol pada kelompok pendidikan menengah dan rendah, terutama SMA Umum, SMP, dan SD ke bawah.
Secara substantif, hasil ini menunjukkan bahwa karakteristik pasar kerja di wilayah kota dan kabupaten berbeda. Kota Bandung sebagai wilayah perkotaan cenderung memiliki konsentrasi pengangguran berpendidikan tinggi yang lebih besar, sedangkan Kabupaten Bandung lebih banyak didominasi oleh pengangguran dari kelompok pendidikan menengah ke bawah.