Regresi Linier
Regresi linier adalah metode analisis statistika yang digunakan untuk mempelajari hubungan antara satu variabel dependen (Y) dengan satu atau lebih variabel independen (X) dalam bentuk persamaan garis lurus (linear).
Membangkitkan 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
Ringkasan statistik deskriptif
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
Analisis Korelasi
Dalam statistika, analisis korelasi digunakan untuk melihat derajat keterkaitan antara dua atau lebih variabel. Tingkat hubungan ini ditunjukkan oleh koefisien korelasi (r) yang memiliki rentang antara -1 sampai +1. Nilai positif mengindikasikan hubungan yang searah, sedangkan nilai negatif mengindikasikan arah hubungan yang berlawanan. Apabila nilainya mendekati nol, maka hubungan antarvariabel dianggap sangat lemah atau bahkan tidak ada. Analisis ini hanya menggambarkan keeratan hubungan, bukan menjelaskan faktor sebab-akibat
# 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
Interpretasi
Korelasi mpg dan hp: -0.7761684 Arah: Negatif, berarti ada hubungan berlawanan. Saat horsepower (hp) mesin mobil meningkat, miles per gallon (mpg) atau efisiensi bahan bakarnya cenderung menurun.
Kekuatan: Nilai -0.7761684 sangat dekat dengan -1. Ini menunjukkan hubungan yang sangat kuat. Hubungan ini masuk akal, karena mesin dengan tenaga kuda lebih besar biasanya mengonsumsi lebih banyak bahan bakar.
Korelasi mpg dan wt: -0.8676594 Arah: Negatif, yang juga menunjukkan hubungan berlawanan. Saat weight (wt) atau bobot mobil meningkat, miles per gallon (mpg)-nya cenderung menurun.
Kekuatan: Nilai -0.8676594 bahkan lebih dekat ke -1 daripada korelasi sebelumnya. Ini menunjukkan hubungan yang sangat kuat. Hubungan ini juga masuk di akal, karena mobil yang lebih berat membutuhkan lebih banyak energi untuk bergerak, sehingga lebih boros bahan bakar.
Secara ringkas, kedua hasil korelasi ini menegaskan bahwa mobil yang memiliki tenaga kuda lebih besar dan bobot yang lebih berat cenderung memiliki efisiensi bahan bakar yang lebih rendah. Korelasi antara mpg dan bobot (wt) sedikit lebih kuat dibandingkan dengan korelasi antara mpg dan tenaga kuda (hp).
Analisis Regresi Linear
Memahami hubungan antar variabel, Fungsi ini membantu melihat bagaimana satu atau lebih variabel independen (prediktor) memengaruhi variabel dependen (respons).
Membuat persamaan garis regresi, lm() akan menghitung koefisien (intercept dan slope) untuk membuat persamaan garis terbaik yang menggambarkan hubungan tersebut.
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
Intercept (30.09886): Nilai ini menunjukkan mpg yang diprediksi ketika hp sama dengan 0. Ini adalah titik awal garis regresi, meskipun dalam praktiknya, hp tidak akan pernah nol.
Koefisien hp (-0.06823): Koefisien ini menunjukkan bahwa setiap kenaikan 1 unit hp, mpg diprediksi akan menurun sebesar 0.06823 unit. Tanda negatif mengonfirmasi hubungan terbalik yang kuat antara hp dan mpg, seperti yang sudah kita lihat dari korelasi.
Multiple R-squared (0.6024): Ini adalah koefisien determinasi. Nilai 0.6024 berarti 60.24% dari variasi dalam mpg dapat dijelaskan oleh model ini menggunakan variabel hp. Ini menunjukkan bahwa hp adalah prediktor yang cukup baik untuk mpg, tetapi ada faktor lain yang juga memengaruhi mpg yang tidak dimasukkan dalam model ini.
Adjusted R-squared (0.5892): Nilai ini serupa dengan R-squared tetapi disesuaikan untuk jumlah variabel prediktor. Karena kita hanya memiliki satu prediktor, nilainya sangat mirip dengan R-squared. Ini adalah ukuran yang lebih baik untuk membandingkan model yang memiliki jumlah variabel berbeda.
Residual standard error (3.863): Ini adalah perkiraan standar deviasi dari residu (selisih antara nilai mpg aktual dan nilai yang diprediksi). Semakin kecil nilai ini, semakin baik model dalam memprediksi data.
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
Intercept (37.22727): Ini adalah perkiraan mpg ketika hp dan wt sama dengan nol.
Koefisien hp (-0.03177): Menunjukkan bahwa untuk setiap kenaikan 1 unit hp, mpg diprediksi turun sebesar 0.03177, dengan asumsi wt tetap.
Koefisien wt (-3.87783): Menunjukkan bahwa untuk setiap kenaikan 1 unit wt, mpg diprediksi turun sebesar 3.87783, dengan asumsi hp tetap. Koefisien yang lebih besar ini mengindikasikan bahwa bobot mobil (wt) memiliki dampak negatif yang jauh lebih kuat terhadap efisiensi bahan bakar dibandingkan dengan tenaga kuda (hp).
Multiple R-squared (0.8268): Ini menunjukkan bahwa 82.68% dari variasi dalam mpg dapat dijelaskan oleh model ini menggunakan variabel hp dan wt. Nilai ini jauh lebih tinggi dari model regresi sederhana yang hanya menggunakan hp (yang memiliki R-squared 0.6024), membuktikan bahwa penambahan variabel wt secara signifikan meningkatkan kekuatan penjelasan model.
Adjusted R-squared (0.8148): Nilai ini mirip dengan R-squared tetapi memperhitungkan jumlah prediktor. Nilainya yang tinggi mengonfirmasi bahwa penambahan wt adalah penambah nilai yang nyata untuk model.
Residual Standard Error (2.593): Ini adalah ukuran rata-rata kesalahan prediksi model. Dibandingkan dengan model sebelumnya (3.863), nilai yang lebih kecil ini menunjukkan bahwa model multivariabel ini memberikan prediksi yang lebih akurat.
Secara keseluruhan, model ini sangat baik dalam menjelaskan efisiensi bahan bakar mobil, dengan wt menjadi prediktor yang lebih berpengaruh daripada hp.
Uji Asumsi
Uji asumsi dalam analisis regresi adalah serangkaian uji statistik untuk memverifikasi apakah model regresi yang dibuat memenuhi syarat-syarat tertentu. Jika asumsi-asumsi ini tidak terpenuhi, hasil model (seperti koefisien, p-value, dan R-squared) bisa menjadi tidak valid atau bias, sehingga interpretasi dan kesimpulan yang ditarik bisa salah.
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
uji linearitas
Setelah instal package “lmtest” barulah bisa menggunakan fungsi “resettest()”untuk uji linearitasnya. dengan H0: Model regresi bersifat linear. H1: Model regresi tidak linear.
resettest(model1)
##
## RESET test
##
## data: model1
## RESET = 9.2467, df1 = 2, df2 = 28, p-value = 0.0008255
Karena nilai p-value (0.0008255) jauh lebih kecil dari tingkat signifikansi umum (0.05), menolak hipotesis nol.
resettest(model2)
##
## RESET test
##
## data: model2
## RESET = 7.2384, df1 = 2, df2 = 27, p-value = 0.003041
Karena nilai p-value (0.003041) jauh lebih kecil dari tingkat signifikansi (0.05), menolak hipotesis nol.
Visualisasi uji linearitas model1
plot(fitted(model1), residuals(model1),
xlab = "Fitted Values",
ylab = "Residuals",
main = "Uji Linearitas: Residual vs Fitted (Model mpg ~ hp)",
pch = 19, col = "darkblue");abline(h = 0, col = "red", lwd = 2)
Visualisasi uji linearitas model2
plot(fitted(model2), residuals(model2),
xlab = "Fitted Values",
ylab = "Residuals",
main = "Uji Linearitas: Residual vs Fitted (Model mpg ~ hp + wt)",
pch = 19, col = "darkblue");abline(h = 0, col = "red", lwd = 2)
Homoskedastisitas
Uji homoskedastisitas adalah uji asumsi dalam regresi linier untuk memastikan bahwa varians dari residual (error) adalah konstan di seluruh rentang nilai prediksi. Secara sederhana, asumsi ini berarti kesalahan prediksi model Anda memiliki sebaran yang sama, tidak peduli seberapa besar atau kecil nilai yang diprediksi.
bptest
Uji ini berfungsi sebagai konfirmasi kuantitatif untuk uji visual yang kita lakukan sebelumnya menggunakan plot residual.
H0: Varians residual adalah konstan (model bersifat homoskedastisitas). H1: Varians residual tidak konstan (terjadi heteroskedastisitas).
bptest(model1)
##
## studentized Breusch-Pagan test
##
## data: model1
## BP = 0.049298, df = 1, p-value = 0.8243
Karena nilai p-value (0.8243) jauh lebih besar dari tingkat signifikansi (0.05), gagal menolak hipotesis nol. Gagal menolak hipotesis nol berarti kita tidak memiliki bukti statistik yang cukup untuk menyatakan bahwa ada masalah heteroskedastisitas. Dengan kata lain, asumsi homoskedastisitas terpenuhi.
terbukti ini hasil yang baik, karena menunjukkan bahwa kesalahan prediksi model Anda tersebar secara konsisten. Akibatnya, estimasi koefisien regresi dan p-value yang Anda dapatkan dari model (lm()) dianggap andal.
bptest(model2)
##
## studentized Breusch-Pagan test
##
## data: model2
## BP = 0.88072, df = 2, p-value = 0.6438
Karena nilai p-value (0.6438) lebih besar dari tingkat signifikansi (0.05), gagal menolak hipotesis nol. Ini berarti tidak ada bukti statistik yang cukup untuk menyimpulkan adanya heteroskedastisitas. Asumsi homoskedastisitas terpenuhi, yang menunjukkan bahwa kesalahan prediksi model tersebar secara konsisten.
Visualiasi bptest
plot(fitted(model1), residuals(model1),
xlab = "Fitted Values",
ylab = "Residuals",
main = "Uji Homoskedastisitas: Residual vs Fitted",
pch = 19, col = "darkblue")
plot(fitted(model2), residuals(model2),
xlab = "Fitted Values",
ylab = "Residuals",
main = "Uji Homoskedastisitas: Residual vs Fitted",
pch = 19, col = "darkblue")
Uji Normalitas
Uji ini bertujuan untuk memeriksa apakah residual (sisaan atau error) dari model regresi Anda terdistribusi secara normal. Asumsi ini penting karena mempengaruhi validitas uji signifikansi (seperti p-value dan interval kepercayaan) dari koefisien regresi Anda. H0: Residual terdistribusi secara normal. H1: Residual tidak terdistribusi secara normal.
shapiro.test(residuals(model1))
##
## Shapiro-Wilk normality test
##
## data: residuals(model1)
## W = 0.92337, p-value = 0.02568
Karena nilai p-value (0.02568) lebih kecil dari tingkat signifikansi (0.05), harus menolak hipotesis nol. Menolak hipotesis nol berarti memiliki bukti statistik yang signifikan bahwa residual tidak terdistribusi secara normal.
shapiro.test(residuals(model2))
##
## Shapiro-Wilk normality test
##
## data: residuals(model2)
## W = 0.92792, p-value = 0.03427
Karena nilai p-value (0.03427) lebih kecil dari tingkat signifikansi(0.05), harus menolak hipotesis nol. Menolak hipotesis nol berarti kita memiliki bukti statistik yang signifikan bahwa residual model2 tidak terdistribusi secara normal.
QQ-plot untuk Model 1
qqnorm(resid(model1), main="QQ-Plot Residuals (Model 1)",
xlab = "Kuantil Teoritis",
ylab = "Kuantil Sampel")
QQ-plot untuk Model 2
qqnorm(resid(model2), main="QQ-Plot Residuals (Model 2)",
xlab = "Kuantil Teoritis",
ylab = "Kuantil Sampel")
Uji Multikolinearitas
Multikolinearitas terjadi ketika dua atau lebih variabel independen memiliki korelasi yang sangat tinggi satu sama lain.
#Install dan masukan library car terlebih dahulu
library(car)
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.3
vif
Hipotesis Uji: H0 : Tidak terdapat multikolinearitas dalam model regresi (korelasi antar-variabel independen rendah, VIF < 10). H1: Terdapat multikolinearitas dalam model regresi (korelasi antar-variabel independen tinggi, VIF ≥ 10).
vif(model2)
## hp wt
## 1.766625 1.766625
Nilai VIF untuk kedua variabel independen (hp dan wt) adalah 1.766625. Oleh karena itu, dapat disimpulkan bahwa tidak ada masalah multikolinearitas yang signifikan pada model regresi. Meskipun hp dan wt mungkin memiliki korelasi, korelasi tersebut tidak cukup kuat untuk secara serius mengganggu estimasi koefisien regresi. Ini berarti koefisien yang didapatkan untuk hp dan wt dapat diandalkan.
visualisasi
avPlots(model2, ask=FALSE,
main="Partial Regression Plots (Model 2)")
Kesimpulan dari 2 plot: -Baik hp maupun wt memiliki hubungan negatif
dengan mpg setelah pengaruh satu sama lain dipertimbangkan. -wt memiliki
dampak yang jauh lebih besar dan hubungan yang lebih kuat dengan mpg
dibandingkan dengan hp. -Plot-plot ini juga menyoroti keberadaan
beberapa titik data yang berpengaruh atau outlier yang mungkin perlu
diselidiki lebih lanjut, karena mereka dapat mempengaruhi hasil
model.
Kesimpulan
Model 1: mpg ~ hp - Linearitas:
p-value = 0.0008255 (kurang dari 0.05). Model ini gagal dalam uji linearitas, menunjukkan bahwa hubungan antara hp dan mpg mungkin tidak sepenuhnya linier.
- Homoskedastisitas (Breusch-Pagan Test):
p-value = 0.8243 (lebih dari 0.05). Asumsi terpenuhi. Varians residual konstan.
- Normalitas (Shapiro-Wilk Test):
p-value = 0.02568 (kurang dari 0.05). Model ini gagal dalam uji normalitas, menunjukkan bahwa residual tidak terdistribusi secara normal.
- Multikolinearitas (VIF):
Uji ini tidak berlaku karena model hanya memiliki satu variabel independen (hp), sehingga tidak mungkin terjadi multikolinearitas.
Model 2: mpg ~ hp + wt - Linearitas :
p-value = 0.003041 (kurang dari 0.05).
Model ini juga gagal dalam uji linearitas, mengindikasikan bahwa hubungan antara mpg dengan hp dan wt tidak sepenuhnya linier.
- Homoskedastisitas (Breusch-Pagan Test):
p-value = 0.6438 (lebih dari 0.05). Asumsi terpenuhi. Varians residual konstan.
- Normalitas (Shapiro-Wilk Test):
p-value = 0.03427 (kurang dari 0.05). Model ini gagal dalam uji normalitas, dengan residual yang tidak terdistribusi secara normal.
- Multikolinearitas (VIF):
VIF = 1.766625 (kurang dari 5). Tidak ada masalah multikolinearitas yang signifikan.
Kesimpulan Perbandingan
Kedua model memiliki kelemahan yang serupa: keduanya gagal dalam asumsi linearitas dan normalitas. Meskipun Model 2 secara statistik lebih baik dalam menjelaskan variasi data (R-squared yang lebih tinggi) dan lolos dari uji multikolinearitas, kegagalan dalam asumsi linearitas dan normalitas berarti tidak ada satupun dari kedua model ini yang valid dan andal untuk menarik kesimpulan yang akurat.