Regresi Linear
Regresi linear adalah metode statistik untuk memodelkan hubungan antara satu variabel independen \((X)\) dengan satu variabel dependen \((Y)\). Tujuan:
- Menjelaskan hubungan antara variabel.
- Memprediksi nilai Y berdasarkan X.
Bentuk Umum: \[\begin{equation} Y=\beta_{0}+\beta_{1}X+\varepsilon \end{equation}\]
dengan:
- \(\beta_0\) : intercept (nilai \(Y\) saat \(X=0\)).
- \(\beta_1\) : slope/kemiringan (berapa besar perubahan \(Y\) jika \(X\) naik 1 unit).
- \(\varepsilon\) : error (faktor lain yang tidak terjelaskan oleh model).
Contoh Kasus:
- Hubungan Jam Belajar \((X)\) dengan Nilai Ujian \((Y)\).
- Hipotesis: semakin banyak jam belajar, semakin tinggi nilai ujian.
Dataset I
| No | Jam Belajar | Nilai |
|---|---|---|
| 1 | 2 | 55 |
| 2 | 3 | 60 |
| 3 | 5 | 65 |
| 4 | 7 | 72 |
| 5 | 9 | 85 |
| 6 | 4 | 63 |
| 7 | 8 | 80 |
| 8 | 6 | 75 |
| 9 | 1 | 45 |
| 10 | 2 | 53 |
Langkah Create Data
# Membaca data dari CSV
jam_bel <- c(2,3,5,7,9,4,8,6,1,2)
nilai <- c(55,60,65,80,85,63,80,75,45,53)
dataku <- data.frame(jam_bel,nilai)
# Melihat isi data
dataku
## jam_bel nilai
## 1 2 55
## 2 3 60
## 3 5 65
## 4 7 80
## 5 9 85
## 6 4 63
## 7 8 80
## 8 6 75
## 9 1 45
## 10 2 53
summary(dataku)
## jam_bel nilai
## Min. :1.00 Min. :45.00
## 1st Qu.:2.25 1st Qu.:56.25
## Median :4.50 Median :64.00
## Mean :4.70 Mean :66.10
## 3rd Qu.:6.75 3rd Qu.:78.75
## Max. :9.00 Max. :85.00
Analisis Regresi Linear Sederhana
Membuat Model
# Model regresi linear
model <- lm(nilai ~ jam_bel, data = dataku)
# Ringkasan hasil model
summary(model)
##
## Call:
## lm(formula = nilai ~ jam_bel, data = dataku)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3715 -1.8598 0.0455 1.9934 2.8796
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.5800 1.5863 27.47 3.32e-09 ***
## jam_bel 4.7915 0.2951 16.24 2.08e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.435 on 8 degrees of freedom
## Multiple R-squared: 0.9706, Adjusted R-squared: 0.9669
## F-statistic: 263.7 on 1 and 8 DF, p-value: 2.081e-07
Hasil regresi menunjukkan model:
\[\begin{equation} nilai = 43.58 + 4.79jam_bel \end{equation}\]
Artinya, tanpa belajar nilai awal diperkirakan 43.58, dan setiap tambahan 1 jam belajar meningkatkan nilai sekitar 4.79 poin. Koefisien regresi signifikan \((p < 0.001)\), sehingga jam belajar berpengaruh nyata terhadap nilai. Nilai \(R^2=0.9669\) menunjukkan model mampu menjelaskan \(96.69%\) variasi nilai, dengan error yang relatif kecil.Kesimpulannya, jam belajar berhubungan sangat kuat dan positif dengan nilai mahasiswa.
Visualisasi Regresi
Scatterplot dengan Garis Regresi:
plot(dataku$jam_bel, dataku$nilai,
main = "Hubungan Jam Belajar dan Nilai",
xlab = "Jam Belajar", ylab = "Nilai Ujian", pch = 19)
abline(model, col = "blue", lwd = 2)
Scatterplot di atas menunjukkan adanya hubungan positif yang kuat antara
jam belajar dengan nilai ujian. Garis regresi yang menanjak menegaskan
bahwa semakin lama mahasiswa belajar, semakin tinggi pula nilai ujian
yang dicapai. Model regresi ini cukup baik merepresentasikan data,
karena titik-titik observasi tersebar dekat dengan garis regresi.
Pemeriksaan Asumsi
Normalitas Error
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.91809, p-value = 0.3413
hist(residuals(model), main = "Histogram Residuals")
qqnorm(residuals(model)); qqline(residuals(model))
Berdasarkan uji statistik (Shapiro-Wilk) dan grafik (histogram & Q-Q
plot), residual dari model regresi ini dapat dianggap berdistribusi
normal. Dengan demikian, asumsi normalitas terpenuhi.
Homoskedastisitas
library(lmtest)
model <- lm(nilai ~ jam_bel, data = dataku)
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 0.01625, df = 1, p-value = 0.8986
plot(model$fitted.values, residuals(model),
xlab = "Fitted Values", ylab = "Residuals",
main = "Uji Homoskedastisitas")
abline(h = 0, col = "red")
Dari plot Residual vs Fitted Values, dapat dilihat:
- Titik-titik residual menyebar acak di atas dan di bawah garis nol (merah).
- Tidak tampak pola tertentu (misalnya membentuk kipas/lebar ke kanan, menyempit, atau melengkung).
- Variansi residual terlihat relatif konstan sepanjang fitted values.
Dengan demikian, asumsi homoskedastisitas terpenuhi.
Prediksi
# Prediksi nilai untuk Jam Belajar = 5 jam
newdata <- data.frame(jam_bel = 7)
predict(model, newdata, interval = "confidence")
## fit lwr upr
## 1 77.12041 74.75339 79.48743
Regresi Linear Berganda
Regresi linear digunakan untuk menganalisis hubungan antara variabel dependen \((Y)\) dan satu atau lebih variabel independen \((X)\).
Bentuk Umum: \[\begin{equation} Y=\beta_{0}+\beta_{1}X_1+\beta_{2}X_2+\cdots+\beta_{k}X_k+\varepsilon \end{equation}\]
dengan:
- \(\beta_0\) : intercept (nilai \(Y\) saat \(X=0\)).
- \(\beta_1,\beta_2,\cdots,\beta_k\) : koefisien regresi (menunjukkan pengaruh X terhadap Y)
- \(\varepsilon\) : error (faktor lain yang tidak terjelaskan oleh model).
Contoh Kasus:
Pada data mtcars akan dilihat, apakah:
- mpg (Miles per Gallon) → efisiensi bahan bakar (variabel dependen \(Y\)).
- hp (Horsepower) → tenaga mesin (variabel independen \(X_1\)).
- wt (Weight) → berat mobil (variabel independen \(X_2\)).
Hipotesis:
- Semakin besar horsepower, semakin boros bahan bakar (mpg turun).
- Semakin berat mobil, semakin boros bahan bakar (mpg turun).
Dataset II
Define Data dan Eksplorasi Data
# Load data
data(mtcars)
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
# Korelasi awal
cat("korelasi mpg dan hp: ", cor(mtcars$mpg, mtcars$hp))
## korelasi mpg dan hp: -0.7761684
cat("korelasi mpg dan wt: ", cor(mtcars$mpg, mtcars$wt))
## korelasi mpg dan wt: -0.8676594
Analisis Regresi Linear
a. Membuat Model Regresi Linear Sederhana (mpg~hp)
model1 <- lm(mpg ~ hp, data = mtcars)
summary(model1)
##
## Call:
## lm(formula = mpg ~ hp, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.7121 -2.1122 -0.8854 1.5819 8.2360
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 30.09886 1.63392 18.421 < 2e-16 ***
## hp -0.06823 0.01012 -6.742 1.79e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.863 on 30 degrees of freedom
## Multiple R-squared: 0.6024, Adjusted R-squared: 0.5892
## F-statistic: 45.46 on 1 and 30 DF, p-value: 1.788e-07
Hasil regresi menunjukkan model:
\[\begin{equation} mpg = 30.09 - 0.068hp \end{equation}\]
Artinya, pada model regresi linear sederhana (mpg ~ hp), horsepower (hp) berpengaruh negatif terhadap efisiensi bahan bakar (mpg). Setiap penambahan 1 unit hp akan menurunkan rata-rata mpg sebesar \(0.068\). Nilai \(R^2\) sebesar \(0.60\) menunjukkan bahwa sekitar \(60%\) variasi mpg dapat dijelaskan hanya oleh hp. Dengan demikian, masih ada faktor lain yang belum dimasukkan dalam model yang memengaruhi konsumsi bahan bakar.
b. Membuat Model Regresi Linear Berganda (mpg~hp+wt)
model2 <- lm(mpg ~ hp + wt, data = mtcars)
summary(model2)
##
## Call:
## lm(formula = mpg ~ hp + wt, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.941 -1.600 -0.182 1.050 5.854
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.22727 1.59879 23.285 < 2e-16 ***
## hp -0.03177 0.00903 -3.519 0.00145 **
## wt -3.87783 0.63273 -6.129 1.12e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared: 0.8268, Adjusted R-squared: 0.8148
## F-statistic: 69.21 on 2 and 29 DF, p-value: 9.109e-12
Selanjutnya, hasil regresi linear berganda diatas menunjukkan model:
\[\begin{equation} mpg = 37.22 - 0.031hp - 3.87wt \end{equation}\]
Ketika ditambahkan variabel berat mobil (model regresi berganda: mpg ~ hp + wt), model mengalami peningkatan yang cukup besar. Nilai \(R^2\) naik menjadi \(0.83\), yang berarti \(83%\) variasi mpg kini dapat dijelaskan oleh kombinasi hp dan wt. Selain itu, standard error residual turun dari \(3.86\) menjadi \(2.59\), menandakan prediksi model lebih tepat.
Dalam model berganda ini, baik hp maupun wt sama-sama signifikan memengaruhi mpg. Namun, koefisien hp mengecil (dari \(-0.068\) menjadi \(-0.032\)). Hal ini menunjukkan bahwa sebagian pengaruh hp terhadap mpg sebelumnya “tercampur” dengan efek berat mobil. Setelah mengontrol wt, pengaruh murni hp terhadap mpg lebih kecil. Sementara itu, wt memberikan dampak yang cukup besar: setiap kenaikan 1 ton berat mobil menurunkan mpg sekitar \(3.88\).
Secara keseluruhan, penambahan variabel wt terbukti memperbaiki model, meningkatkan kemampuan prediksi, dan memberikan pemahaman yang lebih akurat mengenai faktor-faktor yang memengaruhi efisiensi bahan bakar mobil.
Pemeriksaan Asumsi
Tugas 04:
- Lakukan pengujian terhadap seluruh asumsi regresi (linearitas, homoskedastisitas, normalitas error, serta multikolinearitas) pada kedua model.
- Bandingkan hasil uji asumsi antara Model 1 dan Model 2.
- Tuliskan kesimpulan yang dapat diperoleh dari dari perbandingan model sederhana vs berganda.
Universitas Riau. Email: anisa.nurizki@lecturer.unri.ac.id↩︎