Anda di halaman 1dari 11

P7 Pemodelan Spasial

Priatmadani

2023-03-26

PACKAGES
#PACKAGE YANG DIPERLUKAN UNTUK SPASIAL
library(tmap)

library(raster)

library(spatialreg)

library(rgdal)

#PACKAGE TAMBAHAN UNTUK ASUMSI DAN MEMBACA EXCEL


library(readxl)
library(lmtest)

library(tseries)

library(car)

library(sf)

MEMUAT FILE SHP


shp.file <- file.choose()
jatim.shp <- shapefile(shp.file)
tm_shape(jatim.shp)+tm_polygons()
MEMBANGUN MATRIKS PEMBOBOT SPASIAL
#Membuat daftar tetangga dengan pendekatan "queen"
queen.nb <- poly2nb(jatim.shp)
queen.jatim <- nb2listw(queen.nb,style = "W",zero.policy = TRUE)

#Simpan matriks pembobot


bobot.queen <- listw2mat(queen.jatim)
#write.csv(bobot.queen,"Matriks Bobot Queen Jatim.csv")

MEMANGGIL MATRIKS PEMBOBOT TERBARU


#set wd
setwd("E:/Folder Kuliah/Matkul Semester 6/Analisis Data Spasial/Praktikum/P7_
Pemodelan Spasial_R version")

#Memanggil bobot queen yang dimodifikasi


bobot <- readxl::read_excel("Pembobot Queen_Baru.xlsx")
bobot_modif=as.matrix(bobot)
modif_bobot=mat2listw(bobot_modif,style="W",)

Pesan Error:

Terdapat pesan error seperti contoh di atas sebelum dilakukan perbaikan pada matriks pe
nimbang spasial. Pesan tersebut memiliki arti bahwa matriks pembobot (“bobot_modif”) ha
rus berupa matriks persegi.

UJI AUTOKORELASI SPASIAL: MORAN’S I


#MORAN TEST: PEMBOBOT QUEEN
moran.test(jatim.shp$AKI,modif_bobot,randomisation=FALSE, zero.policy = TRUE)

##
## Moran I test under normality
##
## data: jatim.shp$AKI
## weights: modif_bobot
##
## Moran I statistic standard deviate = -0.3734, p-value = 0.6456
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## -0.07447108 -0.02702703 0.01614416

moran.plot(jatim.shp$AKI,modif_bobot)
𝐻0 : 𝐼 < 𝐸(𝐼) (𝑡𝑖𝑑𝑎𝑘 𝑎𝑑𝑎 𝑎𝑢𝑡𝑜𝑘𝑜𝑟𝑒𝑙𝑎𝑠𝑖 𝑠𝑝𝑎𝑠𝑖𝑎𝑙)
𝐻𝑎 : 𝐼 > 𝐸(𝐼) (𝑡𝑒𝑟𝑑𝑎𝑝𝑎𝑡 𝑎𝑢𝑡𝑜𝑘𝑜𝑟𝑒𝑙𝑎𝑠𝑖 𝑠𝑝𝑎𝑠𝑖𝑎𝑙)
Berdasarkan uji Moran I, didapatkan keputusan gagal tolak hipotesis nul. Dengan demikian,
pada tingkat kepercayaan 95 persen dapat ditunjukkan bahwa tidak terdapat autokorelasi
spasial pada variabel AKI. Pada tahap ini jika hipotesis nol tidak ditolak maka sebenarnya
tidak dapat dilanjutkan pada tahapan pemodelan karena tidak terdapat bukti untuk
menyatakan adanya autokorelasi spasial.

IDENTIFIKASI MODEL SPASIAL


##A. REGRESI OLS
reg1 <- lm(jatim.shp$AKI~jatim.shp$AHH+jatim.shp$PERSALINAN+jatim.shp$FE13+ja
tim.shp$RLS)
summary(reg1)

##
## Call:
## lm(formula = jatim.shp$AKI ~ jatim.shp$AHH + jatim.shp$PERSALINAN +
## jatim.shp$FE13 + jatim.shp$RLS)
##
## Residuals:
## Min 1Q Median 3Q Max
## -46.260 -24.421 -8.053 12.755 122.707
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1423.364 349.532 4.072 0.000274 ***
## jatim.shp$AHH -11.178 4.392 -2.545 0.015790 *
## jatim.shp$PERSALINAN -5.130 2.202 -2.330 0.026082 *
## jatim.shp$FE13 -1.060 1.549 -0.684 0.498496
## jatim.shp$RLS 7.207 5.693 1.266 0.214387
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 37.15 on 33 degrees of freedom
## Multiple R-squared: 0.329, Adjusted R-squared: 0.2476
## F-statistic: 4.045 on 4 and 33 DF, p-value: 0.008897

#UJI ASUMSI MODEL


#NORMALITAS
res <- reg1$residuals
jarque.bera.test(res)

##
## Jarque Bera Test
##
## data: res
## X-squared = 19.032, df = 2, p-value = 7.365e-05

#HOMOSKEDASTISITAS
bptest(reg1)

##
## studentized Breusch-Pagan test
##
## data: reg1
## BP = 4.955, df = 4, p-value = 0.2919

#NON-MULTIKOLINEARITAS
vif(reg1)

## jatim.shp$AHH jatim.shp$PERSALINAN jatim.shp$FE13


## 2.195182 1.255353 1.494786
## jatim.shp$RLS
## 2.523349

#IDENTIFIKASI MODEL SPASIAL


uji_lm<-lm.LMtests(reg1,modif_bobot,test = "all",zero.policy = T)
summary(uji_lm)

## Lagrange multiplier diagnostics for spatial dependence


## data:
## model: lm(formula = jatim.shp$AKI ~ jatim.shp$AHH +
## jatim.shp$PERSALINAN + jatim.shp$FE13 + jatim.shp$RLS)
## weights: modif_bobot
##
## statistic parameter p.value
## LMerr 4.8330 1 0.02792 *
## LMlag 1.3216 1 0.25031
## RLMerr 6.2472 1 0.01244 *
## RLMlag 2.7357 1 0.09813 .
## SARMA 7.5687 2 0.02272 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Melalu uji dependensi di atas, didapatnya hasil bahwa statistik LM-error bernilai signifikan
pada tingkat signifikansi 5 persen.
ESTIMASI PARAMETER MODEL: SAR, SEM, dan SARMA
#SAR
sar <- lagsarlm(jatim.shp$AKI~jatim.shp$AHH+jatim.shp$PERSALINAN+jatim.shp$FE
13+jatim.shp$RLS,jatim.shp,modif_bobot)
AIC_sar <- AIC(sar)

#SEM
sem <- errorsarlm(jatim.shp$AKI~jatim.shp$AHH+jatim.shp$PERSALINAN+jatim.shp$
FE13+jatim.shp$RLS,jatim.shp,modif_bobot)
AIC_sem <- AIC(sem)

#SARMA
sarma <-sacsarlm(jatim.shp$AKI~jatim.shp$AHH+jatim.shp$PERSALINAN+jatim.shp$F
E13+jatim.shp$RLS,jatim.shp,modif_bobot)
AIC_sarma <- AIC(sarma)

#MEMBANDINGKAN MODEL
AIC.table <- data.frame(Model=c("SAR","SEM","SARMA"),AIC=c(round(AIC_sar,3),r
ound(AIC_sem,3),round(AIC_sarma,3)))
AIC.table

## Model AIC
## 1 SAR 389.228
## 2 SEM 379.727
## 3 SARMA 380.397

Berdasarkan tabel di atas, Spatial Error Model (SEM) merupakan model terbaik karena
memiliki skor AIC yang lebih rendah dibandingkan dengan model lainnya, yaitu sebesar
379,727.

ESTIMASI PARAMETER MODEL TERBAIK: SEM


#Hasil estimasi model SEM
summary(sem)

##
## Call:
## errorsarlm(formula = jatim.shp$AKI ~ jatim.shp$AHH + jatim.shp$PERSALINAN
+
## jatim.shp$FE13 + jatim.shp$RLS, data = jatim.shp, listw = modif_bobot)
##
## Residuals:
## Min 1Q Median 3Q Max
## -43.9282 -19.0980 -3.7339 17.8265 87.2656
##
## Type: error
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1661.0564 218.9027 7.5881 3.242e-14
## jatim.shp$AHH -11.8774 2.3827 -4.9849 6.199e-07
## jatim.shp$PERSALINAN -5.5701 1.3711 -4.0626 4.854e-05
## jatim.shp$FE13 -2.8076 1.0753 -2.6110 0.009027
## jatim.shp$RLS 9.0319 3.8446 2.3492 0.018813
##
## Lambda: -0.8194, LR test value: 11.495, p-value: 0.00069799
## Asymptotic standard error: 0.12368
## z-value: -6.6249, p-value: 3.4744e-11
## Wald statistic: 43.89, p-value: 3.4744e-11
##
## Log likelihood: -182.8636 for error model
## ML residual variance (sigma squared): 726.63, (sigma: 26.956)
## Number of observations: 38
## Number of parameters estimated: 7
## AIC: 379.73, (AIC for lm: 389.22)

#HOMOSKEDASTISITAS
bptest.Sarlm(sem)

##
## studentized Breusch-Pagan test
##
## data:
## BP = 8.5182, df = 4, p-value = 0.07434

Model SEM:

𝐴𝐾𝐼𝑖 = 1661,06 − 11,88𝐴𝐻𝐻𝑖 − 5,57𝑃𝑒𝑟𝑠𝑎𝑙𝑖𝑛𝑎𝑛𝑖 − 2,81𝐹𝐸13𝑖 + 9,03𝑅𝐿𝑆𝑖 + 𝑢𝑖


𝑛
𝑢𝑖 = −0,82 ∑ 𝑤𝑖𝑗 𝜀𝑗
𝑗=1,𝑖≠𝑗

Variabel penimbang spasial atau LAMBDA berpengaruh signifikan dalam model. Ini berarti
bahwa error spasial tetangganya memiliki pengaruh terhadap angka kematian ibu di wilayah
tertentu. Error spatial merupakan variabel yang tidak tercakup dalam model ini.
Kemudian, statistic Breush-Pagan bernilai 8,52 dengan p-value sebesar 0,07 (p-value>0,05)
menunjukkan bahwa tidak ada pengaruh heterogenitas error dalam model.
Pengaruh Rata Lama Sekolah terhadap Persentase Penduduk
Miskin Di Pulau Jawa, 2021: Pendekatan Regresi Spasial Area
Priatmadani

2023-03-27

PACKAGES
#PACKAGE YANG DIPERLUKAN UNTUK SPASIAL
library(tmap)

library(raster)

library(spdep)

library(spatialreg)

library(rgdal)

#PACKAGE TAMBAHAN UNTUK ASUMSI DAN MEMBACA EXCEL


library(readxl)
library(lmtest)

library(tseries)

library(car)

library(sf)

INPUT DATA
#Jawa Shapefile
shp.jawa <- file.choose()
jawa.shp <- shapefile(shp.jawa)
tm_shape(jawa.shp)+tm_polygons()
MEMBANGUN MATRIKS PENIMBANG SPASIAL
#Set Working File Directory
setwd("E:/Folder Kuliah/Matkul Semester 6/Analisis Data Spasial/Praktikum/P7_
Pemodelan Spasial_R version")

#Membuat daftar tetangga dengan pendekatan "queen"


queen.nb <- poly2nb(jawa.shp)

#Membangun matriks penimbang berdasarkan daftar tetangga sebelumnya (dalam be


ntuk list)
queen.jawa <- nb2listw(queen.nb,style = "W",zero.policy = TRUE)

#Membangun matriks penimbang (dalam bentuk matriks)


bobot.queen <- listw2mat(queen.jawa)
#write.csv(bobot.queen,"Matriks Bobot Queen Jawa.csv")
## ~Menyimpan matriks penimbang bertujuan agar pengguna bebas mengatur nilai
penimbang matriks sehingga sesuai dengan tujuan-nya

#Membangun matriks penimbang (dalam bentuk list) apabila input penimbang beru
pa matriks
bobot <- readxl::read_excel("Matriks Bobot Queen Jawa.xlsx")

## New names:
## • `` -> `...1`

matrix_bobot <- as.matrix(bobot[,-1]) #Seleksi kolom pertama karena tidak mem


uat informasi apapun
matrix_bobot <- mat2listw(matrix_bobot,style="W",)

## Warning in nb2listw(res$neighbours, glist = res$weights, style = style, :


zero
## sum general weights

Terdapat peringatan ketika membuat matriks pembobot. Peringatan tersebut bermakna


bahwa terdapat kabupaten/kota yang tidak memiliki tetangga.

UJI AUTOKORELASI SPASIAL: MORAN’S I


moran.test(jawa.shp$Persen2021,matrix_bobot,randomisation = FALSE,zero.policy
= TRUE)

##
## Moran I test under normality
##
## data: jawa.shp$Persen2021
## weights: matrix_bobot n reduced by no-neighbour observations
##
##
## Moran I statistic standard deviate = 7.4963, p-value = 3.282e-14
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## 0.50172843 -0.00862069 0.00463488

moran.plot(jawa.shp$Persen2021,matrix_bobot,zero.policy = TRUE)

Keputusan : Tolak Ho
Kesimpulan : Dengan tingkat signifikansi 5 persen dapat ditunjukkan bahwa terdapat
pengaruh spasial pada variabel persentase penduduk miskin 2021.
Melalui uji Moran’s I di atas dapat dikatakan bahwa sebaran kejadian, yaitu persentase
kemiskinan membentuk suatu pola sehingga dapat dikatakan terdapat autokorelasi spasial.
Ini berarti bahwa pemodelan spasial dengan variabel persen2021 sebagai variabel terikat
dapat dilakukan. Oleh karena itu, perlu diidentifikasi jenis model spasial yang akan
digunakan. Dalam kasus ini model OLS dapat diabaikan karena sudah menunjukkan adanya
pengaruh spasial pada variabel terikat.
#OLS
ols <- lm(jawa.shp$Persen2021~jawa.shp$RLS_2021)
#ols <- lm(Persen2021~RLS_2021,data = jawa.shp)
summary(ols)

##
## Call:
## lm(formula = jawa.shp$Persen2021 ~ jawa.shp$RLS_2021)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.6500 -1.9884 -0.1821 1.5996 9.1452
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 26.589 1.427 18.64 <2e-16 ***
## jawa.shp$RLS_2021 -1.924 0.166 -11.59 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.885 on 116 degrees of freedom
## Multiple R-squared: 0.5367, Adjusted R-squared: 0.5327
## F-statistic: 134.4 on 1 and 116 DF, p-value: < 2.2e-16

AIC_ols <- AIC(ols)

#Dependence Test: LM-error, LM-lag, Robust LM-error, Robust LM-lag, dan SARIM
A
uji_lm<-lm.LMtests(ols,matrix_bobot,test = "all",zero.policy = T)
summary(uji_lm)

## Lagrange multiplier diagnostics for spatial dependence


## data:
## model: lm(formula = jawa.shp$Persen2021 ~ jawa.shp$RLS_2021)
## weights: matrix_bobot
##
## statistic parameter p.value
## LMerr 30.51173 1 3.319e-08 ***
## LMlag 13.56401 1 0.0002306 ***
## RLMerr 17.35989 1 3.093e-05 ***
## RLMlag 0.41217 1 0.5208724
## SARMA 30.92390 2 1.927e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Melalu uji dependensi di atas, didapatnya hasil bahwa statistik LM-lag dan LM-error,
keduanya bernilai signifikan yang menunjukkan adanya adanya autokorelasi spasial.
Kemudian, statistik Robust LM-error ternyata bernilai signifikan sehingga dapat diputuskan
untuk menggunakan model Spatial Error Model (SEM).

ESTIMASI PARAMETER MODEL SPASIAL: SEM DAN SAR


#SEM
sem <- errorsarlm(jawa.shp$Persen2021~jawa.shp$RLS_2021,data = jawa.shp,listw
= matrix_bobot,zero.policy = TRUE)
AIC_sem <- AIC(sem)

#SAR
sar <- lagsarlm(jawa.shp$Persen2021~jawa.shp$RLS_2021,data = jawa.shp,listw =
matrix_bobot,zero.policy = TRUE)
AIC_sar <- AIC(sar)

AIC.table <- data.frame(Model=c("OLS","SEM","SAR"),AIC=c(round(AIC_ols,3),rou


nd(AIC_sem,3),round(AIC_sar,3)))
AIC.table

## Model AIC
## 1 OLS 588.897
## 2 SEM 565.763
## 3 SAR 578.689

Berdasarkan tabel di atas, Spatial Error Model (SEM) merupakan model terbaik karena
memiliki skor AIC yang lebih rendah dibandingkan dengan model lainnya.

ESTIMASI PARAMETER MODEL TERBAIK: SEM


summary(sem)

##
## Call:errorsarlm(formula = jawa.shp$Persen2021 ~ jawa.shp$RLS_2021,
## data = jawa.shp, listw = matrix_bobot, zero.policy = TRUE)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.22103 -1.64820 -0.28926 1.62492 7.62237
##
## Type: error
## Regions with no neighbours included:
## 14
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 25.65979 1.63252 15.7179 < 2.2e-16
## jawa.shp$RLS_2021 -1.77957 0.17854 -9.9673 < 2.2e-16
##
## Lambda: 0.4951, LR test value: 25.135, p-value: 5.3467e-07
## Asymptotic standard error: 0.092937
## z-value: 5.3273, p-value: 9.9689e-08
## Wald statistic: 28.38, p-value: 9.9689e-08
##
## Log likelihood: -278.8813 for error model
## ML residual variance (sigma squared): 6.2014, (sigma: 2.4903)
## Number of observations: 118
## Number of parameters estimated: 4
## AIC: 565.76, (AIC for lm: 588.9)

Model SEM:

𝑌𝑖 = 25,66 − 1,78𝑋𝑖 + 𝑢𝑖
𝑛
𝑢𝑖 = 0,495 ∑ 𝑤𝑖𝑗 𝜀𝑗
𝑗=1,𝑖≠𝑗

Variabel penimbang spasial atau LAMBDA berpengaruh signifikan dalam model sehingga
menunjukkan bahwa model SEM memberikan penjelasan yang lebih baik.

Anda mungkin juga menyukai