Analisis Regresi Linear
DEFINE DAN EKSPLORASI DATA
Define data merupakan langkah awal untuk memasukkan data ke dalam R agar dapat diolah, sedangkan eksplorasi data merupakan tahap awal analisis untuk memahami data secara keseluruhan. Langkah ini meliputi dari beberapa kegiatan seperti isi data, melihat ringkasan statistik (seperti nilai min, max, rata-rata, median), dan membuat visualisasi sederhana. Melalui eksplorasi data, peneliti bisa mengenali ciri-ciri, pola dasar, serta kemungkinan masalah dari data yang di analisis lanjutan.
#Load data
data(mtcars) #memanggil dataset bawaan untuk mtcars
head (mtcars) #melihat data untuk 6 baris pertama## 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
## 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
Korelasi Awal merupakan langkah awal untuk mengtahui apakah dua variabel saling berhubungan. Nilai korelasi menunjukkan kuat dan lemahnya hubungan serta arahnya, apakah searah positif atau berlawanan arah negatif. Langkah ini penting untuk memberi petunjuk awal sebelum dilakukan analisis lanjutan seperti regresi.
cat("korelasi mpg dan hp: ", cor(mtcars$mpg, mtcars$hp)) # Menghitung koefisien korelasi Pearson antara mpg dan hp## korelasi mpg dan hp: -0.7761684
cat("korelasi mpg dan wt: ", cor(mtcars$mpg, mtcars$wt)) # Menghitung koefisien korelasi Pearson antara mpg dan wt## korelasi mpg dan wt: -0.8676594
Analisis Regresi Linear
Regresi linear adalah metode analisis statistik yang digunakan untuk melihat keterkaitan antara variabel terikat dengan variabel bebas. Pendekatan ini tidak hanya berfungsi untuk memahami pola hubungan yang ada, tetapi juga memungkinkan peneliti melakukan prediksi terhadap nilai variabel terikat berdasarkan variabel bebas yang memengaruhinya. Oleh karena itu, regresi linear menjadi alat yang penting dalam penelitian dan pengambilan keputusan.
Membuat Model Regresi Linear Sederhana (mpg~hp)
Regresi linear sederhana bertujuan untuk memodelkan hubungan antara satu variabel dependen dan satu variabel independen. Pada bagian ini, kita akan memodelkan mpg (Miles per Gallon) sebagai variabel dependen dan hp (Horsepower) sebagai variabel independen.
# Membuat model regresi linear sederhana: mpg sebagai dependen, hp sebagai independen
model1 <- lm (mpg ~ hp, data = mtcars)
# Menampilkan ringkasan hasil model
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: mpg = 30.10 - 0.068 hp
Artinya, jika tenaga mesin (hp) = 0, efesiensi bahan bakar (mpg) diperkirakan sebesar 30.10. Setiap tambahan 1 unit (hp) menurunkan (mpg) sekitar 0.068. Koefiseien regresi signifikannya (p<0.0001), sehingga tenaga mesin berpengaruh nyata terhadap efesiensi bahan bakar (mpg). Nilai R² = 0.6024 menunjukkan model menjelaskan bahwa terdapat 60.24% variasi mpg dengan eror yang relatif kecil. Kesimpulannya, bahwa hubungan antara tenaga mesin (hp) dan efesiensi bahan bakar (mpg) cukup kuat dan negatif.
Visualisasi Regresi Linear Sederhana
Visualisasi dilakukan untuk melihat pola hubungan antara variabel dependen dan variabel independen.
Scatterplot dengan Garis Regresi
Scatter plot digunakan untuk menampilkan sebaran data, sedangkan garis regresi linear menunjukkan arah tren hubungan antara variabel dependen dan independen.
plot(mtcars$hp, mtcars$mpg, #Membuat scatter plot mpg terhadap hp
main = "Hubungan mpg terhadap hp", #Judul plot
xlab = "Horsepower (hp)", #Label sumbu X
ylab = "Miles Per Gallon (mpg)", #Label sumbu Y
pch = 19, col = "lightblue") #Bentuk dan warna
# Menambakhan garis regresi linear
abline(lm(mpg ~ hp, data = mtcars), col ="grey",lwd=2)Scatter plot di atas menunjukkan adanya hubungan negatif antara horsepower (hp) dan miles per gallon (mpg). Garis regresi yang menurun menegaskan bahwa semakin besar tenaga kuda mobil, maka semakin rendah efesiensi bahan bakarnya. Model regresi ini cukup baik untuk mempresentasikan data yang ada, karena sebagian besar titik observasi berada dekat dengan garis regresi.
Membuat Model Regresi Linear Berganda (mpg ~ hp + wt)
Regresi linear berganda digunakan ketika variabel independen dipengaruhi oleh lebi dari satu variabel independen. Disini, kita memodelkan mpg berdasarkan hp dan wt. Tujuan utamanya adalah mengetahui sejauh mana tenaga mesin dan berat mobil secara bersama-sama mempengaruhi efesiensi bahan bakar, serta signifikansi masing-masing prediktor dalam model.
model2 <- lm (mpg ~ hp + wt, data = mtcars) #Membuat model regresi linear berganda: mpg diprediksi oleh hp dan wt
summary (model2) #Menampilkan ringkasan model:koefisien, p-value, residual error##
## 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
Hasil regresi berganda menunjukkan model: mpg= 37.23 - 0.031 hp - 3.87 wt
Artinya, jika hp = 0, dan wt = 0, maka efesiensi bahan bakar (mpg) diperkirakan sebesar 37.23. Setiap tambahan 1 unit hp menurunkan mpg sekitar 0.031. Sedangkan setiap tambahan 1 unit wt (454 kg) menurunkan mpg sekitar 3.87. KOefisien regresi untuk hp dan wt signifikan (p < 0.001), sehingga keduanya berpengaruh nyata terhadap efesiensi bahan bakar. Nilai R² = 0.8268 menunjukkan model menjelaskan 82.68% variasi mpg dengan eror yang relatif kecil. Kesimpulannya, efesiensi bahan bakar dipengaruhi negatif oleh tenaga mesin dan berat mobil, dan pengaruh berat mobil lebih dominan.
Uji Asumsi Regresi (Linearitas, Homoskedastisitas, Normalitas Error serta Multikolinearitas)
Uji Linearitas
Uji Linearitas merupakan salah satu asumsi penting dalam regresi, yaitu hubungan anatar variabel dependen dan independen harus linear. Plot residual terhadap nilai prediksi digunakan untuk memeriksa linearitas. Jika residual tersebar acak di sekitar garis horizontal nol, asumsi linearitas terpenuhi.
Uji Lineritas Model 1 (Sederhana)
#Mengecek linearitas pada Model 1 dengan plot residual terhadap nilai prediksi
plot(model1$fitted.values, residuals(model1),
main = "Uji Linearitas Model 1 (mpg ~ hp)", #Judul Plot
xlab = "Nilai Prediksi (Fitted Values)", #Label sumbu x
ylab = "Residuals", pch=19, col="lightblue") #Label sumbu y
abline(h=0, col="lightpink") #Garis horizontal sebagai acuan nolPlot antara residuals vs nilai prediksi menunjukkan bahwa titik residual tidak sepenuhnya menyebar secara acak, melainkan ada kecendrungan pola tertentu pada beberapa bagian. Hal ini menandakan bahwa asumsi linearitas belum sepenuhnya terpenuhi. Dengan kata lain, hubungan antara horsepower dan mpg cenderung tidak benar-benar linear.
Uji Lineritas Model 2 (Berganda)
#Mengecek linearitas pada Model 2 dengan plot residual terhadap nilai prediksi
plot(model2$fitted.values, residuals(model2),
main = "Uji Linearitas Model 2 (mpg ~ hp + wt)", #Judul plot
xlab = "Nilai Prediksi (Fitted Values)", #Label sumbu x
ylab = "Residuals", pch=19, col="blue") #Label sumbu y
abline(h=0, col="red") #Garis horizontal sebagai acuan nol## Warning: package 'car' was built under R version 4.5.1
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.1
Plot antara residual dan fitted untuk model mpg ~ hp + wt, terlihat bahwa titik-titik residual menyebar lebih acak di sekitar garis nol. Tidak menampilkan adanya pola tertentu yang jelas, sehingga asumsi linearitas pada model ini lebih baik terpenuhi. Hal ini menunjukkan bahwa penambahan variabel wt (berat mobil) ke dalam model membuat prediksi konsumsi bahan bakar (mpg) menjadi lebih tepat.
Uji Homoskedastisitas
Uji Homoskedastisitas merupakan uji yang digunakan untuk memeriksa apakah varians residual pada model regresi konstan di seluruh rentang nilai prediktor.
Uji Homoskedastisitas Model 1 (Sederhana)
## Warning: package 'lmtest' was built under R version 4.5.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.1
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## studentized Breusch-Pagan test
##
## data: model1
## BP = 0.049298, df = 1, p-value = 0.8243
# Visualisasi sebaran residual Model 1
plot (model1$fitted.values, residuals(model1),
xlab = "Fitted Values", ylab= "Residuals", #Label sumbu x dan y
main = "Uji Homoskedastisitas Model 1 ") #Judul plot
abline(h = 0, col = "pink") #Garis nolPada plot residual vs fitted untuk Model 1 (mpg ~ hp), terlihat bahwa titik-titik residual tersebar di sekitar garis nol dengan jarak yang relatif bervariasi. Sebaran residual tidak membentuk pola yang jelas, meskipun masih terdapat beberapa bagian yang terlihat kurang merata.
Uji Homoskedastisitas Model 2 (Berganda)
##
## studentized Breusch-Pagan test
##
## data: model2
## BP = 0.88072, df = 2, p-value = 0.6438
# Visualisasi sebaran residual Model 1
plot (model2$fitted.values, residuals(model2),
xlab = "Fitted Values", ylab= "Residuals", #Label sumbu x dan y
main = "Uji Homoskedastisitas Model 2") # Judul plot
abline(h = 0, col = "blue")Pada plot residual vs fitted untuk Model 2 (mpg ~ hp + wt), titik-titik residual menyebar secara acak di sekitar garis nol tanpa membentuk pola tertentu. Sebaran residual tampak lebih merata dibanding Model 1.
Uji Normaalitas Eror
Uji normalitas error (residual) adalah uji untuk memeriksa apakah residul (selisih anatara nilai observasi dan nilai prediksi) mengikuti distribusi normal. Ini merupakan salah satu asumsi penting dalam regresi linear, terutama untuk validitas uji statistik dan interval kepercayaan.
Uji Normalitas Eror Model 1 (Sederhana)
##
## Shapiro-Wilk normality test
##
## data: residuals(model1)
## W = 0.92337, p-value = 0.02568
# Histogram Uji Normalitas Eror Model 1
hist(residuals (model1), main = "Histogram Residuals Model 1", col = "lightpink")Hasil Shapiro-Wilk test pada residual Model 1 menunjukkan nilai p-value = 0.02568 (< 0.05), sehingga dapat disimpulkan bahwa residual tidak berdistribusi normal. Hal ini berarti asumsi normalitas residual kurang terpenuhi. Secara visual, histogram residual memperlihatkan distribusi yang tidak sepenuhnya simetris, sehingga menyimpang dari bentuk distribusi normal. Pada Q-Q Plot, titik-titik residual tidak mengikuti garis diagonal dengan baik, terutama di bagian ekor (atas dan bawah), yang semakin menegaskan bahwa residual model ini tidak sepenuhnya normal.
Uji Normalitas Eror Model 2 (Berganda)
##
## Shapiro-Wilk normality test
##
## data: residuals(model2)
## W = 0.92792, p-value = 0.03427
# Histogram Uji Normalitas Eror Model 2
hist(residuals (model2), main = "Histogram Residuals Model 2", col = "lightblue")Hasil Shapiro-Wilk test menunjukkan nilai p-value = 0.03427 (< 0.05), sehingga residual pada Model 2 juga tidak berdistribusi normal. Artinya, asumsi normalitas residual kurang terpenuhi meskipun model sudah ditambah variabel baru. Secara visual, histogram residual memperlihatkan distribusi yang tidak sepenuhnya simetris, sehingga berbeda dari bentuk distribusi normal. Sementara itu, pada Q-Q Plot, titik-titik residual memang mengikuti garis diagonal di bagian tengah, tetapi masih menyimpang pada bagian ekor bawah dan atas.
Uji Multikolinearitas Model 2
Multikolinearitas terjadi ketika prediktor saling berkorelasi tinggi. Variance Inflation Factor (VIF) digunakan untuk mendeteksi masalah ini. VIF > 10 menunjukkan potensi multikolinearitas yang signifikan.
## Warning: package 'car' is in use and will not be installed
library(car) # memanggil package car
vif_values <- vif(model2) # menghitung VIF
vif_values #Menampilkan hasil vif## hp wt
## 1.766625 1.766625
# Membuat barplot sederhana
barplot(vif_values,
main = "Grafik Uji Multikolinearitas (VIF)", #judul barplot
ylab = "Nilai VIF", #simbol y
col = "lightpink") #Menampilkan warna barplot
# Menambahkan garis batas VIF=10
abline(h = 10, col = "blue", lty = 2) #Menambahkan garis batas vif=10Pada grafik boxplot diatas terlihat bahwa nilai VIF untuk variabel hp dan wt berada di sekitar 1,7, jauh di bawah ambang batas 10. Hal ini menunjukkan bahwa tidak terdapat masalah multikolinearitas serius antarvariabel independen dalam Model 2. Dengan kata lain, variabel horsepower (hp) dan weight (wt) dapat digunakan secara bersama-sama dalam model tanpa menimbulkan bias akibat korelasi yang terlalu tinggi.
Perbandingan Uji Linearitas pada Model 1 dan Model 2
Model 1 dengan plot residual menunjukkan titik-titik residual belum sepenuhnya acak, hal ini menunjukkan bahwa asumsi linearitas kurang terpenuhi. Artinya horsepower (hp) saja tidak cukup baik untuk menjelaskan variasi konsumsi bahan bakar (mpg). Sedangkan untuk Model 2 Plot residual dan fitted memperlihatkan bahwa penyebaran residual yang lebih acak di sekitar garis nol. Hal ini menandakan bahwa tidak terlihat pola sistematis, sehingga asumsi linearitas lebih baik terpenuhi.
Kesimpulan Uji Linearitas
Model 1 hanya menggunakan horsepower sebagai prediktor, sehingga hubungan dengan mpg tidak sepenuhnya linear dan menyisakan pola pada residual. Sebaliknya, Model 2 yang memasukkan horsepower dan berat mobil menghasilkan residual yang lebih acak, menunjukkan bahwa model ini lebih sesuai dan memenuhi asumsi linearitas dengan lebih baik.
Perbandingan Uji Homoskedastisitas pada Model 1 dan Model 2
Pada Model 1 (mpg ~ hp), hasil uji Breusch–Pagan menghasilkan p-value sebesar 0.8243 yang lebih besar dari 0.05. Hal ini menunjukkan bahwa tidak terdapat indikasi heteroskedastisitas sehingga asumsi homoskedastisitas terpenuhi. Visualisasi residual juga mendukung hasil tersebut meskipun masih tampak sedikit pola. Sementara itu, pada Model 2 (mpg ~ hp + wt), hasil uji Breusch–Pagan juga memberikan p-value yang relatif besar sehingga tidak ada bukti kuat adanya heteroskedastisitas. Plot residual memperlihatkan sebaran yang lebih acak dan merata di sekitar garis nol dibandingkan Model 1. Hal ini mengindikasikan bahwa model berganda memberikan hasil yang lebih stabil dalam hal varians error.
Kesimpulan Uji Homoskedastisitas
Kesimpulan pada Model 1 dan Model 2 adalah memenuhi asumsi homoskedasitas. Namun, Model 2 lebih baik karena penyebaran residualya lebih acak sehingga hasil estimasinya dianggap lebih stabil dibandingkan Model 1.
Perbandingan Uji Normalitas Eror pada Model 1 dan Model 2
Pada Model 1 (mpg ~ hp), uji Shapiro–Wilk menghasilkan nilai W = 0.92337 dengan p-value sebesar 0.02568. Karena p-value lebih kecil dari 0.05, maka residual pada Model 1 tidak berdistribusi normal. Hal ini juga terlihat pada histogram yang tidak simetris sempurna serta Q-Q plot di mana titik-titik residual menyimpang dari garis diagonal. Pada Model 2 (mpg ~ hp + wt), nilai Shapiro–Wilk adalah W = 0.92792 dengan p-value 0.03427 (< 0.05), yang berarti residual juga tidak sepenuhnya normal. Meskipun demikian, histogram residual pada Model 2 terlihat sedikit lebih mendekati bentuk lonceng, dan titik pada Q-Q plot lebih rapat mengikuti garis diagonal dibanding Model 1.
Kesimpulan Uji Normalitas Eror
Kesimpulannya, baik Model 1 maupun Model 2 belum memenuhi asumsi normalitas residual / eror, tetapi Model 2 memiliki distribusi residual yang lebih mendekati normal dibanding Model 1.