Regresi Linear

Anisa Nurizki1

Regresi Linear

Regresi linear adalah metode statistik untuk memodelkan hubungan antara satu variabel independen \((X)\) dengan satu variabel dependen \((Y)\). Tujuan:

  1. Menjelaskan hubungan antara variabel.
  2. 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:

  1. Lakukan pengujian terhadap seluruh asumsi regresi (linearitas, homoskedastisitas, normalitas error, serta multikolinearitas) pada kedua model.
  2. Bandingkan hasil uji asumsi antara Model 1 dan Model 2.
  3. Tuliskan kesimpulan yang dapat diperoleh dari dari perbandingan model sederhana vs berganda.

  1. Universitas Riau. Email: ↩︎