Tulisan ini adalah langkah langkah dalam melakukan prediksi banjir di Jakarta Timur, prediksi ini akan di jadikan karya ilmiah yang merupakan syarat kelulusan mahasiswa di Universitas Terbuka. Anggaplah kita merupakan data analyst, sebagai data analist prosedur dalam melakukan prediksi adalah :
Pengumpulan data
Data cleaning
Explorasi data
Modeling
Kesimpulan
Dalam pengerjaan ini package yang di gunakan adalah :
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:neuralnet':
##
## compute
## 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(neuralnet)
library(iml)
library(rpart)
library(readr)
library(magrittr)
library(tibble)
library(skimr)
library(rpart.plot)
library(randomForest)## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
## The following object is masked from 'package:dplyr':
##
## combine
## Loading required package: lattice
## Welcome to DALEX (version: 2.4.3).
## Find examples and detailed introduction at: http://ema.drwhy.ai/
## Additional features will be available after installation of: ggpubr.
## Use 'install_dependencies()' to get all suggested dependencies
##
## Attaching package: 'DALEX'
## The following object is masked from 'package:dplyr':
##
## explain
Data yang digunakn dalam Karya Ilmiah ini bersumber dari riwayat banjir di Jakarta timur dapat di aksess dengan cara klik di sini , dan data tinggi muka air (TMA) dan Curah hujan di ambil dari DSDA DKI jakarta dapat di akses dengan cara klik di sini.
## Kejadian KELURAHAN LUAS.WILAYAH KETINGGIAN.WILAYAH RAIN_D.1 RAINFALL_D.1
## 1 BANJIR KAMPUNG_MELAYU 0.48 10 NO 0
## 2 BANJIR BIDARA_CINA 1.26 19 NO 0
## 3 BANJIR BALEKAMBANG 1.67 34 NO 0
## 4 BANJIR CAWANG 1.79 21 NO 0
## 5 BANJIR KAMPUNG_TENGAH 2.03 28 NO 0
## RAIN_LAST3D RAINFALL_LAST3D RAIN_LAST7D RAINFALL_LAST7D TYPE.HUJAN.D1
## 1 NO 0 NO 0 TIDAK
## 2 NO 0 NO 0 TIDAK
## 3 NO 0 NO 0 TIDAK
## 4 NO 0 NO 0 TIDAK
## 5 NO 0 NO 83 TIDAK
## CIPINANG.HULU SUNTER.HULU PULO.GADUNG
## 1 160 250 450
## 2 160 250 450
## 3 160 250 450
## 4 160 250 450
## 5 90 140 330
Data cleaning ini di lkukan membersihkan data dari Missing value, data Duplicate, data beroutlier, Unbalancing data dan beberapa pembersihan data lainnya agar data siap di lakukan eksplorasi dan model.
untuk data Duplicate sendiri tidak akan kita lakukan penghapusan data, sebap data tersebut sudah di filter berdasarkan data dari BNPB sendiri.
Outlier pun tidak akan di eksekusi, sebap banjir terjadi di karenakan data yang outlier. contoh dalam hal ini adalah ketinggian muka air. jika terjadi banjir maka kemungkinan besar terjadi kemunculan data yang tidak wajar.
## 'data.frame': 1015 obs. of 14 variables:
## $ Kejadian : chr "BANJIR" "BANJIR" "BANJIR" "BANJIR" ...
## $ KELURAHAN : chr "KAMPUNG_MELAYU" "BIDARA_CINA" "BALEKAMBANG" "CAWANG" ...
## $ LUAS.WILAYAH : num 0.48 1.26 1.67 1.79 2.03 1.98 1.67 1.8 1.79 2.09 ...
## $ KETINGGIAN.WILAYAH: int 10 19 34 21 28 39 34 26 21 34 ...
## $ RAIN_D.1 : chr "NO" "NO" "NO" "NO" ...
## $ RAINFALL_D.1 : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAIN_LAST3D : chr "NO" "NO" "NO" "NO" ...
## $ RAINFALL_LAST3D : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAIN_LAST7D : chr "NO" "NO" "NO" "NO" ...
## $ RAINFALL_LAST7D : num 0 0 0 0 83 83 83 83 83 83 ...
## $ TYPE.HUJAN.D1 : chr "TIDAK" "TIDAK" "TIDAK" "TIDAK" ...
## $ CIPINANG.HULU : int 160 160 160 160 90 90 90 90 90 90 ...
## $ SUNTER.HULU : int 250 250 250 250 140 140 140 140 140 140 ...
## $ PULO.GADUNG : int 450 450 450 450 330 330 330 330 330 330 ...
data di atas masih banyak yang bertype chr / karakter, sementara itu dalam melakukan modeling data harus bertype Numerik atau Integer dan Factor. sehingga harus di rubah terlebih dahulu.
Karil$KELURAHAN <- as.factor(Karil$KELURAHAN)
Karil$Kejadian <- ifelse(Karil$Kejadian == "BANJIR", 1, 0)
Karil$RAIN_D.1 <- ifelse(Karil$RAIN_D.1 == "YES", 1, 0)
Karil$RAIN_LAST3D <- ifelse(Karil$RAIN_LAST3D == "YES", 1, 0)
Karil$RAIN_LAST7D <- ifelse(Karil$RAIN_LAST7D == "YES", 1, 0)
Karil$TYPE.HUJAN.D1 <- as.factor(Karil$TYPE.HUJAN.D1)## Rows: 1,015
## Columns: 14
## $ Kejadian <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ KELURAHAN <fct> KAMPUNG_MELAYU, BIDARA_CINA, BALEKAMBANG, CAWANG, K…
## $ LUAS.WILAYAH <dbl> 0.48, 1.26, 1.67, 1.79, 2.03, 1.98, 1.67, 1.80, 1.7…
## $ KETINGGIAN.WILAYAH <int> 10, 19, 34, 21, 28, 39, 34, 26, 21, 34, 26, 26, 21,…
## $ RAIN_D.1 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ RAINFALL_D.1 <dbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0…
## $ RAIN_LAST3D <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ RAINFALL_LAST3D <dbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0…
## $ RAIN_LAST7D <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ RAINFALL_LAST7D <dbl> 0, 0, 0, 0, 83, 83, 83, 83, 83, 83, 0, 2, 2, 2, 2, …
## $ TYPE.HUJAN.D1 <fct> TIDAK, TIDAK, TIDAK, TIDAK, TIDAK, TIDAK, TIDAK, TI…
## $ CIPINANG.HULU <int> 160, 160, 160, 160, 90, 90, 90, 90, 90, 90, 80, 75,…
## $ SUNTER.HULU <int> 250, 250, 250, 250, 140, 140, 140, 140, 140, 140, 9…
## $ PULO.GADUNG <int> 450, 450, 450, 450, 330, 330, 330, 330, 330, 330, 3…
dari hsil Glimpse di atas data sudah memiliki type yang
benar.
Ada baiknya perlu mengetahui berapa banyak kejadian terjadi banjir (1) dan tidak (0), karena variabel ini merupakan variabel yang akan kita gunakan dalam pemodelan sebagai variabel target.
##
## 0 1
## 790 225
##
## 0 1
## 0.7783251 0.2216749
Terlihat data banjir dan tidak banjir tidak seimbang, yaitu
78% data tidak banjir dan sisanya banjir. Kumpulan datanya
sangat tidak seimbang. Hal ini menimbulkan masalah yang sulit dalam
melatih pohon keputusan (tepatnya dalam model berbasis pembelajaran
mesin).
## n= 1015
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 1015 225 0 (0.77832512 0.22167488)
## 2) RAIN_LAST3D< 0.5 891 101 0 (0.88664422 0.11335578)
## 4) CIPINANG.HULU< 115 812 51 0 (0.93719212 0.06280788)
## 8) SUNTER.HULU< 132.5 805 44 0 (0.94534161 0.05465839) *
## 9) SUNTER.HULU>=132.5 7 0 1 (0.00000000 1.00000000) *
## 5) CIPINANG.HULU>=115 79 29 1 (0.36708861 0.63291139)
## 10) RAINFALL_LAST7D< 53 33 4 0 (0.87878788 0.12121212) *
## 11) RAINFALL_LAST7D>=53 46 0 1 (0.00000000 1.00000000) *
## 3) RAIN_LAST3D>=0.5 124 0 1 (0.00000000 1.00000000) *
Dengan menggunakan pohon keputusan data di atas. Pohon tersebut hanya memprediksi Kejadian = “Tidak banjir” untuk setiap observasi dalam kumpulan data.
Kami menggunakan teknik downsampling acak untuk mengurangi dampak buruk dari kumpulan data yang tidak seimbang.
set.seed(123)
data_banjir <- Karil %>% filter(Kejadian == 1)
data_tidak_banjir <- Karil %>% filter(Kejadian == 0) %>% sample_n(nrow(data_banjir))
balanced_data <- bind_rows(data_banjir, data_tidak_banjir)##
## 0 1
## 0.5 0.5
Matrix dai atas terlihat data sudah seimbang. untuk mengekspor data tersebut bisa di lakukan dengan menggunakan sintax berikut.
Pada Cleaning tambahan ini adalah untuk menghilangkan kolom
Kelurahan, karena pada variable tersebut sudah diwakili
dengan luas dan ketinggian daerah tersebut.
## 'data.frame': 450 obs. of 13 variables:
## $ Kejadian : num 1 1 1 1 1 1 1 1 1 1 ...
## $ LUAS.WILAYAH : num 0.48 1.26 1.67 1.79 2.03 1.98 1.67 1.8 1.79 2.09 ...
## $ KETINGGIAN.WILAYAH: int 10 19 34 21 28 39 34 26 21 34 ...
## $ RAIN_D.1 : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAINFALL_D.1 : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAIN_LAST3D : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAINFALL_LAST3D : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAIN_LAST7D : num 0 0 0 0 0 0 0 0 0 0 ...
## $ RAINFALL_LAST7D : num 0 0 0 0 83 83 83 83 83 83 ...
## $ TYPE.HUJAN.D1 : Factor w/ 4 levels "LEBAT","RINGAN",..: 4 4 4 4 4 4 4 4 4 4 ...
## $ CIPINANG.HULU : int 160 160 160 160 90 90 90 90 90 90 ...
## $ SUNTER.HULU : int 250 250 250 250 140 140 140 140 140 140 ...
## $ PULO.GADUNG : int 450 450 450 450 330 330 330 330 330 330 ...
Dalam modeling selanjutnya data yang di gunakan adalah data dengan
nama Final_data_set bukan lagi balanced_data
dan Karil. Di karenakan data telah di lakukan cleaning
sehingga pemodelan bisa maksimal.
Selanjutnya data akan di simpan.
Sebagai data analys eksplorasi data sangat wajib hukumnya untuk di lakukan. dengan melakukan eksplorasi kita bisa menjelaskan dan lebih paham tentang data. Explorasi sendiri bukan hanya tentang berapa rata-rata nilainya plotnya seperti apa. Namun tentang mengenal lebih dekat dengan data.
NOTE bagian ini di skipp karena tidak bisa di upload dalam R Markdown
Pada model yang di gunakan adalah model ANN, Artificial Neural Network (ANN) adalah merupakan sebuah model yang terinspirasi oleh sistem saraf otak manusia dalam melakukan klasifikasi data. Salah satu implementasi ANN yang banyak digunakan adalah untuk memprediksi. Project ini melakukan prediksi kelurahan di daerah jakarta timur apakah masuk dalam kategori banjir atau tidak dengan menggunakan beberapa input data.
## Kejadian LUAS.WILAYAH KETINGGIAN.WILAYAH RAIN_D.1 RAINFALL_D.1 RAIN_LAST3D
## 1 1 0.48 10 0 0 0
## 2 1 1.26 19 0 0 0
## RAINFALL_LAST3D RAIN_LAST7D RAINFALL_LAST7D TYPE.HUJAN.D1LEBAT
## 1 0 0 0 0
## 2 0 0 0 0
## TYPE.HUJAN.D1RINGAN TYPE.HUJAN.D1SEDANG TYPE.HUJAN.D1TIDAK CIPINANG.HULU
## 1 0 0 1 160
## 2 0 0 1 160
## SUNTER.HULU PULO.GADUNG
## 1 250 450
## 2 250 450
Scaling data adalah proses mengubah rentang nilai dari
variabel-variabel dalam suatu dataset sehingga variabel-variabel
tersebut memiliki skala yang seragam. Tujuan dari scaling data
melibatkan beberapa pertimbangan yang dapat meningkatkan kinerja atau
interpretasi model statistik.
Partisi data sering digunakan untuk membagi dataset menjadi dua bagian utama: satu bagian untuk melatih model (training set) dan yang lainnya untuk menguji model (testing set). Tujuan utamanya adalah mengukur kinerja model pada data yang tidak pernah dilihat selama pelatihan untuk menghindari overfitting (penyesuaian berlebihan).
set.seed(123)
train.index <- createDataPartition(Data_scale$Kejadian, p = 0.7, list = F)
data_train <- Data_scale [train.index, ]
data_test <- Data_scale [-train.index, ]## Kejadian LUAS.WILAYAH KETINGGIAN.WILAYAH RAIN_D.1 RAINFALL_D.1 RAIN_LAST3D
## 2 0.9988883 -0.6540692 -0.09412324 -0.9554373 -0.5715915 -0.6160542
## 4 0.9988883 -0.3929321 0.08421553 -0.9554373 -0.5715915 -0.6160542
## 7 0.9988883 -0.4520575 1.24341754 -0.9554373 -0.5715915 -0.6160542
## 8 0.9988883 -0.3880049 0.53006246 -0.9554373 -0.5715915 -0.6160542
## 9 0.9988883 -0.3929321 0.08421553 -0.9554373 -0.5715915 -0.6160542
## RAINFALL_LAST3D RAIN_LAST7D RAINFALL_LAST7D TYPE.HUJAN.D1LEBAT
## 2 -0.8235459 -0.2717007 -1.1244533 -0.2763782
## 4 -0.8235459 -0.2717007 -1.1244533 -0.2763782
## 7 -0.8235459 -0.2717007 0.2187282 -0.2763782
## 8 -0.8235459 -0.2717007 0.2187282 -0.2763782
## 9 -0.8235459 -0.2717007 0.2187282 -0.2763782
## TYPE.HUJAN.D1RINGAN TYPE.HUJAN.D1SEDANG TYPE.HUJAN.D1TIDAK CIPINANG.HULU
## 2 -0.6160542 -0.3610581 0.9260638 1.826171
## 4 -0.6160542 -0.3610581 0.9260638 1.826171
## 7 -0.6160542 -0.3610581 0.9260638 -0.671089
## 8 -0.6160542 -0.3610581 0.9260638 -0.671089
## 9 -0.6160542 -0.3610581 0.9260638 -0.671089
## SUNTER.HULU PULO.GADUNG
## 2 2.0293696 0.1815880
## 4 2.0293696 0.1815880
## 7 0.3156966 -0.6559378
## 8 0.3156966 -0.6559378
## 9 0.3156966 -0.6559378
Selain terdapat di dalam paket keras dan
tensorflow, komunitas R juga mengembangkan model jaringan
syaraf tiruan (ANN) pada paket neuralnet. Jika ingin
membaca lebih dalam terkait neuralnet bisa di lihat di
sini atau dengan Running sintax berikut ?neuralnet pada
console R.
## 'data.frame': 316 obs. of 16 variables:
## $ Kejadian : num 0.999 0.999 0.999 0.999 0.999 ...
## $ LUAS.WILAYAH : num -0.654 -0.393 -0.452 -0.388 -0.393 ...
## $ KETINGGIAN.WILAYAH : num -0.0941 0.0842 1.2434 0.5301 0.0842 ...
## $ RAIN_D.1 : num -0.955 -0.955 -0.955 -0.955 -0.955 ...
## $ RAINFALL_D.1 : num -0.572 -0.572 -0.572 -0.572 -0.572 ...
## $ RAIN_LAST3D : num -0.616 -0.616 -0.616 -0.616 -0.616 ...
## $ RAINFALL_LAST3D : num -0.824 -0.824 -0.824 -0.824 -0.824 ...
## $ RAIN_LAST7D : num -0.272 -0.272 -0.272 -0.272 -0.272 ...
## $ RAINFALL_LAST7D : num -1.124 -1.124 0.219 0.219 0.219 ...
## $ TYPE.HUJAN.D1LEBAT : num -0.276 -0.276 -0.276 -0.276 -0.276 ...
## $ TYPE.HUJAN.D1RINGAN: num -0.616 -0.616 -0.616 -0.616 -0.616 ...
## $ TYPE.HUJAN.D1SEDANG: num -0.361 -0.361 -0.361 -0.361 -0.361 ...
## $ TYPE.HUJAN.D1TIDAK : num 0.926 0.926 0.926 0.926 0.926 ...
## $ CIPINANG.HULU : num 1.826 1.826 -0.671 -0.671 -0.671 ...
## $ SUNTER.HULU : num 2.029 2.029 0.316 0.316 0.316 ...
## $ PULO.GADUNG : num 0.182 0.182 -0.656 -0.656 -0.656 ...
CONFUSION MATRIKS DENGAN DATA SET
temp_train <- subset(data_train, select = c("Kejadian", "LUAS.WILAYAH", "KETINGGIAN.WILAYAH","RAIN_D.1", "RAINFALL_D.1", "RAIN_LAST3D", "RAINFALL_LAST3D", "RAIN_LAST7D", "RAINFALL_LAST7D", "CIPINANG.HULU", "SUNTER.HULU", "PULO.GADUNG"))##
## -1 1
## -1 151 7
## 1 20 138
CONFUSION MATRIKS DENGAN DATA SET
temp_test <- subset(data_test, select = c("Kejadian", "LUAS.WILAYAH", "KETINGGIAN.WILAYAH","RAIN_D.1", "RAINFALL_D.1", "RAIN_LAST3D", "RAINFALL_LAST3D", "RAIN_LAST7D", "RAINFALL_LAST7D", "CIPINANG.HULU", "SUNTER.HULU", "PULO.GADUNG"))##
## -1 1
## -1 60 7
## 1 5 62
pred_nn <- nnprediction$net.result * (max(Final_data_set$Kejadian)-min(Final_data_set$Kejadian)) + min(Final_data_set$Kejadian)
test.r <- (data_test$Kejadian) * (max(Final_data_set$Kejadian) - min(Final_data_set$Kejadian)) + min(Final_data_set$Kejadian)## Nilai MSE adalah 0.2765508
ROOT MEAN SQUARE
## [1] 17.83911
plot(results_test, col = c("blue", "red"))
legend("topleft", legend = c("Nilai_aktual", "Nilai_pred_ANN"),fill = c("blue", "red"), bty = "n", cex = 0.8, title = "Keterangan")library(openxlsx)
Prediksi_data_real <- read.xlsx("D:/KULIAH/KARIL NOV/data_you_wanna_predict.xlsx", sheet = 1)
head(Prediksi_data_real)## LUAS.WILAYAH KETINGGIAN.WILAYAH RAIN_D.1 RAINFALL_D.1 RAIN_LAST3D
## 1 0.57 14 0 0 0
## 2 4.99 12 0 0 0
## RAINFALL_LAST3D RAIN_LAST7D RAINFALL_LAST7D CIPINANG.HULU SUNTER.HULU
## 1 0 0 22 90 100
## 2 25 0 37 90 105
## PULO.GADUNG
## 1 330
## 2 330
## [,1]
## 1 0.9974147
## 2 0.9974147
Dari hasil uji coba data di atas, menunjukan bahwa jika dengan data yang di berikan adalah seperti data tersebut maka hasil prediksinya akan terjadibanjir.
Kesimpulan, pada hasil tahap ini adalah Kesimpulan dari hasil modeling di atas.
x <- data_test[which(names(data_test)!= "Kejadian")]
predictor1 <- Predictor$new(tesss, data = x, y = data_test$Kejadian)
imp <- FeatureImp$new(predictor1, loss = "mae")
plot(imp, cex = 0.8)## feature importance.05 importance importance.95 permutation.error
## 1 SUNTER.HULU 1.8170894 2.0643536 2.094721 0.6038744
## 2 RAIN_LAST3D 2.0071061 2.0543180 2.139041 0.6009387
## 3 RAINFALL_LAST7D 1.7710557 2.0095582 2.130629 0.5878454
## 4 RAINFALL_LAST3D 1.5655454 1.6417797 1.679162 0.4802611
## 5 RAIN_D.1 1.2916718 1.4059669 1.456868 0.4112800
## 6 RAINFALL_D.1 1.2290414 1.3825069 1.414122 0.4044174
## 7 RAIN_LAST7D 1.0690306 1.1268315 1.142415 0.3296261
## 8 PULO.GADUNG 1.1024900 1.1227837 1.181805 0.3284420
## 9 KETINGGIAN.WILAYAH 1.0170425 1.0379161 1.044608 0.3036161
## 10 CIPINANG.HULU 0.9987217 1.0288771 1.075749 0.3009720
## 11 TYPE.HUJAN.D1LEBAT 1.0000000 1.0000000 1.000000 0.2925247
## 12 TYPE.HUJAN.D1RINGAN 1.0000000 1.0000000 1.000000 0.2925247
## 13 TYPE.HUJAN.D1SEDANG 1.0000000 1.0000000 1.000000 0.2925247
## 14 TYPE.HUJAN.D1TIDAK 1.0000000 1.0000000 1.000000 0.2925247
## 15 LUAS.WILAYAH 0.9866562 0.9955863 1.021898 0.2912336
## feature phi phi.var
## 1 LUAS.WILAYAH 0.06701016 0.014533401
## 2 KETINGGIAN.WILAYAH -0.01790492 0.003079771
## 3 RAIN_D.1 -0.07864674 0.174611014
## 4 RAINFALL_D.1 -0.04020926 0.048626837
## 5 RAIN_LAST3D -0.14988297 0.184654323
## 6 RAINFALL_LAST3D 0.26895663 0.410485524
## 7 RAIN_LAST7D 0.00000000 0.000000000
## 8 RAINFALL_LAST7D -0.11043543 0.287908572
## 9 TYPE.HUJAN.D1LEBAT 0.00000000 0.000000000
## 10 TYPE.HUJAN.D1RINGAN 0.00000000 0.000000000
## 11 TYPE.HUJAN.D1SEDANG 0.00000000 0.000000000
## 12 TYPE.HUJAN.D1TIDAK 0.00000000 0.000000000
## 13 CIPINANG.HULU -0.28355430 0.089844855
## 14 SUNTER.HULU 1.19918493 0.686226515
## 15 PULO.GADUNG 0.07122705 0.033963527
## feature.value
## 1 LUAS.WILAYAH=-1.03838431391629
## 2 KETINGGIAN.WILAYAH=-0.896647706219635
## 3 RAIN_D.1=-0.955437344934016
## 4 RAINFALL_D.1=-0.571591463895623
## 5 RAIN_LAST3D=-0.616054247383422
## 6 RAINFALL_LAST3D=-0.823545912124891
## 7 RAIN_LAST7D=-0.27170069482481
## 8 RAINFALL_LAST7D=-1.1244532724671
## 9 TYPE.HUJAN.D1LEBAT=-0.276378185912093
## 10 TYPE.HUJAN.D1RINGAN=-0.616054247383422
## 11 TYPE.HUJAN.D1SEDANG=-0.3610580642221
## 12 TYPE.HUJAN.D1TIDAK=0.926063779147348
## 13 CIPINANG.HULU=1.82617078152527
## 14 SUNTER.HULU=2.02936955252353
## 15 PULO.GADUNG=0.181587993790987