title: “Analysis of Video Games” author: “Anastasios Politis” output: pdf_document —


Βιβλιοθήκες

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

Video Game Sales – Εισαγωγή

📌 Περιγραφή του Dataset και της Πηγής του

Το dataset περιλαμβάνει δεδομένα για τις πωλήσεις 16.598 βιντεοπαιχνιδιών σε διαφορετικές πλατφόρμες και περιοχές.
Πηγή: Kaggle (https://www.kaggle.com/datasets/gregorut/videogame-sales-with-ratings)

Περιγραφή Μεταβλητών

Οι βασικές μεταβλητές του dataset είναι:

Παρακάτω γίνεται χρήση των συναρτήσεων str() και summary() για να παρουσιαστεί η δομή και στατιστική επισκόπηση του dataset.


🔍 Πιθανά Επιχειρηματικά Ερωτήματα

Πλατφόρμες & Πωλήσεις

  • Ποιες κονσόλες (π.χ. PlayStation, Xbox, Nintendo) έχουν τις μεγαλύτερες πωλήσεις;
  • Πώς διαφέρουν οι πωλήσεις ανά πλατφόρμα και αγορά;

Γεωγραφική Ανάλυση

  • Ποιες περιοχές (Β. Αμερική, Ευρώπη, Ιαπωνία) συμβάλλουν περισσότερο στις συνολικές πωλήσεις;
  • Υπάρχουν γεωγραφικές διαφοροποιήσεις στις προτιμήσεις των καταναλωτών;

Τάσεις Αγοράς & Προτιμήσεις Καταναλωτών

  • Ποια είδη παιχνιδιών (π.χ. Action, Sports, RPG) είναι τα πιο επιτυχημένα;
  • Πώς έχουν αλλάξει οι προτιμήσεις των gamers με την πάροδο των ετών;

Επιρροή Εκδοτών (Publishers)

  • Ποιες εταιρείες έχουν τα πιο επιτυχημένα παιχνίδια;
  • Πώς ο publisher επηρεάζει τις πωλήσεις ενός παιχνιδιού;

Χρονική Περίοδος Κυκλοφορίας

  • Ποιες χρονικές περίοδοι είναι οι καλύτερες για την κυκλοφορία νέων τίτλων;
  • Υπάρχει συσχέτιση μεταξύ έτους κυκλοφορίας και εμπορικής επιτυχίας;

🎯 Επιχειρηματική Χρησιμότητα της Ανάλυσης

  • Κατανόηση της Αγοράς:
    Οι εταιρείες gaming μπορούν να αναγνωρίσουν τις προτιμήσεις των παικτών και να προβλέψουν ποιες πλατφόρμες και είδη παιχνιδιών είναι πιο δημοφιλή.

  • Ανάπτυξη Στρατηγικών Μάρκετινγκ:
    Οι εκδότες μπορούν να προσαρμόσουν τις στρατηγικές τους βάσει γεωγραφικών πωλήσεων, βελτιστοποιώντας τις καμπάνιες τους.

  • Πρόβλεψη Τάσεων & Επιτυχιών:
    Η προγνωστική ανάλυση μπορεί να εντοπίσει μοτίβα που βοηθούν στην πρόβλεψη εμπορικής επιτυχίας μελλοντικών τίτλων.

  • Βελτιστοποίηση Κυκλοφοριών:
    Η ανάλυση αποκαλύπτει ποιες περίοδοι είναι κατάλληλες για κυκλοφορία παιχνιδιών, αυξάνοντας τις πωλήσεις.

Εισαγωγή Δεδομένων

vgsales <- read.csv("vgsales.csv")
head(vgsales)
##   Rank                     Name Platform Year        Genre Publisher NA_Sales
## 1    1               Wii Sports      Wii 2006       Sports  Nintendo    41.49
## 2    2        Super Mario Bros.      NES 1985     Platform  Nintendo    29.08
## 3    3           Mario Kart Wii      Wii 2008       Racing  Nintendo    15.85
## 4    4        Wii Sports Resort      Wii 2009       Sports  Nintendo    15.75
## 5    5 Pokemon Red/Pokemon Blue       GB 1996 Role-Playing  Nintendo    11.27
## 6    6                   Tetris       GB 1989       Puzzle  Nintendo    23.20
##   EU_Sales JP_Sales Other_Sales Global_Sales
## 1    29.02     3.77        8.46        82.74
## 2     3.58     6.81        0.77        40.24
## 3    12.88     3.79        3.31        35.82
## 4    11.01     3.28        2.96        33.00
## 5     8.89    10.22        1.00        31.37
## 6     2.26     4.22        0.58        30.26

Δομή δεδομένων

str(vgsales)
## 'data.frame':    16598 obs. of  11 variables:
##  $ Rank        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Name        : chr  "Wii Sports" "Super Mario Bros." "Mario Kart Wii" "Wii Sports Resort" ...
##  $ Platform    : chr  "Wii" "NES" "Wii" "Wii" ...
##  $ Year        : chr  "2006" "1985" "2008" "2009" ...
##  $ Genre       : chr  "Sports" "Platform" "Racing" "Sports" ...
##  $ Publisher   : chr  "Nintendo" "Nintendo" "Nintendo" "Nintendo" ...
##  $ NA_Sales    : num  41.5 29.1 15.8 15.8 11.3 ...
##  $ EU_Sales    : num  29.02 3.58 12.88 11.01 8.89 ...
##  $ JP_Sales    : num  3.77 6.81 3.79 3.28 10.22 ...
##  $ Other_Sales : num  8.46 0.77 3.31 2.96 1 0.58 2.9 2.85 2.26 0.47 ...
##  $ Global_Sales: num  82.7 40.2 35.8 33 31.4 ...

Περιγραφικά Στατιστικά

summary(vgsales)
##       Rank           Name             Platform             Year          
##  Min.   :    1   Length:16598       Length:16598       Length:16598      
##  1st Qu.: 4151   Class :character   Class :character   Class :character  
##  Median : 8300   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 8301                                                           
##  3rd Qu.:12450                                                           
##  Max.   :16600                                                           
##     Genre            Publisher            NA_Sales          EU_Sales      
##  Length:16598       Length:16598       Min.   : 0.0000   Min.   : 0.0000  
##  Class :character   Class :character   1st Qu.: 0.0000   1st Qu.: 0.0000  
##  Mode  :character   Mode  :character   Median : 0.0800   Median : 0.0200  
##                                        Mean   : 0.2647   Mean   : 0.1467  
##                                        3rd Qu.: 0.2400   3rd Qu.: 0.1100  
##                                        Max.   :41.4900   Max.   :29.0200  
##     JP_Sales         Other_Sales        Global_Sales    
##  Min.   : 0.00000   Min.   : 0.00000   Min.   : 0.0100  
##  1st Qu.: 0.00000   1st Qu.: 0.00000   1st Qu.: 0.0600  
##  Median : 0.00000   Median : 0.01000   Median : 0.1700  
##  Mean   : 0.07778   Mean   : 0.04806   Mean   : 0.5374  
##  3rd Qu.: 0.04000   3rd Qu.: 0.04000   3rd Qu.: 0.4700  
##  Max.   :10.22000   Max.   :10.57000   Max.   :82.7400

Έλεγχος για Κενές Τιμές

colSums(is.na(vgsales))
##         Rank         Name     Platform         Year        Genre    Publisher 
##            0            0            0            0            0            0 
##     NA_Sales     EU_Sales     JP_Sales  Other_Sales Global_Sales 
##            0            0            0            0            0

Περιγραφικά Στατιστικά

Υπολογίζουμε βασικά μέτρα κεντρικής τάσης και διασποράς για τις πωλήσεις. # Μέση τιμή και διάμεσος για τις περιοχές πωλήσεων

# Υπολογισμός μέτρων κεντρικής τάσης & διασποράς σε χιλιάδες αντίτυπα

sales_stats <- data.frame(
  Περιοχή = c("NA", "EU", "JP", "Other", "Global"),
  Μέση_Τιμή = c(mean(vgsales$NA_Sales, na.rm = TRUE),
                mean(vgsales$EU_Sales, na.rm = TRUE),
                mean(vgsales$JP_Sales, na.rm = TRUE),
                mean(vgsales$Other_Sales, na.rm = TRUE),
                mean(vgsales$Global_Sales, na.rm = TRUE)) * 1000,
  Διάμεσος = c(median(vgsales$NA_Sales, na.rm = TRUE),
               median(vgsales$EU_Sales, na.rm = TRUE),
               median(vgsales$JP_Sales, na.rm = TRUE),
               median(vgsales$Other_Sales, na.rm = TRUE) * 1000,
               median(vgsales$Global_Sales, na.rm = TRUE)) ,
  Τυπική_Απόκλιση = c(sd(vgsales$NA_Sales, na.rm = TRUE),
                      sd(vgsales$EU_Sales, na.rm = TRUE),
                      sd(vgsales$JP_Sales, na.rm = TRUE),
                      sd(vgsales$Other_Sales, na.rm = TRUE),
                      sd(vgsales$Global_Sales, na.rm = TRUE)) * 1000,
  Διακύμανση = c(var(vgsales$NA_Sales, na.rm = TRUE),
                 var(vgsales$EU_Sales, na.rm = TRUE),
                 var(vgsales$JP_Sales, na.rm = TRUE),
                 var(vgsales$Other_Sales, na.rm = TRUE),
                 var(vgsales$Global_Sales, na.rm = TRUE)) * 1000,
  Εύρος = c(diff(range(vgsales$NA_Sales, na.rm = TRUE)),
            diff(range(vgsales$EU_Sales, na.rm = TRUE)),
            diff(range(vgsales$JP_Sales, na.rm = TRUE)),
            diff(range(vgsales$Other_Sales, na.rm = TRUE)),
            diff(range(vgsales$Global_Sales, na.rm = TRUE))) * 1000
)

sales_stats
##   Περιοχή Μέση_Τιμή Διάμεσος Τυπική_Απόκλιση Διακύμανση Εύρος
## 1      NA 264.66743     0.08        816.6830  666.97117 41490
## 2      EU 146.65201     0.02        505.3512  255.37987 29020
## 3      JP  77.78166     0.00        309.2906   95.66070 10220
## 4   Other  48.06302    10.00        188.5884   35.56559 10570
## 5  Global 537.44066     0.17       1555.0279 2418.11188 82730
# Επιλογή μόνο των αριθμητικών μεταβλητών πωλήσεων
sales_data <- vgsales[, c("NA_Sales", "EU_Sales", "JP_Sales", "Other_Sales", "Global_Sales")]

# Πίνακας συντελεστών συσχέτισης
cor(sales_data, use = "complete.obs")
##               NA_Sales  EU_Sales  JP_Sales Other_Sales Global_Sales
## NA_Sales     1.0000000 0.7677267 0.4497874   0.6347373    0.9410474
## EU_Sales     0.7677267 1.0000000 0.4355845   0.7263849    0.9028358
## JP_Sales     0.4497874 0.4355845 1.0000000   0.2901862    0.6118155
## Other_Sales  0.6347373 0.7263849 0.2901862   1.0000000    0.7483308
## Global_Sales 0.9410474 0.9028358 0.6118155   0.7483308    1.0000000

Οι συσχετίσεις μεταξύ των μεταβλητών πωλήσεων δείχνουν ότι:

Ο πίνακας βοηθάει στην κατανόηση γεωγραφικών μοτίβων επιτυχίας για τα video games. ## Boxplot Πωλήσεων PS2 ανά Είδος Παιχνιδιού

library(ggplot2)
library(dplyr)

ps2_data <- vgsales %>% filter(Platform == "PS2")

ggplot(ps2_data, aes(x = Genre, y = Global_Sales)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Boxplot Πωλήσεων PS2 ανά Είδος Παιχνιδιού",
       x = "Είδος", y = "Πωλήσεις (εκατομμύρια)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Σχολιασμός για το Boxplot Πωλήσεων PS2 ανά Είδος Παιχνιδιού:

Το γράφημα δείχνει ότι τα Action και Racing games στο PS2 έχουν τη μεγαλύτερη διακύμανση πωλήσεων, με αρκετούς τίτλους να ξεπερνούν τα 10 εκατομμύρια αντίτυπα. Τα περισσότερα είδη εμφανίζουν χαμηλές έως μέτριες πωλήσεις, ενώ υπάρχουν αρκετά outliers, δηλαδή παιχνίδια που ξεχώρισαν εμπορικά. Η σύγκριση αποκαλύπτει τάσεις προτίμησης των παικτών ανά είδος για την πλατφόρμα PS2.

Boxplot Πωλήσεων για PS3 και Xbox 360 ανά Είδος Παιχνιδιού

subset_data <- vgsales %>% filter(Platform %in% c("PS3", "X360"))

ggplot(subset_data, aes(x = Platform, y = Global_Sales, fill = Genre)) +
  geom_boxplot(alpha = 0.8) +
  labs(title = "Πωλήσεις για PS3 και Xbox 360 ανά Είδος Παιχνιδιού",
       x = "Πλατφόρμα", y = "Πωλήσεις (εκατομμύρια)", fill = "Είδος") +
  theme_minimal() +
  theme(legend.position = "bottom")

Σχολιασμός για το Boxplot Πωλήσεων PS3 και Xbox 360 ανά Είδος Παιχνιδιού:

Το διάγραμμα επιτρέπει τη σύγκριση πωλήσεων ανά είδος παιχνιδιού για τις κονσόλες PS3 και Xbox 360. Παρατηρούμε ότι και στις δύο πλατφόρμες, τα Shooter και Sports games σημειώνουν υψηλές πωλήσεις και διακύμανση. Υπάρχουν αρκετοί τίτλοι με εξαιρετικές επιδόσεις (outliers), ειδικά σε genres όπως το Action. Το γράφημα αποκαλύπτει παρόμοια κατανομή εμπορικής επιτυχίας μεταξύ των δύο ανταγωνιστικών συστημάτων. ## Scatterplot: JP Sales vs Global Sales

ggplot(vgsales, aes(x = JP_Sales, y = Global_Sales)) +
  geom_point(alpha = 0.4, color = "darkred", size = 2) +
  labs(
    title = "Σχέση Πωλήσεων στην Ιαπωνία και Παγκοσμίως",
    x = "Πωλήσεις στην Ιαπωνία (εκατομμύρια)",
    y = "Συνολικές Πωλήσεις (Global, εκατομμύρια)"
  ) +
  theme_minimal()

Το scatterplot παρουσιάζει τη συσχέτιση μεταξύ των πωλήσεων στην Ιαπωνία και των συνολικών (παγκόσμιων) πωλήσεων. Παρατηρούμε ότι, παρόλο που οι περισσότερες τιμές συγκεντρώνονται κοντά στο 0, υπάρχει μια θετική αλλά σχετικά ασθενής συσχέτιση — δηλαδή, οι υψηλές πωλήσεις στην Ιαπωνία δεν συνεπάγονται απαραίτητα υψηλές παγκόσμιες πωλήσεις. Αυτό υποδηλώνει ότι η Ιαπωνική αγορά, αν και σημαντική, δεν είναι ο καθοριστικός παράγοντας επιτυχίας για την παγκόσμια πορεία ενός παιχνιδιού.

ggplot(vgsales, aes(x = Global_Sales)) +
  geom_histogram(binwidth = 0.2, fill = "steelblue", color = "white") +
  scale_x_continuous(
    limits = c(0, 5),
    breaks = seq(0, 5, by = 0.5)
  ) +
  labs(
    title = "Ιστόγραμμα Παγκόσμιων Πωλήσεων Παιχνιδιών",
    x = "Πωλήσεις (σε εκατομμύρια)",
    y = "Αριθμός Παιχνιδιών"
  ) +
  theme_minimal()
## Warning: Removed 205 rows containing non-finite outside the scale range
## (`stat_bin()`).
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_bar()`).

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

library(ggplot2)

ggplot(vgsales, aes(x = Genre)) +
  geom_bar(fill = "darkorange", color = "black") +
  labs(
    title = "Κατανομή Παιχνιδιών ανά Είδος (Genre)",
    x = "Είδος Παιχνιδιού",
    y = "Αριθμός Παιχνιδιών"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Το γράφημα παρουσιάζει την κατανομή των παιχνιδιών ανά είδος (genre). Παρατηρούμε ότι τα παιχνίδια δράσης (Action) αποτελούν το πιο δημοφιλές είδος, ακολουθούμενα από τα αθλητικά (Sports) και τα είδη τύπου Misc (διάφορα). Είδη όπως τα Puzzle και Strategy εμφανίζουν χαμηλότερη εκπροσώπηση. Η ανομοιομορφία στην κατανομή πιθανώς αντανακλά τις προτιμήσεις των καταναλωτών ή τις στρατηγικές παραγωγής των εταιρειών.