Nama : Muhammad Rizki (19090055), Ali Husni (19090052), Getar Dewa (19090013)
Data yang kami gunakan merupakan data kemiskinan kabupaten brebes tahun 2008 - 2020 yang kita dapat dari BPS. Kami menggunakan kolom Tahun, Tingkat kemiskinan, Garis kemiskinan dan Jumlah Penduduk Miskin untuk membuat prediksi dengan Jumlah Penduduk Miskin sebagai korelasinya.
##..
library(readxl)
kemiskinan <- read_excel("kemiskinan.xlsx")
View(kemiskinan)
#INISIALISASI MODEL
x1=kemiskinan$Tahun
x2=kemiskinan$`Tingkat Kemiskinan (%)`
x3=kemiskinan$`Garis Kemiskinan (Rp/Kapita)`
y=kemiskinan$`Jumlah Penduduk Miskin (Ribu Jiwa)`
#membuat model
model1 = nls(y~(a*x1^3+b*x2^2+c*x3), start=list(a=1,b=1,c=1))
model2 = nls(y~(a*x1^3+b*x2+c*x3), start = list(a=1,b=1,c=1))
#mengecek model terbaik berdasarkan relasinya
cor(y, predict(model1))
## [1] 0.9977108
cor(y, predict(model2))
## [1] 0.998366
##Karena Model2 lebih bagus korelasinya maka kami menggunkan model2
#membuat data_prediksi yang berisi kolom x1,x2,x3,y, dan prediksi
data_prediksi = data.frame(x1,x2,x3,y,prediksi=predict(model2))
#membuat kolom selisih
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.3
##
## 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
data_prediksi = data_prediksi%>% mutate(selisih=abs(y-prediksi))
#melihat sample data prediksi
head(data_prediksi,5)
## x1 x2 x3 y prediksi selisih
## 1 2020 17.03 431897 308.78 308.9722 0.1921527
## 2 2019 16.22 414642 293.18 290.3598 2.8202489
## 3 2018 17.17 405932 309.17 308.3447 0.8253449
## 4 2017 19.14 382125 343.46 344.6639 1.2039485
## 5 2016 19.47 364059 347.98 348.8462 0.8662052
#melihat maximal selisih
max(tapply(data_prediksi$selisih, data_prediksi$y, max))
## [1] 5.709146
##melakukan prediksi dengan model yang telah dibuat pada tahun 2021
##Jika tahun 2021 memiliki tingkat kemiskinan 20%, Rp. 440.000.
##berapa jumlah penduduk miskin di kabupaten Brebes?
data_baru = data.frame(x1 = 2021, x2=20, x3=440000)
predict(model1,data_baru)
## [1] 357.9964