Library
library(readxl)
library(sf)
## Linking to GEOS 3.13.1, GDAL 3.10.2, PROJ 9.5.1; sf_use_s2() is TRUE
library(ggplot2)
library(classInt)
library(knitr)
library(kableExtra)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
##
## group_rows
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(spdep)
## Loading required package: spData
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(spatialreg)
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Attaching package: 'spatialreg'
## The following objects are masked from 'package:spdep':
##
## get.ClusterOption, get.coresOption, get.mcOption,
## get.VerboseOption, get.ZeroPolicyOption, set.ClusterOption,
## set.coresOption, set.mcOption, set.VerboseOption,
## set.ZeroPolicyOption
Tabel 1. Data Set Penelitian
data <- read_excel("D:/Statistika Terapan Komputasi/Semester 6/Tugas Akhir/dataset.xlsx")
head(data)
## # A tibble: 6 × 6
## `Kab/Kot` Tingkat Pengangguran…¹ `Kepadatan Penduduk` Tingkat Partisipasi …²
## <chr> <dbl> <dbl> <dbl>
## 1 Cilacap 7.83 872 68.0
## 2 Banyumas 6.18 1328 68.0
## 3 Purbalingga 4.96 1288 74.5
## 4 Banjarnega… 5.57 924 73.4
## 5 Kebumen 5.07 1060 77.4
## 6 Purworejo 3.89 735 73.7
## # ℹ abbreviated names: ¹`Tingkat Pengangguran Terbuka`,
## # ²`Tingkat Partisipasi Angkatan Kerja`
## # ℹ 2 more variables: `Upah Minimum Kabupaten/Kota` <dbl>,
## # `Indeks Pembangunan Manusia` <dbl>
Gambar 1. Peta Jawa Tengah per Kabupaten/Kota
jateng <- st_read("D:/Statistika Terapan Komputasi/Semester 6/Tugas Akhir/Kab_Jateng/Kab seJATENG.shp")
## Reading layer `Kab SeJATENG' from data source
## `D:\Statistika Terapan Komputasi\Semester 6\Tugas Akhir\Kab_Jateng\Kab SeJATENG.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 35 features and 1 field
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.5559 ymin: -8.21193 xmax: 111.6916 ymax: -6.4026
## Geodetic CRS: WGS 84
plot(jateng, col = "white", border = "black", main = "Peta Kabupaten/Kota Jawa Tengah")

# Proyeksikan agar tampil 2D
jateng_proj <- st_transform(jateng, crs = 23837)
# Plot dengan label
ggplot(jateng_proj) +
geom_sf(fill = "white", color = "black") +
geom_sf_text(aes(label = Kab__Kota), size = 3, color = "red") +
theme_void() +
ggtitle("Peta Kabupaten/Kota Jawa Tengah") + theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Eksplorasi Data
Tipe Data
str(data)
## tibble [35 × 6] (S3: tbl_df/tbl/data.frame)
## $ Kab/Kot : chr [1:35] "Cilacap" "Banyumas" "Purbalingga" "Banjarnegara" ...
## $ Tingkat Pengangguran Terbuka : num [1:35] 7.83 6.18 4.96 5.57 5.07 3.89 4.02 3.55 3.16 3.97 ...
## $ Kepadatan Penduduk : num [1:35] 872 1328 1288 924 1060 ...
## $ Tingkat Partisipasi Angkatan Kerja: num [1:35] 68 68 74.5 73.4 77.4 ...
## $ Upah Minimum Kabupaten/Kota : num [1:35] 2479106 2195690 2195571 2038005 2121947 ...
## $ Indeks Pembangunan Manusia : num [1:35] 72.4 74.5 70.7 69.6 71.9 ...
str(jateng)
## Classes 'sf' and 'data.frame': 35 obs. of 2 variables:
## $ Kab__Kota: chr "Banjarnegara" "Banyumas" "Batang" "Blora" ...
## $ geometry :sfc_MULTIPOLYGON of length 35; first list element: List of 1
## ..$ :List of 1
## .. ..$ : num [1:5289, 1:2] 110 110 110 110 110 ...
## ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
## - attr(*, "sf_column")= chr "geometry"
## - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA
## ..- attr(*, "names")= chr "Kab__Kota"
Statistika Deskriptif
summary(data)
## Kab/Kot Tingkat Pengangguran Terbuka Kepadatan Penduduk
## Length:35 Min. :2.35 Min. : 464
## Class :character 1st Qu.:3.50 1st Qu.: 933
## Mode :character Median :3.97 Median : 1185
## Mean :4.52 Mean : 2082
## 3rd Qu.:5.32 3rd Qu.: 1776
## Max. :8.35 Max. :11302
## Tingkat Partisipasi Angkatan Kerja Upah Minimum Kabupaten/Kota
## Min. :67.42 Min. :2038005
## 1st Qu.:71.93 1st Qu.:2124794
## Median :74.47 Median :2215482
## Mean :73.74 Mean :2288331
## 3rd Qu.:76.47 3rd Qu.:2379327
## Max. :79.29 Max. :3243969
## Indeks Pembangunan Manusia
## Min. :68.46
## 1st Qu.:71.86
## Median :74.32
## Mean :74.75
## 3rd Qu.:77.22
## Max. :85.72
sapply(data[, 2:6], sd)
## Tingkat Pengangguran Terbuka Kepadatan Penduduk
## 1.494546e+00 2.402703e+03
## Tingkat Partisipasi Angkatan Kerja Upah Minimum Kabupaten/Kota
## 3.370814e+00 2.410609e+05
## Indeks Pembangunan Manusia
## 4.501905e+00
Visualisasi Peta Pesebaran
# Gabung data excel dan data spasial
data_gabung <- merge(jateng_proj, data, by.x = "Kab__Kota", by.y = "Kab/Kot")
head(data_gabung)
## Simple feature collection with 6 features and 6 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -553549.5 ymin: 647750 xmax: -227850.9 ymax: 747705.1
## Projected CRS: DGN95 / Indonesia TM-3 zone 50.1
## Kab__Kota Tingkat Pengangguran Terbuka Kepadatan Penduduk
## 1 Banjarnegara 5.57 924
## 2 Banyumas 6.18 1328
## 3 Batang 5.67 978
## 4 Blora 3.67 464
## 5 Boyolali 3.16 1003
## 6 Brebes 8.35 1185
## Tingkat Partisipasi Angkatan Kerja Upah Minimum Kabupaten/Kota
## 1 73.38 2038005
## 2 68.03 2195690
## 3 77.91 2379702
## 4 73.51 2101813
## 5 75.25 2250327
## 6 71.92 2103100
## Indeks Pembangunan Manusia geometry
## 1 69.60 MULTIPOLYGON (((-430496.7 7...
## 2 74.52 MULTIPOLYGON (((-494219.1 6...
## 3 70.74 MULTIPOLYGON (((-439015 736...
## 4 71.39 MULTIPOLYGON (((-272714.8 7...
## 5 75.96 MULTIPOLYGON (((-325665.1 7...
## 6 68.46 MULTIPOLYGON (((-538477.7 7...
Gambar 2. Peta Tematik Variabel Penelitian di Jawa Tengah Tahun
2024
variabel_list <- c("Tingkat Pengangguran Terbuka", "Kepadatan Penduduk",
"Tingkat Partisipasi Angkatan Kerja", "Upah Minimum Kabupaten/Kota",
"Indeks Pembangunan Manusia")
for (var in variabel_list) {
# Hitung natural breaks (Jenks)
breaks <- classIntervals(data_gabung[[var]], n = 4, style = "jenks")$brks
# Label kelas berdasarkan interval
label_kelas <- paste0(round(breaks[-length(breaks)], 2),
" - ",
round(breaks[-1], 2))
# Buat variabel kelas
data_gabung$kelas <- cut(data_gabung[[var]],
breaks = breaks,
include.lowest = TRUE,
labels = label_kelas)
# Plot peta
p <- ggplot(data_gabung) +
geom_sf(aes(fill = kelas), color = "black", size = 0.3) +
geom_sf_text(aes(label = Kab__Kota), size = 2.5, color = "black") +
scale_fill_brewer(palette = "YlOrRd", name = var) +
labs(title = paste("Peta", var, "di Provinsi Jawa Tengah")) +
theme_void() +
theme(legend.position = "right")
print(p)
}





Tabel 2. Kategori Setiap Variabel Penelitian pada Kabupaten/Kota di
Provinsi Jawa Tengah Tahun 2024
# Salin data
data_kategori <- data
# Fungsi klasifikasi dengan Natural Breaks
kategori_jenks <- function(x) {
breaks <- classIntervals(x, n = 4, style = "jenks")$brks
cut(x,
breaks = breaks,
include.lowest = TRUE,
labels = c("R", "S", "T", "ST")) # Rendah, Sedang, Tinggi, Sangat Tinggi
}
# Terapkan ke setiap variabel
for (var in variabel_list) {
data_kategori[[var]] <- kategori_jenks(data_kategori[[var]])
}
# Siapkan tabel akhir
hasil_kategori <- data_kategori[, c("Kab/Kot", variabel_list)]
colnames(hasil_kategori)[1] <- "Kabupaten/Kota"
# Urutkan berdasarkan nama wilayah
hasil_kategori <- hasil_kategori[order(hasil_kategori$`Kabupaten/Kota`), ]
# Tampilkan tabel
kable(hasil_kategori, caption = "Tabel 2. Kategori Setiap Variabel Penelitian pada Kabupaten/Kota di Provinsi Jawa Tengah Tahun 2024") %>%
kable_styling(full_width = FALSE)
Tabel 2. Kategori Setiap Variabel Penelitian pada Kabupaten/Kota di
Provinsi Jawa Tengah Tahun 2024
Kabupaten/Kota
|
Tingkat Pengangguran Terbuka
|
Kepadatan Penduduk
|
Tingkat Partisipasi Angkatan Kerja
|
Upah Minimum Kabupaten/Kota
|
Indeks Pembangunan Manusia
|
Banjarnegara
|
T
|
R
|
T
|
R
|
R
|
Banyumas
|
T
|
R
|
R
|
R
|
S
|
Batang
|
T
|
R
|
ST
|
S
|
R
|
Blora
|
R
|
R
|
T
|
R
|
R
|
Boyolali
|
R
|
R
|
T
|
S
|
S
|
Brebes
|
ST
|
R
|
S
|
R
|
R
|
Cilacap
|
ST
|
R
|
R
|
T
|
R
|
Demak
|
S
|
R
|
S
|
T
|
S
|
Grobogan
|
R
|
R
|
ST
|
R
|
R
|
Jepara
|
R
|
R
|
S
|
T
|
S
|
Karanganyar
|
R
|
R
|
T
|
S
|
T
|
Kebumen
|
S
|
R
|
ST
|
R
|
R
|
Kendal
|
S
|
R
|
ST
|
T
|
S
|
Klaten
|
R
|
R
|
T
|
S
|
T
|
Kota Magelang
|
S
|
T
|
R
|
R
|
ST
|
Kota Pekalongan
|
S
|
T
|
ST
|
S
|
T
|
Kota Salatiga
|
R
|
S
|
S
|
S
|
ST
|
Kota Semarang
|
T
|
S
|
R
|
ST
|
ST
|
Kota Surakarta
|
S
|
ST
|
R
|
S
|
ST
|
Kota Tegal
|
T
|
T
|
R
|
S
|
T
|
Kudus
|
R
|
R
|
T
|
T
|
T
|
Magelang
|
R
|
R
|
ST
|
S
|
R
|
Pati
|
R
|
R
|
ST
|
R
|
S
|
Pekalongan
|
R
|
R
|
ST
|
S
|
R
|
Pemalang
|
T
|
R
|
S
|
R
|
R
|
Purbalingga
|
S
|
R
|
T
|
R
|
R
|
Purworejo
|
R
|
R
|
T
|
R
|
S
|
Rembang
|
R
|
R
|
T
|
R
|
R
|
Semarang
|
R
|
R
|
ST
|
T
|
S
|
Sragen
|
R
|
R
|
T
|
R
|
S
|
Sukoharjo
|
R
|
R
|
R
|
R
|
T
|
Tegal
|
ST
|
R
|
T
|
R
|
R
|
Temanggung
|
R
|
R
|
ST
|
R
|
R
|
Wonogiri
|
R
|
R
|
ST
|
R
|
R
|
Wonosobo
|
R
|
R
|
T
|
R
|
R
|
Tabel 3. Jumlah Kabupaten/Kota di Jawa Tengah Tahun 2024 pada Setiap
Kategori Tiap Variabel Penelitian
# Nama variabel tanpa kolom wilayah
nama_variabel <- colnames(hasil_kategori)[-1]
# Buat tabel jumlah kategori per variabel
tabel_kategori <- lapply(nama_variabel, function(var) {
hasil_kategori %>%
count(Kategori = .data[[var]]) %>%
pivot_wider(names_from = Kategori, values_from = n, values_fill = 0) %>%
mutate(Variabel = var) %>%
select(Variabel, R, S, T, ST)
})
# Gabungkan semua hasil
tabel_kategori <- bind_rows(tabel_kategori)
# Tampilkan tabel
kable(tabel_kategori, caption = " Tabel 3. Jumlah Kabupaten/Kota di Jawa Tengah Tahun 2024 pada Setiap Kategori Tiap Variabel Penelitian") %>%
kable_styling(full_width = FALSE)
Tabel 3. Jumlah Kabupaten/Kota di Jawa Tengah Tahun 2024 pada Setiap
Kategori Tiap Variabel Penelitian
Variabel
|
R
|
S
|
T
|
ST
|
Tingkat Pengangguran Terbuka
|
19
|
7
|
6
|
3
|
Kepadatan Penduduk
|
29
|
2
|
3
|
1
|
Tingkat Partisipasi Angkatan Kerja
|
7
|
5
|
12
|
11
|
Upah Minimum Kabupaten/Kota
|
18
|
10
|
6
|
1
|
Indeks Pembangunan Manusia
|
16
|
9
|
6
|
4
|
Tabel 4. Daftar Kabupaten/Kota di Jawa Tengah Berdasarkan Kategori
Tiap Variabel Penelitian
# Ubah ke format long: variabel - kategori - kabupaten/kota
kategori_per_kab <- hasil_kategori %>%
pivot_longer(
cols = -`Kabupaten/Kota`,
names_to = "Variabel",
values_to = "Kategori"
) %>%
group_by(Variabel, Kategori) %>%
summarise(
`Daftar Kabupaten/Kota` = paste(`Kabupaten/Kota`, collapse = ", "),
.groups = "drop"
)
# Tampilkan tabel
kable(kategori_per_kab,
caption = "Tabel 4. Daftar Kabupaten/Kota di Jawa Tengah Berdasarkan Kategori Tiap Variabel Penelitian") %>%
kable_styling(full_width = FALSE)
Tabel 4. Daftar Kabupaten/Kota di Jawa Tengah Berdasarkan Kategori Tiap
Variabel Penelitian
Variabel
|
Kategori
|
Daftar Kabupaten/Kota
|
Indeks Pembangunan Manusia
|
R
|
Banjarnegara, Batang, Blora, Brebes, Cilacap, Grobogan, Kebumen,
Magelang, Pekalongan, Pemalang, Purbalingga, Rembang, Tegal, Temanggung,
Wonogiri, Wonosobo
|
Indeks Pembangunan Manusia
|
S
|
Banyumas, Boyolali, Demak, Jepara, Kendal, Pati, Purworejo, Semarang,
Sragen
|
Indeks Pembangunan Manusia
|
T
|
Karanganyar, Klaten, Kota Pekalongan, Kota Tegal, Kudus, Sukoharjo
|
Indeks Pembangunan Manusia
|
ST
|
Kota Magelang, Kota Salatiga, Kota Semarang, Kota Surakarta
|
Kepadatan Penduduk
|
R
|
Banjarnegara, Banyumas, Batang, Blora, Boyolali, Brebes, Cilacap, Demak,
Grobogan, Jepara, Karanganyar, Kebumen, Kendal, Klaten, Kudus, Magelang,
Pati, Pekalongan, Pemalang, Purbalingga, Purworejo, Rembang, Semarang,
Sragen, Sukoharjo, Tegal, Temanggung, Wonogiri, Wonosobo
|
Kepadatan Penduduk
|
S
|
Kota Salatiga, Kota Semarang
|
Kepadatan Penduduk
|
T
|
Kota Magelang, Kota Pekalongan, Kota Tegal
|
Kepadatan Penduduk
|
ST
|
Kota Surakarta
|
Tingkat Partisipasi Angkatan Kerja
|
R
|
Banyumas, Cilacap, Kota Magelang, Kota Semarang, Kota Surakarta, Kota
Tegal, Sukoharjo
|
Tingkat Partisipasi Angkatan Kerja
|
S
|
Brebes, Demak, Jepara, Kota Salatiga, Pemalang
|
Tingkat Partisipasi Angkatan Kerja
|
T
|
Banjarnegara, Blora, Boyolali, Karanganyar, Klaten, Kudus, Purbalingga,
Purworejo, Rembang, Sragen, Tegal, Wonosobo
|
Tingkat Partisipasi Angkatan Kerja
|
ST
|
Batang, Grobogan, Kebumen, Kendal, Kota Pekalongan, Magelang, Pati,
Pekalongan, Semarang, Temanggung, Wonogiri
|
Tingkat Pengangguran Terbuka
|
R
|
Blora, Boyolali, Grobogan, Jepara, Karanganyar, Klaten, Kota Salatiga,
Kudus, Magelang, Pati, Pekalongan, Purworejo, Rembang, Semarang, Sragen,
Sukoharjo, Temanggung, Wonogiri, Wonosobo
|
Tingkat Pengangguran Terbuka
|
S
|
Demak, Kebumen, Kendal, Kota Magelang, Kota Pekalongan, Kota Surakarta,
Purbalingga
|
Tingkat Pengangguran Terbuka
|
T
|
Banjarnegara, Banyumas, Batang, Kota Semarang, Kota Tegal, Pemalang
|
Tingkat Pengangguran Terbuka
|
ST
|
Brebes, Cilacap, Tegal
|
Upah Minimum Kabupaten/Kota
|
R
|
Banjarnegara, Banyumas, Blora, Brebes, Grobogan, Kebumen, Kota Magelang,
Pati, Pemalang, Purbalingga, Purworejo, Rembang, Sragen, Sukoharjo,
Tegal, Temanggung, Wonogiri, Wonosobo
|
Upah Minimum Kabupaten/Kota
|
S
|
Batang, Boyolali, Karanganyar, Klaten, Kota Pekalongan, Kota Salatiga,
Kota Surakarta, Kota Tegal, Magelang, Pekalongan
|
Upah Minimum Kabupaten/Kota
|
T
|
Cilacap, Demak, Jepara, Kendal, Kudus, Semarang
|
Upah Minimum Kabupaten/Kota
|
ST
|
Kota Semarang
|
Analisis Regresi Berganda
# Model regresi linier
model_ols <- lm(`Tingkat Pengangguran Terbuka` ~ `Kepadatan Penduduk` +
`Tingkat Partisipasi Angkatan Kerja` +
`Upah Minimum Kabupaten/Kota` +
`Indeks Pembangunan Manusia`,
data = data_gabung)
summary(model_ols)
##
## Call:
## lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan Penduduk` +
## `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum Kabupaten/Kota` +
## `Indeks Pembangunan Manusia`, data = data_gabung)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.0515 -0.7259 0.2041 0.5432 2.0515
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.228e+01 6.686e+00 6.323 5.67e-07 ***
## `Kepadatan Penduduk` 2.279e-04 1.054e-04 2.161 0.03878 *
## `Tingkat Partisipasi Angkatan Kerja` -2.856e-01 6.245e-02 -4.573 7.76e-05 ***
## `Upah Minimum Kabupaten/Kota` 2.613e-06 8.366e-07 3.123 0.00394 **
## `Indeks Pembangunan Manusia` -3.098e-01 6.070e-02 -5.104 1.74e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.032 on 30 degrees of freedom
## Multiple R-squared: 0.5791, Adjusted R-squared: 0.523
## F-statistic: 10.32 on 4 and 30 DF, p-value: 2.234e-05
Estimasi Parameter Regresi Linier Berganda
coef(model_ols)
## (Intercept) `Kepadatan Penduduk`
## 4.228001e+01 2.278698e-04
## `Tingkat Partisipasi Angkatan Kerja` `Upah Minimum Kabupaten/Kota`
## -2.855781e-01 2.613113e-06
## `Indeks Pembangunan Manusia`
## -3.097930e-01
Uji Asumsi Klasik pada Residual
Uji Normalitas Residual - menggunakan Shapiro-Wilk
Visualisasi Uji Normalitas
par(mfrow = c(1, 2))
# Histogram Residual
hist(residuals(model_ols), main = "Histogram Residual", col = "skyblue", breaks = 10)
# Q-Q Plot
qqnorm(residuals(model_ols))
qqline(residuals(model_ols), col = "red")

Tabel 5. Hasil Uji Normalitas Residual (Shapiro-Wilk)
# Uji Shapiro-Wilk
shapiro_result <- shapiro.test(residuals(model_ols))
shapiro_table <- data.frame(
`Statistik_Uji` = round(shapiro_result$statistic, 4),
`p_value` = round(shapiro_result$p.value, 4),
`Keputusan` = ifelse(shapiro_result$p.value > 0.05, "Tidak tolak H0", "Tolak H0"),
`Interpretasi` = ifelse(shapiro_result$p.value > 0.05,
"Residual berdistribusi normal (asumsi terpenuhi)",
"Residual tidak berdistribusi normal (asumsi tidak terpenuhi)")
)
# Tampilkan Tabel
kable(shapiro_table, caption = "Tabel 5. Hasil Uji Normalitas Residual (Shapiro-Wilk)") %>%
kable_styling(full_width = FALSE, position = "left")
Tabel 5. Hasil Uji Normalitas Residual (Shapiro-Wilk)
|
Statistik_Uji
|
p_value
|
Keputusan
|
Interpretasi
|
W
|
0.9769
|
0.6551
|
Tidak tolak H0
|
Residual berdistribusi normal (asumsi terpenuhi)
|
Uji Multikolinearitas – menggunakan VIF (Variance Inflation
Factor)
Tabel 6. Hasil Uji Multikolinearitas (VIF)
vif_result <- vif(model_ols)
vif_table <- data.frame(
`Variabel` = names(vif_result),
`Nilai_VIF` = round(vif_result, 2),
`Interpretasi` = ifelse(vif_result < 10,
"Tidak terjadi multikolinearitas (VIF < 10)",
"Terjadi multikolinearitas (VIF > 10)")
)
# Tampilkan Tabel
kable(vif_table, caption = "Tabel 6. Hasil Uji Multikolinearitas (VIF)") %>%
kable_styling(full_width = FALSE, position = "left")
Tabel 6. Hasil Uji Multikolinearitas (VIF)
|
Variabel
|
Nilai_VIF
|
Interpretasi
|
Kepadatan Penduduk
|
Kepadatan Penduduk
|
2.05
|
Tidak terjadi multikolinearitas (VIF < 10)
|
Tingkat Partisipasi Angkatan Kerja
|
Tingkat Partisipasi Angkatan Kerja
|
1.41
|
Tidak terjadi multikolinearitas (VIF < 10)
|
Upah Minimum Kabupaten/Kota
|
Upah Minimum Kabupaten/Kota
|
1.30
|
Tidak terjadi multikolinearitas (VIF < 10)
|
Indeks Pembangunan Manusia
|
Indeks Pembangunan Manusia
|
2.38
|
Tidak terjadi multikolinearitas (VIF < 10)
|
Uji Heteroskedastisitas – menggunakan Breusch-Pagan Test
bptest(model_ols)
##
## studentized Breusch-Pagan test
##
## data: model_ols
## BP = 3.9377, df = 4, p-value = 0.4145
Uji Signifikansi Model (Uji F)
summary(model_ols)$fstatistic
## value numdf dendf
## 10.31824 4.00000 30.00000
# Ambil nilai F dan derajat bebas
f_val <- summary(model_ols)$fstatistic[1]
df1 <- summary(model_ols)$fstatistic[2]
df2 <- summary(model_ols)$fstatistic[3]
# Hitung p-value
pval_f <- pf(f_val, df1, df2, lower.tail = FALSE)
pval_f
## value
## 2.234095e-05
Uji Signifikansi Parsial (Uji t)
summary(model_ols)$coefficients
## Estimate Std. Error t value
## (Intercept) 4.228001e+01 6.686327e+00 6.323354
## `Kepadatan Penduduk` 2.278698e-04 1.054294e-04 2.161350
## `Tingkat Partisipasi Angkatan Kerja` -2.855781e-01 6.245037e-02 -4.572881
## `Upah Minimum Kabupaten/Kota` 2.613113e-06 8.366273e-07 3.123389
## `Indeks Pembangunan Manusia` -3.097930e-01 6.070190e-02 -5.103514
## Pr(>|t|)
## (Intercept) 5.667616e-07
## `Kepadatan Penduduk` 3.877522e-02
## `Tingkat Partisipasi Angkatan Kerja` 7.759525e-05
## `Upah Minimum Kabupaten/Kota` 3.942126e-03
## `Indeks Pembangunan Manusia` 1.739148e-05
Matriks Pembobot Spasial
Queen Contiguity
nb_queen <- poly2nb(data_gabung, queen = TRUE)
## Warning in poly2nb(data_gabung, queen = TRUE): some observations have no neighbours;
## if this seems unexpected, try increasing the snap argument.
## Warning in poly2nb(data_gabung, queen = TRUE): neighbour object has 2 sub-graphs;
## if this sub-graph count seems unexpected, try increasing the snap argument.
lw_queen <- nb2listw(nb_queen, style = "W", zero.policy = TRUE)
plot(st_geometry(data_gabung), border = "gray")
# Plot neighbors Queen
plot(nb_queen,
coords = st_coordinates(st_centroid(data_gabung)),
col = "blue",
add = TRUE)
## Warning: st_centroid assumes attributes are constant over geometries

# Tampilkan bentuk Matriks
W_matrix <- listw2mat(lw_queen)
print(W_matrix)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## 1 0.0000000 0 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 3 0.2000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 6 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000
## 7 0.0000000 0 0.0000000 0.0000000 0.0000000 0.5000000 0.0000000 0.0000000
## 8 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 9 0.0000000 0 0.0000000 0.1428571 0.1428571 0.0000000 0.0000000 0.1428571
## 10 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 11 0.0000000 0 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000
## 12 0.2500000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000 0.0000000
## 13 0.0000000 0 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 14 0.0000000 0 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000
## 15 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 16 0.0000000 0 0.5000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 17 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 18 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 19 0.0000000 0 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000
## 20 0.0000000 0 0.0000000 0.0000000 0.0000000 0.5000000 0.0000000 0.0000000
## 21 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000
## 22 0.0000000 0 0.0000000 0.0000000 0.1428571 0.0000000 0.0000000 0.0000000
## 23 0.0000000 0 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000
## 24 0.2000000 0 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 25 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 26 0.3333333 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 27 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 28 0.0000000 0 0.0000000 0.5000000 0.0000000 0.0000000 0.0000000 0.0000000
## 29 0.0000000 0 0.0000000 0.0000000 0.1250000 0.0000000 0.0000000 0.1250000
## 30 0.0000000 0 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000
## 31 0.0000000 0 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000
## 32 0.0000000 0 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000
## 33 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 34 0.0000000 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 35 0.1428571 0 0.1428571 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
## 1 0.0000000 0.00 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000 0.0
## 2 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 3 0.0000000 0.00 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000 0.2
## 4 0.3333333 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 5 0.1250000 0.00 0.1250000 0.0000000 0.0000000 0.1250000 0.0000000 0.0
## 6 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 7 0.0000000 0.00 0.0000000 0.5000000 0.0000000 0.0000000 0.0000000 0.0
## 8 0.2000000 0.20 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 9 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 10 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 11 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 12 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 13 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 14 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 15 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 16 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 17 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 18 0.0000000 0.00 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000 0.0
## 19 0.0000000 0.00 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 20 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 21 0.2500000 0.25 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 22 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.1428571 0.1428571 0.0
## 23 0.2000000 0.20 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 24 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2
## 25 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 26 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 27 0.0000000 0.00 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000 0.0
## 28 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 29 0.1250000 0.00 0.0000000 0.0000000 0.1250000 0.0000000 0.0000000 0.0
## 30 0.3333333 0.00 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 31 0.0000000 0.00 0.2000000 0.0000000 0.0000000 0.2000000 0.0000000 0.0
## 32 0.0000000 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 33 0.0000000 0.00 0.0000000 0.0000000 0.2500000 0.0000000 0.0000000 0.0
## 34 0.0000000 0.00 0.5000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0
## 35 0.0000000 0.00 0.0000000 0.1428571 0.1428571 0.0000000 0.0000000 0.0
## [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24]
## 1 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.2000000
## 2 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 3 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.2000000
## 4 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000
## 5 0.000 0.000 0.125 0.0000000 0.0000000 0.1250000 0.0000000 0.0000000
## 6 0.000 0.000 0.000 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000
## 7 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 8 0.000 0.200 0.000 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000
## 9 0.000 0.000 0.000 0.0000000 0.1428571 0.0000000 0.1428571 0.0000000
## 10 0.000 0.000 0.000 0.0000000 0.3333333 0.0000000 0.3333333 0.0000000
## 11 0.000 0.000 0.200 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 12 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 13 0.000 0.200 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 14 0.000 0.000 0.000 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000
## 15 0.000 0.000 0.000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000
## 16 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.5000000
## 17 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 18 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 19 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 20 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 21 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.2500000 0.0000000
## 22 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 23 0.000 0.000 0.000 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000
## 24 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 25 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 26 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 27 0.000 0.000 0.000 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000
## 28 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.5000000 0.0000000
## 29 0.125 0.125 0.000 0.0000000 0.0000000 0.1250000 0.0000000 0.0000000
## 30 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 31 0.000 0.000 0.200 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 32 0.000 0.000 0.000 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000
## 33 0.000 0.000 0.000 0.0000000 0.0000000 0.2500000 0.0000000 0.0000000
## 34 0.000 0.000 0.000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 35 0.000 0.000 0.000 0.0000000 0.0000000 0.1428571 0.0000000 0.0000000
## [,25] [,26] [,27] [,28] [,29] [,30] [,31]
## 1 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000
## 5 0.0000000 0.0000000 0.0000000 0.0000000 0.1250000 0.1250000 0.1250000
## 6 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 7 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 8 0.0000000 0.0000000 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000
## 9 0.0000000 0.0000000 0.0000000 0.0000000 0.1428571 0.1428571 0.0000000
## 10 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 11 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2000000 0.2000000
## 12 0.0000000 0.0000000 0.2500000 0.0000000 0.0000000 0.0000000 0.0000000
## 13 0.0000000 0.0000000 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000
## 14 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 15 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 16 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 17 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000
## 18 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000 0.0000000
## 19 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3333333
## 20 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 21 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 22 0.0000000 0.0000000 0.1428571 0.0000000 0.1428571 0.0000000 0.0000000
## 23 0.0000000 0.0000000 0.0000000 0.2000000 0.0000000 0.0000000 0.0000000
## 24 0.2000000 0.2000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 25 0.0000000 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 26 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 27 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 28 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 29 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 30 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 31 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 32 0.3333333 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 33 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000 0.0000000 0.0000000
## 34 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.5000000
## 35 0.0000000 0.0000000 0.1428571 0.0000000 0.0000000 0.0000000 0.0000000
## [,32] [,33] [,34] [,35]
## 1 0.0000000 0.0000000 0.0 0.2000000
## 2 0.0000000 0.0000000 0.0 0.0000000
## 3 0.0000000 0.0000000 0.0 0.2000000
## 4 0.0000000 0.0000000 0.0 0.0000000
## 5 0.0000000 0.0000000 0.0 0.0000000
## 6 0.3333333 0.0000000 0.0 0.0000000
## 7 0.0000000 0.0000000 0.0 0.0000000
## 8 0.0000000 0.0000000 0.0 0.0000000
## 9 0.0000000 0.0000000 0.0 0.0000000
## 10 0.0000000 0.0000000 0.0 0.0000000
## 11 0.0000000 0.0000000 0.2 0.0000000
## 12 0.0000000 0.0000000 0.0 0.2500000
## 13 0.0000000 0.2000000 0.0 0.2000000
## 14 0.0000000 0.0000000 0.0 0.0000000
## 15 0.0000000 0.0000000 0.0 0.0000000
## 16 0.0000000 0.0000000 0.0 0.0000000
## 17 0.0000000 0.0000000 0.0 0.0000000
## 18 0.0000000 0.0000000 0.0 0.0000000
## 19 0.0000000 0.0000000 0.0 0.0000000
## 20 0.5000000 0.0000000 0.0 0.0000000
## 21 0.0000000 0.0000000 0.0 0.0000000
## 22 0.0000000 0.1428571 0.0 0.1428571
## 23 0.0000000 0.0000000 0.0 0.0000000
## 24 0.0000000 0.0000000 0.0 0.0000000
## 25 0.3333333 0.0000000 0.0 0.0000000
## 26 0.0000000 0.0000000 0.0 0.0000000
## 27 0.0000000 0.0000000 0.0 0.3333333
## 28 0.0000000 0.0000000 0.0 0.0000000
## 29 0.0000000 0.1250000 0.0 0.0000000
## 30 0.0000000 0.0000000 0.0 0.0000000
## 31 0.0000000 0.0000000 0.2 0.0000000
## 32 0.0000000 0.0000000 0.0 0.0000000
## 33 0.0000000 0.0000000 0.0 0.2500000
## 34 0.0000000 0.0000000 0.0 0.0000000
## 35 0.0000000 0.1428571 0.0 0.0000000
Moran’s I
Tabel 7. Hasil Uji Moran’s I pada Residual Model OLS
moran_resid <- moran.test(residuals(model_ols), lw_queen, zero.policy = TRUE)
# Buat tabel ringkasan
moran_resid_table <- data.frame(
`Moran_I` = round(moran_resid$estimate[["Moran I statistic"]], 4),
`Expected_I` = round(moran_resid$estimate[["Expectation"]], 4),
`Variance` = round(moran_resid$estimate[["Variance"]], 4),
`p_value` = signif(moran_resid$p.value, 4),
`Interpretasi` = ifelse(moran_resid$p.value < 0.05,
"Terdapat autokorelasi spasial pada residual (lanjut regresi spasial)",
"Tidak terdapat autokorelasi spasial (cukup OLS)")
)
kable(moran_resid_table, caption = "Tabel 7. Hasil Uji Moran’s I pada Residual Model OLS") %>%
kable_styling(full_width = FALSE)
Tabel 7. Hasil Uji Moran’s I pada Residual Model OLS
Moran_I
|
Expected_I
|
Variance
|
p_value
|
Interpretasi
|
0.2088
|
-0.0303
|
0.015
|
0.02548
|
Terdapat autokorelasi spasial pada residual (lanjut regresi spasial)
|
Lagrange Multiplier Tests
lm_tests <- lm.LMtests(model_ols, lw_queen, test = "all", zero.policy = TRUE)
## Please update scripts to use lm.RStests in place of lm.LMtests
lm_tests
##
## Rao's score (a.k.a Lagrange multiplier) diagnostics for spatial
## dependence
##
## data:
## model: lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan
## Penduduk` + `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum
## Kabupaten/Kota` + `Indeks Pembangunan Manusia`, data = data_gabung)
## test weights: listw
##
## RSerr = 2.7275, df = 1, p-value = 0.09863
##
##
## Rao's score (a.k.a Lagrange multiplier) diagnostics for spatial
## dependence
##
## data:
## model: lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan
## Penduduk` + `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum
## Kabupaten/Kota` + `Indeks Pembangunan Manusia`, data = data_gabung)
## test weights: listw
##
## RSlag = 5.5461, df = 1, p-value = 0.01852
##
##
## Rao's score (a.k.a Lagrange multiplier) diagnostics for spatial
## dependence
##
## data:
## model: lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan
## Penduduk` + `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum
## Kabupaten/Kota` + `Indeks Pembangunan Manusia`, data = data_gabung)
## test weights: listw
##
## adjRSerr = 0.039787, df = 1, p-value = 0.8419
##
##
## Rao's score (a.k.a Lagrange multiplier) diagnostics for spatial
## dependence
##
## data:
## model: lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan
## Penduduk` + `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum
## Kabupaten/Kota` + `Indeks Pembangunan Manusia`, data = data_gabung)
## test weights: listw
##
## adjRSlag = 2.8584, df = 1, p-value = 0.0909
##
##
## Rao's score (a.k.a Lagrange multiplier) diagnostics for spatial
## dependence
##
## data:
## model: lm(formula = `Tingkat Pengangguran Terbuka` ~ `Kepadatan
## Penduduk` + `Tingkat Partisipasi Angkatan Kerja` + `Upah Minimum
## Kabupaten/Kota` + `Indeks Pembangunan Manusia`, data = data_gabung)
## test weights: listw
##
## SARMA = 5.5859, df = 2, p-value = 0.06124
Model Regresi Spasial
data_gabung$X1 <- scale(data_gabung$`Kepadatan Penduduk`)
data_gabung$X2 <- scale(data_gabung$`Tingkat Partisipasi Angkatan Kerja`)
data_gabung$X3 <- scale(data_gabung$`Upah Minimum Kabupaten/Kota`)
data_gabung$X4 <- scale(data_gabung$`Indeks Pembangunan Manusia`)
Spatial Lag Model (SLM) / SAR (Spatial Autoregressive
Regression)
model_slm <- lagsarlm(`Tingkat Pengangguran Terbuka` ~ X1 + X2 + X3 + X4,
data = data_gabung,
listw = lw_queen,
method = "Matrix",
zero.policy = TRUE)
summary(model_slm)
##
## Call:lagsarlm(formula = `Tingkat Pengangguran Terbuka` ~ X1 + X2 +
## X3 + X4, data = data_gabung, listw = lw_queen, method = "Matrix",
## zero.policy = TRUE)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.9038137 -0.6830325 0.0011646 0.6809943 1.5770725
##
## Type: lag
## Regions with no neighbours included:
## 2
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 3.32117 0.57600 5.7659 8.122e-09
## X1 0.33037 0.23035 1.4342 0.151517
## X2 -0.92631 0.18032 -5.1372 2.789e-07
## X3 0.51489 0.17729 2.9042 0.003682
## X4 -1.06902 0.25832 -4.1384 3.498e-05
##
## Rho: 0.27938, LR test value: 4.9316, p-value: 0.026369
## Asymptotic standard error: 0.12826
## z-value: 2.1781, p-value: 0.029395
## Wald statistic: 4.7443, p-value: 0.029395
##
## Log likelihood: -45.61044 for lag model
## ML residual variance (sigma squared): 0.77753, (sigma: 0.88178)
## Number of observations: 35
## Number of parameters estimated: 7
## AIC: 105.22, (AIC for lm: 108.15)
## LM test for residual autocorrelation
## test value: 0.011696, p-value: 0.91388
Spatial Error Model (SEM)
model_sem <- errorsarlm(`Tingkat Pengangguran Terbuka` ~ X1 + X2 + X3 + X4,
data = data_gabung,
listw = lw_queen,
method = "Matrix",
zero.policy = TRUE)
summary(model_sem)
##
## Call:errorsarlm(formula = `Tingkat Pengangguran Terbuka` ~ X1 + X2 +
## X3 + X4, data = data_gabung, listw = lw_queen, method = "Matrix",
## zero.policy = TRUE)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.69048 -0.62048 0.13053 0.56388 1.87228
##
## Type: error
## Regions with no neighbours included:
## 2
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 4.62942 0.32422 14.2787 < 2.2e-16
## X1 0.25248 0.21338 1.1832 0.2367161
## X2 -0.65974 0.17768 -3.7130 0.0002048
## X3 0.49818 0.20002 2.4907 0.0127508
## X4 -0.82752 0.28370 -2.9169 0.0035356
##
## Lambda: 0.57713, LR test value: 5.509, p-value: 0.018919
## Asymptotic standard error: 0.14888
## z-value: 3.8765, p-value: 0.00010597
## Wald statistic: 15.027, p-value: 0.00010597
##
## Log likelihood: -45.32176 for error model
## ML residual variance (sigma squared): 0.707, (sigma: 0.84083)
## Number of observations: 35
## Number of parameters estimated: 7
## AIC: 104.64, (AIC for lm: 108.15)
Pemilihan Model Terbaik
Tabel 8. Perbandingan Nilai AIC antar Model: OLS, SLM, dan SEM
aic_ols <- AIC(model_ols)
aic_slm <- AIC(model_slm)
aic_sem <- AIC(model_sem)
tabel_aic <- data.frame(
Model = c("OLS", "SLM (SAR)", "SEM"),
AIC = round(c(aic_ols, aic_slm, aic_sem), 4)
)
kable(tabel_aic, caption = "Tabel 8. Perbandingan Nilai AIC antar Model: OLS, SLM, dan SEM") %>%
kable_styling(full_width = FALSE)
Tabel 8. Perbandingan Nilai AIC antar Model: OLS, SLM, dan SEM
Model
|
AIC
|
OLS
|
108.1525
|
SLM (SAR)
|
105.2209
|
SEM
|
104.6435
|
Spatial Error Model untuk Masing Masing Kabupaten/Kota
# Ambil koefisien SEM
coef_sem <- summary(model_sem)$coefficients # intercept + betas
lambda_sem <- model_sem$lambda # efek error spasial
# Ambil nama-nama wilayah
wilayah <- data_gabung$Kab__Kota
# Ambil matriks pembobot spasial dari listw
W_matrix <- listw2mat(lw_queen)
# Simpan semua persamaan sebagai teks
persamaan_sem <- vector("character", length = length(wilayah))
# Loop per kabupaten/kota
for (i in seq_along(wilayah)) {
nama <- wilayah[i]
# Buat bagian X: intercept + beta*Xi
bagian_linier <- paste0(
round(coef_sem[1], 4), " + ",
round(coef_sem[2], 4), "*X1_", nama, " + ",
round(coef_sem[3], 4), "*X2_", nama, " + ",
round(coef_sem[4], 4), "*X3_", nama, " + ",
round(coef_sem[5], 4), "*X4_", nama
)
# Ambil tetangga dari baris ke-i
tetangga_idx <- which(W_matrix[i, ] != 0)
tetangga_nama <- wilayah[tetangga_idx]
bobot <- W_matrix[i, tetangga_idx]
# Buat bagian efek error spasial (lambda * Σwij * εj)
if (length(tetangga_nama) > 0) {
bagian_error <- paste0(round(bobot, 4), "*ε_", tetangga_nama, collapse = " + ")
bagian_error_total <- paste0(" + ", round(lambda_sem, 4), "*(", bagian_error, ")")
} else {
bagian_error_total <- ""
}
# Gabungkan jadi satu persamaan
persamaan_sem[i] <- paste0("ŷ_", toupper(nama), " = ", bagian_linier, bagian_error_total)
}
# Tampilkan hasil (bisa juga ditulis ke file .txt)
cat(paste(persamaan_sem, collapse = "\n\n"))
## ŷ_BANJARNEGARA = 4.6294 + 0.2525*X1_Banjarnegara + -0.6597*X2_Banjarnegara + 0.4982*X3_Banjarnegara + -0.8275*X4_Banjarnegara + 0.5771*(0.2*ε_Batang + 0.2*ε_Kebumen + 0.2*ε_Pekalongan + 0.2*ε_Purbalingga + 0.2*ε_Wonosobo)
##
## ŷ_BANYUMAS = 4.6294 + 0.2525*X1_Banyumas + -0.6597*X2_Banyumas + 0.4982*X3_Banyumas + -0.8275*X4_Banyumas
##
## ŷ_BATANG = 4.6294 + 0.2525*X1_Batang + -0.6597*X2_Batang + 0.4982*X3_Batang + -0.8275*X4_Batang + 0.5771*(0.2*ε_Banjarnegara + 0.2*ε_Kendal + 0.2*ε_Kota Pekalongan + 0.2*ε_Pekalongan + 0.2*ε_Wonosobo)
##
## ŷ_BLORA = 4.6294 + 0.2525*X1_Blora + -0.6597*X2_Blora + 0.4982*X3_Blora + -0.8275*X4_Blora + 0.5771*(0.3333*ε_Grobogan + 0.3333*ε_Pati + 0.3333*ε_Rembang)
##
## ŷ_BOYOLALI = 4.6294 + 0.2525*X1_Boyolali + -0.6597*X2_Boyolali + 0.4982*X3_Boyolali + -0.8275*X4_Boyolali + 0.5771*(0.125*ε_Grobogan + 0.125*ε_Karanganyar + 0.125*ε_Klaten + 0.125*ε_Kota Surakarta + 0.125*ε_Magelang + 0.125*ε_Semarang + 0.125*ε_Sragen + 0.125*ε_Sukoharjo)
##
## ŷ_BREBES = 4.6294 + 0.2525*X1_Brebes + -0.6597*X2_Brebes + 0.4982*X3_Brebes + -0.8275*X4_Brebes + 0.5771*(0.3333*ε_Cilacap + 0.3333*ε_Kota Tegal + 0.3333*ε_Tegal)
##
## ŷ_CILACAP = 4.6294 + 0.2525*X1_Cilacap + -0.6597*X2_Cilacap + 0.4982*X3_Cilacap + -0.8275*X4_Cilacap + 0.5771*(0.5*ε_Brebes + 0.5*ε_Kebumen)
##
## ŷ_DEMAK = 4.6294 + 0.2525*X1_Demak + -0.6597*X2_Demak + 0.4982*X3_Demak + -0.8275*X4_Demak + 0.5771*(0.2*ε_Grobogan + 0.2*ε_Jepara + 0.2*ε_Kota Semarang + 0.2*ε_Kudus + 0.2*ε_Semarang)
##
## ŷ_GROBOGAN = 4.6294 + 0.2525*X1_Grobogan + -0.6597*X2_Grobogan + 0.4982*X3_Grobogan + -0.8275*X4_Grobogan + 0.5771*(0.1429*ε_Blora + 0.1429*ε_Boyolali + 0.1429*ε_Demak + 0.1429*ε_Kudus + 0.1429*ε_Pati + 0.1429*ε_Semarang + 0.1429*ε_Sragen)
##
## ŷ_JEPARA = 4.6294 + 0.2525*X1_Jepara + -0.6597*X2_Jepara + 0.4982*X3_Jepara + -0.8275*X4_Jepara + 0.5771*(0.3333*ε_Demak + 0.3333*ε_Kudus + 0.3333*ε_Pati)
##
## ŷ_KARANGANYAR = 4.6294 + 0.2525*X1_Karanganyar + -0.6597*X2_Karanganyar + 0.4982*X3_Karanganyar + -0.8275*X4_Karanganyar + 0.5771*(0.2*ε_Boyolali + 0.2*ε_Kota Surakarta + 0.2*ε_Sragen + 0.2*ε_Sukoharjo + 0.2*ε_Wonogiri)
##
## ŷ_KEBUMEN = 4.6294 + 0.2525*X1_Kebumen + -0.6597*X2_Kebumen + 0.4982*X3_Kebumen + -0.8275*X4_Kebumen + 0.5771*(0.25*ε_Banjarnegara + 0.25*ε_Cilacap + 0.25*ε_Purworejo + 0.25*ε_Wonosobo)
##
## ŷ_KENDAL = 4.6294 + 0.2525*X1_Kendal + -0.6597*X2_Kendal + 0.4982*X3_Kendal + -0.8275*X4_Kendal + 0.5771*(0.2*ε_Batang + 0.2*ε_Kota Semarang + 0.2*ε_Semarang + 0.2*ε_Temanggung + 0.2*ε_Wonosobo)
##
## ŷ_KLATEN = 4.6294 + 0.2525*X1_Klaten + -0.6597*X2_Klaten + 0.4982*X3_Klaten + -0.8275*X4_Klaten + 0.5771*(0.3333*ε_Boyolali + 0.3333*ε_Magelang + 0.3333*ε_Sukoharjo)
##
## ŷ_KOTA MAGELANG = 4.6294 + 0.2525*X1_Kota Magelang + -0.6597*X2_Kota Magelang + 0.4982*X3_Kota Magelang + -0.8275*X4_Kota Magelang + 0.5771*(1*ε_Magelang)
##
## ŷ_KOTA PEKALONGAN = 4.6294 + 0.2525*X1_Kota Pekalongan + -0.6597*X2_Kota Pekalongan + 0.4982*X3_Kota Pekalongan + -0.8275*X4_Kota Pekalongan + 0.5771*(0.5*ε_Batang + 0.5*ε_Pekalongan)
##
## ŷ_KOTA SALATIGA = 4.6294 + 0.2525*X1_Kota Salatiga + -0.6597*X2_Kota Salatiga + 0.4982*X3_Kota Salatiga + -0.8275*X4_Kota Salatiga + 0.5771*(1*ε_Semarang)
##
## ŷ_KOTA SEMARANG = 4.6294 + 0.2525*X1_Kota Semarang + -0.6597*X2_Kota Semarang + 0.4982*X3_Kota Semarang + -0.8275*X4_Kota Semarang + 0.5771*(0.3333*ε_Demak + 0.3333*ε_Kendal + 0.3333*ε_Semarang)
##
## ŷ_KOTA SURAKARTA = 4.6294 + 0.2525*X1_Kota Surakarta + -0.6597*X2_Kota Surakarta + 0.4982*X3_Kota Surakarta + -0.8275*X4_Kota Surakarta + 0.5771*(0.3333*ε_Boyolali + 0.3333*ε_Karanganyar + 0.3333*ε_Sukoharjo)
##
## ŷ_KOTA TEGAL = 4.6294 + 0.2525*X1_Kota Tegal + -0.6597*X2_Kota Tegal + 0.4982*X3_Kota Tegal + -0.8275*X4_Kota Tegal + 0.5771*(0.5*ε_Brebes + 0.5*ε_Tegal)
##
## ŷ_KUDUS = 4.6294 + 0.2525*X1_Kudus + -0.6597*X2_Kudus + 0.4982*X3_Kudus + -0.8275*X4_Kudus + 0.5771*(0.25*ε_Demak + 0.25*ε_Grobogan + 0.25*ε_Jepara + 0.25*ε_Pati)
##
## ŷ_MAGELANG = 4.6294 + 0.2525*X1_Magelang + -0.6597*X2_Magelang + 0.4982*X3_Magelang + -0.8275*X4_Magelang + 0.5771*(0.1429*ε_Boyolali + 0.1429*ε_Klaten + 0.1429*ε_Kota Magelang + 0.1429*ε_Purworejo + 0.1429*ε_Semarang + 0.1429*ε_Temanggung + 0.1429*ε_Wonosobo)
##
## ŷ_PATI = 4.6294 + 0.2525*X1_Pati + -0.6597*X2_Pati + 0.4982*X3_Pati + -0.8275*X4_Pati + 0.5771*(0.2*ε_Blora + 0.2*ε_Grobogan + 0.2*ε_Jepara + 0.2*ε_Kudus + 0.2*ε_Rembang)
##
## ŷ_PEKALONGAN = 4.6294 + 0.2525*X1_Pekalongan + -0.6597*X2_Pekalongan + 0.4982*X3_Pekalongan + -0.8275*X4_Pekalongan + 0.5771*(0.2*ε_Banjarnegara + 0.2*ε_Batang + 0.2*ε_Kota Pekalongan + 0.2*ε_Pemalang + 0.2*ε_Purbalingga)
##
## ŷ_PEMALANG = 4.6294 + 0.2525*X1_Pemalang + -0.6597*X2_Pemalang + 0.4982*X3_Pemalang + -0.8275*X4_Pemalang + 0.5771*(0.3333*ε_Pekalongan + 0.3333*ε_Purbalingga + 0.3333*ε_Tegal)
##
## ŷ_PURBALINGGA = 4.6294 + 0.2525*X1_Purbalingga + -0.6597*X2_Purbalingga + 0.4982*X3_Purbalingga + -0.8275*X4_Purbalingga + 0.5771*(0.3333*ε_Banjarnegara + 0.3333*ε_Pekalongan + 0.3333*ε_Pemalang)
##
## ŷ_PURWOREJO = 4.6294 + 0.2525*X1_Purworejo + -0.6597*X2_Purworejo + 0.4982*X3_Purworejo + -0.8275*X4_Purworejo + 0.5771*(0.3333*ε_Kebumen + 0.3333*ε_Magelang + 0.3333*ε_Wonosobo)
##
## ŷ_REMBANG = 4.6294 + 0.2525*X1_Rembang + -0.6597*X2_Rembang + 0.4982*X3_Rembang + -0.8275*X4_Rembang + 0.5771*(0.5*ε_Blora + 0.5*ε_Pati)
##
## ŷ_SEMARANG = 4.6294 + 0.2525*X1_Semarang + -0.6597*X2_Semarang + 0.4982*X3_Semarang + -0.8275*X4_Semarang + 0.5771*(0.125*ε_Boyolali + 0.125*ε_Demak + 0.125*ε_Grobogan + 0.125*ε_Kendal + 0.125*ε_Kota Salatiga + 0.125*ε_Kota Semarang + 0.125*ε_Magelang + 0.125*ε_Temanggung)
##
## ŷ_SRAGEN = 4.6294 + 0.2525*X1_Sragen + -0.6597*X2_Sragen + 0.4982*X3_Sragen + -0.8275*X4_Sragen + 0.5771*(0.3333*ε_Boyolali + 0.3333*ε_Grobogan + 0.3333*ε_Karanganyar)
##
## ŷ_SUKOHARJO = 4.6294 + 0.2525*X1_Sukoharjo + -0.6597*X2_Sukoharjo + 0.4982*X3_Sukoharjo + -0.8275*X4_Sukoharjo + 0.5771*(0.2*ε_Boyolali + 0.2*ε_Karanganyar + 0.2*ε_Klaten + 0.2*ε_Kota Surakarta + 0.2*ε_Wonogiri)
##
## ŷ_TEGAL = 4.6294 + 0.2525*X1_Tegal + -0.6597*X2_Tegal + 0.4982*X3_Tegal + -0.8275*X4_Tegal + 0.5771*(0.3333*ε_Brebes + 0.3333*ε_Kota Tegal + 0.3333*ε_Pemalang)
##
## ŷ_TEMANGGUNG = 4.6294 + 0.2525*X1_Temanggung + -0.6597*X2_Temanggung + 0.4982*X3_Temanggung + -0.8275*X4_Temanggung + 0.5771*(0.25*ε_Kendal + 0.25*ε_Magelang + 0.25*ε_Semarang + 0.25*ε_Wonosobo)
##
## ŷ_WONOGIRI = 4.6294 + 0.2525*X1_Wonogiri + -0.6597*X2_Wonogiri + 0.4982*X3_Wonogiri + -0.8275*X4_Wonogiri + 0.5771*(0.5*ε_Karanganyar + 0.5*ε_Sukoharjo)
##
## ŷ_WONOSOBO = 4.6294 + 0.2525*X1_Wonosobo + -0.6597*X2_Wonosobo + 0.4982*X3_Wonosobo + -0.8275*X4_Wonosobo + 0.5771*(0.1429*ε_Banjarnegara + 0.1429*ε_Batang + 0.1429*ε_Kebumen + 0.1429*ε_Kendal + 0.1429*ε_Magelang + 0.1429*ε_Purworejo + 0.1429*ε_Temanggung)