Tugas 4 Ariq Kompstat

Ariq Fadhali Hanafiah

2025-09-09

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.