Identificação de variáveis Qualitativas e
Quantitativas
# Tipo de cada coluna (variável):
tipos_variaveis <- sapply(varejo_dados, class)
# Número de variáveis Quantitativas:
quantitade_quantitativas <- sum(tipos_variaveis %in% c("numeric","integer"))
# Número de variáveis Qualitativas:
quantitade_qualitativas <- sum(tipos_variaveis %in% c("factor","character"))
# Exibindo a quantidade:
cat("Número de variáveis Qualitativas:", quantitade_qualitativas,"\n")
## Número de variáveis Qualitativas: 10
cat("Número de variáveis Quantitativas:", quantitade_quantitativas,"\n")
## Número de variáveis Quantitativas: 1
# Qualitativas e Quantitativas:
variaveis_qualitativas <- names(varejo_dados)[tipos_variaveis %in% c("character","factor")]
variaveis_quantitativas <- names(varejo_dados)[tipos_variaveis %in% c("numeric","integer")]
cat("Variáveis Qualitativas:", variaveis_qualitativas,"\n")
## Variáveis Qualitativas: ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria
cat("Variáveis Quantitativas:", variaveis_quantitativas,"\n")
## Variáveis Quantitativas: Valor_Venda
Análise Exploratória
# Resumo estatístico da coluna com o valor de venda:
summary(varejo_dados$Valor_Venda)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.444 17.248 54.272 230.470 209.933 22638.480
# Desvio padrão:
sd(varejo_dados$Valor_Venda)
## [1] 627.5043
Informações Principais:
Alta Variabilidade: O desvio padrão (627,50) em
relação à média indica uma grande variabilidade nos valores de venda,
com algumas transações sendo significativamente maiores que outras.
Distribuição Assimétrica: Podemos notar facilmente
uma diferença clara entre a média (230,47) e a mediana (54,27), o que
indica que a distribuição dos valores de venda é assimétrica. Ou seja,
há algumas vendas muito elevadas que estão puxando a média para
cima.
Comentários: Conforme a nova visualização com a
transformação logarítmica, podemos observar que a maioria das vendas
está concentrada entre 10 e 1.000 unidades monetárias. Isso é
consistente com os valores centrais do conjunto de dados, onde a mediana
(54,27) e a média (230,47) se situam, sugerindo que a maior parte das
vendas ocorre em faixas de valores relativamente baixos, mas com uma
distribuição que se estende até valores maiores.
1º Quartil (25%): 25% das vendas são inferiores a
17,25 unidades monetárias.
Mediana (50%): O valor mediano de venda é de 54,27
unidades monetárias, o que significa que metade das vendas são
inferiores a este valor.
3º Quartil (75%): 75% das vendas são inferiores a
209,93 unidades monetárias.
Conclusão sobre os quartis: Fica de fácil percepção
que a maioria dos valores de venda está concentrada em torno de valores
mais baixos, como indicado pelos quartis (25% das vendas são abaixo de
17,25 e 75% abaixo de 209,93). Isso pode sugerir que a maior parte das
vendas é de itens de menor valor, com poucos itens de alto valor
impactando significativamente o total.
Histograma: Como observamos anteriormente, a
maioria dos valores de venda se encontra abaixo de 1.000 unidades
monetárias. Para visualizar e verificar melhor essa distribuição e
confirmar essa observação, vamos criar um histograma que exibe a
frequência dos valores de venda. Ajustaremos o intervalo do eixo X até
3.000 unidades monetárias para capturar não apenas o pico de vendas, mas
também os valores mais elevados e raros, proporcionando uma visão
abrangente da distribuição de vendas.
# Histograma:
varejo_dados %>%
ggplot(aes(x = Valor_Venda)) +
geom_histogram(binwidth = 200, color = "black", fill = "blue", alpha = 0.4) +
coord_cartesian( xlim = c(0,3000) ) + ggtitle("Distribuição dos valores de venda") + xlab("Valor de Venda") + ylab("Contagem")

Comentários: Como podemos observar, a maioria das
vendas está concentrada em valores monetários abaixo de 1.000, com um
destaque significativo para vendas abaixo de 500 unidades monetárias.
Isso confirma nossa conclusão anterior de que a maior parte das
transações ocorre em faixas de preços mais baixas, reforçando a ideia de
que a demanda predominante está voltada para produtos de menor valor.
Além disso, o terceiro quartil (Q3) indica que 75% das vendas são
inferiores a 209,93 unidades monetárias, corroborando com o histograma e
confirmando que a maioria dos valores de venda realmente está abaixo de
500 unidades monetárias.
Resolução das perguntas de negócio

Pergunta de negócio 2: Qual o Total de Vendas Por
Data do Pedido?
total_vendas_por_data_pedido <- varejo_dados %>%
group_by(Data_Pedido) %>%
summarise(Total_vendas = sum(Valor_Venda)) %>%
arrange(desc(Total_vendas))
total_vendas_por_data_pedido
## # A tibble: 1,226 × 2
## Data_Pedido Total_vendas
## <chr> <dbl>
## 1 18/03/2015 28107.
## 2 02/10/2017 18453.
## 3 22/10/2018 15159.
## 4 23/03/2018 14816.
## 5 08/09/2015 14228.
## 6 17/11/2018 13409.
## 7 17/12/2017 12185.
## 8 17/11/2015 11544.
## 9 17/09/2016 11525.
## 10 04/11/2018 10664.
## # ℹ 1,216 more rows
Pergunta de negócio 5: Qual Segmento Teve o Maior
valor Total de Vendas?
# Valor total por segmento:
segmentos_maior_valor <- varejo_dados %>%
group_by(Segmento) %>%
summarise(total_vendas = sum(Valor_Venda)) %>%
arrange(desc(total_vendas))
# Exibindo:
segmentos_maior_valor
## # A tibble: 3 × 2
## Segmento total_vendas
## <chr> <dbl>
## 1 Consumer 1133834.
## 2 Corporate 679232.
## 3 Home Office 422491.
# Visualização:
segmentos_maior_valor %>%
ggplot(aes(x = reorder(Segmento,total_vendas), y = total_vendas, fill = Segmento)) +
geom_col(color = "black", alpha = 0.8) +
ggtitle("Valor total de vendas por segmento") +
xlab("Segmento") + ylab("Valor Total de Vendas")

Comentários: O segmento com o maior valor total de
vendas é o ‘Consumer’. Em contraste, o segmento ‘Home Office’ apresenta
o menor valor total de vendas.
Insights Potenciais: O segmento ‘Home Office’
apresenta o menor valor total de vendas. Isso pode indicar uma menor
penetração nesse segmento ou uma menor demanda. No entanto, considerando
o aumento do trabalho remoto e a popularidade crescente de configurações
de home office, há uma oportunidade potencial de expandir as ofertas e
campanhas de marketing para este segmento.
Com base no desempenho atual, a empresa pode decidir alocar mais
recursos para o segmento ‘Consumer’ para maximizar a receita, enquanto
investe em campanhas específicas para fomentar o crescimento nos
segmentos ‘Corporate’ e ‘Home Office’.
Pergunta de negócio 6: Qual o Total de Vendas Por
Segmento e Por Ano?
# Convertendo a coluna Data_Pedido para o formato de data, caso ainda não esteja:
varejo_dados <- varejo_dados %>%
mutate(Data_Pedido = as.Date(Data_Pedido, format = "%d/%m/%Y"))
# Extraindo o ano da variável para realizar a devida análise:
varejo_dados <- varejo_dados %>%
mutate(Ano = lubridate::year(Data_Pedido))
# Efetuando de fato o cálculo do total de vendas por segmento e por ano:
total_vendas_segmento_ano <- varejo_dados %>%
group_by(Segmento, Ano) %>%
summarise(total_venda = sum(Valor_Venda)) %>%
arrange(desc(total_venda))
total_vendas_segmento_ano
## # A tibble: 12 × 3
## # Groups: Segmento [3]
## Segmento Ano total_venda
## <chr> <dbl> <dbl>
## 1 Consumer 2018 323360.
## 2 Consumer 2017 288460.
## 3 Consumer 2016 265295.
## 4 Consumer 2015 256720.
## 5 Corporate 2018 235503.
## 6 Corporate 2017 203267.
## 7 Home Office 2018 156489.
## 8 Corporate 2015 125820.
## 9 Corporate 2016 114643.
## 10 Home Office 2017 103640.
## 11 Home Office 2015 88229.
## 12 Home Office 2016 74134.
# Evolução ao longo do tempo:
total_vendas_segmento_ano %>%
ggplot(aes(x = Ano, y = total_venda, color = Segmento, group = Segmento)) +
geom_line(size = 1.2) +
geom_point(size = 3) +
ggtitle("Crescimento do Total de Vendas por Segmento (2015-2018)") +
xlab("Ano") +
ylab("Total de Vendas") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10),
legend.title = element_text(size = 12),
legend.text = element_text(size = 10))

Comentários: O segmento ‘Consumer’ mostrou um
crescimento constante no total de vendas ao longo dos quatro anos
analisados (2015-2018). A linha ascendente constante para o segmento
‘Consumer’ indica que ele é um mercado chave para a empresa e pode
continuar a ser uma fonte significativa de receita se as tendências
persistirem.
O segmento ‘Corporate’ experimentou um declínio nas vendas de 2015
para 2016, mas depois apresentou uma recuperação robusta em 2017 e
continuou a crescer em 2018. Essa recuperação sugere que, apesar de um
período inicial de desafios, as vendas para clientes corporativos se
recuperaram fortemente, possivelmente devido a mudanças nas estratégias
de vendas, lançamento de novos produtos, ou maior foco em clientes
empresariais.
Comparando os três segmentos, o segmento ‘Consumer’ tem o maior
total de vendas consistentemente ao longo dos anos, seguido pelo
‘Corporate’ e, por último, pelo ‘Home Office’. Isso indica que, embora
todos os segmentos sejam importantes para a empresa, o foco principal em
termos de volume de vendas é o consumidor final.
Pergunta de negócio 7: Os gestores da empresa estão
considerando conceder diferentes faixas de descontos e gostariam de
fazer uma simulação com base na regra abaixo:
- Se o Valor_Venda for maior que 1000 recebe 15% de desconto.
- Se o Valor_Venda for menor que 1000 recebe 10% de desconto.
Quantas Vendas Receberiam 15% de Desconto?
# Criando uma nova coluna para identificar o percentual de desconto:
varejo_dados <- varejo_dados %>%
mutate(Desconto = ifelse(Valor_Venda > 1000,"15%","10%"))
# Efetuando a contagem de vendas com 15% de desconto:
varejo_dados %>%
filter(Desconto == "15%") %>%
nrow()
## [1] 457
# Montando um gráfico para visualização e comparação entre produtos que receberam 15% e 10% de desconto:
varejo_dados %>%
ggplot(aes(x = Desconto, fill = Desconto)) +
geom_bar(color = "black") +
ggtitle("Distribuição de vendas com 15% e 10% de desconto") +
xlab("Tipo de Desconto") + ylab("Contagem") +
scale_fill_manual(values = c("10%"="red","15%"="cyan"))

# Contagem dos dois tipos:
distribuicao_desconto <- varejo_dados %>%
group_by(Desconto) %>%
summarise(quantidade = n()) %>%
mutate(Frequencia_relativa = quantidade/sum(quantidade))
# Exibindo:
distribuicao_desconto
## # A tibble: 2 × 3
## Desconto quantidade Frequencia_relativa
## <chr> <int> <dbl>
## 1 10% 9243 0.953
## 2 15% 457 0.0471
Comentários: O gráfico e a tabela mostram que a
grande maioria das vendas recebeu um desconto de 10% (9.243 vendas)
(95,3%), enquanto apenas 457 vendas receberam um desconto de 15%
(4,71%). Isso indica que a maior parte das vendas está em valores
menores (abaixo de 1.000 unidades monetárias), o que é consistente com a
aplicação do desconto de 10%.
Insights Potenciais: A maior quantidade de vendas
com um desconto de 10% sugere que a demanda é predominante por produtos
de valor inferior a 1.000 unidades monetárias. Isso pode significar que
o público-alvo está mais inclinado a comprar produtos mais acessíveis ou
que há um volume maior de produtos disponíveis nesse intervalo de preço.
Logo, a empresa deve garantir que o estoque para esses itens seja
adequadamente gerenciado para evitar rupturas e atender à demanda do
cliente de maneira eficiente.
Pergunta de negócio 8: Considere Que a Empresa
Decida Conceder o Desconto de 15% do Item Anterior. Qual Seria a Média
do Valor de Venda Antes e Depois do Desconto?
# Criando uma coluna com o desconto de 15% aplicado:
varejo_dados <- varejo_dados %>%
mutate(Novo_valor_venda = ifelse(Desconto == "15%", Valor_Venda *0.85, Valor_Venda))
# Média do valor de venda antes do desconto para os produtos qualificados com 15% de desconto:
varejo_dados %>%
filter(Desconto == "15%") %>%
summarise(media = mean(Valor_Venda))
## media
## 1 2116.808
# Média do valor de venda depois do desconto para os produtos qualificados com 15% de desconto:
varejo_dados %>%
filter(Desconto == "15%") %>%
summarise(media = mean(Novo_valor_venda))
## media
## 1 1799.287
Comentários: Podemos observar que, com a aplicação
de um desconto de 15% nos produtos qualificados, a média do valor de
venda diminuiu de 2.116,80 para 1.799,28.
Pergunta de negócio 9: Qual a Média de Vendas Por
Segmento, Por Ano e Por Mês?
# Criando uma coluna sobre o Mês
varejo_dados <- varejo_dados %>%
mutate(Mes = month(Data_Pedido, label = TRUE, abbr = TRUE))
# Efetuando a média
media_vendas_segmento_ano_mes <- varejo_dados %>%
group_by(Segmento, Ano, Mes) %>%
summarise(media_vendas = mean(Valor_Venda, na.rm = TRUE)) %>%
arrange(Segmento, Ano, Mes)
# Visualização com gráfico de linhas
media_vendas_segmento_ano_mes %>%
ggplot(aes(x = Mes, y = media_vendas, color = Segmento, group = Segmento)) +
geom_line() +
geom_point() +
ggtitle("Média de Vendas por Segmento, Ano e Mês") +
xlab("Mês") +
ylab("Média de Vendas") +
facet_wrap(~Ano, scales = "free_x") +
theme_minimal()

Insights Potenciais: Observa-se um pico
significativo nas vendas para o segmento “Home Office” em março de 2015,
o que pode ter sido impulsionado por uma promoção específica, lançamento
de produto ou evento especial. Este aumento acentuado indica uma
variação atípica que merece investigação adicional.
Em termos gerais, os segmentos “Consumer” e “Corporate” mostram um
comportamento mais estável ao longo do tempo, com vendas que se mantêm
consistentes mês a mês. Essa estabilidade sugere uma demanda constante e
menos dependência de fatores sazonais ou eventos específicos.
Observa-se também uma tendência de aumento nas médias de vendas para
todos os segmentos (Consumer, Corporate, e Home Office) nos últimos
meses de cada ano. Isso pode indicar um padrão onde as vendas aumentam
devido a eventos como festas de fim de ano ou promoções de final de
ano.
Pergunta de negócio 10: Qual o Total de Vendas Por
Categoria e SubCategoria, Considerando Somente as Top 12
SubCategorias?
# Calculando o total de vendas por SubCategoria:
top_12_subcategorias <- varejo_dados %>%
group_by(SubCategoria) %>%
summarise(total_vendas = sum(Valor_Venda)) %>%
arrange(desc(total_vendas)) %>%
head(12)
# Filtrando no dataset original para considerar apenas as Top 12 SubCategorias:
varejo_dados_top_12 <- varejo_dados %>%
filter(SubCategoria %in% top_12_subcategorias$SubCategoria)
# Calculando o total de vendas por Categoria e SubCategoria para as Top 12 SubCategorias:
total_vendas_categoria_subcategoria <- varejo_dados_top_12 %>%
group_by(Categoria, SubCategoria) %>%
summarise(total_vendas = sum(Valor_Venda)) %>%
arrange(desc(total_vendas))
# Exibindo o resultado:
total_vendas_categoria_subcategoria
## # A tibble: 12 × 3
## # Groups: Categoria [3]
## Categoria SubCategoria total_vendas
## <chr> <chr> <dbl>
## 1 Technology Phones 325271.
## 2 Furniture Chairs 317920.
## 3 Office Supplies Storage 216188.
## 4 Furniture Tables 202083.
## 5 Office Supplies Binders 194723.
## 6 Technology Machines 189239.
## 7 Technology Accessories 162791.
## 8 Technology Copiers 146248.
## 9 Furniture Bookcases 108045.
## 10 Office Supplies Appliances 104062.
## 11 Furniture Furnishings 88863.
## 12 Office Supplies Paper 76313.
# Visualização:
total_vendas_categoria_subcategoria %>% ggplot(aes(area = total_vendas, fill = Categoria, label = SubCategoria, subgroup = Categoria)) +
geom_treemap(color="black") +
geom_treemap_text(grow = TRUE, reflow = TRUE) +
labs(title = "Total de Vendas por Categoria e SubCategoria (Top 12)") +
theme_minimal()

# Visualização 2:
# Cálculo da proporção:
total_vendas_categoria_subcategoria <- total_vendas_categoria_subcategoria %>%
mutate(proporcao = total_vendas / sum(total_vendas))
# Gráfico de anel (sunburst):
total_vendas_categoria_subcategoria %>%
ggplot(aes(x = 2, y = proporcao, fill = Categoria)) +
geom_col(color = "black") +
coord_polar(theta = "y") +
xlim(1, 2.5) +
theme_void() +
scale_fill_brewer(palette = "Set3") +
geom_text(aes(label = paste0(SubCategoria, "\n$", round(total_vendas, 0))),
position = position_stack(vjust = 0.5), size = 3, color = "black") +
ggtitle("Total de Vendas por Categoria e SubCategoria (Top 12)")

Insights Potenciais: Chairs e
Tables são as subcategorias com maior valor de vendas dentro da
categoria Furniture, destacando-se como os produtos
mais vendidos. Isso sugere que há uma demanda significativa por itens de
mobiliário básicos, que provavelmente são utilizados em escritórios,
residências ou locais comerciais.
A categoria Technology apresenta subcategorias como
Phones, Machines, e Copiers, que estão entre as mais
vendidas. Phones lidera como a subcategoria com o maior valor de
vendas em Technology, sugerindo uma forte demanda por
dispositivos de comunicação.
Subcategorias como Furnishings (em Furniture) e Paper (em
Office Supplies) têm os menores totais de vendas entre as Top 12
subcategorias. Isso pode representar uma oportunidade para a
empresa explorar estratégias de marketing direcionadas, promoções ou
revisões de mix de produtos para melhorar a visibilidade e o apelo
desses itens.
Considerando que Furnishings e Paper têm menos
vendas, a empresa pode investigar se isso é devido a um menor
interesse dos clientes, falta de promoção, ou outros fatores que possam
ser otimizados.