2. Melakukan Analisis GWPR IPM Provinsi Sulawesi Selatan
(2020-2024)
A. Pemanggilan Data SHP Kabupaten/Kota Provinsi Sulawesi
Selatan
SHP_Kabupaten_Sulsel <- st_read("D:/Artikel Obaja/SHP Provinsi Sulawesi Selatan/SHP Provinsi Sulawesi Selatan")
## Reading layer `RBI_50K_2023_Sulawesi Selatan' from data source
## `D:\Artikel Obaja\SHP Provinsi Sulawesi Selatan\SHP Provinsi Sulawesi Selatan'
## using driver `ESRI Shapefile'
## Simple feature collection with 25 features and 25 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 117.0383 ymin: -7.758941 xmax: 122.2226 ymax: -1.947286
## Geodetic CRS: WGS 84
st_geometry(SHP_Kabupaten_Sulsel)
## Geometry set for 25 features
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 117.0383 ymin: -7.758941 xmax: 122.2226 ymax: -1.947286
## Geodetic CRS: WGS 84
## First 5 geometries:
## MULTIPOLYGON (((119.9556 -5.35437, 119.9556 -5....
## MULTIPOLYGON (((119.5721 -4.488175, 119.5719 -4...
## MULTIPOLYGON (((120.3106 -5.037077, 120.3107 -5...
## MULTIPOLYGON (((120.4291 -5.63984, 120.4292 -5....
## MULTIPOLYGON (((120.0407 -3.369293, 120.0407 -3...
B. Mempersiapkan Data Spasial
## Mengganti Nama Kolom NAMOBJ Menjadi Kabupaten/Kota
names(SHP_Kabupaten_Sulsel)[names(SHP_Kabupaten_Sulsel) == "NAMOBJ"] <- "Kabupaten/Kota"
## Memfilter Wilayah Kabupaten/Kota yang terdapat pada data IPM Sulawesi Selatan
SHP_Kabupaten_Sulsel_filtered <- SHP_Kabupaten_Sulsel %>%
filter(`Kabupaten/Kota` %in% Data_IPM_Sulawesi_Selatan$`Kabupaten/Kota`)
## Memperbaiki Geometri yang Tidak Valid
SHP_Kabupaten_Sulsel <- st_make_valid(SHP_Kabupaten_Sulsel_filtered)
## Menambahkan Kolom ID pada Data Shapefile Provinsi Sulawesi Selatan
SHP_Kabupaten_Sulsel <- SHP_Kabupaten_Sulsel_filtered %>%
arrange(`Kabupaten/Kota`) %>%
mutate(ID = row_number())
## Melakukan Transformasi CRS
SHP_Kabupaten_Sulsel <- st_transform(SHP_Kabupaten_Sulsel, 32750)
C. Mengambil Nilai Koordinat Centroid untuk Setiap
Kabupaten/Kota
## Menghitung Titik Label Menggunakan Koordinat WGS84 (sebelum ditransformasi)
Centroid_LL <- st_centroid(st_geometry(SHP_Kabupaten_Sulsel_filtered))
Coords_LL <- st_coordinates(Centroid_LL)
Data_LL <- tibble(
`Kabupaten/Kota` = SHP_Kabupaten_Sulsel_filtered$`Kabupaten/Kota`,
Longitude = Coords_LL[,1],
Latitude = Coords_LL[,2]
)
## Menghitung Titik Label Menggunakan Koordinat UTM (Setelah ditransformasi)
Centroid_UTM <- st_centroid(st_geometry(SHP_Kabupaten_Sulsel))
Coords_UTM <- st_coordinates(Centroid_UTM)
Data_UTM <- tibble(
`Kabupaten/Kota` = SHP_Kabupaten_Sulsel$`Kabupaten/Kota`,
Easting = Coords_UTM[,1],
Northing = Coords_UTM[,2]
)
## Membuat Tabel Koordinat untuk Data Long-Lat serta Nort dan Easting
Tabel_Koordinat <- Data_LL %>%
left_join(Data_UTM, by = "Kabupaten/Kota")
View(Tabel_Koordinat)
D. Menggabungkan Data Panel IPM dengan Data Shapefile Sulawesi
Selatan
## Menampilkan Hasil Gabungan Data SHP dan IPM Provinsi Sulawesi Selatan
Data_GWPR_IPM <- Data_IPM_Sulawesi_Selatan %>%
select(-any_of("ID")) %>%
left_join(
SHP_Kabupaten_Sulsel %>%
st_drop_geometry() %>%
select(`Kabupaten/Kota`, ID),
by = "Kabupaten/Kota"
) %>%
arrange(Tahun, ID)
E. Menggabungkan Data Koordinat dengan Data Panel
Data_GWPR_IPM_Sulsel <- Data_GWPR_IPM %>%
left_join(Data_UTM, by=c("Kabupaten/Kota"="Kabupaten/Kota"))
## Mengubah Format Data Panel Gabungan ke Dalam Data Frame
Data_GWPR_IPM_Sulsel <- as.data.frame(Data_GWPR_IPM_Sulsel)
Data_GWPR_IPM_Sulsel$aim <- 0
rownames(Data_GWPR_IPM_Sulsel) <- NULL
head(Data_GWPR_IPM_Sulsel)
## Kabupaten/Kota Tahun IPM X1 X2 X3 X4 X5 X6 ID Easting
## 1 Bantaeng 2020 68.73 57.22 3572 16.84 0.344 77.80 45.78 1 831052.9
## 2 Barru 2020 71.00 70.48 3724 14.44 0.357 56.02 88.39 2 799082.6
## 3 Bone 2020 66.06 64.39 19513 81.33 0.404 53.74 86.12 3 847313.8
## 4 Bulukumba 2020 68.99 74.18 11430 30.00 0.371 42.16 55.35 4 858485.4
## 5 Enrekang 2020 72.76 79.80 7624 25.25 0.366 56.99 87.87 5 819409.1
## 6 Gowa 2020 70.14 71.48 16841 57.68 0.345 33.93 93.54 6 801353.4
## Northing aim
## 1 9392325 0
## 2 9508697 0
## 3 9480283 0
## 4 9398684 0
## 5 9612225 0
## 6 9412527 0
view(Data_GWPR_IPM_Sulsel)
G. Menghitung Matriks Jarak Euclidean pada Setiap
Kabupaten/Kota
## Mengambil Nilai Koordinat
u <- as.matrix(Data_GWPR_IPM_Sulsel$Easting[1:24])
v <- as.matrix(Data_GWPR_IPM_Sulsel$Northing[1:24])
## Mengambil Nama Kabupaten/Kota di Provinsi Sulawesi Selatan
Nama_Kab <- Data_GWPR_IPM_Sulsel$`Kabupaten/Kota`[1:24]
## Membuat Matriks Jarak
Jarak <- matrix(nrow=24,ncol=24)
## Memberi Nama pada Baris dan Kolom
rownames(Jarak) <- Nama_Kab
colnames(Jarak) <- Nama_Kab
## Menghitung Jarak Euclidean Antar Setiap Kabupaten/Kota
for(i in 1:24){
for(j in 1:24){
Jarak[i,j] <- sqrt((u[i]-u[j])^2 + (v[i]-v[j])^2)
}
}
View(Jarak)
H. Pemodelan GWPR dengan Fungsi Pembobot Adaptive Gaussian
Kernel
1. Menentukan Nilai Bandwidth Optimal
Bandwidth.GWPR_Gaussian <- bw.GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
index = c("ID", "Tahun"),
SDF = SHP_Kabupaten_Sulsel_sp,
adaptive = TRUE,
approach = "CV",
kernel = "gaussian",
effect = "individual",
model = "random") # Menyesuaikan dengan Hasil Regresi Panel
## To make sure every subsample have enough freedom, the minimum number of individuals is 2
## The upper boundary is 24, and the lower boundary is 8
## Adaptive Bandwidth: 17 CV score: 0.2396852
## Adaptive Bandwidth: 14 CV score: 0.2451317
## Adaptive Bandwidth: 20 CV score: 0.253616
## Adaptive Bandwidth: 16 CV score: 0.2381249
## Adaptive Bandwidth: 14 CV score: 0.2451317
## Adaptive Bandwidth: 15 CV score: 0.2382259
## Adaptive Bandwidth: 14 CV score: 0.2451317
## Adaptive Bandwidth: 15 CV score: 0.2382259
## Adaptive Bandwidth: 14 CV score: 0.2451317
## Adaptive Bandwidth: 14 CV score: 0.2451317
## Adaptive Bandwidth: 13 CV score: 0.2404945
## Adaptive Bandwidth: 13 CV score: 0.2404945
## Adaptive Bandwidth: 12 CV score: 0.2404974
## Adaptive Bandwidth: 12 CV score: 0.2404974
## Adaptive Bandwidth: 11 CV score: 0.265203
## Adaptive Bandwidth: 11 CV score: 0.265203
## Adaptive Bandwidth: 10 CV score: 0.2874691
## Adaptive Bandwidth: 10 CV score: 0.2874691
## Adaptive Bandwidth: 9 CV score: 0.2952363
## Adaptive Bandwidth: 9 CV score: 0.2952363
## Adaptive Bandwidth: 8 CV score: 0.3427139
## Adaptive Bandwidth: 8 CV score: 0.3427139
## Adaptive Bandwidth: 8 CV score: 0.3427139
## Adaptive Bandwidth: 8 CV score: 0.3427139
## Adaptive Bandwidth: 8 CV score: 0.3427139
## Adaptive Bandwidth: 8 CV score: 0.3427139
print(Bandwidth.GWPR_Gaussian)
## [1] 16
## Menampilkan Nilai Bandwidth untuk Setiap Lokasi di Provinsi Sulsel
k <- Bandwidth.GWPR_Gaussian
bandwidth_lokal_Gaussian <- sapply(1:nrow(Jarak), function(i){
sort(Jarak[i, ])[k]
})
Hasil_Bandwidth_Gaussian <- data.frame(
Kabupaten_Kota = Nama_Kab,
Bandwidth_Gaussian = bandwidth_lokal_Gaussian
)
View(Hasil_Bandwidth_Gaussian)
2. Menentukan Nilai Pembobot Gaussian pada Masing-Masing
Kabupaten/Kota
## Menghitung Nilai Bobot Kernel Gaussian Adaptif
Nilai.Bobot_Gaussian <- gw.weight(vd = Jarak,
bw = Bandwidth.GWPR_Gaussian,
kernel = "gaussian",
adaptive = TRUE)
## Memberi Nama kabupaten/kota pada Matriks Pembobot
rownames(Nilai.Bobot_Gaussian) <- Nama_Kab
colnames(Nilai.Bobot_Gaussian) <- Nama_Kab
## Menampilkan Nilai Pembobot pada Setiap Kabupaten/Kota
cat("\n=== Matriks Pembobot Gaussian Adaptif ===\n")
##
## === Matriks Pembobot Gaussian Adaptif ===
print(round(Nilai.Bobot_Gaussian, 4))
## Bantaeng Barru Bone Bulukumba Enrekang Gowa
## Bantaeng 1.0000 0.6262 0.7943 0.9881 0.4516 0.9797
## Barru 0.8096 1.0000 0.9138 0.7893 0.8332 0.8629
## Bone 0.8905 0.9042 1.0000 0.9024 0.7422 0.8987
## Bulukumba 0.9886 0.6051 0.8226 1.0000 0.4619 0.9464
## Enrekang 0.4950 0.6992 0.5925 0.4901 1.0000 0.5270
## Gowa 0.9815 0.7427 0.8245 0.9490 0.5173 1.0000
## Jeneponto 0.9842 0.6065 0.7160 0.9448 0.4228 0.9870
## Kepulauan Selayar 0.7425 0.1129 0.2599 0.7566 0.1329 0.6065
## Kota Makassar 0.9313 0.8093 0.7978 0.8809 0.5663 0.9816
## Kota Palopo 0.3248 0.3981 0.3542 0.3275 0.9321 0.3345
## Kota Parepare 0.6726 0.9361 0.7926 0.6544 0.9371 0.7270
## Luwu 0.3908 0.4962 0.4538 0.3966 0.9628 0.4021
## Luwu Timur 0.1713 0.1090 0.1394 0.1855 0.6065 0.1538
## Luwu Utara 0.1814 0.1768 0.1550 0.1809 0.7683 0.1835
## Maros 0.9466 0.8837 0.9134 0.9206 0.6353 0.9815
## Pangkajene Dan Kepulauan 0.9048 0.8907 0.8433 0.8598 0.6413 0.9627
## Pinrang 0.5261 0.7690 0.6065 0.5080 0.9821 0.5748
## Sidenreng Rappang 0.6065 0.8330 0.7522 0.6065 0.9796 0.6388
## Sinjai 0.9822 0.7335 0.9109 0.9891 0.5500 0.9646
## Soppeng 0.7884 0.9804 0.9370 0.7836 0.8698 0.8267
## Takalar 0.9532 0.6730 0.7139 0.8980 0.4638 0.9860
## Tana Toraja 0.3624 0.5014 0.3900 0.3515 0.9650 0.3912
## Toraja Utara 0.2972 0.3792 0.3051 0.2914 0.9247 0.3148
## Wajo 0.6672 0.8441 0.8397 0.6806 0.9362 0.6847
## Jeneponto Kepulauan Selayar Kota Makassar Kota Palopo
## Bantaeng 0.9859 0.9019 0.9162 0.4776
## Barru 0.8172 0.7110 0.8893 0.7610
## Bone 0.8602 0.7903 0.8695 0.7092
## Bulukumba 0.9525 0.9115 0.8613 0.4951
## Enrekang 0.5059 0.5386 0.5389 0.9599
## Gowa 0.9894 0.8541 0.9794 0.5194
## Jeneponto 1.0000 0.8829 0.9486 0.4470
## Kepulauan Selayar 0.7250 1.0000 0.4556 0.2155
## Kota Makassar 0.9623 0.8012 1.0000 0.5501
## Kota Palopo 0.3341 0.4451 0.3271 1.0000
## Kota Parepare 0.6874 0.6300 0.7598 0.8549
## Luwu 0.3950 0.4901 0.3936 0.9942
## Luwu Timur 0.1703 0.3684 0.1269 0.8740
## Luwu Utara 0.1953 0.3373 0.1744 0.9609
## Maros 0.9500 0.8103 0.9810 0.6082
## Pangkajene Dan Kepulauan 0.9319 0.7740 0.9914 0.6065
## Pinrang 0.5495 0.5457 0.6065 0.9193
## Sidenreng Rappang 0.6065 0.6065 0.6466 0.9183
## Sinjai 0.9505 0.8754 0.9047 0.5596
## Soppeng 0.7815 0.7075 0.8355 0.8003
## Takalar 0.9885 0.8391 0.9827 0.4735
## Tana Toraja 0.3848 0.4526 0.4050 0.9757
## Toraja Utara 0.3160 0.4152 0.3179 0.9894
## Wajo 0.6505 0.6543 0.6732 0.8870
## Kota Parepare Luwu Luwu Timur Luwu Utara Maros
## Bantaeng 0.5001 0.4718 0.5393 0.5021 0.9217
## Barru 0.9493 0.7766 0.7048 0.7294 0.9205
## Bone 0.8150 0.7274 0.7066 0.6844 0.9345
## Bulukumba 0.4916 0.4924 0.5685 0.5161 0.8890
## Enrekang 0.9045 0.9735 0.8566 0.9102 0.5510
## Gowa 0.6022 0.5152 0.5510 0.5364 0.9751
## Jeneponto 0.4811 0.4361 0.5005 0.4787 0.9184
## Kepulauan Selayar 0.0974 0.1930 0.3650 0.2821 0.4061
## Kota Makassar 0.6767 0.5452 0.5556 0.5635 0.9771
## Kota Palopo 0.6591 0.9930 0.9308 0.9758 0.3251
## Kota Parepare 1.0000 0.8719 0.7632 0.8106 0.7803
## Luwu 0.7411 1.0000 0.9213 0.9547 0.4023
## Luwu Timur 0.2593 0.8291 1.0000 0.9330 0.1224
## Luwu Utara 0.4029 0.9123 0.9417 1.0000 0.1589
## Maros 0.7468 0.6124 0.6097 0.6065 1.0000
## Pangkajene Dan Kepulauan 0.7670 0.6065 0.5926 0.6083 0.9831
## Pinrang 0.9497 0.9282 0.8043 0.8766 0.6065
## Sidenreng Rappang 0.9586 0.9412 0.8318 0.8633 0.6797
## Sinjai 0.6065 0.5630 0.6065 0.5668 0.9455
## Soppeng 0.9556 0.8220 0.7459 0.7592 0.8841
## Takalar 0.5446 0.4624 0.5060 0.5019 0.9388
## Tana Toraja 0.7702 0.9676 0.8644 0.9493 0.3921
## Toraja Utara 0.6542 0.9713 0.8985 0.9770 0.3041
## Wajo 0.9217 0.9145 0.8304 0.8329 0.7257
## Pangkajene Dan Kepulauan Pinrang Sidenreng Rappang
## Bantaeng 0.8498 0.4542 0.4942
## Barru 0.9185 0.8645 0.8903
## Bone 0.8695 0.7337 0.8169
## Bulukumba 0.7901 0.4504 0.5090
## Enrekang 0.5275 0.9805 0.9746
## Gowa 0.9453 0.5383 0.5627
## Jeneponto 0.8796 0.4394 0.4549
## Kepulauan Selayar 0.3002 0.1167 0.1309
## Kota Makassar 0.9887 0.6065 0.6065
## Kota Palopo 0.2899 0.8544 0.8330
## Kota Parepare 0.7811 0.9643 0.9664
## Luwu 0.3614 0.8919 0.8986
## Luwu Timur 0.0876 0.4652 0.4762
## Luwu Utara 0.1347 0.6696 0.5985
## Maros 0.9815 0.6611 0.6932
## Pangkajene Dan Kepulauan 1.0000 0.6856 0.6874
## Pinrang 0.6065 1.0000 0.9601
## Sidenreng Rappang 0.6487 0.9651 1.0000
## Sinjai 0.8642 0.5444 0.6088
## Soppeng 0.8573 0.8796 0.9325
## Takalar 0.9354 0.4951 0.4942
## Tana Toraja 0.3771 0.9418 0.8718
## Toraja Utara 0.2816 0.8716 0.8023
## Wajo 0.6717 0.9044 0.9807
## Sinjai Soppeng Takalar Tana Toraja Toraja Utara Wajo
## Bantaeng 0.9769 0.6081 0.9538 0.4470 0.4692 0.5333
## Barru 0.8335 0.9815 0.8382 0.7811 0.7612 0.8880
## Bone 0.9406 0.9337 0.8456 0.6864 0.6886 0.8722
## Bulukumba 0.9864 0.6135 0.9031 0.4518 0.4785 0.5640
## Enrekang 0.5021 0.7726 0.5110 0.9753 0.9577 0.9134
## Gowa 0.9582 0.6961 0.9874 0.5078 0.5189 0.5854
## Jeneponto 0.9288 0.5621 0.9873 0.4289 0.4479 0.4741
## Kepulauan Selayar 0.6065 0.1240 0.6065 0.1630 0.2057 0.1495
## Kota Makassar 0.8993 0.7365 0.9861 0.5580 0.5590 0.6065
## Kota Palopo 0.3164 0.4922 0.3251 0.9708 0.9899 0.7533
## Kota Parepare 0.6888 0.9470 0.7092 0.8882 0.8594 0.9300
## Luwu 0.3923 0.5989 0.3856 0.9679 0.9776 0.8406
## Luwu Timur 0.1555 0.1733 0.1461 0.7186 0.8262 0.4383
## Luwu Utara 0.1601 0.2399 0.1850 0.9029 0.9646 0.4949
## Maros 0.9521 0.8407 0.9589 0.6065 0.6065 0.7152
## Pangkajene Dan Kepulauan 0.8898 0.8205 0.9603 0.6217 0.6153 0.6841
## Pinrang 0.5249 0.8039 0.5684 0.9620 0.9326 0.8807
## Sidenreng Rappang 0.6322 0.9014 0.6102 0.9257 0.9071 0.9787
## Sinjai 1.0000 0.7374 0.9187 0.5256 0.5435 0.6643
## Soppeng 0.8272 1.0000 0.7897 0.8066 0.7902 0.9470
## Takalar 0.8943 0.6065 1.0000 0.4701 0.4815 0.4984
## Tana Toraja 0.3478 0.5675 0.3906 1.0000 0.9913 0.7624
## Toraja Utara 0.2800 0.4541 0.3143 0.9889 1.0000 0.6920
## Wajo 0.7096 0.9293 0.6421 0.8706 0.8625 1.0000
View(Nilai.Bobot_Gaussian)
3. Melakukan Estimasi Parameter Model GWPR Gaussian
Model.GWPR_Gaussian <- GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
SDF = SHP_Kabupaten_Sulsel_sp,
index = c("ID", "Tahun"),
bw = Bandwidth.GWPR_Gaussian,
adaptive = TRUE,
longlat = FALSE,
kernel = "gaussian",
effect = "individual",
model = "random")
## ************************ GWPR Begin *************************
## Formula: IPM = X1 + X2 + X3 + X4 + X5 + X6 -- Individuals: 24
## Bandwidth: 16 ---- Adaptive: TRUE
## Model: random ---- Effect: individual
## The R2 is: 0.985968377143061
## Note: in order to avoid mistakes, we forced a rename of the individuals'ID as "id".
summary(Model.GWPR_Gaussian)
## Length Class Mode
## GW.arguments 7 -none- list
## R2 1 -none- numeric
## index 2 -none- character
## plm.result 11 plm list
## raw.data 13 data.frame list
## GWPR.residuals 5 data.frame list
## SDF 24 SpatialPolygonsDataFrame S4
4. Menampilkan Hasil Ringkasan Estimasi Parameter Model GWPR
Gaussian
Coefisien_Data_Gaussian <- Model.GWPR_Gaussian$SDF@data
Variabel <- c("Intercept","X1","X2","X3","X4","X5","X6")
Tabel_Estimasi_Gaussian <- data.frame(Variabel = Variabel,
Min = apply(Coefisien_Data_Gaussian[, Variabel], 2, min),
Q1 = apply(Coefisien_Data_Gaussian[, Variabel], 2, quantile, 0.25),
Median = apply(Coefisien_Data_Gaussian[, Variabel], 2, median),
Q3 = apply(Coefisien_Data_Gaussian[, Variabel], 2, quantile, 0.75),
Max = apply(Coefisien_Data_Gaussian[, Variabel], 2, max))
Tabel_Estimasi_Gaussian
## Variabel Min Q1 Median Q3
## Intercept Intercept 6.323078e+01 6.475659e+01 6.539434e+01 6.687406e+01
## X1 X1 7.249438e-02 8.135744e-02 9.903893e-02 1.028482e-01
## X2 X2 2.612661e-04 2.821141e-04 6.193558e-04 6.614049e-04
## X3 X3 -1.817672e-01 -1.798735e-01 -1.738962e-01 -1.433042e-01
## X4 X4 -2.113647e+01 -1.769902e+01 -1.646679e+01 -1.351591e+01
## X5 X5 1.288035e-02 1.306895e-02 1.673985e-02 1.723332e-02
## X6 X6 3.253934e-02 3.503985e-02 3.567123e-02 5.700208e-02
## Max
## Intercept 6.749967e+01
## X1 1.404144e-01
## X2 6.655205e-04
## X3 -1.402446e-01
## X4 -1.345860e+01
## X5 1.731495e-02
## X6 5.919382e-02
5. Melakukan Uji Kesesuaian Model GWPR Gaussian
## A. Perhitungan Derajat Kebebasan (df) - Adaptive Gaussian Kernel
### Menyiapkan Data Panel
Data_Gaussian <- Data_GWPR_IPM_Sulsel
### Membentuk Matriks Variabel Independen (X)(120x7)
X <- cbind(1,
Data_Gaussian$X1,
Data_Gaussian$X2,
Data_Gaussian$X3,
Data_Gaussian$X4,
Data_Gaussian$X5,
Data_Gaussian$X6)
n <- nrow(X)
j <- ncol(X)
### Mengidentifikasi Kabupaten/Kota GWPR Gaussian
kab_Gaussian <- as.factor(Data_Gaussian$`Kabupaten/Kota`)
### Mapping indeks kabupaten ke matriks bobot Gaussian (24 x 24)
index_kab_Gaussian <- match(kab_Gaussian, rownames(Nilai.Bobot_Gaussian))
### Melakukan Inisialisasi Elemen Diagonal Hat Matrix Gaussian
sii_Gaussian <- numeric(n)
### Melakukan Perhitungan Nilai s_ii untuk Setiap Observasi Gaussian
for(i in 1:n){
## Bobot spasial gaussian kabupaten (24)
wi_kab_Gaussian <- Nilai.Bobot_Gaussian[index_kab_Gaussian[i], ]
## Mapping Bobot Gaussian ke 120 Observasi Panel
wi_full_Gaussian <- wi_kab_Gaussian[index_kab_Gaussian]
## Membentuk Matriks Diagonal Gaussian(120 x 120)
Wi_Gaussian <- diag(wi_full_Gaussian)
## hitung (X' W_i X) Gaussian
XtWiX_Gaussian <- t(X) %*% Wi_Gaussian %*% X
XtWiX_inv_Gaussian <- solve(XtWiX_Gaussian + diag(1e-5, j))
xi_Gaussian <- matrix(X[i, ], ncol = 1)
wii_Gaussian <- wi_full_Gaussian[i]
sii_Gaussian[i] <- t(xi_Gaussian) %*% XtWiX_inv_Gaussian %*% xi_Gaussian * wii_Gaussian
}
### Menghitung Derajat Kebebasan Gaussian
df_model_Gaussian <- sum(sii_Gaussian)
df_residual_Gaussian <- n - df_model_Gaussian
### Membentuk Model Global (Random Effect Model)
Model_REM <- plm(IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
index = c("ID", "Tahun"),
model = "random",
random.method = "walhus",
data = Data_GWPR_IPM_Sulsel)
summary(Model_REM)
## Oneway (individual) effect Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6, data = Data_GWPR_IPM_Sulsel,
## model = "random", random.method = "walhus", index = c("ID",
## "Tahun"))
##
## Balanced Panel: n = 24, T = 5, N = 120
##
## Effects:
## var std.dev share
## idiosyncratic 0.4560 0.6753 0.103
## individual 3.9611 1.9903 0.897
## theta: 0.85
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -1.428763 -0.380385 0.033532 0.429115 1.457688
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 6.0343e+01 4.0487e+00 14.9043 < 2.2e-16 ***
## X1 1.6386e-01 5.3605e-02 3.0568 0.002237 **
## X2 5.7530e-04 6.9897e-05 8.2306 < 2.2e-16 ***
## X3 -1.6894e-01 2.5560e-02 -6.6095 3.856e-11 ***
## X4 -1.6326e+01 3.0090e+00 -5.4258 5.769e-08 ***
## X5 1.6242e-02 3.2469e-03 5.0022 5.667e-07 ***
## X6 4.5379e-02 9.6788e-03 4.6885 2.752e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 124.08
## Residual Sum of Squares: 37.338
## R-Squared: 0.69907
## Adj. R-Squared: 0.68309
## Chisq: 262.506 on 6 DF, p-value: < 2.22e-16
### Menghitung Nilai SSE (GWPR Gaussian)
SSE_REM <- sum(residuals(Model_REM)^2)
SSE_GWPR_Gaussian <- sum(Model.GWPR_Gaussian$GWPR.residuals$resid^2)
### Menghitung Derajat Bebas Model Global dan Model GWPR Gaussian
df_REM <- df.residual(Model_REM)
df_GWPR_Gaussian <- df_residual_Gaussian
### Melakukan Uji Kesesuaian Model GWPR Gaussian
F_hitung_Gaussian <- (SSE_REM/df_REM)/(SSE_GWPR_Gaussian/df_GWPR_Gaussian)
F_hitung_Gaussian
## [1] 1.410004
### Menentukan Nilai F Tabel GWPR Gaussian
alpha_Gaussian <- 0.10
F_tabel <- qf(1 - alpha_Gaussian, df_REM, df_GWPR_Gaussian)
F_tabel
## [1] 1.275641
### Menentukan Daerah Keputusan Uji Kesesuain Model GWPR Gaussian
if(F_hitung_Gaussian > F_tabel){
cat("H1: Model GWPR Gaussian lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Bisquare\n")
}
## H1: Model GWPR Gaussian lebih baik dibandingkan model global
### Menghitung Nilai P-Value GWPR Gaussian
p_value_Gaussian <- 1 - pf(F_hitung_Gaussian, df_REM, df_GWPR_Gaussian)
p_value_Gaussian
## [1] 0.03542078
if(p_value_Gaussian < 0.10){
cat("H1: Model GWPR Gaussian lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Bisquare\n")
}
## H1: Model GWPR Gaussian lebih baik dibandingkan model global
6. Melakukan Estimasi Parameter Lokal Model GWPR Gaussian
beta0 <- Coefisien_Data_Gaussian$Intercept
beta1 <- Coefisien_Data_Gaussian$X1
beta2 <- Coefisien_Data_Gaussian$X2
beta3 <- Coefisien_Data_Gaussian$X3
beta4 <- Coefisien_Data_Gaussian$X4
beta5 <- Coefisien_Data_Gaussian$X5
beta6 <- Coefisien_Data_Gaussian$X6
beta0
## [1] 65.22677 63.33620 64.46459 65.44070 67.34883 64.97788 64.98450 65.34798
## [9] 64.63783 66.76266 67.49967 66.85825 66.28735 66.62971 64.93187 63.65097
## [17] 64.01208 67.36045 65.45286 63.23078 64.79617 67.17818 66.92148 67.20378
beta1
## [1] 0.07534436 0.12961142 0.10275272 0.07249438 0.09824603 0.07934801
## [7] 0.07889623 0.07406217 0.08539247 0.10115389 0.09880975 0.10186409
## [13] 0.10505776 0.10124625 0.08251435 0.11277343 0.12593627 0.10102920
## [19] 0.07277199 0.14041437 0.08202724 0.09759517 0.09926811 0.10313472
beta2
## [1] 0.0006634046 0.0006302648 0.0006563713 0.0006652533 0.0002807435
## [6] 0.0006614535 0.0006614376 0.0006643178 0.0006587509 0.0002697685
## [11] 0.0005615135 0.0002822873 0.0002815947 0.0002645871 0.0006613940
## [16] 0.0006481399 0.0005196196 0.0005544148 0.0006655205 0.0006084469
## [21] 0.0006600144 0.0002612661 0.0002618130 0.0005609650
beta3
## [1] -0.1805467 -0.1741713 -0.1808550 -0.1816119 -0.1434152 -0.1796490
## [7] -0.1796413 -0.1816425 -0.1788779 -0.1411434 -0.1647302 -0.1429713
## [13] -0.1422613 -0.1403075 -0.1808458 -0.1763186 -0.1527140 -0.1646583
## [19] -0.1817672 -0.1736211 -0.1790954 -0.1404757 -0.1402446 -0.1658411
beta4
## [1] -13.51603 -15.79609 -14.75659 -13.53450 -18.17908 -13.46854 -13.51558
## [8] -13.64314 -13.45860 -17.43096 -20.98895 -17.77444 -17.13748 -17.16420
## [15] -13.50659 -14.67983 -19.83142 -21.13647 -13.48129 -17.58924 -13.49397
## [22] -17.67388 -17.42543 -20.89250
beta5
## [1] 0.01727684 0.01670546 0.01692681 0.01729608 0.01308194 0.01726024
## [7] 0.01724569 0.01724544 0.01721449 0.01294655 0.01537322 0.01302999
## [13] 0.01288093 0.01288035 0.01722928 0.01685488 0.01393648 0.01535011
## [19] 0.01731495 0.01677424 0.01722703 0.01297340 0.01293307 0.01552646
beta6
## [1] 0.03529239 0.03343701 0.03253934 0.03526755 0.05604571 0.03507123
## [7] 0.03534015 0.03568656 0.03487947 0.05777299 0.04375765 0.05686548
## [13] 0.05816404 0.05838638 0.03467573 0.03293741 0.05919382 0.04485815
## [19] 0.03494570 0.03565591 0.03521311 0.05741188 0.05790141 0.04301555
7. Menghitung Nilai t-Statistik Lokal GWPR Gaussian
t.beta1 <- Coefisien_Data_Gaussian$X1 / Coefisien_Data_Gaussian$X1_SE
t.beta2 <- Coefisien_Data_Gaussian$X2 / Coefisien_Data_Gaussian$X2_SE
t.beta3 <- Coefisien_Data_Gaussian$X3 / Coefisien_Data_Gaussian$X3_SE
t.beta4 <- Coefisien_Data_Gaussian$X4 / Coefisien_Data_Gaussian$X4_SE
t.beta5 <- Coefisien_Data_Gaussian$X5 / Coefisien_Data_Gaussian$X5_SE
t.beta6 <- Coefisien_Data_Gaussian$X6 / Coefisien_Data_Gaussian$X6_SE
t.beta1
## [1] 0.7461791 1.3635445 1.0290493 0.7198878 1.1404897 0.7856889 0.7786672
## [8] 0.7306430 0.8435415 1.1842506 1.1464338 1.1896939 1.2325688 1.1870075
## [15] 0.8188381 1.1187708 1.4504578 1.1915910 0.7255988 1.4082148 0.8089834
## [22] 1.1386998 1.1612377 1.2128096
t.beta2
## [1] 6.464727 5.949642 6.097789 6.397895 1.483769 6.555098 6.518634 6.344670
## [9] 6.634725 1.458521 5.399544 1.511861 1.546588 1.443814 6.533728 6.374256
## [17] 5.054682 5.104919 6.430357 6.029061 6.572737 1.398416 1.413604 5.201434
t.beta3
## [1] -5.406660 -5.094723 -5.305854 -5.403328 -3.663818 -5.430398 -5.404979
## [8] -5.359759 -5.445706 -3.707164 -4.474191 -3.714038 -3.808708 -3.725619
## [15] -5.449368 -5.310742 -4.257850 -4.387239 -5.433506 -4.931556 -5.417220
## [22] -3.642361 -3.675882 -4.477009
t.beta4
## [1] -3.829071 -4.596677 -4.338441 -3.833101 -5.038390 -3.813361 -3.821221
## [8] -3.835493 -3.789142 -4.939064 -5.658559 -4.975245 -4.881780 -4.904049
## [15] -3.785523 -4.335022 -5.340226 -5.691676 -3.823886 -4.638857 -3.808948
## [22] -4.986038 -4.946721 -5.612139
t.beta5
## [1] 5.130475 5.274288 5.081432 5.115156 3.442944 5.141771 5.145031 5.125835
## [9] 5.154797 3.382133 4.304647 3.407571 3.342408 3.358034 5.130715 5.139064
## [17] 3.753808 4.234778 5.108202 4.774388 5.152523 3.407857 3.385245 4.277138
t.beta6
## [1] 3.878256 3.196065 3.479607 3.887311 3.546659 3.824372 3.862613 3.920190
## [9] 3.749924 3.624305 3.321252 3.573917 3.646415 3.661358 3.722702 3.493358
## [17] 3.780860 3.354985 3.842588 3.029291 3.824190 3.615235 3.636538 3.264601
8. Mengambil Nilai R-Square Lokal GWPR Gaussian
Local_R2 <- Coefisien_Data_Gaussian$Local_R2
Local_R2
## [1] 0.7043392 0.7059468 0.7043774 0.7043504 0.7073839 0.7043251 0.7043347
## [8] 0.7043929 0.7043262 0.7074989 0.6954075 0.7075204 0.7075056 0.7074280
## [15] 0.7044049 0.7044525 0.7172430 0.6951332 0.7043397 0.6782019 0.7043279
## [22] 0.7074131 0.7074329 0.6953271
9. Menyimpan Hasil Analisis GWPR ke Dalam Data Frame
Hasil_Model_GWPR_Gaussian <- data.frame(Kabupaten_Kota = Data_GWPR_IPM_Sulsel$`Kabupaten/Kota`,
Tahun = Data_GWPR_IPM_Sulsel$Tahun,
beta0,beta1,beta2,beta3,beta4,beta5,beta6,
t.beta1,t.beta2,t.beta3,t.beta4,t.beta5,t.beta6,
Local_R2)
View(Hasil_Model_GWPR_Gaussian)
10. Menentukan Variabel yang Signifikan untuk Setiap Kabupaten/Kota
(GWPR Gaussian)
Nilai t-tabel GWPR Gaussian (alpha 10%)
t.tabel_Gaussian <- qt(1 - alpha_Gaussian/2, df_GWPR_Gaussian)
t.tabel_Gaussian
## [1] 1.658739
Sig_X1 <- ifelse(abs(t.beta1) > t.tabel_Gaussian, "X1", "")
Sig_X2 <- ifelse(abs(t.beta2) > t.tabel_Gaussian, "X2", "")
Sig_X3 <- ifelse(abs(t.beta3) > t.tabel_Gaussian, "X3", "")
Sig_X4 <- ifelse(abs(t.beta4) > t.tabel_Gaussian, "X4", "")
Sig_X5 <- ifelse(abs(t.beta5) > t.tabel_Gaussian, "X5", "")
Sig_X6 <- ifelse(abs(t.beta6) > t.tabel_Gaussian, "X6", "")
Variabel_Signifikan <- apply(
cbind(Sig_X1, Sig_X2, Sig_X3, Sig_X4, Sig_X5, Sig_X6),
1,
function(x) paste(x[x != ""], collapse=" ")
)
### Menghitung Nilai p-value untuk Masing-Masing Variabel Independen (GWPR Gaussian)
p_X1 <- 2 * (1 - pt(abs(t.beta1), df = df_GWPR_Gaussian))
p_X2 <- 2 * (1 - pt(abs(t.beta2), df = df_GWPR_Gaussian))
p_X3 <- 2 * (1 - pt(abs(t.beta3), df = df_GWPR_Gaussian))
p_X4 <- 2 * (1 - pt(abs(t.beta4), df = df_GWPR_Gaussian))
p_X5 <- 2 * (1 - pt(abs(t.beta5), df = df_GWPR_Gaussian))
p_X6 <- 2 * (1 - pt(abs(t.beta6), df = df_GWPR_Gaussian))
### Membuat Tabel Variabel Signifikan (GWPR Gaussian)
Kabupaten_Kota <- SHP_Kabupaten_Sulsel_sp@data$Kabupaten.Kota
Tabel_Signifikan_Gaussian <- data.frame(
Kabupaten_Kota = Kabupaten_Kota,
Variabel_Signifikan = Variabel_Signifikan,
R2_Lokal = round(Local_R2,4),
p_X1 = round(p_X1, 5),
p_X2 = round(p_X2, 5),
p_X3 = round(p_X3, 5),
p_X4 = round(p_X4, 5),
p_X5 = round(p_X5, 5),
p_X6 = round(p_X6, 5)
)
View(Tabel_Signifikan_Gaussian)
11. Membuat Kelompok Wilayah Berdasarkan Variabel Signifikan (GWPR
Gaussian)
Kelompok_Signifikan <- Tabel_Signifikan_Gaussian %>%
filter(Variabel_Signifikan != "")
Kelompok_Variabel_Gaussian <- Kelompok_Signifikan %>%
group_by(Variabel_Signifikan) %>%
summarise(
Kabupaten_Kota = paste(Kabupaten_Kota, collapse=", "),
Jumlah = n()
) %>%
arrange(desc(Jumlah)) %>%
mutate(Kelompok = row_number()) %>%
select(Kelompok, Variabel_Signifikan, Kabupaten_Kota)
Kelompok_Variabel_Gaussian
## # A tibble: 2 × 3
## Kelompok Variabel_Signifikan Kabupaten_Kota
## <int> <chr> <chr>
## 1 1 X2 X3 X4 X5 X6 Bantaeng, Barru, Bone, Bulukumba, Gowa, Jenepont…
## 2 2 X3 X4 X5 X6 Enrekang, Kota Palopo, Luwu, Luwu Timur, Luwu Ut…
I. Pemodelan GWPR dengan Fungsi Pembobot Adaptive Bisquare
Kernel
1. Menentukan Nilai Bandwidth Optimal Bisquare
Bandwidth.GWPR_Bisquare <- bw.GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
index = c("ID", "Tahun"),
SDF = SHP_Kabupaten_Sulsel_sp,
adaptive = TRUE,
approach = "CV",
kernel = "bisquare",
effect = "individual",
model = "random")
## To make sure every subsample have enough freedom, the minimum number of individuals is 2
## The upper boundary is 24, and the lower boundary is 8
## Adaptive Bandwidth: 17 CV score: 0.1339949
## Adaptive Bandwidth: 14 CV score: 0.1219187
## Adaptive Bandwidth: 10 CV score: 0.112205
## Adaptive Bandwidth: 10 CV score: 0.112205
print(Bandwidth.GWPR_Bisquare)
## [1] 10
## Menampilkan Nilai Bandwidth untuk Setiap Lokasi (Bisquare)
k <- Bandwidth.GWPR_Bisquare
bandwidth_lokal_Bisquare <- sapply(1:nrow(Jarak), function(i){
sort(Jarak[i, ])[k]
})
Hasil_Bandwidth_Bisquare <- data.frame(
Kabupaten_Kota = Nama_Kab,
Bandwidth_Bisquare = bandwidth_lokal_Bisquare
)
View(Hasil_Bandwidth_Bisquare)
2. Menentukan Nilai Pembobot Bisquare pada Masing-Masing
Kabupaten/Kota
## Menghitung Nilai Bobot Kernel Bisquare Adaptif
Nilai.Bobot_Bisquare <- gw.weight(vd = Jarak,
bw = Bandwidth.GWPR_Bisquare,
kernel = "bisquare",
adaptive = TRUE)
## Memberi Nama kabupaten/kota pada Matriks Pembobot Bisquare
rownames(Nilai.Bobot_Bisquare) <- Nama_Kab
colnames(Nilai.Bobot_Bisquare) <- Nama_Kab
## Menampilkan Nilai Pembobot Bisquare pada Setiap Kabupaten/Kota
cat("\n=== Matriks Pembobot Bisquare Adaptif ===\n")
##
## === Matriks Pembobot Bisquare Adaptif ===
print(round(Nilai.Bobot_Bisquare, 4))
## Bantaeng Barru Bone Bulukumba Enrekang Gowa
## Bantaeng 1.0000 0.0000 0.0000 0.8474 0.0000 0.6521
## Barru 0.0000 1.0000 0.3608 0.0000 0.0000 0.0000
## Bone 0.0000 0.3802 1.0000 0.1026 0.0000 0.0000
## Bulukumba 0.8116 0.0000 0.0184 1.0000 0.0000 0.2347
## Enrekang 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000
## Gowa 0.7035 0.0000 0.0213 0.4274 0.0000 1.0000
## Jeneponto 0.7449 0.0000 0.0000 0.3894 0.0000 0.7701
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.1491 0.0379 0.0000 0.0258 0.0000 0.6821
## Kota Palopo 0.0000 0.0000 0.0000 0.0000 0.2458 0.0000
## Kota Parepare 0.0000 0.5606 0.0000 0.0000 0.2855 0.0000
## Luwu 0.0000 0.0000 0.0000 0.0000 0.5299 0.0000
## Luwu Timur 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Maros 0.2774 0.2801 0.3588 0.2049 0.0000 0.6808
## Pangkajene Dan Kepulauan 0.0190 0.3129 0.0601 0.0000 0.0000 0.4152
## Pinrang 0.0000 0.0000 0.0000 0.0000 0.7574 0.0000
## Sidenreng Rappang 0.0000 0.0927 0.0000 0.0000 0.7260 0.0000
## Sinjai 0.7147 0.0000 0.3443 0.8599 0.0000 0.4396
## Soppeng 0.0000 0.8549 0.5068 0.0000 0.0000 0.0000
## Takalar 0.3449 0.0000 0.0000 0.0826 0.0000 0.7539
## Tana Toraja 0.0000 0.0000 0.0000 0.0000 0.5542 0.0000
## Toraja Utara 0.0000 0.0000 0.0000 0.0000 0.1926 0.0000
## Wajo 0.0000 0.1260 0.0513 0.0000 0.2779 0.0000
## Jeneponto Kepulauan Selayar Kota Makassar Kota Palopo
## Bantaeng 0.8201 0.3152 0.1400 0.0000
## Barru 0.0000 0.0000 0.0260 0.0000
## Bone 0.0000 0.0000 0.0000 0.0000
## Bulukumba 0.4580 0.3675 0.0000 0.0000
## Enrekang 0.0000 0.0000 0.0000 0.4851
## Gowa 0.8636 0.1086 0.7247 0.0000
## Jeneponto 1.0000 0.2215 0.3882 0.0000
## Kepulauan Selayar 0.0000 1.0000 0.0000 0.0000
## Kota Makassar 0.5553 0.0033 1.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000 1.0000
## Kota Parepare 0.0000 0.0000 0.0000 0.0000
## Luwu 0.0000 0.0000 0.0000 0.9161
## Luwu Timur 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.4960
## Maros 0.4350 0.0112 0.7449 0.0000
## Pangkajene Dan Kepulauan 0.2830 0.0000 0.8809 0.0000
## Pinrang 0.0000 0.0000 0.0000 0.1409
## Sidenreng Rappang 0.0000 0.0000 0.0000 0.1350
## Sinjai 0.4394 0.1888 0.0807 0.0000
## Soppeng 0.0000 0.0000 0.0000 0.0000
## Takalar 0.8523 0.0647 0.7657 0.0000
## Tana Toraja 0.0000 0.0000 0.0000 0.6681
## Toraja Utara 0.0000 0.0000 0.0000 0.8480
## Wajo 0.0000 0.0000 0.0000 0.0121
## Kota Parepare Luwu Luwu Timur Luwu Utara Maros
## Bantaeng 0.0000 0.0000 0.0000 0.0000 0.0018
## Barru 0.6461 0.0000 0.0000 0.0000 0.0007
## Bone 0.0522 0.0000 0.0000 0.0000 0.0415
## Bulukumba 0.0000 0.0000 0.0000 0.0000 0.0000
## Enrekang 0.3863 0.6468 0.0839 0.2355 0.0000
## Gowa 0.0000 0.0000 0.0000 0.0000 0.4947
## Jeneponto 0.0000 0.0000 0.0000 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.0000 0.0000 0.0000 0.0000 0.5302
## Kota Palopo 0.0000 0.9002 0.4501 0.7503 0.0000
## Kota Parepare 1.0000 0.0000 0.0000 0.0000 0.0000
## Luwu 0.0000 1.0000 0.3890 0.5576 0.0000
## Luwu Timur 0.0000 0.0000 1.0000 0.3852 0.0000
## Luwu Utara 0.0000 0.1096 0.5242 1.0000 0.0000
## Maros 0.0000 0.0000 0.0000 0.0000 1.0000
## Pangkajene Dan Kepulauan 0.0000 0.0000 0.0000 0.0000 0.6399
## Pinrang 0.6485 0.2088 0.0000 0.0781 0.0000
## Sidenreng Rappang 0.7063 0.3111 0.0239 0.0384 0.0000
## Sinjai 0.0000 0.0000 0.0000 0.0000 0.1171
## Soppeng 0.6866 0.0000 0.0000 0.0000 0.0000
## Takalar 0.0000 0.0000 0.0000 0.0000 0.0668
## Tana Toraja 0.0002 0.5778 0.1096 0.5120 0.0000
## Toraja Utara 0.0000 0.6206 0.2585 0.7612 0.0000
## Wajo 0.4794 0.1210 0.0216 0.0000 0.0000
## Pangkajene Dan Kepulauan Pinrang Sidenreng Rappang
## Bantaeng 0.0000 0.0000 0.0000
## Barru 0.2005 0.0000 0.1326
## Bone 0.0084 0.0000 0.0000
## Bulukumba 0.0000 0.0000 0.0000
## Enrekang 0.0000 0.7482 0.7382
## Gowa 0.4025 0.0000 0.0000
## Jeneponto 0.0279 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000
## Kota Makassar 0.8577 0.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000
## Kota Parepare 0.0000 0.5634 0.6612
## Luwu 0.0000 0.0459 0.1723
## Luwu Timur 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000
## Maros 0.7723 0.0000 0.0000
## Pangkajene Dan Kepulauan 1.0000 0.0000 0.0000
## Pinrang 0.0000 1.0000 0.6039
## Sidenreng Rappang 0.0000 0.5717 1.0000
## Sinjai 0.0027 0.0000 0.0000
## Soppeng 0.0000 0.0143 0.3811
## Takalar 0.3209 0.0000 0.0000
## Tana Toraja 0.0000 0.3461 0.0620
## Toraja Utara 0.0000 0.0032 0.0000
## Wajo 0.0000 0.0961 0.7977
## Sinjai Soppeng Takalar Tana Toraja Toraja Utara Wajo
## Bantaeng 0.6400 0.0000 0.5156 0.0000 0.0000 0.0000
## Barru 0.0000 0.8604 0.0000 0.0000 0.0000 0.3162
## Bone 0.2262 0.5392 0.0000 0.0000 0.0000 0.2461
## Bulukumba 0.7791 0.0000 0.1543 0.0000 0.0000 0.0000
## Enrekang 0.0000 0.0000 0.0000 0.6716 0.5112 0.4436
## Gowa 0.4029 0.0000 0.8549 0.0000 0.0000 0.0000
## Jeneponto 0.1349 0.0000 0.8536 0.0000 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.0084 0.0000 0.8395 0.0000 0.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000 0.6174 0.8710 0.0000
## Kota Parepare 0.0000 0.6227 0.0000 0.0209 0.0000 0.5368
## Luwu 0.0000 0.0000 0.0000 0.5845 0.7228 0.1294
## Luwu Timur 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.0689 0.5809 0.0000
## Maros 0.3359 0.1073 0.5622 0.0000 0.0000 0.0000
## Pangkajene Dan Kepulauan 0.0000 0.0545 0.5754 0.0000 0.0000 0.0000
## Pinrang 0.0000 0.0238 0.0000 0.5194 0.2914 0.2828
## Sidenreng Rappang 0.0000 0.3574 0.0000 0.1959 0.1271 0.8476
## Sinjai 1.0000 0.0000 0.2448 0.0000 0.0000 0.0000
## Soppeng 0.0000 1.0000 0.0000 0.0000 0.0000 0.6388
## Takalar 0.0019 0.0000 1.0000 0.0000 0.0000 0.0000
## Tana Toraja 0.0000 0.0000 0.0000 1.0000 0.8875 0.0000
## Toraja Utara 0.0000 0.0000 0.0000 0.8454 1.0000 0.0000
## Wajo 0.0000 0.5124 0.0000 0.0000 0.0006 1.0000
View(Nilai.Bobot_Bisquare)
3. Melakukan Estimasi Parameter Model GWPR Bisquare
Model.GWPR_Bisquare <- GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
SDF = SHP_Kabupaten_Sulsel_sp,
index = c("ID", "Tahun"),
bw = Bandwidth.GWPR_Bisquare,
adaptive = TRUE,
p = 2,
longlat = FALSE,
kernel = "bisquare",
effect = "individual",
model = "random")
## ************************ GWPR Begin *************************
## Formula: IPM = X1 + X2 + X3 + X4 + X5 + X6 -- Individuals: 24
## Bandwidth: 10 ---- Adaptive: TRUE
## Model: random ---- Effect: individual
## The R2 is: 0.988403605438812
## Note: in order to avoid mistakes, we forced a rename of the individuals'ID as "id".
summary(Model.GWPR_Bisquare)
## Length Class Mode
## GW.arguments 7 -none- list
## R2 1 -none- numeric
## index 2 -none- character
## plm.result 11 plm list
## raw.data 13 data.frame list
## GWPR.residuals 5 data.frame list
## SDF 24 SpatialPolygonsDataFrame S4
4. Menampilkan Hasil Ringkasan Estimasi Parameter Model GWPR
Bisquare
Coefisien_Data_Bisquare <- Model.GWPR_Bisquare$SDF@data
Variabel <- c("Intercept","X1","X2","X3","X4","X5","X6")
Tabel_Estimasi_Bisquare <- data.frame(Variabel = Variabel,
Min = apply(Coefisien_Data_Bisquare[, Variabel], 2, min),
Q1 = apply(Coefisien_Data_Bisquare[, Variabel], 2, quantile, 0.25),
Median = apply(Coefisien_Data_Bisquare[, Variabel], 2, median),
Q3 = apply(Coefisien_Data_Bisquare[, Variabel], 2, quantile, 0.75),
Max = apply(Coefisien_Data_Bisquare[, Variabel], 2, max))
print(Tabel_Estimasi_Bisquare)
## Variabel Min Q1 Median Q3
## Intercept Intercept 4.589854e+01 6.303124e+01 66.438905829 7.466529e+01
## X1 X1 -1.914804e-01 -6.311679e-02 0.042919487 1.556614e-01
## X2 X2 -5.115167e-05 4.907169e-04 0.000664205 9.163836e-04
## X3 X3 -3.979245e-01 -2.262272e-01 -0.174109228 -1.319098e-01
## X4 X4 -2.819735e+01 -2.021643e+01 -13.713354328 -1.111556e+01
## X5 X5 1.036138e-02 1.389519e-02 0.015961182 1.793951e-02
## X6 X6 2.189343e-02 3.151294e-02 0.042527751 7.428944e-02
## Max
## Intercept 79.988640575
## X1 0.270141074
## X2 0.001884342
## X3 -0.067266694
## X4 -6.853571383
## X5 0.019593772
## X6 0.103370467
5. Melakukan Uji Kesesuaian Model GWPR Bisquare
## A. Perhitungan Derajat Kebebasan (df) - Adaptive Bisquare Kernel
### Menyiapkan Data Panel (GWPR Bisquare)
Data_Bisquare <- Data_GWPR_IPM_Sulsel
### Membentuk Matriks Variabel Independen (X)(120x7) GWPR Bisquare
X <- cbind(1,
Data_Bisquare$X1,
Data_Bisquare$X2,
Data_Bisquare$X3,
Data_Bisquare$X4,
Data_Bisquare$X5,
Data_Bisquare$X6)
n <- nrow(X)
j <- ncol(X)
### Mengidentifikasi Kabupaten/Kota GWPR Bisquare
kab_Bisquare <- as.factor(Data_Bisquare$`Kabupaten/Kota`)
### Mapping indeks kabupaten ke matriks bobot Bisquare (24 x 24)
index_kab_Bisquare <- match(kab_Bisquare, rownames(Nilai.Bobot_Bisquare))
### Melakukan Inisialisasi Elemen Diagonal Hat Matrix Bisquare
sii_Bisquare <- numeric(n)
### Melakukan Perhitungan Nilai s_ii untuk Setiap Observasi Bisquare
for(i in 1:n){
## Bobot Spasial Bisquare Kabupaten (24)
wi_kab_Bisquare <- Nilai.Bobot_Bisquare[index_kab_Bisquare[i], ]
## Mapping Bobot Bisquare ke 120 Observasi Panel
wi_full_Bisquare <- wi_kab_Bisquare[index_kab_Bisquare]
## Membentuk Matriks Diagonal Bisquare (120 x 120)
Wi_Bisquare <- diag(wi_full_Bisquare)
## hitung (X' W_i X) Bisquare
XtWiX_Bisquare <- t(X) %*% Wi_Bisquare %*% X
XtWiX_inv_Bisquare <- solve(XtWiX_Bisquare + diag(1e-5, j))
xi_Bisquare <- matrix(X[i, ], ncol = 1)
wii_Bisquare <- wi_full_Bisquare[i]
sii_Bisquare[i] <- t(xi_Bisquare) %*% XtWiX_inv_Bisquare %*% xi_Bisquare * wii_Bisquare
}
### Menghitung Derajat Kebebasan Bisquare
df_model_Bisquare <- sum(sii_Bisquare)
df_residual_Bisquare <- n - df_model_Bisquare
### Menghitung Nilai SSE (GWPR Bisquare)
SSE_REM <- sum(residuals(Model_REM)^2)
SSE_GWPR_Bisquare <- sum(Model.GWPR_Bisquare$GWPR.residuals$resid^2)
### Menghitung Derajat Bebas Model Global dan Model GWPR Bisquare
df_REM <- df.residual(Model_REM)
df_GWPR_Bisquare <- df_residual_Bisquare
### Melakukan Uji Kesesuaian Model GWPR Bisquare
F_hitung_Bisquare <- (SSE_REM/df_REM)/(SSE_GWPR_Bisquare/df_GWPR_Bisquare)
F_hitung_Bisquare
## [1] 1.317184
### Menentukan Nilai F Tabel GWPR Bisquare
alpha_Bisquare <- 0.10
F_tabel_Bisquare <- qf(1 - alpha_Bisquare, df_REM, df_GWPR_Bisquare)
F_tabel_Bisquare
## [1] 1.302617
### Menentukan Daerah Keputusan Uji Kesesuain Model GWPR Bisqaure
if(F_hitung_Bisquare > F_tabel_Bisquare){
cat("H1: Model GWPR Bisquare lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Bisquare\n")
}
## H1: Model GWPR Bisquare lebih baik dibandingkan model global
### Menghitung Nilai P-Value GWPR Bisquare
p_value_bisquare <- 1 - pf(F_hitung_Bisquare, df_REM, df_GWPR_Bisquare, lower.tail = TRUE)
p_value_bisquare
## [1] 0.09088053
if(p_value_bisquare < 0.10){
cat("H1: Model GWPR Bisquare lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Bisquare\n")
}
## H1: Model GWPR Bisquare lebih baik dibandingkan model global
6. Melakukan Estimasi Parameter Lokal Model GWPR Bisquare
beta0_b <- Coefisien_Data_Bisquare$Intercept
beta1_b <- Coefisien_Data_Bisquare$X1
beta2_b <- Coefisien_Data_Bisquare$X2
beta3_b <- Coefisien_Data_Bisquare$X3
beta4_b <- Coefisien_Data_Bisquare$X4
beta5_b <- Coefisien_Data_Bisquare$X5
beta6_b <- Coefisien_Data_Bisquare$X6
beta0_b
## [1] 74.95826 60.87283 64.15672 79.98864 75.45761 71.90272 72.70277 74.56763
## [9] 66.96345 57.21150 56.78576 65.23932 45.89854 56.48064 76.79974 65.91437
## [17] 61.34042 64.77429 76.27173 63.59484 70.41738 69.70960 76.65530 64.45074
beta1_b
## [1] -0.09949282 0.18518662 0.13207287 -0.19148039 -0.05769011 -0.06191822
## [7] -0.06671252 -0.07638911 -0.03230369 0.15449683 0.25745051 0.09866181
## [13] 0.27014107 0.14636705 -0.18695600 0.02979767 0.16764317 0.15915509
## [19] -0.13526621 0.14441618 -0.03940326 0.05604131 -0.01902266 0.16753017
beta2_b
## [1] 7.453584e-04 9.499481e-04 5.826427e-04 9.750554e-04 4.580081e-04
## [6] 6.611283e-04 6.867779e-04 6.938866e-04 6.522559e-04 3.857712e-04
## [11] 1.884342e-03 5.016198e-04 5.781280e-04 3.094063e-04 6.672817e-04
## [16] 6.816088e-04 1.880383e-04 9.109013e-04 9.328308e-04 1.309254e-03
## [21] 6.501968e-04 1.086853e-04 -5.115167e-05 1.184046e-03
beta3_b
## [1] -0.17533596 -0.24372925 -0.20500326 -0.22541023 -0.06726669 -0.13229274
## [7] -0.14501889 -0.19665115 -0.12322056 -0.17674003 -0.39792449 -0.15042691
## [13] -0.17288250 -0.17866940 -0.11673062 -0.14797829 -0.13076109 -0.22867795
## [19] -0.23230527 -0.27958526 -0.12528645 -0.14337803 -0.12684448 -0.27154727
beta4_b
## [1] -12.553966 -17.374463 -13.602060 -11.127995 -23.516884 -13.122529
## [7] -13.756567 -14.079792 -9.377191 -11.078274 -24.778743 -20.198529
## [13] -8.757108 -6.853571 -8.803230 -12.295620 -23.657204 -27.194728
## [19] -10.235922 -20.270122 -13.670141 -17.049649 -13.851278 -28.197351
beta5_b
## [1] 0.01663399 0.01567220 0.01959377 0.01591549 0.01253641 0.01795766
## [7] 0.01793346 0.01690277 0.01704555 0.01401658 0.01913362 0.01311953
## [13] 0.01070743 0.01353102 0.01600688 0.01564582 0.01036138 0.01547706
## [19] 0.01839209 0.01832357 0.01798320 0.01349012 0.01552435 0.01738922
beta6_b
## [1] 0.03329270 0.03020857 0.02223009 0.03927600 0.08025877 0.03253823
## [7] 0.02972484 0.03999005 0.05042370 0.09706135 0.02360796 0.07396329
## [13] 0.10337047 0.10265219 0.06333477 0.04965077 0.09729467 0.04506545
## [19] 0.03788181 0.02189343 0.03120258 0.07526790 0.05901812 0.03161639
7. Menghitung Nilai t-Statistik Lokal GWPR Bisquare
t.beta1_b <- Coefisien_Data_Bisquare$X1 / Coefisien_Data_Bisquare$X1_SE
t.beta2_b <- Coefisien_Data_Bisquare$X2 / Coefisien_Data_Bisquare$X2_SE
t.beta3_b <- Coefisien_Data_Bisquare$X3 / Coefisien_Data_Bisquare$X3_SE
t.beta4_b <- Coefisien_Data_Bisquare$X4 / Coefisien_Data_Bisquare$X4_SE
t.beta5_b <- Coefisien_Data_Bisquare$X5 / Coefisien_Data_Bisquare$X5_SE
t.beta6_b <- Coefisien_Data_Bisquare$X6 / Coefisien_Data_Bisquare$X6_SE
t.beta1_b
## [1] -1.3992391 0.9457160 0.6999280 -3.2312086 -0.3916695 -0.7556431
## [7] -0.8974390 -0.7704750 -0.2121599 1.2952375 1.5972432 0.8525330
## [13] 3.2567254 1.3463797 -1.6550201 0.1927757 1.1860993 1.1422449
## [19] -1.5757631 0.7377429 -0.4489997 0.4640077 -0.1395309 1.0567751
t.beta2_b
## [1] 7.7344285 3.0581878 1.8307839 6.3182433 1.3643084 11.3978852
## [7] 11.6792419 3.4068589 7.0505834 1.2981681 3.5389804 1.6582190
## [13] 2.4654197 1.1007319 7.8009462 4.7300907 0.4603677 2.2786802
## [19] 4.2123094 2.9921240 12.0715867 0.3730043 -0.1887472 2.8978834
t.beta3_b
## [1] -5.4575313 -4.1606625 -4.3637092 -6.3257959 -0.8850632 -4.8441807
## [7] -5.5231322 -4.1384981 -4.0220321 -3.3073223 -3.9112806 -2.4683790
## [13] -5.9637378 -4.3733232 -4.1521211 -4.0137463 -1.6959230 -2.4689695
## [19] -4.2361650 -4.1481724 -4.7670238 -2.4240767 -2.3227215 -3.2429665
t.beta4_b
## [1] -3.716457 -3.241905 -2.802684 -3.348566 -5.763291 -3.245152 -3.375292
## [8] -3.429411 -2.253276 -2.154009 -5.554569 -4.139938 -2.251545 -1.521171
## [15] -2.433937 -2.831783 -6.796955 -5.300329 -3.097247 -3.457447 -3.015415
## [22] -4.050249 -3.192450 -4.780174
t.beta5_b
## [1] 3.076787 3.094198 2.674476 2.280934 3.562296 4.035318 3.595715 3.513819
## [9] 5.145631 2.075668 4.885814 2.716717 1.746502 1.911775 5.854912 3.841700
## [17] 3.224683 3.961253 2.901141 3.631225 3.863252 2.729771 2.931680 4.008137
t.beta6_b
## [1] 3.646483 1.733259 1.367890 4.099369 3.099304 2.818665 2.626427 4.144022
## [9] 3.603055 3.058026 1.465541 2.643303 3.697989 3.317657 5.396858 3.214385
## [17] 3.550313 2.334206 3.952097 1.253743 2.338822 2.986705 2.273651 1.752895
8. Mengambil Nilai R-Square Lokal GWPR Bisquare
Local_R2_Bisquare <- Coefisien_Data_Bisquare$Local_R2
Local_R2_Bisquare
## [1] 0.8151311 0.6874142 0.6857658 0.8569077 0.6664864 0.8136915 0.8373891
## [8] 0.8047812 0.7523859 0.7219960 0.5796077 0.7110444 0.7054178 0.6976338
## [15] 0.7250040 0.6851688 0.6681180 0.6409811 0.7739547 0.6917703 0.8186813
## [22] 0.7133514 0.7167406 0.6825989
9. Menyimpan Hasil Analisis GWPR Bisquare ke Dalam Data Frame
Hasil_Model_GWPR_Bisquare <- data.frame(Kabupaten_Kota = Data_GWPR_IPM_Sulsel$`Kabupaten/Kota`,
Tahun = Data_IPM_Sulawesi_Selatan$Tahun,
beta0_b, beta1_b, beta2_b, beta3_b, beta4_b, beta5_b, beta6_b,
t.beta1_b, t.beta2_b, t.beta3_b, t.beta4_b, t.beta5_b, t.beta6_b,
Local_R2_Bisquare)
View(Hasil_Model_GWPR_Bisquare)
10. Menentukan Variabel yang Signifikan untuk Setiap Kabupaten/Kota
(GWPR Bisquare)
Nilai t-tabel GWPR Bisquare (alpha 10%)
t.tabel_Bisquare <- qt(1 - alpha_Bisquare/2, df_GWPR_Bisquare)
t.tabel_Bisquare
## [1] 1.662883
Sig_X1_b <- ifelse(abs(t.beta1_b) > t.tabel_Bisquare, "X1", "")
Sig_X2_b <- ifelse(abs(t.beta2_b) > t.tabel_Bisquare, "X2", "")
Sig_X3_b <- ifelse(abs(t.beta3_b) > t.tabel_Bisquare, "X3", "")
Sig_X4_b <- ifelse(abs(t.beta4_b) > t.tabel_Bisquare, "X4", "")
Sig_X5_b <- ifelse(abs(t.beta5_b) > t.tabel_Bisquare, "X5", "")
Sig_X6_b <- ifelse(abs(t.beta6_b) > t.tabel_Bisquare, "X6", "")
Variabel_Signifikan_Bisquare <- apply(
cbind(Sig_X1_b, Sig_X2_b, Sig_X3_b, Sig_X4_b, Sig_X5_b, Sig_X6_b),
1,
function(x) paste(x[x != ""], collapse=" ")
)
### Menghitung Nilai p-value untuk Masing-Masing Variabel Independen (GWPR Bisquare)
p_X1_b <- 2 * (1 - pt(abs(t.beta1_b), df = df_GWPR_Bisquare))
p_X2_b <- 2 * (1 - pt(abs(t.beta2_b), df = df_GWPR_Bisquare))
p_X3_b <- 2 * (1 - pt(abs(t.beta3_b), df = df_GWPR_Bisquare))
p_X4_b <- 2 * (1 - pt(abs(t.beta4_b), df = df_GWPR_Bisquare))
p_X5_b <- 2 * (1 - pt(abs(t.beta5_b), df = df_GWPR_Bisquare))
p_X6_b <- 2 * (1 - pt(abs(t.beta6_b), df = df_GWPR_Bisquare))
### Membuat Tabel Variabel Signifikan (GWPR Bisquare)
Kabupaten_Kota <- SHP_Kabupaten_Sulsel_sp@data$Kabupaten.Kota
Tabel_Signifikan_Bisquare <- data.frame(
Kabupaten_Kota = Kabupaten_Kota,
Variabel_Signifikan = Variabel_Signifikan_Bisquare,
R2_Lokal = round(Local_R2_Bisquare,4),
p_X1_b = round(p_X1_b, 5),
p_X2_b = round(p_X2_b, 5),
p_X3_b = round(p_X3_b, 5),
p_X4_b = round(p_X4_b, 5),
p_X5_b = round(p_X5_b, 5),
p_X6_b = round(p_X6_b, 5)
)
View(Tabel_Signifikan_Bisquare)
11. Membuat Kelompok Wilayah Berdasarkan Variabel Signifikan (GWPR
Bisquare)
Kelompok_Signifikan_Bisquare <- Tabel_Signifikan_Bisquare %>%
filter(Variabel_Signifikan != "")
Kelompok_Variabel_Bisquare <- Kelompok_Signifikan_Bisquare %>%
group_by(Variabel_Signifikan) %>%
summarise(
Kabupaten_Kota = paste(Kabupaten_Kota, collapse=", "),
Jumlah = n()
) %>%
arrange(desc(Jumlah)) %>%
mutate(Kelompok = row_number()) %>%
select(Kelompok, Variabel_Signifikan , Kabupaten_Kota)
Kelompok_Variabel_Bisquare
## # A tibble: 6 × 3
## Kelompok Variabel_Signifikan Kabupaten_Kota
## <int> <chr> <chr>
## 1 1 X2 X3 X4 X5 X6 Bantaeng, Barru, Gowa, Jeneponto, Kepulauan Sela…
## 2 2 X3 X4 X5 X6 Kota Palopo, Luwu, Pinrang, Tana Toraja, Toraja …
## 3 3 X2 X3 X4 X5 Bone, Kota Parepare, Soppeng
## 4 4 X1 X2 X3 X4 X5 X6 Bulukumba, Luwu Timur
## 5 5 X3 X5 X6 Luwu Utara
## 6 6 X4 X5 X6 Enrekang
J. Pemodelan GWPR dengan Fungsi Pembobot Adaptive Tricube
Kernel
1. Menentukan Nilai Bandwidth Optimal Tricube
Bandwidth.GWPR_Tricube <- bw.GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
index = c("ID", "Tahun"),
SDF = SHP_Kabupaten_Sulsel_sp,
adaptive = TRUE,
approach = "CV",
kernel = "tricube",
effect = "individual",
model = "random")
## To make sure every subsample have enough freedom, the minimum number of individuals is 2
## The upper boundary is 24, and the lower boundary is 8
## Adaptive Bandwidth: 17 CV score: 0.1470446
## Adaptive Bandwidth: 14 CV score: 0.1333779
## Adaptive Bandwidth: 10 CV score: 0.1199
## Adaptive Bandwidth: 10 CV score: 0.1199
print(Bandwidth.GWPR_Tricube)
## [1] 10
## Menampilkan Nilai Bandwidth untuk Setiap Lokasi (Tricube)
k <- Bandwidth.GWPR_Tricube
bandwidth_lokal_Tricube <- sapply(1:nrow(Jarak), function(i){
sort(Jarak[i, ])[k]
})
Hasil_Bandwidth_Tricube <- data.frame(
Kabupaten_Kota = Nama_Kab,
Bandwidth_Tricube = bandwidth_lokal_Tricube
)
View(Hasil_Bandwidth_Tricube)
2. Menentukan Nilai Pembobot Tricube pada Masing-Masing
Kabupaten/Kota
## Menghitung Nilai Bobot Kernel Tricube Adaptif
Nilai.Bobot_Tricube <- gw.weight(vd = Jarak,
bw = Bandwidth.GWPR_Tricube,
kernel = "tricube",
adaptive = TRUE)
## Memberi Nama kabupaten/kota pada Matriks Pembobot Tricube
rownames(Nilai.Bobot_Tricube) <- Nama_Kab
colnames(Nilai.Bobot_Tricube) <- Nama_Kab
## Menampilkan Nilai Pembobot Tricube pada Setiap Kabupaten/Kota
cat("\n=== Matriks Pembobot Tricube Adaptif ===\n")
##
## === Matriks Pembobot Tricube Adaptif ===
print(round(Nilai.Bobot_Tricube, 4))
## Bantaeng Barru Bone Bulukumba Enrekang Gowa
## Bantaeng 1.0000 0.0000 0.0000 0.9343 0.0000 0.7675
## Barru 0.0000 1.0000 0.4179 0.0000 0.0000 0.0000
## Bone 0.0000 0.4435 1.0000 0.0850 0.0000 0.0000
## Bulukumba 0.9093 0.0000 0.0076 1.0000 0.0000 0.2499
## Enrekang 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000
## Gowa 0.8180 0.0000 0.0093 0.5048 0.0000 1.0000
## Jeneponto 0.8555 0.0000 0.0000 0.4556 0.0000 0.8769
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.1399 0.0213 0.0000 0.0123 0.0000 0.7975
## Kota Palopo 0.0000 0.0000 0.0000 0.0000 0.2646 0.0000
## Kota Parepare 0.0000 0.6677 0.0000 0.0000 0.3175 0.0000
## Luwu 0.0000 0.0000 0.0000 0.0000 0.6318 0.0000
## Luwu Timur 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Maros 0.3067 0.3102 0.4152 0.2107 0.0000 0.7962
## Pangkajene Dan Kepulauan 0.0080 0.3541 0.0408 0.0000 0.0000 0.4891
## Pinrang 0.0000 0.0000 0.0000 0.0000 0.8663 0.0000
## Sidenreng Rappang 0.0000 0.0740 0.0000 0.0000 0.8388 0.0000
## Sinjai 0.8285 0.0000 0.3960 0.9423 0.0000 0.5204
## Soppeng 0.0000 0.9392 0.6042 0.0000 0.0000 0.0000
## Takalar 0.3968 0.0000 0.0000 0.0633 0.0000 0.8634
## Tana Toraja 0.0000 0.0000 0.0000 0.0000 0.6603 0.0000
## Toraja Utara 0.0000 0.0000 0.0000 0.0000 0.1948 0.0000
## Wajo 0.0000 0.1119 0.0327 0.0000 0.3074 0.0000
## Jeneponto Kepulauan Selayar Kota Makassar Kota Palopo
## Bantaeng 0.9155 0.3572 0.1287 0.0000
## Barru 0.0000 0.0000 0.0125 0.0000
## Bone 0.0000 0.0000 0.0000 0.0000
## Bulukumba 0.5438 0.4268 0.0000 0.0000
## Enrekang 0.0000 0.0000 0.0000 0.5776
## Gowa 0.9446 0.0918 0.8376 0.0000
## Jeneponto 1.0000 0.2324 0.4540 0.0000
## Kepulauan Selayar 0.0000 1.0000 0.0000 0.0000
## Kota Makassar 0.6616 0.0006 1.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000 1.0000
## Kota Parepare 0.0000 0.0000 0.0000 0.0000
## Luwu 0.0000 0.0000 0.0000 0.9736
## Luwu Timur 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.5910
## Maros 0.5145 0.0037 0.8556 0.0000
## Pangkajene Dan Kepulauan 0.3141 0.0000 0.9550 0.0000
## Pinrang 0.0000 0.0000 0.0000 0.1298
## Sidenreng Rappang 0.0000 0.0000 0.0000 0.1226
## Sinjai 0.5203 0.1898 0.0612 0.0000
## Soppeng 0.0000 0.0000 0.0000 0.0000
## Takalar 0.9375 0.0452 0.8732 0.0000
## Tana Toraja 0.0000 0.0000 0.0000 0.7837
## Toraja Utara 0.0000 0.0000 0.0000 0.9347
## Wajo 0.0000 0.0000 0.0000 0.0041
## Kota Parepare Luwu Luwu Timur Luwu Utara Maros
## Bantaeng 0.0000 0.0000 0.0000 0.0000 0.0002
## Barru 0.7613 0.0000 0.0000 0.0000 0.0001
## Bone 0.0335 0.0000 0.0000 0.0000 0.0243
## Bulukumba 0.0000 0.0000 0.0000 0.0000 0.0000
## Enrekang 0.4515 0.7621 0.0646 0.2509 0.0000
## Gowa 0.0000 0.0000 0.0000 0.0000 0.5894
## Jeneponto 0.0000 0.0000 0.0000 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.0000 0.0000 0.0000 0.0000 0.6322
## Kota Palopo 0.0000 0.9656 0.5338 0.8602 0.0000
## Kota Parepare 1.0000 0.0000 0.0000 0.0000 0.0000
## Luwu 0.0000 1.0000 0.4550 0.6643 0.0000
## Luwu Timur 0.0000 0.0000 1.0000 0.4501 0.0000
## Luwu Utara 0.0000 0.0928 0.6251 1.0000 0.0000
## Maros 0.0000 0.0000 0.0000 0.0000 1.0000
## Pangkajene Dan Kepulauan 0.0000 0.0000 0.0000 0.0000 0.7549
## Pinrang 0.7637 0.2158 0.0000 0.0586 0.0000
## Sidenreng Rappang 0.8207 0.3518 0.0111 0.0217 0.0000
## Sinjai 0.0000 0.0000 0.0000 0.0000 0.1015
## Soppeng 0.8018 0.0000 0.0000 0.0000 0.0000
## Takalar 0.0000 0.0000 0.0000 0.0000 0.0473
## Tana Toraja 0.0000 0.6874 0.0928 0.6105 0.0000
## Toraja Utara 0.0000 0.7344 0.2815 0.8695 0.0000
## Wajo 0.5705 0.1060 0.0095 0.0000 0.0000
## Pangkajene Dan Kepulauan Pinrang Sidenreng Rappang
## Bantaeng 0.0000 0.0000 0.0000
## Barru 0.2050 0.0000 0.1198
## Bone 0.0024 0.0000 0.0000
## Bulukumba 0.0000 0.0000 0.0000
## Enrekang 0.0000 0.8584 0.8497
## Gowa 0.4727 0.0000 0.0000
## Jeneponto 0.0138 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000
## Kota Makassar 0.9409 0.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000
## Kota Parepare 0.0000 0.6709 0.7767
## Luwu 0.0000 0.0279 0.1688
## Luwu Timur 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000
## Maros 0.8787 0.0000 0.0000
## Pangkajene Dan Kepulauan 1.0000 0.0000 0.0000
## Pinrang 0.0000 1.0000 0.7163
## Sidenreng Rappang 0.0000 0.6805 1.0000
## Sinjai 0.0005 0.0000 0.0000
## Soppeng 0.0000 0.0052 0.4447
## Takalar 0.3648 0.0000 0.0000
## Tana Toraja 0.0000 0.3985 0.0426
## Toraja Utara 0.0000 0.0006 0.0000
## Wajo 0.0000 0.0778 0.8988
## Sinjai Soppeng Takalar Tana Toraja Toraja Utara Wajo
## Bantaeng 0.7550 0.0000 0.6147 0.0000 0.0000 0.0000
## Barru 0.0000 0.9427 0.0000 0.0000 0.0000 0.3586
## Bone 0.2386 0.6428 0.0000 0.0000 0.0000 0.2650
## Bulukumba 0.8842 0.0000 0.1462 0.0000 0.0000 0.0000
## Enrekang 0.0000 0.0000 0.0000 0.7871 0.6095 0.5256
## Gowa 0.4731 0.0000 0.9392 0.0000 0.0000 0.0000
## Jeneponto 0.1225 0.0000 0.9383 0.0000 0.0000 0.0000
## Kepulauan Selayar 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Kota Makassar 0.0024 0.0000 0.9291 0.0000 0.0000 0.0000
## Kota Palopo 0.0000 0.0000 0.0000 0.7310 0.9492 0.0000
## Kota Parepare 0.0000 0.7367 0.0000 0.0091 0.0000 0.6400
## Luwu 0.0000 0.0000 0.0000 0.6949 0.8359 0.1160
## Luwu Timur 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## Luwu Utara 0.0000 0.0000 0.0000 0.0493 0.6909 0.0000
## Maros 0.3848 0.0903 0.6695 0.0000 0.0000 0.0000
## Pangkajene Dan Kepulauan 0.0000 0.0356 0.6846 0.0000 0.0000 0.0000
## Pinrang 0.0000 0.0109 0.0000 0.6193 0.3254 0.3140
## Sidenreng Rappang 0.0000 0.4135 0.0000 0.1990 0.1132 0.9345
## Sinjai 1.0000 0.0000 0.2632 0.0000 0.0000 0.0000
## Soppeng 0.0000 1.0000 0.0000 0.0000 0.0000 0.7537
## Takalar 0.0003 0.0000 1.0000 0.0000 0.0000 0.0000
## Tana Toraja 0.0000 0.0000 0.0000 1.0000 0.9588 0.0000
## Toraja Utara 0.0000 0.0000 0.0000 0.9330 1.0000 0.0000
## Wajo 0.0000 0.6108 0.0000 0.0000 0.0000 1.0000
View(Nilai.Bobot_Tricube)
3. Melakukan Estimasi Parameter Model GWPR Tricube
Model.GWPR_Tricube <- GWPR(formula = IPM ~ X1 + X2 + X3 + X4 + X5 + X6,
data = Data_GWPR_IPM_Sulsel,
SDF = SHP_Kabupaten_Sulsel_sp,
index = c("ID", "Tahun"),
bw = Bandwidth.GWPR_Tricube,
adaptive = TRUE,
p = 2,
longlat = FALSE,
kernel = "tricube",
effect = "individual",
model = "random")
## ************************ GWPR Begin *************************
## Formula: IPM = X1 + X2 + X3 + X4 + X5 + X6 -- Individuals: 24
## Bandwidth: 10 ---- Adaptive: TRUE
## Model: random ---- Effect: individual
## The R2 is: 0.988131483508445
## Note: in order to avoid mistakes, we forced a rename of the individuals'ID as "id".
summary(Model.GWPR_Tricube)
## Length Class Mode
## GW.arguments 7 -none- list
## R2 1 -none- numeric
## index 2 -none- character
## plm.result 11 plm list
## raw.data 13 data.frame list
## GWPR.residuals 5 data.frame list
## SDF 24 SpatialPolygonsDataFrame S4
4. Menampilkan Hasil Ringkasan Estimasi Parameter Model GWPR
Tricube
Coefisien_Data_Tricube <- Model.GWPR_Tricube$SDF@data
Variabel <- c("Intercept","X1","X2","X3","X4","X5","X6")
Tabel_Estimasi_Tricube <- data.frame(Variabel = Variabel,
Min = apply(Coefisien_Data_Tricube[, Variabel], 2, min),
Q1 = apply(Coefisien_Data_Tricube[, Variabel], 2, quantile, 0.25),
Median = apply(Coefisien_Data_Tricube[, Variabel], 2, median),
Q3 = apply(Coefisien_Data_Tricube[, Variabel], 2, quantile, 0.75),
Max = apply(Coefisien_Data_Tricube[, Variabel], 2, max))
print(Tabel_Estimasi_Tricube)
## Variabel Min Q1 Median Q3
## Intercept Intercept 4.589076e+01 6.351731e+01 6.607905e+01 7.412366e+01
## X1 X1 -2.062073e-01 -6.430656e-02 3.203455e-02 1.471897e-01
## X2 X2 -5.041860e-05 4.738144e-04 6.634035e-04 9.688829e-04
## X3 X3 -4.089974e-01 -2.302040e-01 -1.694483e-01 -1.320583e-01
## X4 X4 -2.859493e+01 -1.991123e+01 -1.372625e+01 -1.082340e+01
## X5 X5 1.052774e-02 1.406063e-02 1.576415e-02 1.781506e-02
## X6 X6 2.204198e-02 3.125003e-02 4.224080e-02 7.140037e-02
## Max
## Intercept 80.713153574
## X1 0.276574281
## X2 0.002039499
## X3 -0.060924728
## X4 -7.100665658
## X5 0.019617831
## X6 0.106620639
5. Melakukan Uji Kesesuaian Model GWPR Tricube
## A. Perhitungan Derajat Kebebasan (df) - Adaptive Tricube Kernel
### Menyiapkan Data Panel (GWPR Tricube)
Data_Tricube <- Data_GWPR_IPM_Sulsel
### Membentuk Matriks Variabel Independen (X)(120x7) GWPR Tricube
X <- cbind(1,
Data_Tricube$X1,
Data_Tricube$X2,
Data_Tricube$X3,
Data_Tricube$X4,
Data_Tricube$X5,
Data_Tricube$X6)
n <- nrow(X)
j <- ncol(X)
### Mengidentifikasi Kabupaten/Kota GWPR Tricube
kab_Tricube <- as.factor(Data_Tricube$`Kabupaten/Kota`)
### Mapping indeks kabupaten ke matriks bobot Tricube (24 x 24)
index_kab_Tricube <- match(kab_Tricube, rownames(Nilai.Bobot_Tricube))
### Melakukan Inisialisasi Elemen Diagonal Hat Matrix Tricube
sii_Tricube <- numeric(n)
### Melakukan Perhitungan Nilai s_ii untuk Setiap Observasi Tricube
for(i in 1:n){
## Bobot Spasial Tricube Kabupaten (24)
wi_kab_Tricube <- Nilai.Bobot_Tricube[index_kab_Tricube[i], ]
## Mapping Bobot Tricube ke 120 Observasi Panel
wi_full_Tricube <- wi_kab_Tricube[index_kab_Tricube]
## Membentuk Matriks Diagonal Tricube (120 x 120)
Wi_Tricube <- diag(wi_full_Tricube)
## hitung (X' W_i X) Tricube
XtWiX_Tricube <- t(X) %*% Wi_Tricube %*% X
XtWiX_inv_Tricube <- solve(XtWiX_Tricube + diag(1e-5, j))
xi_Tricube <- matrix(X[i, ], ncol = 1)
wii_Tricube <- wi_full_Tricube[i]
sii_Tricube[i] <- t(xi_Tricube) %*% XtWiX_inv_Tricube %*% xi_Tricube * wii_Tricube
}
### Menghitung Derajat Kebebasan Tricube
df_model_Tricube <- sum(sii_Tricube)
df_residual_Tricube <- n - df_model_Tricube
### Menghitung Nilai SSE (GWPR Tricube)
SSE_REM <- sum(residuals(Model_REM)^2)
SSE_GWPR_Tricube <- sum(Model.GWPR_Tricube$GWPR.residuals$resid^2)
### Menghitung Derajat Bebas Model Global dan Model GWPR Tricube
df_REM <- df.residual(Model_REM)
df_GWPR_Tricube <- df_residual_Tricube
### Melakukan Uji Kesesuaian Model GWPR Tricube
F_hitung_Tricube <- (SSE_REM/df_REM)/(SSE_GWPR_Tricube/df_GWPR_Tricube)
F_hitung_Tricube
## [1] 1.302601
### Menentukan Nilai F Tabel GWPR Tricube
alpha_Tricube <- 0.10
F_tabel_Tricube <- qf(1 - alpha_Tricube, df_REM, df_GWPR_Tricube)
F_tabel_Tricube
## [1] 1.30122
### Menentukan Daerah Keputusan Uji Kesesuain Model GWPR Tricube
if(F_hitung_Tricube > F_tabel_Tricube){
cat("H1: Model GWPR Tricube lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Tricube\n")
}
## H1: Model GWPR Tricube lebih baik dibandingkan model global
### Menghitung Nilai P-Value GWPR Tricube
p_value_Tricube <- 1 - pf(F_hitung_Tricube, df_REM, df_GWPR_Tricube, lower.tail = TRUE)
p_value_Tricube
## [1] 0.09909835
if(p_value_Tricube < 0.10){
cat("H1: Model GWPR Tricube lebih baik dibandingkan model global\n")
} else {
cat("H0: Model global sudah cukup dibandingkan GWPR Tricube\n")
}
## H1: Model GWPR Tricube lebih baik dibandingkan model global
6. Melakukan Estimasi Parameter Lokal Model GWPR Tricube
beta0_t <- Coefisien_Data_Tricube$Intercept
beta1_t <- Coefisien_Data_Tricube$X1
beta2_t <- Coefisien_Data_Tricube$X2
beta3_t <- Coefisien_Data_Tricube$X3
beta4_t <- Coefisien_Data_Tricube$X4
beta5_t <- Coefisien_Data_Tricube$X5
beta6_t <- Coefisien_Data_Tricube$X6
beta0_t
## [1] 74.61803 58.45080 63.80122 80.71315 77.50542 72.03364 72.72135 73.95887
## [9] 65.74237 62.80586 55.89929 66.41573 45.89076 59.45442 77.64605 65.44244
## [17] 59.38622 63.84520 76.47681 63.75446 71.09221 72.33562 76.40571 64.47055
beta1_t
## [1] -0.09716018 0.21325020 0.13517305 -0.20620734 -0.08007354 -0.06278182
## [7] -0.06753667 -0.06322986 -0.02036144 0.10232773 0.26028551 0.08267677
## [13] 0.27657428 0.12174358 -0.20093673 0.03520834 0.17124281 0.17105936
## [19] -0.13880778 0.13923317 -0.04721189 0.02886076 -0.01794914 0.17378610
beta2_t
## [1] 0.0007501172 0.0010104856 0.0006231118 0.0010031116 0.0004257085
## [6] 0.0006624970 0.0006866496 0.0006766753 0.0006643099 0.0002498449
## [11] 0.0020394992 0.0004898497 0.0005555467 0.0002534912 0.0006568734
## [16] 0.0006732227 0.0002739925 0.0009859481 0.0009631946 0.0012722602
## [21] 0.0006521622 0.0001229362 -0.0000504186 0.0011785557
beta3_t
## [1] -0.17512831 -0.24763976 -0.20902262 -0.22817745 -0.06092473 -0.13304390
## [7] -0.14510366 -0.20136426 -0.12799662 -0.16798091 -0.40899741 -0.14844287
## [13] -0.17091571 -0.18114742 -0.11229332 -0.14338522 -0.10114748 -0.23628357
## [19] -0.24132942 -0.27033719 -0.12721365 -0.13576908 -0.12910170 -0.27447922
beta4_t
## [1] -12.342217 -16.830281 -13.989798 -10.809037 -23.678654 -13.220464
## [7] -13.702857 -13.827873 -8.636954 -10.828184 -25.059333 -20.208292
## [13] -8.554931 -7.100666 -9.038708 -12.695444 -24.886045 -27.520783
## [19] -10.126341 -19.812214 -13.749635 -17.932682 -13.281850 -28.594927
beta5_t
## [1] 0.01672083 0.01561520 0.01938853 0.01526191 0.01245015 0.01786731
## [7] 0.01808880 0.01656655 0.01697246 0.01420783 0.01961783 0.01361903
## [13] 0.01142079 0.01336516 0.01590529 0.01515934 0.01052774 0.01562302
## [19] 0.01874609 0.01829340 0.01779764 0.01341832 0.01533917 0.01738634
beta6_t
## [1] 0.03346673 0.03073771 0.02204198 0.04015140 0.07684843 0.03231836
## [7] 0.03004668 0.03912381 0.05237124 0.08737289 0.02295872 0.07417719
## [13] 0.09903090 0.09769270 0.06571942 0.05161044 0.10662064 0.04433020
## [19] 0.03805662 0.02302312 0.03142081 0.07047476 0.06013487 0.02992312
7. Menghitung Nilai t-Statistik Lokal GWPR Tricube
t.beta1_t <- Coefisien_Data_Tricube$X1 / Coefisien_Data_Tricube$X1_SE
t.beta2_t <- Coefisien_Data_Tricube$X2 / Coefisien_Data_Tricube$X2_SE
t.beta3_t <- Coefisien_Data_Tricube$X3 / Coefisien_Data_Tricube$X3_SE
t.beta4_t <- Coefisien_Data_Tricube$X4 / Coefisien_Data_Tricube$X4_SE
t.beta5_t <- Coefisien_Data_Tricube$X5 / Coefisien_Data_Tricube$X5_SE
t.beta6_t <- Coefisien_Data_Tricube$X6 / Coefisien_Data_Tricube$X6_SE
t.beta1_t
## [1] -1.3269235 1.0411171 0.7247754 -3.5465442 -0.5385293 -0.7675971
## [7] -0.9162081 -0.5807203 -0.1296873 0.8224689 1.6083432 0.6928440
## [13] 3.1589030 1.0849697 -1.8285973 0.2201134 1.0832284 1.1906980
## [19] -1.6085344 0.7092875 -0.5508839 0.2225898 -0.1331215 1.0773036
t.beta2_t
## [1] 7.3367836 2.8180910 1.9488861 6.6497764 1.2679264 11.4023026
## [7] 11.6630912 2.8975992 6.5587079 0.8543948 3.7521557 1.6184222
## [13] 2.3008655 0.9017187 8.1592338 4.6038408 0.6533350 2.4470568
## [19] 4.2151908 2.8652391 12.2866134 0.4281198 -0.1865244 2.8884054
t.beta3_t
## [1] -5.4173934 -4.2258115 -4.3821241 -6.5786587 -0.7961298 -4.8416914
## [7] -5.4039355 -3.9213900 -4.0503509 -3.1916579 -3.7686995 -2.3620361
## [13] -5.8407301 -4.2920166 -4.2428845 -3.8761057 -1.2344796 -2.5095463
## [19] -4.2065743 -4.0703582 -4.8593489 -2.2056021 -2.4131926 -3.2730885
t.beta4_t
## [1] -3.593904 -3.089243 -2.955042 -3.421315 -5.804562 -3.323430 -3.423821
## [8] -3.424805 -2.011565 -2.179631 -5.828265 -4.168503 -2.252046 -1.574126
## [15] -2.581786 -2.897572 -7.274352 -5.393053 -3.022575 -3.342145 -3.087946
## [22] -4.332329 -3.090484 -4.898329
t.beta5_t
## [1] 3.087268 3.062096 2.684490 2.282938 3.546558 4.015318 3.682153 3.375119
## [9] 5.056673 2.108664 5.029730 2.869210 1.898777 1.897480 6.161641 3.695082
## [17] 3.383177 4.024650 2.977627 3.637349 3.868892 2.838532 2.854412 4.052072
t.beta6_t
## [1] 3.581797 1.768328 1.389170 4.407235 2.933417 2.859742 2.731848 4.124423
## [9] 3.567420 2.800841 1.467694 2.680007 3.527212 3.164247 5.640369 3.233050
## [17] 3.770445 2.347179 4.017250 1.286414 2.412412 2.846198 2.287836 1.703664
8. Mengambil Nilai R-Square Lokal GWPR Tricube
Local_R2_Tricube <- Coefisien_Data_Tricube$Local_R2
Local_R2_Tricube
## [1] 0.8151344 0.6851135 0.6880137 0.8484035 0.6691665 0.8123775 0.8358834
## [8] 0.7804608 0.7491258 0.7171599 0.5581655 0.7164430 0.7014433 0.6952718
## [15] 0.7193600 0.6821777 0.6718645 0.6351734 0.7705732 0.6956874 0.8194456
## [22] 0.7208875 0.7152224 0.6824310
9. Menyimpan Hasil Analisis GWPR Tricube ke Dalam Data Frame
Hasil_Model_GWPR_Tricube <- data.frame(Kabupaten_Kota = Data_GWPR_IPM_Sulsel$`Kabupaten/Kota`,
Tahun = Data_IPM_Sulawesi_Selatan$Tahun,
beta0_t, beta1_t, beta2_t, beta3_t, beta4_t, beta5_t, beta6_t,
t.beta1_t, t.beta2_t, t.beta3_t, t.beta4_t, t.beta5_t, t.beta6_t,
Local_R2_Tricube)
View(Hasil_Model_GWPR_Tricube)
10. Menentukan Variabel yang Signifikan untuk Setiap Kabupaten/Kota
(GWPR Bisquare)
Nilai t-tabel GWPR Tricube (alpha 10%)
t.tabel_Tricube <- qt(1 - alpha_Tricube/2, df_GWPR_Tricube)
t.tabel_Tricube
## [1] 1.662665
Sig_X1_t <- ifelse(abs(t.beta1_t) > t.tabel_Tricube, "X1", "")
Sig_X2_t <- ifelse(abs(t.beta2_t) > t.tabel_Tricube, "X2", "")
Sig_X3_t <- ifelse(abs(t.beta3_t) > t.tabel_Tricube, "X3", "")
Sig_X4_t <- ifelse(abs(t.beta4_t) > t.tabel_Tricube, "X4", "")
Sig_X5_t <- ifelse(abs(t.beta5_t) > t.tabel_Tricube, "X5", "")
Sig_X6_t <- ifelse(abs(t.beta6_t) > t.tabel_Tricube, "X6", "")
Variabel_Signifikan_Tricube <- apply(
cbind(Sig_X1_t, Sig_X2_t, Sig_X3_t, Sig_X4_t, Sig_X5_t, Sig_X6_t),
1,
function(x) paste(x[x != ""], collapse=" ")
)
### Menghitung Nilai p-value untuk Masing-Masing Variabel Independen (GWPR Tricube)
p_X1_t <- 2 * (1 - pt(abs(t.beta1_t), df = df_GWPR_Tricube))
p_X2_t <- 2 * (1 - pt(abs(t.beta2_t), df = df_GWPR_Tricube))
p_X3_t <- 2 * (1 - pt(abs(t.beta3_t), df = df_GWPR_Tricube))
p_X4_t <- 2 * (1 - pt(abs(t.beta4_t), df = df_GWPR_Tricube))
p_X5_t <- 2 * (1 - pt(abs(t.beta5_t), df = df_GWPR_Tricube))
p_X6_t <- 2 * (1 - pt(abs(t.beta6_t), df = df_GWPR_Tricube))
### Membuat Tabel Variabel Signifikan (GWPR Tricube)
Kabupaten_Kota <- SHP_Kabupaten_Sulsel_sp@data$Kabupaten.Kota
Tabel_Signifikan_Tricube <- data.frame(
Kabupaten_Kota = Kabupaten_Kota,
Variabel_Signifikan = Variabel_Signifikan_Tricube,
R2_Lokal = round(Local_R2_Tricube,4),
p_X1_t = round(p_X1_t, 5),
p_X2_t = round(p_X2_t, 5),
p_X3_t = round(p_X3_t, 5),
p_X4_t = round(p_X4_t, 5),
p_X5_t = round(p_X5_t, 5),
p_X6_t = round(p_X6_t, 5)
)
View(Tabel_Signifikan_Tricube)
11. Membuat Kelompok Wilayah Berdasarkan Variabel Signifikan (GWPR
Tricube)
Kelompok_Variabel_Tricube <- Tabel_Signifikan_Tricube %>%
filter(Variabel_Signifikan != "") %>%
group_by(Variabel_Signifikan) %>%
summarise(
Kabupaten_Kota = paste(Kabupaten_Kota, collapse=", "),
Jumlah = n(),
.groups = "drop"
) %>%
arrange(desc(Jumlah)) %>%
mutate(Kelompok = row_number())
Kelompok_Variabel_Tricube
## # A tibble: 6 × 4
## Variabel_Signifikan Kabupaten_Kota Jumlah Kelompok
## <chr> <chr> <int> <int>
## 1 X2 X3 X4 X5 X6 Bantaeng, Barru, Gowa, Jeneponto, Kepulau… 11 1
## 2 X3 X4 X5 X6 Kota Palopo, Luwu, Tana Toraja, Toraja Ut… 4 2
## 3 X1 X2 X3 X4 X5 X6 Bulukumba, Luwu Timur, Maros 3 3
## 4 X2 X3 X4 X5 Bone, Kota Parepare, Soppeng 3 4
## 5 X4 X5 X6 Enrekang, Pinrang 2 5
## 6 X3 X5 X6 Luwu Utara 1 6
K. Membuat Tabel Perbandingan untuk Model Terbaik (Global Vs
GWPR)
1. Model Regresi Data Panel (REM)
## Menghitung Nilai R-Square pada Model REM
R2_REM <- summary(Model_REM)$r.squared["rsq"]
R2_REM
## rsq
## 0.699073
## Menghitung Nilai AIC Model REM
### Menentukan Jumlah Observasi
N <- nobs(Model_REM)
### Menentukan Jumlah Parameter (termasuk intercept)
j <- length(coef(Model_REM))
### Menghitung Nilai SSE REM
SSE_REM <- sum(residuals(Model_REM)^2)
## Menghitung Nilai AIC REM
AIC_REM <- N * log(SSE_REM / N) + 2 * j
AIC_REM
## [1] -126.099
## Menghitung Nilai RMSE REM
RMSE_REM <- sqrt(mean(residuals(Model_REM)^2))
RMSE_REM
## [1] 0.5578051
2. Model GWPR dengan Fungsi Pembobot Gaussian
## Menghitung Nilai R-Square Model GWPR Gaussian Secara Manual
### Mengambil variabel dependen (GWPR Gaussian)
Y <- Data_GWPR_IPM_Sulsel$IPM
### Menghitung Sum of Squares Total (GWPR Gaussian)
SST_Gaussian <- sum((Y - mean(Y))^2)
### Menghitung Sum of Squares Error (GWPR Gaussian)
SSE_Gaussian <- sum(Model.GWPR_Gaussian$GWPR.residuals$resid^2)
## Menghitung Nilai Koefisien Determinasi (GWPR Gaussian)
R2_Gaussian <- (SST_Gaussian - SSE_Gaussian) / SST_Gaussian
R2_Gaussian
## [1] 0.9859684
## Menghitung Nilai AIC Model Gaussian
### Menentukan Jumlah Observasi dan Parameter
N <- nrow(Model.GWPR_Gaussian$raw.data)
### Menghitung Nilai Varians Gaussian
sigma2_Gaussian <- SSE_Gaussian / N
## Menghitung Nilai AIC Gaussian
AIC_Gaussian <- N * log(sigma2_Gaussian)
AIC_Gaussian
## [1] -183.8281
## Menghitung RMSE Model GWPR Gaussian
RMSE_Gaussian <- sqrt(mean(Model.GWPR_Gaussian$GWPR.residuals$resid^2))
RMSE_Gaussian
## [1] 0.4648919
3. Model GWPR dengan Fungsi Pembobot Bisquare
## Menghitung Nilai R-Square Model GWPR Bisquare Secara Manual
### Mengambil variabel dependen (GWPR Bisqaure)
Y_Bisquare <- Data_GWPR_IPM_Sulsel$IPM
### Menghitung Sum of Squares Total (GWPR Bisquare)
SST_Bisquare <- sum((Y_Bisquare - mean(Y_Bisquare))^2)
### Menghitung Sum of Squares Error (GWPR Bisquare)
SSE_Bisquare <- sum(Model.GWPR_Bisquare$GWPR.residuals$resid^2)
## Menghitung Nilai Koefisien Determinasi (GWPR Bisquare)
R2_Bisquare <- (SST_Bisquare - SSE_Bisquare) / SST_Bisquare
R2_Bisquare
## [1] 0.9884036
## Menghitung Nilai AIC Model Bisquare
### Menentukan Jumlah Observasi dan Parameter GWPR Bisquare
N <- nrow(Model.GWPR_Bisquare$raw.data)
### Menghitung Nilai Varians Bisquare
sigma2_Bisquare <- SSE_Bisquare / N
## Menghitung Nilai AIC Gaussian
AIC_Bisquare <- N * log(sigma2_Bisquare)
AIC_Bisquare
## [1] -206.7024
## Menghitung RMSE Model GWPR Gaussian
RMSE_Bisquare <- sqrt(mean(Model.GWPR_Bisquare$GWPR.residuals$resid^2))
RMSE_Bisquare
## [1] 0.4226293
4. Model GWPR dengan Fungsi Pembobot Tricube
## Menghitung Nilai R-Square Model GWPR Tricube Secara Manual
### Mengambil variabel dependen (GWPR Tricube)
Y_Tricube <- Data_GWPR_IPM_Sulsel$IPM
### Menghitung Sum of Squares Total (GWPR Tricube)
SST_Tricube <- sum((Y_Tricube - mean(Y_Tricube))^2)
### Menghitung Sum of Squares Error (GWPR Tricube)
SSE_Tricube <- sum(Model.GWPR_Tricube$GWPR.residuals$resid^2)
## Menghitung Nilai Koefisien Determinasi (GWPR Tricube)
R2_Tricube <- (SST_Tricube - SSE_Tricube) / SST_Tricube
R2_Tricube
## [1] 0.9881315
## Menghitung Nilai AIC Model Tricube
### Menentukan Jumlah Observasi dan Parameter GWPR Tricube
N <- nrow(Model.GWPR_Tricube$raw.data)
### Menghitung Nilai Varians Bisquare
sigma2_Tricube <- SSE_Tricube / N
## Menghitung Nilai AIC Tricube
AIC_Tricube <- N * log(sigma2_Tricube)
AIC_Tricube
## [1] -203.919
## Menghitung RMSE Model GWPR Tricube
RMSE_Tricube <- sqrt(mean(Model.GWPR_Tricube$GWPR.residuals$resid^2))
RMSE_Tricube
## [1] 0.4275592
5. Membuat Tabel Perbandingan Antara Model Panel dengan GWPR
Tabel_Perbandingan_Model <- data.frame(Model = c("REM (Global)",
"GWPR Gaussian",
"GWPR Bisquare",
"GWPR Tricube"),
SSE = c(SSE_REM, SSE_Gaussian, SSE_Bisquare, SSE_Tricube),
R_Square = c(R2_REM, R2_Gaussian, R2_Bisquare, R2_Tricube),
AIC = c(AIC_REM, AIC_Gaussian, AIC_Bisquare, AIC_Tricube),
RMSE = c(RMSE_REM, RMSE_Gaussian, RMSE_Bisquare, RMSE_Tricube)
)
Tabel_Perbandingan_Model
## Model SSE R_Square AIC RMSE
## 1 REM (Global) 37.33758 0.6990730 -126.0990 0.5578051
## 2 GWPR Gaussian 25.93494 0.9859684 -183.8281 0.4648919
## 3 GWPR Bisquare 21.43386 0.9884036 -206.7024 0.4226293
## 4 GWPR Tricube 21.93683 0.9881315 -203.9190 0.4275592