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

Το παρόν dataset απεικονίζει τις πωλήσεις ηλεκτρονικών παιχνιδιών που έχουν ξεπεράσει τα εκατό χιλιάδες αντίτυπα παγκοσμίως. Το dataset αυτό καταγράφεται το 2013 και λαμβάνουν μέρος ευρέως διαδεδομένες εταιρείες όπως η Nintendo, Electronic Arts(EA), Activision κ.α. Ακόμη, αναφέρεται και στην χρονιά έκδοσης των παιχνιδιών, σε ποια πλατφόρμα έχει εκδοθεί αρχικά, σε τι κατηγορία παιχνιδιών ανήκει και τις πωλήσεις που πραγματοποίησαν σε Βόρεια Αμερική, Ευρώπη, Ιαπωνία και στον υπόλοιπο κόσμο σε εκατομμύρια.

  • Αιτιολόγηση της επιλογής σε σχέση με την επιχειρηματική αναλυτική:

Ο κύριος λόγος επιλογής του επιμέρους συνόλου δεδομένων είναι η γνωστοποίηση των εταιρειών για το ποιά κατηγορία video games είναι η πιο κερδοφόρα, έτσι ώστε να να δημιουργήσουν μελλοντικές ιδέες που θα τους ωφελήσουν με ένα πλεονεκτικό προβάδισμα από τους υπόλοιπους ανταγωνιστές.

  • Πιθανά επιχειρηματικά ερωτήματα που θα μπορούσαν να απαντηθούν:

-Ποιά κατηγορία ηλεκτρονικών παιχνιδιών έχει μεγαλύτερη φήμη τα τελευταία χρόνια;

-Ποιές εταιρείες κατά πάσα πιθανότητα θα χρεοκοπήσουν ή θα αυξηθούν τα κέρδη τους;

-Ποιοί είναι οι κίνδυνοι που αντιμετωπίζονται όσον αφορά τις πωλήσεις σε κάθε ήπειρο ή σε όλη την υφήλιο;

-Ποιά παιχνίδια έχουν την πιο πολλή ζήτηση από τους καταναλωτές;

  • Περιγραφή μεταβλητών:
1.Rank(Numeric): Βαθμός παιχνιδιού στις συνολικές πωλήσεις κατα φθίνουσα σειρά.
2.Name(Character): Όνομα ηλεκτρονικού παιχνιδιού.
3.Platform(Categorical): Σε ποιά πλατφόρμα παιχνιδιών εκδόθηκε πρώτα.
4.Year(Numeric): Σε ποιά χρονολογία το παιχνίδι βγήκε στην αγορά.
5.Genre(Categorical): Η κατηγορία που το παιχνίδι βασίζεται πάνω της (είτε είναι δράσης, είτε περιπέτειας, είτε στρατηγικής κτλ.).
6.Publisher(Categorical): Η εταιρεία που έκδωσε το ηλεκτρονικό παιχνίδι. 
7.NA_Sales(Numeric): Οι πωλήσεις του παιχνιδιού στην Βόρεια Αμερική σε εκατομμύρια.
8.EU_Sales(Numeric): Οι πωλήσεις του παιχνιδιού στην Ευρώπη σε εκατομμύρια.
9.JP_Sales(Numeric): Οι πωλήσεις του παιχνιδιού στην Ιαπωνία σε εκατομμύρια.
10.Other_Sales(Numeric): Οι πωλήσεις του παιχνιδιού στον υπόλοιπο κόσμο σε εκατομμύρια.
11.Global_Sales(Numeric): Οι συνολικές πωλήσεις του παιχνιδιού που διαδραματίστηκαν παγκόσμια.

*Στο παρόν dataset δεν υπάρχουν διπλότυπες εγγραφές χάρις την βοήθεια του OpenRefine.


Υπολογισμός και παρουσίαση περιγραφικών στατιστικών:

summary(vgsales2)
##       Rank             Name             Platform             Year          
##  Min.   :    1.0   Length:622         Length:622         Length:622        
##  1st Qu.:  168.5   Class :character   Class :character   Class :character  
##  Median :  433.0   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 1214.3                                                           
##  3rd Qu.: 1179.0                                                           
##  Max.   :14912.0                                                           
##     Genre            Publisher            NA_Sales         EU_Sales     
##  Length:622         Length:622         Min.   : 0.000   Min.   : 0.000  
##  Class :character   Class :character   1st Qu.: 0.630   1st Qu.: 0.320  
##  Mode  :character   Mode  :character   Median : 1.520   Median : 0.875  
##                                        Mean   : 2.279   Mean   : 1.412  
##                                        3rd Qu.: 2.670   3rd Qu.: 1.870  
##                                        Max.   :41.490   Max.   :29.020  
##     JP_Sales        Other_Sales       Global_Sales   
##  Min.   : 0.0000   Min.   : 0.0000   Min.   : 0.020  
##  1st Qu.: 0.0000   1st Qu.: 0.0900   1st Qu.: 1.573  
##  Median : 0.0600   Median : 0.2250   Median : 3.165  
##  Mean   : 0.5919   Mean   : 0.4471   Mean   : 4.728  
##  3rd Qu.: 0.5400   3rd Qu.: 0.5500   3rd Qu.: 5.405  
##  Max.   :10.2200   Max.   :10.5700   Max.   :82.740

Μέτρα κεντρικής τάσης

#Mean
  NA_Salesm <- mean(vgsales2$NA_Sales)
  EU_Salesm <- mean(vgsales2$EU_Sales)
  JP_Salesm <- mean(vgsales2$JP_Sales)
  Other_Salesm <- mean(vgsales2$Other_Sales)
  Global_Salesm <-mean(vgsales2$Global_Sales)

cat("Μέσος Όρος πωλήσεων Βόρειας Αμερικής: ", NA_Salesm )
## Μέσος Όρος πωλήσεων Βόρειας Αμερικής:  2.278939
cat("Μέσος Όρος πωλήσεων Ευρώπης: ", EU_Salesm)
## Μέσος Όρος πωλήσεων Ευρώπης:  1.41172
cat("Μέσος Όρος πωλήσεων Ιαπωνίας: ", JP_Salesm)
## Μέσος Όρος πωλήσεων Ιαπωνίας:  0.591881
cat("Μέσος Όρος πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salesm)
## Μέσος Όρος πωλήσεων στον υπόλοιπο κόσμο:  0.44709
cat("Μέσος Όρος συνολικών πωλήσεων παγκοσμίως: ", Global_Salesm)
## Μέσος Όρος συνολικών πωλήσεων παγκοσμίως:  4.727653
#Median
  NA_Salesmd <-median(vgsales2$NA_Sales)
  EU_Salesmd <-median(vgsales2$EU_Sales)
  JP_Salesmd <-median(vgsales2$JP_Sales)
  Other_Salesmd <-median(vgsales2$Other_Sales)
  Global_Salesmd <-median(vgsales2$Global_Sales)

cat("Διάμεσος πωλήσεων Βόρειας Αμερικής: ", NA_Salesmd)
## Διάμεσος πωλήσεων Βόρειας Αμερικής:  1.52
cat("Διάμεσος πωλήσεων Ευρώπης: ", EU_Salesmd)
## Διάμεσος πωλήσεων Ευρώπης:  0.875
cat("Διάμεσος πωλήσεων Ιαπωνίας: ", JP_Salesmd)
## Διάμεσος πωλήσεων Ιαπωνίας:  0.06
cat("Διάμεσος πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salesmd)
## Διάμεσος πωλήσεων στον υπόλοιπο κόσμο:  0.225
cat("Διάμεσος συνολικών πωλήσεων παγκοσμίως: ", Global_Salesmd)
## Διάμεσος συνολικών πωλήσεων παγκοσμίως:  3.165
#Mode
  NA_Salesfr <- sort(vgsales2$NA_Sales, decreasing = FALSE) [1]
  EU_Salesfr <- sort(vgsales2$EU_Sales, decreasing = FALSE) [1]
  JP_Salesfr <- sort(vgsales2$JP_Sales, decreasing = FALSE) [1]
  Other_Salesfr <- sort(vgsales2$Other_Sales, decreasing = FALSE) [1]
  Global_Salesfr <- sort(vgsales2$Global_Sales, decreasing = FALSE) [1] 



cat("Επικρατούσα τιμή πωλήσεων Βόρειας Αμερικής: ", NA_Salesfr)
## Επικρατούσα τιμή πωλήσεων Βόρειας Αμερικής:  0
cat("Επικρατούσα τιμή πωλήσεων Ευρώπης: ", EU_Salesfr)
## Επικρατούσα τιμή πωλήσεων Ευρώπης:  0
cat("Επικρατούσα τιμή πωλήσεων Ιαπωνίας: ", JP_Salesfr)
## Επικρατούσα τιμή πωλήσεων Ιαπωνίας:  0
cat("Επικρατούσα τιμή πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salesfr)
## Επικρατούσα τιμή πωλήσεων στον υπόλοιπο κόσμο:  0
cat("Επικρατούσα τιμή συνολικών πωλήσεων παγκοσμίως: ", Global_Salesfr)
## Επικρατούσα τιμή συνολικών πωλήσεων παγκοσμίως:  0.02

Μέτρα Διασποράς

#Standard Deviation

NA_Salessd <- sd(vgsales2$NA_Sales)
EU_Salessd <- sd(vgsales2$EU_Sales)
JP_Salessd <- sd(vgsales2$JP_Sales)
Other_Salessd <- sd(vgsales2$Other_Sales)
Global_Salessd <- sd(vgsales2$Global_Sales)

cat("Τυπική απόκλιση πωλήσεων Βόρειας Αμερικής: ", NA_Salessd)
## Τυπική απόκλιση πωλήσεων Βόρειας Αμερικής:  3.265958
cat("Τυπική απόκλιση πωλήσεων Ευρώπης: ", EU_Salessd)
## Τυπική απόκλιση πωλήσεων Ευρώπης:  2.0014
cat("Τυπική απόκλιση πωλήσεων Ιαπωνίας: ", JP_Salessd)
## Τυπική απόκλιση πωλήσεων Ιαπωνίας:  1.198177
cat("Τυπική απόκλιση πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salessd)
## Τυπική απόκλιση πωλήσεων στον υπόλοιπο κόσμο:  0.7832695
cat("Τυπική απόκλιση συνολικών πωλήσεων παγκοσμίως: ", Global_Salessd)
## Τυπική απόκλιση συνολικών πωλήσεων παγκοσμίως:  6.092559
#Variance

NA_Salesv <- var(vgsales2$NA_Sales)
EU_Salesv <- var(vgsales2$EU_Sales)
JP_Salesv <- var(vgsales2$JP_Sales)
Other_Salesv <- var(vgsales2$Other_Sales)
Global_Salesv <- var(vgsales2$Global_Sales)
 
cat("Διακύμανση πωλήσεων Βόρειας Αμερικής: ", NA_Salesv)
## Διακύμανση πωλήσεων Βόρειας Αμερικής:  10.66648
cat("Διακύμανση πωλήσεων Ευρώπης: ", EU_Salesv)
## Διακύμανση πωλήσεων Ευρώπης:  4.005601
cat("Διακύμανση πωλήσεων Ιαπωνίας: ", JP_Salesv)
## Διακύμανση πωλήσεων Ιαπωνίας:  1.435628
cat("Διακύμανση πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salesv)
## Διακύμανση πωλήσεων στον υπόλοιπο κόσμο:  0.6135112
cat("Διακύμανση συνολικών πωλήσεων παγκοσμίως: ",Global_Salesv)
## Διακύμανση συνολικών πωλήσεων παγκοσμίως:  37.11928
#Range

NA_Salesra <- range(vgsales2$NA_Sales)
EU_Salesra <- range(vgsales2$EU_Sales)
JP_Salesra <-range(vgsales2$JP_Sales)
Other_Salesra <- range(vgsales2$Other_Sales)
GLobal_Salesra <- range(vgsales2$Global_Sales)

cat("Εύρος πωλήσεων Βόρειας Αμερικής: ", NA_Salesra)
## Εύρος πωλήσεων Βόρειας Αμερικής:  0 41.49
cat("Εύρος πωλήσεων Ευρώπης: ", EU_Salesra)
## Εύρος πωλήσεων Ευρώπης:  0 29.02
cat("Εύρος πωλήσεων Ιαπωνίας: ", JP_Salesra)
## Εύρος πωλήσεων Ιαπωνίας:  0 10.22
cat("Εύρος πωλήσεων στον υπόλοιπο κόσμο: ", Other_Salesra)
## Εύρος πωλήσεων στον υπόλοιπο κόσμο:  0 10.57
cat("Εύρος συνολικών πωλήσεων παγκοσμίως: ",GLobal_Salesra)
## Εύρος συνολικών πωλήσεων παγκοσμίως:  0.02 82.74

Οπτικοποίηση Δεδομένων

Scatterplot

Στο συγκεκριμένο διάγραμμα παρατηρούμε το εξής:

  1. Η μέγιστη τιμή των πωλήσεων της Βόρειας Αμερικής είναι μεγαλύτερη από εκείνη της Ευρώπης.

  2. Στο εύρος τιμών μεταξύ 0 και 10 είναι οι περισσότερες τιμές κατανεμημένες.

  3. Η διασπορά των πωλήσεων στην Ευρώπη είναι μεγαλύτερη από εκείνη της Βόρειας Αμερικής.

Boxplot

Απο το παραπάνω διάγραμμα παρατηρείται ότι:

  1. Τα περισσότερα outliers φαίνονται να είναι στην κατηγορία παιχνιδιών action, platform και role-playing πράγμα που καθιστά εκείνες τις κατηγορίες να έχουν περισσότερη ζήτηση.

  2. Η κατηγορία sports επίσης κατέχει αρκετά outliers και το ενα από αυτά είναι στην υψηλοτερη τιμή παγκοσμίως στα 82 περίπου εκατομμύρια πωλήσεις.

  3. Η χαμηλότερη τιμή βρίσκεται στην κατηγορία του simulation συμπεραίνωντας την αποφυγή αγοράς των παιχνιδιών με αυτή την κατηγορία από τους καταναλωτές.

  4. Η διάμεσος των περισσότερων κατηγοριών είναι σταθερή.

  5. Η κατηγορία με την μεγαλύτερη διασπορά είναι τα sports δηλαδή οι πωλήσεις που πραγματοποιεί αυτή παγκοσμίως κυμαίνονται να μεταβάλλονται ανάλογα.

Histogram

Από το ιστόγραμμα φαίνεται:

  1. Το μεγαλύτερο ποσοστό των τιμών πωλήσεων στην Ευρώπη είναι απο 0 εώς 3-3.5 εκατομμύρια.

  2. Μετά από αυτό δεν σημειώνεται καμία αξιόλογη τιμή με τις περισσότερες να είναι πολύ ελάχιστες.

Bar Chart

Κλείνοντας, το τελευταίο διάγραμμα μας αναδεικνύει:

  1. Την πιο δημοφιλής πλατφόρμα όπου χρησιμοποιούσαν και αγώραζαν οι καταναλωτές τα ηλεκτρονικά παιχνίδια εκείνη την εποχή (2013) η οποία δεν είναι άλλη από την PS2.

  2. Ακολουθούν λίγο πιό κάτω από την PS2 οι πλατφόρμες PS3 και Xbox360 οι οποίες είχαν και τον μεγαλύτερο ανταγωνισμό τότε.

  3. Μετά τις δύο αυτές πλατφόρμες ακολουθούν 3 ακόμη πολύ δημοφιλές που ήταν και αυτές αξέχαστες είναι η Wii, η DS και το PS.

  4. Τέλος, οι υπόλοιπες πλατφόρμες βιντεοπαιχνιδιών ήτανε πολύ χαμηλά στην αγορά τότε. ’Ομως, αυτό δεν σημαίνει ότι κάποιες από αυτές, όπως παραδείγματος χάρειν η πλατφόρμα PS4 και Xbox One είχαν τo ενδεχόμενο να μείνουν χαμηλά στην τάση της αγοράς. Αυτό αποδεικνύει ότι η κάθε πλατφόρμα μπορεί να προορίζεται για την πρωτία όταν χρησιμοποιεί τις κατάλληλες τεχνικές επιχειρηματικής αναλυτικής.


Γραμμική Παλινδρόμηση

Συσχέτιση μεταξύ μεταβλητών πωλήσεων βιντεοπαιχνιδιών

Στον παρακάτω πίνακα απεικονίζονται οι συσχετίσεις μεταξύ των μεταβλητών των πωλήσεων των βιντεοπαιχνιδιών του data set. Έπειτα, απευθυνόμαστε στις πωλήσεις της Ευρώπης ως την εξαρτημένη μας μεταβλητή και με αυτή θα εκτιμήσουμε με ποιές ανεξάρτητες μεταβλητές η συσχέτιση είναι πιο βέλτιστη.

library(knitr)

numNA_Sales <- c(vgsales2$NA_Sales)
numEU_Sales <- c(vgsales2$EU_Sales)
numJP_Sales <- c(vgsales2$JP_Sales)
numOther_Sales <- c(vgsales2$Other_Sales)
numGlobal_Sales <- c(vgsales2$Global_Sales)


vgsales3 <- data.frame(numEU_Sales,numNA_Sales,numJP_Sales,numOther_Sales,numGlobal_Sales)

cor_table <- cor(vgsales3)
knitr::kable(round(cor_table, 2), caption = "Πίνακας Συσχετίσεων Μεταβλητών")
Πίνακας Συσχετίσεων Μεταβλητών
numEU_Sales numNA_Sales numJP_Sales numOther_Sales numGlobal_Sales
numEU_Sales 1.00 0.71 0.44 0.65 0.88
numNA_Sales 0.71 1.00 0.47 0.55 0.93
numJP_Sales 0.44 0.47 1.00 0.22 0.62
numOther_Sales 0.65 0.55 0.22 1.00 0.68
numGlobal_Sales 0.88 0.93 0.62 0.68 1.00

Πρώτο μοντέλο παλινδρόμησης

library(ggplot2)

m1 <- lm(numEU_Sales ~ numNA_Sales,data = vgsales3)

summary(m1)
## 
## Call:
## lm(formula = numEU_Sales ~ numNA_Sales, data = vgsales3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.5577  -0.5214  -0.2353   0.3062  10.4675 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.41550    0.06865   6.052 2.47e-09 ***
## numNA_Sales  0.43714    0.01725  25.345  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.404 on 620 degrees of freedom
## Multiple R-squared:  0.5089, Adjusted R-squared:  0.5081 
## F-statistic: 642.4 on 1 and 620 DF,  p-value: < 2.2e-16
SSE1 <- sum(m1$residuals^2)

ggplot(vgsales3, aes(x = numNA_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m1)[1], slope = coef(m1)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ NA Sales",
       x = "NA Sales", y = "EU Sales")


Δεύτερο Μοντελο παλινδρόμησης

m2 <- lm(numEU_Sales ~ numNA_Sales+numJP_Sales,data = vgsales3 )

summary(m2)
## 
## Call:
## lm(formula = numEU_Sales ~ numNA_Sales + numJP_Sales, data = vgsales3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5111  -0.5200  -0.1829   0.3003  11.2861 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.36931    0.06847   5.394 9.84e-08 ***
## numNA_Sales  0.39760    0.01924  20.670  < 2e-16 ***
## numJP_Sales  0.23029    0.05243   4.392 1.32e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.383 on 619 degrees of freedom
## Multiple R-squared:  0.5237, Adjusted R-squared:  0.5222 
## F-statistic: 340.3 on 2 and 619 DF,  p-value: < 2.2e-16
SSE2 <- sum(m2$residuals^2)

ggplot(vgsales3, aes(x = numNA_Sales , y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m2)[1], slope = coef(m2)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ NA Sales",
       x = "NA Sales ", y = "EU Sales")


Τρίτο μοντέλο παλινδρόμησης

m3 <- lm(numEU_Sales ~ numNA_Sales+numJP_Sales+numOther_Sales,data = vgsales3 )

summary(m3)
## 
## Call:
## lm(formula = numEU_Sales ~ numNA_Sales + numJP_Sales + numOther_Sales, 
##     data = vgsales3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.6795  -0.3427  -0.0847   0.2905   8.6294 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.22199    0.06196   3.583 0.000367 ***
## numNA_Sales     0.26493    0.01998  13.257  < 2e-16 ***
## numJP_Sales     0.25725    0.04667   5.512 5.22e-08 ***
## numOther_Sales  0.97008    0.07557  12.838  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.23 on 618 degrees of freedom
## Multiple R-squared:  0.624,  Adjusted R-squared:  0.6222 
## F-statistic: 341.8 on 3 and 618 DF,  p-value: < 2.2e-16
SSE3 <- sum(m3$residuals^2)

ggplot(vgsales3, aes(x = numNA_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m3)[1], slope = coef(m3)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ NA Sales",
       x = "NA Sales ", y = "EU Sales")


Τέταρτο μοντέλο παλινδρόμησης

m4 <- lm(numEU_Sales ~ numGlobal_Sales,data = vgsales3 )

summary(m4)
## 
## Call:
## lm(formula = numEU_Sales ~ numGlobal_Sales, data = vgsales3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.1172 -0.3043 -0.0155  0.2700  5.0135 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.042444   0.047981   0.885    0.377    
## numGlobal_Sales 0.289631   0.006225  46.527   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9451 on 620 degrees of freedom
## Multiple R-squared:  0.7774, Adjusted R-squared:  0.777 
## F-statistic:  2165 on 1 and 620 DF,  p-value: < 2.2e-16
SSE4 <- sum(m4$residuals^2)

ggplot(vgsales3, aes(x = numGlobal_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m4)[1], slope = coef(m4)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ Global Sales",
       x = "Global Sales ", y = "EU Sales")


Πέμπτο μοντέλο παλινδρόμησης

m5 <- lm(numEU_Sales ~ numGlobal_Sales + numJP_Sales,data = vgsales3 )

summary(m5)
## 
## Call:
## lm(formula = numEU_Sales ~ numGlobal_Sales + numJP_Sales, data = vgsales3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.5376 -0.2479 -0.0334  0.2427  4.1222 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      0.046502   0.045988   1.011    0.312    
## numGlobal_Sales  0.325053   0.007616  42.682  < 2e-16 ***
## numJP_Sales     -0.289788   0.038725  -7.483  2.5e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9058 on 619 degrees of freedom
## Multiple R-squared:  0.7958, Adjusted R-squared:  0.7952 
## F-statistic:  1206 on 2 and 619 DF,  p-value: < 2.2e-16
SSE5 <- sum(m5$residuals^2)

ggplot(vgsales3, aes(x = numGlobal_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m5)[1], slope = coef(m5)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ Global Sales",
       x = "Global Sales ", y = "EU Sales")


Έκτο μοντέλο παλινδρόμησης

m6 <- lm(numEU_Sales ~ numGlobal_Sales + numJP_Sales + numOther_Sales,data = vgsales3 )

summary(m6)
## 
## Call:
## lm(formula = numEU_Sales ~ numGlobal_Sales + numJP_Sales + numOther_Sales, 
##     data = vgsales3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.2981 -0.2426 -0.0306  0.2433  4.1880 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      0.04338    0.04603   0.943    0.346    
## numGlobal_Sales  0.31506    0.01082  29.118  < 2e-16 ***
## numJP_Sales     -0.27110    0.04129  -6.566  1.1e-10 ***
## numOther_Sales   0.08792    0.06766   1.299    0.194    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9053 on 618 degrees of freedom
## Multiple R-squared:  0.7964, Adjusted R-squared:  0.7954 
## F-statistic: 805.7 on 3 and 618 DF,  p-value: < 2.2e-16
SSE6 <- sum(m6$residuals^2)

ggplot(vgsales3, aes(x = numGlobal_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m6)[1], slope = coef(m6)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ Global Sales",
       x = "Global Sales ", y = "EU Sales")

Έβδομο μοντέλο παλινδρόμησης

m7 <- lm(numEU_Sales ~ numGlobal_Sales + numNA_Sales,data = vgsales3 )

summary(m7)
## 
## Call:
## lm(formula = numEU_Sales ~ numGlobal_Sales + numNA_Sales, data = vgsales3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.1357 -0.0954  0.0798  0.2743  5.1076 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.002512   0.036695  -0.068    0.945    
## numGlobal_Sales  0.550121   0.013236  41.562   <2e-16 ***
## numNA_Sales     -0.520658   0.024692 -21.086   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7216 on 619 degrees of freedom
## Multiple R-squared:  0.8704, Adjusted R-squared:   0.87 
## F-statistic:  2079 on 2 and 619 DF,  p-value: < 2.2e-16
SSE7 <- sum(m7$residuals^2)

ggplot(vgsales3, aes(x = numGlobal_Sales, y = numEU_Sales)) +
  geom_point() +
  geom_abline(intercept = coef(m7)[1], slope = coef(m7)[2], color = "red", linewidth = 1) +
  labs(title = "Γραμμική Παλινδρόμηση: EU Sales ~ Global Sales",
       x = "Global Sales ", y = "EU Sales")


Σύγκριση αποτελεσμάτων

Συνοπτικός Πίνακας R² και SSE για τα μοντέλα παλινδρόμησης που συσχετίζονται με τις Ευρωπαϊκές πωλήσεις:
Μεταβλητές R_squared SSE
Πωλήσεις Βόρειας Αμερικής 0.509 1221.71
Πωλήσεις Βόρειας Αμερικής + Ιαπωνίας 0.524 1184.78
Πωλήσεις Βόρειας Αμερικής + Ιαπωνίας + υπόλοιπου κόσμου 0.624 935.35
Συνολικές παγκόσμιες πωλήσεις 0.777 553.81
Συνολικές παγκόσμιες πωλήσεις + πωλήσεις Ιαπωνίας 0.796 507.86
Συνολικές παγκόσμιες πωλήσεις + πωλήσεις Ιαπωνίας + υπόλοιπου κόσμου 0.796 506.48
Συνολικές παγκόσμιες πωλήσεις + πωλήσεις Βόρειας Αμερικής 0.870 322.30

Συμπεράσματα

  • Αρχικά, η μεταβλητή των πωλήσεων της Βόρειας Αμερικής έχει το μικρότερο R² και το υψηλότερο SSE.

  • Στην συνέχεια με την πρόσθεση των πωλήσεων της Ιαπωνίας αυξάνεται για πολύ λίγο το R² και μειώνεται το SSE το οποίο είναι θετικό.

  • Προσθέτοντας και τις πωλήσεις βιντεοπαιχνιδιών από τον υπόλοιπο κόσμο καταλήγουμε με 0.1 αύξηση στο R² και σημαντική μείωση του SSE πράγμα που σημαίνει ότι προσθέτοντας όλο ένα και περισσότερες μεταβλητές η εκτίμηση της συσχέτισης είναι πιο βέλτιστη.

  • Όμως, άμα αλλάξουμε την πρώτη ανεξάρτητη μεταβλητή (NA Sales) με την μεταβλητή των συνολικών παγκόσμιων πωλήσεων (Global Sales) παρατηρούμε ότι υπάρχει πολύ περισσότερη ακμή στην τιμή της R² και πολύ περισσότερη παρακμή στην τιμή της SSE. Αυτό δείχνει ότι η νέα ανεξάρτητη μεταβλητή μεταφέρει ακόμη πιο βέλτιστη εκτίμηση.

  • Ακόμη, όταν προσθέτονται οι ίδιες μεταβλητές όπως ειπώθηκε παραπάνω υπάρχει μια ελάχιστη αυξηση στην R² και ελάχιστη μείωση στο SSE. Σε αυτό το σημείο που βρίσκομαστε δεν είναι κάτι που θα δώσει ιδιαίτερο αντίκτυπο στο συνολικό μοντέλο.

  • Τέλος, έχοντας σμίξει την παλία ανεξάρτητη μεταβλητή με την νέα καταλήγουμε στην υψηλότερη τιμή R² που είναι 0.870 και στην χαμηλότερη τιμή τη2 SSE η οποία είναι 322.30. Με αυτό συμπαιρένουμε την απίστευτη διαφορά από το πρώτο μοντέλο γεγονός που οφείλεται στην μεταβλητή των παγκόσμιων πωλήσεων. Έτσι, η συνολική εκτίμηση της συσχέτισης των ευρωπαϊκών πωλήσεων με τις παγκόσμιες πωλήσεις και τις Βόρειας Αμερικής είναι η πίο βέλτιστη.


Διαχωρισμός του dataset σε Train και Test sets

library(ggplot2)
library(caTools)


set.seed(940)

split <- sample.split(vgsales3,SplitRatio = 0.80) 
salesTrain <- subset(vgsales3, split == TRUE)
salesTest <- subset(vgsales3, split == FALSE)

cat("Καταχωρήσεις στο training set:", nrow(salesTrain))
## Καταχωρήσεις στο training set: 498
cat("Καταχωρήσεις στο test set:", nrow(salesTest))
## Καταχωρήσεις στο test set: 124

Δημιουργία μοντέλων λογιστικής παλινδρόμησης στο Train set

Πρώτο μοντέλο

m1train <- lm(numEU_Sales ~ numJP_Sales + numNA_Sales ,data = salesTrain)

summary(m1train)
## 
## Call:
## lm(formula = numEU_Sales ~ numJP_Sales + numNA_Sales, data = salesTrain)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.1103  -0.5192  -0.1800   0.2834  11.8362 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.38589    0.07914   4.876 1.46e-06 ***
## numJP_Sales  0.25315    0.05918   4.278 2.27e-05 ***
## numNA_Sales  0.38186    0.02127  17.953  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.446 on 495 degrees of freedom
## Multiple R-squared:  0.5102, Adjusted R-squared:  0.5082 
## F-statistic: 257.8 on 2 and 495 DF,  p-value: < 2.2e-16
SSE1train <- sum(m1train$residuals^2)
RMSE1train <- sqrt(SSE1train/nrow(salesTrain))


RMSE1train
## [1] 1.441388

Δεύτερο μοντέλο

m2train <- lm(numEU_Sales ~ numJP_Sales + numNA_Sales + numOther_Sales ,data = salesTrain)

summary(m2train)
## 
## Call:
## lm(formula = numEU_Sales ~ numJP_Sales + numNA_Sales + numOther_Sales, 
##     data = salesTrain)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.9607  -0.3459  -0.0712   0.2914   9.2807 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.23908    0.07249   3.298  0.00104 ** 
## numJP_Sales     0.27815    0.05330   5.219 2.65e-07 ***
## numNA_Sales     0.26047    0.02218  11.745  < 2e-16 ***
## numOther_Sales  0.90363    0.08340  10.835  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.301 on 494 degrees of freedom
## Multiple R-squared:  0.6043, Adjusted R-squared:  0.6019 
## F-statistic: 251.4 on 3 and 494 DF,  p-value: < 2.2e-16
SSE2train <- sum(m2train$residuals^2)
RMSE2train <- sqrt(SSE2train/nrow(salesTrain))


RMSE2train
## [1] 1.295636

Τρίτο μοντέλο

m3train <- lm(numEU_Sales ~ numJP_Sales + numNA_Sales + numGlobal_Sales ,data = salesTrain)

summary(m3train)
## 
## Call:
## lm(formula = numEU_Sales ~ numJP_Sales + numNA_Sales + numGlobal_Sales, 
##     data = salesTrain)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.6789 -0.0412  0.0210  0.0932  1.6880 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.01263    0.02758  -0.458    0.647    
## numJP_Sales     -0.64179    0.02473 -25.948   <2e-16 ***
## numNA_Sales     -0.72533    0.01931 -37.556   <2e-16 ***
## numGlobal_Sales  0.73015    0.01182  61.791   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4898 on 494 degrees of freedom
## Multiple R-squared:  0.9439, Adjusted R-squared:  0.9435 
## F-statistic:  2770 on 3 and 494 DF,  p-value: < 2.2e-16
SSE3train <- sum(m3train$residuals^2)
RMSE3train <- sqrt(SSE3train/nrow(salesTrain))


RMSE3train
## [1] 0.4878643

Συνοπτικός Πίνακας R², SSE και RMSE για τα μοντέλα παλινδρόμησης που συσχετίζονται με τις Ευρωπαϊκές πωλήσεις:
Μεταβλητές R_squared SSE RMSE
Συμπεράσματα πρώτου μοντέλου λογιστικής παλινδρόμησης 0.510 1034.64 1.44
Συμπεράσματα δεύτερου μοντέλου λογιστικής παλινδρόμησης 0.604 835.98 1.30
Συμπεράσματα τρίτου μοντέλου λογιστικής παλινδρόμησης 0.944 118.53 0.49

Από τα τρία μοντέλα παρατηρείτε το εξής:

  1. Αρχικά, ξεκινούμε με 2 ανεξάρτητες μεταβλητές στο πρώτο μοντέλο. Βλέποντας από το summary καταλήγουμε στο συμπέρασμα ότι το r squared του μοντέλου δείχνει να είναι 0.510, το SSΕ να είναι 1034.64 και το RMSE 1.44. Το SSE και το RMSE έχουν υψηλή τιμή πράγμα που σημαίνει ότι το μοντέλο μπορεί να βελτιωθεί.

  2. Στη συνέχεια, εφαρμόζοντας την μέθοδο πρόσθεσης μεταβλητών προσθέτουμε ακόμη μία ανεξάρτητη μεταβλητή και αυτό έχει ως αποτέλεσμα την αύξηση του r squared με την τιμή του να έρχεται στο 0.604. Επίσης, οι τιμές των SSE και RMSE έχουν μειωθεί αρκετά το οποίο δείχνει ότι η πρόσθεση μιας νέας μεταβλητής φέρνει πιο βέλτιστο αποτέλεσμα.

  3. Έπειτα, παραμένουμε ακόμη στις τρείς μεταβλητές όμως αντικαθιστούμε την μία μεταβλητή (numOtherSales) με την μεταβλητή numGlobalSales. Αυτή η αλλαγή φέρνει μια μεγάλη επίδραση καθώς το r squared έχει φτάσει στην τιμή 0.944. Επιπρόσθετα, το SSE και RMSE μειώνονται δραστικά με τιμές 118.53 και 0.49 αντίστοιχα. Με αυτές τις τιμές το μοντέλο αυτό σημειώνεται ως το πιό βέλτιστο και έχει την πιο αποτελεσματική συσχέτιση μεταξύ των ανεξάρτητων μεταβλητών με της εξαρτόμενης.


Δημιουργία πρόβλεψης στην Test

EUPrediction <- predict(m3train, newdata=salesTest)



SSE <- sum((EUPrediction - salesTest)^2)
SST <- sum((mean(salesTrain) - salesTest)^2)
## Warning in mean.default(salesTrain): argument is not numeric or logical:
## returning NA
SSE
## [1] 4009.615
SST
## [1] NA
R2 <- 1 - SSE/SST 


R2
## [1] NA