#================ 2.1 Input Data Stunting (sesuai file) ================#
library(readxl); library(dplyr); library(stringr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2); library(forcats); library(sf)
## Linking to GEOS 3.13.0, GDAL 3.8.5, PROJ 9.5.1; sf_use_s2() is TRUE
library(raster)
## Loading required package: sp
##
## Attaching package: 'raster'
## The following object is masked from 'package:dplyr':
##
## select
Stunting <- read.csv(“Stunting4.csv”, header = TRUE, sep = “;”, dec = “.”) head(Stunting)
# Filter hanya wilayah Jawa Barat
# Membaca file shapefile
jabar_sf <- st_read("Jabar.dbf")
## Reading layer `Jabar' from data source
## `/Users/kikiamelia/Desktop/Amelia/Jabar.dbf' using driver `ESRI Shapefile'
## Simple feature collection with 27 features and 9 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.3705 ymin: -7.823398 xmax: 108.8338 ymax: -5.91377
## CRS: NA
# Cek data
print(jabar_sf)
## Simple feature collection with 27 features and 9 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.3705 ymin: -7.823398 xmax: 108.8338 ymax: -5.91377
## CRS: NA
## First 10 features:
## PROVNO PROVINSI KABKOT PROV12_2 KABKOT12_2 Kabupaten
## 1 32 JAWA BARAT Kab Bogor JAWA BARAT BOGOR Kab Bogor
## 2 32 JAWA BARAT Kab Sukabumi JAWA BARAT SUKABUMI Kab Sukabumi
## 3 32 JAWA BARAT Kab Cianjur JAWA BARAT CIANJUR Kab Cianjur
## 4 32 JAWA BARAT Kab Bandung JAWA BARAT BANDUNG Kab Bandung
## 5 32 JAWA BARAT Kab Garut JAWA BARAT GARUT Kab Garut
## 6 32 JAWA BARAT Kab Tasikmalaya JAWA BARAT TASIKMALAYA Kab Tasikmalaya
## 7 32 JAWA BARAT Kab Pangandaran JAWA BARAT CIAMIS Kab Ciamis
## 8 32 JAWA BARAT Kab Kuningan JAWA BARAT KUNINGAN Kab Kuningan
## 9 32 JAWA BARAT Kab Cirebon JAWA BARAT CIREBON Kab Cirebon
## 10 32 JAWA BARAT Kab Majalengka JAWA BARAT MAJALENGKA Kab Majalengka
## longitude latitude ID geometry
## 1 106.7684 -6.561213 1 MULTIPOLYGON (((106.9909 -6...
## 2 106.7101 -7.074610 2 MULTIPOLYGON (((106.488 -7....
## 3 107.1595 -7.128689 3 MULTIPOLYGON (((106.8641 -7...
## 4 107.6104 -7.099844 4 MULTIPOLYGON (((107.4771 -7...
## 5 107.7887 -7.359583 5 MULTIPOLYGON (((107.8113 -7...
## 6 108.1412 -7.496875 6 MULTIPOLYGON (((108.0603 -7...
## 7 108.4287 -7.289809 7 MULTIPOLYGON (((108.21 -7.2...
## 8 108.5594 -7.003270 8 MULTIPOLYGON (((108.6072 -6...
## 9 108.5513 -6.745514 9 MULTIPOLYGON (((108.685 -6....
## 10 108.2570 -6.815748 10 MULTIPOLYGON (((108.1809 -6...
plot(st_geometry(jabar_sf)) # Plot dasar untuk melihat peta
B=ggplot(data = jabar_sf) +
geom_sf(fill = "white", color = "black") +
# Menambahkan label ID secara otomatis di tengah poligon
geom_sf_text(aes(label = ID),
size = 3, # Ukuran teks (setara txt.cex)
color = "black",
fontface = "bold",
check_overlap = TRUE) +
theme_minimal()
B
#================ 2. Preprocessing Data Stunting ================#
# Anggap nama dataset Anda adalah 'data_stunting'
# Pastikan nama Kab/Kota seragam (Uppercase) untuk Join
Stunting <- read.csv("DataStuntingJabar5.csv", header = TRUE, sep = ";", dec = ".")
head(Stunting)
## No id kode_provinsi nama_provinsi kode_kabupaten_kota Kab.Kota
## 1 1 1 32 JAWA BARAT 3201 Kab Bogor
## 2 2 2 32 JAWA BARAT 3202 Kab Sukabumi
## 3 3 3 32 JAWA BARAT 3203 Kab Cianjur
## 4 4 4 32 JAWA BARAT 3204 Kab Bandung
## 5 5 5 32 JAWA BARAT 3205 Kab Garut
## 6 6 6 32 JAWA BARAT 3206 Kab Tasikmalaya
## persentase_balita_stunting satuan tahun Tingkat.Pendidikan.Ibu PDRB
## 1 4.06 PERSEN 2019 30.04 237113
## 2 8.29 PERSEN 2019 13.48 67406
## 3 6.61 PERSEN 2019 13.25 46807
## 4 7.32 PERSEN 2019 30.23 124001
## 5 4.80 PERSEN 2019 17.79 57579
## 6 15.06 PERSEN 2019 14.93 37219
## Tingkat.Kemiskinan JumlahBalita JumlahKasusStunting Ei SMR
## 1 6.66 442162 132825.46 587303.73 22.61615
## 2 6.22 184865 24919.80 46067.99 54.09353
## 3 9.15 179399 23770.37 42643.80 55.74167
## 4 5.94 240699 72763.31 175140.55 41.54566
## 5 8.98 194656 34629.30 67408.01 51.37268
## 6 9.12 108122 16142.61 17453.72 92.48812
## lnSMR AirMinumLayak SanitasiLayak PHBS persentase_pemberian_asi IT IS
## 1 3.118664 91.02 56.00 53.91 53.12 1 1
## 2 3.990715 79.57 69.00 51.10 57.15 1 2
## 3 4.020728 81.50 62.00 62.00 68.78 1 3
## 4 3.726793 97.84 80.00 57.11 63.84 1 4
## 5 3.939106 84.17 76.09 60.02 74.32 1 5
## 6 4.527080 76.18 81.00 54.01 66.77 1 6
## ST
## 1 6.305517
## 2 9.354103
## 3 8.715372
## 4 8.664596
## 5 10.102140
## 6 11.205440
# Join Data Peta dengan Data Stunting
jabar_stunting_join <- jabar_sf %>%
left_join(Stunting, by = c("Kabupaten" = "Kab.Kota"))
## ================= Stunting ================= ##
## Interval (Menyesuaikan dengan persentase_balita_stunting)
# pretty_breaks diatur untuk skala persentase (misal: 10%, 20%, 30%)
pretty_breaks <- c(1.28, 5.37, 9.4, 13.55, 17.64)
# compute labels
labels <- c()
brks <- c(1.28, 5.37, 9.4, 13.55, 17.64)
format(brks, scientific=F)
## [1] " 1.28" " 5.37" " 9.40" "13.55" "17.64"
# Definisikan variabel baru pada dataset hasil join
# Catatan: Pastikan kolom di data CSV Anda bernama 'persentase_balita_stunting'
labels <- labels[1:length(labels)-1]
jabar_stunting_join$brks <- cut(jabar_stunting_join$persentase_balita_stunting,
breaks = brks,
include.lowest = TRUE,
labels = labels)
brks_scale <- levels(jabar_stunting_join$brks)
labels_scale <- rev(brks_scale)
# Simpan hasil
#ggsave("Stunting_Jabar.png", height = 6, width = 8, dpi = 600)
# Plotting menggunakan ggplot
# Menggunakan geom_sf karena jabar_stunting_join adalah objek 'sf'
A <- ggplot(jabar_stunting_join) +
geom_sf(aes(fill = brks), color="black", size=0.1) +
# Menggunakan Tahun sebagai pengganti Triwulan untuk facet
geom_sf_text(aes(label = id),
size = 1.5, # Ukuran teks (setara txt.cex)
color = "black",
fontface = "bold",
check_overlap = TRUE) +
facet_wrap(.~tahun, ncol=3) +
# Skala warna disesuaikan dengan label kategori stunting
scale_fill_manual(
labels = c("<5.36", "[5.37 – 9.45)", "[9.46 – 13.54)", "[13.55 – 17.63)", ">=17.64"),
values = c("grey95", "#FFFDEB", "#F97316", "#DC2626", "#7F1D1D")
) +
theme_bw() +
ylab("Northing") + xlab("Easting") +
theme(axis.text.x = element_text(angle = 90)) +
theme(legend.position = "bottom") +
theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank()) +
labs(fill = "Stunting (%)") +
theme(legend.position="right", text = element_text(size=25)) +
theme(text = element_text(size=13))
A
# Modeling #################
library(mclust)
## Package 'mclust' version 6.1.2
## Type 'citation("mclust")' for citing this R package in publications.
##
## Attaching package: 'mclust'
## The following object is masked from 'package:dplyr':
##
## count
library(INLA)
## Loading required package: Matrix
## This is INLA_25.06.07 built 2025-06-11 19:15:03 UTC.
## - See www.r-inla.org/contact-us for how to get help.
## - List available models/likelihoods/etc with inla.list.models()
## - Use inla.doc(<NAME>) to access documentation
## - Consider upgrading R-INLA to testing[26.05.10] or stable[25.10.19].
library(spdep)
## Loading required package: spData
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(lattice)
library(RColorBrewer)
library(glmnet)
## Loaded glmnet 4.1-10
library(caret)
library(readxl); library(dplyr); library(stringr)
library(ggplot2); library(forcats); library(sf)
library(raster)
library(sf)
library(spdep)
library(spatialreg)
##
## 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(spdep)
library(sp)
library(sf)
library(ggplot2)
library(dplyr)
###Autokorelasi spasial
WB_nb <- poly2nb(jabar_sf, queen = TRUE)
lw <- nb2listw(WB_nb, style = "W", zero.policy = TRUE)
W_matrix <- listw2mat(lw)
library(Matrix)
W1 <- as(as_dgRMatrix_listw(lw), "CsparseMatrix")
print(W1)
## 27 x 27 sparse Matrix of class "dgCMatrix"
## [[ suppressing 27 column names '1', '2', '3' ... ]]
##
## 1 . 0.1250000 0.1250000 . . . .
## 2 0.3333333 . 0.3333333 . . . .
## 3 0.1666667 0.1666667 . 0.1666667 0.1666667 . .
## 4 . . 0.1428571 . 0.1428571 . .
## 5 . . 0.2500000 0.2500000 . 0.2500000 .
## 6 . . . . 0.1666667 . 0.1666667
## 7 . . . . . 0.1666667 .
## 8 . . . . . . 0.3333333
## 9 . . . . . . .
## 10 . . . . . 0.1666667 0.1666667
## 11 . . . 0.1666667 0.1666667 0.1666667 .
## 12 . . . . . . .
## 13 . . . 0.1666667 . . .
## 14 0.2000000 . 0.2000000 . . . .
## 15 0.2500000 . . . . . .
## 16 0.3333333 . . . . . .
## 17 . . 0.1666667 0.1666667 . . .
## 18 . . . . . 0.5000000 0.5000000
## 19 1.0000000 . . . . . .
## 20 . 1.0000000 . . . . .
## 21 . . . 0.3333333 . . .
## 22 . . . . . . .
## 23 0.3333333 . . . . . .
## 24 0.5000000 . . . . . .
## 25 . . . 0.3333333 . . .
## 26 . . . . . 0.5000000 0.5000000
## 27 . . . . . . 1.0000000
##
## 1 . . . . . . 0.1250000
## 2 . . . . . . .
## 3 . . . . . . 0.1666667
## 4 . . . 0.1428571 . 0.1428571 .
## 5 . . . 0.2500000 . . .
## 6 . . 0.1666667 0.1666667 . . .
## 7 0.1666667 . 0.1666667 . . . .
## 8 . 0.3333333 0.3333333 . . . .
## 9 0.2500000 . 0.2500000 . 0.2500000 . .
## 10 0.1666667 0.1666667 . 0.1666667 0.1666667 . .
## 11 . . 0.1666667 . 0.1666667 0.1666667 .
## 12 . 0.2500000 0.2500000 0.2500000 . 0.2500000 .
## 13 . . . 0.1666667 0.1666667 . 0.1666667
## 14 . . . . . 0.2000000 .
## 15 . . . . . 0.2500000 0.2500000
## 16 . . . . . . .
## 17 . . . . . 0.1666667 0.1666667
## 18 . . . . . . .
## 19 . . . . . . .
## 20 . . . . . . .
## 21 . . . . . . .
## 22 . 1.0000000 . . . . .
## 23 . . . . . . .
## 24 . . . . . . .
## 25 . . . . . . .
## 26 . . . . . . .
## 27 . . . . . . .
##
## 1 0.1250000 0.1250000 . . 0.125 . . .
## 2 . . . . . 0.3333333 . .
## 3 . . 0.1666667 . . . . .
## 4 . . 0.1428571 . . . 0.1428571 .
## 5 . . . . . . . .
## 6 . . . 0.1666667 . . . .
## 7 . . . 0.1666667 . . . .
## 8 . . . . . . . .
## 9 . . . . . . . 0.25
## 10 . . . . . . . .
## 11 . . . . . . . .
## 12 . . . . . . . .
## 13 0.1666667 . 0.1666667 . . . . .
## 14 0.2000000 . 0.2000000 . . . . .
## 15 . 0.2500000 . . . . . .
## 16 0.3333333 . . . . . . .
## 17 . . . . . . 0.1666667 .
## 18 . . . . . . . .
## 19 . . . . . . . .
## 20 . . . . . . . .
## 21 . . 0.3333333 . . . . .
## 22 . . . . . . . .
## 23 . 0.3333333 . . . . . .
## 24 . . . . . . . .
## 25 . . 0.3333333 . . . 0.3333333 .
## 26 . . . . . . . .
## 27 . . . . . . . .
##
## 1 0.1250000 0.1250000 . . .
## 2 . . . . .
## 3 . . . . .
## 4 . . 0.1428571 . .
## 5 . . . . .
## 6 . . . 0.1666667 .
## 7 . . . 0.1666667 0.1666667
## 8 . . . . .
## 9 . . . . .
## 10 . . . . .
## 11 . . . . .
## 12 . . . . .
## 13 . . . . .
## 14 . . . . .
## 15 . . . . .
## 16 0.3333333 . . . .
## 17 . . 0.1666667 . .
## 18 . . . . .
## 19 . . . . .
## 20 . . . . .
## 21 . . 0.3333333 . .
## 22 . . . . .
## 23 . 0.3333333 . . .
## 24 0.5000000 . . . .
## 25 . . . . .
## 26 . . . . .
## 27 . . . . .
row.names(jabar_sf) <- as.character(1:27)
CoordK <- coordinates(jabar_sf) plot(jabar_sf, axes=T, col=“gray90”) text(CoordK[,1], CoordK[,2], row.names(jabar_sf), col=“black”, cex=0.8, pos=1.5) points(CoordK[,1], CoordK[,2], pch=19, cex=0.7, col=“blue”) plot.nb(WB_nb, CoordK, add=TRUE, col=“red”, lwd=2)
##### Open Your Data
DataL<-read.csv("DataStuntingJabar5.csv", header = TRUE, sep = ";", dec = ".")
head(DataL)
## No id kode_provinsi nama_provinsi kode_kabupaten_kota Kab.Kota
## 1 1 1 32 JAWA BARAT 3201 Kab Bogor
## 2 2 2 32 JAWA BARAT 3202 Kab Sukabumi
## 3 3 3 32 JAWA BARAT 3203 Kab Cianjur
## 4 4 4 32 JAWA BARAT 3204 Kab Bandung
## 5 5 5 32 JAWA BARAT 3205 Kab Garut
## 6 6 6 32 JAWA BARAT 3206 Kab Tasikmalaya
## persentase_balita_stunting satuan tahun Tingkat.Pendidikan.Ibu PDRB
## 1 4.06 PERSEN 2019 30.04 237113
## 2 8.29 PERSEN 2019 13.48 67406
## 3 6.61 PERSEN 2019 13.25 46807
## 4 7.32 PERSEN 2019 30.23 124001
## 5 4.80 PERSEN 2019 17.79 57579
## 6 15.06 PERSEN 2019 14.93 37219
## Tingkat.Kemiskinan JumlahBalita JumlahKasusStunting Ei SMR
## 1 6.66 442162 132825.46 587303.73 22.61615
## 2 6.22 184865 24919.80 46067.99 54.09353
## 3 9.15 179399 23770.37 42643.80 55.74167
## 4 5.94 240699 72763.31 175140.55 41.54566
## 5 8.98 194656 34629.30 67408.01 51.37268
## 6 9.12 108122 16142.61 17453.72 92.48812
## lnSMR AirMinumLayak SanitasiLayak PHBS persentase_pemberian_asi IT IS
## 1 3.118664 91.02 56.00 53.91 53.12 1 1
## 2 3.990715 79.57 69.00 51.10 57.15 1 2
## 3 4.020728 81.50 62.00 62.00 68.78 1 3
## 4 3.726793 97.84 80.00 57.11 63.84 1 4
## 5 3.939106 84.17 76.09 60.02 74.32 1 5
## 6 4.527080 76.18 81.00 54.01 66.77 1 6
## ST
## 1 6.305517
## 2 9.354103
## 3 8.715372
## 4 8.664596
## 5 10.102140
## 6 11.205440
DataLY<-data.frame(Case=DataL$persentase_balita_stunting)
Case=DataL$persentase_balita_stunting
# Global Moran's I
Moran19 <- moran.test(DataL$persentase_balita_stunting[1:27], lw)
Moran20 <- moran.test(DataL$persentase_balita_stunting[28:54], lw)
Moran21 <- moran.test(DataL$persentase_balita_stunting[55:81], lw)
Moran22 <- moran.test(DataL$persentase_balita_stunting[82:108], lw)
Moran23 <- moran.test(DataL$persentase_balita_stunting[109:135], lw)
Moran24 <- moran.test(DataL$persentase_balita_stunting[136:162], lw)
Moran=c(Moran19$estimate[1],Moran20$estimate[1],Moran21$estimate[1],Moran22$estimate[1],Moran23$estimate[1],Moran24$estimate[1])
pv.Moran=c(Moran19$p.value,Moran20$p.value,Moran21$p.value,Moran22$p.value,Moran23$p.value,Moran24$p.value)
Moran.Indeks=data.frame(Moran,pv.Moran)
Moran.Indeks
## Moran pv.Moran
## 1 0.19436344 0.038336774
## 2 0.03784775 0.293879138
## 3 0.02207477 0.332934871
## 4 0.26544701 0.014847020
## 5 0.30035373 0.008385097
## 6 0.18586762 0.050010172
####AUTOKOREALASI library(MoranST) DBD<-DataBdg$DBD MoranST<-MoranST.MC(DBD,WB,1000) LMoranST<-LocalMoranST.MC(DBD,W,1000)
library(spdep) library(sf) library(Matrix)
# Membuat neighbour
nb <- poly2nb(jabar_sf, queen = TRUE)
# Spatial weight
lw <- nb2listw(nb,
style = "W",
zero.policy = TRUE)
# Matriks bobot spasial
W <- listw2mat(lw)
# Jumlah tahun
T <- length(unique(DataL$tahun))
# Membuat bobot spatio-temporal
W_st <- kronecker(Diagonal(T), W)
# Mengubah ke listw
lw_st <- mat2listw(as.matrix(W_st))
## Warning in mat2listw(as.matrix(W_st)): style is M (missing); style should be
## set to a valid value
## Warning in mat2listw(as.matrix(W_st)): neighbour object has 6 sub-graphs
# Moran Spatio-Temporal
moran_st <- moran.test(
DataL$persentase_balita_stunting,
lw_st,
zero.policy = TRUE
)
moran_st
##
## Moran I test under randomisation
##
## data: DataL$persentase_balita_stunting
## weights: lw_st
##
## Moran I statistic standard deviate = 5.5602, p-value = 1.347e-08
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## 0.33306021 -0.00621118 0.00372314
data.frame(
Pengujian = "Moran Spatio-temporal",
Statistik_I = round(moran_st$estimate[1],4),
P_value = round(moran_st$p.value,6)
)
## Pengujian Statistik_I P_value
## Moran I statistic Moran Spatio-temporal 0.3331 0
DataLE<-data.frame(E=DataL$E)
DataLX<-data.frame(Tingkat.Pendidikan.Ibu=DataL$Tingkat.Pendidikan.Ibu, PDRB=DataL$PDRB, Tingkat.Kemiskinan=DataL$Tingkat.Kemiskinan, AirMinumLayak=DataL$AirMinumLayak,
SanitasiLayak=DataL$SanitasiLayak, PHBS=DataL$PHBS, persentase_pemberian_asi=DataL$persentase_pemberian_asi)
DataLlnSMR<-DataL$lnSMR
DataLXlnSMR<-data.frame(DataLlnSMR,DataLX)
#FullDataL<-data.frame(DataLY, DataLE, DataLXR)
#head(FullDataL)
FullDataL<-data.frame(DataLY, DataLE, DataLX)
head(FullDataL)
## Case E Tingkat.Pendidikan.Ibu PDRB Tingkat.Kemiskinan
## 1 4.06 587303.73 30.04 237113 6.66
## 2 8.29 46067.99 13.48 67406 6.22
## 3 6.61 42643.80 13.25 46807 9.15
## 4 7.32 175140.55 30.23 124001 5.94
## 5 4.80 67408.01 17.79 57579 8.98
## 6 15.06 17453.72 14.93 37219 9.12
## AirMinumLayak SanitasiLayak PHBS persentase_pemberian_asi
## 1 91.02 56.00 53.91 53.12
## 2 79.57 69.00 51.10 57.15
## 3 81.50 62.00 62.00 68.78
## 4 97.84 80.00 57.11 63.84
## 5 84.17 76.09 60.02 74.32
## 6 76.18 81.00 54.01 66.77
DATAL1<-FullDataL
DATAL1S<-cbind(DATAL1[,1:2], scale(DATAL1[,c(-1,-2)]))
DATAL1S$IS1<-DataL$IS
DATAL1S$IS2<-DataL$IS
DATAL1S$IS3<-DataL$IS
DATAL1S$IT1<-DataL$IT
DATAL1S$IT2<-DataL$IT
DATAL1S$IT3<-DataL$IT
###===4. MENGHITUNG SMR===###
#Estimasi SMR#
Ei=DataL$Ei
SMR_19=DataL$persentase_balita_stunting[1:27]/Ei[1:27]
SMR_20=DataL$persentase_balita_stunting[28:54]/Ei[28:54]
SMR_21=DataL$persentase_balita_stunting[55:81]/Ei[55:81]
SMR_22=DataL$persentase_balita_stunting[82:108]/Ei[82:108]
SMR_23=DataL$persentase_balita_stunting[109:135]/Ei[109:135]
SMR_24=DataL$persentase_balita_stunting[136:162]/Ei[136:162]
boxplot(SMR_19,SMR_20,SMR_21,SMR_22, SMR_23,SMR_24, main="Boxplot SMR",names=c("2019","2020","2021","2022","2023","2024"))
##### Define your own prior
##### (1) Inverse Gamma Prior
prior.c5=c(1,1*10^(-5))
igprior5=list(theta=list(param=prior.c5))
prior.c1=c(1,0.01)
igprior1=list(theta=list(param=prior.c1))
##### (2) Penalize Complexity Prior
pcprior <- list(prec = list(prior="pc.prec", param = c(3,0.01)))
##### (3) Half Cauchy Prior
halfcauchy = "expression:
lambda = 25;
precision = exp(log_precision);
logdens = -1.5*log_precision-log(pi*lambda)-log(1+1/(precision*lambda^2));
log_jacobian = log_precision;
return(logdens+log_jacobian);"
hcprior = list(prec = list(prior = halfcauchy))
hcprior<-hcprior
##### (4) Uniform Prior
sdunif="expression:
logdens=-log_precision/2;
return(logdens)"
uprior=list(prec=list(prior=sdunif))
control <- list(
predictor = list(compute = TRUE, cdf=c(log(1))),
results = list(return.marginals.random = TRUE, return.marginals.predictor=TRUE),
compute = list(hyperpar=TRUE, return.marginals=TRUE, dic=TRUE, mlik = TRUE, cpo = TRUE,
po = TRUE, waic=TRUE, graph=TRUE, gdensity=TRUE, openmp.strategy="huge"))
##DATA EXPLORATION
library(ggcorrplot)
DataLX1<-DataLX[-c(1:60),]
VIF<-diag(solve(cor(DataLX1)))
DataLX1<-DataLX[-c(1:60),]
VIF<-diag(solve(cor(DataLX1)))
DataLXlnSMR1<-DataLXlnSMR[-c(1:60),]
Spearman.Correlation <- round(cor(DataLXlnSMR1,method="spearman"), 1)
r<-ggcorrplot(Spearman.Correlation,type = "lower",
lab = TRUE)
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the ggcorrplot package.
## Please report the issue at <https://github.com/kassambara/ggcorrplot/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
library(extrafont)
## Registering fonts with R
#### Variable Selection
library(My.stepwise)
### Add Covariate
###(1) Parameteric Poisson Regression
#GLM0<-glm(Case~MeanTemperature+Rainfall+SunshineDuration+RelativeHumidity+Evaporation+
# MeanTemperatureL1+RainfallL1+SunshineDurationL1+RelativeHumidityL1+EvaporationL1+
# MeanTemperatureL2+RainfallL2+SunshineDurationL2+RelativeHumidityL2+EvaporationL2+offset(log(E)), family="poisson", data=FullDataL)
#summary(GLM0)
GLM0<-glm(Case~Tingkat.Pendidikan.Ibu+PDRB+Tingkat.Kemiskinan+AirMinumLayak+SanitasiLayak+PHBS+persentase_pemberian_asi +offset(log(E)), family="gaussian", data=FullDataL)
summary(GLM0)
##
## Call:
## glm(formula = Case ~ Tingkat.Pendidikan.Ibu + PDRB + Tingkat.Kemiskinan +
## AirMinumLayak + SanitasiLayak + PHBS + persentase_pemberian_asi +
## offset(log(E)), family = "gaussian", data = FullDataL)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.638e+00 6.268e+00 1.378 0.1702
## Tingkat.Pendidikan.Ibu 9.021e-02 3.603e-02 2.503 0.0133 *
## PDRB -2.337e-05 3.862e-06 -6.052 1.04e-08 ***
## Tingkat.Kemiskinan 2.644e-01 1.940e-01 1.363 0.1748
## AirMinumLayak -1.020e-01 7.280e-02 -1.401 0.1633
## SanitasiLayak -2.658e-02 1.929e-02 -1.377 0.1704
## PHBS -6.549e-02 3.174e-02 -2.063 0.0408 *
## persentase_pemberian_asi 2.115e-02 2.309e-02 0.916 0.3612
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 16.82728)
##
## Null deviance: 3722.1 on 161 degrees of freedom
## Residual deviance: 2591.4 on 154 degrees of freedom
## AIC: 926.86
##
## Number of Fisher Scoring iterations: 2
GLM1<-glm(Case~AirMinumLayak+PHBS+offset(log(E)), family="gaussian", data=FullDataL)
summary(GLM0)
##
## Call:
## glm(formula = Case ~ Tingkat.Pendidikan.Ibu + PDRB + Tingkat.Kemiskinan +
## AirMinumLayak + SanitasiLayak + PHBS + persentase_pemberian_asi +
## offset(log(E)), family = "gaussian", data = FullDataL)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.638e+00 6.268e+00 1.378 0.1702
## Tingkat.Pendidikan.Ibu 9.021e-02 3.603e-02 2.503 0.0133 *
## PDRB -2.337e-05 3.862e-06 -6.052 1.04e-08 ***
## Tingkat.Kemiskinan 2.644e-01 1.940e-01 1.363 0.1748
## AirMinumLayak -1.020e-01 7.280e-02 -1.401 0.1633
## SanitasiLayak -2.658e-02 1.929e-02 -1.377 0.1704
## PHBS -6.549e-02 3.174e-02 -2.063 0.0408 *
## persentase_pemberian_asi 2.115e-02 2.309e-02 0.916 0.3612
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 16.82728)
##
## Null deviance: 3722.1 on 161 degrees of freedom
## Residual deviance: 2591.4 on 154 degrees of freedom
## AIC: 926.86
##
## Number of Fisher Scoring iterations: 2
#moran residual
residual=resid(GLM1)
Moran19=moran.test(residual[1:27],listw=lw,zero.policy=TRUE)
Moran20=moran.test(residual[28:54],listw=lw,zero.policy=TRUE)
Moran21=moran.test(residual[55:81],listw=lw,zero.policy=TRUE)
Moran22=moran.test(residual[82:108],listw=lw,zero.policy=TRUE)
Moran23=moran.test(residual[109:135],listw=lw,zero.policy=TRUE)
Moran24=moran.test(residual[136:162],listw=lw,zero.policy=TRUE)
Moran=c(Moran19$estimate[1],Moran20$estimate[1],Moran21$estimate[1],Moran22$estimate[1],Moran23$estimate[1],Moran24$estimate[1])
pv.Moran=c(Moran19$p.value,Moran20$p.value,Moran21$p.value,Moran22$p.value,Moran23$p.value,Moran24$p.value)
Moran.Indeks=data.frame(Moran,pv.Moran)
Moran.Indeks
## Moran pv.Moran
## 1 0.2172541 0.028584469
## 2 0.2662122 0.015237051
## 3 0.1124755 0.140993977
## 4 0.2966179 0.008304696
## 5 0.3274352 0.003820227
## 6 0.2567484 0.014645800
###(2) Bayesian Poisson Regression
Formula.Cov<-Case~Tingkat.Pendidikan.Ibu+PDRB+Tingkat.Kemiskinan+AirMinumLayak+SanitasiLayak+PHBS+persentase_pemberian_asi
Model.Cov<- inla(Formula.Cov, data = FullDataL, family = "Gaussian", E=E,
control.fixed = list(mean.intercept = 0, prec.intercept = 0.000001, mean = 0, prec =0.000001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
summary(Model.Cov)
## Time used:
## Pre = 1.72, Running = 8.92, Post = 0.935, Total = 11.6
## Fixed effects:
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) 22.762 5.797 11.400 22.762 34.124 22.762 0
## Tingkat.Pendidikan.Ibu 0.083 0.033 0.018 0.083 0.149 0.083 0
## PDRB 0.000 0.000 0.000 0.000 0.000 0.000 0
## Tingkat.Kemiskinan 0.261 0.179 -0.091 0.261 0.613 0.261 0
## AirMinumLayak -0.133 0.067 -0.265 -0.133 -0.001 -0.133 0
## SanitasiLayak -0.017 0.018 -0.052 -0.017 0.018 -0.017 0
## PHBS -0.091 0.029 -0.148 -0.091 -0.033 -0.091 0
## persentase_pemberian_asi 0.001 0.021 -0.041 0.001 0.043 0.001 0
##
## Model hyperparameters:
## mean sd 0.025quant 0.5quant
## Precision for the Gaussian observations 0.069 0.001 0.067 0.069
## 0.975quant mode
## Precision for the Gaussian observations 0.072 0.069
##
## Deviance Information Criterion (DIC) ...............: 902.06
## Deviance Information Criterion (DIC, saturated) ....: 172.31
## Effective number of parameters .....................: 8.00
##
## Watanabe-Akaike information criterion (WAIC) ...: 902.96
## Effective number of parameters .................: 8.29
##
## Marginal log-Likelihood: -547.74
## CPO, PIT is computed
## Posterior summaries for the linear predictor and the fitted values are computed
## (Posterior marginals needs also 'control.compute=list(return.marginals.predictor=TRUE)')
#### BAYESIAN RIDGE REGRESION
#### (2a) Bayesian Poisson ridge regression "Copy" approch
#FullDataLS<-cbind(FullDataL[,1:2], scale(FullDataL[,c(-1,-2)]))
FullDataLS <- data.frame(
FullDataL[,1:2],
scale(FullDataL[, -c(1,2)])
)
head(FullDataLS)
## Case E Tingkat.Pendidikan.Ibu PDRB Tingkat.Kemiskinan
## 1 4.06 587303.73 -0.1707676 1.5406327 -0.5899169
## 2 8.29 46067.99 -1.2147292 -0.2261874 -0.7506988
## 3 6.61 42643.80 -1.2292287 -0.4406436 0.3199622
## 4 7.32 175140.55 -0.1587898 0.3630233 -0.8530145
## 5 4.80 67408.01 -0.9430218 -0.3284963 0.2578419
## 6 15.06 17453.72 -1.1233195 -0.5404643 0.3089998
## AirMinumLayak SanitasiLayak PHBS persentase_pemberian_asi
## 1 -0.4534219 -1.6711889 -0.8356904 -1.2566722
## 2 -2.3562983 -0.9313206 -1.0758064 -0.9897552
## 3 -2.0355514 -1.3297113 -0.1443956 -0.2194709
## 4 0.6799944 -0.3052782 -0.5622487 -0.5466596
## 5 -1.5918239 -0.5278079 -0.3135876 0.1474573
## 6 -2.9196826 -0.2483653 -0.8271454 -0.3525983
m <- nrow(FullDataLS)
FullDataLS$beta1 <- rep(1,m)
FullDataLS$beta2 <- rep(2,m)
FullDataLS$beta3 <- rep(3,m)
FullDataLS$beta4 <- rep(4,m)
FullDataLS$beta5 <- rep(5,m)
FullDataLS$beta6 <- rep(6,m)
FullDataLS$beta7 <- rep(7,m)
###Model dengan effect fixed saja
param.beta = list(prec = list(param = c(1.0e-6, 1.0e-6)))
Formula.Ridge1 = Case ~ f(beta1, Tingkat.Pendidikan.Ibu, model="iid", values = c(1:7), hyper = param.beta)+
f(beta2, PDRB, copy="beta1", fixed=T)+
f(beta3, Tingkat.Kemiskinan, copy="beta1", fixed=T)+
f(beta4, AirMinumLayak, copy="beta1", fixed=T)+
f(beta5, SanitasiLayak, copy="beta1", fixed=T)+
f(beta6, PHBS, copy="beta1", fixed=T)+
f(beta7, persentase_pemberian_asi, copy="beta1", fixed=T)
Model.Ridge1 <- inla(Formula.Ridge1 , family="Gaussian", data=FullDataLS, E=E,
control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
##
## *** inla.core.safe: The inla program failed, but will rerun in case better initial values may help. try=1/1
##
## *** inla.core.safe: rerun with improved initial values
Coeff.Ridge1 <- rbind(Model.Ridge1$summary.fixed, Model.Ridge1$summary.random$beta1[,-1])
round(Coeff.Ridge1,4)
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) 6.9491 0.2987 6.3636 6.9491 7.5346 6.9491 0
## 1 0.7270 0.3860 -0.0296 0.7270 1.4836 0.7270 0
## 2 -0.9368 0.2812 -1.4880 -0.9368 -0.3857 -0.9368 0
## 3 0.4188 0.3807 -0.3274 0.4188 1.1651 0.4188 0
## 4 -0.4853 0.3369 -1.1457 -0.4853 0.1750 -0.4853 0
## 5 -0.2921 0.3022 -0.8845 -0.2921 0.3003 -0.2921 0
## 6 -0.9070 0.2820 -1.4598 -0.9070 -0.3543 -0.9070 0
## 7 -0.0007 0.3135 -0.6152 -0.0007 0.6137 -0.0007 0
summary(Model.Ridge1)
## Time used:
## Pre = 1.52, Running = 0.992, Post = 0.04, Total = 2.55
## Fixed effects:
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) 6.949 0.299 6.364 6.949 7.535 6.949 0
##
## Random effects:
## Name Model
## beta1 IID model
## beta2 Copy
## beta3 Copy
## beta4 Copy
## beta5 Copy
## beta6 Copy
## beta7 Copy
##
## Model hyperparameters:
## mean sd 0.025quant 0.5quant
## Precision for the Gaussian observations 0.069 0.008 0.055 0.069
## Precision for beta1 2.539 2.070 0.463 1.969
## Beta for beta2 1.096 0.285 0.541 1.094
## Beta for beta3 0.967 0.309 0.360 0.966
## Beta for beta4 0.977 0.306 0.378 0.975
## Beta for beta5 0.935 0.317 0.313 0.934
## Beta for beta6 1.090 0.287 0.531 1.087
## Beta for beta7 0.912 0.325 0.273 0.912
## 0.975quant mode
## Precision for the Gaussian observations 0.086 0.068
## Precision for beta1 8.016 1.163
## Beta for beta2 1.662 1.086
## Beta for beta3 1.577 0.963
## Beta for beta4 1.583 0.969
## Beta for beta5 1.562 0.931
## Beta for beta6 1.661 1.078
## Beta for beta7 1.551 0.912
##
## Deviance Information Criterion (DIC) ...............: 900.89
## Deviance Information Criterion (DIC, saturated) ....: 170.41
## Effective number of parameters .....................: 6.47
##
## Watanabe-Akaike information criterion (WAIC) ...: 901.27
## Effective number of parameters .................: 6.49
##
## Marginal log-Likelihood: -485.98
## CPO, PIT is computed
## Posterior summaries for the linear predictor and the fitted values are computed
## (Posterior marginals needs also 'control.compute=list(return.marginals.predictor=TRUE)')
#### (2c) Bayesian Poisson ridge regression Matrix Approach
n <- nrow(DataLX)
X <- matrix(1,nrow = n, ncol= 1)
Case<-DataLY$Case
E<-DataLE$E
Z <- as.matrix(DataLX)
pX = ncol(X); pZ = ncol(Z)
idx.X = c(1:pX, rep(NA, pZ))
idx.Z = c(rep(NA,pX), 1:pZ)
hyper.fixed = list(prec = list(initial = log(1.0e-9), fixed=TRUE))
param.data = list(prec = list(param = c(1.0e-3, 1.0e-3)))
param.Z <- list(prec = list(param = c(1.0e-3, 1.0e-3)))
Formula.Ridge2 = Case ~ -1 + f(idx.X, model="iid", hyper = hyper.fixed) + f(idx.Z, model="iid", hyper = param.Z)
Model.Ridge2 = inla(Formula.Ridge2, family="Gaussian", E=E, data = list(Case=Case, E=E, idx.X=idx.X, idx.Z=idx.Z),
control.predictor = list(A=cbind(X, Z),compute=TRUE),
control.fixed = list(mean.intercept = 0, prec.intercept = 0.000001, mean = 0, prec =0.000001),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
Coef.Ridge2 <- Model.Ridge2$summary.random$idx.Z
Coef.Ridge2
## ID mean sd 0.025quant 0.5quant 0.975quant
## 1 1 2.742659e-02 1.991895e-02 -0.0116138281 2.742659e-02 6.646701e-02
## 2 2 -1.370985e-05 3.314062e-06 -0.0000202053 -1.370985e-05 -7.214411e-06
## 3 3 1.245215e-02 4.324985e-02 -0.0723159936 1.245215e-02 9.722030e-02
## 4 4 -3.213307e-02 3.626058e-02 -0.1032024934 -3.213307e-02 3.893635e-02
## 5 5 -2.121233e-02 1.648999e-02 -0.0535321211 -2.121233e-02 1.110747e-02
## 6 6 -7.799938e-02 2.348611e-02 -0.1240313076 -7.799938e-02 -3.196746e-02
## 7 7 -1.736978e-03 1.910878e-02 -0.0391894988 -1.736978e-03 3.571554e-02
## mode kld
## 1 2.742659e-02 0.000000e+00
## 2 -1.370985e-05 8.952919e-16
## 3 1.245215e-02 4.247592e-19
## 4 -3.213307e-02 5.396315e-18
## 5 -2.121233e-02 0.000000e+00
## 6 -7.799938e-02 2.262270e-17
## 7 -1.736978e-03 0.000000e+00
summary(Model.Ridge2)
## Time used:
## Pre = 1.27, Running = 9.44, Post = 1.35, Total = 12.1
## Random effects:
## Name Model
## idx.X IID model
## idx.Z IID model
##
## Model hyperparameters:
## mean sd 0.025quant 0.5quant
## Precision for the Gaussian observations 0.068 0.001 0.066 0.068
## Precision for idx.Z 502.541 7.412 492.025 501.578
## 0.975quant mode
## Precision for the Gaussian observations 0.071 0.068
## Precision for idx.Z 520.058 496.227
##
## Deviance Information Criterion (DIC) ...............: 901.82
## Deviance Information Criterion (DIC, saturated) ....: 168.88
## Effective number of parameters .....................: 5.63
##
## Watanabe-Akaike information criterion (WAIC) ...: 901.71
## Effective number of parameters .................: 5.28
##
## Marginal log-Likelihood: -498.62
## CPO, PIT is computed
## Posterior summaries for the linear predictor and the fitted values are computed
## (Posterior marginals needs also 'control.compute=list(return.marginals.predictor=TRUE)')
### Add spatial and temporal component
###(1) Parametric Approach--Temporal Component
FullDataLS$IS1<-DataL$IS
FullDataLS$IS2<-DataL$IS
FullDataLS$IS3<-DataL$IS
FullDataLS$IT1<-DataL$IT
FullDataLS$IT2<-DataL$IT
FullDataLS$IT3<-DataL$IT
param.beta = list(prec = list(param = c(1.0e-6, 1.0e-6)))
###(1) Poisson Formula.Ridge1t = Case ~ f(beta1, Tingkat.Pendidikan.Ibu, model=“iid”, values = c(1:7), hyper = param.beta)+ f(beta2, PDRB, copy=“beta1”, fixed=T)+ f(beta3, Tingkat.Kemiskinan, copy=“beta1”, fixed=T)+ f(beta4, AirMinumLayak, copy=“beta1”, fixed=T)+ f(beta5, SanitasiLayak, copy=“beta1”, fixed=T)+ f(beta6, PHBS, copy=“beta1”, fixed=T)+ f(beta7, persentase_pemberian_asi, copy=“beta1”, fixed=T)+ f(IS1, IT1, model = “iid”, hyper = hcprior, constr = T)+ IT2
Model.Ridge1t <- inla(Formula.Ridge1t , family=“Gaussian”, data=FullDataLS, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.Ridge1t <- rbind(Model.Ridge1t\(summary.fixed, Model.Ridge1t\)summary.random$beta1[,-1]) round(Coeff.Ridge1t,4)
summary(Model.Ridge1t)
Formula.Ridge1s = Case ~f(beta1, Tingkat.Pendidikan.Ibu, model=“iid”, values = c(1:7), hyper = param.beta)+ f(beta2, PDRB, copy=“beta1”, fixed=T)+ f(beta3, Tingkat.Kemiskinan, copy=“beta1”, fixed=T)+ f(beta4, AirMinumLayak, copy=“beta1”, fixed=T)+ f(beta5, SanitasiLayak, copy=“beta1”, fixed=T)+ f(beta6, PHBS, copy=“beta1”, fixed=T)+ f(beta7, persentase_pemberian_asi, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior)
Model.Ridge1s <- inla(Formula.Ridge1s , family=“Gaussian”, data=FullDataLS, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.Ridge1s <- rbind(Model.Ridge1s\(summary.fixed, Model.Ridge1s\)summary.random$beta1[,-1]) round(Coeff.Ridge1s,4)
summary(Model.Ridge1s )
Formula.Ridge1s2 = Case ~ f(beta1, Tingkat.Pendidikan.Ibu, model=“iid”, values = c(1:7), hyper = param.beta)+ f(beta2, PDRB, copy=“beta1”, fixed=T)+ f(beta3, Tingkat.Kemiskinan, copy=“beta1”, fixed=T)+ f(beta4, AirMinumLayak, copy=“beta1”, fixed=T)+ f(beta5, SanitasiLayak, copy=“beta1”, fixed=T)+ f(beta6, PHBS, copy=“beta1”, fixed=T)+ f(beta7, persentase_pemberian_asi, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior)+ f(IS2,model = “iid”, constr = T, hyper = hcprior)
Model.Ridge1s2 <- inla(Formula.Ridge1s2 , family=“Gaussian”, data=FullDataLS, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.Ridge1s2 <- rbind(Model.Ridge1s2\(summary.fixed, Model.Ridge1s2\)summary.random$beta1[,-1]) round(Coeff.Ridge1s2,4)
summary(Model.Ridge1s2)
Formula.Ridge1nbst = Case ~ f(beta1, Tingkat.Pendidikan.Ibu, model=“iid”, values = c(1:7), hyper = param.beta)+ f(beta2, PDRB, copy=“beta1”, fixed=T)+ f(beta3, Tingkat.Kemiskinan, copy=“beta1”, fixed=T)+ f(beta4, AirMinumLayak, copy=“beta1”, fixed=T)+ f(beta5, SanitasiLayak, copy=“beta1”, fixed=T)+ f(beta6, PHBS, copy=“beta1”, fixed=T)+ f(beta7, persentase_pemberian_asi, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior)+ f(IS3, IT1, model = “iid”, hyper = hcprior, constr = T)+ IT2
Model.Ridge1nbst <- inla(Formula.Ridge1nbst , family=“Gaussian”, data=FullDataLS, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.Ridge1nbst <- rbind(Model.Ridge1nbst\(summary.fixed, Model.Ridge1nbst\)summary.random$beta1[,-1]) round(Coeff.Ridge1nbst,4)
summary(Model.Ridge1nbst)
ST_19=Model.Ridge1nbst\(summary.fitted.values\)mean[1:27] ST_20=Model.Ridge1nbst\(summary.fitted.values\)mean[28:54] ST_21=Model.Ridge1nbst\(summary.fitted.values\)mean[55:81] ST_22=Model.Ridge1nbst\(summary.fitted.values\)mean[82:108] ST_23=Model.Ridge1nbst\(summary.fitted.values\)mean[109:135] ST_24=Model.Ridge1nbst\(summary.fitted.values\)mean[136:162]
boxplot(ST_19,ST_20,ST_21,ST_22, ST_23, ST_24, main=“Boxplot ST”,names=c(“2019”,“2020”,“2021”,“2022”,“2023”,“2024”))
ST=c(ST_19,ST_20,ST_21,ST_22, ST_23, ST_24)
#================ 2. Preprocessing Data Stunting ================#
# Anggap nama dataset Anda adalah 'data_stunting'
# Pastikan nama Kab/Kota seragam (Uppercase) untuk Join
Stunting <- read.csv("DataStuntingJabar5.csv", header = TRUE, sep = ";", dec = ".")
head(Stunting)
## No id kode_provinsi nama_provinsi kode_kabupaten_kota Kab.Kota
## 1 1 1 32 JAWA BARAT 3201 Kab Bogor
## 2 2 2 32 JAWA BARAT 3202 Kab Sukabumi
## 3 3 3 32 JAWA BARAT 3203 Kab Cianjur
## 4 4 4 32 JAWA BARAT 3204 Kab Bandung
## 5 5 5 32 JAWA BARAT 3205 Kab Garut
## 6 6 6 32 JAWA BARAT 3206 Kab Tasikmalaya
## persentase_balita_stunting satuan tahun Tingkat.Pendidikan.Ibu PDRB
## 1 4.06 PERSEN 2019 30.04 237113
## 2 8.29 PERSEN 2019 13.48 67406
## 3 6.61 PERSEN 2019 13.25 46807
## 4 7.32 PERSEN 2019 30.23 124001
## 5 4.80 PERSEN 2019 17.79 57579
## 6 15.06 PERSEN 2019 14.93 37219
## Tingkat.Kemiskinan JumlahBalita JumlahKasusStunting Ei SMR
## 1 6.66 442162 132825.46 587303.73 22.61615
## 2 6.22 184865 24919.80 46067.99 54.09353
## 3 9.15 179399 23770.37 42643.80 55.74167
## 4 5.94 240699 72763.31 175140.55 41.54566
## 5 8.98 194656 34629.30 67408.01 51.37268
## 6 9.12 108122 16142.61 17453.72 92.48812
## lnSMR AirMinumLayak SanitasiLayak PHBS persentase_pemberian_asi IT IS
## 1 3.118664 91.02 56.00 53.91 53.12 1 1
## 2 3.990715 79.57 69.00 51.10 57.15 1 2
## 3 4.020728 81.50 62.00 62.00 68.78 1 3
## 4 3.726793 97.84 80.00 57.11 63.84 1 4
## 5 3.939106 84.17 76.09 60.02 74.32 1 5
## 6 4.527080 76.18 81.00 54.01 66.77 1 6
## ST
## 1 6.305517
## 2 9.354103
## 3 8.715372
## 4 8.664596
## 5 10.102140
## 6 11.205440
# Join Data Peta dengan Data Stunting
jabar_stunting_join <- jabar_sf %>%
left_join(Stunting, by = c("Kabupaten" = "Kab.Kota"))
## ================= TB ================= ##
## Interval (Menyesuaikan dengan persentase_balita_stunting)
# pretty_breaks diatur untuk skala persentase (misal: 10%, 20%, 30%)
pretty_breaks <- c(-1.25, 1.79, 4.82, 7.85, 10.88,13.90)
# compute labels
labels <- c()
brks <- c(-1.25, 1.79, 4.82, 7.85, 10.88,13.90)
format(brks, scientific=F)
## [1] "-1.25" " 1.79" " 4.82" " 7.85" "10.88" "13.90"
levels(jabar_stunting_join$brks)
## NULL
# Definisikan variabel baru pada dataset hasil join
# Catatan: Pastikan kolom di data CSV Anda bernama 'persentase_balita_stunting'
labels <- labels[1:length(labels)-1]
jabar_stunting_join$brks <- cut(jabar_stunting_join$ST,
breaks = brks,
include.lowest = TRUE,
labels = labels)
brks_scale <- levels(jabar_stunting_join$brks)
labels_scale <- rev(brks_scale)
# Simpan hasil
#ggsave("Stunting_Jabar.png", height = 6, width = 8, dpi = 600)
# Plotting menggunakan ggplot
# Menggunakan geom_sf karena jabar_stunting_join adalah objek 'sf'
A <- ggplot(jabar_stunting_join) +
geom_sf(aes(fill = brks), color="black", size=0.1) +
# Menggunakan Tahun sebagai pengganti Triwulan untuk facet
geom_sf_text(aes(label = id),
size = 1.5, # Ukuran teks (setara txt.cex)
color = "black",
fontface = "bold",
check_overlap = TRUE) +
facet_wrap(.~tahun, ncol=3) +
# Skala warna disesuaikan dengan label kategori stunting
scale_fill_manual(
labels = c("<1.78", "[1.79 – 4.81)", "[4.82 – 7.84)", "[7.85 – 10.87)", ">=10.88"),
values = c("grey95", "#FFFF00", "#F97316","#FF0000","#7F1D1D")
) +
theme_bw() +
ylab("Northing") + xlab("Easting") +
theme(axis.text.x = element_text(angle = 90)) +
theme(legend.position = "bottom",legend.title = element_text(size = 8),
legend.text = element_text(size = 8)) +
theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank()) +
labs(fill = "ST 2019-2024 (%)") +
theme(legend.position="right", text = element_text(size=25)) +
theme(text = element_text(size=13))
A
A <- ggplot(jabar_stunting_join) +
geom_sf(aes(fill = brks), color="black", size=0.1) +
# Menggunakan Tahun sebagai pengganti Triwulan untuk facet
geom_sf_text(aes(label = id),
size = 1.5, # Ukuran teks (setara txt.cex)
color = "black",
fontface = "bold",
check_overlap = TRUE) +
facet_wrap(.~tahun, ncol=3) +
# Skala warna disesuaikan dengan label kategori stunting
scale_fill_manual(
labels = c("<1.78", "[1.79 – 4.81)", "[4.82 – 7.84)", "[7.85 – 10.87)", ">=10.88"),
values = c("grey95", "#FFFDEB", "#F97316", "#DC2626", "#7F1D1D")
) +
theme_bw() +
ylab("Northing") + xlab("Easting") +
theme(axis.text.x = element_text(angle = 90)) +
theme(legend.position = "bottom",legend.title = element_text(size = 8),
legend.text = element_text(size = 8)) +
theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank()) +
labs(fill = "ST 2019-2024 (%)") +
theme(legend.position="right", text = element_text(size=25)) +
theme(text = element_text(size=13))
A
Formula.Ridge1nbstInt = Case ~ f(beta1, Tingkat.Pendidikan.Ibu, model=“iid”, values = c(1:7), hyper = param.beta)+ f(beta2, PDRB, copy=“beta1”, fixed=T)+ f(beta3, Tingkat.Kemiskinan, copy=“beta1”, fixed=T)+ f(beta4, AirMinumLayak, copy=“beta1”, fixed=T)+ f(beta5, SanitasiLayak, copy=“beta1”, fixed=T)+ f(beta6, PHBS, copy=“beta1”, fixed=T)+ f(beta7, persentase_pemberian_asi, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, scale.model = TRUE, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
Model.Ridge1nbstInt <- inla(Formula.Ridge1nbstInt , family=“Gaussian”, data=FullDataLS, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.Ridge1nbstInt <- rbind(Model.Ridge1nbstInt\(summary.fixed, Model.Ridge1nbstInt\)summary.random$beta1[,-1]) round(Coeff.Ridge1nbstInt,4)
summary(Model.Ridge1nbstInt )
FullDataLS1<-FullDataLS FullDataLS1[c(1:60),c(8:17)]<-0
set.seed(1) MeanTemperature1<-FullDataLS1\(MeanTemperature+runif(360,min=0.000000001, max=0.000000002) set.seed(2) Rainfall1<-FullDataLS1\)Rainfall+runif(360,min=0.000000001, max=0.000000002) set.seed(3) SunshineDuration1<-FullDataLS1\(SunshineDuration+runif(360,min=0.000000001, max=0.000000002) set.seed(4) Evaporation1<-FullDataLS1\)Evaporation+runif(360,min=0.000000001, max=0.000000002) set.seed(5) RelativeHumidity1<-FullDataLS1\(RelativeHumidity+runif(360,min=0.000000001, max=0.000000002) set.seed(7) MeanTemperatureL11<-FullDataLS1\)MeanTemperatureL1+runif(360,min=0.000000001, max=0.000000002) set.seed(8) RainfallL11<-FullDataLS1\(RainfallL1+runif(360,min=0.000000001, max=0.000000002) set.seed(9) SunshineDurationL11<-FullDataLS1\)SunshineDurationL1+runif(360,min=0.000000001, max=0.000000002) set.seed(10) EvaporationL11<-FullDataLS1\(EvaporationL1+runif(360,min=0.000000001, max=0.000000002) set.seed(11) RelativeHumidityL11<-FullDataLS1\)RelativeHumidityL1+runif(360,min=0.000000001, max=0.000000002) set.seed(12) MeanTemperatureL21<-FullDataLS1\(MeanTemperatureL2+runif(360,min=0.000000001, max=0.000000002) set.seed(13) RainfallL21<-FullDataLS1\)RainfallL2+runif(360,min=0.000000001, max=0.000000002) set.seed(14) SunshineDurationL21<-FullDataLS1\(SunshineDurationL2+runif(360,min=0.000000001, max=0.000000002) set.seed(15) EvaporationL21<-FullDataLS1\)EvaporationL2+runif(360,min=0.000000001, max=0.000000002) set.seed(16) RelativeHumidityL21<-FullDataLS1$RelativeHumidityL2+runif(360,min=0.000000001, max=0.000000002)
FullDataLS1<-data.frame(FullDataLS, MeanTemperature1,Rainfall1,SunshineDuration1,Evaporation1,RelativeHumidity1, MeanTemperatureL11,RainfallL11,SunshineDurationL11,EvaporationL11,RelativeHumidityL11, MeanTemperatureL21,RainfallL21,SunshineDurationL21,EvaporationL21,RelativeHumidityL21)
set.seed(17) s<-runif(360, min=0.1, max=1)
write.table(s, row.names=FALSE, “s_final.txt”) write.table(FullDataLS1, row.names=FALSE, “FullDataLS1.txt”)
prior.beta = c(0, 0.0001) prior.prec.u = c(10, 9) prior.prec.x = c(10, 9) prior.prec.y = c(10, 9) prec.u = 1 prec.x=1
prior.beta = c(0, 0.0001) prior.prec.u = c(1, 0.0005) prior.prec.x = c(1, 0.0005) prior.prec.y = c(1, 0.0005) prec.u = 1 prec.x=1
Formula.MEB1= Case ~ f(MeanTemperature,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(Rainfall,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDuration,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(Evaporation,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidity,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(MeanTemperatureL1,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RainfallL1,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDurationL1,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(EvaporationL1,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidityL1,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(MeanTemperatureL2,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RainfallL2,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDurationL2,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(EvaporationL2,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidityL2,model=“meb”, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
Model.MEB1 <- inla(Formula.MEB1, data =FullDataLS1, family = “poisson”, E=E, control.fixed = list(mean.intercept = 0, prec.intercept = 0.00001, mean = 0, prec =0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEB1)
Formula.MEB2= Case ~ f(MeanTemperature1,model=“meb”,scale=s, values=MeanTemperature1, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(Rainfall1,model=“meb”,scale=s, values= Rainfall1,constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDuration1,model=“meb”,scale=s, values=SunshineDuration1, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(Evaporation1,model=“meb”,scale=s, values=Evaporation1, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidity1,model=“meb”,scale=s,values=RelativeHumidity1, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(MeanTemperatureL11,model=“meb”,scale=s, values= MeanTemperatureL11, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RainfallL11,model=“meb”,scale=s, values= RainfallL11, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDurationL11,model=“meb”,scale=s, values= SunshineDurationL11, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(EvaporationL11,model=“meb”,scale=s,values=EvaporationL11, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidityL11,model=“meb”,scale=s,values=RelativeHumidityL11,constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(MeanTemperatureL21,model=“meb”,scale=s, values=MeanTemperatureL21 , constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RainfallL21,model=“meb”,scale=s, values= RainfallL21, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(SunshineDurationL21,model=“meb”,scale=s, values= SunshineDurationL21, constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(EvaporationL21,model=“meb”,scale=s,values=EvaporationL21,constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(RelativeHumidityL21,model=“meb”,scale=s, values= RelativeHumidityL21,constr=F, hyper =list(beta = list(param = prior.beta, fixed = FALSE), prec.u =list(param = prior.prec.u, initial = log(prec.u), fixed = FALSE)))+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
Model.MEB2 <- inla(Formula.MEB2, data =FullDataLS1, family = “poisson”, E=E, control.fixed = list(mean.intercept = 0, prec.intercept = 0.00001, mean = 0, prec =0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEB2)
prior.beta = c(0, 0.0001) prior.prec.u = c(10, 9) prior.prec.x = c(10, 9) prior.prec.y = c(10, 9) prec.u = 1 prec.x=1
Formula.MEC1 = Case ~ f(MeanTemperature, model=“mec”, constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Rainfall, model=“mec”, constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDuration, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Evaporation, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidity, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL1, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL1, model=“mec”, constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL1, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL1, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL1, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL2, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL2, model=“mec”, constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL2, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL2, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL2, model=“mec”,
constr=F,
hyper = list(beta = list(prior = “gaussian”, param = prior.beta, fixed =
FALSE ), prec.u = list( prior = “loggamma”, param = prior.prec.u,
initial = log(prec.u), fixed = FALSE ), prec.x = list( prior =
“loggamma”, param = prior.prec.x, initial = log(prec.x), fixed = FALSE
), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(IS1,model = “besag”, graph = W1, constr
= T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”,
cyclic = T, hyper = igprior5))
Model.MEC1 <- inla(Formula.MEC1 , family=“poisson”, data=FullDataLS1, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.00001, prec.intercept=0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEC1)
Formula.MEC2 = Case ~ f(MeanTemperature1, model=“mec”,scale=s,
constr=F, values=MeanTemperature1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Rainfall1, model=“mec”,scale=s,
constr=F, values=Rainfall1, hyper = list(beta = list(prior = “gaussian”,
param = prior.beta, fixed = FALSE ), prec.u = list( prior = “loggamma”,
param = prior.prec.u, initial = log(prec.u), fixed = FALSE ), prec.x =
list( prior = “loggamma”, param = prior.prec.x, initial = log(prec.x),
fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDuration1, model=“mec”,scale=s,
constr=F, values=SunshineDuration1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Evaporation1, model=“mec”,scale=s,
constr=F, values=Evaporation1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidity1, model=“mec”,scale=s,
constr=F, values=RelativeHumidity1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL11, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL11, model=“mec”,scale=s,
constr=F, values=RainfallL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL11,
model=“mec”,scale=s, constr=F, values=SunshineDurationL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL11, model=“mec”,scale=s,
constr=F, values=EvaporationL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL11,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL21, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL21, model=“mec”,scale=s,
constr=F, values=RainfallL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL21,
model=“mec”,scale=s, constr=F, values=SunshineDurationL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL21, model=“mec”,scale=s,
constr=F, values=EvaporationL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL21,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(IS1,model = “besag”, graph = W1, constr
= T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”,
cyclic = T, hyper = igprior5))
Model.MEC2 <- inla(Formula.MEC2 , family=“poisson”, data=FullDataLS1, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.00001, prec.intercept=0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEC2)
###CLUSTER setwd(“/Users/mindra/MINDRA/PENELITIAN/@DISEASE CLUSTERING/DATA”) source(“AHC_clusteringST_function.R”) ## Spatio-temporal AHC algorithm source(“AHC_function.R”)
SMR.prior1<-data.frame(logSMR=DataL$lnSMR) cluster.conf<-
clusteringST.function(data=SMR.prior1, W)
cluster.prior<-cluster.conf
model.selectionR <- function(cluster.prior, data, W, Qs, Qt, Carto=NULL, max.cluster=NULL, final.cluster=NULL, plot.dic=TRUE, strategy=“simplified.laplace”, lincomb=FALSE) {
#### Fit a sequence of models with upto “max.cluster” and choose the best #### by minimising the Deviance Information Criterion.
time <- system.time({
## Define our uniform prior distributions ##
n <- length(unique(data$IS1)) # n <- 30
t <- length(unique(data$IT1)) # t <- 12
t.from <- min(unique(data$IT1)) # t.from Jan-Dec
t.to <- max(unique(data$IT1)) # t.to <- Dec
Rs <- diag(apply(W,2,sum))-W ## Spatial neighborhood matrix
D1 <- diff(diag(t),differences=1) ## RW1 structure matrix
Rt <- t(D1)%*%D1
Qs=Rs
Rt <- t(D1)%*%D1
R.area.Leroux <- diag(dim(Qs)[1])-Qs
if(is.null(final.cluster)){
## Store the DIC values
n <- dim(Qs)[1]
t <- dim(Qt)[1]
if(is.null(max.cluster)) {max.cluster <- n*t-1}
dic.list <- rep(NA, max.cluster)
waic.list <- rep(NA, max.cluster)
## Fit a model with a single cluster
i <- 1
param.beta = list(prec = list(param = c(1.0e-6, 1.0e-6)))
formula = Case ~ f(beta1, MeanTemperature, model="iid", values = c(1:15), hyper = param.beta)+
f(beta2, Rainfall, copy="beta1", fixed=T)+
f(beta3, SunshineDuration, copy="beta1", fixed=T) +
f(beta4, Evaporation, copy="beta1", fixed=T)+
f(beta5, RelativeHumidity, copy="beta1", fixed=T)+
f(beta6, MeanTemperatureL1, copy="beta1", fixed=T)+
f(beta7, RainfallL1, copy="beta1", fixed=T)+
f(beta8, SunshineDurationL1, copy="beta1", fixed=T) +
f(beta9, EvaporationL1, copy="beta1", fixed=T)+
f(beta10, RelativeHumidityL1, copy="beta1", fixed=T)+
f(beta11, MeanTemperatureL2, copy="beta1", fixed=T)+
f(beta12, RainfallL2, copy="beta1", fixed=T)+
f(beta13, SunshineDurationL2, copy="beta1", fixed=T) +
f(beta14, EvaporationL2, copy="beta1", fixed=T)+
f(beta15, RelativeHumidityL2, copy="beta1", fixed=T)+
f(IS1,model = "besag", graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = "rw1", cyclic = T, hyper = igprior5))
model<- inla(formula, family="poisson", data=data, E=E,
control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
dic.list[i] <- model$dic$dic
waic.list[i] <- model$waic$waic
if(plot.dic==TRUE) {
quartz()
y.lim <- dic.list[i]*c(1/1.01,1.005)
plot(1:max.cluster, dic.list, type="l", xlab="Number of spatial clusters", ylab="DIC",
main=paste("Model",i,"of",max.cluster), ylim=y.lim)
points(1,dic.list[i],pch=19)
mtext(paste("Minimun DIC value:",round(min(dic.list,na.rm=T),2)), side=3, line=-2)
}
## Fit separate models with between 2 and the max number of clusters.
for(i in 2:max.cluster){
j <- n*t-i+1
factor.clust <- as.numeric(as.factor(cluster.prior$cluster.store[j,]))
K <- length(unique(factor.clust))
## M: Cluster correspondence matrix ##
M <- matrix(0,n*t,K)
aux <- as.numeric(factor(factor.clust,labels=1:K))
for(ii in 1:(n*t)){
M[ii,aux[ii]] <- 1
}
ID.clust=as.numeric(factor(factor.clust,labels=1:K))
data$Group<-ID.clust
data$G0<-ID.clust
data$G1<-ID.clust
data$G2<-ID.clust
data$G3<-ID.clust
data$G4<-ID.clust
data$G5<-ID.clust
data$G6<-ID.clust
data$G7<-ID.clust
data$G8<-ID.clust
data$G9<-ID.clust
data$G10<-ID.clust
data$G11<-ID.clust
data$G12<-ID.clust
data$G13<-ID.clust
data$G14<-ID.clust
data$G15<-ID.clust
formula = Case ~ f(G1,MeanTemperature, model="iid", constr=T,hyper=pcprior)+
f(G2,Rainfall, model="iid", constr=T,hyper=pcprior)+
f(G3,SunshineDuration, model="iid", constr=T,hyper=pcprior)+
f(G4,Evaporation, model="iid", constr=T,hyper=pcprior)+
f(G5,RelativeHumidity, model="iid", constr=T,hyper=pcprior)+
f(G6,MeanTemperatureL1, model="iid", constr=T,hyper=pcprior)+
f(G7,RainfallL1, model="iid", constr=T,hyper=pcprior)+
f(G8,SunshineDurationL1, model="iid", constr=T,hyper=pcprior)+
f(G9,EvaporationL1, model="iid", constr=T,hyper=pcprior)+
f(G10,RelativeHumidityL1, model="iid", constr=T,hyper=pcprior)+
f(G11,MeanTemperatureL2, model="iid", constr=T,hyper=pcprior)+
f(G12,RainfallL2, model="iid", constr=T,hyper=pcprior)+
f(G13,SunshineDurationL2, model="iid", constr=T,hyper=pcprior)+
f(G14,EvaporationL2, model="iid", constr=T,hyper=pcprior)+
f(G15,RelativeHumidityL2, model="iid", constr=T,hyper=pcprior)+
f(beta1, MeanTemperature, model="iid", values = c(1:15), hyper = param.beta)+
f(beta2, Rainfall, copy="beta1", fixed=T)+
f(beta3, SunshineDuration, copy="beta1", fixed=T) +
f(beta4, Evaporation, copy="beta1", fixed=T)+
f(beta5, RelativeHumidity, copy="beta1", fixed=T)+
f(beta6, MeanTemperatureL1, copy="beta1", fixed=T)+
f(beta7, RainfallL1, copy="beta1", fixed=T)+
f(beta8, SunshineDurationL1, copy="beta1", fixed=T) +
f(beta9, EvaporationL1, copy="beta1", fixed=T)+
f(beta10, RelativeHumidityL1, copy="beta1", fixed=T)+
f(beta11, MeanTemperatureL2, copy="beta1", fixed=T)+
f(beta12, RainfallL2, copy="beta1", fixed=T)+
f(beta13, SunshineDurationL2, copy="beta1", fixed=T) +
f(beta14, EvaporationL2, copy="beta1", fixed=T)+
f(beta15, RelativeHumidityL2, copy="beta1", fixed=T)+
f(IS1,model = "besag", graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = "rw1", cyclic = T, hyper = igprior5))
model <- inla(formula, family="poisson", data=data, E=E,
control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
dic.list[i] <- model$dic$dic
waic.list[i] <- model$waic$waic
if(plot.dic==TRUE) {
if(dic.list[i]<y.lim[1]) {
y.lim[1] <- y.lim[1]-abs(y.lim[1]-dic.list[i])
}
if(dic.list[i]>y.lim[2]) {
y.lim[2] <- y.lim[2]+abs(y.lim[2]-dic.list[i])
}
plot(1:max.cluster, dic.list, type="l", xlab="Number of spatial clusters", ylab="DIC",
main=paste("Model",i,"of",max.cluster), ylim=y.lim)
points(i,dic.list[i],pch=19)
mtext(paste("Minimun DIC value:",round(min(dic.list,na.rm=T),2)), side=3, line=-2)
}
}
}
cat("\n\n ************* RUNNING FINAL MODEL ************* \n\n")
###Fit the final model
if(is.null(final.cluster)){
best.model <- which(dic.list==min(dic.list))
}else{
best.model <- final.cluster
plot.dic <- FALSE
dic.list <- NULL
waic.list <- NULL
}
j <- n*t-best.model+1
factor.clust <- as.numeric(as.factor(cluster.prior$cluster.store[j,]))
K <- length(unique(factor.clust))
## M: Cluster correspondence matrix ##
M <- matrix(0,n*t,K)
aux <- as.numeric(factor(factor.clust,labels=1:K))
for(ii in 1:(n*t)){
M[ii,aux[ii]] <- 1
}
ID.clust=as.numeric(factor(factor.clust,labels=1:K))
data$Group<-ID.clust
if(lincomb) {
lc1 = inla.make.lincomb(Predictor = rep(1/(n*t),n*t))
names(lc1) <- "intercept"
M1 <- matrix(-1/(n*t),n,n*t)
for (i in 1:n) {
M1[i,seq(0,n*(t-1),by=n)+i] <- 1/(n*t)*(n-1)
}
lc2 = inla.make.lincombs(Predictor = M1)
names(lc2) <- paste("spatial.",as.character(seq(1:n)),sep="")
M2 <- matrix(-1/(n*t),t,n*t)
for (i in 1:t) {
M2[i,seq(1,n)+n*(i-1)] <- 1/(n*t)*(t-1)
}
lc3 = inla.make.lincombs(Predictor = M2)
names(lc3) <- paste("temporal.",as.character(seq(1:t)),sep="")
M3 <- matrix(1/(n*t),n*t,n*t)
k=1
for (j in 1:t) {
for (i in 1:n) {
M3[k,seq(0,n*(t-1),by=n)+i] <- 1/(n*t)*(1-n)
M3[k,seq(1,n)+n*(j-1)] <- 1/(n*t)*(1-t)
M3[k,k] <- (n*t-n-t+1)/(n*t)
k=k+1
}
}
lc4 = inla.make.lincombs(Predictor = M3)
names(lc4) <- paste("spatio.temporal.",as.character(seq(1:(n*t))),sep="")
all.lc <- c(lc1,lc2,lc3,lc4)
}else{
all.lc <- NULL
}
if(best.model==1){
formula = Case ~ f(beta1, MeanTemperature, model="iid", values = c(1:15), hyper = param.beta)+
f(beta2, Rainfall, copy="beta1", fixed=T)+
f(beta3, SunshineDuration, copy="beta1", fixed=T) +
f(beta4, Evaporation, copy="beta1", fixed=T)+
f(beta5, RelativeHumidity, copy="beta1", fixed=T)+
f(beta6, MeanTemperatureL1, copy="beta1", fixed=T)+
f(beta7, RainfallL1, copy="beta1", fixed=T)+
f(beta8, SunshineDurationL1, copy="beta1", fixed=T) +
f(beta9, EvaporationL1, copy="beta1", fixed=T)+
f(beta10, RelativeHumidityL1, copy="beta1", fixed=T)+
f(beta11, MeanTemperatureL2, copy="beta1", fixed=T)+
f(beta12, RainfallL2, copy="beta1", fixed=T)+
f(beta13, SunshineDurationL2, copy="beta1", fixed=T) +
f(beta14, EvaporationL2, copy="beta1", fixed=T)+
f(beta15, RelativeHumidityL2, copy="beta1", fixed=T)+
f(IS1,model = "besag", graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = "rw1", cyclic = T, hyper = igprior5))
model.final<- inla(formula, family="poisson", data=data, E=E,
control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
}else{
formula = Case ~ f(G1,MeanTemperature, model="iid", constr=T,hyper=pcprior)+
f(G2,Rainfall, model="iid", constr=T,hyper=pcprior)+
f(G3,SunshineDuration, model="iid", constr=T,hyper=pcprior)+
f(G4,Evaporation, model="iid", constr=T,hyper=pcprior)+
f(G5,RelativeHumidity, model="iid", constr=T,hyper=pcprior)+
f(G6,MeanTemperatureL1, model="iid", constr=T,hyper=pcprior)+
f(G7,RainfallL1, model="iid", constr=T,hyper=pcprior)+
f(G8,SunshineDurationL1, model="iid", constr=T,hyper=pcprior)+
f(G9,EvaporationL1, model="iid", constr=T,hyper=pcprior)+
f(G10,RelativeHumidityL1, model="iid", constr=T,hyper=pcprior)+
f(G11,MeanTemperatureL2, model="iid", constr=T,hyper=pcprior)+
f(G12,RainfallL2, model="iid", constr=T,hyper=pcprior)+
f(G13,SunshineDurationL2, model="iid", constr=T,hyper=pcprior)+
f(G14,EvaporationL2, model="iid", constr=T,hyper=pcprior)+
f(G15,RelativeHumidityL2, model="iid", constr=T,hyper=pcprior)+
f(beta1, MeanTemperature, model="iid", values = c(1:15), hyper = param.beta)+
f(beta2, Rainfall, copy="beta1", fixed=T)+
f(beta3, SunshineDuration, copy="beta1", fixed=T) +
f(beta4, Evaporation, copy="beta1", fixed=T)+
f(beta5, RelativeHumidity, copy="beta1", fixed=T)+
f(beta6, MeanTemperatureL1, copy="beta1", fixed=T)+
f(beta7, RainfallL1, copy="beta1", fixed=T)+
f(beta8, SunshineDurationL1, copy="beta1", fixed=T) +
f(beta9, EvaporationL1, copy="beta1", fixed=T)+
f(beta10, RelativeHumidityL1, copy="beta1", fixed=T)+
f(beta11, MeanTemperatureL2, copy="beta1", fixed=T)+
f(beta12, RainfallL2, copy="beta1", fixed=T)+
f(beta13, SunshineDurationL2, copy="beta1", fixed=T) +
f(beta14, EvaporationL2, copy="beta1", fixed=T)+
f(beta15, RelativeHumidityL2, copy="beta1", fixed=T)+
f(IS1,model = "besag", graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = "rw1", cyclic = T, hyper = igprior5))
model.final <- inla(formula, family="poisson", data=data, E=E,
control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001),
control.predictor=list(compute=TRUE, cdf=c(log(1))),
control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE),
control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = "eb", strategy = "simplified.laplace"))
}
if(plot.dic==TRUE){
plot(1:max.cluster, dic.list, type="l", xlab="Number of spatial clusters", ylab="DIC",
main=paste("Model",best.model,"of",max.cluster), ylim=y.lim)
points(which.min(dic.list),min(dic.list), pch=19, col="red")
lines(rep(which.min(dic.list),2),c(0,min(dic.list)), lty=2, col="red")
axis(1, at=which.min(dic.list), labels=which.min(dic.list), col.axis="red")
mtext(paste("Minimun DIC value:",round(min(dic.list,na.rm=T),2)), side=3, line=-2, col="red")
}
})
results <- list(model.final=model.final, factor.clust=factor.clust, dic.list=dic.list, waic.list=waic.list, cpu.time=time[3], M=M) return(results) }
data<-FullDataLS
head(data)
n <- length(unique(data\(IS1)) # n <- 30 t <- length(unique(data\)IT1)) # t <- 12 t.from <- min(unique(data\(IT1)) # t.from Jan-Dec t.to <- max(unique(data\)IT1)) # t.to <- Dec Rs <- diag(apply(W,2,sum))-W ## Spatial neighborhood matrix
D1 <- diff(diag(t),differences=1) ## RW1 structure matrix Rt <- t(D1)%%D1 Qs=Rs Rt <- t(D1)%%D1
STcluster.modelRan1 <- model.selectionR(cluster.prior=cluster.conf, data, W=W1, Qs=Rs, Qt=Rt, Carto=BANDUNG, max.cluster=360, lincomb=TRUE, plot.dic=TRUE, strategy=“simplified.laplace”)
names(STcluster.modelRan1)
dic<-as.matrix(STcluster.modelRan1\(dic.list)
write.table(dic,"dic.txt")
model.final<-STcluster.modelRan1\)model.final
n<-30 m<-16 #minimum cluster for(i in 1:m){ j <- n*t-i+1 factor.clust <- as.numeric(as.factor(cluster.prior$cluster.store[j,])) K <- length(unique(factor.clust)) aux <- as.numeric(factor(factor.clust,labels=1:K)) }
ID.clust=aux data\(G1<-ID.clust data\)G2<-ID.clust data\(G3<-ID.clust data\)G4<-ID.clust data\(G5<-ID.clust data\)G6<-ID.clust data\(G7<-ID.clust data\)G8<-ID.clust data\(G9<-ID.clust data\)G10<-ID.clust data\(G11<-ID.clust data\)G12<-ID.clust data\(G13<-ID.clust data\)G14<-ID.clust data$G15<-ID.clust
formula16 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model16 <- inla(formula16, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model16 <- rbind(model16\(summary.fixed, model16\)summary.random$beta1[,-1]) round(Coeff.model16,4)
#######Stepwise ###Model Selection My.step.
DataL1<-DataL[-c(1:60), ]
my.variable.list
<-c(“MeanTemperature”,“Rainfall”,“SunshineDuration”,“Evaporation”,“RelativeHumidity”,
“MeanTemperatureL1”,“RainfallL1”,“SunshineDurationL1”,“EvaporationL1”,“RelativeHumidityL1”,
“MeanTemperatureL2”,“RainfallL2”,“SunshineDurationL2”,“EvaporationL2”,“RelativeHumidityL2”)
Step<-My.stepwise.glm(Y = “Case”, myoffset=“E”, variable.list = my.variable.list, data = DataL1, myfamily = “poisson”)
MEC2 GROUP
n<-30 m<-16 #minimum cluster for(i in 1:m){ j <- n*t-i+1 factor.clust <- as.numeric(as.factor(cluster.prior$cluster.store[j,])) K <- length(unique(factor.clust)) aux <- as.numeric(factor(factor.clust,labels=1:K)) }
ID.clust=aux data\(G1<-ID.clust data\)G2<-ID.clust data\(G3<-ID.clust data\)G4<-ID.clust data\(G5<-ID.clust data\)G6<-ID.clust data\(G7<-ID.clust data\)G8<-ID.clust data\(G9<-ID.clust data\)G10<-ID.clust data\(G11<-ID.clust data\)G12<-ID.clust data\(G13<-ID.clust data\)G14<-ID.clust data$G15<-ID.clust
Formula.MEC2G = Case ~ f(G1,MeanTemperature, model=“iid”,
constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”,
constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”,
constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”,
constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”,
constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”,
constr=T,hyper=pcprior)+ f(MeanTemperature1, model=“mec”,scale=s,
constr=F, values=MeanTemperature1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Rainfall1, model=“mec”,scale=s,
constr=F, values=Rainfall1, hyper = list(beta = list(prior = “gaussian”,
param = prior.beta, fixed = FALSE ), prec.u = list( prior = “loggamma”,
param = prior.prec.u, initial = log(prec.u), fixed = FALSE ), prec.x =
list( prior = “loggamma”, param = prior.prec.x, initial = log(prec.x),
fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDuration1, model=“mec”,scale=s,
constr=F, values=SunshineDuration1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Evaporation1, model=“mec”,scale=s,
constr=F, values=Evaporation1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidity1, model=“mec”,scale=s,
constr=F, values=RelativeHumidity1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL11, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL11, model=“mec”,scale=s,
constr=F, values=RainfallL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL11,
model=“mec”,scale=s, constr=F, values=SunshineDurationL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL11, model=“mec”,scale=s,
constr=F, values=EvaporationL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL11,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL21, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL21, model=“mec”,scale=s,
constr=F, values=RainfallL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL21,
model=“mec”,scale=s, constr=F, values=SunshineDurationL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL21, model=“mec”,scale=s,
constr=F, values=EvaporationL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL21,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(IS1,model = “besag”, graph = W1, constr
= T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”,
cyclic = T, hyper = igprior5))
Model.MEC2G <- inla(Formula.MEC2G , family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.00001, prec.intercept=0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEC2G)
n<-30 m<-14 #minimum cluster for(i in 1:m){ j <- n*t-i+1 factor.clust <- as.numeric(as.factor(cluster.prior$cluster.store[j,])) K <- length(unique(factor.clust)) aux <- as.numeric(factor(factor.clust,labels=1:K)) }
ID.clust=aux data\(G1<-ID.clust data\)G2<-ID.clust data\(G3<-ID.clust data\)G4<-ID.clust data\(G5<-ID.clust data\)G6<-ID.clust data\(G7<-ID.clust data\)G8<-ID.clust data\(G9<-ID.clust data\)G10<-ID.clust data\(G11<-ID.clust data\)G12<-ID.clust data\(G13<-ID.clust data\)G14<-ID.clust data$G15<-ID.clust
formula14 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14 <- inla(formula14, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model14 <- rbind(model14\(summary.fixed, model14\)summary.random$beta1[,-1]) round(Coeff.model14,4)
Formula.MEC2G14 = Case ~ f(G1,MeanTemperature, model=“iid”,
constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”,
constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”,
constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”,
constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”,
constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”,
constr=T,hyper=pcprior)+ f(MeanTemperature1, model=“mec”,scale=s,
constr=F, values=MeanTemperature1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Rainfall1, model=“mec”,scale=s,
constr=F, values=Rainfall1, hyper = list(beta = list(prior = “gaussian”,
param = prior.beta, fixed = FALSE ), prec.u = list( prior = “loggamma”,
param = prior.prec.u, initial = log(prec.u), fixed = FALSE ), prec.x =
list( prior = “loggamma”, param = prior.prec.x, initial = log(prec.x),
fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDuration1, model=“mec”,scale=s,
constr=F, values=SunshineDuration1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(Evaporation1, model=“mec”,scale=s,
constr=F, values=Evaporation1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidity1, model=“mec”,scale=s,
constr=F, values=RelativeHumidity1, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL11, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL11, model=“mec”,scale=s,
constr=F, values=RainfallL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL11,
model=“mec”,scale=s, constr=F, values=SunshineDurationL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL11, model=“mec”,scale=s,
constr=F, values=EvaporationL11, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL11,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL11, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(MeanTemperatureL21, model=“mec”,scale=s,
constr=F, values=MeanTemperatureL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RainfallL21, model=“mec”,scale=s,
constr=F, values=RainfallL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(SunshineDurationL21,
model=“mec”,scale=s, constr=F, values=SunshineDurationL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(EvaporationL21, model=“mec”,scale=s,
constr=F, values=EvaporationL21, hyper = list(beta = list(prior =
“gaussian”, param = prior.beta, fixed = FALSE ), prec.u = list( prior =
“loggamma”, param = prior.prec.u, initial = log(prec.u), fixed = FALSE
), prec.x = list( prior = “loggamma”, param = prior.prec.x, initial =
log(prec.x), fixed = FALSE ), mean.x = list( prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(RelativeHumidityL21,
model=“mec”,scale=s, constr=F, values=RelativeHumidityL21, hyper =
list(beta = list(prior = “gaussian”, param = prior.beta, fixed = FALSE
), prec.u = list( prior = “loggamma”, param = prior.prec.u, initial =
log(prec.u), fixed = FALSE ), prec.x = list( prior = “loggamma”, param =
prior.prec.x, initial = log(prec.x), fixed = FALSE ), mean.x = list(
prior = “gaussian”,
initial = 0, fixed=TRUE ) ))+ f(IS1,model = “besag”, graph = W1, constr
= T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”,
cyclic = T, hyper = igprior5))
Model.MEC2G14 <- inla(Formula.MEC2G14 , family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.00001, prec.intercept=0.00001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
summary(Model.MEC2G14)
formula14a = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a <- inla(formula14a, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
#THe best model
formula14a = Case ~ f(G1,MeanTemperature, model=“iid”,
constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”,
constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”,
constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”,
constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”,
constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”,
constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”,
constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”,
constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T,
hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic
= T, hyper = igprior5))
model14a <- inla(formula14a, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a1 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior) model14a1 <- inla(formula14a1, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
#THe best model
formula14a1 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a1 <- inla(formula14a1, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14b1 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)
model14b1 <- inla(formula14b1, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a2 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a2 <- inla(formula14a2, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a3 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a3 <- inla(formula14a3, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a4 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a4 <- inla(formula14a4, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a5 = Case ~ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a5 <- inla(formula14a5, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a6 = Case ~ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a6 <- inla(formula14a6, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a7 = Case ~ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a7 <- inla(formula14a7, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a8 = Case ~ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a8 <- inla(formula14a8, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14a9 = Case ~ f(G3,SunshineDuration, model=“iid”,
constr=T,hyper=pcprior)+
f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+
f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model =
“besag”, graph = W1, constr = T, hyper = hcprior, group = IT2,
control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14a9 <- inla(formula14a9, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14b = Case ~ f(G1,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G2,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G3,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G4,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, Rainfall, model=“iid”, values = c(1:4), hyper = param.beta)+ f(beta2, SunshineDuration, copy=“beta1”, fixed=T) + f(beta3, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta4, EvaporationL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14b <- inla(formula14b, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model14b <- rbind(model14b\(summary.fixed, model14b\)summary.random$beta1[,-1]) round(Coeff.model14b,4)
formula14c = Case ~ f(G1,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G2,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G3,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G4,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14c <- inla(formula14c, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model14c <- rbind(model14c\(summary.fixed, model14c\)summary.random$beta1[,-1]) round(Coeff.model14c,4)
formula14c = Case ~ f(G1,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G2,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G3,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G4,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14c <- inla(formula14c, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula14 = Case ~ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model14 <- inla(formula14, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
formula15 = Case ~f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5))
model15 <- inla(formula15, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model15 <- rbind(model15\(summary.fixed, model15\)summary.random$beta1[,-1]) round(Coeff.model15,4)
A <- matrix(1, ncol = 30, nrow = 1) e <- matrix(0, ncol = 1)
formula15 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5),extraconstr = list(A = A, e = e))
model15 <- inla(formula15, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model15 <- rbind(model15\(summary.fixed, model15\)summary.random$beta1[,-1]) round(Coeff.model15,5)
#####Aditional extraconstr
t<-12 n<-30
A1 <- kronecker(matrix(1,1,t),diag(n))
A2 <- kronecker(diag(t),matrix(1,1,n))
A.constr <- rbind(A1,A2) dim(A.constr)
e=rep(0,n+t)
A1 <- matrix(1, ncol = 30, nrow = 12)
A <- kronecker(Diagonal(12, 1), Matrix(1, ncol = 30, nrow = 1)) e = rep(0, 12)
k<-12 A <- kronecker(Diagonal(k, 1), Matrix(1, ncol = 30, nrow = 1)) A<-as.matrix(A) e <- matrix(0, ncol = k)
dim(A) dim(e)
A <- matrix(1, ncol = 30, nrow = 12) e <- matrix(0, ncol = 12)
formula15.1 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5),extraconstr = list(A = A , e = e))
model15.1 <- inla(formula15.1, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model14 <- rbind(model14\(summary.fixed, model14\)summary.random$beta1[,-1]) round(Coeff.model14,5)
pD15.1<-model15.1\(dic\)dic D15.1<-model15.1\(dic\)mean.deviance
SumLogcpoM15.1<-sum(log(model15.1\(cpo\)cpo))
y<-DATACLUST\(Case E<-DATACLUST\)E
RRH15.1<-model15.1\(summary.fitted.values\)mean*E
R15.1<-sum((RRH15.1-mean(y))2)/sum((y-mean(y))2)
Ra15.1<-1-((360-1)/(360-pD15.1))*(1-R15.1)
interaction<-model14$summary.random
A <- matrix(1, ncol = 30, nrow = 60) e <- matrix(0, ncol = 60)
formula15.2 = Case ~ f(G1,MeanTemperature, model=“iid”, constr=T,hyper=pcprior)+ f(G2,Rainfall, model=“iid”, constr=T,hyper=pcprior)+ f(G3,SunshineDuration, model=“iid”, constr=T,hyper=pcprior)+ f(G4,Evaporation, model=“iid”, constr=T,hyper=pcprior)+ f(G5,RelativeHumidity, model=“iid”, constr=T,hyper=pcprior)+ f(G6,MeanTemperatureL1, model=“iid”, constr=T,hyper=pcprior)+ f(G7,RainfallL1, model=“iid”, constr=T,hyper=pcprior)+ f(G8,SunshineDurationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G9,EvaporationL1, model=“iid”, constr=T,hyper=pcprior)+ f(G10,RelativeHumidityL1, model=“iid”, constr=T,hyper=pcprior)+ f(G11,MeanTemperatureL2, model=“iid”, constr=T,hyper=pcprior)+ f(G12,RainfallL2, model=“iid”, constr=T,hyper=pcprior)+ f(G13,SunshineDurationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G14,EvaporationL2, model=“iid”, constr=T,hyper=pcprior)+ f(G15,RelativeHumidityL2, model=“iid”, constr=T,hyper=pcprior)+ f(beta1, MeanTemperature, model=“iid”, values = c(1:15), hyper = param.beta)+ f(beta2, Rainfall, copy=“beta1”, fixed=T)+ f(beta3, SunshineDuration, copy=“beta1”, fixed=T) + f(beta4, Evaporation, copy=“beta1”, fixed=T)+ f(beta5, RelativeHumidity, copy=“beta1”, fixed=T)+ f(beta6, MeanTemperatureL1, copy=“beta1”, fixed=T)+ f(beta7, RainfallL1, copy=“beta1”, fixed=T)+ f(beta8, SunshineDurationL1, copy=“beta1”, fixed=T) + f(beta9, EvaporationL1, copy=“beta1”, fixed=T)+ f(beta10, RelativeHumidityL1, copy=“beta1”, fixed=T)+ f(beta11, MeanTemperatureL2, copy=“beta1”, fixed=T)+ f(beta12, RainfallL2, copy=“beta1”, fixed=T)+ f(beta13, SunshineDurationL2, copy=“beta1”, fixed=T) + f(beta14, EvaporationL2, copy=“beta1”, fixed=T)+ f(beta15, RelativeHumidityL2, copy=“beta1”, fixed=T)+ f(IS1,model = “besag”, graph = W1, constr = T, hyper = hcprior, group = IT2, control.group = list(model = “rw1”, cyclic = T, hyper = igprior5),extraconstr = list(A = A , e = e))
model15.2 <- inla(formula15.2, family=“poisson”, data=data, E=E, control.fixed=list(mean=0, mean.intercept=0, prec=0.0001, prec.intercept=0.0001), control.predictor=list(compute=TRUE, cdf=c(log(1))), control.compute=list(dic=TRUE, cpo=TRUE, waic=TRUE), control.inla = list(tolerance=1e-20, h=1e-8,int.strategy = “eb”, strategy = “simplified.laplace”))
Coeff.model15.2 <- rbind(model15.2\(summary.fixed, model15.2\)summary.random$beta1[,-1]) round(Coeff.model15.2,5)
pD15.2<-model15.2\(dic\)dic D15.2<-model15.2\(dic\)mean.deviance
SumLogcpoM15.2<-sum(log(model15.2\(cpo\)cpo))
y<-DATACLUST\(Case E<-DATACLUST\)E
RRH15.2<-model15.2\(summary.fitted.values\)mean*E
R15.2<-sum((RRH15.2-mean(y))2)/sum((y-mean(y))2)
Ra15.2<-1-((360-1)/(360-pD15.2))*(1-R15.2)