Regresi linier berganda digunakan untuk memodelkan hubungan antara satu variabel dependen dengan beberapa variabel independen. Secara umum model regresi linier dapat dituliskan sebagai berikut
\[ Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \dots + \beta_k X_{ki} + \varepsilon_i \]
dengan:
\(Y_i\) : variabel dependen pada observasi ke-\(i\)
\(X_{ki}\) : variabel independen ke-\(k\) pada observasi ke-\(i\)
\(\beta_0\) : intercept
\(\beta_k\) : koefisien regresi
\(\varepsilon_i\) : error atau residual
Dalam bentuk matriks model regresi dapat dituliskan sebagai
\[ \mathbf{Y} = \mathbf{X}\beta + \varepsilon \]
Estimator parameter pada model regresi linier biasanya diperoleh menggunakan metode Ordinary Least Squares (OLS) yaitu
\[ \hat{\beta} = (X^TX)^{-1}X^TY \]
Metode ini memilih parameter yang meminimumkan jumlah kuadrat residual.
Agar estimator OLS memiliki sifat BLUE (Best Linear Unbiased Estimator) menurut Teorema Gauss-Markov, beberapa asumsi harus dipenuhi:
Hubungan antara variabel bersifat linear
Nilai harapan error sama dengan nol
\[ E(\varepsilon_i) = 0 \]
\[ Var(\varepsilon_i) = \sigma^2 \]
\[ Cov(\varepsilon_i,\varepsilon_j)=0 \]
Error berdistribusi normal
Tidak terdapat multikolinearitas antar variabel independen
Normalitas residual merupakan salah satu asumsi penting dalam regresi linier klasik, terutama untuk validitas uji hipotesis seperti uji \(t\) dan uji \(F\). Jika residual berdistribusi normal maka estimasi parameter dan inferensi statistik menjadi lebih reliabel.
Salah satu metode yang digunakan adalah Uji Kolmogorov-Smirnov (KS). Uji ini membandingkan distribusi empiris sampel dengan distribusi teoritis normal.
Statistik uji Kolmogorov-Smirnov didefinisikan sebagai
\[ D = \sup_x |F_n(x) - F(x)| \]
dengan:
\(F_n(x)\) : fungsi distribusi kumulatif empiris
\(F(x)\) : fungsi distribusi kumulatif teoritis (normal)
Selain pengujian statistik, pemeriksaan normalitas juga dapat dilakukan menggunakan Q-Q Plot, yaitu grafik yang membandingkan kuantil data dengan kuantil distribusi normal.
Multikolinearitas terjadi ketika dua atau lebih variabel independen memiliki korelasi yang tinggi. Kondisi ini dapat menyebabkan koefisien regresi menjadi tidak stabil serta meningkatkan varians estimator.
Salah satu ukuran yang umum digunakan untuk mendeteksi multikolinearitas adalah Variance Inflation Factor (VIF).
\[ VIF_j = \frac{1}{1 - R_j^2} \]
dengan:
Interpretasi nilai VIF:
\(VIF < 5\) → tidak terdapat multikolinearitas serius
\(5 \le VIF < 10\) → multikolinearitas sedang
\(VIF \ge 10\) → multikolinearitas tinggi
Heteroskedastisitas terjadi ketika varians error tidak konstan pada seluruh observasi. Dalam model regresi klasik diasumsikan bahwa
\[ Var(\varepsilon_i) = \sigma^2 \]
Jika asumsi ini dilanggar maka estimator OLS tetap tidak bias tetapi menjadi tidak efisien.
Salah satu metode yang digunakan adalah Breusch-Pagan Test dengan model
\[ \varepsilon_i^2 = \alpha_0 + \alpha_1 X_{1i} + \alpha_2 X_{2i} + \dots + \alpha_k X_{ki} + u_i \]
Statistik uji yang digunakan adalah
\[ BP = nR^2 \]
yang mengikuti distribusi \(\chi^2\) dengan derajat kebebasan \(k\).
Autokorelasi terjadi ketika residual suatu observasi berkorelasi dengan residual observasi lainnya. Masalah ini sering muncul pada data runtun waktu.
Model autokorelasi orde satu dapat dituliskan sebagai
\[ \varepsilon_t = \rho \varepsilon_{t-1} + u_t \]
dengan \(\rho\) adalah koefisien autokorelasi.
Pengujian autokorelasi biasanya menggunakan Durbin-Watson Test dengan statistik
\[ DW = \frac{\sum_{t=2}^{n}(e_t - e_{t-1})^2}{\sum_{t=1}^{n} e_t^2} \]
Interpretasi nilai Durbin-Watson:
\(DW \approx 2\) → tidak terdapat autokorelasi
\(DW < 2\) → autokorelasi positif
\(DW > 2\) → autokorelasi negatif
Uji linearitas digunakan untuk mengetahui apakah bentuk fungsi model regresi sudah tepat atau terdapat kesalahan spesifikasi model.
Ramsey RESET Test dilakukan dengan menambahkan pangkat dari nilai prediksi model ke dalam model regresi.
\[ Y = \beta_0 + \beta_1 X_1 + \dots + \beta_k X_k + \gamma_1 \hat{Y}^2 + \gamma_2 \hat{Y}^3 + \varepsilon \]
Hipotesis yang diuji adalah
\[ H_0 : \gamma_1 = \gamma_2 = \dots = 0 \]
Jika hipotesis nol ditolak maka model dianggap tidak terspesifikasi dengan baik.
Uji F digunakan untuk mengetahui apakah seluruh variabel independen secara simultan mempengaruhi variabel dependen.
Statistik uji F dirumuskan sebagai
\[ F = \frac{SSR/k}{SSE/(n-k-1)} \]
dengan:
\(SSR\) : regression sum of squares
\(SSE\) : error sum of squares
\(k\) : jumlah variabel independen
\(n\) : jumlah observasi
Jika nilai \(p\)-value kecil maka model regresi secara keseluruhan signifikan.
Uji \(t\) digunakan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen secara parsial.
Statistik uji yang digunakan adalah
\[ t = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \]
dengan:
\(\hat{\beta}_j\) : estimasi koefisien regresi
\(SE(\hat{\beta}_j)\) : standar error koefisien
Jika nilai \(p\)-value < 0.05 maka koefisien regresi dianggap signifikan.
Library yang digunakan
library(knitr)
library(rmarkdown)
library(MASS)
library(car)
library(lmtest)
data(Boston)
summary(Boston)
## crim zn indus chas
## Min. : 0.00632 Min. : 0.00 Min. : 0.46 Min. :0.00000
## 1st Qu.: 0.08205 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.00000
## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.00000
## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.06917
## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.00000
## Max. :88.97620 Max. :100.00 Max. :27.74 Max. :1.00000
## nox rm age dis
## Min. :0.3850 Min. :3.561 Min. : 2.90 Min. : 1.130
## 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100
## Median :0.5380 Median :6.208 Median : 77.50 Median : 3.207
## Mean :0.5547 Mean :6.285 Mean : 68.57 Mean : 3.795
## 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188
## Max. :0.8710 Max. :8.780 Max. :100.00 Max. :12.127
## rad tax ptratio black
## Min. : 1.000 Min. :187.0 Min. :12.60 Min. : 0.32
## 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.:375.38
## Median : 5.000 Median :330.0 Median :19.05 Median :391.44
## Mean : 9.549 Mean :408.2 Mean :18.46 Mean :356.67
## 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:396.23
## Max. :24.000 Max. :711.0 Max. :22.00 Max. :396.90
## lstat medv
## Min. : 1.73 Min. : 5.00
## 1st Qu.: 6.95 1st Qu.:17.02
## Median :11.36 Median :21.20
## Mean :12.65 Mean :22.53
## 3rd Qu.:16.95 3rd Qu.:25.00
## Max. :37.97 Max. :50.00
Rata-rata harga rumah adalah 22.5328 USD
Bentuk Umum persamaan regresi linier: \[ y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \epsilon \] dengan
model = lm(medv ~ rm + lstat + crim, data = Boston)
summary(model)
##
## Call:
## lm(formula = medv ~ rm + lstat + crim, data = Boston)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.925 -3.567 -1.157 1.906 29.024
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.56225 3.16602 -0.809 0.41873
## rm 5.21695 0.44203 11.802 < 2e-16 ***
## lstat -0.57849 0.04767 -12.135 < 2e-16 ***
## crim -0.10294 0.03202 -3.215 0.00139 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.49 on 502 degrees of freedom
## Multiple R-squared: 0.6459, Adjusted R-squared: 0.6437
## F-statistic: 305.2 on 3 and 502 DF, p-value: < 2.2e-16
Model Akhir = \[ \hat{medv} = -2.5623 + 5.217\,rm + -0.5785\,lstat + -0.1029\,crim \]
Menggunakan Kolmogorov-Smirnov dan Q-Q Plot
error <- residuals(model)
ks_res <- ks.test(error, "pnorm", mean(error), sd(error))
qqnorm(error)
qqline(error, col="red")
Hipotesis:
\(H_0\) : Residual berdistribusi normal
\(H_1\) : Residual tidak berdistribusi normal
Nilai p-value: \[ p\text{-value} = 3.14e-07 \]
Karena \(p\)-value < 0.05, maka \(H_0\) ditolak.
Kesimpulan: Residual tidak berdistribusi normal. Pada grafik Q-Q Plot terlihat titik-titik menyimpang dari garis diagonal terutama pada kuantil ekstrem. Hal ini mengindikasikan adanya skewness dan heavy tail, sehingga asumsi normalitas tidak terpenuhi.
library(car)
vif_res <- vif(model)
\[ \begin{aligned} VIF_{rm} &= 1.616 \\ VIF_{lstat} &= 1.942 \\ VIF_{crim} &= 1.271 \end{aligned} \]
Kriteria:
Seluruh VIF < 5.
Kesimpulan:
Tidak terdapat multikolinearitas. Variabel independen tidak saling berkorelasi tinggi, sehingga estimasi koefisien stabil.
library(lmtest)
bp_res <- bptest(model)
Hipotesis: \[ \begin{aligned} H_0 &: \operatorname{Var}(\varepsilon) = \sigma^2 \\ H_1 &: \operatorname{Var}(\varepsilon) \neq \sigma^2 \end{aligned} \]
Statistik uji: \[ \begin{aligned} BP &= 7.4741 \\ df &= 3 \\ p\text{-value} &= 0.05823 \end{aligned} \]
\[ \text{Karena } p\text{-value} < 0.05,\ \text{maka } H_0 \text{ gagal ditolak.} \]
Kesimpulan:
Tidak terdapat bukti heteroskedastisitas pada taraf 5%.
Namun karena p-value mendekati 0.05, terdapat indikasi lemah kemungkinan heteroskedastisitas ringan. Pemeriksaan grafik residual tetap disarankan.
library(lmtest)
dw_res <- dwtest(model)
Nilai statistik Durbin–Watson yang diperoleh adalah:
\[ DW = 0.822 \]
dengan:
\[ p\text{-value} < 0.05 \]
Hipotesis
\(H_0\): Tidak terdapat autokorelasi
\(H_1\): Terdapat autokorelasi
Kriteria Pengambilan Keputusan
Jika \(p\text{-value} < 0.05\), maka \(H_0\) ditolak
Jika \(p\text{-value} \ge 0.05\), maka \(H_0\) tidak ditolak
Keputusan
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
p-value sangat kecil. Secara statistik terdapat autokorelasi positif. Terdapat indikasi korelasi antar residual berdasarkan urutan data, namun karena data bersifat cross-sectional, hasil ini tidak serta-merta menunjukkan pelanggaran asumsi independensi seperti pada data time series.
reset_res <- resettest(model)
Hasil pengujian menunjukkan:
\[ \text{RESET} = 133.3 \]
\[ df_1 = 2, \quad df_2 = 500 \]
\[ p\text{-value} = 3.991238 \times 10^{-47} \]
Hipotesis
\(H_0\): Model sudah terspesifikasi dengan benar
\(H_1\): Model tidak terspesifikasi dengan benar
Kriteria Pengambilan Keputusan
Jika \(p\text{-value} < 0.05\), maka \(H_0\) ditolak
Jika \(p\text{-value} \ge 0.05\), maka \(H_0\) tidak ditolak
Keputusan
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
Kesimpulan: Model tidak linear atau terdapat spesifikasi yang salah. Terdapat kemungkinan hubungan sebenarnya bersifat non-linear atau ada variabel penting yang belum dimasukkan atau perlu transformasi.
pairs(~medv + rm + lstat + crim, data=Boston)
Berdasarkan scatterplot matrix yang ditampilkan, terlihat pola hubungan antar variabel medv (median house value), rm (jumlah kamar), lstat (persentase penduduk berstatus ekonomi rendah), dan crim (tingkat kriminalitas).
plot(Boston$rm, Boston$medv,
main="Scatterplot RM vs MEDV",
xlab="Jumlah Kamar",
ylab="Harga Rumah",
pch=19, col="steelblue")
abline(lm(medv ~ rm, data=Boston), col="red")
Terlihat hubungan positif yang cukup kuat antara variabel rm dan medv. Semakin besar jumlah kamar rata-rata dalam sebuah rumah, maka harga median rumah cenderung semakin tinggi.
Titik-titik data membentuk pola yang relatif linear naik, sehingga variabel rm berpotensi menjadi prediktor yang baik dalam model regresi untuk menjelaskan variasi harga rumah.
Variabel lstat menunjukkan hubungan negatif yang kuat dengan medv. Ketika persentase penduduk berstatus sosial ekonomi rendah meningkat, nilai median harga rumah cenderung menurun.
Pola hubungan yang terlihat cukup jelas menurun, namun terdapat sedikit bentuk melengkung, yang mengindikasikan kemungkinan adanya hubungan non-linear antara kedua variabel.
Hubungan antara crim dan medv cenderung negatif, meskipun tidak sekuat hubungan pada variabel lainnya. Daerah dengan tingkat kriminalitas yang tinggi umumnya memiliki harga rumah yang lebih rendah.
Namun, sebaran titik cukup menyebar dan terdapat beberapa outlier pada nilai kriminalitas yang tinggi, sehingga pengaruh variabel ini terhadap harga rumah mungkin tidak sekuat variabel lainnya.
Hubungan antara rm dan lstat terlihat negatif, yang menunjukkan bahwa daerah dengan persentase penduduk berstatus ekonomi rendah yang tinggi cenderung memiliki jumlah kamar rumah yang lebih sedikit.
Sementara itu, hubungan antara crim dengan variabel lain menunjukkan pola yang lebih menyebar dengan beberapa nilai ekstrem, yang mengindikasikan adanya skewness pada variabel crim.
Secara umum, scatterplot matrix menunjukkan bahwa:
Visualisasi ini menunjukkan bahwa variabel rm, lstat, dan crim relevan untuk digunakan sebagai prediktor dalam model regresi untuk menjelaskan variasi harga rumah.
summary(model)
##
## Call:
## lm(formula = medv ~ rm + lstat + crim, data = Boston)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.925 -3.567 -1.157 1.906 29.024
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.56225 3.16602 -0.809 0.41873
## rm 5.21695 0.44203 11.802 < 2e-16 ***
## lstat -0.57849 0.04767 -12.135 < 2e-16 ***
## crim -0.10294 0.03202 -3.215 0.00139 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.49 on 502 degrees of freedom
## Multiple R-squared: 0.6459, Adjusted R-squared: 0.6437
## F-statistic: 305.2 on 3 and 502 DF, p-value: < 2.2e-16
Uji F digunakan untuk mengetahui apakah seluruh variabel independen secara simultan berpengaruh terhadap variabel dependen.
# Ambil statistik F dari model
f_stat <- summary(model)$fstatistic
F_hitung <- f_stat[1]
df1 <- f_stat[2]
df2 <- f_stat[3]
p_value_F <- pf(F_hitung, df1, df2, lower.tail = FALSE)
Hasil estimasi menunjukkan:
\[ F_{hitung} = 305.1622 \]
dengan derajat kebebasan:
\[ df_1 = 3, \quad df_2 = 502 \]
serta:
\[ p\text{-value} = 1.008894e-112 \]
Hipotesis
Keputusan
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
Kesimpulan
Secara simultan, seluruh variabel independen berpengaruh signifikan terhadap variabel dependen. Model regresi yang digunakan layak untuk menjelaskan hubungan antar variabel.
Uji t digunakan untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen secara parsial.
coef_table <- coef(summary(model))
Berikut adalah hasil uji t masing-masing variabel:
t_rm <- coef_table["rm","t value"]
p_rm <- coef_table["rm","Pr(>|t|)"]
\[ t_{hitung} = 11.8021 \]
\[ p\text{-value} = 1.533796e-28 \]
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
t_lstat <- coef_table["lstat","t value"]
p_lstat <- coef_table["lstat","Pr(>|t|)"]
\[ t_{hitung} = -12.1354 \]
\[ p\text{-value} = 6.746173e-30 \]
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
t_crim <- coef_table["crim","t value"]
p_crim <- coef_table["crim","Pr(>|t|)"]
\[ t_{hitung} = -3.2147 \]
\[ p\text{-value} = 1.390003e-03 \]
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
Secara simultan maupun parsial, seluruh variabel independen dalam model terbukti berpengaruh signifikan terhadap variabel dependen. Variabel meningkatkan nilai variabel dependen, sedangkan variabel dan menurunkannya. Model regresi yang diestimasi memiliki kemampuan yang baik dalam menjelaskan variasi variabel dependen.