library(tidyverse)
library(here)
library(gridExtra)
library(grid)
library(dplyr)
theme_set(theme_bw())
# SEMPRE read_csv NUNCA read.csv
jogos = read_csv(
here("data/jogos.csv"),
col_types = cols(
.default = col_integer(),
title = col_character(),
esrb_rating = col_character()
)
)
jogos$esrb_rating_num <- plyr::mapvalues(jogos$esrb_rating,
from=c("E", "ET", "T", "M"),
to=c(1, 2, 3, 4))
jogos$esrb_rating_num <- as.numeric(jogos$esrb_rating_num)
glimpse(jogos)
## Rows: 1,895
## Columns: 35
## $ title <chr> "Monster Jam Steel Titans 2", "Subnautica: Be…
## $ console <int> 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, …
## $ alcohol_reference <int> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, …
## $ animated_blood <int> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ blood <int> 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, …
## $ blood_and_gore <int> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, …
## $ cartoon_violence <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ crude_humor <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ drug_reference <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ fantasy_violence <int> 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ intense_violence <int> 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, …
## $ language <int> 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ lyrics <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mature_humor <int> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, …
## $ mild_blood <int> 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mild_cartoon_violence <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
## $ mild_fantasy_violence <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mild_language <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mild_lyrics <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, …
## $ mild_suggestive_themes <int> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mild_violence <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ no_descriptors <int> 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ nudity <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ partial_nudity <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ sexual_content <int> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, …
## $ sexual_themes <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ simulated_gambling <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ strong_janguage <int> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, …
## $ strong_sexual_content <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
## $ suggestive_themes <int> 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, …
## $ use_of_alcohol <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ use_of_drugs_and_alcohol <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ violence <int> 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ esrb_rating <chr> "E", "ET", "M", "ET", "T", "E", "T", "T", "ET…
## $ esrb_rating_num <dbl> 1, 2, 4, 2, 3, 1, 3, 3, 2, 3, 1, 4, 2, 4, 4, …
Foram obtidos dados de 819 jogos que serão utilizados na nossa análise. Os dados foram utilizados anteriormente na disciplina de Ciência de dados preditiva, onde tentamos prever a faixa etária de novos jogos.
Alguns dados extraídos que iremos referenciar durante a análise são:
A ESRB (Entertainment Software Rating Board) é uma organização independente do governo, que possui o sistema de classificação utilizado pelos games vendidos nos EUA, Canadá e América Latina. As classificações do ESRB estão divididas em:
Com base nisso, e observando o cenário de jogos e suas classificação, vamos tentar analisar certas caracteristicas que podem influenciar essas faixas que podem influeciar a suas vendas em lojas e até paises.
Assim como em todo o planeta, em nosso país, a maconha, o tabaco e as bebidas alcoólicas são as drogas recreativas mais usadas e são utilizadas como fonte de divertimento entre pessoas de todas idades. Ainda que sejam consumidas também por adultos, a maioria dos usuários tem entre 18 e 25 anos de idade. Com base nisso, podemos fazer uma análise de como essas drogas afetam a faixa etária dos jogos? Como ponto de partida podemos verificar a relação da presença de álcool nos jogos através do gráfico:
pres_alcool = jogos %>%
select(use_of_alcohol, alcohol_reference, esrb_rating) %>%
pivot_longer(c(use_of_alcohol, alcohol_reference), names_to = "alcool", values_to = "value") %>%
filter(value == 1)
pres_alcool %>%
ggplot(aes(x = esrb_rating, fill = alcool)) +
geom_bar(binwidth = .5, color = "black", position = "dodge") +
scale_fill_manual(values = c("#53B0EC", "#A3FAF3")) +
labs(y = "Quantidade de jogos", x = "Faixa Etária", title ="Álcool nos jogos", fill = "Presença de Álcool")
## Warning: Ignoring unknown parameters: binwidth
Ao analisar o gráfico, podemos observar que a referência ao álcool não interfere na faixa etária dos jogos, porém o uso de álcool pode influenciar na decisão nas faixa etárias iniciais, colocando um jogo com faixa E (todos os públicos) para a faixa ET (todos acima de 10 anos).
A partir disso, vamos adicionar ao gráfico a presença de outras drogas, para que assim possamos ver a interferência dela na aplicação da faixa etária:
pres_drogas = jogos %>%
mutate(drugs_and_alcohol_reference = (alcohol_reference | drug_reference)) %>%
select(use_of_drugs_and_alcohol, drugs_and_alcohol_reference, esrb_rating) %>%
pivot_longer(c(use_of_drugs_and_alcohol, drugs_and_alcohol_reference), names_to = "drogas", values_to = "value") %>%
filter(value == 1)
pres_drogas %>%
ggplot(aes(x = esrb_rating, fill = drogas)) +
geom_bar(binwidth = .5, color = "black", position = "dodge") +
scale_fill_manual(values = c("#FA7907", "#FCC474")) +
labs(y = "Quantidade de jogos", x = "Faixa Etária", title ="Drogas recreativas nos jogos", fill = "Drogas Recreativas")
## Warning: Ignoring unknown parameters: binwidth
Após analisar o grafico de álcool e o apresentado agora, percebemos algumas coisas, entre elas:
Existe a presença de um jogo com uso de alcool e drogas na faixa para todos os publicos;
A presença de jogos com referência a alcool e drogas aumenta na faixa M (Adultos).
Verificando o jogo presente na faixa E(Todos os públicos) temos o Shovel Knight: Treasure Trove, que utiliza de álcool e drogas de forma lúdica como um item para dar uma melhoria ao seu personagem. Como ultimo ponto, temos que a referência a alcool e drogas tem um leve aumento na faixa etária M (adultos), mas ainda sim é uma porcentagem minima de jogos, sendo menos de 2% da amostra.
Por fim, concluimos que o uso de drogas recreativas nos jogos não influência na faixa etária dos jogos, porém o uso de drogas e álcool de forma não ludica tende a elevar sua faixa quando analisado jogos para públicos mais jovens.
Agora, vamos analisar se o desenho/animação/cartoon é um modo de atenuar a violência e diminuir a classificação indicativa dos jogos. Os dados que temos sobre violência lúdica são: - cartoon_violence - mild_cartoon_violence
Vamos criar uma nova métrica que é a soma das duas métricas acima. Essa nova métrica vai indicar qualquer tipo de violência cartunesca no jogo. Vamos ver como ela se comporta para cada faixa indicativa.
jogos %>%
group_by(esrb_rating_num) %>%
mutate(cartoon = sum(cartoon_violence) + sum(mild_cartoon_violence)) %>%
mutate(esrb_rating = factor(esrb_rating, levels=c("E", "ET", "T", "M"))) %>%
ggplot(aes(x=esrb_rating, y=cartoon)) +
theme(legend.position="none") +
labs(x = "Faixa etária", y = "Número de jogos com violência cartunesca") +
geom_line(aes(group=1, color=c("#FCC474")))
Como podemos ver, a quantidade de jogos com violência cartunesca está concentrada na faixa etária ET (acima de 10 anos), e diminui bruscamente na última faixa etária. Isso é um bom indício de jogos com violência cartum são raramente classificados como maduros. Se compararmos com o mesmo gráfico para violência não-cartunesca, mostrado abaixo, vemos que a violência realista move a distribuição para classificações etárias mais maduras.
jogos %>%
group_by(esrb_rating_num) %>%
mutate(violence = sum(violence) + sum(mild_violence)) %>%
mutate(esrb_rating = factor(esrb_rating, levels=c("E", "ET", "T", "M"))) %>%
ggplot(aes(x=esrb_rating, y=violence)) +
theme(legend.position="none") +
labs(x = "Faixa etária", y = "Número de jogos com violência") +
geom_line(aes(group=1, color=c("#FCC474")))
Quando se fala em jogos e filmes, a presença de sangue é sempre algo a ser analisado pelos paises ao fazer sua classificação, paises como a china pedem a censura de sangue alterando sua cor para que tal jogo ou filme seja utilizado pela população. Como o objetivo da análise são o jogos, vamos falar apenas sobre eles. primeiramente queremos ver quantos jogos possuem sangue:
jogos %>%
group_by(esrb_rating) %>%
summarise(jogos_com_sangue=sum(blood), media=mean(blood))
## # A tibble: 4 x 3
## esrb_rating jogos_com_sangue media
## <chr> <int> <dbl>
## 1 E 0 0
## 2 ET 0 0
## 3 M 165 0.426
## 4 T 267 0.388
#summarise(correlacao=cor(blood, esrb_rating_num, method="pearson"))
Analisando a média e os jogos com sangue podemos ver claramente que na amostra utilizada jogo que apresentam sangue não estão presentes na faixa etária E (todos os públicos) e na ET (publicos acima de 10 anos). Além disso, jogos com conteúdo adulto (M) possuem uma quantidade significativa de jogos com presença de sangue, ultrapassando os 40%. Adicionando outras variaveis mais simples, como a presença animações descoloridas ou não-realistas de sangue e até se o jogo possui alguma representação de sangue, podemos ainda analisar outras coisas:
pres_drogas = jogos %>%
mutate(drugs_and_alcohol_reference = (blood | mild_blood | animated_blood)) %>%
select(blood, mild_blood, animated_blood, esrb_rating) %>%
pivot_longer(c(blood, mild_blood, animated_blood), names_to = "sangue", values_to = "value") %>%
filter(value == 1)
pres_drogas %>%
ggplot(aes(x = esrb_rating, fill = sangue)) +
geom_bar(binwidth = .5, color = "black", position = "dodge") +
scale_fill_manual(values = c("#C74841", "#FF0C00", "#F36E67")) +
labs(y = "Quantidade de jogos", x = "Faixa Etária", title ="Drogas recreativas nos jogos", fill = "Drogas Recreativas")
## Warning: Ignoring unknown parameters: binwidth
Observando o gráfico, vemos que a presença explicita de sangue influência a faixa etária, diferente de outros tipos de representações. onde podemos ver uma presença consideravel nas faixas adulta e adolescente. A partir disso, podemos analisar uma correlação entre as faixas e a presença de sangue no jogo e teremos:
jogos %>%
summarise(correlacao=cor(blood, esrb_rating_num, method="spearman"))
## # A tibble: 1 x 1
## correlacao
## <dbl>
## 1 0.436
Com o calculo da correlação, podemos ver uma influência da presença do sangue na faixa etária dos jogos, onde obtemos uma correlação de 0,43. Com esses dados podemos concluir que a exposição de sangue no jogo pode coloca-lo em classificações mais altas o que pode interferir as vendas em lojas e em paises com classificações mais rigorosas.
Ao analisarmos essas 3 caracteristicas:
Podemos observar que enquanto a presença de sangue influência a classificação a elevar as faixa para T (adolescente) e M (adultos), a presença de violência em cartoon influência a classificação para públicos mais jovens na faixa de E (todos os publicos) e ET (acima de 10 anos). Por fim, vemos que por mais que exista uma presença de drogas recreativas em sua maior parte nas faixas acima do E (todos os públicos), ele não aparenta ser um parâmetro crítico que pode influenciar a classificação do jogo.
José Amândio e Gabriel Tavares.