Data yang digunakan dalam melakukan penelitian ini adalah dataset terkait faktor-faktor yang mempengaruhi kasus TBC berdasarkan 34 provinsi di Indonesia pada tahun 2023. Dataset bersumber dari Survei Kesehatan Indonesia 2023 dan terdiri dari satu variabel dependen dan lima variabel idependen dengan rincian:
Persentase dari populasi yang menderita tuberculosis (Y)
Persentase dari populasi rumah tangga yang memiliki akses terhadap fasilitas kesehatan dasar (x1)
Persentase penduduk dengan jenis kelamin laki-laki (x2)
Persentase penduduk miskin (x3)
Rata-rata lama sekolah (tahun) (x4)
Persentase tingkat pengangguran terbuka (x5)
Install package yang dibutuhkan dalam melakukan analisis pada R
library(readxl)
library(rgdal)
## Loading required package: sp
## Warning: package 'sp' was built under R version 4.3.3
## Please note that rgdal will be retired during October 2023,
## plan transition to sf/stars/terra functions using GDAL and PROJ
## at your earliest convenience.
## See https://r-spatial.org/r/2023/05/15/evolution4.html and https://github.com/r-spatial/evolution
## rgdal: version: 1.6-7, (SVN revision 1203)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.7.2, released 2023/09/05
## Path to GDAL shared files: C:/Users/ASUS/AppData/Local/R/win-library/4.3/rgdal/gdal
## GDAL does not use iconv for recoding strings.
## GDAL binary built with GEOS: TRUE
## Loaded PROJ runtime: Rel. 9.3.0, September 1st, 2023, [PJ_VERSION: 930]
## Path to PROJ shared files: C:/Users/ASUS/AppData/Local/R/win-library/4.3/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:2.1-1
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading sp or rgdal.
library(spdep)
## Warning: package 'spdep' was built under R version 4.3.3
## Loading required package: spData
## Warning: package 'spData' was built under R version 4.3.3
## Loading required package: sf
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(raster)
## Warning: package 'raster' was built under R version 4.3.2
library(spatialreg)
## Warning: package 'spatialreg' was built under R version 4.3.3
## Loading required package: Matrix
## Warning: package 'Matrix' was built under R version 4.3.3
##
## 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
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(maps)
## Warning: package 'maps' was built under R version 4.3.3
library(raster)
library(maptools)
## Please note that 'maptools' will be retired during October 2023,
## plan transition at your earliest convenience (see
## https://r-spatial.org/r/2023/05/15/evolution4.html and earlier blogs
## for guidance);some functionality will be moved to 'sp'.
## Checking rgeos availability: TRUE
##
## Attaching package: 'maptools'
## The following object is masked from 'package:sp':
##
## sp2Mondrian
library(sp)
library(spdep)
library(gstat)
## Warning: package 'gstat' was built under R version 4.3.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.2
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:raster':
##
## intersect, select, union
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(sf)
library(ggmap)
## Warning: package 'ggmap' was built under R version 4.3.3
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
## Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
## OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.
library(RColorBrewer)
library(spgwr)
## Warning: package 'spgwr' was built under R version 4.3.3
## NOTE: This package does not constitute approval of GWR
## as a method of spatial analysis; see example(gwr)
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:maptools':
##
## pointLabel
library(dplyr)
Input data yang akan digunakan. Data diambil dari folder yang sama hingga akhir analisis yang sebelumnya dipanggil dengan fungsi setwd(). Setelahnya, input data (berbentuk CSV) dan panggil file yang memuat data spasial Indonesia dengan menggunakan fungsi st_read().
setwd("D:/Delta/Statistika/Semester 5/Spasial/UTS")
Data <- read_xlsx("DataUTS.xlsx")
Indo<-st_read("gadm41_IDN.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source
## `D:\Delta\Statistika\Semester 5\Spasial\UTS\gadm41_IDN.gpkg'
## using driver `GPKG'
## Simple feature collection with 34 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 95.00971 ymin: -11.00761 xmax: 141.0194 ymax: 6.076941
## Geodetic CRS: WGS 84
Setelahnya, buat plot sebaran data persentase TBC untuk melihat provinsi mana yang tergolong rendah atau tinggi dalam persentase kasus TBC. Namun sebelum itu, gabungkan data spasial dan dataset TBC dengan menggunakan syntax berikut
Indo$id<-c(1:34)
Indo_sf<-st_as_sf(Indo)
Indo_merged <- Indo_sf %>%left_join(Data, by = "id")
Plot ini membagi provinsi mana yang memiliki kasus TBC tinggi, rendah, atau di antaranya berdasarkan nilai kuartilnya. Artinya, terdapat empat kategori untuk melihat pesebaran kasus TBC tersebut. Langkah pertama yang harus dilakukan adalah menentukan kuantil data persentase TBC dengan menggunakan fungsi summary().
summary(Data$Y)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0900 0.2025 0.2450 0.2671 0.3175 0.5800
breaks <- c(-Inf, 0.2025, 0.2450, 0.3175, Inf)
labels <- c("Very Low", "Low", "High","Very High")
Indo_merged$Y <- cut(Indo_merged$Y,
breaks = breaks,
labels = labels,
right = TRUE)
Selanjutnya, buat plot sebaran kasus TBC
ggplot() +
geom_sf(data=Indo_merged, aes(fill = Y),color=NA) +
theme_bw() +
scale_fill_manual(values = c("Very Low" = "yellow",
"Low" = "orange",
"High" = "red",
"Very High" = "red3"))+
labs(fill = "Kasus TBC")+theme(legend.position = "right",
axis.text.x = element_blank(),
axis.text.y = element_blank())+
labs(title = "",
fill = "TBC")
Berdasarkan plot tersebut, dapat kita lihat provinsi mana saja yang termasuk ke dalam masing-masing dari keempat kategorinya. Lebih rincinya, berikut daftar provinsi dari masing-masing kategori:
Very Low : Sumatera Utara, Riau, Kepulauan Riau, Jambi, Bangka Belitung, Kalimantan Timur, Kalimantan Utara, Bali, dan Maluku (9)
Low : Bengkulu, Sumatera Selatan, Lampung, DI Yogyakarta, Jawa Timur, Nusa Tenggara Barat, Kalimantan Tengah, dan Sulawesi Tengah (8)
High : Aceh, Sumatera Barat, Jawa Tengah, Nusa Tenggara Timur, Kalimantan Barat, Sulawesi Selatan, Sulawesi Tenggara dan Maluku Utara (8)
Very High : Banten, DKI Jakarta, Jawa Barat, Kalimantan Selatan, Sulawesi Barat, Gorontalo, Sulawesi Utara, Papua Barat, dan Papua (9)
Selanjutnya, akan dilakukan perbandingan antara model OLS (Ordinary Least Square) dengan model GWR (Geographically Weighted Regression). Perbandingan dilakukan dengan tujuan memilih model mana yang terbaik terhadap faktor-faktor yang mempengaruhi Kasus TBC.
Regresi kuadrat terkecil biasa (Ordinary Least Squares - OLS) adalah teknik umum untuk mengestimasi koefisien persamaan regresi linier yang menggambarkan hubungan antara satu atau lebih variabel kuantitatif independen dengan variabel dependen (regresi linier sederhana atau berganda), yang sering kali dievaluasi dengan menggunakan R-Square.
Definisikan model OLS terlebih dahulu
model_ols = lm(Y ~ X1 + X2 + X3 + X4 + X5, data = Data)
summary(model_ols)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5, data = Data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.150075 -0.061987 -0.008175 0.058275 0.185434
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.424928 1.270443 0.334 0.7405
## X1 -0.001931 0.002283 -0.846 0.4049
## X2 0.003435 0.022749 0.151 0.8810
## X3 0.004816 0.004915 0.980 0.3356
## X4 -0.040727 0.024638 -1.653 0.1095
## X5 0.031973 0.013938 2.294 0.0295 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.09409 on 28 degrees of freedom
## Multiple R-squared: 0.3154, Adjusted R-squared: 0.1932
## F-statistic: 2.58 on 5 and 28 DF, p-value: 0.04848
Dapat dilihat bahwa nilai R-Squared yang dihasilkan dari model tersebut adalah sebesar 0.3154
Melakukan uji asumsi terlebih dahulu kepada model OLS. P-Value yang diterapkan pada penelitian ini adalah 0.1
Uji normalitas residual dilakukan dengan menggunakan uji statistik Shapiro-Wilks. Kriterianya adalah apabila p-value > 0,1 , maka distribusi data memenuhi asumsi normalitas. Sebaliknya, jika p-value < 0,1 , maka distribusi data tidak memenuhi asumsi normalitas
shapiro.test(model_ols$residuals)
##
## Shapiro-Wilk normality test
##
## data: model_ols$residuals
## W = 0.97123, p-value = 0.4961
Berdasarkan hasil tes tersebut, dapat disimpulkan bahwa residual dari model OLS memenuhi asumsi normalitas
Uji heteroskedastisitas dilakukan pada model regresi untuk menguji apakah terdapat ketidaksamaan varians dari residual pada suatu pengamatan ke pengamatan lainnya. Uji heteroskedastisitas dilakukan dengan tujuan untuk menguji apakah terdapat ketidaksamaan variance maupun residual dari suatu pengamatan ke pengamatan lainnya. Uji heteroskedastisitas dilakukan dengan menggunakan uji statistik Breusch-Pagan dengan kriteria pengujian: - Jika p-value > 0,1 , tidak ada indikasi terjadinya heteroskedastisitas (homoskedastisitas) - Jika p-value < 0,1 , terdapat indikasi terjadinya heteroskedastisitas
bptest(model_ols)
##
## studentized Breusch-Pagan test
##
## data: model_ols
## BP = 9.8576, df = 5, p-value = 0.07937
Berdasarkan hasil tes tersebut, dapat disimpulkan bahwa terdapat indikasi terjadinya heteroskedastisitas pada dataset faktor-faktor TBC di Indonesia.
Uji multikolinearitas dilakukan untuk menguji apakah terdapat korelasi antar variabel bebas dalam model regresi. Multikolinearitas berarti adanya hubungan linier yang sempurna antara beberapa atau semua variabel yang menjelaskan model regresi. Pengecekan multikolinieritas dilakukan dengan melihat nilai variance inflation factor (VIF). Kriterianya adalah: - Jika nilai VIF < 10, tidak terjadi multikolinearitas - Jika nilai VIF > 10, terjadi multikolinearitas
vif <- vif(model_ols)
vif
## X1 X2 X3 X4 X5
## 2.651042 1.229748 2.419409 1.516646 1.458254
Berdasarkan hasil tes tersebut, dapat disimpulkan bahwa tidak terjadi multikolinieritas pada semua variabel independen dari dataset.
Uji autokorelasi yang dapat muncul karena adanya observasi yang berurutan sepanjang waktu dan saling berkaitan satu sama lainnya, di mana hal ini muncul karena residual tidak bebas pada satu observasi ke observasi lainnya. Pengujian autokorelasi spasial dilakukan dengan menggunakan uji Moran’s I. Kriteria pengujiannya adalah: - Jika p-value > 0.1, tidak ada indikasi autokorelasi spasial - Jika p-value < 0.1, terdapat indikasi autokorelasi spasial
centroid <- st_centroid(Indo)
## Warning: st_centroid assumes attributes are constant over geometries
CoordK <- st_coordinates(centroid)
nb = knn2nb(knearneigh(CoordK, k = 7))
listw = nb2listw(nb, style = "W")
moran.test(model_ols$residuals, listw)
##
## Moran I test under randomisation
##
## data: model_ols$residuals
## weights: listw
##
## Moran I statistic standard deviate = 1.8902, p-value = 0.02937
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## 0.110858144 -0.030303030 0.005577296
Berdasarkan hasil tes tersebut, dapat disimpulkan bahwa terdapat indikasi adanya autokorelasi spasial pada residual model.
Akaike Information Criterion (AIC) merupakan metode analisis yang digunakan untuk memperoleh model faktor produksi yang terbaik dengan menggunakan estimasi maximum likelihood sebagai perhitungan yang sesuai.
AIC(model_ols)
## [1] -56.83091
Geographically Weighted Regression (GWR) adalah metode populer yang digunakan dalam bidang Ilmu Informasi Geografis yang mengeksplorasi analisis data spasial, dan memodelkan hubungan spasial. Ide dasar di balik GWR adalah untuk mengeksplorasi hubungan antara variabel dependen (Y), dan satu atau beberapa variabel independen (X), yang bervariasi di seluruh bentang alam.
indo_merged <- Indo_sf %>%left_join(Data, by = "id")
a_bisquare = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.bisquare,
adapt = TRUE
)
## Adaptive q: 0.381966 CV score: 0.7535265
## Adaptive q: 0.618034 CV score: 0.3233908
## Adaptive q: 0.763932 CV score: 0.3155837
## Adaptive q: 0.6967614 CV score: 0.2987429
## Adaptive q: 0.6979067 CV score: 0.298681
## Adaptive q: 0.7031919 CV score: 0.2984183
## Adaptive q: 0.7263926 CV score: 0.3026092
## Adaptive q: 0.7120538 CV score: 0.2994324
## Adaptive q: 0.7065768 CV score: 0.2984191
## Adaptive q: 0.7048661 CV score: 0.2983441
## Adaptive q: 0.7049068 CV score: 0.2983424
## Adaptive q: 0.7055447 CV score: 0.2983154
## Adaptive q: 0.705939 CV score: 0.2983108
## Adaptive q: 0.7058983 CV score: 0.298304
## Adaptive q: 0.7057531 CV score: 0.2983067
## Adaptive q: 0.7058428 CV score: 0.298303
## Adaptive q: 0.7058021 CV score: 0.2983046
## Adaptive q: 0.7058428 CV score: 0.298303
modelgwr1 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
adapt = a_bisquare,
gweight = gwr.bisquare,
hatmatrix = TRUE,
se.fit = TRUE
)
f_bisquare = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.bisquare,
adapt = F
)
## Bandwidth: 16.79511 CV score: NA
## Warning in optimize(gwr.cv.f, lower = beta1, upper = beta2, maximum = FALSE, :
## NA/Inf replaced by maximum positive value
## Bandwidth: 27.14792 CV score: 0.3453498
## Bandwidth: 27.14788 CV score: 0.3453498
## Bandwidth: 27.14784 CV score: 0.3453498
## Bandwidth: 23.19345 CV score: 0.3375299
## Bandwidth: 20.7495 CV score: 0.3249059
## Bandwidth: 19.23906 CV score: 0.3072229
## Bandwidth: 18.30555 CV score: 0.2963177
## Bandwidth: 17.72861 CV score: 0.2932911
## Bandwidth: 17.4015 CV score: 0.2930756
## Bandwidth: 17.50013 CV score: 0.2930105
## Bandwidth: 17.50797 CV score: 0.2930121
## Bandwidth: 17.4915 CV score: 0.2930096
## Bandwidth: 17.45713 CV score: 0.2930159
## Bandwidth: 17.4866 CV score: 0.2930095
## Bandwidth: 17.48714 CV score: 0.2930095
## Bandwidth: 17.48721 CV score: 0.2930095
## Bandwidth: 17.48725 CV score: 0.2930095
## Bandwidth: 17.48721 CV score: 0.2930095
modelgwr2 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
bandwidth = f_bisquare,
gweight = gwr.bisquare,
hatmatrix = TRUE,
se.fit = TRUE
)
a_gauss = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.Gauss,
adapt = TRUE
)
## Adaptive q: 0.381966 CV score: 0.3846214
## Adaptive q: 0.618034 CV score: 0.4093971
## Adaptive q: 0.236068 CV score: 0.3353551
## Adaptive q: 0.145898 CV score: 0.323143
## Adaptive q: 0.1119393 CV score: 0.3361402
## Adaptive q: 0.1747612 CV score: 0.3169653
## Adaptive q: 0.1791034 CV score: 0.3166568
## Adaptive q: 0.1851828 CV score: 0.3163962
## Adaptive q: 0.2046192 CV score: 0.3187294
## Adaptive q: 0.1900684 CV score: 0.3166027
## Adaptive q: 0.1849038 CV score: 0.3163948
## Adaptive q: 0.1846961 CV score: 0.3163945
## Adaptive q: 0.1847368 CV score: 0.3163945
## Adaptive q: 0.1847774 CV score: 0.3163946
## Adaptive q: 0.1847368 CV score: 0.3163945
modelgwr3 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
adapt = a_gauss,
gweight = gwr.Gauss,
hatmatrix = TRUE,
se.fit = TRUE
)
f_gauss = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.Gauss
)
## Bandwidth: 16.79511 CV score: 0.3950566
## Bandwidth: 27.14792 CV score: 0.4306578
## Bandwidth: 10.39671 CV score: 0.3270416
## Bandwidth: 6.442291 CV score: 0.274381
## Bandwidth: 3.998323 CV score: 0.3981635
## Bandwidth: 7.952747 CV score: 0.2936786
## Bandwidth: 5.508778 CV score: 0.2739756
## Bandwidth: 5.932542 CV score: 0.2713395
## Bandwidth: 5.958905 CV score: 0.2713682
## Bandwidth: 5.912177 CV score: 0.2713299
## Bandwidth: 5.904558 CV score: 0.2713292
## Bandwidth: 5.90504 CV score: 0.2713292
## Bandwidth: 5.905085 CV score: 0.2713292
## Bandwidth: 5.905126 CV score: 0.2713292
## Bandwidth: 5.905085 CV score: 0.2713292
modelgwr4 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
bandwidth = f_gauss,
gweight = gwr.Gauss,
hatmatrix = TRUE,
se.fit = TRUE
)
a_tricube = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.tricube,
adapt = TRUE
)
## Adaptive q: 0.381966 CV score: 0.9089253
## Adaptive q: 0.618034 CV score: 0.3473555
## Adaptive q: 0.763932 CV score: 0.3230587
## Adaptive q: 0.7053593 CV score: 0.3080984
## Adaptive q: 0.7082156 CV score: 0.3084092
## Adaptive q: 0.686112 CV score: 0.3092222
## Adaptive q: 0.6980075 CV score: 0.3084948
## Adaptive q: 0.7033746 CV score: 0.3082025
## Adaptive q: 0.7051542 CV score: 0.308109
## Adaptive q: 0.7064503 CV score: 0.3081515
## Adaptive q: 0.7055913 CV score: 0.3080863
## Adaptive q: 0.7059194 CV score: 0.3080765
## Adaptive q: 0.7061406 CV score: 0.3081076
## Adaptive q: 0.7057941 CV score: 0.3080759
## Adaptive q: 0.7057534 CV score: 0.308078
## Adaptive q: 0.7058348 CV score: 0.3080738
## Adaptive q: 0.7058755 CV score: 0.3080717
## Adaptive q: 0.7058755 CV score: 0.3080717
modelgwr5 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
adapt = a_tricube,
gweight = gwr.tricube,
hatmatrix = TRUE,
se.fit = TRUE
)
f_tricube = gwr.sel(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
gweight = gwr.tricube
)
## Bandwidth: 16.79511 CV score: NA
## Warning in optimize(gwr.cv.f, lower = beta1, upper = beta2, maximum = FALSE, :
## NA/Inf replaced by maximum positive value
## Bandwidth: 27.14792 CV score: 0.3611692
## Bandwidth: 27.14788 CV score: 0.3611692
## Bandwidth: 27.14784 CV score: 0.3611691
## Bandwidth: 23.19345 CV score: 0.3519103
## Bandwidth: 20.7495 CV score: 0.3309302
## Bandwidth: 19.23906 CV score: 0.3119279
## Bandwidth: 18.30555 CV score: 0.3059693
## Bandwidth: 17.51375 CV score: 0.3063297
## Bandwidth: 17.96708 CV score: 0.3056747
## Bandwidth: 17.98749 CV score: 0.3056711
## Bandwidth: 18.00375 CV score: 0.3056699
## Bandwidth: 18.00955 CV score: 0.3056698
## Bandwidth: 18.00911 CV score: 0.3056698
## Bandwidth: 18.00907 CV score: 0.3056698
## Bandwidth: 18.00903 CV score: 0.3056698
## Bandwidth: 18.00907 CV score: 0.3056698
modelgwr6 = gwr(
Y ~ X1 + X2 + X3 + X4 + X5,
data = indo_merged,
coords = CoordK,
bandwidth = f_tricube,
gweight = gwr.tricube,
hatmatrix = TRUE,
se.fit = TRUE
)
Model yang dipilih adalah model kernel yang memiliki nilai AICc terkecil
aicc_results = data.frame(Bobot = c("Adaptive Bisquare",
"Fixed Bisquare",
"Adaptive Gaussian",
"Fixed Gaussian",
"Adaptive Tricube",
"Fixed Tricube"),
Bandwidth = c( 0.7058428,
17.48721,
0.1847368,
5.905085,
0.7058755,
18.00907),
AICc = c(modelgwr1$results$AICc,
modelgwr2$results$AICc,
modelgwr3$results$AICc,
modelgwr4$results$AICc,
modelgwr5$results$AICc,
modelgwr6$results$AICc))
aicc_results
## Bobot Bandwidth AICc
## 1 Adaptive Bisquare 0.7058428 -32.19715
## 2 Fixed Bisquare 17.4872100 -38.48060
## 3 Adaptive Gaussian 0.1847368 -27.19524
## 4 Fixed Gaussian 5.9050850 -24.63650
## 5 Adaptive Tricube 0.7058755 -35.00996
## 6 Fixed Tricube 18.0090700 -41.88594
Didapatkan model terbaik untuk model GWR adalah model dengan kernel Fixed Tricube karena memiliki nilai AICc terkecil
modelgwr <- modelgwr6
modelgwr
## Call:
## gwr(formula = Y ~ X1 + X2 + X3 + X4 + X5, data = indo_merged,
## coords = CoordK, bandwidth = f_tricube, gweight = gwr.tricube,
## hatmatrix = TRUE, se.fit = TRUE)
## Kernel function: gwr.tricube
## Fixed bandwidth: 18.00907
## Summary of GWR coefficient estimates at data points:
## Min. 1st Qu. Median 3rd Qu. Max.
## X.Intercept. -3.27541774 0.83360587 1.67473840 2.39329726 3.04476954
## X1 -0.00340709 -0.00222697 -0.00104037 0.00081629 0.00416253
## X2 -0.05469217 -0.03768429 -0.02602648 -0.00742725 0.08604438
## X3 -0.00103480 0.00052671 0.00136412 0.00367693 0.00976476
## X4 -0.14399429 -0.04869908 -0.02808657 -0.02232338 -0.01487079
## X5 0.01761787 0.02796828 0.04086955 0.04764940 0.05422914
## Global
## X.Intercept. 0.4249
## X1 -0.0019
## X2 0.0034
## X3 0.0048
## X4 -0.0407
## X5 0.0320
## Number of data points: 34
## Effective number of parameters (residual: 2traceS - traceS'S): 14.51536
## Effective degrees of freedom (residual: 2traceS - traceS'S): 19.48464
## Sigma (residual: 2traceS - traceS'S): 0.07939867
## Effective number of parameters (model: traceS): 12.8125
## Effective degrees of freedom (model: traceS): 21.1875
## Sigma (model: traceS): 0.07614118
## Sigma (ML): 0.0601063
## AICc (GWR p. 61, eq 2.33; p. 96, eq. 4.21): -45.75259
## AIC (GWR p. 96, eq. 4.22): -81.89124
## Residual sum of squares: 0.1228341
## Quasi-global R2: 0.6607786
Karena nilai AIC dari model GWR (fixed tricube) lebih kecil daripada nilai AIC model OLS (-81 < -54), maka model GWR yang dipilih.
residual_gwr = modelgwr$SDF$gwr.e
shapiro.test(residual_gwr)
##
## Shapiro-Wilk normality test
##
## data: residual_gwr
## W = 0.96969, p-value = 0.4531
nb = knn2nb(knearneigh(CoordK, k = 7))
listw = nb2listw(nb, style = "W")
moran.test(residual_gwr, listw)
##
## Moran I test under randomisation
##
## data: residual_gwr
## weights: listw
##
## Moran I statistic standard deviate = 0.62751, p-value = 0.2652
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## 0.015283528 -0.030303030 0.005277521
bptest(residual_gwr ~ modelgwr$SDF$X1 + modelgwr$SDF$X2 + modelgwr$SDF$X3 + modelgwr$SDF$X4 + modelgwr$SDF$X5)
##
## studentized Breusch-Pagan test
##
## data: residual_gwr ~ modelgwr$SDF$X1 + modelgwr$SDF$X2 + modelgwr$SDF$X3 + modelgwr$SDF$X4 + modelgwr$SDF$X5
## BP = 3.9564, df = 5, p-value = 0.5557
Buat terlebih dahulu dataframe yang berisikan hasil uji signifikansi parsial lokal
gwr_results <- data.frame(
id = indo_merged$id,
intercept = modelgwr$SDF$`(Intercept)`,
x1 = modelgwr$SDF$X1,
x2 = modelgwr$SDF$X2,
x3 = modelgwr$SDF$X3,
x4 = modelgwr$SDF$X4,
x5 = modelgwr$SDF$X5,
intercept_se = modelgwr$SDF$`(Intercept)_se`,
x1_se = modelgwr$SDF$X1_se,
x2_se = modelgwr$SDF$X2_se,
x3_se = modelgwr$SDF$X3_se,
x4_se = modelgwr$SDF$X4_se,
x5_se = modelgwr$SDF$X5_se
)
num_params <- length(coef(modelgwr))
gwr_results$t_intercept <- gwr_results$intercept / gwr_results$intercept_se
gwr_results$p_intercept <- 2 * (1 - pt(abs(gwr_results$t_intercept), df = nrow(indo_merged) - num_params))
gwr_results$significant_intercept <- ifelse(gwr_results$p_intercept < 0.1, "Significant", "Not Significant")
gwr_results$t_x1 <- gwr_results$x1 / gwr_results$x1_se
gwr_results$p_x1 <- 2 * (1 - pt(abs(gwr_results$t_x1), df = nrow(indo_merged) - num_params))
gwr_results$significant_x1 <- ifelse(gwr_results$p_x1 < 0.1, "Significant", "Not Significant")
gwr_results$t_x2 <- gwr_results$x2 / gwr_results$x2_se
gwr_results$p_x2 <- 2 * (1 - pt(abs(gwr_results$t_x2), df = nrow(indo_merged) - num_params))
gwr_results$significant_x2 <- ifelse(gwr_results$p_x2 < 0.1, "Significant", "Not Significant")
gwr_results$t_x3 <- gwr_results$x2 / gwr_results$x3_se
gwr_results$p_x3 <- 2 * (1 - pt(abs(gwr_results$t_x3), df = nrow(indo_merged) - num_params))
gwr_results$significant_x3 <- ifelse(gwr_results$p_x3 < 0.1, "Significant", "Not Significant")
gwr_results$t_x4 <- gwr_results$x2 / gwr_results$x4_se
gwr_results$p_x4 <- 2 * (1 - pt(abs(gwr_results$t_x4), df = nrow(indo_merged) - num_params))
gwr_results$significant_x4 <- ifelse(gwr_results$p_x4 < 0.1, "Significant", "Not Significant")
gwr_results$t_x5 <- gwr_results$x2 / gwr_results$x5_se
gwr_results$p_x5 <- 2 * (1 - pt(abs(gwr_results$t_x5), df = nrow(indo_merged) - num_params))
gwr_results$significant_x5 <- ifelse(gwr_results$p_x5 < 0.1, "Significant", "Not Significant")
gwr_results
## id intercept x1 x2 x3 x4
## 1 1 3.04476954 2.074801e-03 -0.054692169 9.764758e-03 -0.04622169
## 2 2 1.81694701 -2.256259e-03 -0.027727643 -2.160992e-04 -0.01496338
## 3 3 2.44178469 -2.414307e-03 -0.038384947 -2.659116e-04 -0.02797437
## 4 4 2.41408944 -2.864948e-03 -0.038995139 5.059939e-04 -0.02157986
## 5 5 1.33646241 -7.414869e-04 -0.022773305 3.802004e-03 -0.01899066
## 6 6 0.60724137 2.044832e-03 -0.001157843 4.558955e-03 -0.06242383
## 7 7 2.54916650 -3.121855e-03 -0.040704081 -1.230742e-05 -0.02288239
## 8 8 1.47438281 -8.496039e-04 -0.024325310 3.170445e-03 -0.02264188
## 9 9 2.62222172 -3.407090e-03 -0.041868770 -2.505844e-04 -0.02130490
## 10 10 2.53202626 -3.258876e-03 -0.040283301 -5.369507e-04 -0.01844732
## 11 11 2.18909685 -2.706480e-03 -0.034747383 -8.612779e-05 -0.01487079
## 12 12 2.69327673 -2.745963e-03 -0.041624033 5.888612e-04 -0.02847419
## 13 13 2.07034569 -1.677669e-03 -0.031955504 9.848157e-04 -0.02221722
## 14 14 2.33092072 -2.139089e-03 -0.036411777 1.369067e-03 -0.02322743
## 15 15 2.15243749 -1.231129e-03 -0.032429603 9.785948e-04 -0.02819877
## 16 16 2.51145061 -1.342081e-03 -0.038108462 7.289345e-04 -0.03102959
## 17 17 2.08542826 -1.374029e-03 -0.032931690 6.724307e-04 -0.02949615
## 18 18 2.14406621 -2.084894e-03 -0.034806972 9.351173e-04 -0.02290303
## 19 19 -1.95644107 1.866615e-03 0.062457803 1.884758e-03 -0.13617522
## 20 20 -0.96751358 2.918116e-03 0.041310578 5.903456e-03 -0.14399429
## 21 21 1.53252980 -1.802641e-03 -0.020612672 -1.034799e-03 -0.02361325
## 22 22 -0.22489119 3.335781e-04 0.018399725 1.576003e-03 -0.06314198
## 23 23 -3.27541774 4.162530e-03 0.086044376 4.361429e-03 -0.14264670
## 24 24 -2.29569731 1.645232e-03 0.068788653 8.993351e-04 -0.12856209
## 25 25 1.20070490 -5.285354e-04 -0.019367945 4.947350e-03 -0.02533680
## 26 26 1.39110769 -2.856889e-04 -0.017722628 1.359168e-03 -0.03505549
## 27 27 1.10494767 -4.416722e-05 -0.011700513 1.590557e-03 -0.03941684
## 28 28 0.82269223 1.069011e-03 -0.006002828 3.301696e-03 -0.04952488
## 29 29 0.35326276 9.771971e-04 0.004552208 3.299897e-03 -0.05674733
## 30 30 0.07481988 2.675048e-03 0.013091535 5.949667e-03 -0.09350313
## 31 31 0.86634677 -2.085046e-04 -0.014538022 6.497922e-03 -0.02200522
## 32 32 1.90316843 -1.503035e-03 -0.031000329 1.431033e-03 -0.02357371
## 33 33 0.97084206 2.925852e-04 -0.015531525 8.612121e-03 -0.03275466
## 34 34 2.49139087 -3.309788e-03 -0.039725895 -6.942603e-04 -0.01680127
## x5 intercept_se x1_se x2_se x3_se x4_se
## 1 0.02675493 5.144307 0.004646366 0.09641002 0.009146679 0.04595923
## 2 0.04002002 1.428446 0.002324088 0.02527292 0.006397122 0.02367927
## 3 0.04323828 1.681828 0.003474262 0.02805974 0.006420601 0.02426162
## 4 0.04949561 1.839999 0.003403898 0.03129522 0.006787773 0.02501517
## 5 0.05303638 2.239608 0.003715450 0.03801578 0.007024364 0.02764425
## 6 0.02216369 1.360304 0.002736658 0.02641415 0.005396445 0.03388854
## 7 0.04765430 1.720958 0.003190689 0.02939490 0.006708964 0.02448466
## 8 0.05068830 2.102066 0.003713746 0.03542926 0.006977792 0.02706482
## 9 0.04763472 1.649929 0.002890042 0.02854214 0.006721629 0.02429807
## 10 0.04424079 1.449003 0.002323570 0.02559265 0.006434812 0.02360233
## 11 0.04219675 1.405423 0.002248863 0.02490022 0.006362820 0.02357492
## 12 0.03316389 1.421239 0.002556781 0.02469212 0.005965813 0.02312041
## 13 0.03278097 1.385241 0.002218931 0.02462865 0.006015647 0.02292221
## 14 0.03345339 1.371586 0.002167147 0.02429138 0.006064421 0.02311244
## 15 0.02473312 1.420604 0.002306020 0.02524404 0.006173263 0.02358422
## 16 0.01761787 1.498822 0.002457819 0.02645322 0.006687188 0.02531152
## 17 0.04200893 1.769882 0.003656309 0.02937949 0.006655025 0.02548086
## 18 0.04915149 1.897875 0.003573220 0.03198405 0.006692349 0.02533550
## 19 0.04171909 1.442633 0.003188882 0.02791698 0.007343259 0.05736700
## 20 0.04761579 1.364377 0.003077478 0.02616158 0.006006149 0.05540966
## 21 0.03526649 1.443409 0.002380760 0.02577863 0.006118626 0.02356288
## 22 0.02370633 1.347179 0.002610693 0.02568968 0.005451278 0.03023731
## 23 0.03543611 3.708547 0.008547123 0.06717981 0.014591745 0.12230875
## 24 0.03639535 1.723879 0.003723004 0.03270385 0.009117425 0.06550311
## 25 0.05078233 2.295081 0.003814959 0.03908151 0.007423604 0.02872342
## 26 0.02529151 1.283515 0.002407112 0.02354459 0.005267774 0.02379234
## 27 0.02529150 1.260547 0.002436724 0.02332549 0.005158019 0.02447415
## 28 0.02136407 1.290909 0.002569591 0.02444087 0.005220247 0.02799948
## 29 0.02303066 1.264649 0.002567616 0.02393966 0.005169003 0.02818128
## 30 0.03160831 1.377570 0.002888362 0.02691155 0.005572904 0.04267887
## 31 0.05422914 2.665591 0.003859030 0.04605172 0.007750240 0.03070853
## 32 0.04896590 1.927098 0.003612826 0.03236568 0.006686718 0.02568949
## 33 0.04999381 3.882084 0.004116450 0.07041615 0.008402127 0.03651117
## 34 0.04511776 1.458040 0.002313273 0.02581009 0.006467522 0.02370734
## x5_se t_intercept p_intercept significant_intercept t_x1
## 1 0.03256918 0.59187162 0.55785204 Not Significant 0.44654272
## 2 0.01305181 1.27197450 0.21201367 Not Significant -0.97081444
## 3 0.01310603 1.45186323 0.15570561 Not Significant -0.69491239
## 4 0.01351317 1.31200600 0.19830773 Not Significant -0.84166670
## 5 0.01522355 0.59673945 0.55463439 Not Significant -0.19956851
## 6 0.01830429 0.44640133 0.65813768 Not Significant 0.74720043
## 7 0.01331942 1.48124854 0.14774922 Not Significant -0.97842669
## 8 0.01538346 0.70139712 0.48782861 Not Significant -0.22877278
## 9 0.01330698 1.58929376 0.12125109 Not Significant -1.17890644
## 10 0.01309923 1.74742709 0.08959102 Significant -1.40252959
## 11 0.01310850 1.55760746 0.12858698 Not Significant -1.20348824
## 12 0.01256706 1.89501979 0.06661896 Significant -1.07399206
## 13 0.01253764 1.49457463 0.14424960 Not Significant -0.75607098
## 14 0.01263818 1.69943451 0.09837054 Significant -0.98705307
## 15 0.01293346 1.51515646 0.13897527 Not Significant -0.53387630
## 16 0.01405015 1.67561629 0.10298759 Not Significant -0.54604541
## 17 0.01449111 1.17828643 0.24686363 Not Significant -0.37579672
## 18 0.01365824 1.12971960 0.26650178 Not Significant -0.58347769
## 19 0.03027563 -1.35616006 0.18398687 Not Significant 0.58535072
## 20 0.02900535 -0.70912462 0.48308174 Not Significant 0.94821656
## 21 0.01288147 1.06174298 0.29583620 Not Significant -0.75717013
## 22 0.01618176 -0.16693492 0.86841014 Not Significant 0.12777378
## 23 0.05483181 -0.88320786 0.38332647 Not Significant 0.48700946
## 24 0.03415686 -1.33170472 0.19181669 Not Significant 0.44190975
## 25 0.01724259 0.52316446 0.60425296 Not Significant -0.13854287
## 26 0.01342192 1.08382632 0.28606801 Not Significant -0.11868537
## 27 0.01383433 0.87656230 0.38687591 Not Significant -0.01812566
## 28 0.01581194 0.63729681 0.52819997 Not Significant 0.41602382
## 29 0.01580340 0.27933659 0.78167877 Not Significant 0.38058533
## 30 0.02226909 0.05431293 0.95700374 Not Significant 0.92614707
## 31 0.01783057 0.32501112 0.74716416 Not Significant -0.05403031
## 32 0.01407521 0.98758283 0.33033337 Not Significant -0.41602752
## 33 0.02200988 0.25008270 0.80402833 Not Significant 0.07107707
## 34 0.01317012 1.70872561 0.09661692 Significant -1.43078093
## p_x1 significant_x1 t_x2 p_x2 significant_x2 t_x3
## 1 0.6580366 Not Significant -0.56728718 0.57424589 Not Significant -5.9794564
## 2 0.3384968 Not Significant -1.09712851 0.28029502 Not Significant -4.3343936
## 3 0.4918323 Not Significant -1.36797213 0.18029464 Not Significant -5.9784043
## 4 0.4058558 Not Significant -1.24604125 0.22126702 Not Significant -5.7449090
## 5 0.8430068 Not Significant -0.59904876 0.55311126 Not Significant -3.2420450
## 6 0.4600791 Not Significant -0.04383418 0.96529301 Not Significant -0.2145565
## 7 0.3347743 Not Significant -1.38473299 0.17515451 Not Significant -6.0671189
## 8 0.8204160 Not Significant -0.68658820 0.49699850 Not Significant -3.4861044
## 9 0.2466200 Not Significant -1.46691089 0.15158983 Not Significant -6.2289620
## 10 0.1698225 Not Significant -1.57401835 0.12474379 Not Significant -6.2602146
## 11 0.2371003 Not Significant -1.39546511 0.17192370 Not Significant -5.4610034
## 12 0.2903896 Not Significant -1.68572140 0.10100722 Not Significant -6.9770937
## 13 0.4548135 Not Significant -1.29749292 0.20319642 Not Significant -5.3120645
## 14 0.3305892 Not Significant -1.49895883 0.14311286 Not Significant -6.0041640
## 15 0.5969006 Not Significant -1.28464417 0.20760051 Not Significant -5.2532354
## 16 0.5886001 Not Significant -1.44059821 0.15884438 Not Significant -5.6987280
## 17 0.7094026 Not Significant -1.12090766 0.27018218 Not Significant -4.9483948
## 18 0.5634226 Not Significant -1.08826043 0.28413440 Not Significant -5.2010099
## 19 0.5621772 Not Significant 2.23726926 0.03193187 Significant 8.5054606
## 20 0.3497106 Not Significant 1.57905527 0.12358316 Not Significant 6.8780469
## 21 0.4541635 Not Significant -0.79960300 0.42949210 Not Significant -3.3688400
## 22 0.8990808 Not Significant 0.71623021 0.47874012 Not Significant 3.3753049
## 23 0.6293767 Not Significant 1.28080700 0.20892968 Not Significant 5.8967847
## 24 0.6613526 Not Significant 2.10338087 0.04290753 Significant 7.5447457
## 25 0.8906287 Not Significant -0.49557823 0.62338017 Not Significant -2.6089681
## 26 0.9062231 Not Significant -0.75272619 0.45679483 Not Significant -3.3643487
## 27 0.9856446 Not Significant -0.50161917 0.61916823 Not Significant -2.2684122
## 28 0.6800069 Not Significant -0.24560612 0.80746371 Not Significant -1.1499126
## 29 0.7058785 Not Significant 0.19015343 0.85031969 Not Significant 0.8806743
## 30 0.3608972 Not Significant 0.48646522 0.62975846 Not Significant 2.3491406
## 31 0.9572272 Not Significant -0.31568904 0.75416827 Not Significant -1.8758159
## 32 0.6800043 Not Significant -0.95781478 0.34491788 Not Significant -4.6361051
## 33 0.9437529 Not Significant -0.22056766 0.82674824 Not Significant -1.8485230
## 34 0.1616204 Not Significant -1.53916160 0.13302087 Not Significant -6.1423670
## p_x3 significant_x3 t_x4 p_x4 significant_x4
## 1 9.157441e-07 Significant -1.1900149 0.24228393 Not Significant
## 2 1.229782e-04 Significant -1.1709668 0.24975371 Not Significant
## 3 9.186277e-07 Significant -1.5821263 0.12287985 Not Significant
## 4 1.847234e-06 Significant -1.5588597 0.12829038 Not Significant
## 5 2.658744e-03 Significant -0.8237990 0.41579530 Not Significant
## 6 8.313948e-01 Not Significant -0.0341662 0.97294441 Not Significant
## 7 7.048134e-07 Significant -1.6624322 0.10561976 Not Significant
## 8 1.372327e-03 Significant -0.8987797 0.37509137 Not Significant
## 9 4.350549e-07 Significant -1.7231318 0.09394955 Significant
## 10 3.964132e-07 Significant -1.7067508 0.09698745 Significant
## 11 4.324634e-06 Significant -1.4739129 0.14970440 Not Significant
## 12 4.778692e-08 Significant -1.8003153 0.08068874 Significant
## 13 6.756653e-06 Significant -1.3940845 0.17233669 Not Significant
## 14 8.505792e-07 Significant -1.5754190 0.12442016 Not Significant
## 15 8.058033e-06 Significant -1.3750549 0.17810843 Not Significant
## 16 2.121247e-06 Significant -1.5055775 0.14141038 Not Significant
## 17 2.003580e-05 Significant -1.2924087 0.20493053 Not Significant
## 18 9.421240e-06 Significant -1.3738421 0.17848131 Not Significant
## 19 6.198095e-10 Significant 1.0887411 0.28392537 Not Significant
## 20 6.386016e-08 Significant 0.7455482 0.46106379 Not Significant
## 21 1.889900e-03 Significant -0.8747944 0.38782369 Not Significant
## 22 1.857045e-03 Significant 0.6085107 0.54689297 Not Significant
## 23 1.172497e-06 Significant 0.7035014 0.48653338 Not Significant
## 24 9.234826e-09 Significant 1.0501585 0.30105265 Not Significant
## 25 1.340127e-02 Significant -0.6742911 0.50468541 Not Significant
## 26 1.913052e-03 Significant -0.7448880 0.46145765 Not Significant
## 27 2.977036e-02 Significant -0.4780764 0.63565548 Not Significant
## 28 2.582042e-01 Not Significant -0.2143907 0.83152305 Not Significant
## 29 3.846772e-01 Not Significant 0.1615331 0.87262965 Not Significant
## 30 2.476633e-02 Significant 0.3067451 0.76090816 Not Significant
## 31 6.928821e-02 Significant -0.4734196 0.63893952 Not Significant
## 32 5.065047e-05 Significant -1.2067319 0.23586463 Not Significant
## 33 7.323928e-02 Significant -0.4253910 0.67323219 Not Significant
## 34 5.631023e-07 Significant -1.6756793 0.10297514 Not Significant
## t_x5 p_x5 significant_x5
## 1 -1.67926130 0.102269569 Not Significant
## 2 -2.12442822 0.040986698 Significant
## 3 -2.92880126 0.006035800 Significant
## 4 -2.88571442 0.006737101 Significant
## 5 -1.49592631 0.143898367 Not Significant
## 6 -0.06325526 0.949933669 Not Significant
## 7 -3.05599421 0.004345169 Significant
## 8 -1.58126417 0.123076957 Not Significant
## 9 -3.14637688 0.003427841 Significant
## 10 -3.07524138 0.004132202 Significant
## 11 -2.65075282 0.012105211 Significant
## 12 -3.31215265 0.002202846 Significant
## 13 -2.54876527 0.015494748 Significant
## 14 -2.88109337 0.006816698 Significant
## 15 -2.50741941 0.017102291 Significant
## 16 -2.71231778 0.010405767 Significant
## 17 -2.27254408 0.029493672 Significant
## 18 -2.54842229 0.015507492 Significant
## 19 2.06297270 0.046819052 Significant
## 20 1.42423998 0.163491060 Not Significant
## 21 -1.60018058 0.118810921 Not Significant
## 22 1.13706581 0.263461205 Not Significant
## 23 1.56924187 0.125852601 Not Significant
## 24 2.01390422 0.051987442 Significant
## 25 -1.12326199 0.269195321 Not Significant
## 26 -1.32042386 0.195513657 Not Significant
## 27 -0.84575910 0.403600260 Not Significant
## 28 -0.37963907 0.706574371 Not Significant
## 29 0.28805249 0.775055257 Not Significant
## 30 0.58787930 0.560498029 Not Significant
## 31 -0.81534244 0.420551466 Not Significant
## 32 -2.20247700 0.034511928 Significant
## 33 -0.70566156 0.485205788 Not Significant
## 34 -3.01636489 0.004816801 Significant
Berdasarkan hasil tersebut, dapat disimpulkan bahwa semua koefisien dari masing-masing provinsi pada variabel X1 tidak ada yang signifikan. Artinya, variabel X1 (Persentase dari populasi rumah tangga yang memiliki akses terhadap fasilitas kesehatan dasar) tidak memberikan kontribusi yang kuat untuk menjelaskan variasi pada persentase kasus TBC di semua provinsi di Indonesia. Selain itu, terdapat tiga provinsi yang sama sekali tidak menunjukkan signifikansi terhadap semua variabel faktor kasus TBC, yakni Gorontalo, Sulawesi Tengah, dan Sulawesi Tenggara.
Variabel X3 memiliki jumlah koefisien yang signifikan terbanyak, berada pada 31 dari 34 provinsi di Indonesia. Hal ini memberi arti bahwa variabel X3 (Persentase penduduk miskin) memberikan pengaruh yang kuat dalam menjelaskan variasi pada persentase kasus TBC di hampir semua wilayah di Indonesia.
Gabungkan dataframe gwr_results dengan dataframe indo_merged dengan menggunakan syntax berikut
indo_combined <- indo_merged %>% left_join(gwr_results, by = "id")
ggplot(data = indo_combined) +
geom_sf(aes(fill = significant_x1)) +
scale_fill_manual(values = c("Significant" = "green", "Not Significant" = "red")) +
labs(title = "Signifikansi x1 pada Model GWR") +
theme_minimal()
ggplot(data = indo_combined) +
geom_sf(aes(fill = significant_x2)) +
scale_fill_manual(values = c("Significant" = "green", "Not Significant" = "red")) +
labs(title = "Signifikansi x2 pada Model GWR") +
theme_minimal()
ggplot(data = indo_combined) +
geom_sf(aes(fill = significant_x3)) +
scale_fill_manual(values = c("Significant" = "green", "Not Significant" = "red")) +
labs(title = "Signifikansi x3 pada Model GWR") +
theme_minimal()
ggplot(data = indo_combined) +
geom_sf(aes(fill = significant_x4)) +
scale_fill_manual(values = c("Significant" = "green", "Not Significant" = "red")) +
labs(title = "Signifikansi x4 pada Model GWR") +
theme_minimal()
ggplot(data = indo_combined) +
geom_sf(aes(fill = significant_x5)) +
scale_fill_manual(values = c("Significant" = "green", "Not Significant" = "red")) +
labs(title = "Signifikansi x5 pada Model GWR") +
theme_minimal()
koeflokal <- as.data.frame(modelgwr$SDF)
indokoef_sf <- st_as_sf(indo_merged, coords = CoordK, crs = 4326)
Mapkoef <- cbind(indokoef_sf, koeflokal)
ggplot(Mapkoef) +
geom_sf(aes(fill = X1.1), color = NA) +
scale_fill_gradient(low = "yellow", high = "red",
limits = c(min(Mapkoef$X1.1), max(Mapkoef$X1.1)),
name = "Koefisien Lokal") +
labs(title = "Peta Koefisien Lokal untuk variabel Persentase dari populasi rumah tangga yang memiliki akses terhadap fasilitas kesehatan dasar (x1)") +
theme_minimal() +
coord_sf()
ggplot(Mapkoef) +
geom_sf(aes(fill = X2.1), color = NA) +
scale_fill_gradient(low = "yellow", high = "red",
limits = c(min(Mapkoef$X2.1), max(Mapkoef$X2.1)),
name = "Koefisien Lokal") +
labs(title = "Peta Koefisien Lokal untuk variabel Persentase penduduk dengan jenis kelamin laki-laki (x2)") +
theme_minimal() +
coord_sf()
ggplot(Mapkoef) +
geom_sf(aes(fill = X3.1), color = NA) +
scale_fill_gradient(low = "yellow", high = "red",
limits = c(min(Mapkoef$X3.1), max(Mapkoef$X3.1)),
name = "Koefisien Lokal") +
labs(title = "Peta Koefisien Lokal untuk variabel Persentase penduduk miskin (x3)") +
theme_minimal() +
coord_sf()
ggplot(Mapkoef) +
geom_sf(aes(fill = X4.1), color = NA) +
scale_fill_gradient(low = "yellow", high = "red",
limits = c(min(Mapkoef$X4.1), max(Mapkoef$X4.1)),
name = "Koefisien Lokal") +
labs(title = "Peta Koefisien Lokal untuk variabel Rata-rata lama sekolah (tahun) (x4)") +
theme_minimal() +
coord_sf()
ggplot(Mapkoef) +
geom_sf(aes(fill = X5.1), color = NA) +
scale_fill_gradient(low = "yellow", high = "red",
limits = c(min(Mapkoef$X5.1), max(Mapkoef$X5.1)),
name = "Koefisien Lokal") +
labs(title = "Peta Koefisien Lokal untuk variabel Persentase tingkat pengangguran terbuka (x5)") +
theme_minimal() +
coord_sf()
Berdasarkan penelitian yang telah dilakukan, didapatkan model dari regresi global dalam bentuk:
Y=0.424928-0.001931X_1+0.003435X_2+0.004816X_3-0.040727X_4+0.031973X_5
Artinya, setiap penurunan pada Persentase dari populasi rumah tangga yang memiliki akses terhadap fasilitas kesehatan dasar dan Rata-rata lama sekolah, terjadi kenaikan pada persentase kasus TBC. Selain itu, penambahan persentase kasus TBC akan bertambah jika Persentase penduduk dengan jenis kelamin laki-laki, Persentase penduduk miskin, dan Persentase tingkat pengangguran terbuka meningkat. Hal-hal tersebut sejalan dengan penelitian-penelitian sebelumnya yang mengungkapkan pengaruh sosio-ekonomi terhadap kasus TBC.
Pemilihan model terbaik dilakukan dengan menggunakan nilai AIC terkecil. Karena nilai AIC pada model GWR dengan kernel fixed tricube lebih kecil daripada nilai AIC yang dihasilkan oleh model OLS, Pertimbangan menggunakan model GWR dengan kernel fixed tricube dilakukan. Setelah melakukan pengujian parsial pada model GWR, didapatkan bahwa variabel X1 (Persentase dari populasi rumah tangga yang memiliki akses terhadap fasilitas kesehatan dasar) tidak memberikan kontribusi yang kuat untuk menjelaskan variasi pada persentase kasus TBC di semua provinsi di Indonesia. Hal ini sebelumnya dibuktikan dengan variasi dari estimasi parameter model GWR di variabel tersebut yang kecil. Selain itu, tiga provinsi menunjukkan koefisien yang tidak signifikansi terhadap semua variabel faktor kasus TBC, yakni Gorontalo, Sulawesi Tengah, dan Sulawesi Tenggara. Sebaliknya, variabel X3 (Persentase penduduk miskin) memberikan pengaruh yang kuat dalam menjelaskan variasi pada persentase kasus TBC di hampir semua wilayah di Indonesia. Hal tersebut juga dibuktikan dengan variasi dari estimasi parameter model GWR di variabel tersebut yang besar. Peneliti menyarankan agar mencari faktor-faktor lainnya yang terbukti berhubungan terhadap persentase kasus TBC dan memiliki efek variasi yang besar pada antar wilayah.