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.
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:
dist (Jarak
yang ditempuh mobil hingga berhenti total, dalam satuan feet /
kaki).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
)| 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 |
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:
dist)speed)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} \]
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).
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
)| 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 |
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).
##
## 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} \]
Uji linearitas bertujuan untuk memastikan apakah hubungan fungsional
antara variabel prediktor (speed) dan variabel respon
(dist) benar-benar bersifat linear.
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).
Uji linearitas dilakukan menggunakan Ramsey RESET Test untuk menguji apakah bentuk fungsi linear yang diestimasi sudah tepat atau memerlukan suku non-linear:
# 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.
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.
# 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)##
## 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.
##
## 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.
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.
## 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
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.