Analiza opiera się na zbiorze danych Eggs, który zawiera
informacje o cenach wybranych produktów spożywczych. Głównym celem
poniższego raportu jest wizualna ocena różnic w poziomach cen oraz
powiązań między nimi (korelacji) w zależności od tego, czy trwał okres
wielkanocny, czy też nie.
# Wczytanie niezbędnych bibliotek i danych
library(dplyr)
library(corrplot)
Eggs <- read.csv("http://jolej.linuxpl.info/Eggs.csv", header=TRUE)
# Przygotowanie zmiennej grupującej (Okres)
Eggs$Period <- factor(
ifelse(Eggs$Easter == "Non Easter", "Okres bez Wielkanocy", "Okres Wielkanocny"),
levels = c("Okres bez Wielkanocy", "Okres Wielkanocny")
)
Poniższe wykresy pudełkowe (boxploty) pozwalają ocenić, jak kształtowały się ceny poszczególnych produktów z podziałem na okres świąteczny i resztę roku.
# Ustawienie siatki 2x3 dla wykresów pudełkowych
par(mfrow = c(2, 3), mar = c(4, 4, 3, 1), cex.axis = 0.9)
boxplot(Egg.Pr ~ Period, data = Eggs, main = "Cena Jaj", ylab = "Cena", col = c("lightblue", "orange"))
boxplot(Beef.Pr ~ Period, data = Eggs, main = "Cena Wołowiny", ylab = "Cena", col = c("lightblue", "orange"))
boxplot(Pork.Pr ~ Period, data = Eggs, main = "Cena Wieprzowiny", ylab = "Cena", col = c("lightblue", "orange"))
boxplot(Chicken.Pr ~ Period, data = Eggs, main = "Cena Kurczaka", ylab = "Cena", col = c("lightblue", "orange"))
boxplot(Cereal.Pr ~ Period, data = Eggs, main = "Cena Płatków", ylab = "Cena", col = c("lightblue", "orange"))
# Reset ustawień wykresów
par(mfrow = c(1, 1))
Analiza rozkładu cen na powyższych wykresach jasno pokazuje, że wykazują one zauważalne zmiany w zależności od występowania okresu wielkanocnego:
Kolejnym krokiem jest sprawdzenie, jak poszczególne produkty wpływają na siebie cenowo i czy te relacje (“chodzenie w parze”) zmieniają się podczas świąt.
# Wyodrębnienie kolumn z cenami
price_cols <- c("Egg.Pr", "Beef.Pr", "Pork.Pr", "Chicken.Pr", "Cereal.Pr")
# Grupy świąteczne
easter_period_groups <- c("Easter", "Pre Easter", "Post Easter")
# Obliczenie macierzy korelacji
corr_non_easter <- cor(Eggs %>%
filter(Easter == "Non Easter") %>%
select(all_of(price_cols)))
corr_easter_period <- cor(Eggs %>%
filter(Easter %in% easter_period_groups) %>%
select(all_of(price_cols)))
# Wyświetlenie wykresów obok siebie
par(mfrow = c(1, 2))
# Wykres 1
corrplot(corr_non_easter,
method = "color",
type = "upper",
order = "hclust",
addCoef.col = "black",
tl.col = "black",
diag = FALSE,
mar = c(0, 0, 2, 0),
title = "Korelacje - Okres bez Wielkanocy")
# Wykres 2
corrplot(corr_easter_period,
method = "color",
type = "upper",
order = "hclust",
addCoef.col = "black",
tl.col = "black",
diag = FALSE,
mar = c(0, 0, 2, 0),
title = "Korelacje - Okres Wielkanocny")
par(mfrow = c(1, 1))
Spoglądając na zależności między cenami różnych produktów, można zauważyć, że relacje te zmieniają się niezwykle wyraźnie między okresem wielkanocnym a resztą roku: