DATA

Dataset Information

Dataset yang kita gunakan untuk analisis regresi berganda kali ini adalah dataset autompg. Dataset autompg adalah dataset untuk memprediksi konsumsi bahan bakar siklus kota dalam mil per galon (mpg) berdasarkan 3 atribut diskrit multi-nilai dan 5 atribut kontinu.

Kalian dapat mendownload dataset nya di sini:

Variables Table
Variable_Name Role Type Missing
mpg Target Continuous no
cyl Feature Multi-valued Discrete no
disp Feature Continuous no
hp Feature Continuous no
wt Feature Continuous no
acc Feature Continuous no
year Feature Multi-valued Discrete no

Berdasarkan tabel variabel di atas, dataset Auto MPG terdiri dari satu variabel target dan beberapa variabel prediktor. Variabel mpg berperan sebagai variabel dependen (target) yang bersifat kontinu, karena nilainya berada pada rentang tertentu dan dapat berupa bilangan pecahan.

Seluruh variabel lainnya seperti disp, hp, wt, dan acc dikategorikan sebagai variabel kontinu karena merepresentasikan ukuran fisik atau performa kendaraan yang dapat bernilai real (tidak terbatas pada bilangan bulat saja).

Sementara itu, variabel cyl dan year termasuk dalam kategori multi-valued discrete, karena memiliki sejumlah nilai diskrit yang terbatas namun lebih dari dua kategori.

Selain itu, berdasarkan hasil identifikasi, tidak terdapat missing value pada seluruh variabel dalam dataset, sehingga data dinyatakan lengkap dan siap digunakan untuk analisis lebih lanjut tanpa perlu dilakukan penanganan data hilang.

Input Data

DISCLAIMER!, kita akan menganalisis variabel-variabel kontinu.

autompg <- read.csv('C:/dataset/autompg.csv') #Menginput dan menyimpan data menjadi sebuah variabel
head(autompg) #Melihat 6 baris pertama pada data
##   mpg cyl disp  hp   wt  acc year
## 1  18   8  307 130 3504 12.0   70
## 2  15   8  350 165 3693 11.5   70
## 3  18   8  318 150 3436 11.0   70
## 4  16   8  304 150 3433 12.0   70
## 5  17   8  302 140 3449 10.5   70
## 6  15   8  429 198 4341 10.0   70

Pada dataset terdapat lima variabel kontinu, yaitu MPG, Displacement (disp), Horsepower (hp), Weight (wt), Acceleration (acc) di mana;

  • Displacement : variabel independen / variabel bebas (\(X_1\))
  • Horsepower : variabel independen / variabel bebas (\(X_2\))
  • Weight : variabel independen / variabel bebas (\(X_3\))
  • Acceleration : variabel independen / variabel bebas (\(X_4\))
  • MPG : variabel dependen / variabel terikat (\(Y\))
#Memahami data
summary(autompg)
##       mpg             cyl             disp             hp              wt      
##  Min.   : 9.00   Min.   :3.000   Min.   : 68.0   Min.   : 46.0   Min.   :1613  
##  1st Qu.:17.00   1st Qu.:4.000   1st Qu.:105.0   1st Qu.: 75.0   1st Qu.:2224  
##  Median :22.45   Median :4.000   Median :151.0   Median : 94.5   Median :2811  
##  Mean   :23.42   Mean   :5.479   Mean   :194.7   Mean   :104.6   Mean   :2980  
##  3rd Qu.:29.00   3rd Qu.:8.000   3rd Qu.:293.2   3rd Qu.:128.0   3rd Qu.:3618  
##  Max.   :46.60   Max.   :8.000   Max.   :455.0   Max.   :230.0   Max.   :5140  
##       acc             year      
##  Min.   : 8.00   Min.   :70.00  
##  1st Qu.:13.80   1st Qu.:73.00  
##  Median :15.50   Median :76.00  
##  Mean   :15.55   Mean   :75.95  
##  3rd Qu.:17.07   3rd Qu.:79.00  
##  Max.   :24.80   Max.   :82.00
attach(autompg) #Supaya dapat langsung memanggil nama variabel

Scatter Plot

pairs(cbind(MPG = mpg,
            Displacement = disp,
            Horsepower=hp,
            Weight=wt,
            Acceleration=acc),
      pch=21,
      main = "Plot Pencar Variabel Kontinu",
      bg = "#f2b5b5",
      col.main = "lightpink3",
      col.lab = "lightblue3",
      col.axis = "red2")

Analisis Korelasi

library(psych)
pairs.panels(cbind(MPG = mpg,
            Displacement = disp,
            Horsepower=hp,
            Weight=wt,
            Acceleration=acc),
            pch=21,
            bg = "#f2b5b5",
      col.main = "lightpink3",
      col.lab = "lightblue3",
      col.axis = "red2")

  • Terlihat adanya hubungan linear negatif yang kuat antara mpg dengan displacement, horsepower, dan weight dengan koefisien korelasi masing-masing sebesar -0.80, -0.78, dan -0.83. Hal ini menunjukkan bahwa semakin besar ukuran mesin, tenaga, dan berat kendaraan, maka efisiensi bahan bakar cenderung menurun.
  • Hubungan antara mpg dengan acceleration menunjukkan korelasi positif sebesar 0.43 yang tergolong sedang. Hal ini mengindikasikan bahwa kendaraan dengan percepatan lebih baik cenderung memiliki efisiensi bahan bakar yang lebih tinggi.
  • Korelasi antar variabel prediktor seperti displacement dengan horsepower (0.90), serta displacement dengan weight (0.93), dan horsepower dengan weight (0.86) tergolong sangat kuat. Hal ini mengindikasikan adanya potensi multikolinearitas antar variabel prediktor.
  • Selain itu, hubungan antara acceleration dengan variabel prediktor lainnya cenderung negatif dengan kekuatan hubungan sedang, seperti dengan horsepower (-0.69) dan displacement (-0.55). Hal ini menunjukkan bahwa kendaraan dengan tenaga besar cenderung memiliki waktu akselerasi yang lebih rendah.
  • Secara umum, pola hubungan antar variabel menunjukkan kecenderungan linear, sehingga asumsi linearitas dalam analisis regresi dapat dianggap cukup terpenuhi.

PERSAMAAN REGRESI DUGAAN

Estimasi Parameter Regresi dengan Manual

y <- matrix(c(mpg),ncol=1)
head(y)
##      [,1]
## [1,]   18
## [2,]   15
## [3,]   18
## [4,]   16
## [5,]   17
## [6,]   15
x <- cbind(1,disp,hp,wt,acc)
head(x)
##        disp  hp   wt  acc
## [1,] 1  307 130 3504 12.0
## [2,] 1  350 165 3693 11.5
## [3,] 1  318 150 3436 11.0
## [4,] 1  304 150 3433 12.0
## [5,] 1  302 140 3449 10.5
## [6,] 1  429 198 4341 10.0
b <- (solve(t(x)%*%(x))) %*% (t(x)%*%(y))
b
##              [,1]
##      45.128499848
## disp -0.005973789
## hp   -0.043131278
## wt   -0.005289997
## acc  -0.017322657
b0 <- b[1]
b0
## [1] 45.1285
b1 <- b[2]
b1
## [1] -0.005973789
b2 <- b[3]
b2
## [1] -0.04313128
b3 <- b[4]
b3
## [1] -0.005289997
b4 <- b[4]
b4
## [1] -0.005289997

Estimasi parameter Regresi dengan Fungsi bawaan R

regresi_mpg <- lm(mpg ~ disp+hp+wt+acc, data=autompg)
summary(regresi_mpg)
## 
## Call:
## lm(formula = mpg ~ disp + hp + wt + acc, data = autompg)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.3587  -2.7980  -0.3478   2.1985  16.2607 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.1284998  2.4750464  18.233  < 2e-16 ***
## disp        -0.0059738  0.0067249  -0.888  0.37493    
## hp          -0.0431313  0.0166403  -2.592  0.00991 ** 
## wt          -0.0052900  0.0008129  -6.507 2.38e-10 ***
## acc         -0.0173227  0.1264545  -0.137  0.89111    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.256 on 385 degrees of freedom
## Multiple R-squared:  0.7065, Adjusted R-squared:  0.7034 
## F-statistic: 231.6 on 4 and 385 DF,  p-value: < 2.2e-16

persamaan regresi dugaan dari data tersebut:

\(\hat{y}\) = 45.128 - 0.00597\(x_1\) - 0.04313\(x_2\) - 0.00529\(x_3\) - 0.01732\(x_4\)

Estimasi parameter regresi nya :

  • \(b_0\) = 45.128, berarti ketika seluruh variabel prediktor (displacement,horsepower,weight,accelaration) sebesar 0 satuan maka efisiensi bahan bakar sebesar 45.128 mpg (Namun \(b_0\) tidak bermakna karena karena kondisi seluruh variabel prediktor bernilai nol tidak realistis dalam konteks kendaraan. Sebagai contoh, kendaraan tidak mungkin memiliki berat (weight), tenaga mesin (horsepower), maupun kapasitas mesin (displacement) sebesar nol, serta waktu percepatan (acceleration) nol detik juga tidak mungkin terjadi secara fisik.
  • \(b_1\) = -0.00597, berarti setiap peningkatan displacement sebesar 1 satuan, dengan asumsi variabel lain konstan, akan menurunkan efisiensi bahan bakar sebesar 0,00597 mpg.
  • \(b_2\) = -0.04313, berarti setiap peningkatan horsepower sebesar 1 satuan, dengan asumsi variabel lain konstan, akan menurunkan efisiensi bahan bakar sebesar 0.04313 mpg.
  • \(b_3\) = -0.00529, berarti setiap peningkatan weight sebesar 1 satuan, dengan asumsi variabel lain konstan, akan menurunkan efisiensi bahan bakar sebesar 0.00529 mpg.
  • \(b_4\) = -0.01732, berarti setiap peningkatan accelaration sebesar 1 satuan, dengan asumsi variabel lain konstan, akan menurunkan efisiensi bahan bakar sebesar 0.01732 mpg.

Analisis Variansi

Manual

y <- matrix(c(mpg),ncol=1)
x <- cbind(1,disp,hp,wt,acc)
n <- nrow(autompg)
J <- matrix(1, n, n)  #matriks persegi dengan elemen 1

JKT <- t(y)%*%(y) - ((1/nrow(autompg))*t(y)%*%J%*%(y))
JKT
##          [,1]
## [1,] 23761.67
b <- (solve(t(x)%*%(x))) %*% (t(x)%*%(y))
JKG <- t(y)%*%(y) - t(b)%*%t(x)%*%(y)
JKG
##          [,1]
## [1,] 6974.882
JKR <- JKT - JKG
JKR
##          [,1]
## [1,] 16786.79
k <- ncol(x)-1
k
## [1] 4
KTR <- JKR/k
KTR
##          [,1]
## [1,] 4196.697
KTG <- JKG/(n-k-1)
KTG
##          [,1]
## [1,] 18.11658
Fhitung <- KTR/KTG

anova_table <- data.frame(
  Sumber = c("Regresi", "Galat", "Total"),
  Db = c(k, n-k-1, k+n-k-1),
  JK = c(JKR, JKG, JKT),
  KT = c(KTR, KTG, ""),
  F = c(Fhitung, "", "")
)

knitr::kable(anova_table, digits = 3, caption = "Tabel ANOVA",align = "c")
Tabel ANOVA
Sumber Db JK KT F
Regresi 4 16786.790 4196.69749641875 231.64959013812
Galat 385 6974.882 18.1165763941844
Total 389 23761.672

Fungsi Bawaan R

anova(regresi_mpg)
## Analysis of Variance Table
## 
## Response: mpg
##            Df  Sum Sq Mean Sq  F value    Pr(>F)    
## disp        1 15391.8 15391.8 849.5997 < 2.2e-16 ***
## hp          1   383.2   383.2  21.1501 5.770e-06 ***
## wt          1  1011.4  1011.4  55.8298 5.361e-13 ***
## acc         1     0.3     0.3   0.0188    0.8911    
## Residuals 385  6974.9    18.1                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
JKR <- sum(anova(regresi_mpg)$"Sum Sq"[1:4])
JKR
## [1] 16786.79
JKG <- anova(regresi_mpg)$"Sum Sq"[5]
JKG
## [1] 6974.882
JKT <- JKR + JKG
JKT
## [1] 23761.67
df_regresi <- sum(anova(regresi_mpg)$"Df"[1:4])
df_regresi
## [1] 4
df_galat <- anova(regresi_mpg)$"Df"[5]
df_galat
## [1] 385
df_total <- df_regresi+df_galat
df_total
## [1] 389
KTR <- JKR/df_regresi
KTR
## [1] 4196.697
KTG <- JKG/df_galat
KTG
## [1] 18.11658
Fhitung <- KTR/KTG
Fhitung
## [1] 231.6496

UJI ASUMSI

Linearitas

library(GGally)
## Warning: package 'GGally' was built under R version 4.5.3
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
## The following object is masked from 'autompg':
## 
##     mpg
ggpairs(autompg[, c("mpg", "disp", "hp", "wt", "acc")])

Berdasarkan dari plot pencar:

  • terlihat bahwa ada hubungan linear negatif antara displacement dengan mpg. (\(R\) = -0.805)
  • terlihat bahwa ada hubungan linear negatif antara horsepower dengan mpg. (\(R\) = -0.778)
  • terlihat bahwa ada hubungan linear negatif antara weight dengan mpg. (\(R\) = -0.832)
  • terlihat bahwa ada hubungan linear positif antara acceleration dengan mpg. (\(R\) = 0.426)

Nonmultikolinearitas

Normalitas

Homogenitas

Independen

KOEFISIEN DETERMINASI DAN KOEFISIEN KORELASI

Koefisien Determinasi (\(R^2\))

y <- matrix(c(mpg),ncol=1)
x <- cbind(1,disp,hp,wt,acc)
n <- nrow(autompg)
J <- matrix(1, n, n) 
JKT <- t(y)%*%(y) - ((1/nrow(autompg))*t(y)%*%J%*%(y))
b <- (solve(t(x)%*%(x))) %*% (t(x)%*%(y))
JKG <- t(y)%*%(y) - t(b)%*%t(x)%*%(y)
Koef_Det <- 1 - (JKG/JKT)
Koef_Det
##          [,1]
## [1,] 0.706465

Koefisien determinasi (\(R^2\)) sebesar 0.7065 menunjukkan bahwa 70.65% keragaman dari mpg dapat dijelaskan oleh keragaman variabel prediktor yang digunakan dalam model, yaitu displacement, horsepower, weight, dan acceleration. Sementara itu, sisanya sebesar 29.35% dijelaskan oleh faktor lain di luar model.

Koefisien Determinasi Terkoreksi (\(R^2_a\))

y <- matrix(c(mpg),ncol=1)
x <- cbind(1,disp,hp,wt,acc)
n <- nrow(autompg)
k <- ncol(x)-1
J <- matrix(1, n, n) 
JKT <- t(y)%*%(y) - ((1/nrow(autompg))*t(y)%*%J%*%(y))
b <- (solve(t(x)%*%(x))) %*% (t(x)%*%(y))
JKG <- t(y)%*%(y) - t(b)%*%t(x)%*%(y)
Adjusted_Det <- 1 - ((JKG / (n - k - 1)) / (JKT / (n - 1)))
Adjusted_Det
##           [,1]
## [1,] 0.7034153

Koefisien determinasi terkoreksi (\(R^2_a\)) sebesar 0.7034 menunjukkan bahwa setelah mempertimbangkan jumlah variabel prediktor dalam model, sebesar 70.34% keragaman pada variabel mpg masih dapat dijelaskan oleh model. Nilai ini tidak jauh berbeda dengan (\(R^2\)), sehingga dapat dikatakan bahwa model yang digunakan sudah cukup baik dan tidak mengalami penambahan variabel yang tidak relevan.

Koefisien Korelasi (\(R\))

Koef_Kor <- sqrt(Koef_Det)
Koef_Kor
##           [,1]
## [1,] 0.8405147

Koefisien Korelasi \(R\) = 0.8405, \(|R|\) \(>\) 0.8 berarti ada hubungan linear yang kuat.

UJI PARAMETER REGRESI

Uji F (Uji Simultan)

  • Hipotesis:

                       \(H_0 : \beta_1 = \beta_2 = \beta_3 = \beta_4 = 0\)

                       \(H_1 : \exists \, \beta_i \neq 0,\; i = 1,2,3,4\)

  • Taraf signifikansi:  \(\alpha = 0.01\)
  • Statistik uji:   \(F = \frac{\frac{JKR}{k}}{\frac{JKG}{n-k-1}}\)
  • Kriteria keputusan:    \(k=4,n=390,F_{0.01(4,385)}=3.3682\)
qf(0.99,df1=4,df2=385)
## [1] 3.368207

           \(H_0\) ditolak jika \(F > 3.3682\)

  • Hitungan:
y <- matrix(c(mpg),ncol=1)
x <- cbind(1,disp,hp,wt,acc)
n <- nrow(autompg)
k <- ncol(x)-1
J <- matrix(1, n, n) 
JKT <- t(y)%*%(y) - ((1/nrow(autompg))*t(y)%*%J%*%(y))
b <- (solve(t(x)%*%(x))) %*% (t(x)%*%(y))
JKG <- t(y)%*%(y) - t(b)%*%t(x)%*%(y)
JKR <- JKT - JKG
Fhit <- (JKR/k)/(JKG/(n-k-1))
Fhit
##          [,1]
## [1,] 231.6496
  • Kesimpulan: Oleh karena \(F=231.6496 > 3.3682\) maka \(H_0\) ditolak. Jadi pada taraf signifikansi 0.01 dapat disimpulkan bahwa setidaknya ada satu variabel prediktor yang dapat digunakan untuk menjelaskan signifikansi keragaman dalam efisiensi bahan bakar (mpg).

Uji t (Uji Parsial)

Hitung standar error bagi b, \(s\{b\}\)

\[ s^2\{b\} = KTG (X'X)^{-1} \]
\[ s^2\{b\} = \begin{bmatrix} s^2\{b_0\} & s\{b_0,b_1\} & \cdots & s\{b_0,b_{4}\} \\ s\{b_1,b_0\} & s^2\{b_1\} & \cdots & s\{b_1,b_{4}\} \\ \vdots & \vdots & \ddots & \vdots \\ s\{b_{4},b_0\} & s\{b_{4},b_1\} & \cdots & s^2\{b_{4}\} \end{bmatrix} \]

y <- matrix(c(mpg),ncol=1)
x <- cbind(1,disp,hp,wt,acc)
n <- nrow(autompg)
k <- ncol(x)-1
KTG <- JKG/(n-k-1)
KTG <- as.numeric(KTG) #karena hasil KTG masih berupa tipe matriks bukan num
KTG
## [1] 18.11658
s2b <- KTG*solve(t(x)%*%x)
s2b
##                             disp            hp            wt           acc
##       6.1258547866  3.201830e-03 -2.713213e-02  1.304766e-04 -2.736350e-01
## disp  0.0032018299  4.522438e-05 -2.923356e-05 -3.835957e-06  1.596262e-04
## hp   -0.0271321342 -2.923356e-05  2.768982e-04 -5.669372e-06  1.335547e-03
## wt    0.0001304766 -3.835957e-06 -5.669372e-06  6.608454e-07 -4.889691e-05
## acc  -0.2736349808  1.596262e-04  1.335547e-03 -4.889691e-05  1.599075e-02
sb <- sqrt(diag(s2b)) #ambil sb0,sb1,sb2,sb3,sb4
sb
##                    disp          hp          wt         acc 
## 2.475046421 0.006724907 0.016640259 0.000812924 0.126454519

Uji apakah ada pengaruh displacement terhadap mpg

INTERVAL KEPERCAYAAN PARAMETER REGRESI

Interval Kepercayaan Bagi \(\beta_0\)

Interval Kepercayaan Bagi \(\beta_1\)

Interval Kepercayaan Bagi \(\beta_2\)

Interval Kepercayaan Bagi \(\beta_3\)

Interval Kepercayaan Bagi \(\beta_4\)