Selles projektis analüüsitakse teemat Fuel Consumption Ratings uute kergete tarbesõidukite kütusekulu ja CO2 heitkoguseid, tuginedes andmestikule, mis on saadud Kaggle-ist.
Andmestik sisaldab 946 erineva sõiduki kohta kogutud infot. Andmed annavad tervikliku ülevaate 2022. aastal Kandas müüdud sõidukite kütusekulu ja CO2 heitkogustest. Peamised järeldused näitavad, et turgu domineerivad bensiinimootoriga ja keskise suurusega mootoritega sõidukid. Keskkonnasõbralikud valikud on alles tõusuteel.
Andmestiku tunnuste kirjeldused asuvad failis FuelConsumptionRatings.csv Moodle-is.
Eesmärk on uurida, kas linnasõidu kütusekulu ületab maanteesõidu kütusekulu ning kas kombineeritud kütusekulu ja CO₂ heitkogused on omavahel positiivselt seotud.
Tööle püstitatud hüpoteesid on järgmised:
Uuringu käik etappidena:
Andmestiku esmane analüüs, et tutvuda tunnuste ja väärtustega. Kontrollida andmestiku terviklikkust ja eemaldada võimalikud vigased või puudulikud kirjed.
Tunnuste “City Fuel Consumption (L/100 km)” ja “Highway Fuel Consumption (L/100 km)” võrdlemine keskmiste ja jaotuste alusel, et testida esimest hüpoteesi.
Kombineeritud kütusekulu ja CO₂ heitkoguste vahelise korrelatsiooni arvutamine ja visualiseerimine, et testida teist hüpoteesi.
Tulemuste tõlgendamine ja hüpoteeside paikapidavuse hindamine.
Kasutatud meetodid:
Hajuvusdiagramm koos regressioonijoonega (geom_point() ja geom_smooth() funktsioonid).
Korrelatsioonikordaja arvutamine (cor() funktsioon).
Sobivus: Need meetodid olid asjakohased, kuna korrelatsioonikordaja võimaldab mõõta lineaarse seose tugevust ja hajuvusdiagramm aitab visualiseerida seose olemust. Reguleeritava regressioonijoone lisamine rõhutas selget positiivset seost.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Selleks, et Moodle faili andmeid lugeda peab eelnevalt .csv fail olema salvestatud samasse kausta, kus asub .rmd fail.
#
fuel_data <- read.csv("FuelConsumptionRatings.csv")
#
#
str(fuel_data)
## 'data.frame': 946 obs. of 15 variables:
## $ Model.Year : int 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 ...
## $ Make : chr "Acura" "Acura" "Acura" "Acura" ...
## $ Model : chr "ILX" "MDX SH-AWD" "RDX SH-AWD" "RDX SH-AWD A-SPEC" ...
## $ Vehicle.Class : chr "Compact" "SUV: Small" "SUV: Small" "SUV: Small" ...
## $ Engine.Size.L. : num 2.4 3.5 2 2 2 2 3 3 2 2 ...
## $ Cylinders : int 4 6 4 4 4 4 6 6 4 4 ...
## $ Transmission : chr "AM8" "AS10" "AS10" "AS10" ...
## $ Fuel.Type : chr "Z" "Z" "Z" "Z" ...
## $ Fuel.Consumption..City..L.100.km.: num 9.9 12.6 11 11.3 11.2 11.3 12.3 12.3 10 10.5 ...
## $ Fuel.Consumption.Hwy..L.100.km.. : num 7 9.4 8.6 9.1 8 8.1 9.4 9.8 7.2 7.7 ...
## $ Fuel.Consumption.Comb..L.100.km..: num 8.6 11.2 9.9 10.3 9.8 9.8 11 11.2 8.7 9.2 ...
## $ Fuel.Consumption.Comb..mpg.. : int 33 25 29 27 29 29 26 25 32 31 ...
## $ CO2.Emissions.g.km. : int 200 263 232 242 230 231 256 261 205 217 ...
## $ CO2.Rating : int 6 4 5 5 5 5 5 4 6 5 ...
## $ Smog.Rating : int 3 5 6 6 7 7 5 5 3 3 ...
head(fuel_data)
## Model.Year Make Model Vehicle.Class Engine.Size.L. Cylinders
## 1 2022 Acura ILX Compact 2.4 4
## 2 2022 Acura MDX SH-AWD SUV: Small 3.5 6
## 3 2022 Acura RDX SH-AWD SUV: Small 2.0 4
## 4 2022 Acura RDX SH-AWD A-SPEC SUV: Small 2.0 4
## 5 2022 Acura TLX SH-AWD Compact 2.0 4
## 6 2022 Acura TLX SH-AWD A-SPEC Compact 2.0 4
## Transmission Fuel.Type Fuel.Consumption..City..L.100.km.
## 1 AM8 Z 9.9
## 2 AS10 Z 12.6
## 3 AS10 Z 11.0
## 4 AS10 Z 11.3
## 5 AS10 Z 11.2
## 6 AS10 Z 11.3
## Fuel.Consumption.Hwy..L.100.km.. Fuel.Consumption.Comb..L.100.km..
## 1 7.0 8.6
## 2 9.4 11.2
## 3 8.6 9.9
## 4 9.1 10.3
## 5 8.0 9.8
## 6 8.1 9.8
## Fuel.Consumption.Comb..mpg.. CO2.Emissions.g.km. CO2.Rating Smog.Rating
## 1 33 200 6 3
## 2 25 263 4 5
## 3 29 232 5 6
## 4 27 242 5 6
## 5 29 230 5 7
## 6 29 231 5 7
#
#
sum(is.na(fuel_data))
## [1] 0
#
Puuduvaid väärtuseid on 0.
#
summary(fuel_data)
## Model.Year Make Model Vehicle.Class
## Min. :2022 Length:946 Length:946 Length:946
## 1st Qu.:2022 Class :character Class :character Class :character
## Median :2022 Mode :character Mode :character Mode :character
## Mean :2022
## 3rd Qu.:2022
## Max. :2022
## Engine.Size.L. Cylinders Transmission Fuel.Type
## Min. :1.200 Min. : 3.000 Length:946 Length:946
## 1st Qu.:2.000 1st Qu.: 4.000 Class :character Class :character
## Median :3.000 Median : 6.000 Mode :character Mode :character
## Mean :3.199 Mean : 5.668
## 3rd Qu.:3.800 3rd Qu.: 6.000
## Max. :8.000 Max. :16.000
## Fuel.Consumption..City..L.100.km. Fuel.Consumption.Hwy..L.100.km..
## Min. : 4.00 Min. : 3.900
## 1st Qu.:10.20 1st Qu.: 7.700
## Median :12.20 Median : 9.200
## Mean :12.51 Mean : 9.363
## 3rd Qu.:14.70 3rd Qu.:10.700
## Max. :30.30 Max. :20.900
## Fuel.Consumption.Comb..L.100.km.. Fuel.Consumption.Comb..mpg..
## Min. : 4.00 Min. :11.00
## 1st Qu.: 9.10 1st Qu.:22.00
## Median :10.80 Median :26.00
## Mean :11.09 Mean :27.25
## 3rd Qu.:12.90 3rd Qu.:31.00
## Max. :26.10 Max. :71.00
## CO2.Emissions.g.km. CO2.Rating Smog.Rating
## Min. : 94.0 Min. : 1.000 Min. :1.00
## 1st Qu.:213.2 1st Qu.: 3.000 1st Qu.:3.00
## Median :257.0 Median : 5.000 Median :5.00
## Mean :259.2 Mean : 4.539 Mean :4.95
## 3rd Qu.:300.8 3rd Qu.: 5.000 3rd Qu.:6.00
## Max. :608.0 Max. :10.000 Max. :7.00
#
#
unique_classes <- unique(fuel_data$Vehicle.Class)
unique_fuel_types <- unique(fuel_data$Fuel.Type)
unique_classes
## [1] "Compact" "SUV: Small"
## [3] "Mid-size" "Minicompact"
## [5] "SUV: Standard" "Two-seater"
## [7] "Subcompact" "Station wagon: Small"
## [9] "Station wagon: Mid-size" "Full-size"
## [11] "Pickup truck: Small" "Pickup truck: Standard"
## [13] "Minivan" "Special purpose vehicle"
unique_fuel_types
## [1] "Z" "X" "D" "E"
#
#
fuel_consumption_stats <- fuel_data %>%
summarise(
keskmine_linnas = mean(`Fuel.Consumption..City..L.100.km.`, na.rm = TRUE),
keskmine_maanteel = mean(`Fuel.Consumption.Hwy..L.100.km..`, na.rm = TRUE),
keskmine_kombineeritud = mean(`Fuel.Consumption.Comb..L.100.km..`, na.rm = TRUE),
standard_linnas = sd(`Fuel.Consumption..City..L.100.km.`, na.rm = TRUE),
standard_maanteel = sd(`Fuel.Consumption.Hwy..L.100.km..`, na.rm = TRUE),
standard_kombineeritud = sd(`Fuel.Consumption.Comb..L.100.km..`, na.rm = TRUE)
)
print(fuel_consumption_stats)
## keskmine_linnas keskmine_maanteel keskmine_kombineeritud standard_linnas
## 1 12.50645 9.363319 11.09207 3.452043
## standard_maanteel standard_kombineeritud
## 1 2.285125 2.876276
#
#
co2_stats <- fuel_data %>%
summarise(
keskmine_co2 = mean(`CO2.Emissions.g.km.`, na.rm = TRUE),
standard_co2 = sd(`CO2.Emissions.g.km.`, na.rm = TRUE)
)
print(co2_stats)
## keskmine_co2 standard_co2
## 1 259.1723 64.44315
#
#
ggplot(fuel_data, aes(x = `Fuel.Consumption.Comb..L.100.km..`, y = `CO2.Emissions.g.km.`)) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", color = "blue", se = FALSE) +
labs(title = "CO2 heitkoguste ja kütusekulu seos",
x = "Kombineeritud kütusekulu (L/100km)",
y = "CO2 heitkogused (g/km)")
## `geom_smooth()` using formula = 'y ~ x'
#
Graafiline analüüs (boxplot) linnasõidu ja maanteesõidu kütusekulu võrdlemiseks
#
ggplot(fuel_data, aes(x = factor(0), y = `Fuel.Consumption..City..L.100.km.`)) +
geom_boxplot(fill = "blue", alpha = 0.5) +
geom_boxplot(aes(x = factor(1), y = `Fuel.Consumption.Hwy..L.100.km..`), fill = "green", alpha = 0.5) +
labs(title = "Linnasõidu ja maanteesõidu kütusekulu võrdlus",
x = "Tüüp",
y = "Kütusekulu (L/100 km)") +
scale_x_discrete(labels = c("Linnasõit", "Maanteesõit"))
#
Keskmine kütusekulu linnasõidus ja maanteesõidus
#
keskmine_linn <- mean(fuel_data$`Fuel.Consumption..City..L.100.km.`, na.rm = TRUE)
keskmine_maantee <- mean(fuel_data$`Fuel.Consumption.Hwy..L.100.km..`, na.rm = TRUE)
print(paste("Keskmine linnasõidu kütusekulu:", round(keskmine_linn, 2), "L/100 km"))
## [1] "Keskmine linnasõidu kütusekulu: 12.51 L/100 km"
print(paste("Keskmine maanteesõidu kütusekulu:", round(keskmine_maantee, 2), "L/100 km"))
## [1] "Keskmine maanteesõidu kütusekulu: 9.36 L/100 km"
#
Graafiline analüüs (scatter plot) kombineeritud kütusekulu ja CO2 heitkoguste vahel
#
ggplot(fuel_data, aes(x = `Fuel.Consumption.Comb..L.100.km..`, y = `CO2.Emissions.g.km.`)) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", color = "red", se = TRUE) +
labs(title = "Kombineeritud kütusekulu ja CO₂ heitkoguste seos",
x = "Kombineeritud kütusekulu (L/100 km)",
y = "CO₂ heitkogused (g/km)")
## `geom_smooth()` using formula = 'y ~ x'
#
Arvutame korrelatsiooni kombineeritud kütusekulu ja CO2 heitkoguste vahel
#
cor_combined_co2 <- cor(fuel_data$`Fuel.Consumption.Comb..L.100.km..`, fuel_data$`CO2.Emissions.g.km.`, use = "complete.obs")
print(paste("Korrelatsioon kombineeritud kütusekulu ja CO2 heitkoguste vahel:", round(cor_combined_co2, 2)))
## [1] "Korrelatsioon kombineeritud kütusekulu ja CO2 heitkoguste vahel: 0.97"
#
Antud projektis analüüsiti Kanada 2022. aasta uute kergete tarbesõidukite kütusekulu ja CO₂ heitkoguseid, kasutades andmestikku Fuel Consumption Ratings. Uuringu eesmärk oli uurida, esiteks linnasõidu kütusekulu versus maanteesõidu kütusekulu ning CO2 heitkoguseid versus kombineeritud kptusekulu.
Seoste analüüs kinnitas mõlemad püstitatud hüpoteesid:
Linnasõidul on keskmiselt suurem kütusekulu (12.51 L/100 km) võrreldes maanteesõiduga (9.36 L/100 km). See näitab, et linnasõidu eripärad (sagedane pidurdamine ja kiirendamine, lühemad vahemaad) suurendavad kütusekulu.
Korrelatsioonikordaja 0.94 kinnitab tugevat positiivset seost, mis tähendab, et sõidukid, mis tarbivad rohkem kütust, paiskavad rohkem CO₂ heitmeid.Selline tulemus on ootuspärane, kuna suurem kütusekulu viitab suuremale energiatarbele, mis omakorda suurendab heitmeid.
Tulemused on rahuldavad ja vastavad ootustele. Analüüs annab selge ülevaate kütusekulu ja CO₂ heitkoguste vahelisest seosest ning aitab mõista, kuidas sõiduki erinevad omadused mõjutavad keskkonnaalast jalajälge ja kütusekasutust.
Kokkuvõttes pakub analüüs praktilisi teadmisi ja loob aluse paremate otsuste tegemiseks nii tootjate, tarbijate kui ka poliitikakujundajate tasandil.
Projekti jaoks on kasutatud programme RStudio ning R. Samuti on kasutatud RKE142 Moodle-i kursusel olevaid materjale.
Projektimall ja juhendid on saadud järgmistest linkidest: