Pemodelan Prediktif Angka Haraan Hidup Pasien BPJS Penderita Diabetes Mellitus Menggunakan Extreme Gradient Boosting (XGBoost)
Anggota:
-
Muhammad Nachnoer Novatron Fitra Arss (G1401201014)
-
Arsyfia Chairunnisa Azmy (G1401201071)
-
Akmal Riza Wibisono (G1401201086)
-
Steven Kurniawan (G1401201098)
Call Package
lapply(c("randomForest","xgboost","caret","vip","haven","readxl","ggplot2",
"dplyr","lightgbm","h2o","cvms","e1071","caTools","FactoMineR",
"factoextra","hrbrthemes","geojsonio","broom","RColorBrewer","kableExtra"),
library,character.only=T)[[1]]
## [1] "randomForest" "stats" "graphics" "grDevices" "utils"
## [6] "datasets" "methods" "base"
Data Kepesertaan BPJS [Kontekstual DM]
# na.omit menghilangkan seluruh peserta yang masih hidup
pes19<-na.omit(read_dta("D:/Users/Documents/DC/Data Sampel Final 2022/Kontekstual DM/DM2019_kepesertaan.dta"))
pes20<-na.omit(read_dta("D:/Users/Documents/DC/Data Sampel Final 2022/Kontekstual DM/DM2020_kepesertaan.dta"))
pes21<-na.omit(read_dta("D:/Users/Documents/DC/Data Sampel Final 2022/Kontekstual DM/DM2021_kepesertaan.dta"))
Data Gabungan 2019-2021
pes<-rbind(pes19,pes20,pes21);kable(head(pes,10))
|
PSTV01
|
PSTV02
|
PSTV03
|
PSTV04
|
PSTV05
|
PSTV06
|
PSTV07
|
PSTV08
|
PSTV09
|
PSTV10
|
PSTV11
|
PSTV12
|
PSTV13
|
PSTV14
|
PSTV15
|
PSTV16
|
PSTV17
|
PSTV18
|
|
88501975
|
88501975
|
1959-10-02
|
1
|
2
|
2
|
1
|
5
|
12
|
1208
|
3
|
1
|
12
|
1208
|
10.726228
|
2020
|
2
|
2019
|
|
92334880
|
92334880
|
1953-07-23
|
1
|
1
|
2
|
1
|
5
|
74
|
7402
|
9
|
3
|
74
|
7402
|
4.542144
|
2020
|
1
|
2020
|
|
30067147
|
30067147
|
1960-12-31
|
1
|
1
|
2
|
1
|
5
|
53
|
5315
|
3
|
1
|
53
|
5315
|
4.747645
|
2020
|
2
|
2019
|
|
25638855
|
446829014
|
1965-07-01
|
5
|
2
|
1
|
3
|
2
|
18
|
1804
|
3
|
1
|
18
|
1804
|
12.601460
|
2020
|
2
|
2019
|
|
63661969
|
78381593
|
1954-02-09
|
3
|
2
|
2
|
3
|
2
|
33
|
3326
|
9
|
3
|
33
|
3326
|
12.242884
|
2020
|
1
|
2020
|
|
26450747
|
53285517
|
1970-06-20
|
3
|
2
|
2
|
2
|
5
|
31
|
3172
|
3
|
1
|
31
|
3172
|
12.022769
|
2020
|
2
|
2019
|
|
1498708
|
1498708
|
1944-12-31
|
1
|
2
|
3
|
3
|
2
|
33
|
3372
|
3
|
1
|
33
|
3372
|
7.395576
|
2020
|
2
|
2019
|
|
27673768
|
27673768
|
1957-08-16
|
1
|
2
|
3
|
1
|
4
|
31
|
3171
|
8
|
2
|
31
|
3174
|
11.585643
|
2020
|
2
|
2019
|
|
54230078
|
85547689
|
1945-01-01
|
3
|
2
|
2
|
1
|
4
|
73
|
7308
|
9
|
3
|
73
|
7308
|
4.681800
|
2020
|
1
|
2020
|
|
11075653
|
11075653
|
1960-06-25
|
1
|
1
|
2
|
3
|
4
|
73
|
7373
|
3
|
1
|
73
|
7373
|
8.971557
|
2020
|
1
|
2020
|
Praproses Data
Substring Tahun Lahir dari Tanggal Lahir Peserta
pes$lahir<-as.numeric(substring(pes$PSTV03,1,4));head(pes$lahir)
## [1] 1959 1953 1960 1965 1954 1970
Menghitung Usia Peserta
pes$usia<-pes$PSTV18-pes$lahir;head(pes$usia)
## [1] 60 67 59 54 66 49
Menghitung UHH (Jumlah Usia:Jumlah orang meninggal)
ag<-pes%>%group_by(PSTV04,PSTV05,PSTV06,PSTV07,PSTV08,
PSTV09,PSTV10,PSTV11,PSTV12,PSTV13,
PSTV14)%>%summarise(UHH=round(mean(usia)));kable(head(ag,10))
|
PSTV04
|
PSTV05
|
PSTV06
|
PSTV07
|
PSTV08
|
PSTV09
|
PSTV10
|
PSTV11
|
PSTV12
|
PSTV13
|
PSTV14
|
UHH
|
|
1
|
1
|
1
|
1
|
1
|
12
|
1213
|
8
|
2
|
12
|
1275
|
58
|
|
1
|
1
|
1
|
1
|
1
|
31
|
3171
|
2
|
1
|
31
|
3171
|
81
|
|
1
|
1
|
1
|
1
|
1
|
31
|
3172
|
7
|
2
|
31
|
3172
|
68
|
|
1
|
1
|
1
|
1
|
1
|
31
|
3175
|
3
|
1
|
31
|
3175
|
64
|
|
1
|
1
|
1
|
1
|
1
|
32
|
3273
|
3
|
1
|
32
|
3273
|
75
|
|
1
|
1
|
1
|
1
|
1
|
33
|
3301
|
3
|
1
|
33
|
3301
|
72
|
|
1
|
1
|
1
|
1
|
1
|
34
|
3471
|
3
|
1
|
34
|
3471
|
68
|
|
1
|
1
|
1
|
1
|
1
|
35
|
3521
|
3
|
1
|
35
|
3521
|
82
|
|
1
|
1
|
1
|
1
|
1
|
35
|
3578
|
9
|
2
|
32
|
3273
|
69
|
|
1
|
1
|
1
|
1
|
1
|
61
|
6171
|
3
|
1
|
61
|
6171
|
68
|
Partisi Data
set.seed(123);i<-createDataPartition(ag$UHH,p=0.75,list=F)
train<-ag[i,];xgbtr<-xgb.DMatrix(data=data.matrix(train[,-12]),label=train$UHH)
test<-ag[-i,];xgbts<-xgb.DMatrix(data=data.matrix(test[,-12]),label=test$UHH)
Wishing List
wl<-list(train=xgbtr,test=xgbts)
10-Fold Cross Validation
cv<-xgb.cv(data=xgbtr,nrounds=150,max.depth=68,nfold=10,eta=0.03,metric=list("mape"))
## [1] train-mape:0.961294+0.000012 test-mape:0.961296+0.000187
## [2] train-mape:0.931899+0.000019 test-mape:0.931904+0.000329
## [3] train-mape:0.903387+0.000021 test-mape:0.903386+0.000470
## [4] train-mape:0.875734+0.000026 test-mape:0.875737+0.000605
## [5] train-mape:0.848910+0.000029 test-mape:0.848909+0.000739
## [6] train-mape:0.822894+0.000027 test-mape:0.822886+0.000869
## [7] train-mape:0.797656+0.000030 test-mape:0.797643+0.000996
## [8] train-mape:0.773183+0.000031 test-mape:0.773163+0.001119
## [9] train-mape:0.749448+0.000033 test-mape:0.749423+0.001240
## [10] train-mape:0.726436+0.000036 test-mape:0.726403+0.001369
## [11] train-mape:0.704121+0.000034 test-mape:0.704081+0.001494
## [12] train-mape:0.682483+0.000031 test-mape:0.682437+0.001619
## [13] train-mape:0.661502+0.000035 test-mape:0.661464+0.001736
## [14] train-mape:0.641153+0.000032 test-mape:0.641127+0.001854
## [15] train-mape:0.621423+0.000040 test-mape:0.621399+0.001961
## [16] train-mape:0.602296+0.000046 test-mape:0.602275+0.002075
## [17] train-mape:0.583738+0.000050 test-mape:0.583729+0.002174
## [18] train-mape:0.565759+0.000053 test-mape:0.565763+0.002253
## [19] train-mape:0.548339+0.000054 test-mape:0.548349+0.002311
## [20] train-mape:0.531452+0.000060 test-mape:0.531488+0.002373
## [21] train-mape:0.515092+0.000066 test-mape:0.515150+0.002401
## [22] train-mape:0.499236+0.000067 test-mape:0.499306+0.002431
## [23] train-mape:0.483881+0.000071 test-mape:0.483963+0.002483
## [24] train-mape:0.468997+0.000076 test-mape:0.469094+0.002523
## [25] train-mape:0.454601+0.000075 test-mape:0.454717+0.002570
## [26] train-mape:0.440660+0.000082 test-mape:0.440816+0.002606
## [27] train-mape:0.427172+0.000082 test-mape:0.427357+0.002635
## [28] train-mape:0.414104+0.000079 test-mape:0.414315+0.002658
## [29] train-mape:0.401432+0.000079 test-mape:0.401694+0.002677
## [30] train-mape:0.389142+0.000070 test-mape:0.389456+0.002700
## [31] train-mape:0.377249+0.000071 test-mape:0.377607+0.002734
## [32] train-mape:0.365736+0.000070 test-mape:0.366140+0.002755
## [33] train-mape:0.354583+0.000075 test-mape:0.355046+0.002800
## [34] train-mape:0.343789+0.000078 test-mape:0.344305+0.002840
## [35] train-mape:0.333339+0.000078 test-mape:0.333927+0.002893
## [36] train-mape:0.323228+0.000074 test-mape:0.323874+0.002963
## [37] train-mape:0.313461+0.000078 test-mape:0.314190+0.003038
## [38] train-mape:0.304040+0.000078 test-mape:0.304840+0.003107
## [39] train-mape:0.294921+0.000080 test-mape:0.295804+0.003193
## [40] train-mape:0.286106+0.000093 test-mape:0.287075+0.003271
## [41] train-mape:0.277594+0.000097 test-mape:0.278652+0.003361
## [42] train-mape:0.269377+0.000102 test-mape:0.270550+0.003450
## [43] train-mape:0.261463+0.000119 test-mape:0.262747+0.003539
## [44] train-mape:0.253825+0.000130 test-mape:0.255224+0.003610
## [45] train-mape:0.246440+0.000145 test-mape:0.248011+0.003689
## [46] train-mape:0.239318+0.000147 test-mape:0.241050+0.003741
## [47] train-mape:0.232437+0.000158 test-mape:0.234380+0.003810
## [48] train-mape:0.225802+0.000158 test-mape:0.227971+0.003854
## [49] train-mape:0.219406+0.000154 test-mape:0.221816+0.003884
## [50] train-mape:0.213244+0.000163 test-mape:0.215903+0.003896
## [51] train-mape:0.207311+0.000163 test-mape:0.210271+0.003897
## [52] train-mape:0.201572+0.000172 test-mape:0.204855+0.003903
## [53] train-mape:0.196053+0.000174 test-mape:0.199686+0.003915
## [54] train-mape:0.190711+0.000173 test-mape:0.194745+0.003902
## [55] train-mape:0.185573+0.000166 test-mape:0.190046+0.003859
## [56] train-mape:0.180616+0.000171 test-mape:0.185548+0.003833
## [57] train-mape:0.175826+0.000150 test-mape:0.181276+0.003773
## [58] train-mape:0.171212+0.000151 test-mape:0.177193+0.003731
## [59] train-mape:0.166759+0.000142 test-mape:0.173315+0.003690
## [60] train-mape:0.162477+0.000127 test-mape:0.169602+0.003670
## [61] train-mape:0.158333+0.000133 test-mape:0.166096+0.003670
## [62] train-mape:0.154341+0.000132 test-mape:0.162761+0.003641
## [63] train-mape:0.150483+0.000113 test-mape:0.159577+0.003616
## [64] train-mape:0.146746+0.000120 test-mape:0.156551+0.003612
## [65] train-mape:0.143131+0.000118 test-mape:0.153716+0.003602
## [66] train-mape:0.139647+0.000130 test-mape:0.150999+0.003625
## [67] train-mape:0.136261+0.000135 test-mape:0.148436+0.003614
## [68] train-mape:0.132980+0.000143 test-mape:0.146020+0.003614
## [69] train-mape:0.129812+0.000146 test-mape:0.143748+0.003658
## [70] train-mape:0.126734+0.000149 test-mape:0.141582+0.003668
## [71] train-mape:0.123756+0.000145 test-mape:0.139553+0.003660
## [72] train-mape:0.120887+0.000156 test-mape:0.137606+0.003668
## [73] train-mape:0.118097+0.000146 test-mape:0.135803+0.003639
## [74] train-mape:0.115394+0.000158 test-mape:0.134092+0.003635
## [75] train-mape:0.112766+0.000148 test-mape:0.132484+0.003608
## [76] train-mape:0.110205+0.000154 test-mape:0.130965+0.003569
## [77] train-mape:0.107735+0.000159 test-mape:0.129532+0.003567
## [78] train-mape:0.105336+0.000153 test-mape:0.128170+0.003567
## [79] train-mape:0.103009+0.000144 test-mape:0.126912+0.003560
## [80] train-mape:0.100746+0.000146 test-mape:0.125691+0.003554
## [81] train-mape:0.098551+0.000151 test-mape:0.124547+0.003528
## [82] train-mape:0.096413+0.000157 test-mape:0.123487+0.003512
## [83] train-mape:0.094332+0.000156 test-mape:0.122503+0.003506
## [84] train-mape:0.092308+0.000150 test-mape:0.121586+0.003488
## [85] train-mape:0.090341+0.000150 test-mape:0.120725+0.003440
## [86] train-mape:0.088427+0.000159 test-mape:0.119951+0.003423
## [87] train-mape:0.086564+0.000164 test-mape:0.119201+0.003390
## [88] train-mape:0.084754+0.000171 test-mape:0.118497+0.003370
## [89] train-mape:0.082993+0.000173 test-mape:0.117854+0.003368
## [90] train-mape:0.081278+0.000178 test-mape:0.117259+0.003362
## [91] train-mape:0.079605+0.000189 test-mape:0.116724+0.003368
## [92] train-mape:0.077976+0.000190 test-mape:0.116212+0.003366
## [93] train-mape:0.076387+0.000186 test-mape:0.115741+0.003356
## [94] train-mape:0.074841+0.000198 test-mape:0.115297+0.003351
## [95] train-mape:0.073331+0.000204 test-mape:0.114875+0.003348
## [96] train-mape:0.071852+0.000205 test-mape:0.114501+0.003338
## [97] train-mape:0.070411+0.000211 test-mape:0.114149+0.003320
## [98] train-mape:0.069007+0.000208 test-mape:0.113833+0.003328
## [99] train-mape:0.067642+0.000221 test-mape:0.113526+0.003333
## [100] train-mape:0.066303+0.000223 test-mape:0.113253+0.003343
## [101] train-mape:0.064997+0.000227 test-mape:0.113018+0.003354
## [102] train-mape:0.063729+0.000234 test-mape:0.112793+0.003336
## [103] train-mape:0.062484+0.000237 test-mape:0.112595+0.003330
## [104] train-mape:0.061277+0.000233 test-mape:0.112411+0.003318
## [105] train-mape:0.060095+0.000230 test-mape:0.112261+0.003303
## [106] train-mape:0.058936+0.000228 test-mape:0.112109+0.003291
## [107] train-mape:0.057803+0.000228 test-mape:0.111981+0.003277
## [108] train-mape:0.056692+0.000223 test-mape:0.111860+0.003281
## [109] train-mape:0.055603+0.000227 test-mape:0.111755+0.003275
## [110] train-mape:0.054538+0.000224 test-mape:0.111675+0.003297
## [111] train-mape:0.053499+0.000220 test-mape:0.111600+0.003312
## [112] train-mape:0.052484+0.000220 test-mape:0.111540+0.003323
## [113] train-mape:0.051494+0.000217 test-mape:0.111499+0.003340
## [114] train-mape:0.050525+0.000215 test-mape:0.111477+0.003343
## [115] train-mape:0.049575+0.000214 test-mape:0.111454+0.003344
## [116] train-mape:0.048648+0.000213 test-mape:0.111437+0.003349
## [117] train-mape:0.047738+0.000213 test-mape:0.111433+0.003352
## [118] train-mape:0.046850+0.000212 test-mape:0.111432+0.003362
## [119] train-mape:0.045977+0.000213 test-mape:0.111454+0.003366
## [120] train-mape:0.045127+0.000212 test-mape:0.111475+0.003388
## [121] train-mape:0.044293+0.000209 test-mape:0.111504+0.003399
## [122] train-mape:0.043477+0.000207 test-mape:0.111542+0.003409
## [123] train-mape:0.042679+0.000210 test-mape:0.111587+0.003409
## [124] train-mape:0.041895+0.000208 test-mape:0.111628+0.003425
## [125] train-mape:0.041128+0.000204 test-mape:0.111668+0.003440
## [126] train-mape:0.040370+0.000202 test-mape:0.111713+0.003438
## [127] train-mape:0.039632+0.000198 test-mape:0.111767+0.003442
## [128] train-mape:0.038910+0.000192 test-mape:0.111825+0.003455
## [129] train-mape:0.038202+0.000189 test-mape:0.111878+0.003463
## [130] train-mape:0.037510+0.000186 test-mape:0.111943+0.003476
## [131] train-mape:0.036832+0.000183 test-mape:0.112003+0.003487
## [132] train-mape:0.036164+0.000182 test-mape:0.112051+0.003484
## [133] train-mape:0.035512+0.000176 test-mape:0.112108+0.003490
## [134] train-mape:0.034868+0.000176 test-mape:0.112159+0.003502
## [135] train-mape:0.034238+0.000174 test-mape:0.112208+0.003498
## [136] train-mape:0.033622+0.000173 test-mape:0.112261+0.003506
## [137] train-mape:0.033018+0.000169 test-mape:0.112319+0.003501
## [138] train-mape:0.032428+0.000167 test-mape:0.112381+0.003513
## [139] train-mape:0.031844+0.000161 test-mape:0.112442+0.003517
## [140] train-mape:0.031273+0.000159 test-mape:0.112509+0.003516
## [141] train-mape:0.030715+0.000155 test-mape:0.112579+0.003510
## [142] train-mape:0.030166+0.000147 test-mape:0.112646+0.003518
## [143] train-mape:0.029626+0.000141 test-mape:0.112714+0.003526
## [144] train-mape:0.029099+0.000136 test-mape:0.112772+0.003528
## [145] train-mape:0.028585+0.000130 test-mape:0.112830+0.003535
## [146] train-mape:0.028076+0.000124 test-mape:0.112888+0.003538
## [147] train-mape:0.027580+0.000119 test-mape:0.112951+0.003538
## [148] train-mape:0.027090+0.000118 test-mape:0.113013+0.003536
## [149] train-mape:0.026612+0.000116 test-mape:0.113083+0.003537
## [150] train-mape:0.026144+0.000116 test-mape:0.113146+0.003544
cvd<-cv$evaluation_log
gcvd<-ggplot(cvd,aes(x=iter))+geom_line(aes(y=train_mape_mean),lwd=2,col="purple")+
geom_line(aes(y=test_mape_mean),lwd=2,col="coral")+
geom_label(aes(label="Training",y=cv$evaluation_log[150,2][[1]],x=157),col="purple",lwd=2,size=2.5)+
geom_label(aes(label="Testing",y=cv$evaluation_log[150,4][[1]],x=157),col="coral",lwd=2,size=2.5)+
theme_ipsum_rc(grid=F,axis_title_just = "center",axis_title_size = 12)+
labs(x="\nIterations",y="MAPE Mean\n",title="Learning Curve Plot of 10 CV-Model")+
theme(plot.title=element_text(hjust=0.5))+xlim(c(0,160))+
geom_label(aes(label="Details:\nnrounds = 150\nmax depth = 68\neta = 0.03",y=0.4,x=135),
lwd=5,size=2.5)+geom_vline(aes(xintercept=cv$evaluation_log$iter[which.min(cv$evaluation_log$test_mape_mean)][[1]]),
lwd=2,lty=2,col="darkgreen")+geom_label(aes(x=133,y=0.6,label="Minimum MAPE Test: 0.114\nNumber of Iteration: 118"),size=3, col="darkgreen",lwd=2,hjust=0.25,vjust=-0.4);gcvd

Pemodelan dengan memilih maksimum iterasi terbaik dari hasil 10-CV
xt<-xgb.train(data=xgbtr,watchlist = wl,nrounds=cv$evaluation_log[which.min(cv$evaluation_log$test_mape_mean),1][[1]],
max.depth=68,eta=0.03,eval_metric="mape");xt
## [1] train-mape:0.961300 test-mape:0.961133
## [2] train-mape:0.931908 test-mape:0.931614
## [3] train-mape:0.903396 test-mape:0.902979
## [4] train-mape:0.875740 test-mape:0.875213
## [5] train-mape:0.848906 test-mape:0.848261
## [6] train-mape:0.822896 test-mape:0.822151
## [7] train-mape:0.797659 test-mape:0.796806
## [8] train-mape:0.773178 test-mape:0.772225
## [9] train-mape:0.749423 test-mape:0.748357
## [10] train-mape:0.726407 test-mape:0.725229
## [11] train-mape:0.704097 test-mape:0.702805
## [12] train-mape:0.682465 test-mape:0.681070
## [13] train-mape:0.661465 test-mape:0.659957
## [14] train-mape:0.641119 test-mape:0.639492
## [15] train-mape:0.621374 test-mape:0.619636
## [16] train-mape:0.602256 test-mape:0.600437
## [17] train-mape:0.583711 test-mape:0.581838
## [18] train-mape:0.565746 test-mape:0.563795
## [19] train-mape:0.548332 test-mape:0.546330
## [20] train-mape:0.531442 test-mape:0.529389
## [21] train-mape:0.515082 test-mape:0.513039
## [22] train-mape:0.499210 test-mape:0.497176
## [23] train-mape:0.483857 test-mape:0.481827
## [24] train-mape:0.468978 test-mape:0.467036
## [25] train-mape:0.454579 test-mape:0.452705
## [26] train-mape:0.440633 test-mape:0.438810
## [27] train-mape:0.427147 test-mape:0.425372
## [28] train-mape:0.414087 test-mape:0.412382
## [29] train-mape:0.401407 test-mape:0.399846
## [30] train-mape:0.389122 test-mape:0.387690
## [31] train-mape:0.377238 test-mape:0.375927
## [32] train-mape:0.365713 test-mape:0.364533
## [33] train-mape:0.354566 test-mape:0.353558
## [34] train-mape:0.343757 test-mape:0.342970
## [35] train-mape:0.333326 test-mape:0.332760
## [36] train-mape:0.323215 test-mape:0.322879
## [37] train-mape:0.313443 test-mape:0.313358
## [38] train-mape:0.304009 test-mape:0.304146
## [39] train-mape:0.294898 test-mape:0.295266
## [40] train-mape:0.286086 test-mape:0.286718
## [41] train-mape:0.277587 test-mape:0.278439
## [42] train-mape:0.269378 test-mape:0.270469
## [43] train-mape:0.261464 test-mape:0.262816
## [44] train-mape:0.253797 test-mape:0.255409
## [45] train-mape:0.246452 test-mape:0.248324
## [46] train-mape:0.239300 test-mape:0.241499
## [47] train-mape:0.232433 test-mape:0.234981
## [48] train-mape:0.225826 test-mape:0.228650
## [49] train-mape:0.219432 test-mape:0.222585
## [50] train-mape:0.213290 test-mape:0.216737
## [51] train-mape:0.207321 test-mape:0.211102
## [52] train-mape:0.201592 test-mape:0.205707
## [53] train-mape:0.196050 test-mape:0.200525
## [54] train-mape:0.190767 test-mape:0.195589
## [55] train-mape:0.185621 test-mape:0.190881
## [56] train-mape:0.180644 test-mape:0.186371
## [57] train-mape:0.175847 test-mape:0.182125
## [58] train-mape:0.171244 test-mape:0.178022
## [59] train-mape:0.166803 test-mape:0.174095
## [60] train-mape:0.162505 test-mape:0.170392
## [61] train-mape:0.158334 test-mape:0.166819
## [62] train-mape:0.154328 test-mape:0.163416
## [63] train-mape:0.150458 test-mape:0.160234
## [64] train-mape:0.146771 test-mape:0.157226
## [65] train-mape:0.143240 test-mape:0.154328
## [66] train-mape:0.139725 test-mape:0.151630
## [67] train-mape:0.136349 test-mape:0.149047
## [68] train-mape:0.133058 test-mape:0.146622
## [69] train-mape:0.129909 test-mape:0.144327
## [70] train-mape:0.126823 test-mape:0.142183
## [71] train-mape:0.123888 test-mape:0.140125
## [72] train-mape:0.121010 test-mape:0.138200
## [73] train-mape:0.118264 test-mape:0.136392
## [74] train-mape:0.115572 test-mape:0.134667
## [75] train-mape:0.112934 test-mape:0.133113
## [76] train-mape:0.110363 test-mape:0.131658
## [77] train-mape:0.107877 test-mape:0.130201
## [78] train-mape:0.105483 test-mape:0.128921
## [79] train-mape:0.103135 test-mape:0.127745
## [80] train-mape:0.100865 test-mape:0.126570
## [81] train-mape:0.098670 test-mape:0.125515
## [82] train-mape:0.096528 test-mape:0.124561
## [83] train-mape:0.094458 test-mape:0.123721
## [84] train-mape:0.092461 test-mape:0.122875
## [85] train-mape:0.090495 test-mape:0.122105
## [86] train-mape:0.088626 test-mape:0.121382
## [87] train-mape:0.086785 test-mape:0.120721
## [88] train-mape:0.084999 test-mape:0.120100
## [89] train-mape:0.083245 test-mape:0.119526
## [90] train-mape:0.081544 test-mape:0.119014
## [91] train-mape:0.079886 test-mape:0.118528
## [92] train-mape:0.078256 test-mape:0.118084
## [93] train-mape:0.076664 test-mape:0.117681
## [94] train-mape:0.075125 test-mape:0.117328
## [95] train-mape:0.073604 test-mape:0.116996
## [96] train-mape:0.072124 test-mape:0.116730
## [97] train-mape:0.070697 test-mape:0.116445
## [98] train-mape:0.069287 test-mape:0.116180
## [99] train-mape:0.067922 test-mape:0.115956
## [100] train-mape:0.066584 test-mape:0.115749
## [101] train-mape:0.065287 test-mape:0.115540
## [102] train-mape:0.064030 test-mape:0.115390
## [103] train-mape:0.062792 test-mape:0.115242
## [104] train-mape:0.061563 test-mape:0.115061
## [105] train-mape:0.060376 test-mape:0.114930
## [106] train-mape:0.059228 test-mape:0.114829
## [107] train-mape:0.058085 test-mape:0.114677
## [108] train-mape:0.056982 test-mape:0.114616
## [109] train-mape:0.055893 test-mape:0.114529
## [110] train-mape:0.054829 test-mape:0.114497
## [111] train-mape:0.053787 test-mape:0.114420
## [112] train-mape:0.052777 test-mape:0.114426
## [113] train-mape:0.051778 test-mape:0.114419
## [114] train-mape:0.050817 test-mape:0.114443
## [115] train-mape:0.049856 test-mape:0.114424
## [116] train-mape:0.048938 test-mape:0.114434
## [117] train-mape:0.048046 test-mape:0.114449
## [118] train-mape:0.047151 test-mape:0.114454
## ##### xgb.Booster
## raw: 13.1 Mb
## call:
## xgb.train(data = xgbtr, nrounds = cv$evaluation_log[which.min(cv$evaluation_log$test_mape_mean),
## 1][[1]], watchlist = wl, max.depth = 68, eta = 0.03, eval_metric = "mape")
## params (as set within xgb.train):
## max_depth = "68", eta = "0.03", eval_metric = "mape", validate_parameters = "TRUE"
## xgb.attributes:
## niter
## callbacks:
## cb.print.evaluation(period = print_every_n)
## cb.evaluation.log()
## # of features: 11
## niter: 118
## nfeatures : 11
## evaluation_log:
## iter train_mape test_mape
## 1 0.96130003 0.9611331
## 2 0.93190757 0.9316139
## ---
## 117 0.04804570 0.1144491
## 118 0.04715095 0.1144538
xt$evaluation_log[118,]
## iter train_mape test_mape
## 1: 118 0.04715095 0.1144538
Variable Importance
v<-vip(xt)
v$data$Variable[1]<-"Segementasi\nPeserta\n"
v$data$Variable[2]<-"Kab/Kota\nPeserta"
v$data$Variable[3]<-" Hubungan\nKeluarga"
v$data$Variable[4]<-"Kab/Kota\nFaskes"
v$data$Variable[5]<-"Status\nPerkawinan"
v$data$Variable[6]<-attributes(pes$PSTV07)$label
v$data$Variable[7]<-"Provinsi\nPeserta"
v$data$Variable[8]<-"Kepemilikan\b\\b\nFaskes"
v$data$Variable[9]<-"Jenis\nKelamin"
v$data$Variable[10]<-"Jenis\nFaskes"
vipl<-ggplot(v$data,aes(x=reorder(Variable,Importance),y=Importance,fill=Importance))+
geom_bar(stat="identity")+coord_polar("x",start=6)+
theme_ipsum_rc()+theme(axis.title.x.bottom = element_blank(),
axis.title.y.left = element_blank(),
axis.text.y.left = element_blank(),
axis.text.x = element_text(size=13),
text=element_text(size=12))+
scale_fill_gradientn(colours=c("orange","#0c134f"));vipl

Map Chart
Geojson File
spdf<-geojson_read("indonesia-geojson-master/indonesia.geojson",what="sp")
Praproses Geojson file
rgeos::gIsValid(spdf)
## [1] FALSE
spdf<-rgeos::gBuffer(spdf,byid=T,width=0);rgeos::gIsValid(spdf)
## [1] TRUE
sp<-tidy(spdf,region="state");sp
## # A tibble: 14,811 × 7
## long lat order hole piece group id
## <dbl> <dbl> <int> <lgl> <fct> <fct> <chr>
## 1 95.9 5.50 1 FALSE 1 Aceh.1 Aceh
## 2 95.9 5.43 2 FALSE 1 Aceh.1 Aceh
## 3 95.9 5.45 3 FALSE 1 Aceh.1 Aceh
## 4 95.9 5.42 4 FALSE 1 Aceh.1 Aceh
## 5 96.1 5.28 5 FALSE 1 Aceh.1 Aceh
## 6 96.1 5.26 6 FALSE 1 Aceh.1 Aceh
## 7 96.3 5.26 7 FALSE 1 Aceh.1 Aceh
## 8 96.4 5.2 8 FALSE 1 Aceh.1 Aceh
## 9 96.4 5.20 9 FALSE 1 Aceh.1 Aceh
## 10 96.5 5.24 10 FALSE 1 Aceh.1 Aceh
## # ℹ 14,801 more rows
Praproses Data Kepsertaan untuk Map Chart
xgbd<-xgb.DMatrix(data=data.matrix(ag[,-12]),label=ag$UHH)
ap<-data.frame(ag,predict=round(predict(xt,xgbd)))#xgbts
ap$PSTV13<-as.character(ap$PSTV13)
daf<-data.frame(code=attributes(test$PSTV13)$labels)
daf$huruf<-rownames(daf)
daf$code<-as.character(daf$code)
Left join Geojson file dan Data Kepesertaan
AP<-ap%>%left_join(.,daf,by=c("PSTV13"="code"))
sp$id<-toupper(sp$id)
s<-sp%>%left_join(.,AP,by=c("id"="huruf"))
Map Chart
ggplot(data=s,aes(x=long,y=lat,group=group,fill=predict))+
geom_polygon(color="grey",show.legend = T)+theme_ft_rc()+coord_map()+
labs(fill="",title="Peta Spasial Prediksi AHH Penderita DM di Indonesia [2019-2021]")+
theme(plot.title=element_text(hjust=0.5),legend.position = "bottom",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.title.x.bottom = element_blank(),
axis.title.y.left = element_blank())+
scale_fill_gradientn(colours=c("orange","navyblue"))
