Puji syukur ke hadirat Tuhan Yang Maha Esa karena laporan praktikum analisis statistika dengan topik regresi linear berganda dan uji Lack of Fit ini dapat disusun. Laporan ini dibuat untuk memenuhi tugas praktikum serta meningkatkan pemahaman mengenai pemodelan hubungan antara satu variabel respons dan beberapa variabel prediktor.
Penulis menyampaikan terima kasih kepada dosen pengampu dan asisten praktikum yang telah memberikan arahan selama kegiatan pembelajaran. Penulis menyadari bahwa laporan ini masih memiliki keterbatasan sehingga kritik dan saran yang membangun sangat diharapkan.
Bengkulu, 11 November 2026
Penulis
Analisis regresi merupakan salah satu metode statistika yang digunakan untuk mempelajari hubungan antara variabel respons dengan satu atau lebih variabel prediktor. Regresi linear berganda digunakan ketika suatu variabel respons diduga berkaitan dengan beberapa variabel penjelas secara simultan. Metode ini membantu peneliti menggambarkan hubungan antarvariabel, mengukur kontribusi prediktor, serta melakukan pengujian terhadap parameter model. Pardoe (2020) menjelaskan bahwa regresi linear berganda mencakup estimasi parameter, pengujian kegunaan model secara keseluruhan, dan pengujian parameter secara individual.
Kemiskinan merupakan permasalahan sosial-ekonomi yang dapat dipelajari melalui beberapa indikator. Persentase penduduk miskin dapat dianalisis bersama indeks kedalaman kemiskinan, indeks keparahan kemiskinan, garis kemiskinan, dan jumlah penduduk miskin. Penggunaan beberapa variabel prediktor memungkinkan analisis dilakukan dengan mempertimbangkan lebih dari satu aspek yang berkaitan dengan kondisi kemiskinan. Pada penelitian ini digunakan data persentase penduduk miskin dengan empat variabel independen dan 35 observasi.
Setelah model regresi dibentuk, kecocokan bentuk model perlu diperhatikan. Model linear belum tentu mampu menggambarkan pola data secara memadai apabila terdapat pola hubungan yang tidak linear atau bentuk fungsi yang belum tepat. Salah satu pendekatan untuk mengevaluasi kecocokan model adalah uji Lack of Fit. Namun, pengujian Lack of Fit klasik membutuhkan pengamatan berulang pada kombinasi prediktor yang sama agar galat murni (pure error) dapat dihitung. NIST (n.d.) menegaskan bahwa pengukuran replikasi pada kondisi prediktor yang identik diperlukan untuk memisahkan galat murni dari penyimpangan model. Oleh karena itu, ketersediaan replikasi pada data perlu diperiksa sebelum menarik kesimpulan uji.
Penelitian ini diharapkan dapat meningkatkan pemahaman mengenai penerapan regresi linear berganda, analisis varians dalam pengujian model, serta pentingnya memeriksa struktur data sebelum melakukan uji Lack of Fit. Laporan ini juga dapat menjadi contoh penyusunan analisis yang dapat direproduksi menggunakan R Markdown.
Carilah data dengan satu variabel respon dan minimal 3 variabel independen, kemudian lakukan uji Lack of Fit dan interpretasikan hasilnya.
BAB I memuat pendahuluan, BAB II memuat tinjauan pustaka, BAB III menjelaskan metode penelitian, BAB IV menyajikan hasil dan pembahasan, BAB V memuat kesimpulan dan saran, kemudian diakhiri daftar pustaka dan lampiran.
Regresi linear berganda merupakan metode untuk memodelkan hubungan antara satu variabel respons dan dua atau lebih variabel prediktor. Bentuk umum model dengan empat prediktor adalah:
\[Y_i=\beta_0+\beta_1X_{1i}+\beta_2X_{2i}+\beta_3X_{3i}+\beta_4X_{4i}+\varepsilon_i\]
Keterangan: \(Y_i\) merupakan respons pengamatan ke-i, \(\beta_0\) merupakan konstanta, \(\beta_j\) merupakan koefisien regresi, \(X_{ji}\) merupakan prediktor ke-j pada pengamatan ke-i, dan \(\varepsilon_i\) merupakan galat. Estimasi parameter umumnya dilakukan dengan metode kuadrat terkecil. Pardoe (2020) membahas estimasi parameter, pengujian global, pengujian parsial, dan evaluasi model dalam regresi linear berganda.
Analisis varians (Analysis of Variance atau ANOVA) pada regresi memisahkan variasi total respons menjadi variasi yang dijelaskan model dan variasi residual. Uji F digunakan untuk mengevaluasi apakah prediktor secara bersama-sama memberikan kontribusi terhadap model. Tabel ANOVA regresi umumnya memuat derajat bebas, jumlah kuadrat, kuadrat tengah, statistik F, dan nilai-p.
Uji Lack of Fit klasik mengevaluasi apakah bentuk model yang ditentukan telah memadai dibandingkan variasi pengamatan berulang pada kombinasi prediktor yang sama. Jumlah kuadrat residual dapat diuraikan menjadi jumlah kuadrat Lack of Fit dan jumlah kuadrat Pure Error:
\[SS_{Error}=SS_{LOF}+SS_{PE}\]
Statistik uji yang digunakan adalah:
\[F_{LOF}=\frac{MS_{LOF}}{MS_{PE}}\]
Hipotesis pengujian adalah \(H_0\): tidak terdapat Lack of Fit dan \(H_1\): terdapat Lack of Fit. Nilai-p yang lebih kecil daripada taraf signifikansi menunjukkan bukti ketidaksesuaian model. Pengujian ini membutuhkan replikasi pada kombinasi nilai prediktor yang identik agar Pure Error dapat diestimasi.
Jika seluruh kombinasi prediktor berbeda, Pure Error tidak dapat dihitung sehingga uji Lack of Fit klasik tidak tersedia. Sebagai pemeriksaan tambahan, model linear dapat dibandingkan dengan model yang memuat suku kuadratik dan interaksi menggunakan uji F untuk model bersarang. Pemeriksaan tersebut menilai apakah penambahan bentuk non-linear meningkatkan kecocokan model, tetapi tidak boleh disebut sebagai pengganti identik uji Lack of Fit klasik.
Jenis data yang digunakan dalam penelitian ini adalah data kuantitatif. Sumber data yang digunakan pada penelitian ini ialah data sekunder yang bersumber dari Badan Pusat Statistik (BPS). Data yang digunakan terdiri dari 35 observasi.
| Simbol | Nama variabel | Peran |
|---|---|---|
| Y | Persentase penduduk miskin (%) | Respons |
| X1 | Indeks kedalaman kemiskinan (P1) | Independen |
| X2 | Indeks keparahan kemiskinan (P2) | Independen |
| X3 | Garis kemiskinan (Rp) | Independen |
| X4 | Jumlah penduduk miskin (ribu) | Independen |
Tahapan analisis meliputi: (1) memasukkan data; (2) memeriksa struktur dan kelengkapan data; (3) menghitung statistik deskriptif; (4) membentuk model regresi linear berganda; (5) melakukan uji F dan uji t; (6) memeriksa apakah terdapat kombinasi prediktor yang berulang; dan (7) apabila tidak ada replikasi, melakukan evaluasi tambahan dengan membandingkan model linear dan model kuadratik-interaksi.
data <- data.frame(
Y = c(9.41,11.15,12.55,13.28,13.58,10.06,13.34,9.90,8.71,11.00,
6.83,9.59,8.48,11.22,10.63,10.58,13.01,8.24,6.59,5.79,
10.87,6.30,7.78,8.40,7.79,8.05,13.32,6.16,14.15,5.68,
7.69,4.20,3.80,6.14,7.28),
X1 = c(1.39,1.80,1.57,1.80,1.95,1.54,2.25,1.04,1.25,1.63,
0.62,1.39,0.91,2.18,1.87,1.27,3.35,1.14,0.77,0.53,
1.65,0.91,0.67,1.47,1.12,0.96,2.39,0.73,2.20,0.53,
1.31,0.61,0.41,0.97,1.42),
X2 = c(0.31,0.43,0.30,0.37,0.40,0.34,0.54,0.17,0.31,0.38,
0.10,0.28,0.17,0.60,0.47,0.27,1.07,0.24,0.15,0.10,
0.41,0.21,0.10,0.35,0.27,0.17,0.62,0.12,0.50,0.09,
0.39,0.12,0.05,0.27,0.35),
X3 = c(469174,529310,491091,424316,502841,496812,486105,454591,464627,
533141,536779,479566,523407,482828,526238,492105,550265,598600,
576195,535150,569035,558501,443089,521061,436936,538371,530254,
516933,563762,662129,678315,630119,709785,639402,702113),
X4 = c(164.22,194.87,121.80,124.66,162.54,72.18,106.29,132.21,86.97,
129.68,62.66,91.90,77.66,100.08,148.10,92.01,85.32,105.27,
60.37,77.67,131.47,70.29,62.05,83.73,61.75,73.80,173.38,88.70,
257.29,6.93,40.08,8.66,74.36,19.49,18.27)
)
str(data)
## 'data.frame': 35 obs. of 5 variables:
## $ Y : num 9.41 11.15 12.55 13.28 13.58 ...
## $ X1: num 1.39 1.8 1.57 1.8 1.95 1.54 2.25 1.04 1.25 1.63 ...
## $ X2: num 0.31 0.43 0.3 0.37 0.4 0.34 0.54 0.17 0.31 0.38 ...
## $ X3: num 469174 529310 491091 424316 502841 ...
## $ X4: num 164 195 122 125 163 ...
dim(data)
## [1] 35 5
head(data)
| Y | X1 | X2 | X3 | X4 |
|---|---|---|---|---|
| 9.41 | 1.39 | 0.31 | 469174 | 164.22 |
| 11.15 | 1.80 | 0.43 | 529310 | 194.87 |
| 12.55 | 1.57 | 0.30 | 491091 | 121.80 |
| 13.28 | 1.80 | 0.37 | 424316 | 124.66 |
| 13.58 | 1.95 | 0.40 | 502841 | 162.54 |
| 10.06 | 1.54 | 0.34 | 496812 | 72.18 |
Statistik deskriptif digunakan untuk melihat ukuran pemusatan dan penyebaran setiap variabel.
statistik <- data.frame(
Variabel = names(data),
Minimum = sapply(data, min),
Q1 = sapply(data, quantile, probs = 0.25),
Median = sapply(data, median),
Mean = sapply(data, mean),
Q3 = sapply(data, quantile, probs = 0.75),
Maksimum = sapply(data, max),
SD = sapply(data, sd)
)
kable(statistik, digits = 3, caption = "Statistik deskriptif setiap variabel")
| Variabel | Minimum | Q1 | Median | Mean | Q3 | Maksimum | SD | |
|---|---|---|---|---|---|---|---|---|
| Y | Y | 3.80 | 7.055 | 8.71 | 9.187 | 11.075 | 14.15 | 2.822 |
| X1 | X1 | 0.41 | 0.910 | 1.31 | 1.360 | 1.725 | 3.35 | 0.642 |
| X2 | X2 | 0.05 | 0.170 | 0.30 | 0.315 | 0.395 | 1.07 | 0.199 |
| X3 | X3 | 424316.00 | 488598.000 | 529310.00 | 538655.600 | 566398.500 | 709785.00 | 73662.019 |
| X4 | X4 | 6.93 | 66.475 | 86.97 | 96.192 | 127.170 | 257.29 | 53.566 |
model_linear <- lm(Y ~ X1 + X2 + X3 + X4, data = data)
summary(model_linear)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.16792 -0.47658 0.02876 0.45046 1.31102
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.801e+00 1.241e+00 3.868 0.000548 ***
## X1 9.336e+00 1.140e+00 8.190 3.84e-09 ***
## X2 -1.941e+01 3.344e+00 -5.803 2.42e-06 ***
## X3 -4.773e-06 1.849e-06 -2.582 0.014959 *
## X4 3.858e-03 3.411e-03 1.131 0.266977
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6764 on 30 degrees of freedom
## Multiple R-squared: 0.9493, Adjusted R-squared: 0.9425
## F-statistic: 140.4 on 4 and 30 DF, p-value: < 2.2e-16
tabel_anova <- anova(model_linear)
kable(tabel_anova, digits = 5, caption = "ANOVA regresi linear berganda")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| X1 | 1 | 203.48256 | 203.48256 | 444.73810 | 0.00000 |
| X2 | 1 | 49.71692 | 49.71692 | 108.66292 | 0.00000 |
| X3 | 1 | 3.19247 | 3.19247 | 6.97756 | 0.01298 |
| X4 | 1 | 0.58536 | 0.58536 | 1.27937 | 0.26698 |
| Residuals | 30 | 13.72600 | 0.45753 | NA | NA |
Uji F menguji hipotesis \(H_0: \beta_1=\beta_2=\beta_3=\beta_4=0\) melawan \(H_1\): minimal terdapat satu koefisien slope yang tidak sama dengan nol. Keputusan didasarkan pada nilai-p dibandingkan dengan \(\alpha=0,05\).
p_f <- pf(summary(model_linear)$fstatistic[1],
summary(model_linear)$fstatistic[2],
summary(model_linear)$fstatistic[3], lower.tail = FALSE)
cat("Nilai-p uji F =", format.pval(p_f, digits = 5), ". ")
Nilai-p uji F = < 2.22e-16 .
if (p_f < 0.05) {
cat("Karena nilai-p < 0,05, maka H0 ditolak.")
} else {
cat("Karena nilai-p >= 0,05, maka H0 tidak ditolak.")
}
Karena nilai-p < 0,05, maka H0 ditolak.
kable(summary(model_linear)$coefficients, digits = 5,
caption = "Estimasi koefisien dan uji parsial")
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 4.80094 | 1.24114 | 3.86818 | 0.00055 |
| X1 | 9.33578 | 1.13986 | 8.19031 | 0.00000 |
| X2 | -19.40804 | 3.34422 | -5.80345 | 0.00000 |
| X3 | 0.00000 | 0.00000 | -2.58175 | 0.01496 |
| X4 | 0.00386 | 0.00341 | 1.13109 | 0.26698 |
kable(data.frame(
Ukuran = c("R-squared", "Adjusted R-squared", "Residual standard error"),
Nilai = c(summary(model_linear)$r.squared,
summary(model_linear)$adj.r.squared,
sigma(model_linear))
), digits = 5, caption = "Ukuran kecocokan model")
| Ukuran | Nilai |
|---|---|
| R-squared | 0.94930 |
| Adjusted R-squared | 0.94253 |
| Residual standard error | 0.67641 |
Uji Lack of Fit klasik pada regresi berganda memerlukan baris-baris dengan nilai X1, X2, X3, dan X4 yang seluruhnya sama. Kode berikut memeriksa jumlah kombinasi prediktor yang unik.
jumlah_unik <- nrow(unique(data[, c("X1", "X2", "X3", "X4")]))
jumlah_replikasi <- nrow(data) - jumlah_unik
cat("Jumlah observasi:", nrow(data), "\n")
## Jumlah observasi: 35
cat("Jumlah kombinasi prediktor unik:", jumlah_unik, "\n")
## Jumlah kombinasi prediktor unik: 35
cat("Jumlah observasi yang merupakan pengulangan kombinasi:", jumlah_replikasi, "\n")
## Jumlah observasi yang merupakan pengulangan kombinasi: 0
group_id <- interaction(data[, c("X1", "X2", "X3", "X4")], drop = TRUE)
jumlah_kombinasi <- length(unique(group_id))
df_pure_error <- nrow(data) - jumlah_kombinasi
df_lof <- jumlah_kombinasi - qr(model.matrix(model_linear))$rank
if (df_pure_error > 0 && df_lof > 0) {
ss_pure_error <- sum((data$Y - ave(data$Y, group_id, FUN = mean))^2)
ss_error <- sum(residuals(model_linear)^2)
ss_lof <- ss_error - ss_pure_error
ms_pure_error <- ss_pure_error / df_pure_error
ms_lof <- ss_lof / df_lof
f_lof <- ms_lof / ms_pure_error
p_lof <- pf(f_lof, df_lof, df_pure_error, lower.tail = FALSE)
tabel_lof <- data.frame(
Komponen = c("Lack of Fit", "Pure Error"),
DF = c(df_lof, df_pure_error),
SS = c(ss_lof, ss_pure_error),
MS = c(ms_lof, ms_pure_error),
F = c(f_lof, NA),
P_value = c(p_lof, NA)
)
kable(tabel_lof, digits = 5, caption = "Uji Lack of Fit klasik")
cat("\nNilai-p Lack of Fit =", format.pval(p_lof, digits = 5))
} else {
cat("Tidak tersedia derajat bebas Pure Error dan Lack of Fit yang memadai. Uji Lack of Fit klasik tidak dapat dihitung pada data ini.")
}
## Tidak tersedia derajat bebas Pure Error dan Lack of Fit yang memadai. Uji Lack of Fit klasik tidak dapat dihitung pada data ini.
Karena data ini tidak memiliki replikasi pada kombinasi seluruh prediktor, uji Lack of Fit klasik tidak dapat dihitung. Sebagai evaluasi tambahan, model linear dibandingkan dengan model yang menambahkan seluruh suku kuadratik dan interaksi dua arah. Prediktor distandardisasi terlebih dahulu agar skala variabel berbeda tidak menimbulkan masalah numerik yang tidak perlu.
prediktor <- c("X1", "X2", "X3", "X4")
data_z <- as.data.frame(scale(data[, prediktor]))
data_z$Y <- data$Y
model_z <- lm(Y ~ ., data = data_z)
# Membuat seluruh suku kuadrat dan interaksi dua arah
for (v in prediktor) {
data_z[[paste0(v, "_sq")]] <- data_z[[v]]^2
}
for (i in 1:(length(prediktor)-1)) {
for (j in (i+1):length(prediktor)) {
nama <- paste0(prediktor[i], "_x_", prediktor[j])
data_z[[nama]] <- data_z[[prediktor[i]]] * data_z[[prediktor[j]]]
}
}
model_lengkap <- lm(Y ~ ., data = data_z)
anova(model_z, model_lengkap)
| Res.Df | RSS | Df | Sum of Sq | F | Pr(>F) |
|---|---|---|---|---|---|
| 30 | 13.72600 | NA | NA | NA | NA |
| 20 | 9.17222 | 10 | 4.553784 | 0.9929514 | 0.4805534 |
perbandingan <- anova(model_z, model_lengkap)
p_tambahan <- perbandingan$`Pr(>F)`[2]
cat("Nilai-p perbandingan model linear dengan model yang memuat suku kuadratik dan interaksi adalah ",
format.pval(p_tambahan, digits = 5), ". ", sep = "")
Nilai-p perbandingan model linear dengan model yang memuat suku kuadratik dan interaksi adalah 0.48055.
if (!is.na(p_tambahan) && p_tambahan < 0.05) {
cat("Penambahan suku kuadratik dan interaksi meningkatkan kecocokan model secara signifikan pada taraf 5 persen. Ini merupakan indikasi bahwa bentuk linear sederhana mungkin belum cukup.")
} else {
cat("Tidak terdapat bukti yang cukup bahwa penambahan suku kuadratik dan interaksi meningkatkan kecocokan model pada taraf 5 persen. Hasil ini merupakan evaluasi tambahan, bukan uji Lack of Fit klasik.")
}
Tidak terdapat bukti yang cukup bahwa penambahan suku kuadratik dan interaksi meningkatkan kecocokan model pada taraf 5 persen. Hasil ini merupakan evaluasi tambahan, bukan uji Lack of Fit klasik.
plot(data$Y, fitted(model_linear), pch=19,
xlab="Nilai aktual Y", ylab="Nilai prediksi Y",
main="Nilai aktual dan prediksi")
abline(0, 1, lty=2, col="red")
plot(fitted(model_linear), residuals(model_linear), pch=19,
xlab="Nilai prediksi", ylab="Residual",
main="Residual terhadap nilai prediksi")
abline(h=0, lty=2, col="red")
Berdasarkan data yang digunakan, model regresi linear berganda menghubungkan persentase penduduk miskin dengan empat prediktor. Hasil uji F, uji t, dan koefisien determinasi ditampilkan langsung dari perhitungan R sehingga dapat diperbarui apabila data diubah. Pemeriksaan kombinasi prediktor merupakan bagian penting sebelum melakukan uji Lack of Fit klasik. Apabila tidak ada kombinasi prediktor yang berulang, maka Pure Error tidak tersedia dan nilai statistik F Lack of Fit klasik tidak dapat ditentukan. Perbandingan model linear dan model kuadratik-interaksi hanya digunakan sebagai evaluasi tambahan atas bentuk fungsi.
Berdasarkan batasan masalah, penelitian ini menggunakan satu variabel respons, yaitu persentase penduduk miskin, dan empat variabel independen, yaitu indeks kedalaman kemiskinan, indeks keparahan kemiskinan, garis kemiskinan, dan jumlah penduduk miskin, dengan jumlah 35 observasi. Model regresi linear berganda dibentuk untuk menjelaskan hubungan antara variabel respons dan keempat variabel prediktor. Uji ANOVA regresi, uji parsial, serta koefisien determinasi dihitung menggunakan R. Pemeriksaan struktur data menunjukkan bahwa uji Lack of Fit klasik hanya dapat dilaksanakan apabila terdapat pengamatan berulang pada kombinasi seluruh prediktor yang sama. Jika tidak terdapat replikasi, Pure Error tidak dapat dihitung sehingga uji Lack of Fit klasik tidak dapat disimpulkan dari dataset tersebut. Perbandingan model linear dengan model kuadratik-interaksi dapat digunakan sebagai evaluasi tambahan, tetapi bukan pengganti identik uji Lack of Fit klasik.
Penelitian selanjutnya disarankan menggunakan rancangan atau dataset yang memiliki pengamatan berulang pada kombinasi nilai prediktor yang sama agar komponen Pure Error dapat diestimasi dan uji Lack of Fit klasik dapat dilakukan. Selain itu, identitas tabel, tahun, dan tautan sumber data asli sebaiknya dicantumkan secara lengkap agar data dapat diverifikasi dan analisis dapat direproduksi.
National Institute of Standards and Technology. (n.d.). Process modeling: Assessing model adequacy. NIST/SEMATECH e-Handbook of Statistical Methods. https://www.itl.nist.gov/div898/handbook/pmd/section4/pmd446.htm
Pardoe, I. (2020). Multiple linear regression. In I. Pardoe (Ed.), Applied regression modeling. Wiley. https://doi.org/10.1002/9781119615941.ch3
Penn State Eberly College of Science. (n.d.). MLR model evaluation. STAT 501: Regression Methods. https://online.stat.psu.edu/stat501/Lesson06
Tamhane, A. C. (2020). Multiple linear regression: Model diagnostics. In A. C. Tamhane (Ed.), Predictive analytics. Wiley. https://doi.org/10.1002/9781119464761.ch4
kable(data, caption="Data persentase penduduk miskin dan empat prediktor")
| Y | X1 | X2 | X3 | X4 |
|---|---|---|---|---|
| 9.41 | 1.39 | 0.31 | 469174 | 164.22 |
| 11.15 | 1.80 | 0.43 | 529310 | 194.87 |
| 12.55 | 1.57 | 0.30 | 491091 | 121.80 |
| 13.28 | 1.80 | 0.37 | 424316 | 124.66 |
| 13.58 | 1.95 | 0.40 | 502841 | 162.54 |
| 10.06 | 1.54 | 0.34 | 496812 | 72.18 |
| 13.34 | 2.25 | 0.54 | 486105 | 106.29 |
| 9.90 | 1.04 | 0.17 | 454591 | 132.21 |
| 8.71 | 1.25 | 0.31 | 464627 | 86.97 |
| 11.00 | 1.63 | 0.38 | 533141 | 129.68 |
| 6.83 | 0.62 | 0.10 | 536779 | 62.66 |
| 9.59 | 1.39 | 0.28 | 479566 | 91.90 |
| 8.48 | 0.91 | 0.17 | 523407 | 77.66 |
| 11.22 | 2.18 | 0.60 | 482828 | 100.08 |
| 10.63 | 1.87 | 0.47 | 526238 | 148.10 |
| 10.58 | 1.27 | 0.27 | 492105 | 92.01 |
| 13.01 | 3.35 | 1.07 | 550265 | 85.32 |
| 8.24 | 1.14 | 0.24 | 598600 | 105.27 |
| 6.59 | 0.77 | 0.15 | 576195 | 60.37 |
| 5.79 | 0.53 | 0.10 | 535150 | 77.67 |
| 10.87 | 1.65 | 0.41 | 569035 | 131.47 |
| 6.30 | 0.91 | 0.21 | 558501 | 70.29 |
| 7.78 | 0.67 | 0.10 | 443089 | 62.05 |
| 8.40 | 1.47 | 0.35 | 521061 | 83.73 |
| 7.79 | 1.12 | 0.27 | 436936 | 61.75 |
| 8.05 | 0.96 | 0.17 | 538371 | 73.80 |
| 13.32 | 2.39 | 0.62 | 530254 | 173.38 |
| 6.16 | 0.73 | 0.12 | 516933 | 88.70 |
| 14.15 | 2.20 | 0.50 | 563762 | 257.29 |
| 5.68 | 0.53 | 0.09 | 662129 | 6.93 |
| 7.69 | 1.31 | 0.39 | 678315 | 40.08 |
| 4.20 | 0.61 | 0.12 | 630119 | 8.66 |
| 3.80 | 0.41 | 0.05 | 709785 | 74.36 |
| 6.14 | 0.97 | 0.27 | 639402 | 19.49 |
| 7.28 | 1.42 | 0.35 | 702113 | 18.27 |
R.version.string
## [1] "R version 4.5.1 (2025-06-13 ucrt)"
sessionInfo()
## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 10 x64 (build 19045)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=English_Indonesia.utf8 LC_CTYPE=English_Indonesia.utf8
## [3] LC_MONETARY=English_Indonesia.utf8 LC_NUMERIC=C
## [5] LC_TIME=English_Indonesia.utf8
##
## time zone: Asia/Jakarta
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_1.51
##
## loaded via a namespace (and not attached):
## [1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0 xfun_0.57
## [5] cachem_1.1.0 htmltools_0.5.9 rmarkdown_2.31 lifecycle_1.0.5
## [9] cli_3.6.5 sass_0.4.10 jquerylib_0.1.4 compiler_4.5.1
## [13] tools_4.5.1 evaluate_1.0.5 bslib_0.10.0 yaml_2.3.12
## [17] rlang_1.2.0 jsonlite_2.0.0