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
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
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 (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)])
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
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
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"
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.
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.
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.
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.
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.
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