BAB I PENDAHULUAN

1.1 Latar Belakang

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.

1.2 Rumusan Masalah

  1. Bagaimana tahapan pengumpulan dan penentuan 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?
  2. Bagaimana penerapan tahapan analisis regresi linear berganda tersebut dengan menggunakan program R melalui fitur R Markdown?

1.3 Tujuan

  1. Mahasiswa mampu memahami tahapan pengumpulan data sekunder, eksplorasi data, analisis statistik deskriptif, estimasi model regresi, pengujian asumsi klasik, pengujian hipotesis, serta pendeteksian outlier.
  2. Mahasiswa mampu menerapkan proses analisis regresi linear berganda menggunakan program R melalui fitur R Markdown.

1.4 Manfaat

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.

1.5 Batasan Masalah

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.

1.6 Sistematika Penulisan

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.

BAB II TINJAUAN PUSTAKA

2.1 R Markdown

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.

2.2 Analisis Regresi Linear Berganda

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:

  • \(Y_i\) = variabel dependen.
  • \(X_i\) = variabel independen.
  • \(\beta_0\) = konstanta.
  • \(\beta_1,\beta_2,\ldots,\beta_k\) = koefisien regresi.
  • \(\varepsilon_i\) = galat atau error.

2.3 Uji Asumsi Klasik Regresi Linear Berganda

Uji asumsi klasik merupakan pengujian yang dilakukan untuk mengetahui apakah model regresi telah memenuhi asumsi yang diperlukan. Pengujian yang digunakan dalam praktikum ini meliputi:

  1. Uji normalitas, untuk mengetahui apakah residual model regresi berdistribusi normal.
  2. Uji multikolinearitas, untuk mengetahui apakah terdapat hubungan linear yang kuat antarvariabel independen.
  3. Uji heteroskedastisitas, untuk mengetahui apakah variansi residual bersifat konstan atau tidak.
  4. Uji autokorelasi, untuk mengetahui apakah terdapat hubungan antara residual suatu pengamatan dengan residual pengamatan lainnya.

2.4 Pengujian Signifikansi Parameter

Pengujian signifikansi parameter dilakukan untuk mengetahui pengaruh variabel independen terhadap variabel dependen.

2.4.1 Uji Simultan (Uji F)

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 \]

2.4.2 Uji Parsial (Uji t)

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 \]

2.5 Identifikasi dan Pengujian Outlier

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.

2.5.1 Influence Plot

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.

2.5.2 Uji Bonferroni

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.

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

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.

3.2 Variabel Penelitian

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).

3.3 Analisis Data

Tahapan analisis data yang dilakukan dalam praktikum ini adalah sebagai berikut:

  1. Mengumpulkan dan memasukkan data sekunder.
  2. Melakukan eksplorasi dan statistik deskriptif data.
  3. Membentuk model regresi linear berganda.
  4. Melakukan pengujian asumsi klasik.
  5. Melakukan pengujian signifikansi parameter melalui uji F dan uji t.
  6. Mengidentifikasi outlier menggunakan Influence Plot.
  7. Melakukan pengujian outlier menggunakan uji Bonferroni.
  8. Menyusun laporan menggunakan R Markdown.

3.4 Diagram Alir Penelitian

BAB IV HASIL DAN PEMBAHASAN

4.1 Input Data

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"
# Melihat daftar file dalam folder kerja
list.files()
##  [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
str(DATA)
## '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 ...
dim(DATA)
## [1] 38  5
colSums(is.na(DATA))
## Kabupaten         Y        X1        X2        X3 
##         0         0         0         0         0
summary(DATA)
##   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
# Memastikan jumlah pengamatan dan kelengkapan data
stopifnot(nrow(DATA) == 38, !anyNA(DATA))

4.2 Statistik Deskriptif Data

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"
)
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

4.3 Model Regresi Linear Berganda

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.

regresi <- lm(Y ~ X1 + X2 + X3, data = DATA)

summary(regresi)
## 
## 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

Tabel 4.2 Hasil Summary Model Regresi Linear Berganda

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"
)
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

Persamaan Model Regresi

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

Ringkasan Model

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"
)
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

4.4 Hasil Uji Asumsi Klasik Regresi Linear Berganda

Pengujian asumsi klasik dilakukan untuk mengetahui apakah model regresi telah memenuhi asumsi yang diperlukan.

4.4.1 Uji Multikolinearitas

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"
)
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

4.4.2 Uji Heteroskedastisitas

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} \]

hasil_bp <- lmtest::bptest(regresi, studentize = TRUE)

hasil_bp
## 
##  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"
)
Tabel 4.4 Hasil Uji Heteroskedastisitas
Statistik Derajat_Bebas P_Value Keterangan
BP 4.885588 3 0.180369 Tidak terjadi heteroskedastisitas

4.4.3 Uji Normalitas

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} \]

hasil_normalitas <- shapiro.test(residuals(regresi))

hasil_normalitas
## 
##  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"
)
Tabel 4.5 Hasil Uji Normalitas
Statistik_W P_Value Keterangan
0.962797 0.233787 Residual berdistribusi normal

4.4.4 Uji Autokorelasi

Uji autokorelasi dilakukan menggunakan Durbin-Watson Test untuk mengetahui ada atau tidaknya korelasi antara residual dalam model regresi.

hasil_dw <- lmtest::dwtest(regresi)

hasil_dw
## 
##  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"
)
Tabel 4.6 Hasil Uji Autokorelasi
Statistik_DW P_Value Keterangan
1.582285 0.064885 Tidak terdapat indikasi autokorelasi

4.5 Hasil Pengujian Signifikansi Parameter

Pengujian signifikansi parameter dilakukan untuk mengetahui pengaruh variabel independen terhadap variabel dependen, baik secara simultan maupun parsial.

4.5.1 Uji Simultan (Uji F)

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.

hasil_f <- anova(regresi)

hasil_f
## 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)"
)
Hasil Pengujian Simultan (Uji F)
F_Hitung P_Value Taraf_Signifikansi Keputusan
value 77.48179 0 0.05 Tolak H0

4.5.2 Uji Parsial (Uji t)

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)"
)
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

4.6 Hasil Identifikasi dan Pengujian Outlier

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.

4.6.1 Influence Plot

hasil_influence <- car::influencePlot(
  regresi,
  main = "Influence Plot",
  sub = "Identifikasi Outlier pada Regresi Linear Berganda",
  id.method = "noteworthy",
  id.n = 5
)

hasil_influence
##      StudRes        Hat      CookD
## 13  2.325888 0.06747085 0.08661810
## 29  0.382366 0.44634756 0.03022593
## 37 -2.151408 0.38429204 0.65257950

Tabel 4.7 Hasil Influence Plot

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"
)
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

4.6.2 Uji Outlier Bonferroni

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.

hasil_bonferroni <- car::outlierTest(regresi)

hasil_bonferroni
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##    rstudent unadjusted p-value Bonferroni p
## 13 2.325888           0.026316      0.99999

Tabel 4.8 Hasil Outlier Test

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"
)
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

4.6.3 Identifikasi Pengamatan yang 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.

4.6.4 Pengujian Manual Outlier

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"
)
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

4.6.5 Ringkasan Hasil Pendeteksian Outlier

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"
)
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

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

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.

5.2 Saran

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.

DAFTAR PUSTAKA

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.