Analiza danych: mtcars

Author

Mikołaj Spyra

Wstęp

Zbiór danych mtcars zawiera dane techniczne takie jak waga,moc silnika czy liczba cylindrów dla 32 modeli samochodów. Na tym zbiorze przeprowadziłem wielowymiarową analizę danych.

Przegląd danych i biblioteki

W pracy użyłem bibliotek widocznych poniżej. Widoczna jest też struktura zbioru danych:

Code
library(ggplot2)
library(dplyr)
library(summarytools)
#
data("mtcars")
head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
Code
summary(mtcars)
      mpg             cyl             disp             hp       
 Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
 1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
 Median :19.20   Median :6.000   Median :196.3   Median :123.0  
 Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
 3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
 Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
      drat             wt             qsec             vs        
 Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
 1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
 Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
 Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
 3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
 Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
       am              gear            carb      
 Min.   :0.0000   Min.   :3.000   Min.   :1.000  
 1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
 Median :0.0000   Median :4.000   Median :2.000  
 Mean   :0.4062   Mean   :3.688   Mean   :2.812  
 3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
 Max.   :1.0000   Max.   :5.000   Max.   :8.000  

Analiza

Zużycie paliwa

Zużycie paliwa a liczba cylindrów

Code
ggplot(mtcars, aes(x = factor(cyl), y = mpg, fill = factor(cyl))) +
  geom_boxplot() +
  labs(title = "Zużycie paliwa a liczba cylindrów", x = "Cylindry", y = "Zużycie paliwa (mpg)") +
  theme_minimal()

Wniosek: Liczba mil przejechanych na galonie jest coraz mniejsza wraz ze wzrostem liczby cylindrów. Rozstępy międzykwartylowe sugerują że samochody z mniejszą liczbą cyl., wykazują większą zmienność zużycia.

Zużycie paliwa a masa samochodów

Code
ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point() +
  geom_smooth(method = "lm", color = "red") +
  labs(title = "Masa a zużycie paliwa", x = "Masa (wt)", y = "Zużycie paliwa (mpg)") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

Wniosek: Da się zauważyć silną negatywna korelację między liczbą mil przejechanych na galonie a wagą samochodu.

Zużycie paliwa a rodzaj skrzyni biegów

Code
ggplot(mtcars, aes(x = factor(am), y = mpg, fill = factor(am))) +
  geom_boxplot() +
  scale_fill_manual(values = c("darkorange", "deepskyblue")) +
  labs(title = "Zużycie paliwa a rodzaj skrzyni biegów", x = "Rodzaj skrzyni biegów (0 = automatyczna, 1 = manualna)", y = "Zużycie paliwa (mpg)") +
  theme_minimal()

Wniosek: Liczba mil na galon jest nieco wyższa dla samochodów z skrzynią manualną.

Moc silnika

Moc silnika a zużycie paliwa

Code
ggplot(mtcars, aes(x = hp, y = mpg)) +
  geom_point(aes(color = wt), size = 3) +
  labs(title = "Moc silnika a zużycie paliwa", x = "Moc (hp)", y = "Zużycie paliwa (mpg)") +
  theme_minimal()

Wniosek: Wzrost mocy silnika jest skorelowany z mniejszą liczbą mil przejechanych na galonie. Masa pojazdu pełni rolę dodatkowego czynnika wpływającego na rozrzut.

Rozkład mocy silników

Code
ggplot(mtcars, aes(x = hp)) +
  geom_histogram(binwidth = 20, fill = "darkgreen", color = "white") +
  labs(title = "Rozkład mocy silników", x = "Moc (hp)", y = "Częstość") +
  theme_minimal()

Wniosek: Najwięcej silników mieści się w przedziale 100-150 hp, a rozkład jest prawostonnie skośny.

Relacja między liczbą cylindrów a mocą

Code
ggplot(mtcars, aes(x = factor(cyl), y = hp, fill = factor(cyl))) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Spectral") +
  labs(title = "Liczba cylindrów a moc silnika", x = "Cylindry", y = "Moc (hp)") +
  theme_minimal()

Wniosek: Większa liczba cylindrów jest skorelowana z wyższą mocą silnika, atypowe modele wykazują wartości odstające.

Masa samochodów

Rozkład masy samochodów

Code
ggplot(mtcars, aes(x = wt)) +
  geom_histogram(binwidth = 0.5, fill = "steelblue", color = "black") +
  labs(title = "Rozkład masy samochodów", x = "Masa (wt)", y = "Częstość") +
  theme_minimal()

Wniosek: Rozkład masy jest prawostronnie skośny, dominują samochody o wadze między 2.5 a 3.5 tysięcy funtów.

Korelacja masy i rodzaju skrzyni biegów

Code
ggplot(mtcars, aes(x = factor(am), y = wt, fill = factor(am))) +
  geom_boxplot() +
  scale_fill_manual(values = c("violetred1", "cyan2")) +
  labs(title = "Masa samochodu a rodzaj skrzyni biegów", x = "Rodzaj skrzyni biegów (0 = automatyczna, 1 = manualna)", y = "Masa (wt)") +
  theme_minimal()

Wniosek: Skrzynia automatyczna umieszoczna jest częściej w cięższych autach.

Korelacja liczby biegów z masą

Code
ggplot(mtcars, aes(x = factor(gear), y = wt, fill = factor(gear))) +
  geom_boxplot() +
  scale_fill_manual(values = c("tomato", "gold", "springgreen3")) +
  labs(title = "Liczba biegów a masa samochodu", x = "Biegi", y = "Masa (wt)") +
  theme_minimal()

Wniosek: Samochody o mniejszej iczbie biegów są przeciętnie cięższe.

Inne relacje między zmiennymi

Zużycie paliwa w zależności od relacji masy i mocy

Code
ggplot(mtcars, aes(x = wt/hp, y = mpg)) +
  geom_point(color = "magenta4", size = 3) +
  geom_smooth(method = "lm", color = "orangered") +
  labs(title = "Relacja masy do mocy a zużycie paliwa", x = "Masa/moc (wt/hp)", y = "Zużycie paliwa (mpg)") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

Zużycie paliwa w zależności od rodzaju skrzyni biegów

Code
ggplot(mtcars, aes(x = factor(am), y = mpg, fill = factor(vs))) +
  geom_boxplot() +
  labs(title = "Zużycie paliwa w zależności od rodzaju skrzyni biegów ",
       x = "Rodzaj skrzyni biegów (0=Automat, 1=Manual)",
       y = "Zużycie paliwa (mpg)") +
  theme_minimal()

Wniosek: Samochody ze skrzynią manualną wykazują przeciętnie wyższe zużycie paliwa niż automaty

Gęstość mocy a liczba cylindrów

Code
ggplot(mtcars, aes(x = hp, fill = factor(cyl))) +
  geom_density(alpha = 0.6) +
  labs(title = "Gęstość rozkładu mocy w zależności od liczby cylindrów",
       x = "Moc (hp)", y = "Gęstość") +
  theme_minimal()

Wniosek: Samochody o różnej liczbie cylindrów posiadają bardzo odmienne rozkłady mocy.

Rozkład liczby cylindrów w grupach o różnej mocy

Code
mtcars %>% 
  mutate(hp_group = cut(hp, breaks = c(0, 100, 200, max(hp)), labels = c("Low", "Medium", "High"))) %>% 
  group_by(hp_group, cyl) %>% 
  count()
# A tibble: 5 × 3
# Groups:   hp_group, cyl [5]
  hp_group   cyl     n
  <fct>    <dbl> <int>
1 Low          4     9
2 Medium       4     2
3 Medium       6     7
4 Medium       8     7
5 High         8     7

Wniosek: Rozkład liczby cylindrów w grupach o różnej mocy wskazuje na to, że większa moc jest charakterystyczna dla większej liczby cylindrów silnika.

Podsumowanie

Przeprowadzona przeze mnie analiza zestawu danych mtcars wyjawiła ważne relacje między zmiennymi które opisują pojazdy. Możemy wyciągnąć parę najważniejszych wniosków:

  1. Zużycie paliwa: Zużycie łączy się z liczbą cylindrów, masą pojazdu i rodzajem skrzyni biegów. Samochody z manualną skrzynią biegów i mniejszą masą przeciętnie wykazują niższe zużycie paliwa.
  2. Moc silnika:Rozkład mocy jest skośny, przeważają pojazy o średnich parametrach. Większa liczba cylindrów i większa moc są charakterystyczne dla bardziej zaawansowanych modeli.
  3. Masa samochodów: Występuje korelacja większych mas z automatycznymi skrzyniami biegów oraz mniejszą liczbą biegów.Taka zależność pokazuje pojazdy cechujące się wygodą czy trwałością.

Rezultaty mojej analizy mogą pomóc w lepszym zrozumieniu parametrów i zależności technicznych przy zakupie bądź projektowaniu samochodów.