1. Pendahuluan

Keamanan berkendara sangat dipengaruhi oleh kecepatan kendaraan dan kemampuan pengereman untuk menghentikan laju kendaraan secara aman. Semakin tinggi kecepatan suatu mobil, maka energi kinetik yang dihasilkan akan semakin besar, sehingga jarak yang diperlukan untuk berhenti (stopping distance) diperkirakan akan semakin jauh.

Untuk memodelkan hubungan matematis dan statistik antara kecepatan mobil dengan jarak berhentinya, digunakan pendekatan Analisis Regresi Linear Sederhana. Melalui analisis ini, dapat diestimasi besarnya pengaruh penambahan kecepatan terhadap jarak pengereman serta menguji kelayakan model melalui serangkaian uji asumsi klasik.

2. Data

Data yang digunakan dalam penelitian ini adalah dataset bawaan (built-in dataset) pada R, yaitu dataset cars. Dataset ini mencatat 50 pengamatan mobil pada tahun 1920-an dengan 2 variabel utama:

  • Variabel Respon / Dependen (\(Y\)): dist (Jarak yang ditempuh mobil hingga berhenti total, dalam satuan feet / kaki).
  • Variabel Prediktor / Independen (\(X\)): speed (Kecepatan mobil saat sebelum melakukan pengereman, dalam satuan mph / mil per jam).

Berikut adalah preview 10 data pertama dari dataset cars:

# Menampilkan 10 data teratas dalam bentuk tabel rapi
knitr::kable(
  head(cars, 10),
  caption = "Tabel 1: Cuplikan Data Pengamatan Cars (10 Baris Pertama)",
  col.names = c("Kecepatan (speed dalam mph)", "Jarak Berhenti (dist dalam ft)"),
  align = c("c", "c"),
  digits = 2
)
Tabel 1: Cuplikan Data Pengamatan Cars (10 Baris Pertama)
Kecepatan (speed dalam mph) Jarak Berhenti (dist dalam ft)
4 2
4 10
7 4
7 22
8 16
9 10
10 18
10 26
10 34
11 17

3. Tinjauan Pustaka

3.1 Regresi Linear Sederhana

Regresi linear sederhana merupakan metode statistika yang digunakan untuk memodelkan hubungan fungsional antara satu variabel bebas (\(X\)) dan satu variabel terikat (\(Y\)).

Bentuk umum model regresi linear dalam notasi skalar dirumuskan sebagai:

\[ y_i = \beta_0 + \beta_1 x_i + \varepsilon_i, \quad i = 1, 2, \dots, n \]

Dalam bentuk matriks, persamaan di atas dapat dinyatakan sebagai:

\[ \mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

atau secara eksplisit:

\[ \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix} + \begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_n \end{bmatrix} \]

dengan:

  • \(\mathbf{Y}\) = Vektor variabel respon berukuran \(n \times 1\) (dist)
  • \(\mathbf{X}\) = Matriks variabel prediktor (termasuk kolom konstanta) berukuran \(n \times 2\) (speed)
  • \(\boldsymbol{\beta}\) = Vektor parameter koefisien regresi berukuran \(2 \times 1\)
  • \(\boldsymbol{\varepsilon}\) = Vektor galat acak (error/residual) berukuran \(n \times 1\)

Penduga parameter koefisien regresi dengan metode Ordinary Least Squares (OLS) dalam bentuk matriks diperoleh melalui:

\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y} \]

3.2 Uji Asumsi Klasik

Agar penduga parameter dengan metode Ordinary Least Squares (OLS) bersifat Best Linear Unbiased Estimator (BLUE), beberapa asumsi klasik perlu diuji: 1. Linearitas: Hubungan antara prediktor dan respon berbentuk garis lurus. 2. Normalitas Residual: Sisaan/residual dari model berdistribusi normal (\(\varepsilon \sim N(0, \sigma^2)\)). 3. Homoskedastisitas: Varians dari residual bersifat konstan di setiap tingkatan nilai prediksi (\(Var(\varepsilon_i) = \sigma^2\)). 4. Non-Autokorelasi: Tidak terjadi korelasi antar residual pada observasi yang berurutan (\(Cov(\varepsilon_i, \varepsilon_j) = 0, \forall i \neq j\)).

(Catatan: Uji Multikolinearitas tidak diperlukan karena model ini hanya memiliki satu variabel prediktor).

4. Analisis dan Pembahasan

4.1 Eksplorasi Data

Ringkasan statistik deskriptif dari variabel speed dan dist disajikan pada tabel berikut:

# Menyusun ringkasan statistik manual agar terstruktur rapi
stat_deskriptif <- data.frame(
  Variabel = c("Kecepatan (speed)", "Jarak Berhenti (dist)"),
  N        = c(length(cars$speed), length(cars$dist)),
  Mean     = c(mean(cars$speed), mean(cars$dist)),
  Median   = c(median(cars$speed), median(cars$dist)),
  SD       = c(sd(cars$speed), sd(cars$dist)),
  Min      = c(min(cars$speed), min(cars$dist)),
  Max      = c(max(cars$speed), max(cars$dist))
)

# Menampilkan tabel statistik deskriptif menggunakan kable
knitr::kable(
  stat_deskriptif,
  caption = "Tabel 2: Ringkasan Statistik Deskriptif Variabel Cars",
  col.names = c("Variabel", "Jumlah Data (N)", "Rata-rata (Mean)", "Median", "Standar Deviasi", "Minimum", "Maksimum"),
  align = c("l", "c", "c", "c", "c", "c", "c"),
  digits = 2
)
Tabel 2: Ringkasan Statistik Deskriptif Variabel Cars
Variabel Jumlah Data (N) Rata-rata (Mean) Median Standar Deviasi Minimum Maksimum
Kecepatan (speed) 50 15.40 15 5.29 4 25
Jarak Berhenti (dist) 50 42.98 36 25.77 2 120

4.2 Visualisasi Hubungan Variabel

plot(cars$speed, cars$dist,
     main = "Scatterplot Kecepatan vs Jarak Berhenti",
     xlab = "Kecepatan (speed dalam mph)",
     ylab = "Jarak Berhenti (dist dalam ft)",
     pch = 19, col = "steelblue")
abline(lm(dist ~ speed, data = cars), col = "red", lwd = 2)

Berdasarkan scatterplot di atas, sebaran titik-titik pengamatan menunjukkan pola linear yang bergerak naik ke kanan atas. Hal ini mengindikasikan adanya hubungan linear positif yang cukup kuat antara kecepatan mobil (speed) dengan jarak berhenti (dist).

4.3 Pembentukan Model Regresi OLS

# Estimasi model OLS
model <- lm(dist ~ speed, data = cars)
summary(model)
## 
## Call:
## lm(formula = dist ~ speed, data = cars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.069  -9.525  -2.272   9.215  43.201 
## 
## Coefficients:
##             Estimate Std. Error t value         Pr(>|t|)    
## (Intercept) -17.5791     6.7584  -2.601           0.0123 *  
## speed         3.9324     0.4155   9.464 0.00000000000149 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.38 on 48 degrees of freedom
## Multiple R-squared:  0.6511, Adjusted R-squared:  0.6438 
## F-statistic: 89.57 on 1 and 48 DF,  p-value: 0.00000000000149

Model regresi yang diperoleh adalah: \[ \widehat{\text{dist}} = -17.5791 + 3.9324\,\text{speed} \]

4.4 Pengujian Asumsi Klasik

4.4.1 Uji Linearitas

Uji linearitas bertujuan untuk memastikan apakah hubungan fungsional antara variabel prediktor (speed) dan variabel respon (dist) benar-benar bersifat linear.

a. Uji Visual (Scatterplot)

plot(cars$speed, cars$dist,
     main = "Uji Visual Linearitas: Kecepatan vs Jarak Berhenti",
     xlab = "Kecepatan (speed)",
     ylab = "Jarak Berhenti (dist)",
     pch = 19, col = "steelblue")
abline(lm(dist ~ speed, data = cars), col = "red", lwd = 2)

Secara visual, sebaran data pengamatan mengikuti arah garis lurus regresi (menaik secara linier).

b. Uji Formal (RESET Test)

Uji linearitas dilakukan menggunakan Ramsey RESET Test untuk menguji apakah bentuk fungsi linear yang diestimasi sudah tepat atau memerlukan suku non-linear:

  • \(H_0\): Bentuk fungsional model bersifat linear (spesifikasi model benar)
  • \(H_1\): Bentuk fungsional model tidak linear (terdapat kesalahan spesifikasi)
# Menjalankan Ramsey RESET Test dengan orde pangkat 2 dan 3 dari nilai fitted
reset_result <- resettest(model, power = 2:3, type = "fitted")
reset_result
## 
##  RESET test
## 
## data:  model
## RESET = 1.5554, df1 = 2, df2 = 46, p-value = 0.222

Interpretasi Uji Linearitas:
Berdasarkan hasil pengujian Ramsey RESET Test, diperoleh nilai statistik \(F\) sebesar 1.5554 dengan p-value sebesar 0.222. Karena nilai p-value \(> 0{,}05\), maka keputusan yang diambil adalah gagal menolak \(H_0\). Hal ini menunjukkan bahwa spesifikasi model linear sudah tepat dan asumsi linearitas terpenuhi.

4.4.2 Uji Normalitas Residual

  • \(H_0\): Residual berdistribusi normal
  • \(H_1\): Residual tidak berdistribusi normal
error <- residuals(model)

par(mfrow = c(1, 2))
hist(error, col = "lightblue", main = "Histogram Residual", xlab = "Residual")
qqnorm(error, col = "steelblue", main = "Normal Q-Q Plot")
qqline(error, col = "red", lwd = 2)

par(mfrow = c(1, 1))

# Uji Formal Kolmogorov-Smirnov
ks_test <- ks.test(error, "pnorm", mean(error), sd(error))
ks_test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  error
## D = 0.12957, p-value = 0.3708
## alternative hypothesis: two-sided

Interpretasi Normalitas:
Secara visual, titik-titik pada Q-Q Plot sebagian besar mengikuti garis diagonal merah. Secara formal, Uji Kolmogorov-Smirnov menghasilkan nilai p-value sebesar 0.3708. Karena nilai p-value \(> 0{,}05\), maka kita gagal menolak \(H_0\), yang berarti asumsi normalitas residual terpenuhi.

4.4.3 Uji Homoskedastisitas

  • \(H_0\): Varians residual bersifat homogen / konstan (Homoskedastisitas)
  • \(H_1\): Varians residual tidak konstan (Heteroskedastisitas)
# Plot Residual vs Fitted
plot(fitted(model), residuals(model),
     pch = 19, col = "darkblue",
     main = "Residuals vs Fitted Values",
     xlab = "Fitted Values (Y-hat)",
     ylab = "Residuals")
abline(h = 0, col = "red", lty = 2, lwd = 2)

# Uji Breusch-Pagan
bp_test <- bptest(model)
bp_test
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 3.2149, df = 1, p-value = 0.07297

Interpretasi Homoskedastisitas:
Uji Breusch-Pagan menghasilkan nilai p-value sebesar 0.073. Karena nilai p-value \(> 0{,}05\), maka kita gagal menolak \(H_0\), sehingga dapat disimpulkan bahwa asumsi homoskedastisitas terpenuhi.

4.4.4 Uji Non-Autokorelasi

  • \(H_0\): Tidak terdapat autokorelasi pada residual
  • \(H_1\): Terdapat autokorelasi pada residual
dw_test <- dwtest(model)
dw_test
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.6762, p-value = 0.09522
## alternative hypothesis: true autocorrelation is greater than 0

Interpretasi Autokorelasi:
Berdasarkan uji Durbin-Watson, diperoleh nilai statistik DW sebesar 1.6762 dengan p-value sebesar 0.0952. Karena nilai p-value \(> 0{,}05\), maka kita gagal menolak \(H_0\), artinya asumsi non-autokorelasi terpenuhi.

4.5 Uji Signifikansi Model

4.5.1 Uji F (Simultan)

f_stat <- summary(model)$fstatistic
p_val_f <- pf(f_stat[1], f_stat[2], f_stat[3], lower.tail = FALSE)

Nilai \(F_{\text{hitung}} = 89.5671\) dengan nilai \(p\text{-value} = < 0.0001\) (\(< 0{,}05\)). Hal ini membuktikan bahwa variabel speed secara signifikan memengaruhi variabel dist.

4.5.2 Uji t (Parsial)

coef_table <- summary(model)$coefficients
coef_table
##               Estimate Std. Error   t value             Pr(>|t|)
## (Intercept) -17.579095  6.7584402 -2.601058 0.012318816153809031
## speed         3.932409  0.4155128  9.463990 0.000000000001489836
  • Variabel speed: Memiliki nilai \(t_{\text{hitung}} = 9.464\) dengan \(p\text{-value} = < 0.0001\) (\(< 0{,}05\)), sehingga speed berpengaruh positif dan signifikan secara parsial terhadap dist.

4.6 Kebaikan Model (\(R^2\) & MSE)

r2 <- summary(model)$r.squared
mse <- mean(residuals(model)^2)
  • Koefisien Determinasi (\(R^2\)): Nilai \(R^2 = 0.6511\) (65.11%). Artinya, sebesar 65.11% variasi dari jarak pengereman mobil dapat dijelaskan oleh kecepatan mobil, sedangkan sisanya sebesar 34.89% dipengaruhi oleh faktor lain di luar model.
  • Mean Squared Error (MSE): Nilai \(\text{MSE} = 227.0704\).

5. Kesimpulan

  1. Persamaan regresi linear yang terbentuk adalah: \[ \widehat{\text{dist}} = -17.5791 + 3.9324\,\text{speed} \]
  2. Setiap kenaikan kecepatan mobil sebesar 1 mph akan menambah rata-rata jarak berhenti pengereman sebesar 3.9324 feet.
  3. Seluruh asumsi klasik (linearitas, normalitas residual, homoskedastisitas, dan non-autokorelasi) telah terpenuhi, sehingga model ini layak digunakan untuk analisis prediksi.