Abstract
Este artigo, apresenta uma proposta de análise de uma base de dados de vendas de vídeo games na série histórica de 1980 a 2014 com o objetivo de obter a predição de volumes de vendas globais de vídeo games a partir da análise dos dados de anos anteriores, assim levando a insights de possíveis volumes de vendas futuras de acordo com a variação no mercado ao longo das décadas e previsão de vendas futuras.A explicação sobre o tipo de solução proposta e qual(ais) algoritmos de Aprendizado de Máquina foram aplicados.
A aplicação (elaboração do modelo= treinamento + teste) do(s) algoritmo(s) apresentados no item anterior.
Uma análise de performance do(s) algoritmo(s) proposto(s) com suas respectivas métricas selecionadas de acordo com o problema em questão.
Suas conclusões sobre a aplicabilidade da solução realizada.
library(descr)
library(car)
library(carData)
library(sciplot)
library(tidyverse)
library(dplyr)
library(ggplot2)
library(GGally)
library(DT)
library(readxl)
library(relaimpo)
library(hrbrthemes)
library(corrr)
library(broom)
library(qgraph)
library(lubridate)
library(plotly)
library(latticeExtra)
Etapas principais para a modelagem de regressão:
Definir a variável dependente;
Selecionar variáveis independentes;
Coleta dos dados pareados das respectivas variáveis;
Ajustar o modelo obtendo os coeficientes da equação e valor-p;
Reavaliação das variáveis que permanecerão no modelo;
Ajustar o modelo novamente com as variáveis definitivas, obtendo os coeficientes da equação e valor-p;
Cálculo dos resíduos para avaliar o ajuste do modelo;
Revisão para redefinição e possível transformação de variáveis para melhoria do ajuste do modelo;
Interpretação do modelo ajustado (equação) e cálculos de previsão;
Utilização da equação para predição da base que nao apresenta a variável resposta;
Exportação dos dados gerados no modelo.
Um dos mercados que permanecem em constante aquecimento é o de jogos eletrônicos, seja através de dispositivos móveis, de computadores ou de consoles, é um mercado que busca constantemente a inovação para atrair novos consumidores ou mesmo para fidelizar ainda mais os consumidores já conquistados.
Há uma particularidade específica entre os consumidores de consoles, que é a rivalidade, o que faz com que haja uma constante competitividade buscando a superação do seu concorrente, oferecendo jogos exclusivos ou maior diversidade, diferenciais de desempenho, maior qualidade gráfica, e, hoje em dia, com o advento da conectividade global, recursos de atualização, rankings, competições online, benefícios em assinaturas e todo tipo de atrativos para reter seus clientes.
Todavia, para trazer todos estes recursos ao consumidor existe muito investimento em tecnologia de manufatura e mão de obra especializada e altamente capacitada, o que faz com que o preço final dos dispositivos chegue a valores que nem o cliente mais fiel da marca sente-se muito à vontade para investir em nome da diversão, e mesmo após comprar o dispendioso equipamento, ainda há a necessidade de adquirir os jogos, que geralmente não custam quantias módicas, principalmente os mais sofisticados da atualidade, com suas extensões, atualizações e muitas outras vantagens que podem ser adquiridas como diferenciais para melhor desempenho nos jogos.
Entretanto, os jogos nem sempre tiveram tanta complexidade gráfica, necessidade de recursos e tantos outros benefícios, como os mais recentes, principalmente por limitações de tecnologia, mas mesmo oferecendo uma experiência mais modesta em comparação com o que temos hoje em dia, como toda novidade, os preços praticados sempre acompanharam a demanda, ou seja, relativamente altos no lançamento e decaindo à medida que novos jogos chegavam ao mercado, principalmente acompanhados do lançamento de uma nova plataforma, além disso, pode-se fazer um comparativo no volume de vendas em relação aos diferentes cenários financeiros no mundo ao longo das décadas.
O objetivo desse trabalho foi montar um modelo de regressão linear múltipla para estimar o valor de venda global de video games no ao longo da série histórica de registros de venda de 1980 até 2014, bem como também aplicar para especificamente o ano de 2015 (Y = Global_Sales) , por meio da seleção de algumas variáveis independentes explicativas (Xn) da série histórica de vendas.
Os dados utilizados para realização do trabalho foram disponibilizados através da importação do material no conteúdo do link https://data.world/bobmajor/sales.
setwd("C:/Rpubs")
dados<-read.table("ml_vg.txt", h=T)
dados$Year <- as.factor(dados$Year)
attach(dados)
Na base de dados importada, foram aplicados filtros nas variáveis ano “Year” a fim de apenas utilizar para a montagem da regressão linear múltipla os valores referentes aos anos de 1980 até 2014.
#filtro de da série histórica de 1980 a 2014
dados.1980.2014 <- dados %>%
filter(Year!=2020 & Year!=2016 & Year!=2017 & Year!=2015) %>%
na.omit()
A variável escolhida como resposta do modelo de regressão linear múltipla foi o a venda global de vídeo games (Global_Sales).
Essa variável é calculada através da soma de vendas na América do Norte, União Européia, Japão e Outras regiões do mundo.
Na Figura 1 observa-se a série temporal de vendas de vídeo games a nível global desde 1980 até 2014.
historico.vendas <- dados.1980.2014 %>%
group_by(Year) %>%
summarise(Global_Sales = sum(Global_Sales))
historico.vendas$Year <- as.Date(as.character(historico.vendas$Year), format = "%Y")
historico.vendas$Year <- year(historico.vendas$Year)
# Usual area chart
p <- historico.vendas %>%
ggplot( aes(x=Year, y=Global_Sales)) +
geom_area(fill="#69b3a2", alpha=0.5) +
geom_line(color="#69b3a2") +
ylab("($)") +
theme_ipsum()
# Turn it interactive with ggplotly
p <- ggplotly(p)
p <- p %>% layout(title = 'Figura 1 - Vendas globais de vídeo games ao longo do tempo')
p
Falar sobre o Gráfico.
Um conjunto de resultados de valores de correlação foi montado para todas as variáveis presentes na base de dados com a variável de interesse para resposta. Esse conjunto de informações é apresentado na Figura 2, onde os valores de correlação. Desta forma é possível rapidamente identificar as variáveis que estão mais correlacionadas com a variável Global_Sales.
As variáveis escolhidas para fazerem parte do desenvolvimento do modelo foram: NA_Sales, EU_Sales, JP_Sales.
Cada diagrama de dispersão abaixo representa uma das variáveis explicativas com a variável resposta. O título de cada um dos diagramas apresenta o valor encontrado de correlação.
par(mfrow=c(3,1))
#NA_Sales
plot(dados.1980.2014$NA_Sales,dados.1980.2014$Global_Sales, pch=16, col="black", ylab="Global_Sales", xlab="NA_Sales", las=1, main = cor(dados.1980.2014$NA_Sales,dados.1980.2014$Global_Sales))
#EU_Sales
plot(dados.1980.2014$EU_Sales,dados.1980.2014$Global_Sales, pch=16, col="black", ylab="Global_Sales", xlab="EU_Sales", las=1, main = cor(dados.1980.2014$EU_Sales,dados.1980.2014$Global_Sales))
#JP_Sales
plot(dados.1980.2014$JP_Sales,dados.1980.2014$Global_Sales, pch=16, col="black", ylab="Global_Sales", xlab="JP_Sales", las=1, main = cor(dados.1980.2014$JP_Sales,dados.1980.2014$Global_Sales))
#NA_Sales
correlacao.NA_Sales <- cor(dados.1980.2014$NA_Sales,dados.1980.2014$Global_Sales)
#EU_Sales
correlacao.EU_Sales <- cor(dados.1980.2014$EU_Sales,dados.1980.2014$Global_Sales)
#JP_Sales
correlacao.JP_Sales <- cor(dados.1980.2014$JP_Sales,dados.1980.2014$Global_Sales)
A descrição do que significa cada variável, bem como o seu valor de correlação com a variável Global_Sales está especificado abaixo:
NA_Sales = Vendas na América do Norte, correlação de 0.9421864.
EU_Sales = Vendas na União Européia, correlação de 0.9045458.
JP_Sales = Vendas no Japão, correlação de 0.6181595.
Todas as variáveis selecionadas apresentaram valores de correlação considerados entre moderadamente forte e forte.
A fim de complementar o detalhamento das análises exploratórias das variáveis explicativas foi utilizado a função ggpairs() para montar uma Matriz de correlações. Nessa matriz são apresentados novamente os diagramas de disperção, porém esses estão acompanhados por histogramas e valores obtidos nas correlações. Desta forma, é possível otimizar a visualização das características dessas variáveis em apenas uma figura. Na diagonal da figura observamos os histogramas formados das variáveis selecionadas. Na parte inferior são evidenciados os diagramas de dispersão e na parte superior são mostrados os valores obtidos das correlações.
dados.1980.2014.ggpairs <- dados.1980.2014[, c("NA_Sales", "EU_Sales", "JP_Sales", "Global_Sales")]
ggpairs(dados.1980.2014.ggpairs, title = "Matriz de correlações das variáveis selecionadas para o modelo.") + theme_bw()
Foi calculado também os valores referentes ao fator de inflação da variância (VIF) das variáveis selecionadas, o qual apresenta características a respeito da multicolinearidade.
resultado.rlm <- lm(Global_Sales ~ NA_Sales + EU_Sales + JP_Sales,
data=dados.1980.2014)
vif.variaveis.modelo <- vif(resultado.rlm)
vif.NA_Sales <- vif.variaveis.modelo[1]
vif.EU_Sales <- vif.variaveis.modelo[2]
vif.JP_Sales <- vif.variaveis.modelo[3]
Os valores obtidos para os fatores de inflação da variâncias (VIF) foram:
NA_Sales = 2.5859385.
EU_Sales = 2.5561167.
JP_Sales = 1.2974374.
Todos os valores encontrados para VIF apresentam-se menores que 10, o que sinaliza que as variáveis não apresentam problemas de multicolinearidade.
Com as variáveis explicativas selecionadas, parte-se para o desenvolvimento do modelo por meio da regressão linear múltipla com a utilização da função lm() inserindo as cinco variáveis em relação a variável resposta Global_Sales. Os detalhes do resultado desta função estão expostos abaixo.
resultado.rlm <- lm(Global_Sales ~ NA_Sales + EU_Sales + JP_Sales,
data=dados.1980.2014)
summary(resultado.rlm)
##
## Call:
## lm(formula = Global_Sales ~ NA_Sales + EU_Sales + JP_Sales, data = dados.1980.2014)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.387 -0.012 -0.005 0.002 10.054
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.006514 0.001126 5.783 7.49e-09 ***
## NA_Sales 1.046244 0.002034 514.410 < 2e-16 ***
## EU_Sales 1.221762 0.003306 369.597 < 2e-16 ***
## JP_Sales 0.962967 0.003802 253.310 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1318 on 15341 degrees of freedom
## Multiple R-squared: 0.9932, Adjusted R-squared: 0.9932
## F-statistic: 7.474e+05 on 3 and 15341 DF, p-value: < 2.2e-16
r2.resultado.rlm <- summary(resultado.rlm)$r.squared
r2.resultado.rlm <- round(r2.resultado.rlm*100, digits = 2)
adj.r2.resultado.rlm <- summary(resultado.rlm)$adj.r.squared
adj.r2.resultado.rlm <- round(adj.r2.resultado.rlm*100, digits = 2)
p.valor.resultado.rlm <- glance(resultado.rlm)$p.value
#media erro quadrado
emq <- sqrt(sum((resultado.rlm$residuals)^2)/resultado.rlm$df.residual)
#RSE, erro padrao residuo
rse <- (emq/mean(dados.1980.2014$Global_Sales))*100 #3%, baixo.
Constata-se que o modelo utilizado com as cinco variáveis referentes a série histórica explicaram (Adjusted R-squared) 99.32% da variação dos dados de Global_Sales, o conjunto do modelo foi significativo apresentando um p-valor de 0.
Desta maneira, a equação gerada do modelo de regressão linear múltipla com seus coeficientes está demonstrada abaixo, conforme o output da função.
equacao.resultado.rlm <- as.formula(
paste0("Global_Sales ~ ", round(resultado.rlm$coefficients, digits = 5), " + ",
paste(sprintf("%.3f * %s",
resultado.rlm$coefficients[-1],
names(coefficients(resultado.rlm)[-1])),
collapse="+")
)
)
equacao.resultado.rlm
## Global_Sales ~ 0.00651 + 1.046 * NA_Sales + 1.222 * EU_Sales +
## 0.963 * JP_Sales
Todos os coeficiente das variáveis explicativas utilizadas na regressão apresentaram valor de p significativo. Estes valores dos coeficientes de cada uma das variáveis, bem como os respectivos valores de p estão listado a seguir.
resultado.rlm$coefficients
## (Intercept) NA_Sales EU_Sales JP_Sales
## 0.006514182 1.046243628 1.221762341 0.962967341
p.value.coef.NA_Sales <- coef(summary(resultado.rlm))["NA_Sales","Pr(>|t|)"]
p.value.coef.EU_Sales <- coef(summary(resultado.rlm))["EU_Sales","Pr(>|t|)"]
p.value.coef.JP_Sales <- coef(summary(resultado.rlm))["JP_Sales","Pr(>|t|)"]
O valor-p para o coeficiente de NA_Sales resultou em: 0.
O valor-p para o coeficiente de EU_Sales resultou em:0.
O valor-p para o coeficiente de JP_Sales resultou em:0.
O modelo apresentou que 99.32% da variação dos dados de valores de venda global de vídeo games, Global_Sales, de 19080 até 2014 foram explicados pela venda na América do Norte (NA_Sales) somado com as vendas na União Européia (EU_Sales), somado com as vendas no Japão (JP_Sales), conforme a equação:
equacao.resultado.rlm
## Global_Sales ~ 0.00651 + 1.046 * NA_Sales + 1.222 * EU_Sales +
## 0.963 * JP_Sales
coef.resultado.rlm.NA_Sales <- resultado.rlm$coefficients[2]
coef.resultado.rlm.EU_Sales <- resultado.rlm$coefficients[3]
coef.resultado.rlm.JP_Sales <- resultado.rlm$coefficients[4]
X1 (NA_Sales): A cada ponto valor a mais de venda na América do Norte, observou-se em média um acréscimo de 1.0462436 no valor de venda Global.
X2 (EU_Sales): A cada ponto valor a mais de venda na União Européia, observou-se em média um acréscimo de 1.2217623 no valor de venda Global.
X3 (JP_Sales): A cada ponto valor a mais de venda no Japão, observou-se em média um acréscimo de 0.9629673 no valor de venda Global.
Todas as variáveis explicativas selecionadas para o modelo foram significativas. Portanto, todas estão adequadas para fazerem parte no modelo proposto na tarefa.
Buscou-se também fazer uma verificação da importância relativa de cada uma das variáveis explicativas sobre a variável resposta. Os resultados obtidos estão no Quadro 1.
avaliacao.resultado.rlm <- calc.relimp(resultado.rlm, type = "lmg")
avaliacao.resultado.rlm
## Response variable: Global_Sales
## Total response variance: 2.554117
## Analysis based on 15345 observations
##
## 3 Regressors:
## NA_Sales EU_Sales JP_Sales
## Proportion of variance explained by model: 99.32%
## Metrics are not normalized (rela=FALSE).
##
## Relative importance metrics:
##
## lmg
## NA_Sales 0.4511703
## EU_Sales 0.3880595
## JP_Sales 0.1539743
##
## Average coefficients for different model sizes:
##
## 1X 2Xs 3Xs
## NA_Sales 1.790420 1.365658 1.0462436
## EU_Sales 2.809972 1.899148 1.2217623
## JP_Sales 3.099707 1.270501 0.9629673
#dataframe com os resultados da avaliacao.resultado.rlm
impo.variaveis <- data.frame(avaliacao.resultado.rlm$lmg, avaliacao.resultado.rlm$lmg.rank, avaliacao.resultado.rlm$namen[-1])
#rank de $lmg
impo.variaveis <- arrange(impo.variaveis, desc(avaliacao.resultado.rlm$lmg))
impo.variaveis$p.values <- c(round(p.value.coef.NA_Sales, digits = 5),
round(p.value.coef.EU_Sales, digits = 5),
round(p.value.coef.JP_Sales, digits = 5))
datatable(impo.variaveis, colnames = c('importância relativa', 'rank', 'Variáveis', "valor-p"),
caption = 'Quadro 1: Rank de importância relativa das variáveis explicativas do modelo de regressão linear múltipla.') %>%
formatStyle('p.values',
backgroundColor = styleInterval(0.05, c('lightgreen', 'lightred'))) %>%
formatPercentage('avaliacao.resultado.rlm.lmg', 2)
Nesse quadro, observa-se que a ordem de importância relativa das variáveis explicativas no modelo apresenta o seguinte sentido: NA_Sales, EU_Sales e JP_Sales.
Os resíduos são a diferença entre o valor da variável resposta Global_Sales com o valor de Global_Sales previsto pelo modelo. Nesta etapa se faz a avaliação visual da normalidade dos resíduos do modelo. Nas figuras abaixo são mostrados o gráfico quantil-quantil da normal e o histograma dos resultados dos resíduos.
O gráfico quantil-quantil (q-q) apresenta no eixo y os quantis observados da amostra e o eixo x os quantis teóricos da distribuição normal padrão.
O histograma apresenta a densidade de número de observações no eixo y. O eixo x mostra os valores dos resíduos. Neste histograma foi adicionado a linha em cor vermelha da densidade dos resíduos observados através do do resultado do modelo da regressão linear múltipla.
Ambas as figuras nos indicam que os dados dos resíduos da regressão apresentam normalidade.
par(mfrow=c(1,2))
qqnorm(resultado.rlm$residuals, ylab="Residuos",xlab="Quantis teoricos",main="Gráfico quantil-quantil")
qqline(resultado.rlm$residuals, lty=1, col="red")
hist(resultado.rlm$residuals, col = 'gray', xlab = 'Resíduos', ylab = 'Densidade de probabilidade', probability = TRUE, main = "Histograma dos Resíduos")
lines(density(resultado.rlm$residuals), col="red")
Complementa-se no diagnóstico dos resíduos do modelo a verificação da homocedasticidade. No qual busca-se entender se a variância dos resíduos se mostra constante a medida que os valores preditos pela rgressão aumentam.
par(mfrow=c(2,2))
plot(fitted(resultado.rlm),residuals(resultado.rlm),xlab="Valores Preditos pelo Modelo (VPM)",ylab="Resíduos", pch=16, main = "Resíduos e VPM")
abline(h=0, col="red")
plot(dados.1980.2014$NA_Sales, residuals(resultado.rlm),xlab="NA_Sales ",ylab="Residuos", pch=16)
abline(h=0, col="red")
plot(dados.1980.2014$EU_Sales,residuals(resultado.rlm),xlab="EU_Sales",ylab="Residuos", pch=16)
abline(h=0, col="red")
plot(dados.1980.2014$JP_Sales,residuals(resultado.rlm),xlab="JP_Sales",ylab="Residuos", pch=16)
abline(h=0, col="red")
Na figura titulada como Resíduos e VPM percebe-se que conforme ocorre um aumento nos valores ajustados do modelo os valores dos resíduos se mostram com variação aleatória. Destaca-se a homocedasticidade, ou seja, apresenta-se uma variabilidade dos resíduos constante.
As demais figuras apresentadas nos mostram a variação dos valores dos resíduos do modelo em relação a cada uma das variedades explicativas utilizadas na composição da regressão linear múltipla.
Aplicou-se o modelo de regressão linear múltipla desenvolvido sobre a base de dados do histórico de vendas globais de vídeo games de 1980 até 2014 a fim de gerar valores de predição do Global_Sales (fit) e comparar com os valores reais de Global_Sales e avaliar seus resultados.
predicao <- predict(resultado.rlm, newdata=dados.1980.2014, se.fit = TRUE, type="response")
dados.1980.2014 <- data.frame(dados.1980.2014,predicao)
Anteriormente foi apresentado o resultado de um histograma dos resíduos através da extração dos valores direto do resultado da regressão. Neste momento, foram calculados os resídos do modelo através da diferença entre o valor real de Global_Sales e o valor proposto pelo modelo desenvolvido (fit). Observamos as características dos resíduos através do Histograma e do Boxplot.
A diferença deste histograma dos resíduos para o histgrama dos resíduos anterior é que este apresenta a frequência em valor absoluto e o anterior em valor percentual.
dados.1980.2014$residuos <- dados.1980.2014$Global_Sales - dados.1980.2014$fit
media.residuos.modelo <- mean(dados.1980.2014$residuos)
par(mfrow=c(1,2))
hist(dados.1980.2014$residuos , border=F , col=rgb(0.1,0.8,0.3,0.5) , xlab="resíduos" , main="Resíduos (Global_Sales - fit)")
abline(v=media.residuos.modelo, col="red", lty=2)
boxplot(dados.1980.2014$residuos , xlab="resíduos" , col=rgb(0.8,0.8,0.3,0.5) , las=2, main="Resíduos (Global_Sales - fit)")
abline(h=media.residuos.modelo, col="red", lty=2)
Foi montado um diagrama de dispersão para visualizar os valores gerados pelo modelo para o Global_Sales (fit) com os valores reais do Global_Sales. O resutado apresenta uma relação de correlação forte entre os resultados do Global_Sales através do modelo preditivo (fit) com e os valores reais do Global_Sales da base de dados.
resultado.modelo <-lm(dados.1980.2014$fit~dados.1980.2014$Global_Sales)
plot.resultado.modelo <- ggplot(dados.1980.2014, aes(x=dados.1980.2014$fit, y=dados.1980.2014$Global_Sales)) +
geom_point() +
geom_smooth(method=lm , color="red", fill="#69b3a2", se=TRUE) +
theme_ipsum()
plot.resultado.modelo + ggtitle("Global_Sales e valores do modelo (fit)") +
xlab("Predição do modelo (fit)") + ylab("Global_Sales")
De maneira complementar, a fim de verificar acurácia do modelo, executou-se o teste de correlação linear entre a variável Global_Sales e o valor estimado para essa variável previsto no modelo (fit).
resultado.cor.test <- cor.test(dados.1980.2014$Global_Sales, dados.1980.2014$fit)
resultado.cor.test
##
## Pearson's product-moment correlation
##
## data: dados.1980.2014$Global_Sales and dados.1980.2014$fit
## t = 1497.4, df = 15343, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9964870 0.9967021
## sample estimates:
## cor
## 0.9965963
resultado.cor.test.valor.p <- resultado.cor.test$p.value
resultado.cor.test.cor <- resultado.cor.test$estimate
Existe correlação linear entre o valor do Global_Sales e o valor previsto para essa variável pelo modelo de regressão linear múltipla (valor-p 0). Quanto maior o valor estimado pelo modelo (fit), maior o valor do Global_Sales, correlação de 0.9965963.
Através do cálculo do erro de estimativa relativo, variação percentual entre o valor previsto pelo modelo (fit) e o valor real do Global_Sales, montou-se uma visualização desse parâmetro em histograma e boxplot.
dados.1980.2014$erro_estimativa_relativo <- (dados.1980.2014$fit-dados.1980.2014$Global_Sales)/dados.1980.2014$Global_Sales
dados.1980.2014$erro_estimativa_percentual <- round(((dados.1980.2014$fit-dados.1980.2014$Global_Sales)/dados.1980.2014$Global_Sales)*100, digits = 2)
first.q.eep <- quantile(dados.1980.2014$erro_estimativa_percentual, 0.25)
third.q.eep <- quantile(dados.1980.2014$erro_estimativa_percentual, 0.75)
media.eep <- mean(dados.1980.2014$erro_estimativa_percentual)
par(mfrow=c(1,2))
hist(dados.1980.2014$erro_estimativa_percentual , border=F , col=rgb(0.1,0.8,0.3,0.5) , xlab="erro de estimativa relativo (EER)" , main="Histograma de EER")
abline(v=media.eep, col="red", lty=2)
boxplot(dados.1980.2014$erro_estimativa_percentual , xlab="erro de estimativa relativo (EER)" , col=rgb(0.8,0.8,0.3,0.5) , las=2, main="Boxplot de EER")
abline(h=media.eep, col="red", lty=2)
É possível observar que 50% da variação percentual entre o valor previsto pelo modelo e o valor real do Global_Sales ficou entre -0.92% e 10.77%. Ou seja, uva variação pequena.
Em média, o erro de estimativa relativo que foi observado no modelo foi de 7.859972%, representado pela linha vermelha tracejada nas figuras do histograma e boxplot.
A acurácia da predição do modelo estatístico também pode ser quantificada através do erro relativo médio absoluto (MAPE) do modelo, quanto menor for o valor, melhor é o resultado deste índice.
MAPE <- mean(abs(dados.1980.2014$fit-dados.1980.2014$Global_Sales)/dados.1980.2014$Global_Sales,na.rm = TRUE)*100
O erro relativo médio absoluto das previsões do modelo resultou em 10.8673155% (MAPE). Um valor considerado baixo, refornçando a qualidade do resultado do modelo.
O gráfico abaixo representa como o modelo gerado foi capaz de prever os valores de vendas globais de forma satisfatória. Percebe-se que há pouca variação entre o valor real de venda global e o previsto do modelo.
dados.globalsales.modelo <- dados.1980.2014 %>%
group_by(Year) %>%
summarise(Global_Sales = sum(Global_Sales),
fit = sum(fit))
# --> construct separate plots for each series
Global_Sales.graf <- xyplot(Global_Sales ~ Year, dados.globalsales.modelo, type = "l" , lwd=2)
fit.graf <- xyplot(fit ~ Year, dados.globalsales.modelo, type = "l", lwd=2)
# --> Make the plot with second y axis AND legend:
doubleYScale(Global_Sales.graf, fit.graf, text = c("Global_Sales", "fit") , add.ylab2 = TRUE)
dados.2015 <- dados %>%
group_by(Year) %>%
summarise(NA_Sales = sum(NA_Sales),
EU_Sales = sum(EU_Sales),
JP_Sales = sum(JP_Sales),
Global_Sales = sum(Global_Sales))
equacao.resultado.rlm
## Global_Sales ~ 0.00651 + 1.046 * NA_Sales + 1.222 * EU_Sales +
## 0.963 * JP_Sales
global.sales.estimativa.2015 <- 0.00651 + 1.046*102.82 + 1.222*97.71 + 0.963*33.52
global.sales.2015 <- dados.2015$Global_Sales[36]
Neste sentido, buscou-se prever o valor de venda do ano de 2015 com base no histórico de 1980 até 2014. Aplicando a equação gerada pelo modelo da base histórica para o ano de 2015 resulta em um valor muito próximo ao acontecido na realidade de vendas globais de vídeo games, valor de 259.23761, muito próximo ao valor real do ano de 2015, que foi de 264.24.
O modelo de predição da variável resposta Global_Sales através de regressão linear múltipla de três variáveis selecionadas, NA_Sales, EU_Sales e JP_Sales da base de dados histórica de vídeo games de 1980 até 2014 foi signigicativo (valor-p 0).
Estas variáveis explicativas utilizadas em conjunto explicaram 99.32% da variação dos dados de vendas globais, Global_Sales na série histórica. O valor do erro relativo médio absoluto do modelo proposto resultou em 10.8673155%.
Conclui-se como aceitáveis estas variáveis explicativas selecionadas para prever a variável resposta Global_Sales.