Kemajuan teknologi informasi memberikan kemudahan dalam proses pengolahan data dan analisis statistik, salah satunya dengan menggunakan perangkat lunak RStudio melalui fitur R Markdown. Fitur ini memungkinkan pengguna untuk menyusun kode program, hasil perhitungan, tabel, visualisasi grafik, serta uraian analisis ke dalam satu dokumen yang sistematis. Dengan demikian, penggunaan R Markdown dapat meningkatkan keteraturan penyajian hasil analisis sekaligus mendukung prinsip reproducible research, yaitu proses analisis yang dapat diperiksa, diulang, dan dijalankan kembali untuk memperoleh hasil yang konsisten.
Salah satu teknik statistik yang banyak digunakan dalam pengolahan data adalah analisis regresi. Metode ini bertujuan untuk mengidentifikasi dan menjelaskan hubungan antara variabel dependen (respons) dengan satu atau beberapa variabel independen (prediktor). Proses analisis regresi dilakukan melalui beberapa tahapan, dimulai dari penentuan dan pengumpulan data sekunder, pemeriksaan data, hingga analisis statistik deskriptif untuk mengetahui gambaran umum karakteristik setiap variabel. Selanjutnya, dilakukan pembentukan model regresi dan estimasi parameter untuk memperoleh persamaan yang mampu menjelaskan hubungan antarvariabel.
Model yang diperoleh kemudian perlu diuji kelayakannya melalui pengujian asumsi klasik, meliputi uji normalitas, multikolinearitas, heteroskedastisitas, dan autokorelasi. Pengujian tersebut bertujuan untuk memastikan bahwa model telah memenuhi asumsi yang diperlukan. Tahap akhir dilakukan dengan pengujian hipotesis, yaitu uji simultan (uji F) untuk mengetahui pengaruh seluruh variabel prediktor secara bersama-sama terhadap variabel respons dan uji parsial (uji t) untuk mengetahui pengaruh masing-masing variabel prediktor terhadap variabel respons.
Di samping pengujian asumsi klasik, pemeriksaan terhadap model regresi juga perlu dilakukan untuk mengetahui keberadaan outlier atau data pencilan yang dapat memengaruhi ketepatan hasil analisis. Pendeteksian pencilan dapat dilakukan dengan memanfaatkan Influence Plot dan uji Bonferroni untuk mengidentifikasi pengamatan yang memiliki karakteristik tidak biasa terhadap model. Oleh karena itu, praktikum ini dilaksanakan untuk memahami dan menerapkan tahapan analisis regresi secara menyeluruh dengan bantuan RStudio melalui fitur R Markdown.
Praktikum ini diharapkan dapat menambah pengetahuan dan wawasan mengenai penggunaan R Markdown dalam pengolahan serta analisis data statistik. Selain itu, praktikum ini dapat menjadi bahan pembelajaran untuk memahami penerapan analisis regresi linear berganda menggunakan program R.
Batasan masalah pada praktikum ini adalah pembuatan laporan analisis regresi linear berganda menggunakan format R Markdown. Analisis yang dilakukan mencakup pengumpulan dan pemilihan data sekunder, eksplorasi data, statistik deskriptif, pembentukan model regresi, pengujian asumsi klasik, pengujian hipotesis melalui uji F dan uji t, serta identifikasi dan pengujian outlier menggunakan Influence Plot dan uji Bonferroni.
Laporan praktikum ini terdiri atas lima bab. Bab I membahas pendahuluan, Bab II membahas tinjauan pustaka, Bab III membahas metode penelitian, Bab IV menyajikan hasil dan pembahasan, sedangkan Bab V berisi kesimpulan dan saran. Bagian akhir laporan dilengkapi dengan daftar pustaka dan lampiran.
R Markdown merupakan fitur dalam perangkat lunak R yang memungkinkan
pengguna menggabungkan teks, kode program, dan hasil analisis ke dalam
satu dokumen. Dokumen R Markdown memiliki ekstensi .Rmd dan
dapat menghasilkan berbagai format keluaran, seperti HTML, PDF, dan
Microsoft Word. Penggunaan R Markdown membantu proses penyusunan laporan
menjadi lebih sistematis serta memungkinkan analisis dijalankan
kembali.
Analisis regresi linear berganda merupakan teknik analisis regresi yang menggunakan dua atau lebih variabel independen (X) untuk menjelaskan hubungan dengan satu variabel dependen (Y). Model regresi linear berganda secara umum dapat dituliskan sebagai berikut:
\[ Y_i = \beta_0+\beta_1X_{1i}+\beta_2X_{2i}+\cdots+\beta_kX_{ki}+\varepsilon_i \]
Keterangan:
Uji asumsi klasik merupakan pengujian yang dilakukan untuk mengetahui apakah model regresi telah memenuhi asumsi yang diperlukan. Pengujian yang digunakan dalam praktikum ini meliputi:
Pengujian signifikansi parameter dilakukan untuk mengetahui pengaruh variabel independen terhadap variabel dependen.
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 \]
Uji t digunakan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen secara individual.
Hipotesis:
\[ H_0:\beta_j=0 \]
\[ H_1:\beta_j\neq 0 \]
Outlier atau pencilan merupakan pengamatan yang memiliki karakteristik berbeda dibandingkan dengan sebagian besar pengamatan lainnya. Keberadaan pencilan dapat memengaruhi hasil analisis sehingga perlu dilakukan pendeteksian.
Influence Plot merupakan grafik yang digunakan untuk mengidentifikasi pengamatan yang berpotensi menjadi pencilan atau memberikan pengaruh terhadap model regresi. Grafik ini menampilkan studentized residual, leverage, dan Cook’s Distance.
Uji Bonferroni digunakan untuk mengidentifikasi pengamatan yang terindikasi sebagai outlier dengan mempertimbangkan pengujian terhadap sejumlah pengamatan secara bersamaan. Pengujian dilakukan dengan memperhatikan nilai studentized deleted residual dan nilai signifikansi yang telah disesuaikan menggunakan metode Bonferroni.
Jenis data yang digunakan dalam analisis ini adalah data kuantitatif karena seluruh variabel yang dianalisis berbentuk numerik. Data terdiri dari 38 observasi kabupaten/kota di Provinsi Jawa Timur, dengan jumlah penduduk miskin sebagai variabel dependen (Y), serta laju pertumbuhan PDRB, Indeks Pembangunan Manusia (IPM), dan jumlah penduduk sebagai variabel independen (X).
Sumber data yang digunakan dalam praktikum ini adalah data sekunder yang diperoleh dari publikasi resmi Badan Pusat Statistik (BPS) Provinsi Jawa Timur. Data yang digunakan meliputi jumlah penduduk miskin, laju pertumbuhan PDRB, Indeks Pembangunan Manusia (IPM), dan jumlah penduduk pada kabupaten dan kota di Provinsi Jawa Timur.
Variabel yang digunakan terdiri dari satu variabel dependen dan tiga variabel independen. Variabel dependen (Y) adalah jumlah penduduk miskin. Sementara itu, variabel independen terdiri dari laju pertumbuhan PDRB (X1), Indeks Pembangunan Manusia atau IPM (X2), dan jumlah penduduk (X3).
Tahapan analisis data yang dilakukan dalam praktikum ini adalah sebagai berikut:
Data yang digunakan terdiri dari 38 kabupaten/kota di Provinsi Jawa Timur. Data dimasukkan menggunakan file Excel yang telah disiapkan.
library(readxl)
library(car)
library(lmtest)
library(knitr)
library(DiagrammeR)
# Memeriksa lokasi folder kerja
getwd()## [1] "C:/Users/ACER/Documents"
## [1] "~$Data Laprak Anreg Fithria.xlsx"
## [2] "~$gas Metode Statistika Pertemuan ke-6 Kelompok 11.docx"
## [3] "~$sptjm.docx"
## [4] "ADE.R"
## [5] "Barang muker 2025.xlsx"
## [6] "BATASAN MASALAH 5 KOMSTAT.R"
## [7] "Berdasarkan hasil analisis pada batasan masalah visualisasi data dan uji normalitas.pdf"
## [8] "BERKAS SEKRE"
## [9] "BM 2.R"
## [10] "Data Komstat 6 Fithria.xlsx"
## [11] "Data Laprak Anreg Fithria.xlsx"
## [12] "DATA PRAKTIKUM SEM 3"
## [13] "desktop.ini"
## [14] "Doc1.docx"
## [15] "E - Pintasan.lnk"
## [16] "Fithriaa.Rmd"
## [17] "KingsoftData"
## [18] "Komstat 7.R"
## [19] "KOMSTAT 7.xlsx"
## [20] "komstat 8 batasan masalah.R"
## [21] "Laporan_Komstat.html"
## [22] "Laporan_Komstat.Rmd"
## [23] "LAPRAK"
## [24] "LAPRAK ANREG 3.R"
## [25] "LAPRAK SEM 2"
## [26] "LAPRAK SEM 3"
## [27] "MATKUL STAT 25 SEM 1"
## [28] "MATKUL STAT 25 SEM 2"
## [29] "MATKUL STAT 25 SEM 3"
## [30] "MATLAB"
## [31] "metnum 5.pdf"
## [32] "metnum 7.pdf"
## [33] "METNUM6.pdf"
## [34] "My Music"
## [35] "My Pictures"
## [36] "My Videos"
## [37] "Pada permasalahan 5.pdf"
## [38] "PENTING (PRIVASI)"
## [39] "PRAKTIKUM KOMSTAT 8.R"
## [40] "simulasi distribusi binomial.R"
## [41] "SURAT UNDANGAN BU PEPI DAN BU WINA.pdf"
## [42] "syntax B6 Komstat.R"
## [43] "TABEL REKAPITULASI TEKSAM.xlsx"
## [44] "Zoom"
# Membaca data Excel
data_asli <- read_excel("Data Laprak Anreg Fithria.xlsx")
# Membentuk data analisis
DATA <- data.frame(
Kabupaten = as.character(data_asli[[1]][-1]),
Y = as.numeric(as.character(data_asli[[2]][-1])),
X1 = as.numeric(as.character(data_asli[[3]][-1])),
X2 = as.numeric(as.character(data_asli[[4]][-1])),
X3 = as.numeric(as.character(data_asli[[5]][-1]))
)
# Memeriksa data
head(DATA)## Kabupaten Y X1 X2 X3
## 1 Pacitan 75.86 5.08 68.16 555304
## 2 Ponorogo 83.97 5.01 70.56 871370
## 3 Trenggalek 76.44 5.08 69.46 696295
## 4 Tulungagung 70.01 5.32 72.62 1039284
## 5 Blitar 103.75 5.12 70.57 1160677
## 6 Kediri 163.95 5.07 71.85 1574272
## 'data.frame': 38 obs. of 5 variables:
## $ Kabupaten: chr "Pacitan" "Ponorogo" "Trenggalek" "Tulungagung" ...
## $ Y : num 75.9 84 76.4 70 103.8 ...
## $ X1 : num 5.08 5.01 5.08 5.32 5.12 5.07 5.5 4.77 5.31 5.55 ...
## $ X2 : num 68.2 70.6 69.5 72.6 70.6 ...
## $ X3 : num 555304 871370 696295 1039284 1160677 ...
## [1] 38 5
## Kabupaten Y X1 X2 X3
## 0 0 0 0 0
## Kabupaten Y X1 X2
## Length:38 Min. : 6.63 Min. :0.140 Min. :61.94
## Class :character 1st Qu.: 70.48 1st Qu.:5.062 1st Qu.:68.19
## Mode :character Median :112.62 Median :5.385 Median :71.14
## Mean :108.22 Mean :5.082 Mean :71.69
## 3rd Qu.:153.13 3rd Qu.:5.720 3rd Qu.:74.82
## Max. :246.60 Max. :6.520 Max. :82.22
## X3
## Min. : 129014
## 1st Qu.: 682758
## Median :1012978
## Mean :1044701
## 3rd Qu.:1234546
## Max. :2896195
Statistik deskriptif digunakan untuk mengetahui gambaran umum karakteristik data melalui nilai minimum, kuartil pertama, median, rata-rata, kuartil ketiga, dan maksimum.
statistik_deskriptif <- data.frame(
Variabel = c("Y", "X1", "X2", "X3"),
Minimum = sapply(DATA[, c("Y", "X1", "X2", "X3")], min),
Kuartil_1 = sapply(DATA[, c("Y", "X1", "X2", "X3")], quantile, probs = 0.25),
Median = sapply(DATA[, c("Y", "X1", "X2", "X3")], median),
Mean = sapply(DATA[, c("Y", "X1", "X2", "X3")], mean),
Kuartil_3 = sapply(DATA[, c("Y", "X1", "X2", "X3")], quantile, probs = 0.75),
Maksimum = sapply(DATA[, c("Y", "X1", "X2", "X3")], max)
)
kable(
statistik_deskriptif,
digits = 4,
caption = "Tabel 4.1 Statistik Deskriptif Data"
)| Variabel | Minimum | Kuartil_1 | Median | Mean | Kuartil_3 | Maksimum | |
|---|---|---|---|---|---|---|---|
| Y | Y | 6.63 | 70.4850 | 112.625 | 108.2176 | 153.1325 | 246.60 |
| X1 | X1 | 0.14 | 5.0625 | 5.385 | 5.0818 | 5.7200 | 6.52 |
| X2 | X2 | 61.94 | 68.1925 | 71.145 | 71.6866 | 74.8200 | 82.22 |
| X3 | X3 | 129014.00 | 682757.5000 | 1012978.000 | 1044700.8158 | 1234545.5000 | 2896195.00 |
Analisis regresi linear berganda dilakukan untuk mengetahui hubungan antara jumlah penduduk miskin sebagai variabel dependen dengan laju pertumbuhan PDRB, IPM, dan jumlah penduduk sebagai variabel independen.
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = DATA)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.741 -16.122 -2.627 14.280 52.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.684e+02 6.164e+01 7.598 7.92e-09 ***
## X1 -1.328e+01 3.738e+00 -3.554 0.00114 **
## X2 -5.101e+00 9.682e-01 -5.268 7.70e-06 ***
## X3 6.987e-05 6.128e-06 11.402 3.66e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 24.79 on 34 degrees of freedom
## Multiple R-squared: 0.8724, Adjusted R-squared: 0.8611
## F-statistic: 77.48 on 3 and 34 DF, p-value: 2.812e-15
hasil_summary <- summary(regresi)
tabel_koefisien <- as.data.frame(hasil_summary$coefficients)
tabel_koefisien$Variabel <- rownames(tabel_koefisien)
rownames(tabel_koefisien) <- NULL
tabel_koefisien <- tabel_koefisien[, c(
"Variabel",
"Estimate",
"Std. Error",
"t value",
"Pr(>|t|)"
)]
kable(
tabel_koefisien,
digits = 6,
caption = "Tabel 4.2 Koefisien Regresi Linear Berganda"
)| Variabel | Estimate | Std. Error | t value | Pr(>|t|) |
|---|---|---|---|---|
| (Intercept) | 468.377593 | 61.642174 | 7.598330 | 0.000000 |
| X1 | -13.284382 | 3.738237 | -3.553649 | 0.001139 |
| X2 | -5.100534 | 0.968170 | -5.268224 | 0.000008 |
| X3 | 0.000070 | 0.000006 | 11.401552 | 0.000000 |
koef <- coef(regresi)
cat(
"Y =", round(koef[1], 6),
ifelse(koef[2] >= 0, "+", "-"), abs(round(koef[2], 6)), "X1",
ifelse(koef[3] >= 0, "+", "-"), abs(round(koef[3], 6)), "X2",
ifelse(koef[4] >= 0, "+", "-"), abs(round(koef[4], 6)), "X3"
)## Y = 468.3776 - 13.28438 X1 - 5.100534 X2 + 7e-05 X3
tabel_ringkasan <- data.frame(
Keterangan = c(
"Residual Standard Error",
"Multiple R-squared",
"Adjusted R-squared",
"F-statistic",
"P-value"
),
Nilai = c(
hasil_summary$sigma,
hasil_summary$r.squared,
hasil_summary$adj.r.squared,
unname(hasil_summary$fstatistic[1]),
pf(
hasil_summary$fstatistic[1],
hasil_summary$fstatistic[2],
hasil_summary$fstatistic[3],
lower.tail = FALSE
)
)
)
kable(
tabel_ringkasan,
digits = 6,
caption = "Ringkasan Model Regresi Linear Berganda"
)| Keterangan | Nilai |
|---|---|
| Residual Standard Error | 24.785109 |
| Multiple R-squared | 0.872394 |
| Adjusted R-squared | 0.861135 |
| F-statistic | 77.481789 |
| P-value | 0.000000 |
Pengujian asumsi klasik dilakukan untuk mengetahui apakah model regresi telah memenuhi asumsi yang diperlukan.
Uji multikolinearitas dilakukan menggunakan nilai Variance Inflation Factor (VIF). Model dikatakan tidak mengalami multikolinearitas apabila nilai VIF masing-masing variabel independen kurang dari 10.
nilai_vif <- car::vif(regresi)
tabel_vif <- data.frame(
Variabel = names(nilai_vif),
VIF = as.numeric(nilai_vif),
Keterangan = ifelse(
nilai_vif < 10,
"Tidak terjadi multikolinearitas",
"Terjadi multikolinearitas"
)
)
kable(
tabel_vif,
digits = 4,
caption = "Tabel 4.3 Hasil Uji Multikolinearitas"
)| Variabel | VIF | Keterangan | |
|---|---|---|---|
| X1 | X1 | 1.4854 | Tidak terjadi multikolinearitas |
| X2 | X2 | 1.4930 | Tidak terjadi multikolinearitas |
| X3 | X3 | 1.0103 | Tidak terjadi multikolinearitas |
Uji heteroskedastisitas dilakukan menggunakan Studentized Breusch-Pagan Test. Hipotesis pengujian adalah:
\[ H_0:\text{Variansi galat bersifat homoskedastisitas} \]
\[ H_1:\text{Variansi galat bersifat heteroskedastisitas} \]
##
## studentized Breusch-Pagan test
##
## data: regresi
## BP = 4.8856, df = 3, p-value = 0.1804
tabel_bp <- data.frame(
Statistik = unname(hasil_bp$statistic),
Derajat_Bebas = unname(hasil_bp$parameter),
P_Value = hasil_bp$p.value,
Keterangan = ifelse(
hasil_bp$p.value > 0.05,
"Tidak terjadi heteroskedastisitas",
"Terjadi heteroskedastisitas"
)
)
kable(
tabel_bp,
digits = 6,
caption = "Tabel 4.4 Hasil Uji Heteroskedastisitas"
)| Statistik | Derajat_Bebas | P_Value | Keterangan | |
|---|---|---|---|---|
| BP | 4.885588 | 3 | 0.180369 | Tidak terjadi heteroskedastisitas |
Uji normalitas dilakukan menggunakan Shapiro-Wilk Test untuk mengetahui apakah residual model regresi berdistribusi normal.
Hipotesis pengujian:
\[ H_0:\text{Residual berdistribusi normal} \]
\[ H_1:\text{Residual tidak berdistribusi normal} \]
##
## Shapiro-Wilk normality test
##
## data: residuals(regresi)
## W = 0.9628, p-value = 0.2338
tabel_normalitas <- data.frame(
Statistik_W = unname(hasil_normalitas$statistic),
P_Value = hasil_normalitas$p.value,
Keterangan = ifelse(
hasil_normalitas$p.value > 0.05,
"Residual berdistribusi normal",
"Residual tidak berdistribusi normal"
)
)
kable(
tabel_normalitas,
digits = 6,
caption = "Tabel 4.5 Hasil Uji Normalitas"
)| Statistik_W | P_Value | Keterangan |
|---|---|---|
| 0.962797 | 0.233787 | Residual berdistribusi normal |
Uji autokorelasi dilakukan menggunakan Durbin-Watson Test untuk mengetahui ada atau tidaknya korelasi antara residual dalam model regresi.
##
## Durbin-Watson test
##
## data: regresi
## DW = 1.5823, p-value = 0.06489
## alternative hypothesis: true autocorrelation is greater than 0
tabel_dw <- data.frame(
Statistik_DW = unname(hasil_dw$statistic),
P_Value = hasil_dw$p.value,
Keterangan = ifelse(
hasil_dw$p.value > 0.05,
"Tidak terdapat indikasi autokorelasi",
"Terdapat indikasi autokorelasi"
)
)
kable(
tabel_dw,
digits = 6,
caption = "Tabel 4.6 Hasil Uji Autokorelasi"
)| Statistik_DW | P_Value | Keterangan |
|---|---|---|
| 1.582285 | 0.064885 | Tidak terdapat indikasi autokorelasi |
Pengujian signifikansi parameter dilakukan untuk mengetahui pengaruh variabel independen terhadap variabel dependen, baik secara simultan maupun parsial.
Hipotesis:
\[ H_0:\beta_1=\beta_2=\beta_3=0 \]
\[ H_1:\text{Minimal terdapat satu }\beta_j\neq 0 \]
Taraf signifikansi:
\[ \alpha=0.05 \]
Statistik uji:
\[ F=\frac{MSR}{MSE} \]
Kriteria penolakan:
Tolak \(H_0\) apabila nilai p-value kurang dari 0,05.
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 37462 37462 60.983 4.344e-09 ***
## X2 1 25473 25473 41.467 2.328e-07 ***
## X3 1 79856 79856 129.995 3.659e-13 ***
## Residuals 34 20886 614
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
p_value_f <- pf(
hasil_summary$fstatistic[1],
hasil_summary$fstatistic[2],
hasil_summary$fstatistic[3],
lower.tail = FALSE
)
tabel_f <- data.frame(
F_Hitung = unname(hasil_summary$fstatistic[1]),
P_Value = p_value_f,
Taraf_Signifikansi = 0.05,
Keputusan = ifelse(
p_value_f < 0.05,
"Tolak H0",
"Tidak menolak H0"
)
)
kable(
tabel_f,
digits = 6,
caption = "Hasil Pengujian Simultan (Uji F)"
)| F_Hitung | P_Value | Taraf_Signifikansi | Keputusan | |
|---|---|---|---|---|
| value | 77.48179 | 0 | 0.05 | Tolak H0 |
Uji parsial dilakukan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen.
Hipotesis untuk masing-masing variabel:
\[ H_0:\beta_j=0 \]
\[ H_1:\beta_j\neq 0 \]
Taraf signifikansi:
\[ \alpha=0.05 \]
Statistik uji:
\[ t=\frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \]
Kriteria penolakan:
Tolak \(H_0\) apabila nilai p-value kurang dari 0,05.
hasil_t <- as.data.frame(hasil_summary$coefficients)
tabel_t <- data.frame(
Variabel = rownames(hasil_t),
Koefisien = hasil_t$Estimate,
T_Hitung = hasil_t$`t value`,
P_Value = hasil_t$`Pr(>|t|)`,
Keputusan = ifelse(
hasil_t$`Pr(>|t|)` < 0.05,
"Tolak H0",
"Tidak menolak H0"
)
)
rownames(tabel_t) <- NULL
kable(
tabel_t,
digits = 6,
caption = "Hasil Pengujian Parsial (Uji t)"
)| Variabel | Koefisien | T_Hitung | P_Value | Keputusan |
|---|---|---|---|---|
| (Intercept) | 468.377593 | 7.598330 | 0.000000 | Tolak H0 |
| X1 | -13.284382 | -3.553649 | 0.001139 | Tolak H0 |
| X2 | -5.100534 | -5.268224 | 0.000008 | Tolak H0 |
| X3 | 0.000070 | 11.401552 | 0.000000 | Tolak H0 |
Pendeteksian outlier dilakukan untuk mengetahui pengamatan yang memiliki residual tidak biasa atau berpotensi memberikan pengaruh terhadap model regresi. Identifikasi dilakukan menggunakan Influence Plot dan pengujian statistik Bonferroni.
hasil_influence <- car::influencePlot(
regresi,
main = "Influence Plot",
sub = "Identifikasi Outlier pada Regresi Linear Berganda",
id.method = "noteworthy",
id.n = 5
)## StudRes Hat CookD
## 13 2.325888 0.06747085 0.08661810
## 29 0.382366 0.44634756 0.03022593
## 37 -2.151408 0.38429204 0.65257950
nilai_studres <- rstudent(regresi)
nilai_hat <- hatvalues(regresi)
nilai_cook <- cooks.distance(regresi)
tabel_influence <- data.frame(
Pengamatan = seq_len(nrow(DATA)),
Kabupaten = DATA$Kabupaten,
StudRes = nilai_studres,
Hat = nilai_hat,
CookD = nilai_cook
)
kable(
tabel_influence,
digits = 6,
caption = "Tabel 4.7 Hasil Identifikasi Influence Plot"
)| Pengamatan | Kabupaten | StudRes | Hat | CookD |
|---|---|---|---|---|
| 1 | Pacitan | -0.668865 | 0.063215 | 0.007672 |
| 2 | Ponorogo | -0.767030 | 0.029973 | 0.004600 |
| 3 | Trenggalek | -0.771350 | 0.042766 | 0.006726 |
| 4 | Tulungagung | -1.232765 | 0.027437 | 0.010557 |
| 5 | Blitar | -0.722022 | 0.029087 | 0.003960 |
| 6 | Kediri | 0.796497 | 0.043715 | 0.007329 |
| 7 | Malang | 1.258046 | 0.178383 | 0.084457 |
| 8 | Lumajang | -2.004205 | 0.076859 | 0.076795 |
| 9 | Jember | -0.102273 | 0.178868 | 0.000587 |
| 10 | Banyuwangi | -1.078687 | 0.053752 | 0.016445 |
| 11 | Bondowoso | -0.496810 | 0.090560 | 0.006284 |
| 12 | Situbondo | -1.058847 | 0.084937 | 0.025924 |
| 13 | Probolinggo | 2.325888 | 0.067471 | 0.086618 |
| 14 | Pasuruan | -0.637691 | 0.088421 | 0.010036 |
| 15 | Sidoarjo | -0.826762 | 0.203104 | 0.043962 |
| 16 | Mojokerto | 0.592572 | 0.034831 | 0.003230 |
| 17 | Jombang | -0.058272 | 0.032015 | 0.000029 |
| 18 | Nganjuk | 0.543263 | 0.028025 | 0.002172 |
| 19 | Madiun | -0.263855 | 0.037558 | 0.000698 |
| 20 | Magetan | -0.410979 | 0.040853 | 0.001844 |
| 21 | Ngawi | 0.785749 | 0.031859 | 0.005137 |
| 22 | Bojonegoro | 1.463326 | 0.100423 | 0.057820 |
| 23 | Tuban | 1.581281 | 0.044620 | 0.027961 |
| 24 | Lamongan | 2.060477 | 0.029544 | 0.029497 |
| 25 | Gresik | 2.114264 | 0.054954 | 0.058966 |
| 26 | Bangkalan | -0.572014 | 0.279334 | 0.032346 |
| 27 | Sampang | 0.010610 | 0.236204 | 0.000009 |
| 28 | Pamekasan | -0.237381 | 0.074383 | 0.001164 |
| 29 | Sumenep | 0.382366 | 0.446348 | 0.030226 |
| 30 | Kediri | 0.125812 | 0.102653 | 0.000466 |
| 31 | Blitar | 0.428147 | 0.117816 | 0.006271 |
| 32 | Malang | -0.124956 | 0.134637 | 0.000625 |
| 33 | Probolinggo | -0.665163 | 0.078757 | 0.009614 |
| 34 | Pasuruan | -0.489924 | 0.079295 | 0.005286 |
| 35 | Mojokerto | 0.137591 | 0.111665 | 0.000613 |
| 36 | Madiun | 0.657408 | 0.159433 | 0.020841 |
| 37 | Surabaya | -2.151408 | 0.384292 | 0.652579 |
| 38 | Batu | -0.056266 | 0.101953 | 0.000093 |
Uji Bonferroni dilakukan untuk mengetahui apakah terdapat pengamatan yang secara statistik teridentifikasi sebagai outlier setelah memperhitungkan pengujian berganda.
Hipotesis:
\[ H_0:\text{Pengamatan ke-}i\text{ bukan merupakan outlier} \]
\[ H_1:\text{Pengamatan ke-}i\text{ merupakan outlier} \]
Taraf signifikansi:
\[ \alpha=0.05 \]
Kriteria penolakan:
Tolak \(H_0\) apabila nilai Bonferroni p kurang dari 0,05.
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
## rstudent unadjusted p-value Bonferroni p
## 13 2.325888 0.026316 0.99999
residual_bonf <- rstudent(regresi)
p_value <- 2 * pt(
abs(residual_bonf),
df = df.residual(regresi) - 1,
lower.tail = FALSE
)
p_value_bonf <- p.adjust(
p_value,
method = "bonferroni"
)
tabel_bonferroni <- data.frame(
Pengamatan = seq_len(nrow(DATA)),
Kabupaten = DATA$Kabupaten,
RStudent_Unadjusted = residual_bonf,
P_Value = p_value,
Bonferroni_P = p_value_bonf,
Keputusan = ifelse(
p_value_bonf < 0.05,
"Terindikasi Outlier",
"Tidak Terindikasi Outlier"
)
)
kable(
tabel_bonferroni,
digits = 6,
caption = "Tabel 4.8 Hasil Pengujian Outlier Bonferroni"
)| Pengamatan | Kabupaten | RStudent_Unadjusted | P_Value | Bonferroni_P | Keputusan |
|---|---|---|---|---|---|
| 1 | Pacitan | -0.668865 | 0.508234 | 1.000000 | Tidak Terindikasi Outlier |
| 2 | Ponorogo | -0.767030 | 0.448517 | 1.000000 | Tidak Terindikasi Outlier |
| 3 | Trenggalek | -0.771350 | 0.445988 | 1.000000 | Tidak Terindikasi Outlier |
| 4 | Tulungagung | -1.232765 | 0.226374 | 1.000000 | Tidak Terindikasi Outlier |
| 5 | Blitar | -0.722022 | 0.475366 | 1.000000 | Tidak Terindikasi Outlier |
| 6 | Kediri | 0.796497 | 0.431436 | 1.000000 | Tidak Terindikasi Outlier |
| 7 | Malang | 1.258046 | 0.217204 | 1.000000 | Tidak Terindikasi Outlier |
| 8 | Lumajang | -2.004205 | 0.053312 | 1.000000 | Tidak Terindikasi Outlier |
| 9 | Jember | -0.102273 | 0.919159 | 1.000000 | Tidak Terindikasi Outlier |
| 10 | Banyuwangi | -1.078687 | 0.288549 | 1.000000 | Tidak Terindikasi Outlier |
| 11 | Bondowoso | -0.496810 | 0.622617 | 1.000000 | Tidak Terindikasi Outlier |
| 12 | Situbondo | -1.058847 | 0.297359 | 1.000000 | Tidak Terindikasi Outlier |
| 13 | Probolinggo | 2.325888 | 0.026316 | 0.999989 | Tidak Terindikasi Outlier |
| 14 | Pasuruan | -0.637691 | 0.528075 | 1.000000 | Tidak Terindikasi Outlier |
| 15 | Sidoarjo | -0.826762 | 0.414310 | 1.000000 | Tidak Terindikasi Outlier |
| 16 | Mojokerto | 0.592572 | 0.557506 | 1.000000 | Tidak Terindikasi Outlier |
| 17 | Jombang | -0.058272 | 0.953883 | 1.000000 | Tidak Terindikasi Outlier |
| 18 | Nganjuk | 0.543263 | 0.590600 | 1.000000 | Tidak Terindikasi Outlier |
| 19 | Madiun | -0.263855 | 0.793533 | 1.000000 | Tidak Terindikasi Outlier |
| 20 | Magetan | -0.410979 | 0.683745 | 1.000000 | Tidak Terindikasi Outlier |
| 21 | Ngawi | 0.785749 | 0.437620 | 1.000000 | Tidak Terindikasi Outlier |
| 22 | Bojonegoro | 1.463326 | 0.152839 | 1.000000 | Tidak Terindikasi Outlier |
| 23 | Tuban | 1.581281 | 0.123352 | 1.000000 | Tidak Terindikasi Outlier |
| 24 | Lamongan | 2.060477 | 0.047308 | 1.000000 | Tidak Terindikasi Outlier |
| 25 | Gresik | 2.114264 | 0.042134 | 1.000000 | Tidak Terindikasi Outlier |
| 26 | Bangkalan | -0.572014 | 0.571189 | 1.000000 | Tidak Terindikasi Outlier |
| 27 | Sampang | 0.010610 | 0.991598 | 1.000000 | Tidak Terindikasi Outlier |
| 28 | Pamekasan | -0.237381 | 0.813829 | 1.000000 | Tidak Terindikasi Outlier |
| 29 | Sumenep | 0.382366 | 0.704641 | 1.000000 | Tidak Terindikasi Outlier |
| 30 | Kediri | 0.125812 | 0.900644 | 1.000000 | Tidak Terindikasi Outlier |
| 31 | Blitar | 0.428147 | 0.671326 | 1.000000 | Tidak Terindikasi Outlier |
| 32 | Malang | -0.124956 | 0.901316 | 1.000000 | Tidak Terindikasi Outlier |
| 33 | Probolinggo | -0.665163 | 0.510569 | 1.000000 | Tidak Terindikasi Outlier |
| 34 | Pasuruan | -0.489924 | 0.627429 | 1.000000 | Tidak Terindikasi Outlier |
| 35 | Mojokerto | 0.137591 | 0.891400 | 1.000000 | Tidak Terindikasi Outlier |
| 36 | Madiun | 0.657408 | 0.515478 | 1.000000 | Tidak Terindikasi Outlier |
| 37 | Surabaya | -2.151408 | 0.038859 | 1.000000 | Tidak Terindikasi Outlier |
| 38 | Batu | -0.056266 | 0.955469 | 1.000000 | Tidak Terindikasi Outlier |
outlier_terdeteksi <- subset(
tabel_bonferroni,
Bonferroni_P < 0.05
)
if (nrow(outlier_terdeteksi) == 0) {
cat("Tidak terdapat pengamatan yang teridentifikasi sebagai outlier berdasarkan uji Bonferroni.")
} else {
kable(
outlier_terdeteksi,
digits = 6,
caption = "Pengamatan yang Terindikasi sebagai Outlier"
)
}## Tidak terdapat pengamatan yang teridentifikasi sebagai outlier berdasarkan uji Bonferroni.
Pengujian manual dilakukan dengan memperhatikan nilai studentized deleted residual dan p-value yang diperoleh dari masing-masing pengamatan.
tabel_manual <- data.frame(
Pengamatan = seq_len(nrow(DATA)),
Kabupaten = DATA$Kabupaten,
Studentized_Deleted_Residual = rstudent(regresi),
P_Value = p_value,
Bonferroni_P = p_value_bonf
)
kable(
tabel_manual,
digits = 6,
caption = "Hasil Pengujian Manual Outlier"
)| Pengamatan | Kabupaten | Studentized_Deleted_Residual | P_Value | Bonferroni_P |
|---|---|---|---|---|
| 1 | Pacitan | -0.668865 | 0.508234 | 1.000000 |
| 2 | Ponorogo | -0.767030 | 0.448517 | 1.000000 |
| 3 | Trenggalek | -0.771350 | 0.445988 | 1.000000 |
| 4 | Tulungagung | -1.232765 | 0.226374 | 1.000000 |
| 5 | Blitar | -0.722022 | 0.475366 | 1.000000 |
| 6 | Kediri | 0.796497 | 0.431436 | 1.000000 |
| 7 | Malang | 1.258046 | 0.217204 | 1.000000 |
| 8 | Lumajang | -2.004205 | 0.053312 | 1.000000 |
| 9 | Jember | -0.102273 | 0.919159 | 1.000000 |
| 10 | Banyuwangi | -1.078687 | 0.288549 | 1.000000 |
| 11 | Bondowoso | -0.496810 | 0.622617 | 1.000000 |
| 12 | Situbondo | -1.058847 | 0.297359 | 1.000000 |
| 13 | Probolinggo | 2.325888 | 0.026316 | 0.999989 |
| 14 | Pasuruan | -0.637691 | 0.528075 | 1.000000 |
| 15 | Sidoarjo | -0.826762 | 0.414310 | 1.000000 |
| 16 | Mojokerto | 0.592572 | 0.557506 | 1.000000 |
| 17 | Jombang | -0.058272 | 0.953883 | 1.000000 |
| 18 | Nganjuk | 0.543263 | 0.590600 | 1.000000 |
| 19 | Madiun | -0.263855 | 0.793533 | 1.000000 |
| 20 | Magetan | -0.410979 | 0.683745 | 1.000000 |
| 21 | Ngawi | 0.785749 | 0.437620 | 1.000000 |
| 22 | Bojonegoro | 1.463326 | 0.152839 | 1.000000 |
| 23 | Tuban | 1.581281 | 0.123352 | 1.000000 |
| 24 | Lamongan | 2.060477 | 0.047308 | 1.000000 |
| 25 | Gresik | 2.114264 | 0.042134 | 1.000000 |
| 26 | Bangkalan | -0.572014 | 0.571189 | 1.000000 |
| 27 | Sampang | 0.010610 | 0.991598 | 1.000000 |
| 28 | Pamekasan | -0.237381 | 0.813829 | 1.000000 |
| 29 | Sumenep | 0.382366 | 0.704641 | 1.000000 |
| 30 | Kediri | 0.125812 | 0.900644 | 1.000000 |
| 31 | Blitar | 0.428147 | 0.671326 | 1.000000 |
| 32 | Malang | -0.124956 | 0.901316 | 1.000000 |
| 33 | Probolinggo | -0.665163 | 0.510569 | 1.000000 |
| 34 | Pasuruan | -0.489924 | 0.627429 | 1.000000 |
| 35 | Mojokerto | 0.137591 | 0.891400 | 1.000000 |
| 36 | Madiun | 0.657408 | 0.515478 | 1.000000 |
| 37 | Surabaya | -2.151408 | 0.038859 | 1.000000 |
| 38 | Batu | -0.056266 | 0.955469 | 1.000000 |
ringkasan_outlier <- data.frame(
Keterangan = c(
"Jumlah pengamatan",
"Jumlah pengamatan terindikasi berdasarkan Bonferroni",
"Jumlah pengamatan dengan leverage di atas 2p/n",
"Jumlah pengamatan dengan Cook's Distance di atas 4/n"
),
Jumlah = c(
nrow(DATA),
sum(p_value_bonf < 0.05),
sum(nilai_hat > 2 * length(coef(regresi)) / nrow(DATA)),
sum(nilai_cook > 4 / nrow(DATA))
)
)
kable(
ringkasan_outlier,
caption = "Ringkasan Hasil Pendeteksian Outlier"
)| Keterangan | Jumlah |
|---|---|
| Jumlah pengamatan | 38 |
| Jumlah pengamatan terindikasi berdasarkan Bonferroni | 0 |
| Jumlah pengamatan dengan leverage di atas 2p/n | 4 |
| Jumlah pengamatan dengan Cook’s Distance di atas 4/n | 1 |
R Markdown merupakan fitur dalam program R yang dapat digunakan untuk menggabungkan kode program, teks, tabel, dan visualisasi ke dalam satu dokumen. Melalui praktikum ini, tahapan analisis regresi linear berganda dilakukan mulai dari input data, statistik deskriptif, pembentukan model, pengujian asumsi klasik, hingga pengujian signifikansi parameter. Selain itu, pendeteksian outlier dilakukan menggunakan Influence Plot dan uji Bonferroni untuk mengetahui pengamatan yang berpotensi menyimpang atau memengaruhi model regresi.
Ketika menjalankan fungsi pada program R, praktikan diharapkan teliti dalam menuliskan syntax agar tidak terjadi kesalahan saat proses analisis. Selain itu, pemeriksaan data dan hasil output perlu dilakukan dengan cermat sehingga hasil analisis yang diperoleh dapat diinterpretasikan secara tepat.
Ariyanto, D., Sofro, A., Maulana, D. A., Oktaviarina, A., & Romadhonia, R. W. (2022). Analisis statistika untuk penelitian dasar dengan menggunakan R Studio. Edupartner Publishing.
Ningrum, C. S., & Rahardjo, S. (2023). Kajian penaksiran parameter regresi robust untuk data outlier (pencilan) dengan estimasi-MM. Jurnal MIPA dan Pembelajarannya, 2(10).
Prabowo, M. Y., Firdaus, A., Damanik, D. A., & Nurtanto, T. D. (2022). Automasi pembuatan laporan analisis dengan R Markdown. Kybernan: Jurnal Studi Kepemerintahan, 5(1), 49–61.
Rini, D. S. (2026). Modul Praktikum Analisis Regresi dan Korelasi. Laboratorium Matematika, FMIPA, Universitas Bengkulu.
Sabrina, F. A., Nandita, W. V., & Maharani, D. D. (2023). Uji asumsi klasik untuk menghindari pelanggaran asumsi klasik pada Regresi Linier Ordinary Least Squares (OLS) dalam ekonometrika. Jurnal Ilmiah Manajemen Ekonomi dan Akuntansi, 1(1), 195–203.
Sholihah, S. M., Aditiya, N. Y., Evani, E. S., & Maghfiroh, S. (2023). Konsep uji asumsi klasik pada regresi linier berganda. Jurnal Riset Akuntansi Soedirman, 2(2), 102–110.