Το παρόν 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
Στο συγκεκριμένο διάγραμμα παρατηρούμε το εξής:
Η μέγιστη τιμή των πωλήσεων της Βόρειας Αμερικής είναι μεγαλύτερη από εκείνη της Ευρώπης.
Στο εύρος τιμών μεταξύ 0 και 10 είναι οι περισσότερες τιμές κατανεμημένες.
Η διασπορά των πωλήσεων στην Ευρώπη είναι μεγαλύτερη από εκείνη της Βόρειας Αμερικής.
Απο το παραπάνω διάγραμμα παρατηρείται ότι:
Τα περισσότερα outliers φαίνονται να είναι στην κατηγορία παιχνιδιών action, platform και role-playing πράγμα που καθιστά εκείνες τις κατηγορίες να έχουν περισσότερη ζήτηση.
Η κατηγορία sports επίσης κατέχει αρκετά outliers και το ενα από αυτά είναι στην υψηλοτερη τιμή παγκοσμίως στα 82 περίπου εκατομμύρια πωλήσεις.
Η χαμηλότερη τιμή βρίσκεται στην κατηγορία του simulation συμπεραίνωντας την αποφυγή αγοράς των παιχνιδιών με αυτή την κατηγορία από τους καταναλωτές.
Η διάμεσος των περισσότερων κατηγοριών είναι σταθερή.
Η κατηγορία με την μεγαλύτερη διασπορά είναι τα sports δηλαδή οι πωλήσεις που πραγματοποιεί αυτή παγκοσμίως κυμαίνονται να μεταβάλλονται ανάλογα.
Από το ιστόγραμμα φαίνεται:
Το μεγαλύτερο ποσοστό των τιμών πωλήσεων στην Ευρώπη είναι απο 0 εώς 3-3.5 εκατομμύρια.
Μετά από αυτό δεν σημειώνεται καμία αξιόλογη τιμή με τις περισσότερες να είναι πολύ ελάχιστες.
Κλείνοντας, το τελευταίο διάγραμμα μας αναδεικνύει:
Την πιο δημοφιλής πλατφόρμα όπου χρησιμοποιούσαν και αγώραζαν οι καταναλωτές τα ηλεκτρονικά παιχνίδια εκείνη την εποχή (2013) η οποία δεν είναι άλλη από την PS2.
Ακολουθούν λίγο πιό κάτω από την PS2 οι πλατφόρμες PS3 και Xbox360 οι οποίες είχαν και τον μεγαλύτερο ανταγωνισμό τότε.
Μετά τις δύο αυτές πλατφόρμες ακολουθούν 3 ακόμη πολύ δημοφιλές που ήταν και αυτές αξέχαστες είναι η Wii, η DS και το PS.
Τέλος, οι υπόλοιπες πλατφόρμες βιντεοπαιχνιδιών ήτανε πολύ χαμηλά στην αγορά τότε. ’Ομως, αυτό δεν σημαίνει ότι κάποιες από αυτές, όπως παραδείγματος χάρειν η πλατφόρμα 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_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. Με αυτό συμπαιρένουμε την απίστευτη διαφορά από το πρώτο μοντέλο γεγονός που οφείλεται στην μεταβλητή των παγκόσμιων πωλήσεων. Έτσι, η συνολική εκτίμηση της συσχέτισης των ευρωπαϊκών πωλήσεων με τις παγκόσμιες πωλήσεις και τις Βόρειας Αμερικής είναι η πίο βέλτιστη.
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
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_squared | SSE | RMSE |
|---|---|---|---|
| Συμπεράσματα πρώτου μοντέλου λογιστικής παλινδρόμησης | 0.510 | 1034.64 | 1.44 |
| Συμπεράσματα δεύτερου μοντέλου λογιστικής παλινδρόμησης | 0.604 | 835.98 | 1.30 |
| Συμπεράσματα τρίτου μοντέλου λογιστικής παλινδρόμησης | 0.944 | 118.53 | 0.49 |
Από τα τρία μοντέλα παρατηρείτε το εξής:
Αρχικά, ξεκινούμε με 2 ανεξάρτητες μεταβλητές στο πρώτο μοντέλο. Βλέποντας από το summary καταλήγουμε στο συμπέρασμα ότι το r squared του μοντέλου δείχνει να είναι 0.510, το SSΕ να είναι 1034.64 και το RMSE 1.44. Το SSE και το RMSE έχουν υψηλή τιμή πράγμα που σημαίνει ότι το μοντέλο μπορεί να βελτιωθεί.
Στη συνέχεια, εφαρμόζοντας την μέθοδο πρόσθεσης μεταβλητών προσθέτουμε ακόμη μία ανεξάρτητη μεταβλητή και αυτό έχει ως αποτέλεσμα την αύξηση του r squared με την τιμή του να έρχεται στο 0.604. Επίσης, οι τιμές των SSE και RMSE έχουν μειωθεί αρκετά το οποίο δείχνει ότι η πρόσθεση μιας νέας μεταβλητής φέρνει πιο βέλτιστο αποτέλεσμα.
Έπειτα, παραμένουμε ακόμη στις τρείς μεταβλητές όμως αντικαθιστούμε την μία μεταβλητή (numOtherSales) με την μεταβλητή numGlobalSales. Αυτή η αλλαγή φέρνει μια μεγάλη επίδραση καθώς το r squared έχει φτάσει στην τιμή 0.944. Επιπρόσθετα, το SSE και RMSE μειώνονται δραστικά με τιμές 118.53 και 0.49 αντίστοιχα. Με αυτές τις τιμές το μοντέλο αυτό σημειώνεται ως το πιό βέλτιστο και έχει την πιο αποτελεσματική συσχέτιση μεταξύ των ανεξάρτητων μεταβλητών με της εξαρτόμενης.
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