1 Latar Belakang

Project kali ini yaitu melakukan analisi terhadap penjualan video games dari tahun 1980 sampai dengan 2020 dari berbagai platform dan genre. data tersebut saya dapatkan dari kaggle pada link:

[kaggle] : https://www.kaggle.com/gregorut/videogamesales

Beberapa pertanyaan untuk analisa kasus bisnis yang akan dibahas pada project ini yaitu:

  1. Top 5 Rank of game
  2. Top 5 Favorite platform
  3. Top 5 Platform by Global Sales
  4. Top 5 Favorite genre
  5. Top 5 Genre by Global Sales
  6. Top 5 Favorite publisher
  7. Top 5 publisher by Global Sales
  8. Increased Games Sales Each Year
  9. Correlation between JP Sales and Global Sales

2 Data Pre-Processing

Membaca file dengan format .csv

# import data

vg <- read.csv("data/vgsales.csv")
head(vg)
# mengetahui nama kolom pada dataframe

colnames(vg)
##  [1] "Rank"         "Name"         "Platform"     "Year"         "Genre"       
##  [6] "Publisher"    "NA_Sales"     "EU_Sales"     "JP_Sales"     "Other_Sales" 
## [11] "Global_Sales"
# mengetahui dimensi pada dataframe

dim(vg)
## [1] 16598    11
# mengetahui tipe data pada dataframe

str(vg)
## '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 ...

berdasarkan tipe data diatas, tipe data sudah pada tipe yang tepat. sehingga tidak perlu dilakukan perubahan

3 Data Analysis and Processing

3.1 Top 5 Rank of Game

top_rank_game <- head(vg[,c("Rank","Name")], n = 5)
top_rank_game

3.2 Top 5 Favorite Platform

# subset terhadap kolom Platform dan Global_Sales
platform <- vg[,c("Platform","Global_Sales")]
# aggregasi menggunakan fungsi table untuk mengetahui frekuensi yang muncul pada kolom platform dan ploting pie chart
pie(head(sort(table(platform$Platform), decreasing = T), n= 5), 
    main = "Top 5 Favorite Platform")

3.3 Top 5 Platform by Global Sales

# aggregasi pada kolom Platform dan Global_Sales untuk mencari rata-rata
agg_platform <- aggregate(Global_Sales~Platform, platform, FUN = mean)
# sorting terhadap kolom Global_Sales
sort_platform <- head(agg_platform[order(agg_platform$Global_Sales, decreasing = T),], n = 5)
sort_platform
# subseting pada 5 Platform dengan nilai mean tertinggi  
top_platform <- platform[platform$Platform == c("GB","NES","GEN","SNES","PS4"),]
## Warning in platform$Platform == c("GB", "NES", "GEN", "SNES", "PS4"): longer
## object length is not a multiple of shorter object length
# box plot
boxplot(Global_Sales~Platform, top_platform, outline = F,
        main = "Top 5 Platform by Global Sales")

Conclusion

dari boxplot diatas, dapat disimpulan bahwa nilai median tertinggi pada 5 Platform adalah GEN, diikuti dengan GB, NES, SNES dan PS4

3.4 Top 5 Favorite Genre

# subset pada kolom Genre dan Global Sales
genre <- vg[,c("Genre","Global_Sales")]
barplot(head(sort(table(genre$Genre),decreasing = T), n= 5),
        main = "Top 5 Favorite Genre",
        xlab = "Genre",
        ylab = "Freq")

3.5 Top 5 Genre by Global Sales

agg_genre <- aggregate(Global_Sales~Genre, genre, FUN = mean)
agg_genre <- agg_genre[order(agg_genre$Global_Sales, decreasing = T),]
head(agg_genre)
# subset pada baris dengan rata-rata tertinggi 
top_genre <- genre[genre$Genre == c("Action","Sports","Misc","Role-Playing","Shooter"),]
## Warning in genre$Genre == c("Action", "Sports", "Misc", "Role-Playing", : longer
## object length is not a multiple of shorter object length
# ploting dengan boxplot
boxplot(Global_Sales~Genre, top_genre, outline = F,
        main = "Top 5 Genre by Global Sales",
        xlab = "Genre",
        ylab = "Global Sales")

3.5.1 Conclusion

pada boxplot diatas, dapat disimpulkan bahwa nilai median tertinggi pada 5 Genre diatas adalah Shooter, diikutio dengan Sports, Action, Role-Playing dan Misc

3.6 Top 5 Favorite Publisher

publisher <- vg[,c("Publisher","Global_Sales")]
fav_publisher <- head(sort(table(publisher$Publisher),decreasing = T), n = 5)
pie(fav_publisher,
    main = "Top 5 Favorite Publisher")

3.7 Top 5 Publisher by Global Sales

# Aggregasi terhadap kolom Pubsliher dan Global_Sales
agg_publisher <- aggregate(Global_Sales ~ Publisher, publisher, FUN = mean)
# sorting terhadap kolom Global_Sales
sort_agg_publisher <- agg_publisher[order(agg_publisher$Global_Sales, decreasing = T),]
head(sort_agg_publisher, n = 5)
# subet pada 5 baris dengan nilai Global_Sales tertinggi
top_publisher <- publisher[publisher$Publisher == "Palcom"|publisher$Publisher == "Red Orb"|publisher$Publisher == "Nintendo"
                           |publisher$Publisher == "Arena Entertainment"|publisher$Publisher == "UEP Systems",]
# ploting menggunakan boxplot
boxplot(Global_Sales~Publisher, top_publisher, outline = F)

Conclusion

pada boxplot diatas, didapat bahwa nilai median tertinggi pada 5 Publisher adalah Palcom, diikuti dengan Red Orb Arena Entertainment, UEP Systems, dan Nintendo. namun, pada Publisher Palcom dan UEP Systems, masing-masing hanya memiliki 1 data penjualan. sehingga tidak didapatkan adanya sebaran data yaitu min, max dan range.

3.8 Increased Games Sales Each Year

sales_year <- aggregate(Global_Sales ~ Year, vg, FUN = mean)
head(sales_year)
# drop baris yang memiliki nilai N/A pada kolm year
sales_year <- sales_year[drop(sales_year$Year != "N/A"),]
# ploting data 
plot(x = sales_year$Year, y = sales_year$Global_Sales, 
     type = "l",
     main = "Global Sales of Game 1980 - 2020",
     xlab = "Year",
     ylab = "Global Sales")

3.9 Correlation between JP Sales and Global Sales

plot(vg$JP_Sales, vg$Global_Sales, 
     main = "JP Sales vs Global Sales",
     xlab = "JP Sales",
     ylab = "Global Sales")

pada scatter plot diatas, terlihat adanya hubungan antara JP Sales dengan Global Sales, dimana semakin tinggi nilai JP Sales, maka semakin tinggi pula nilai Global Sales

cor(vg$JP_Sales, vg$Global_Sales)
## [1] 0.6118155

didapat nilai korelasi sebesar 0.6. artinya, hubungan antara JP Sales dan Global Sales yaitu positif correlation dengan level moderate

Untuk membuktikan hipotesa bahwa jika semakin besar JP Sales, maka semakin besar nilai Global Sales, kita dapat menggunakan motede t-test. yaitu untuk membuktikan apakah hipotesa tersebut diterima atau tidak

dim(vg)
## [1] 16598    11
mean(vg$JP_Sales)
## [1] 0.07778166
mean(vg$Global_Sales)
## [1] 0.5374407
sd(vg$JP_Sales)
## [1] 0.3092906
sd(vg$Global_Sales)
## [1] 1.555028
jp_sales <- rnorm(16598, mean = 0.07778, sd = 0.3092906)
global_sales <- rnorm(16958, mean = 0.5374407, sd = 1.555028)

t.test(jp_sales, global_sales)
## 
##  Welch Two Sample t-test
## 
## data:  jp_sales and global_sales
## t = -37.861, df = 18352, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.4819881 -0.4345382
## sample estimates:
##  mean of x  mean of y 
## 0.07373261 0.53199577

didapat dari hasil t-test adalah, nilai p-value sebesar 0.00000000000000022. artinya, nilai p-value < 0.5 atau hipotesa diterima

kesimpulannya adalah besarnya penjualan game yang populer di jepang berpengaruh juga pada penjualan game yang populer didunia