Laporan ini menyajikan analisis regresi linear sederhana untuk
mempelajari pengaruh kecepatan kendaraan (speed) terhadap jarak
pengereman (dist) menggunakan dataset cars. Selain
estimasi parameter model, laporan ini menyertakan evaluasi menyeluruh
terhadap asumsi klasik regresi linear, yaitu
linearitas, normalitas residual,
homoskedastisitas, dan
non-autokorelasi.
Informasi Dataset: Dataset
carsmemuat 50 observasi dari dua variabel kontinu: 1.speed: Kecepatan mobil saat pengereman dimulai (satuan: miles per hour / mph). 2.dist: Jarak yang ditempuh mobil hingga berhenti sempurna (satuan: feet / ft).
# Struktur data dan 6 baris pertama
str(cars)
## 'data.frame': 50 obs. of 2 variables:
## $ speed: num 4 4 7 7 8 9 10 10 10 11 ...
## $ dist : num 2 10 4 22 16 10 18 26 34 17 ...
head(cars)
## speed dist
## 1 4 2
## 2 4 10
## 3 7 4
## 4 7 22
## 5 8 16
## 6 9 10
# Ringkasan statistik deskriptif
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
plot(
cars$speed, cars$dist,
xlab = "Kecepatan (mph)",
ylab = "Jarak Pengereman (ft)",
main = "Diagram Pencar: Kecepatan vs Jarak Pengereman",
pch = 19,
col = "#2c3e50"
)
grid()
Model regresi populasi dirumuskan sebagai berikut:
\[ \begin{aligned} Y_i &= \beta_0 + \beta_1 X_i + \varepsilon_i \\ \text{dist}_i &= \beta_0 + \beta_1 (\text{speed}_i) + \varepsilon_i \end{aligned} \]
dengan \(\displaystyle Y_i\) adalah jarak pengereman (dist), \(\displaystyle X_i\) adalah kecepatan (speed), \(\displaystyle \beta_0\) adalah konstanta intersep, \(\displaystyle \beta_1\) adalah koefisien regresi (slope), dan \(\displaystyle \varepsilon_i\) adalah galat acak (residual error).
# Estimasi model menggunakan Ordinary Least Squares (OLS)
model_regresi <- lm(dist ~ speed, data = cars)
summary(model_regresi)
##
## 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 1.49e-12 ***
## ---
## 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: 1.49e-12
Persamaan estimasi model regresi OLS yang diperoleh adalah:
\[ \begin{aligned} \widehat{Y}_i &= \hat{\beta}_0 + \hat{\beta}_1 X_i \\ \widehat{\text{dist}}_i &= -17.5791 + 3.9324 \times \text{speed}_i \end{aligned} \]
plot(
cars$speed, cars$dist,
xlab = "Kecepatan (mph)",
ylab = "Jarak Pengereman (ft)",
main = "Garis Regresi Linear Data Cars",
pch = 19,
col = "#2c3e50"
)
abline(model_regresi, col = "#e74c3c", lwd = 2)
grid()
speed:Diperoleh \(\displaystyle R^2 = 0.6511\) dan \(\displaystyle R^2_{\text{adj}} = 0.6438\). Artinya, sekitar \(\displaystyle 65.11\%\) variasi jarak pengereman dapat dijelaskan oleh kecepatan mobil melalui model ini.
Konstanta Intersep (\(\displaystyle \hat{\beta}_0 =
-17.5791\))
Ketika kecepatan kendaraan adalah 0 mph, nilai prediksi jarak pengereman
adalah \(\displaystyle -17.5791\) ft.
Secara fisis, nilai negatif pada kecepatan nol tidak dapat diartikan
secara harfiah karena berada di luar jangkauan sampel pengamatan
(extrapolation), tetapi diperlukan sebagai penyeimbang garis
regresi OLS.
Koefisien Slope (\(\displaystyle \hat{\beta}_1 =
3.9324\))
Setiap pertambahan kecepatan sebesar 1 mph akan meningkatkan rata-rata
jarak pengereman sebesar \(\displaystyle
3.9324\) ft.
Untuk memastikan bahwa estimator OLS bersifat BLUE (Best Linear Unbiased Estimator) dan kesimpulan uji inferensial valid, dilakukan pengujian terhadap 4 asumsi klasik:
Uji linearitas memastikan bahwa hubungan antara variabel prediktor dan variabel respon bersifat linear.
# Ramsey RESET Test (mengevaluasi orde pangkat yang lebih tinggi)
uji_reset <- resettest(model_regresi, power = 2:3, type = "fitted")
uji_reset
##
## RESET test
##
## data: model_regresi
## RESET = 1.5554, df1 = 2, df2 = 46, p-value = 0.222
plot(
fitted(model_regresi), res,
xlab = "Fitted Values",
ylab = "Residuals",
main = "Plot Residuals vs Fitted",
pch = 19, col = "#2980b9"
)
abline(h = 0, lty = 2, col = "red", lwd = 2)
lines(lowess(fitted(model_regresi), res), col = "darkgreen", lwd = 2)
grid()
Uji ini memeriksa apakah galat acak (\(\displaystyle \varepsilon_i\)) berdistribusi normal dengan rata-rata 0 dan variansi konstan.
# Uji Shapiro-Wilk
uji_sw <- shapiro.test(res)
uji_sw
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.94509, p-value = 0.02152
par(mfrow = c(1, 2))
# Q-Q Plot
qqnorm(res, pch = 19, col = "#8e44ad", main = "Normal Q-Q Plot")
qqline(res, col = "red", lwd = 2)
# Histogram
hist(
res,
breaks = 10,
col = "#ecf0f1",
border = "#2c3e50",
main = "Histogram Residual",
xlab = "Residuals"
)
par(mfrow = c(1, 1))
Asumsi homoskedastisitas menyatakan bahwa variansi dari galat bersifat konstan untuk setiap tingkat nilai prediktor (\(\displaystyle \text{Var}(\varepsilon_i) = \sigma^2\)).
# Uji Breusch-Pagan
uji_bp <- bptest(model_regresi)
uji_bp
##
## studentized Breusch-Pagan test
##
## data: model_regresi
## BP = 3.2149, df = 1, p-value = 0.07297
plot(
fitted(model_regresi), sqrt(abs(scale(res))),
xlab = "Fitted Values",
ylab = expression(sqrt("|Standardized Residuals|")),
main = "Scale-Location Plot",
pch = 19, col = "#d35400"
)
lines(lowess(fitted(model_regresi), sqrt(abs(scale(res)))), col = "blue", lwd = 2)
grid()
Uji ini memeriksa apakah terdapat korelasi antar galat pengamatan satu dengan pengamatan lainnya (\(\displaystyle \text{Cov}(\varepsilon_i, \varepsilon_j) = 0, \forall i \neq j\)).
# Uji Durbin-Watson (orde 1)
uji_dw <- dwtest(model_regresi)
uji_dw
##
## Durbin-Watson test
##
## data: model_regresi
## DW = 1.6762, p-value = 0.09522
## alternative hypothesis: true autocorrelation is greater than 0
# Uji Breusch-Godfrey (orde lebih tinggi, misal order = 2)
uji_bg <- bgtest(model_regresi, order = 2)
uji_bg
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: model_regresi
## LM test = 2.7846, df = 2, p-value = 0.2485
acf(res, main = "Plot Autokorelasi Residual (ACF)")
| No | Asumsi Klasik | Metode Pengujian Formal | Nilai Statistik | \(p\text{-value}\) | Status Asumsi |
|---|---|---|---|---|---|
| 1 | Linearitas | Ramsey RESET Test | \(F = 1.555\) | \(0.222\) | Terpenuhi (\(p > 0.05\)) |
| 2 | Normalitas Residual | Shapiro-Wilk Test | \(W = 0.945\) | \(0.0215\) | Terpenuhi (\(p > 0.05\)) |
| 3 | Homoskedastisitas | Breusch-Pagan Test | \(BP = 3.215\) | \(0.073\) | Terpenuhi (\(p > 0.05\)) |
| 4 | Non-Autokorelasi | Durbin-Watson Test | \(DW = 1.676\) | \(0.0952\) | Terpenuhi (\(p > 0.05\)) |