Melalui HTML ini, saya akan mengimplementasikan materi yang telah dipelajari dari mata kuliah KOMPUTASI STATISTIKA
\[
Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n + \epsilon
\]
Di mana:
Source: BPS
Berikut ini merupakan data yang akan diolah. Data ini dibuat menggunakan data frame.
data_1 <- data.frame(
Provinsi = c("NAD", "Sumatera Utara", "Sumatera Selatan", "Sumatera Barat",
"Bengkulu", "Riau", "Kepulauan Riau", "Jambi", "Lampung", "Bangka Belitung", "Kalimantan Barat", "Kalimantan Timur", "KalimantanSelatan", "Kalimantan Tengah", "Banten", "DKI Jakarta", "Jawa Barat",
"Jawa Tengah", "DI Yogyakarta", "Jawa Timur", "Bali", "NTT", "NTB",
"Gorontalo", "Sulawesi Barat", "Sulawesi Tengah", "Sulawesi Utara",
"Sulawesi Tenggara", "Sulawesi Selatan", "Maluku Utara", "Maluku",
"Papua Barat", "Papua"),
X1 = c(9.02, 9.13, 8.04, 8.63, 8.55, 8.78, 9.91, 8.37, 7.89, 8.15, 7.17, 9.39,
8.01, 8.17, 8.61, 11, 8.11, 7.43, 9.33, 7.53, 8.58, 7.16, 7.2, 7.52, 7.35,
8.22, 9.09, 8.44, 8.01, 8.72, 9.2, 8.53, 6.87),
X2 = c(856.9, 1416.4, 1104.6, 384.1, 323.5, 511.5, 119.1, 277.7, 1144.8, 119.4,
407.3, 248.7, 184.3, 149.4, 677.5, 371.7, 4375.2, 4811.3, 541.9, 4893,
182.8, 1006.9, 815.5, 198.5, 151.7, 400.4, 201.1, 330.8, 863.2, 85.6,
315.2, 226.2, 960.6),
Y = c(68.3, 68.36, 66.16, 68.91, 68.53, 69.21, 73.02, 67.7, 68.17, 71.19, 64.92,
73.21, 69.43, 67.41, 69.47, 78.08, 68.25, 68.02, 76.44, 67.55, 72.09, 61.68,
63.76, 64.7, 61.53, 65.79, 69.49, 67.55, 67.92, 64.78, 66.09, 60.91, 56.25)
)
data_1
## Provinsi X1 X2 Y
## 1 NAD 9.02 856.9 68.30
## 2 Sumatera Utara 9.13 1416.4 68.36
## 3 Sumatera Selatan 8.04 1104.6 66.16
## 4 Sumatera Barat 8.63 384.1 68.91
## 5 Bengkulu 8.55 323.5 68.53
## 6 Riau 8.78 511.5 69.21
## 7 Kepulauan Riau 9.91 119.1 73.02
## 8 Jambi 8.37 277.7 67.70
## 9 Lampung 7.89 1144.8 68.17
## 10 Bangka Belitung 8.15 119.4 71.19
## 11 Kalimantan Barat 7.17 407.3 64.92
## 12 Kalimantan Timur 9.39 248.7 73.21
## 13 KalimantanSelatan 8.01 184.3 69.43
## 14 Kalimantan Tengah 8.17 149.4 67.41
## 15 Banten 8.61 677.5 69.47
## 16 DKI Jakarta 11.00 371.7 78.08
## 17 Jawa Barat 8.11 4375.2 68.25
## 18 Jawa Tengah 7.43 4811.3 68.02
## 19 DI Yogyakarta 9.33 541.9 76.44
## 20 Jawa Timur 7.53 4893.0 67.55
## 21 Bali 8.58 182.8 72.09
## 22 NTT 7.16 1006.9 61.68
## 23 NTB 7.20 815.5 63.76
## 24 Gorontalo 7.52 198.5 64.70
## 25 Sulawesi Barat 7.35 151.7 61.53
## 26 Sulawesi Tengah 8.22 400.4 65.79
## 27 Sulawesi Utara 9.09 201.1 69.49
## 28 Sulawesi Tenggara 8.44 330.8 67.55
## 29 Sulawesi Selatan 8.01 863.2 67.92
## 30 Maluku Utara 8.72 85.6 64.78
## 31 Maluku 9.20 315.2 66.09
## 32 Papua Barat 8.53 226.2 60.91
## 33 Papua 6.87 960.6 56.25
Selanjutnya kita mencari model regresi untuk data
library(ggplot2)
# Membuat model regresi linier berganda menggunakan pipe operator
model <- lm(Y ~ X2 + X1, data = data_1)
model
##
## Call:
## lm(formula = Y ~ X2 + X1, data = data_1)
##
## Coefficients:
## (Intercept) X2 X1
## 3.380e+01 6.783e-04 3.984e+00
##
## Call:
## lm(formula = Y ~ X2 + X1, data = data_1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.0272 -1.0304 0.3652 1.3550 5.1016
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.380e+01 5.085e+00 6.647 2.32e-07 ***
## X2 6.783e-04 4.054e-04 1.673 0.105
## X1 3.984e+00 5.909e-01 6.742 1.79e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.795 on 30 degrees of freedom
## Multiple R-squared: 0.6032, Adjusted R-squared: 0.5767
## F-statistic: 22.8 on 2 and 30 DF, p-value: 9.522e-07
# Membuat prediksi berdasarkan model
data_1$predicted_Y <- predict(model, newdata = data_1)
# Plot regresi berganda
ggplot(data_1, aes(x = X1, y = Y)) +
# Titik data dengan warna berdasarkan X2 dan ukuran berdasarkan Y
geom_point(aes(color = X2, size = Y), alpha = 0.7) +
# Garis regresi dengan warna biru dan garis putus-putus
geom_smooth(aes(y = predicted_Y), method = "lm", se = FALSE, color = "blue", linetype = "dashed") +
# Menambahkan label, judul, dan keterangan untuk skala warna dan ukuran
labs(
title = "Plot Regresi Berganda: X1 & X2 terhadap Y",
x = "X1",
y = "Y",
color = "X2 (Pengaruh)",
size = "Y (Target)"
) +
# Mengatur gradien warna untuk variabel X2
scale_color_gradient(low = "cyan", high = "magenta") +
# Tema minimalis dan elegan
theme_minimal() +
# Kustomisasi tampilan teks
theme(
plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
axis.title.x = element_text(size = 12, face = "bold"),
axis.title.y = element_text(size = 12, face = "bold"),
legend.position = "right"
)
## `geom_smooth()` using formula = 'y ~ x'