Παρουσίαση Dataset

Το dataset που χρησιμοποιήθηκε για την εργασία αυτή είναι:Link for DataSet

Περιγραφή του DataSet

Το συγκεκριμένο Set δεδομένων εστιάζει στην ιστορική ανάλυση ενός καταστήματος ηλεκτρονικού εμπορείου , αξιολογώντας την απόδοση του καταστήματος και ανακαλύπτοντας τάσης των πωλήσεων. Σκοπός της ανάλυσης των δεδομένων αυτών είναι η διαμόρφωση ακατέργαστων δεδομένων πωλήσεων σε ένα οργανωμένο αρχείο για την διαμόρφωση συγκεκριμένων στρατιγικών αποφάσεων.

Η επιλογή του Set δεδομένων αυτού αποτελεί το κατάλληλο παράδειγμα , για την ανάλυση και ταυτοποίηση βασικών μοτίβων ανάπτυξης, εύρεση κερδοφόρων προϊόντων και πιθανών βελτιώσεις το επιχειρηματικό μοντέλο.

Πιθανά Ερωτήματα

  • Περίοδος με περισσότερες πωλήσεις
  • Περιοχή με το περισσότερο τζίρο ή κέρδος
  • Κατηγορία με το περισσότερο τζίρο ή κέρδος
  • Συνολικός τσίρος και κέρδος του καταστήματος

Μεταβλητές

  • Order Date (DateTime)
  • Product Name (String)
  • Category (String)
  • Region (String)
  • Quantity (Number) (1-9)
  • Sales (Number) (51-10.8k)
  • Profit (Number) (6.97-2.95k)

Κώδικας για φώρτωση δεδομένων

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── 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
library(lubridate)
library(scales)
## 
## Attaching package: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
library(knitr)

ecommerce_sales_data <- read.csv("C:/Users/User/Downloads/archive (1)/ecommerce_sales_data.csv")

ecommerce_sales_data$Order.Date <- as.Date(ecommerce_sales_data$Order.Date)
ecommerce_sales_data <- ecommerce_sales_data %>%
  mutate(
    Profit_Margin = Profit / Sales,
    Month = floor_date(Order.Date, "month")
  )

Υπολογισμός στατιστικών μέτρων για τις Πωλήσεις ανά Κατηγορία

stats_table <- ecommerce_sales_data %>%
  group_by(Category) %>%
  summarise(
    Μέση_Τιμή = mean(Sales),
    Διάμεσος = median(Sales),
    Τυπική_Απόκλιση = sd(Sales),
    Ελάχιστο = min(Sales),
    Μέγιστο = max(Sales)
  )


knitr::kable(stats_table, digits = 2, caption = "Μέτρα Κεντρικής Τάσης και Διασποράς ανά Κατηγορία")
Μέτρα Κεντρικής Τάσης και Διασποράς ανά Κατηγορία
Category Μέση_Τιμή Διάμεσος Τυπική_Απόκλιση Ελάχιστο Μέγιστο
Accessories 3031.83 2336 2410.91 56 10782
Electronics 3057.45 2344 2470.75 51 10773
Office 3065.03 2440 2410.81 75 10656
ggplot(ecommerce_sales_data, aes(x = Category, y = Sales, fill = Category)) +
  geom_boxplot(outlier.color = "red", outlier.shape = 8) +
  labs(title = "Οπτικοποίηση Διασποράς Πωλήσεων ανά Κατηγορία",
       subtitle = "Οι κόκκινοι αστερίσκοι αντιπροσωπεύουν ακραίες τιμές (Outliers)",
       x = "Κατηγορία", y = "Αξία Πωλήσεων (€)") +
  theme_minimal()

Με την χρήση του boxplot αυτού είναι δυνατόν να παρατηρηθεί πως η κατηγορία των Electronics έχει την υψηλότερη τυπική απόκλιση , γεγονός που υποδεικνύει ότι οι πωλήσεις δεν είναι ομοιόμορφες , αλλά επηρεάζονται από ακριβά προϊόντα (outliers). Παρόλλα αυτά δεν είναι αρκετά αυτά τα προϊόντα, ώστε η κατηγορίων των Electronics να ξεπεράση των μέσο όρο αξίας πωλήσεων των προίοντων κατηγορίας Office .

Υπολογισμός του συντελεστή συσχέτισης μεταξύ Πωλήσεων (Sales) και Κέρδους (Profit)

correlation_sales_profit <- cor(ecommerce_sales_data$Sales, ecommerce_sales_data$Profit)


print(paste("Ο συντελεστής συσχέτισης Πωλήσεων - Κέρδους είναι:", round(correlation_sales_profit, 2)))
## [1] "Ο συντελεστής συσχέτισης Πωλήσεων - Κέρδους είναι: 0.83"
# 2. Οπτικοποίηση της σχέσης με Διάγραμμα Διασποράς (Scatter Plot)
ggplot(ecommerce_sales_data, aes(x = Sales, y = Profit)) +
  geom_point(alpha = 0.5, color = "blue") +      
  geom_smooth(method = "lm", color = "red") +    
  labs(title = "Συσχέτιση μεταξύ Πωλήσεων και Κέρδους",
       x = "Αξία Πωλήσεων (€)", 
       y = "Καθαρό Κέρδος (€)") +
  theme_minimal()

Από τον υπολογισμό του συντελεστή συσχέτησης (r = 0.83), συμπαιρένουμε πως υπάρχει μια ισχυρή θετική γραμμική σχέση. Αυτό σημαίνει πρακτικά πως η αύξηση του τζίρου θα οδηγήσει σε υψηλότερα καθαρά κέρδη, χωρίς να παρατηρούνται δυσανάλογα κόστοι.

Επιπλεόν Γραφήματα

Οπτικοπίσηση Ιστογράμματος

ggplot(data = ecommerce_sales_data, aes(x = Sales)) +
  geom_histogram(binwidth = 300, fill = "lightblue", color = "black") +
  labs(title = "Κατανομή Αξίας Πωλήσεων",
       x = "Αξία Πωλήσεων",
       y= "Aριθμός Παραγγελιών") +
  theme_minimal()

Το ιστόγραμμα αυτό δείχνει πως η κατανομή των παραγγελιών βρίσκεται συγκεντρωμένη στο εύρως της αξίας (300 - 1500), πράγμα που φανερώνει πως το μεγαλύτερο ποσοστό των παραγγελιών που διαχειρίζεται το κατάστημα είναι μικρότερης αξίας.

Οπτικοπίσηση bar chart

ggplot(data = ecommerce_sales_data, aes(x = Category, y = Profit, fill = Category)) +
  geom_col() +
  labs(
    title = "Συνολικές Πωλήσεις ανά Κατηγορία ",
    x = "Κατηγορίες ",
    y = "Συνολικό καθαρό κέρδος"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))

Τέλος μέσο του διαγράμματος φαίνεται πως η κατηγορία “Electronics” έχει επιφέρει το μεγαλύτερο καθαρό κέρδος στην επιχείρηση, περισσότερο από κάθε άλλη κατηγορία. Επιπλέον το “Office” έχει επιφέρει τα λιγότερα κέρδη .

Session Info

sessionInfo()
## R version 4.5.2 (2025-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Greek_Greece.utf8  LC_CTYPE=Greek_Greece.utf8   
## [3] LC_MONETARY=Greek_Greece.utf8 LC_NUMERIC=C                 
## [5] LC_TIME=Greek_Greece.utf8    
## 
## time zone: Europe/Athens
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] knitr_1.51      scales_1.4.0    lubridate_1.9.5 forcats_1.0.1  
##  [5] stringr_1.6.0   dplyr_1.2.0     purrr_1.2.1     readr_2.2.0    
##  [9] tidyr_1.3.2     tibble_3.3.1    ggplot2_4.0.2   tidyverse_2.0.0
## 
## loaded via a namespace (and not attached):
##  [1] Matrix_1.7-4       gtable_0.3.6       jsonlite_2.0.0     compiler_4.5.2    
##  [5] tidyselect_1.2.1   jquerylib_0.1.4    splines_4.5.2      yaml_2.3.12       
##  [9] fastmap_1.2.0      lattice_0.22-7     R6_2.6.1           labeling_0.4.3    
## [13] generics_0.1.4     bslib_0.10.0       pillar_1.11.1      RColorBrewer_1.1-3
## [17] tzdb_0.5.0         rlang_1.1.7        stringi_1.8.7      cachem_1.1.0      
## [21] xfun_0.56          sass_0.4.10        S7_0.2.1           timechange_0.4.0  
## [25] cli_3.6.5          mgcv_1.9-3         withr_3.0.2        magrittr_2.0.4    
## [29] digest_0.6.39      grid_4.5.2         rstudioapi_0.18.0  hms_1.1.4         
## [33] nlme_3.1-168       lifecycle_1.0.5    vctrs_0.7.1        evaluate_1.0.5    
## [37] glue_1.8.0         farver_2.1.2       rmarkdown_2.30     tools_4.5.2       
## [41] pkgconfig_2.0.3    htmltools_0.5.9