Аналітичний звіт

Author

Максим Яновський

Published

May 15, 2024

knitr::opts_chunk$set()

# Встановлення бібліотек, якщо вони ще не встановлені
if (!require("ggplot2", quietly = TRUE)) install.packages("ggplot2", dependencies = TRUE)
if (!require("dplyr", quietly = TRUE)) install.packages("dplyr", dependencies = TRUE)

Присоединяю пакет: 'dplyr'
Следующие объекты скрыты от 'package:stats':

    filter, lag
Следующие объекты скрыты от 'package:base':

    intersect, setdiff, setequal, union
if (!require("kableExtra", quietly = TRUE)) install.packages("kableExtra", dependencies = TRUE)

Присоединяю пакет: 'kableExtra'
Следующий объект скрыт от 'package:dplyr':

    group_rows
library(ggplot2)
library(dplyr)
library(kableExtra)
library(knitr)
# Завантаження даних
data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/autos/imports-85.data", header = FALSE, na.strings = "?")

# Встановлення назв стовпців
names(data) <- c("symboling", "normalized_losses", "make", "fuel_type", "aspiration", "num_of_doors", 
                 "body_style", "drive_wheels", "engine_location", "wheel_base", "length", "width", "height", 
                 "curb_weight", "engine_type", "num_of_cylinders", "engine_size", "fuel_system", "bore", "stroke", 
                 "compression_ratio", "horsepower", "peak_rpm", "city_mpg", "highway_mpg", "price")

# Перетворення стовпців і обробка NA
data$price <- as.numeric(as.character(data$price))
data$horsepower <- as.numeric(as.character(data$horsepower))
data$city_mpg <- as.numeric(as.character(data$city_mpg))
data$highway_mpg <- as.numeric(as.character(data$highway_mpg))
data$price[is.na(data$price)] <- mean(data$price, na.rm = TRUE)
data$horsepower[is.na(data$horsepower)] <- mean(data$horsepower, na.rm = TRUE)
data$city_mpg[is.na(data$city_mpg)] <- mean(data$city_mpg, na.rm = TRUE)
data$highway_mpg[is.na(data$highway_mpg)] <- mean(data$highway_mpg, na.rm = TRUE)

Вивід таблиці (загальні данні)

summary_table <- summary(data)

# Використання kable і kableExtra для кращого відображення таблиці
summary_table %>%
  kable("html", table.attr = "class='scrollable_table'", caption = "Підсумкові статистики даних") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = F, fixed_thead = T)
Підсумкові статистики даних
symboling normalized_losses make fuel_type aspiration num_of_doors body_style drive_wheels engine_location wheel_base length width height curb_weight engine_type num_of_cylinders engine_size fuel_system bore stroke compression_ratio horsepower peak_rpm city_mpg highway_mpg price
Min. :-2.0000 Min. : 65 Length:205 Length:205 Length:205 Length:205 Length:205 Length:205 Length:205 Min. : 86.60 Min. :141.1 Min. :60.30 Min. :47.80 Min. :1488 Length:205 Length:205 Min. : 61.0 Length:205 Min. :2.54 Min. :2.070 Min. : 7.00 Min. : 48.0 Min. :4150 Min. :13.00 Min. :16.00 Min. : 5118
1st Qu.: 0.0000 1st Qu.: 94 Class :character Class :character Class :character Class :character Class :character Class :character Class :character 1st Qu.: 94.50 1st Qu.:166.3 1st Qu.:64.10 1st Qu.:52.00 1st Qu.:2145 Class :character Class :character 1st Qu.: 97.0 Class :character 1st Qu.:3.15 1st Qu.:3.110 1st Qu.: 8.60 1st Qu.: 70.0 1st Qu.:4800 1st Qu.:19.00 1st Qu.:25.00 1st Qu.: 7788
Median : 1.0000 Median :115 Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character Median : 97.00 Median :173.2 Median :65.50 Median :54.10 Median :2414 Mode :character Mode :character Median :120.0 Mode :character Median :3.31 Median :3.290 Median : 9.00 Median : 95.0 Median :5200 Median :24.00 Median :30.00 Median :10595
Mean : 0.8341 Mean :122 NA NA NA NA NA NA NA Mean : 98.76 Mean :174.0 Mean :65.91 Mean :53.72 Mean :2556 NA NA Mean :126.9 NA Mean :3.33 Mean :3.255 Mean :10.14 Mean :104.3 Mean :5125 Mean :25.22 Mean :30.75 Mean :13207
3rd Qu.: 2.0000 3rd Qu.:150 NA NA NA NA NA NA NA 3rd Qu.:102.40 3rd Qu.:183.1 3rd Qu.:66.90 3rd Qu.:55.50 3rd Qu.:2935 NA NA 3rd Qu.:141.0 NA 3rd Qu.:3.59 3rd Qu.:3.410 3rd Qu.: 9.40 3rd Qu.:116.0 3rd Qu.:5500 3rd Qu.:30.00 3rd Qu.:34.00 3rd Qu.:16500
Max. : 3.0000 Max. :256 NA NA NA NA NA NA NA Max. :120.90 Max. :208.1 Max. :72.30 Max. :59.80 Max. :4066 NA NA Max. :326.0 NA Max. :3.94 Max. :4.170 Max. :23.00 Max. :288.0 Max. :6600 Max. :49.00 Max. :54.00 Max. :45400
NA NA's :41 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA's :4 NA's :4 NA NA NA's :2 NA NA NA
# Обробка і вивід середніх значень
avg_params <- data %>%
  group_by(fuel_type) %>%
  summarize(avg_price = mean(price, na.rm = TRUE),
            avg_horsepower = mean(horsepower, na.rm = TRUE),
            avg_city_mpg = mean(city_mpg, na.rm = TRUE),
            avg_highway_mpg = mean(highway_mpg, na.rm = TRUE))

Вивід таблиці з даними

kable(avg_params, "html", table.attr = "class='scrollable_table'", caption = "Середні значення параметрів автомобілів за типом палива") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = F, fixed_thead = T)
Середні значення параметрів автомобілів за типом палива
fuel_type avg_price avg_horsepower avg_city_mpg avg_highway_mpg
diesel 15838.15 84.4500 30.30000 34.75000
gas 12922.69 106.3974 24.67027 30.31892

Візуалізація данних

1.Залежність витрати палива в місті від витрати палива на трасі

# Візуалізація залежності витрати палива в місті від витрати палива на трасі
ggplot(data, aes(x = city_mpg, y = highway_mpg)) +
  geom_point(color = "green") +
  geom_smooth(method = "lm", formula = y ~ x, show.legend = FALSE, color = "blue") +
  labs(x = "Витрата палива в місті (mpg)",
       y = "Витрата палива на трасі (mpg)") +
  theme_minimal()

2.Залежність ціни автомобілів від довжини

ggplot(data, aes(x = length, y = price)) +
  geom_point(color = "orange") +
  geom_smooth(method = "lm", formula = y ~ x, show.legend = FALSE, color = "purple") +
  labs(x = "Довжина",
       y = "Ціна") +
  theme_minimal()

3.Розподіл потужності двигуна

ggplot(data, aes(x = horsepower)) +
  geom_histogram(binwidth = 10, fill = "lightgreen", color = "black") +
  labs(x = "Потужність",
       y = "Частота") +
  theme_minimal()

4.Розподіл цін автомобілів за типом палива

ggplot(data, aes(x = fuel_type, y = price)) +
  geom_boxplot() +
  labs(x = "Тип палива",
       y = "Ціна") +
  theme_minimal()

5.Залежність ціни автомобіля від потужності двигуна

# Візуалізація залежності ціни від потужності двигуна
ggplot(data, aes(x = horsepower, y = price)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", formula = y ~ x, show.legend = FALSE, color = "red") +
  labs(x = "Потужність двигуна",
       y = "Ціна") +
  theme_minimal()

6.Середня ціна автомобілів за типом палива

ggplot(avg_params, aes(x = fuel_type)) +
  geom_col(aes(y = avg_price), fill = "blue") +
  labs(x = "Тип палива", y = "Середня ціна") +
  theme_minimal()

7.Середня потужність автомобілів за типом палива

ggplot(avg_params, aes(x = fuel_type)) +
  geom_col(aes(y = avg_horsepower), fill = "green") +
  labs(x = "Тип палива", y = "Середня потужність") +
  theme_minimal()

8.Середня міська витрата палива за типом палива

ggplot(avg_params, aes(x = fuel_type)) +
  geom_col(aes(y = avg_city_mpg), fill = "orange") +
  labs(title = "**Середня міська витрата палива за типом палива**", x = "Тип палива", y = "Середня міська витрата (mpg)") +
  theme_minimal() +
  theme(plot.title = element_text(size = 14, hjust = 0.5))

9.Середня витрата палива на трасі за типом палива

ggplot(avg_params, aes(x = fuel_type)) +
  geom_col(aes(y = avg_highway_mpg), fill = "purple") +
  labs(x = "Тип палива", y = "Середня витрата на трасі (mpg)") +
  theme_minimal()