Lembaga = Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan = Teknik Informatika
Analisa Regresi Linear Tiga Model Linear Model, SS Model, Smooth Spline Model untuk data Covid-19 DKI Jakarta bulan Januari 2022 pada data status penderita yang Dirawat.
Tujuannya adalah dapat memprediksi jumlah pasien yang Dirawat berdasarkan informasi data tanggal dari data covid 19 DKI Jakarta pada bulan Januari 2022
Tiga model ini akan menyajikan prediksi terdekat jumlah pasien yang seharusnya dirawat sebagai Learning Machine
Smoothing splines adalah pendekatan yang ampuh untuk memperkirakan hubungan fungsional antara prediktor X dan respons Y. Smoothing splines dapat ditampung baik menggunakan fungsi smooth.spline (dalam paket stats) atau fungsi ss (dalam paket npreg). Dokumen ini memberikan latar belakang teoritis tentang smoothing splines, serta contoh-contoh yang menggambarkan bagaimana menggunakan fungsi smooth.spline dan ss. Seperti yang saya tunjukkan dalam tutorial ini, kedua fungsi memiliki sintaks yang sangat mirip, tetapi fungsi ss menawarkan beberapa opsi tambahan. Dibandingkan dengan fungsi smooth.spline, fungsi ss memiliki
lebih banyak metode pemilihan parameter penghalusan lebih banyak jenis spline (linier, kubik, quintic) opsi untuk batasan periodisitas opsi untuk nilai simpul yang ditentukan pengguna ringkasan yang sesuai dan metode plot
Untuk melihat bagaimana kinerja fungsi-fungsi ini dalam praktiknya, mari kita lihat contoh simulasinya. Secara khusus, mari simulasikan beberapa data dengan hubungan fungsional (berkala) yang memiliki beberapa gangguan.
Pada Analisa regrresi tiga model memerlukan sejumlah library. Library yang digunakan dalam analisa studi kasus ini antara lain: readr : library ini digunakan untuk membaca file CSV/TASV tidyverse : library yang berisi kumpulan fungsi untuk analisa data. dplyr : library untuk membuat ringkasan data. npreg : library ini digunakan untuk membuat model ss stats : library ini digunakan untuk membuat model smooth spline
library(readxl)
mobility_DKI_Jakarta <- read_excel("DataCovid19 DKI Jakarta.xlsx")
mobility_DKI_Jakarta
library(DT)
## Warning: package 'DT' was built under R version 4.1.3
datatable(mobility_DKI_Jakarta)
library(dplyr)
##
## 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(rmdformats)
## Warning: package 'rmdformats' was built under R version 4.1.3
tab <- table(mobility_DKI_Jakarta$Dirawat, mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline>25)
pilltabs(
tab,
count = TRUE,
rows = TRUE,
cols = TRUE,
chisq = TRUE,
resid = TRUE,
row.names = TRUE
)
## Warning in stats::chisq.test(tab): Chi-squared approximation may be incorrect
## Warning in stats::chisq.test(tab): Chi-squared approximation may be incorrect
| FALSE | |
|---|---|
| 116 | 1 |
| 140 | 1 |
| 141 | 1 |
| 168 | 1 |
| 205 | 1 |
| 214 | 1 |
| 221 | 1 |
| 257 | 1 |
| 299 | 1 |
| 322 | 1 |
| 402 | 1 |
| 506 | 1 |
| 583 | 1 |
| 669 | 1 |
| 758 | 1 |
| 781 | 1 |
| 809 | 1 |
| 981 | 1 |
| 1125 | 1 |
| 1222 | 1 |
| 1445 | 1 |
| 1710 | 1 |
| 2011 | 1 |
| 2242 | 1 |
| 2721 | 1 |
| 3232 | 1 |
| 3989 | 1 |
| 4709 | 1 |
| 5545 | 1 |
| 6348 | 1 |
| 6809 | 1 |
| FALSE | Total | n | |
|---|---|---|---|
| 116 | 100 | 100 | 1 |
| 140 | 100 | 100 | 1 |
| 141 | 100 | 100 | 1 |
| 168 | 100 | 100 | 1 |
| 205 | 100 | 100 | 1 |
| 214 | 100 | 100 | 1 |
| 221 | 100 | 100 | 1 |
| 257 | 100 | 100 | 1 |
| 299 | 100 | 100 | 1 |
| 322 | 100 | 100 | 1 |
| 402 | 100 | 100 | 1 |
| 506 | 100 | 100 | 1 |
| 583 | 100 | 100 | 1 |
| 669 | 100 | 100 | 1 |
| 758 | 100 | 100 | 1 |
| 781 | 100 | 100 | 1 |
| 809 | 100 | 100 | 1 |
| 981 | 100 | 100 | 1 |
| 1125 | 100 | 100 | 1 |
| 1222 | 100 | 100 | 1 |
| 1445 | 100 | 100 | 1 |
| 1710 | 100 | 100 | 1 |
| 2011 | 100 | 100 | 1 |
| 2242 | 100 | 100 | 1 |
| 2721 | 100 | 100 | 1 |
| 3232 | 100 | 100 | 1 |
| 3989 | 100 | 100 | 1 |
| 4709 | 100 | 100 | 1 |
| 5545 | 100 | 100 | 1 |
| 6348 | 100 | 100 | 1 |
| 6809 | 100 | 100 | 1 |
| All | 100 | 100 | 31 |
| FALSE | All | |
|---|---|---|
| 116 | 3.2 | 3.2 |
| 140 | 3.2 | 3.2 |
| 141 | 3.2 | 3.2 |
| 168 | 3.2 | 3.2 |
| 205 | 3.2 | 3.2 |
| 214 | 3.2 | 3.2 |
| 221 | 3.2 | 3.2 |
| 257 | 3.2 | 3.2 |
| 299 | 3.2 | 3.2 |
| 322 | 3.2 | 3.2 |
| 402 | 3.2 | 3.2 |
| 506 | 3.2 | 3.2 |
| 583 | 3.2 | 3.2 |
| 669 | 3.2 | 3.2 |
| 758 | 3.2 | 3.2 |
| 781 | 3.2 | 3.2 |
| 809 | 3.2 | 3.2 |
| 981 | 3.2 | 3.2 |
| 1125 | 3.2 | 3.2 |
| 1222 | 3.2 | 3.2 |
| 1445 | 3.2 | 3.2 |
| 1710 | 3.2 | 3.2 |
| 2011 | 3.2 | 3.2 |
| 2242 | 3.2 | 3.2 |
| 2721 | 3.2 | 3.2 |
| 3232 | 3.2 | 3.2 |
| 3989 | 3.2 | 3.2 |
| 4709 | 3.2 | 3.2 |
| 5545 | 3.2 | 3.2 |
| 6348 | 3.2 | 3.2 |
| 6809 | 3.2 | 3.2 |
| Total | 100.0 | 100.0 |
| n | 31.0 | 31.0 |
| x | |
|---|---|
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 0 |
| 10 | 0 |
| 11 | 0 |
| 12 | 0 |
| 13 | 0 |
| 14 | 0 |
| 15 | 0 |
| 16 | 0 |
| 17 | 0 |
| 18 | 0 |
| 19 | 0 |
| 20 | 0 |
| 21 | 0 |
| 22 | 0 |
| 23 | 0 |
| 24 | 0 |
| 25 | 0 |
| 26 | 0 |
| 27 | 0 |
| 28 | 0 |
| 29 | 0 |
| 30 | 0 |
| 31 | 0 |
X-squared = 0, df = 30, p = 1
cek<-str(mobility_DKI_Jakarta)
## tibble [31 x 12] (S3: tbl_df/tbl/data.frame)
## $ Tanggal : POSIXct[1:31], format: "2022-01-01" "2022-01-02" ...
## $ retail_and_recreation_percent_change_from_baseline: num [1:31] 3 11 14 11 12 10 6 8 7 7 ...
## $ grocery_and_pharmacy_percent_change_from_baseline : num [1:31] 24 35 36 33 34 30 25 31 28 27 ...
## $ parks_percent_change_from_baseline : num [1:31] 46 28 20 15 17 12 6 10 13 6 ...
## $ transit_stations_percent_change_from_baseline : num [1:31] -15 -4 -9 -9 -10 -11 -13 -6 -6 -13 ...
## $ workplaces_percent_change_from_baseline : num [1:31] -49 -4 -10 -8 -7 -5 -3 1 2 -4 ...
## $ residential_percent_change_from_baseline : num [1:31] 6 3 4 4 4 5 5 3 4 4 ...
## $ POSITIF : num [1:31] 865415 865518 865690 865805 866064 ...
## $ Dirawat : num [1:31] 205 116 140 141 168 214 221 257 299 322 ...
## $ Sembuh : num [1:31] 851280 851386 851408 851449 851520 ...
## $ Meninggal : num [1:31] 13588 13588 13588 13588 13589 ...
## $ SelfIsolation : num [1:31] 342 428 554 627 787 ...
cek
## NULL
ringkasan<-summary(mobility_DKI_Jakarta)
ringkasan
## Tanggal
## Min. :2022-01-01 00:00:00
## 1st Qu.:2022-01-08 12:00:00
## Median :2022-01-16 00:00:00
## Mean :2022-01-16 00:00:00
## 3rd Qu.:2022-01-23 12:00:00
## Max. :2022-01-31 00:00:00
## retail_and_recreation_percent_change_from_baseline
## Min. : 1.000
## 1st Qu.: 6.000
## Median : 7.000
## Mean : 7.452
## 3rd Qu.: 9.000
## Max. :14.000
## grocery_and_pharmacy_percent_change_from_baseline
## Min. :20.00
## 1st Qu.:25.00
## Median :26.00
## Mean :27.55
## 3rd Qu.:29.50
## Max. :36.00
## parks_percent_change_from_baseline
## Min. :-1.00
## 1st Qu.: 5.50
## Median : 9.00
## Mean :10.94
## 3rd Qu.:14.00
## Max. :46.00
## transit_stations_percent_change_from_baseline
## Min. :-17.00
## 1st Qu.:-15.00
## Median :-14.00
## Mean :-12.65
## 3rd Qu.:-10.00
## Max. : -4.00
## workplaces_percent_change_from_baseline
## Min. :-49.000
## 1st Qu.: -4.000
## Median : 0.000
## Mean : -1.677
## 3rd Qu.: 3.000
## Max. : 8.000
## residential_percent_change_from_baseline POSITIF Dirawat
## Min. :3.000 Min. :865415 Min. : 116
## 1st Qu.:4.500 1st Qu.:867106 1st Qu.: 278
## Median :5.000 Median :870929 Median : 781
## Mean :5.258 Mean :876297 Mean :1635
## 3rd Qu.:6.000 3rd Qu.:880304 3rd Qu.:2126
## Max. :7.000 Max. :913355 Max. :6809
## Sembuh Meninggal SelfIsolation
## Min. :851280 Min. :13588 Min. : 342
## 1st Qu.:851783 1st Qu.:13589 1st Qu.: 1456
## Median :853522 Median :13591 Median : 3035
## Mean :855268 Mean :13598 Mean : 5749
## 3rd Qu.:856934 3rd Qu.:13597 3rd Qu.: 7646
## Max. :867519 Max. :13666 Max. :25361
library(jmv)
## Warning: package 'jmv' was built under R version 4.1.3
# Use the descritptives function to get the descritptive data
descriptives(mobility_DKI_Jakarta, vars = vars(Dirawat, retail_and_recreation_percent_change_from_baseline), freq = TRUE)
##
## DESCRIPTIVES
##
## Descriptives
## ----------------------------------------------------------------------------------------
## Dirawat retail_and_recreation_percent_change_from_baseline
## ----------------------------------------------------------------------------------------
## N 31 31
## Missing 0 0
## Mean 1634.839 7.451613
## Median 781.0000 7.000000
## Standard deviation 1930.584 3.085868
## Minimum 116.0000 1.000000
## Maximum 6809.000 14.00000
## ----------------------------------------------------------------------------------------
Distribusi Data ditampilkan melalui Histogram dan Grafik menunjukkan trend pasien yang dirawat di RS. Pada Histogram menampilkan mean Variable dalam bentuk Vertikal.
hist(mobility_DKI_Jakarta$Dirawat, main="Distribusi Dirawat di RS untuk Covid 19", xlab="Dirawat di RS Untuk Covid 19", xlim=c(100,7000),ylim=c(0,15)) # histogram variabel wt
mean=mean(mobility_DKI_Jakarta$Dirawat) # Menghitung nilai mean variabel wt
abline(v=mean, col="red",lwd=2) # Menambahkan garis vertical pada plot
# Grafik pasien Covid-19 yang dirawat di RS (Density Variabel)
d<-density(mobility_DKI_Jakarta$Dirawat) # menghitung density variabel wt
plot(d, xlab="Dirawat di RS untuk Covid 19", main="Distribusi Dirawat di RS untuk Covid 19")
# Model
library(npreg)
## Warning: package 'npreg' was built under R version 4.1.3
# fit using ss
mod.ss <- ss( mobility_DKI_Jakarta$Tanggal,mobility_DKI_Jakarta$Dirawat, nknots = 10)
mod.ss
##
## Call:
## ss(x = mobility_DKI_Jakarta$Tanggal, y = mobility_DKI_Jakarta$Dirawat,
## nknots = 10)
##
## Smoothing Parameter spar = 0.01776397 lambda = 8.009766e-08
## Equivalent Degrees of Freedom (Df) 10.76019
## Penalized Criterion (RSS) 55189.81
## Generalized Cross-Validation (GCV) 4176.454
# fit using smooth.spline
mod.smsp <- smooth.spline( mobility_DKI_Jakarta$Tanggal,mobility_DKI_Jakarta$Dirawat, nknots = 10)
mod.smsp
## Call:
## smooth.spline(x = mobility_DKI_Jakarta$Tanggal, y = mobility_DKI_Jakarta$Dirawat,
## nknots = 10)
##
## Smoothing Parameter spar= -0.05618678 lambda= 1.0263e-06 (16 iterations)
## Equivalent Degrees of Freedom (Df): 11.7885
## Penalized Criterion (RSS): 20919.79
## GCV: 1757.101
Root Mean Squared Error (RMSE) merupakan salah satu cara untuk mengevaluasi model regresi linear dengan mengukur tingkat akurasi hasil perkiraan suatu model. RMSE dihitung dengan mengkuadratkan error (prediksi – observasi) dibagi dengan jumlah data (= rata-rata), lalu diakarkan. RMSE tidak memiliki satuan.
# rmse between solutions
sqrt(mean(( mod.ss$y - mod.smsp$y )^2))
## [1] 32.00289
# rmse between solutions and f(x)
sqrt(mean(( mobility_DKI_Jakarta$Dirawat - mod.ss$y )^2))
## [1] 42.1938
mobility_DKI_Jakarta$prediksi_ss <- mod.ss$y
mobility_DKI_Jakarta$prediksi_smsp <- mod.smsp$y
datatable(mobility_DKI_Jakarta)
library(npreg)
# fit using ss
mod.ss1 <- ss( mobility_DKI_Jakarta$Tanggal,mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline, nknots = 10)
mod.ss1
##
## Call:
## ss(x = mobility_DKI_Jakarta$Tanggal, y = mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline,
## nknots = 10)
##
## Smoothing Parameter spar = 0.2344568 lambda = 2.945537e-06
## Equivalent Degrees of Freedom (Df) 8.355361
## Penalized Criterion (RSS) 96.48915
## Generalized Cross-Validation (GCV) 5.833233
# fit using smooth.spline
mod.smsp1 <- smooth.spline( mobility_DKI_Jakarta$Tanggal,mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline, nknots = 10)
mod.smsp1
## Call:
## smooth.spline(x = mobility_DKI_Jakarta$Tanggal, y = mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline,
## nknots = 10)
##
## Smoothing Parameter spar= -0.004828107 lambda= 2.409043e-06 (15 iterations)
## Equivalent Degrees of Freedom (Df): 11.55074
## Penalized Criterion (RSS): 55.17046
## GCV: 4.52129
mobility_DKI_Jakarta$prediksi_ss1 <- mod.ss1$y
mobility_DKI_Jakarta$prediksi_smsp1 <- mod.smsp1$y
datatable(mobility_DKI_Jakarta)
# plot results
plot(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$Dirawat,
xlab = "Tangggal",
ylab = "Dirawat di RS")
lines(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$prediksi_ss , lty = 2, col = 'black', lwd = 3)
lines(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$prediksi_smsp, lty = 5, col = 'red', lwd = 3)
# plot method
plot(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$Dirawat, lty = 10, col = 'black', lwd =5)
#plot(mod.ss)
# add lm fit
abline(coef(lm( mobility_DKI_Jakarta$Dirawat ~ mobility_DKI_Jakarta$Tanggal , data = mobility_DKI_Jakarta)), lty = 10, col = 'blue', lwd =5)
rug(mobility_DKI_Jakarta$date) # add rug to plot
## Warning: Unknown or uninitialised column: `date`.
#points(mobilityjakarta$Tanggal, mobilityjakarta$DIRAWAT, lty = 2, col = 2, lwd = 2)
points(mobility_DKI_Jakarta$Tanggal,mod.ss$y , lty = 2, col = 'red', lwd = 4)
#points(mobilityjakarta$Tanggal,mod.smsp$y , lty = 2, col = 4, lwd = 2)
legend("topright",
legend = c("Real", "Model SS", "Trends"),
lty = 1:3, col = c("Black","Red","Blue"), lwd = 3, bty = "p")
# Hasil plot untuk Date dengan Retail beserta model SS dan Smooth.Spline
# plot results
plot(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline, lty = 10, col = 'black', lwd =5,
xlab = "Tanggal",
ylab = "Retail and Recreation")
# add lm fit
abline(coef(lm( mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline ~ mobility_DKI_Jakarta$Tanggal , data = mobility_DKI_Jakarta)), lty = 10, col = 'blue', lwd =5)
lines(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$prediksi_ss1 , lty = 2, col = 'black', lwd = 4)
lines(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$prediksi_smsp1, lty = 4, col = 'red', lwd = 3)
# Korelasi Pearson Korelasi Pearson Untuk melakukan analisis korelasi Pearson cukup sederhana. Semisal kita ingin mengetahui hubungan antara mobilityjakarta[Math Processing Error]retail_and_recreation,
cor.test(mobility_DKI_Jakarta$Dirawat,mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline)
##
## Pearson's product-moment correlation
##
## data: mobility_DKI_Jakarta$Dirawat and mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline
## t = 1.6015, df = 29, p-value = 0.1201
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.07707823 0.58073124
## sample estimates:
## cor
## 0.2850471
Dari output tersebut dapat kita simpulkan bahwa tidak ada hubungan yang signifikan antara mobilityjakarta DIRAWAT dan mobilityjakarta retail_and_recreation (p-value<0,01). Nilai p-value dalam output R dituliskan 0,4065 Nilai koefisien korelasi r adalah sebesar -0,1572981 yang menunjukkan hubungan yang sedang dan terbalik.
model <- lm(mobility_DKI_Jakarta$Dirawat ~ mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline, data = mobility_DKI_Jakarta)
summary(model)
##
## Call:
## lm(formula = mobility_DKI_Jakarta$Dirawat ~ mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline,
## data = mobility_DKI_Jakarta)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2662.6 -1193.6 -388.6 503.0 4615.4
##
## Coefficients:
## Estimate
## (Intercept) 306.0
## mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline 178.3
## Std. Error
## (Intercept) 896.0
## mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline 111.4
## t value
## (Intercept) 0.342
## mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline 1.601
## Pr(>|t|)
## (Intercept) 0.735
## mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline 0.120
##
## Residual standard error: 1882 on 29 degrees of freedom
## Multiple R-squared: 0.08125, Adjusted R-squared: 0.04957
## F-statistic: 2.565 on 1 and 29 DF, p-value: 0.1201
model$coefficients
## (Intercept)
## 305.9820
## mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline
## 178.3314
model$fitted.values
## 1 2 3 4 5 6 7 8
## 840.9763 2267.6276 2802.6218 2267.6276 2445.9590 2089.2962 1375.9705 1732.6334
## 9 10 11 12 13 14 15 16
## 1554.3019 1554.3019 484.3135 1197.6391 1732.6334 1375.9705 1197.6391 1375.9705
## 17 18 19 20 21 22 23 24
## 1197.6391 484.3135 1375.9705 1375.9705 1554.3019 1375.9705 1554.3019 1732.6334
## 25 26 27 28 29 30 31
## 1732.6334 1910.9648 2089.2962 1554.3019 1910.9648 1732.6334 2802.6218
mobility_DKI_Jakarta$prediksi_linear <- model$fitted.values
mobility_DKI_Jakarta
data1<- data.frame(mobility_DKI_Jakarta)
data1
str(mobility_DKI_Jakarta)
## tibble [31 x 17] (S3: tbl_df/tbl/data.frame)
## $ Tanggal : POSIXct[1:31], format: "2022-01-01" "2022-01-02" ...
## $ retail_and_recreation_percent_change_from_baseline: num [1:31] 3 11 14 11 12 10 6 8 7 7 ...
## $ grocery_and_pharmacy_percent_change_from_baseline : num [1:31] 24 35 36 33 34 30 25 31 28 27 ...
## $ parks_percent_change_from_baseline : num [1:31] 46 28 20 15 17 12 6 10 13 6 ...
## $ transit_stations_percent_change_from_baseline : num [1:31] -15 -4 -9 -9 -10 -11 -13 -6 -6 -13 ...
## $ workplaces_percent_change_from_baseline : num [1:31] -49 -4 -10 -8 -7 -5 -3 1 2 -4 ...
## $ residential_percent_change_from_baseline : num [1:31] 6 3 4 4 4 5 5 3 4 4 ...
## $ POSITIF : num [1:31] 865415 865518 865690 865805 866064 ...
## $ Dirawat : num [1:31] 205 116 140 141 168 214 221 257 299 322 ...
## $ Sembuh : num [1:31] 851280 851386 851408 851449 851520 ...
## $ Meninggal : num [1:31] 13588 13588 13588 13588 13589 ...
## $ SelfIsolation : num [1:31] 342 428 554 627 787 ...
## $ prediksi_ss : num [1:31] 157 180 161 131 149 ...
## $ prediksi_smsp : num [1:31] 199 132 124 146 174 ...
## $ prediksi_ss1 : num [1:31] 6.33 8.84 10.88 11.9 11.53 ...
## $ prediksi_smsp1 : num [1:31] 3.45 10.8 12.85 12.22 11.09 ...
## $ prediksi_linear : Named num [1:31] 841 2268 2803 2268 2446 ...
## ..- attr(*, "names")= chr [1:31] "1" "2" "3" "4" ...
summary(mobility_DKI_Jakarta)
## Tanggal
## Min. :2022-01-01 00:00:00
## 1st Qu.:2022-01-08 12:00:00
## Median :2022-01-16 00:00:00
## Mean :2022-01-16 00:00:00
## 3rd Qu.:2022-01-23 12:00:00
## Max. :2022-01-31 00:00:00
## retail_and_recreation_percent_change_from_baseline
## Min. : 1.000
## 1st Qu.: 6.000
## Median : 7.000
## Mean : 7.452
## 3rd Qu.: 9.000
## Max. :14.000
## grocery_and_pharmacy_percent_change_from_baseline
## Min. :20.00
## 1st Qu.:25.00
## Median :26.00
## Mean :27.55
## 3rd Qu.:29.50
## Max. :36.00
## parks_percent_change_from_baseline
## Min. :-1.00
## 1st Qu.: 5.50
## Median : 9.00
## Mean :10.94
## 3rd Qu.:14.00
## Max. :46.00
## transit_stations_percent_change_from_baseline
## Min. :-17.00
## 1st Qu.:-15.00
## Median :-14.00
## Mean :-12.65
## 3rd Qu.:-10.00
## Max. : -4.00
## workplaces_percent_change_from_baseline
## Min. :-49.000
## 1st Qu.: -4.000
## Median : 0.000
## Mean : -1.677
## 3rd Qu.: 3.000
## Max. : 8.000
## residential_percent_change_from_baseline POSITIF Dirawat
## Min. :3.000 Min. :865415 Min. : 116
## 1st Qu.:4.500 1st Qu.:867106 1st Qu.: 278
## Median :5.000 Median :870929 Median : 781
## Mean :5.258 Mean :876297 Mean :1635
## 3rd Qu.:6.000 3rd Qu.:880304 3rd Qu.:2126
## Max. :7.000 Max. :913355 Max. :6809
## Sembuh Meninggal SelfIsolation prediksi_ss
## Min. :851280 Min. :13588 Min. : 342 Min. : 130.8
## 1st Qu.:851783 1st Qu.:13589 1st Qu.: 1456 1st Qu.: 307.4
## Median :853522 Median :13591 Median : 3035 Median : 766.0
## Mean :855268 Mean :13598 Mean : 5749 Mean :1634.8
## 3rd Qu.:856934 3rd Qu.:13597 3rd Qu.: 7646 3rd Qu.:2104.3
## Max. :867519 Max. :13666 Max. :25361 Max. :6893.9
## prediksi_smsp prediksi_ss1 prediksi_smsp1 prediksi_linear
## Min. : 123.9 Min. : 4.486 Min. : 3.446 Min. : 484.3
## 1st Qu.: 272.5 1st Qu.: 5.435 1st Qu.: 5.462 1st Qu.:1376.0
## Median : 782.1 Median : 7.096 Median : 7.055 Median :1554.3
## Mean :1634.8 Mean : 7.452 Mean : 7.452 Mean :1634.8
## 3rd Qu.:2123.2 3rd Qu.: 8.793 3rd Qu.: 9.032 3rd Qu.:1911.0
## Max. :6827.6 Max. :11.900 Max. :13.556 Max. :2802.6
# Function to add histograms
panel.hist <- function(x, ...) {
usr <- par("usr")
on.exit(par(usr))
par(usr = c(usr[1:2], 0, 1.5))
his <- hist(x, plot = FALSE)
breaks <- his$breaks
nB <- length(breaks)
y <- his$counts
y <- y/max(y)
rect(breaks[-nB], 0, breaks[-1], y, col = rgb(0, 1, 1, alpha = 0.5), ...)
# lines(density(x), col = 2, lwd = 2) # Uncomment to add density lines
}
# Equivalent with a formula
pairs(mobility_DKI_Jakarta$Dirawat~mobility_DKI_Jakarta$retail_and_recreation_percent_change_from_baseline, data = mobility_DKI_Jakarta,
upper.panel = NULL, # Disabling the upper panel
diag.panel = panel.hist) # Adding the histograms
# Hasil Plot 3 Linier Model Dari ketiga model tersebut kemudian di visualkan melalui Plot, dimana masing masing model menunjukkan pendekatan prediksi linearnya dengan Data Real. Seperti pada gambar dibawah ini.
# plot method
plot(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$Dirawat, lty = 10, col = 'black', lwd =4)
#plot(mod.ss)
# add lm fit
abline(coef(lm( mobility_DKI_Jakarta$Dirawat ~ mobility_DKI_Jakarta$Tanggal , data = mobility_DKI_Jakarta)), lty = 10, col = 'blue', lwd =5)
rug(mobility_DKI_Jakarta$Tanggal) # add rug to plot
#points(mobilityjakarta$Tanggal, mobilityjakarta$DIRAWAT, lty = 2, col = 2, lwd = 2)
lines(mobility_DKI_Jakarta$Tanggal,mod.ss$y , lty = 2, col = 'red', lwd = 2)
#points(mobilityjakarta$Tanggal,mod.smsp$y , lty = 2, col = 4, lwd = 2)
lines(mobility_DKI_Jakarta$Tanggal, mobility_DKI_Jakarta$prediksi_linear, lty = 3, col = 6, lwd = 3)
legend("topright",
legend = c("Real", "Model SS", "Trends", "Linear Regresi"),
lty = 1:4, col = c("Black","Red","Blue","Pink"), lwd = 3, bty = "p")
# Kesimpulan Dari Visualisasi Plot untuk Regresi Linear Tiga Model dapat disimpulkan sebagai berikut :
Baik Model SS dan Model Smooth.Spline mempunyai kesamaan dengan Model Liniear, hanya perlu menggunakan salah satunya saja.
Dari Hasil plot 3 Model yang mendekati nilai Real adalah Model SS
https://github.com/juba/rmdformats : Format Visual Rpubs