Wahyu Zuhudistia Khoiri 19090129
Disini saya menggunakan data bencana alam dari kebupaten semarang dari 2018, 2019, 2020 yang menyajikan hanya data banjir dan faktor pendukung seperti sampah,curah hujan dan perlahaan tanah yang di jabarkan setia perbulanya.
data bencana tersebut saya ambil dari http://bpbd.semarangkota.go.id/pages/data-bencana
data banjir : https://drive.google.com/file/d/18YIMl7-bADWz4Jt4mccEAKVEF77eOpQe/view?usp=sharing
saya mengExport library untuk masukan data yang sudah dibuat
library(readxl)
## Warning: package 'readxl' was built under R version 4.0.3
data_banjir = read_excel("DATA_BANJIR.xlsx")
head(data_banjir)
## # A tibble: 6 x 4
## sampah curah_hujan perlahanan banjir
## <dbl> <dbl> <dbl> <dbl>
## 1 1.58 10.4 0.54 0
## 2 1.54 19.2 0.4 11
## 3 1.52 7.42 0.72 2
## 4 1.49 7.13 0.01 0
## 5 1.45 0.580 1.18 0
## 6 1.44 1.5 1.29 0
View(data_banjir)
disini masukan setiap variabel yang sudah kita buat dilam excel
sampah = data_banjir$sampah
curah_hujan = data_banjir$curah_hujan
perlahanan = data_banjir$perlahanan
banjir = data_banjir$banjir
menyesun model regresi linier berganda
model ini akan digunakan untk mengecek linearitas, normalitas dan akan digunkan untuk mencari prediksi data
model_reg_banjir <- lm(banjir~curah_hujan + sampah + perlahanan , data = data_banjir)
uji coba regresi linier
uji coba ini dilakukan untuk menguji normalitas, multikolinieritas, heterokesdastisitas, outokorelasi dan linieritas dari sebuah model regrsi
uji coba normalitas
normalitas dilakukan untuk menguji apakah pada suatu model regresi, suatu variabel independen dan variabel dependen ataupun keduanya mempunyai distribusi normal atau tidak normal.
menampilkn hasil pengujian
par(mfrow = c(1,2))
plot(model_reg_banjir)
pada grafik diatas menunjukan bahwa table Q - Q menunjukan bahwa data yang ada digaris yang berati data tersebut normal sehingga katakan model regresi tersebut suda memenuhi syarat nomalitas.
Uji coba Multikolinieritas
untuk mengukur apakah akan terjadih tidaksamaan Heteroskedastisitas data pengukuran dengan melihat sebaran pada grafik Residual vs Fitted menggunakan perintah yang sama dengan Uji Normalitas. menampilkan grafik uji heteroskedastisitas.
library(car)
## Warning: package 'car' was built under R version 4.0.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.0.3
vif(model_reg_banjir)
## curah_hujan sampah perlahanan
## 1.814704 2.281297 1.410326
jadi nilai NIV variabel curah hujan berada dibawah 2 yang berati tidak terjadi multikolinieritas dalam curah hujan, dan sedangkan sampah dan perlahaan melebihi dari 2 yang artinya multikolinieritas hanya pada 2 variabel tersebut yang di atas 2, sehingga tidak terjadi asusi multikolinieritas.
uji coba Heteroskedastisitas
mengukur terjadi tidaksamaan variabel Heteroskedastisitas dari data pengukuran dangan mellihat sebaran grafik residual vs fitted menggunakan printah yang sama dengan uji coba normalitas.
menampilkan grafik Heteroskedastisitas
par(mfrow = c(1,2))
plot(model_reg_banjir)
pada grafik Residual vs Fitted menunjukan data tersebut mengikuti satu pola dan terjadi perbedaan varians residual dan pengujian model memenuhi uji coba Heteroskedastisitas.
uji coba autokorelasi
untuk mengetahui misalkan ada pengaruh dar tahu yang sudah lama kapada datang yang baru, uji in dilakukan karena adanya data bencana berbetuk time series(yang berhubungan dangan masa yang akan datang) uji coba ini menggunkan pritah dwtest() dalam package lmtets
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.0.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.0.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
dwtest(model_reg_banjir)
##
## Durbin-Watson test
##
## data: model_reg_banjir
## DW = 1.8787, p-value = 0.1654
## alternative hypothesis: true autocorrelation is greater than 0
hasil uji diatas menunjukan nilai durbin-watson test p-value kurang dari 0.05 yang berarti terjadi pengaruh antar data sebelumnya dengan data terbaru dan terdapat asumsi autokorelasi yang terpenuhi antar data dalam model yang sudah dibuat.
uji coba Linieritas
Menguji hubungan linier antara variabel dependent dan independent untuk memenuhi adanya hubungan linier antar variabel tersebut dengan perintah ibrary conf.
library(conf)
## Warning: package 'conf' was built under R version 4.0.3
crPlots(model_reg_banjir)
grafik diatas pusisi dua garis dengan warna ungu dan biruberada dalam posisi yang berdempetan, karena itu variabel independen memiliki linieritas dengan variabel dependent dapat dikatakan linieritas model regresi sudah terpenuhi.
summary(model_reg_banjir)
##
## Call:
## lm(formula = banjir ~ curah_hujan + sampah + perlahanan, data = data_banjir)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2238 -1.1127 -0.0216 1.5360 2.4698
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.6234 27.7281 -0.059 0.95475
## curah_hujan 0.5286 0.1664 3.176 0.01308 *
## sampah -0.7358 18.8741 -0.039 0.96986
## perlahanan 2.8295 0.5885 4.808 0.00134 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.34 on 8 degrees of freedom
## Multiple R-squared: 0.8687, Adjusted R-squared: 0.8195
## F-statistic: 17.65 on 3 and 8 DF, p-value: 0.0006916
dari hasil uji coba di terebut menhaslkan model persamaan regresi linier berganda dimana nilai persamaanya
banjir = -1.6234 + 0.5286(curah hujan) + -0.7358(sampah) + 2.8295 (perlahanan)
melihat hasil tersebut bahwa pengaruh perlahana tanah yang luas terhadap banjir adalah signifikasi dengan nilai p-valau pada kolom Pr(>|t|) lebih kecil dari 0,05.
mencari data prediksi banjir
predict(model_reg_banjir)
## 1 2 3 4 5 6 7
## 4.2238451 8.5301667 3.2178697 1.0776831 0.9551763 1.7601141 -1.4809231
## 8 9 10 11 12
## -2.1747238 -1.7011443 0.8236701 2.5487798 16.2194864
prediksi_data = data.frame(curah_hujan ,sampah , perlahanan , prekdisi = predict (model_reg_banjir))
mencri selelih dari perdiksi banjir dengan data banjir.
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.3
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
prediksi_data = prediksi_data%>% mutate(selisih=abs(banjir - predict (model_reg_banjir)));
head(prediksi_data)
## curah_hujan sampah perlahanan prekdisi selisih
## 1 10.37 1.58 0.54 4.2238451 4.2238451
## 2 19.21 1.54 0.40 8.5301667 2.4698333
## 3 7.42 1.52 0.72 3.2178697 1.2178697
## 4 7.13 1.49 0.01 1.0776831 1.0776831
## 5 0.58 1.45 1.18 0.9551763 0.9551763
## 6 1.50 1.44 1.29 1.7601141 1.7601141