library(readr)
library(ggplot2)
library(ggpmisc)
## Loading required package: ggpp
## 
## Attaching package: 'ggpp'
## The following object is masked from 'package:ggplot2':
## 
##     annotate
## Registered S3 method overwritten by 'ggpmisc':
##   method                  from   
##   as.character.polynomial polynom
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Pengolahan Data

Import Data

data<- read_csv("F:/Collage/Semester 5/Bintel/Week 11/archive (3)/Fuel_Consumption_2000-2022.csv")
## Rows: 22556 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): MAKE, MODEL, VEHICLE CLASS, TRANSMISSION, FUEL
## dbl (8): YEAR, ENGINE SIZE, CYLINDERS, FUEL CONSUMPTION, HWY (L/100 km), COM...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data
## # A tibble: 22,556 × 13
##     YEAR MAKE  MODEL  `VEHICLE CLASS` `ENGINE SIZE` CYLINDERS TRANSMISSION FUEL 
##    <dbl> <chr> <chr>  <chr>                   <dbl>     <dbl> <chr>        <chr>
##  1  2000 ACURA 1.6EL  COMPACT                   1.6         4 A4           X    
##  2  2000 ACURA 1.6EL  COMPACT                   1.6         4 M5           X    
##  3  2000 ACURA 3.2TL  MID-SIZE                  3.2         6 AS5          Z    
##  4  2000 ACURA 3.5RL  MID-SIZE                  3.5         6 A4           Z    
##  5  2000 ACURA INTEG… SUBCOMPACT                1.8         4 A4           X    
##  6  2000 ACURA INTEG… SUBCOMPACT                1.8         4 M5           X    
##  7  2000 ACURA INTEG… SUBCOMPACT                1.8         4 M5           Z    
##  8  2000 ACURA NSX    SUBCOMPACT                3           6 AS4          Z    
##  9  2000 ACURA NSX    SUBCOMPACT                3.2         6 M6           Z    
## 10  2000 AUDI  A4     COMPACT                   1.8         4 A5           Z    
## # ℹ 22,546 more rows
## # ℹ 5 more variables: `FUEL CONSUMPTION` <dbl>, `HWY (L/100 km)` <dbl>,
## #   `COMB (L/100 km)` <dbl>, `COMB (mpg)` <dbl>, EMISSIONS <dbl>

Drop kolom yang tidak dipakai

data <- data %>% select(-YEAR,-MAKE,-MODEL,-`VEHICLE CLASS`,-TRANSMISSION,-FUEL,-`HWY (L/100 km)`,-`COMB (L/100 km)`,-`COMB (mpg)`)
data
## # A tibble: 22,556 × 4
##    `ENGINE SIZE` CYLINDERS `FUEL CONSUMPTION` EMISSIONS
##            <dbl>     <dbl>              <dbl>     <dbl>
##  1           1.6         4                9.2       186
##  2           1.6         4                8.5       175
##  3           3.2         6               12.2       230
##  4           3.5         6               13.4       264
##  5           1.8         4               10         198
##  6           1.8         4                9.3       189
##  7           1.8         4                9.4       191
##  8           3           6               13.6       267
##  9           3.2         6               13.8       269
## 10           1.8         4               11.4       218
## # ℹ 22,546 more rows

Analisis Deskriptif Data

summary(data)
##   ENGINE SIZE      CYLINDERS      FUEL CONSUMPTION   EMISSIONS    
##  Min.   :0.800   Min.   : 2.000   Min.   : 3.50    Min.   : 83.0  
##  1st Qu.:2.300   1st Qu.: 4.000   1st Qu.:10.40    1st Qu.:209.0  
##  Median :3.000   Median : 6.000   Median :12.30    Median :243.0  
##  Mean   :3.357   Mean   : 5.854   Mean   :12.76    Mean   :250.1  
##  3rd Qu.:4.200   3rd Qu.: 8.000   3rd Qu.:14.72    3rd Qu.:288.0  
##  Max.   :8.400   Max.   :16.000   Max.   :30.60    Max.   :608.0
str(data)
## tibble [22,556 × 4] (S3: tbl_df/tbl/data.frame)
##  $ ENGINE SIZE     : num [1:22556] 1.6 1.6 3.2 3.5 1.8 1.8 1.8 3 3.2 1.8 ...
##  $ CYLINDERS       : num [1:22556] 4 4 6 6 4 4 4 6 6 4 ...
##  $ FUEL CONSUMPTION: num [1:22556] 9.2 8.5 12.2 13.4 10 9.3 9.4 13.6 13.8 11.4 ...
##  $ EMISSIONS       : num [1:22556] 186 175 230 264 198 189 191 267 269 218 ...

Data menyediakan variabel Prediktor berupa Ukuran Mesin (Engine Size), Banyaknya Silinder (Cylinders), dan Konsumsi Bahan Bakar (Fuel Consumtion). Kemudian, Variabel Responnya ialah variabel (Emission). Oleh karena itu, tujuan dari analisis ini ialah untuk mengetahui pengaruh variabel prediktor (Engine Size, Cylinders, dan Fuel Consumption) terhadap variabel responnya yakni tingkat Emisi (Emision) yang ada di Canada.

Mengubah nama kolom

names(data)
## [1] "ENGINE SIZE"      "CYLINDERS"        "FUEL CONSUMPTION" "EMISSIONS"
colnames(data)[colnames(data)=="ENGINE SIZE"]="X1"
colnames(data)[colnames(data)=="CYLINDERS"]="X2"
colnames(data)[colnames(data)=="FUEL CONSUMPTION"]="X3"
colnames(data)[colnames(data)=="EMISSIONS"]="Y"
data
## # A tibble: 22,556 × 4
##       X1    X2    X3     Y
##    <dbl> <dbl> <dbl> <dbl>
##  1   1.6     4   9.2   186
##  2   1.6     4   8.5   175
##  3   3.2     6  12.2   230
##  4   3.5     6  13.4   264
##  5   1.8     4  10     198
##  6   1.8     4   9.3   189
##  7   1.8     4   9.4   191
##  8   3       6  13.6   267
##  9   3.2     6  13.8   269
## 10   1.8     4  11.4   218
## # ℹ 22,546 more rows

Visualisasi Data

Visualisasi Data (Histogram)

hist(data$X1,xlab="Engine Size",main = "Histogram of Data Engine Size")

hist(data$X2,xlab="Cylinders",main = "Histogram of Data Cylinders")

hist(data$X3,xlab="Fuel Consumption",main = "Histogram of Data Fuel Consumption")

hist(data$Y,xlab="Emission",main = "Histogram of Data Emission")

Visualisasi dengan Ggplot

ggplot(data=data)+
  geom_point(mapping=aes(x=X1,y=Y))+
  scale_y_continuous(name="Emission")+
  scale_x_continuous(name="Engine Size")

ggplot(data=data)+
  geom_point(mapping=aes(x=X2,y=Y))+
  scale_y_continuous(name="Emission")+
  scale_x_continuous(name="Cylinders")

ggplot(data=data)+
  geom_point(mapping=aes(x=X3,y=Y))+
  scale_y_continuous(name="Emission")+
  scale_x_continuous(name="Fuel Consumption")

## Analisis Korelasi

cor.test(data$Y,data$X1,method="pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Y and data$X1
## t = 216.19, df = 22554, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8169911 0.8254876
## sample estimates:
##       cor 
## 0.8212849
cor.test(data$Y,data$X2,method="pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Y and data$X2
## t = 201.76, df = 22554, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.7974745 0.8067807
## sample estimates:
##       cor 
## 0.8021763
cor.test(data$Y,data$X3,method="pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Y and data$X3
## t = 350.31, df = 22554, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9170498 0.9211027
## sample estimates:
##       cor 
## 0.9191006

Ketiga variabel prediktor (Engine Size, Cylinders, dan Fuel Consumption) memiliki korelasi positif dengan variabel responnya (Emission)

multiple scatterplots

pairs(data[, c(1,2,3,4)])

Model Regresi Linear Sederhana

RLS1<-lm(data$Y~data$X1,data=data)
RLS1
## 
## Call:
## lm(formula = data$Y ~ data$X1, data = data)
## 
## Coefficients:
## (Intercept)      data$X1  
##       127.5         36.5
RLS2<-lm(data$Y~data$X2,data=data)
RLS2
## 
## Call:
## lm(formula = data$Y ~ data$X2, data = data)
## 
## Coefficients:
## (Intercept)      data$X2  
##       96.88        26.17
RLS3<-lm(data$Y~data$X3,data=data)
RLS3
## 
## Call:
## lm(formula = data$Y ~ data$X3, data = data)
## 
## Coefficients:
## (Intercept)      data$X3  
##       51.18        15.58

Model Regresi Linear Berganda

RLB<-lm(data$Y~data$X1+data$X2+data$X3,data=data)
RLB
## 
## Call:
## lm(formula = data$Y ~ data$X1 + data$X2 + data$X3, data = data)
## 
## Coefficients:
## (Intercept)      data$X1      data$X2      data$X3  
##      52.137        4.907        3.794       12.477

Persamaan Model

b0=RLS1$coefficients[1]
b1=RLS1$coefficients[2]
paste("y=",b0,"+",b1,"x1")
## [1] "y= 127.539392229203 + 36.5034237263047 x1"
b0=RLS2$coefficients[1]
b1=RLS2$coefficients[2]
paste("y=",b0,"+",b1,"x1")
## [1] "y= 96.8831685691243 + 26.1669967265535 x1"
b0=RLS3$coefficients[1]
b1=RLS3$coefficients[2]
paste("y=",b0,"+",b1,"x1")
## [1] "y= 51.1840952843917 + 15.582258272896 x1"
b0=RLB$coefficients[1]
b1=RLB$coefficients[2]
b2=RLB$coefficients[3]
b3=RLB$coefficients[4]
paste("y=",b0,"+",b1,"x1","+",b2,"x2","+",b3,"x3")
## [1] "y= 52.1373022115092 + 4.90675635227231 x1 + 3.7943783842298 x2 + 12.4768221228517 x3"

Persamaan RLS1

Intercept (β0): Interpretasi intercept (β0) adalah nilai Y ketika X sama dengan nol. Dalam konteks ini, intercept (β0) adalah 127.539392229203. Ini menunjukkan bahwa jika engine size tidak berpengaruh sama sekali (X1=0), skor emisi yang dihasilkan adalah 127.539392229203.

Intercept (β1): Koefisien regresi (β1) adalah 36.5034237263047. Ini menunjukkan bahwa untuk setiap tambahan satu satuan engine size (X1), kita dapat mengetahui peningkatan skor emisi sebesar 36.5034237263047. Dengan kata lain, ada hubungan positif antara engine size dan skor emisi.

Persamaan RLS2

Intercept (β0): Interpretasi intercept (β0) adalah nilai Y ketika X sama dengan nol. Dalam konteks ini, intercept (β0) adalah 96.8831685691243. Ini menunjukkan bahwa jika cylinders tidak berpengaruh sama sekali (X2=0), skor emisi yang dihasilkan adalah 96.8831685691243.

Intercept (β1): Koefisien regresi (β1) adalah 26.1669967265535. Ini menunjukkan bahwa untuk setiap tambahan satu satuan cylinders (X2), kita dapat mengetahui peningkatan skor emisi sebesar 26.1669967265535. Dengan kata lain, ada hubungan positif antara cylinders dan skor emisi.

Persamaan RLS3

Intercept (β0): Interpretasi intercept (β0) adalah nilai Y ketika X sama dengan nol. Dalam konteks ini, intercept (β0) adalah 51.1840952843917. Ini menunjukkan bahwa jika fuel consumption tidak berpengaruh sama sekali (X3=0), skor emisi yang dihasilkan adalah 51.1840952843917.

Intercept (β1): Koefisien regresi (β1) adalah 15.582258272896. Ini menunjukkan bahwa untuk setiap tambahan satu satuan fuel consumption (X3), kita dapat mengetahui peningkatan skor emisi sebesar 15.582258272896. Dengan kata lain, ada hubungan positif antara fuel consumption dan skor emisi.

Persamaan RLB

Intercept (β0): Interpretasi intercept (β0) adalah nilai Y ketika semua X sama dengan nol. Dalam konteks ini, intercept (β0) adalah 52.1373022115092. Ini menunjukkan bahwa jika engine size, cylinders, dan fuel consumption tidak berpengaruh sama sekali (X1,X2,X3=0), skor emisi yang dihasilkan adalah 52.1373022115092.

Intercept (β1): Koefisien regresi (β1) adalah 4.90675635227231. Ini menunjukkan bahwa untuk setiap tambahan satu satuan engine size (X1), kita dapat mengetahui peningkatan skor emisi sebesar 4.90675635227231 ketika variabel lainnya tetap konstan. Dengan kata lain, ada hubungan positif antara engine size dan skor emisi.

Intercept (β2): Koefisien regresi (β2) adalah 3.7943783842298. Ini menunjukkan bahwa untuk setiap tambahan satu satuan cylinders (X2), kita dapat mengetahui peningkatan skor emisi sebesar 3.7943783842298 ketika variabel lainnya tetap konstan. Dengan kata lain, ada hubungan positif antara cylinders dan skor emisi.

Intercept (β3): Koefisien regresi (β3) adalah 12.4768221228517. Ini menunjukkan bahwa untuk setiap tambahan satu satuan fuel consumption (X3), kita dapat mengetahui peningkatan skor emisi sebesar 12.4768221228517 ketika variabel lainnya tetap konstan. Dengan kata lain, ada hubungan positif antara fuel consumption dan skor emisi.

Uji Serentak dan Parsial

summary(RLB)
## 
## Call:
## lm(formula = data$Y ~ data$X1 + data$X2 + data$X3, data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -118.813   -8.547    0.731   12.131   80.802 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  52.1373     0.6287   82.93   <2e-16 ***
## data$X1       4.9068     0.2946   16.66   <2e-16 ***
## data$X2       3.7944     0.2031   18.68   <2e-16 ***
## data$X3      12.4768     0.0754  165.47   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.18 on 22552 degrees of freedom
## Multiple R-squared:  0.8604, Adjusted R-squared:  0.8604 
## F-statistic: 4.632e+04 on 3 and 22552 DF,  p-value: < 2.2e-16

Nilai P-Value 2.2e-16 < 0.05, maka tolak H0, sehingga semua variabel prediktor berpengaruh secara signifikan terhadap variabel responnya. Kemudian, nilai P-Value dari masing-masing variabel prediktor X1, X2,X3,X4=2e-16<0.05 menunjukkan bahwa masing-masing variabel prediktor berpengaruh secara signifikan terhadap variabel respon.

Uji Asumsi Klasik

Multikolinearitas

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
vif(RLB)
##  data$X1  data$X2  data$X3 
## 7.094652 6.263856 3.194749

Semua nilai VIF dari masing-masing variabel prediktor bernilai < 10, sehingga terbebas dari multikolinearitas.

Normalitas

plot(RLB)

Heteroskedastisitas

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(RLB)
## 
##  studentized Breusch-Pagan test
## 
## data:  RLB
## BP = 8195.6, df = 3, p-value < 2.2e-16

Autokorelasi

dwtest(RLB)
## 
##  Durbin-Watson test
## 
## data:  RLB
## DW = 1.5284, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0