Analisis regresi linier berganda merupakan metode statistika yang digunakan untuk mengetahui hubungan antara satu variabel dependen dengan dua atau lebih variabel independen. Metode ini dapat digunakan untuk mengetahui arah hubungan serta besarnya perubahan variabel dependen berdasarkan perubahan variabel independen.
Pada laporan ini dilakukan analisis regresi linier berganda untuk mengetahui hubungan antara akses air minum layak, akses listrik, dan kondisi lantai rumah terhadap persentase rumah tangga dengan akses sanitasi layak di 38 provinsi Indonesia. Analisis dilakukan menggunakan program R melalui format R Markdown agar proses pengolahan data, perhitungan, dan penyajian hasil dapat disusun dalam satu dokumen.
Analisis regresi linier berganda merupakan metode statistik yang digunakan untuk menjelaskan hubungan antara satu variabel dependen dengan beberapa variabel independen. Metode ini bertujuan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen serta membentuk persamaan regresi yang dapat digunakan untuk melakukan prediksi.
Model regresi linier berganda secara umum dirumuskan sebagai berikut:
\[ Y_i=\beta_0+\beta_1X_{1i}+\beta_2X_{2i} +\beta_3X_{3i}+\varepsilon_i \]
Keterangan:
Estimasi parameter merupakan proses untuk memperoleh nilai koefisien regresi berdasarkan data pengamatan. Salah satu metode yang digunakan adalah Ordinary Least Squares (OLS), yaitu metode yang meminimumkan jumlah kuadrat residual.
Persamaan estimasi parameter OLS adalah:
\[ \hat{\beta}=(X'X)^{-1}X'Y \]
Uji asumsi klasik dilakukan untuk mengetahui apakah model regresi memenuhi beberapa asumsi yang diperlukan dalam analisis regresi linier.
Uji normalitas bertujuan untuk mengetahui apakah residual pada model regresi berdistribusi normal. Pengujian dapat dilakukan menggunakan uji Shapiro-Wilk.
Hipotesis:
\[ H_0:\text{Residual berdistribusi normal} \]
\[ H_1:\text{Residual tidak berdistribusi normal} \]
Kriteria pengujian:
Uji multikolinearitas digunakan untuk mengetahui apakah terdapat hubungan linear yang kuat antarvariabel independen. Pengujian dapat dilakukan menggunakan Variance Inflation Factor (VIF).
Kriteria pengujian:
Uji heteroskedastisitas bertujuan untuk mengetahui apakah varians residual bersifat konstan atau tidak. Pengujian dapat dilakukan menggunakan Breusch-Pagan Test.
Hipotesis:
\[ H_0:\text{Tidak terdapat heteroskedastisitas} \]
\[ H_1:\text{Terdapat heteroskedastisitas} \]
Kriteria pengujian:
Uji autokorelasi digunakan untuk mengetahui apakah terdapat hubungan antara residual pada suatu pengamatan dengan pengamatan lainnya. Pengujian dapat dilakukan menggunakan Durbin-Watson Test.
Hipotesis:
\[ H_0:\text{Tidak terdapat autokorelasi} \]
\[ H_1:\text{Terdapat autokorelasi} \]
Kriteria pengujian:
Uji F digunakan untuk mengetahui apakah seluruh variabel independen secara bersama-sama berpengaruh signifikan terhadap variabel dependen.
Hipotesis:
\[ H_0:\beta_1=\beta_2=\beta_3=0 \]
\[ H_1:\text{Minimal terdapat satu }\beta_j\neq 0 \]
Kriteria pengujian:
Uji t digunakan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen secara parsial.
Hipotesis:
\[ H_0:\beta_j=0 \]
\[ H_1:\beta_j\neq 0 \]
Kriteria pengujian:
Koefisien determinasi merupakan ukuran yang digunakan untuk mengetahui kemampuan variabel independen dalam menjelaskan variasi variabel dependen. Nilai koefisien determinasi berada antara 0 sampai 1.
Rumus koefisien determinasi adalah:
\[ R^2=1-\frac{SSE}{SST} \]
Outlier atau pencilan merupakan pengamatan yang memiliki karakteristik berbeda jauh dibandingkan sebagian besar pengamatan lainnya. Keberadaan outlier perlu diperhatikan karena dapat memengaruhi hasil pendugaan parameter dan kesimpulan analisis regresi.
Pengamatan berpengaruh merupakan pengamatan yang keberadaannya dapat memberikan perubahan terhadap hasil estimasi model regresi. Identifikasi pengamatan berpengaruh dapat dilakukan menggunakan Influence Plot dengan memperhatikan residual, leverage, dan Cook’s Distance.
Uji Bonferroni digunakan untuk mengidentifikasi pencilan dengan mempertimbangkan pengujian terhadap sejumlah pengamatan. Pengujian ini menyesuaikan nilai signifikansi agar risiko kesalahan akibat pengujian berganda dapat dikendalikan.
Hipotesis:
\[ H_0:\text{Pengamatan bukan outlier} \]
\[ H_1:\text{Pengamatan merupakan outlier} \]
Kriteria pengujian:
Data yang digunakan dalam analisis ini merupakan data sekunder yang diperoleh dari publikasi Badan Pusat Statistik (BPS). Data terdiri atas 38 pengamatan yang mewakili provinsi di Indonesia.
Variabel yang digunakan dalam analisis regresi linier berganda terdiri atas satu variabel dependen dan tiga variabel independen.
| Variabel | Keterangan |
|---|---|
| Y | Persentase rumah tangga dengan akses sanitasi layak |
| X1 | Persentase rumah tangga dengan akses air minum layak |
| X2 | Persentase rumah tangga yang memiliki akses listrik |
| X3 | Persentase rumah tangga dengan lantai bukan tanah |
Tahapan analisis yang dilakukan meliputi pengumpulan dan pemilihan data sekunder, eksplorasi data, analisis statistik deskriptif, pembentukan model regresi, pengujian asumsi klasik, pengujian hipotesis melalui Uji F dan Uji t, serta identifikasi outlier menggunakan Influence Plot dan Uji Bonferroni.
Alat yang digunakan dalam analisis ini adalah perangkat komputer dengan program R dan RStudio. Data penelitian disimpan dalam format CSV agar dapat diimpor dan diolah menggunakan program R.
Sebelum melakukan analisis, diperlukan beberapa paket R untuk membantu proses pengolahan dan pengujian data.
# Memanggil paket yang digunakan
library(knitr)
# Memeriksa dan memasang paket jika belum tersedia
paket <- c("car", "lmtest")
for (p in paket) {
if (!requireNamespace(p, quietly = TRUE)) {
install.packages(p)
}
}
library(car)
library(lmtest)
Data penelitian diimpor dari file CSV yang telah disiapkan. File
harus memiliki nama data_regresi.csv dan berada dalam
folder kerja R.
# Mengimpor data
data_regresi <- read.csv2("data_regresi.csv", dec =".")
# Melihat enam data pertama
head(data_regresi)
## Provinsi Y X1 X2 X3
## 1 Aceh 81.10 92.06 99.97 99.52
## 2 Sumatera Utara 85.73 93.24 99.72 99.69
## 3 Sumatera Barat 72.82 87.26 99.47 99.91
## 4 Riau 86.32 92.17 99.71 99.88
## 5 Jambi 83.97 82.46 99.68 99.88
## 6 Sumatera Selatan 82.36 86.82 99.77 99.06
# Melihat struktur data
str(data_regresi)
## 'data.frame': 38 obs. of 5 variables:
## $ Provinsi: chr "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
## $ Y : num 81.1 85.7 72.8 86.3 84 ...
## $ X1 : num 92.1 93.2 87.3 92.2 82.5 ...
## $ X2 : num 100 99.7 99.5 99.7 99.7 ...
## $ X3 : num 99.5 99.7 99.9 99.9 99.9 ...
# Melihat dimensi data
dim(data_regresi)
## [1] 38 5
Eksplorasi data dilakukan untuk mengetahui bentuk, ukuran, dan kelengkapan data sebelum dilakukan analisis lebih lanjut.
# Menampilkan seluruh data
knitr::kable(
data_regresi,
caption = "Data Penelitian"
)
| Provinsi | Y | X1 | X2 | X3 |
|---|---|---|---|---|
| Aceh | 81.10 | 92.06 | 99.97 | 99.52 |
| Sumatera Utara | 85.73 | 93.24 | 99.72 | 99.69 |
| Sumatera Barat | 72.82 | 87.26 | 99.47 | 99.91 |
| Riau | 86.32 | 92.17 | 99.71 | 99.88 |
| Jambi | 83.97 | 82.46 | 99.68 | 99.88 |
| Sumatera Selatan | 82.36 | 86.82 | 99.77 | 99.06 |
| Bengkulu | 83.01 | 70.47 | 99.99 | 99.80 |
| Lampung | 85.44 | 85.13 | 99.96 | 99.69 |
| Kep. Bangka Belitung | 94.16 | 83.54 | 99.93 | 99.99 |
| Kep. Riau | 91.23 | 94.60 | 99.96 | 99.99 |
| Dki Jakarta | 94.01 | 99.98 | 100.00 | 100.00 |
| Jawa Barat | 75.10 | 95.84 | 100.00 | 98.89 |
| Jawa Tengah | 86.72 | 95.73 | 100.00 | 95.41 |
| Di Yogyakarta | 96.71 | 97.33 | 100.00 | 99.78 |
| Jawa Timur | 85.56 | 97.30 | 99.99 | 96.83 |
| Banten | 87.93 | 96.03 | 99.86 | 98.85 |
| Bali | 96.83 | 98.75 | 99.98 | 99.97 |
| Nusa Tenggara Barat | 86.80 | 96.29 | 99.99 | 99.79 |
| Nusa Tenggara Timur | 77.66 | 89.86 | 98.06 | 93.89 |
| Kalimantan Barat | 81.56 | 84.32 | 99.16 | 99.98 |
| Kalimantan Tengah | 78.15 | 80.58 | 99.65 | 99.94 |
| Kalimantan Selatan | 83.70 | 78.27 | 99.86 | 99.98 |
| Kalimantan Timur | 91.65 | 88.45 | 99.97 | 99.96 |
| Kalimantan Utara | 85.17 | 91.59 | 99.89 | 99.98 |
| Sulawesi Utara | 87.31 | 94.86 | 99.84 | 99.02 |
| Sulawesi Tengah | 77.40 | 87.55 | 98.70 | 99.51 |
| Sulawesi Selatan | 93.83 | 93.25 | 99.86 | 99.82 |
| Sulawesi Tenggara | 90.62 | 94.91 | 99.94 | 99.38 |
| Gorontalo | 82.99 | 95.95 | 99.67 | 99.90 |
| Sulawesi Barat | 82.52 | 83.00 | 99.68 | 99.26 |
| Maluku | 80.51 | 92.83 | 98.74 | 99.31 |
| Maluku Utara | 82.32 | 90.01 | 99.26 | 98.51 |
| Papua Barat | 79.00 | 82.95 | 96.59 | 99.39 |
| Papua Barat Daya | 77.84 | 80.64 | 98.56 | 99.25 |
| Papua | 80.57 | 87.70 | 96.65 | 99.83 |
| Papua Selatan | 60.85 | 71.28 | 83.61 | 99.62 |
| Papua Tengah | 41.44 | 83.21 | 67.46 | 94.72 |
| Papua Pegunungan | 12.61 | 32.89 | 68.88 | 80.45 |
# Jumlah pengamatan
nrow(data_regresi)
## [1] 38
# Jumlah variabel
ncol(data_regresi)
## [1] 5
# Memeriksa data kosong
colSums(is.na(data_regresi))
## Provinsi Y X1 X2 X3
## 0 0 0 0 0
# Memeriksa data duplikat
sum(duplicated(data_regresi))
## [1] 0
Statistik deskriptif digunakan untuk menggambarkan karakteristik data melalui nilai minimum, maksimum, rata-rata, median, dan standar deviasi.
# Menghitung statistik deskriptif
statistik <- data.frame(
Variabel = names(data_regresi),
Minimum = sapply(data_regresi, min, na.rm = TRUE),
Maksimum = sapply(data_regresi, max, na.rm = TRUE),
Mean = sapply(data_regresi, mean, na.rm = TRUE),
Median = sapply(data_regresi, median, na.rm = TRUE),
Standar_Deviasi = sapply(data_regresi, sd, na.rm = TRUE)
)
knitr::kable(
statistik,
digits = 3,
caption = "Statistik Deskriptif"
)
| Variabel | Minimum | Maksimum | Mean | Median | Standar_Deviasi | |
|---|---|---|---|---|---|---|
| Provinsi | Provinsi | Aceh | Sumatera Utara | NA | NA | NA |
| Y | Y | 12.61 | 96.83 | 81.145 | 83.355 | 15.071 |
| X1 | X1 | 32.89 | 99.98 | 87.608 | 89.935 | 11.615 |
| X2 | X2 | 67.46 | 100 | 97.421 | 99.805 | 7.493 |
| X3 | X3 | 80.45 | 100 | 98.648 | 99.690 | 3.366 |
Berdasarkan hasil statistik deskriptif, dapat diketahui gambaran umum dari setiap variabel penelitian. Nilai minimum dan maksimum menunjukkan rentang data, sedangkan mean, median, dan standar deviasi menggambarkan pemusatan serta penyebaran data.
Visualisasi data dilakukan untuk melihat pola hubungan antara variabel dependen dan masing-masing variabel independen.
plot(
data_regresi$X1,
data_regresi$Y,
main = "Hubungan X1 terhadap Y",
xlab = "Akses Air Minum Layak (X1)",
ylab = "Akses Sanitasi Layak (Y)",
pch = 19
)
abline(
lm(Y ~ X1, data = data_regresi),
lwd = 2
)
plot(
data_regresi$X2,
data_regresi$Y,
main = "Hubungan X2 terhadap Y",
xlab = "Akses Listrik (X2)",
ylab = "Akses Sanitasi Layak (Y)",
pch = 19
)
abline(
lm(Y ~ X2, data = data_regresi),
lwd = 2
)
plot(
data_regresi$X3,
data_regresi$Y,
main = "Hubungan X3 terhadap Y",
xlab = "Lantai Bukan Tanah (X3)",
ylab = "Akses Sanitasi Layak (Y)",
pch = 19
)
abline(
lm(Y ~ X3, data = data_regresi),
lwd = 2
)
Model regresi dibentuk untuk mengetahui hubungan antara akses air minum layak, akses listrik, dan kondisi lantai rumah terhadap akses sanitasi layak.
# Membentuk model regresi
model <- lm(Y ~ X1 + X2 + X3, data = data_regresi)
# Menampilkan ringkasan model
summary(model)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data_regresi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.1520 -1.6476 -0.1995 2.5197 10.3061
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -154.3380 27.8490 -5.542 3.39e-06 ***
## X1 0.3533 0.1007 3.509 0.00129 **
## X2 1.1528 0.1648 6.994 4.54e-08 ***
## X3 0.9349 0.3769 2.480 0.01823 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.906 on 34 degrees of freedom
## Multiple R-squared: 0.9026, Adjusted R-squared: 0.894
## F-statistic: 105.1 on 3 and 34 DF, p-value: < 2.2e-16
Persamaan regresi yang digunakan adalah:
\[ \hat{Y}=\hat{\beta}_0+\hat{\beta}_1X_1+ \hat{\beta}_2X_2+\hat{\beta}_3X_3 \]
# Mengambil koefisien regresi
koef <- coef(model)
# Menampilkan tabel koefisien
knitr::kable(
data.frame(
Parameter = names(koef),
Estimasi = as.numeric(koef)
),
digits = 4,
caption = "Estimasi Parameter Regresi"
)
| Parameter | Estimasi |
|---|---|
| (Intercept) | -154.3380 |
| X1 | 0.3533 |
| X2 | 1.1528 |
| X3 | 0.9349 |
# Menampilkan persamaan regresi
cat(
sprintf(
"Y = %.4f %+.4f X1 %+.4f X2 %+.4f X3",
koef[1], koef[2], koef[3], koef[4]
)
)
## Y = -154.3380 +0.3533 X1 +1.1528 X2 +0.9349 X3
Uji normalitas dilakukan untuk mengetahui apakah residual model regresi berdistribusi normal.
# Uji Shapiro-Wilk
uji_normalitas <- shapiro.test(residuals(model))
uji_normalitas
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.95721, p-value = 0.1539
# Histogram residual
hist(
residuals(model),
main = "Histogram Residual",
xlab = "Residual",
ylab = "Frekuensi"
)
# Q-Q Plot
qqnorm(
residuals(model),
main = "Normal Q-Q Plot"
)
qqline(residuals(model), lwd = 2)
Uji multikolinearitas dilakukan untuk mengetahui apakah terdapat hubungan linear yang kuat antarvariabel independen.
# Menghitung VIF
nilai_vif <- car::vif(model)
knitr::kable(
data.frame(
Variabel = names(nilai_vif),
VIF = as.numeric(nilai_vif)
),
digits = 4,
caption = "Hasil Uji Multikolinearitas"
)
| Variabel | VIF |
|---|---|
| X1 | 2.1026 |
| X2 | 2.3450 |
| X3 | 2.4739 |
Uji heteroskedastisitas dilakukan untuk mengetahui apakah varians residual bersifat konstan.
# Uji Breusch-Pagan
uji_hetero <- lmtest::bptest(model)
uji_hetero
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 1.505, df = 3, p-value = 0.6811
# Grafik Residual versus Fitted
plot(
model,
which = 1
)
Uji autokorelasi dilakukan untuk mengetahui apakah terdapat hubungan antara residual pada suatu pengamatan dengan pengamatan lainnya.
# Uji Durbin-Watson
uji_auto <- lmtest::dwtest(model)
uji_auto
##
## Durbin-Watson test
##
## data: model
## DW = 1.9936, p-value = 0.399
## alternative hypothesis: true autocorrelation is greater than 0
Uji F dilakukan untuk mengetahui pengaruh seluruh variabel independen secara bersama-sama terhadap variabel dependen.
# Tabel ANOVA
hasil_f <- anova(model)
knitr::kable(
hasil_f,
digits = 4,
caption = "Hasil Uji Simultan (Uji F)"
)
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| X1 | 1 | 5287.8726 | 5287.8726 | 219.7176 | 0.0000 |
| X2 | 1 | 2149.7528 | 2149.7528 | 89.3249 | 0.0000 |
| X3 | 1 | 148.0661 | 148.0661 | 6.1523 | 0.0182 |
| Residuals | 34 | 818.2671 | 24.0667 | NA | NA |
# Mengambil p-value Uji F
fstat <- summary(model)$fstatistic
p_value_f <- pf(
fstat[1],
fstat[2],
fstat[3],
lower.tail = FALSE
)
p_value_f
## value
## 2.878173e-17
Uji t dilakukan untuk mengetahui pengaruh masing-masing variabel independen secara parsial terhadap variabel dependen.
# Mengambil hasil koefisien
hasil_t <- summary(model)$coefficients
knitr::kable(
hasil_t,
digits = 4,
caption = "Hasil Uji Parsial (Uji t)"
)
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -154.3380 | 27.8490 | -5.5420 | 0.0000 |
| X1 | 0.3533 | 0.1007 | 3.5090 | 0.0013 |
| X2 | 1.1528 | 0.1648 | 6.9943 | 0.0000 |
| X3 | 0.9349 | 0.3769 | 2.4804 | 0.0182 |
Koefisien determinasi digunakan untuk mengetahui kemampuan variabel independen dalam menjelaskan variasi variabel dependen.
r_squared <- summary(model)$r.squared
adjusted_r_squared <- summary(model)$adj.r.squared
knitr::kable(
data.frame(
Ukuran = c("R-squared", "Adjusted R-squared"),
Nilai = c(r_squared, adjusted_r_squared)
),
digits = 4,
caption = "Hasil Koefisien Determinasi"
)
| Ukuran | Nilai |
|---|---|
| R-squared | 0.9026 |
| Adjusted R-squared | 0.8940 |
Identifikasi outlier dilakukan untuk mengetahui pengamatan yang memiliki karakteristik berbeda dari sebagian besar data. Pengamatan berpengaruh dapat diketahui melalui nilai leverage dan Cook’s Distance.
# Influence Plot
car::influencePlot(
model,
id.method = "identify",
main = "Influence Plot",
sub = "Ukuran Lingkaran Sebanding dengan Cook's Distance"
)
## StudRes Hat CookD
## 3 -2.64212142 0.03478801 0.053490885
## 12 -2.77995867 0.04891882 0.082958163
## 37 0.02460018 0.75692503 0.000485385
## 38 0.41459505 0.88019397 0.323591169
Uji Bonferroni digunakan untuk mengidentifikasi outlier dengan mempertimbangkan pengujian terhadap sejumlah pengamatan.
# Uji Bonferroni
hasil_bonferroni <- car::outlierTest(model)
hasil_bonferroni
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
## rstudent unadjusted p-value Bonferroni p
## 12 -2.779959 0.0089086 0.33853
# Mengambil p-value setiap pengujian
p_normalitas <- uji_normalitas$p.value
p_hetero <- uji_hetero$p.value
p_auto <- uji_auto$p.value
# Menentukan hasil uji normalitas
hasil_normalitas <- ifelse(
p_normalitas > 0.05,
"Tidak terdapat bukti penyimpangan normalitas",
"Terdapat bukti penyimpangan normalitas"
)
# Menentukan hasil uji heteroskedastisitas
hasil_hetero <- ifelse(
p_hetero > 0.05,
"Tidak terdapat bukti heteroskedastisitas",
"Terdapat bukti heteroskedastisitas"
)
# Menentukan hasil uji autokorelasi
hasil_auto <- ifelse(
p_auto > 0.05,
"Tidak terdapat bukti autokorelasi",
"Terdapat bukti autokorelasi"
)
# Ringkasan pengujian
ringkasan <- data.frame(
Pengujian = c(
"Normalitas",
"Heteroskedastisitas",
"Autokorelasi",
"Uji F"
),
P_Value = c(
p_normalitas,
p_hetero,
p_auto,
p_value_f
),
Kesimpulan = c(
hasil_normalitas,
hasil_hetero,
hasil_auto,
ifelse(
p_value_f < 0.05,
"Model signifikan secara simultan",
"Model tidak signifikan secara simultan"
)
)
)
knitr::kable(
ringkasan,
digits = 4,
caption = "Ringkasan Hasil Pengujian"
)
| Pengujian | P_Value | Kesimpulan |
|---|---|---|
| Normalitas | 0.1539 | Tidak terdapat bukti penyimpangan normalitas |
| Heteroskedastisitas | 0.6811 | Tidak terdapat bukti heteroskedastisitas |
| Autokorelasi | 0.3990 | Tidak terdapat bukti autokorelasi |
| Uji F | 0.0000 | Model signifikan secara simultan |
Berdasarkan hasil analisis regresi linier berganda, dapat diketahui hubungan antara persentase rumah tangga dengan akses air minum layak, akses listrik, dan lantai bukan tanah terhadap persentase rumah tangga dengan akses sanitasi layak. Hasil analisis meliputi pembentukan model regresi, pengujian asumsi klasik, pengujian hipotesis, serta evaluasi model melalui identifikasi outlier dan pengamatan berpengaruh.
Kesimpulan akhir disusun berdasarkan nilai estimasi koefisien, p-value, koefisien determinasi, dan hasil pengujian yang diperoleh dari program R.
Analisis selanjutnya dapat menggunakan variabel independen tambahan yang relevan agar hubungan antarvariabel dapat dikaji secara lebih luas. Selain itu, pemeriksaan terhadap kualitas data dan pengamatan berpengaruh perlu dilakukan agar hasil analisis regresi dapat diinterpretasikan secara tepat.
Ghozali, I. 2022. Aplikasi Analisis Multivariate dengan Program IBM SPSS 26. Semarang: Badan Penerbit Universitas Diponegoro.
Rini, D. S. 2026. Modul Praktikum Pengantar Analisis Regresi. Bengkulu: Laboratorium Matematika Jurusan Matematika FMIPA Universitas Bengkulu.
Roflin, E., Rohana, dan Riana, F. 2022. Analisis Korelasi dan Regresi. Pekalongan: Penerbit NEM.
Sholihah, S. M., Aditiya, N. Y., Evani, E. S., dan Maghfiroh, S. 2023. “Konsep Uji Asumsi Klasik pada Regresi Linier Berganda.” Jurnal Riset Akuntansi Soedirman. Purwokerto: Universitas Jenderal Soedirman.