# Criando um conjunto de dados simples sobre vendas
set.seed(123)
vendas_data <- data.frame(
ID = 1:50,
Produto = sample(c("Notebook", "Smartphone", "Tablet", "Monitor", "Teclado"), 50, replace = TRUE),
Categoria = sample(c("Eletrônicos", "Informática", "Acessórios"), 50, replace = TRUE),
Vendedor = sample(c("Ana", "Carlos", "Maria", "João", "Paula"), 50, replace = TRUE),
Quantidade = sample(1:20, 50, replace = TRUE),
Preco_Unitario = round(runif(50, 100, 2000), 2),
Mes = sample(1:12, 50, replace = TRUE)
)
# Calculando o valor total de cada venda
vendas_data$Valor_Total <- vendas_data$Quantidade * vendas_data$Preco_Unitario
# Ordenando os dados pelo valor total (decrescente)
vendas_ordenadas <- vendas_data %>%
arrange(desc(Valor_Total))
# Filtrando apenas vendas acima de R$ 5.000
vendas_alta <- vendas_data %>%
filter(Valor_Total > 5000)
# Criando uma nova variável: Classificação de Valor
vendas_data$Classificacao <- ifelse(vendas_data$Valor_Total > 10000, "Alto",
ifelse(vendas_data$Valor_Total > 5000, "Médio", "Baixo"))
# Agrupando por categoria e calculando estatísticas
resumo_categoria <- vendas_data %>%
group_by(Categoria) %>%
summarise(
Total_Vendas = n(),
Media_Valor = mean(Valor_Total),
Soma_Total = sum(Valor_Total),
Maior_Venda = max(Valor_Total)
) %>%
arrange(desc(Soma_Total))
1. Criação do Dataset: - Foram gerados 50 registros de vendas com informações sobre produtos, categorias, vendedores, quantidades e preços.
2. Nova Variável - Valor Total: - Criada calculando
Quantidade × Preço_Unitário para cada venda.
3. Ordenação: - Os dados foram ordenados pelo valor total em ordem decrescente para identificar as vendas mais valiosas.
4. Filtragem: - Foram filtradas apenas as vendas com valor total superior a R$ 5.000.
5. Classificação de Valor: - Criada uma nova variável categórica que classifica as vendas em “Alto”, “Médio” e “Baixo”.
6. Agrupamento por Categoria: - Calculadas estatísticas sumarizadas por categoria.
head(vendas_data)
## ID Produto Categoria Vendedor Quantidade Preco_Unitario Mes Valor_Total
## 1 1 Tablet Acessórios Carlos 8 1501.82 10 12014.56
## 2 2 Tablet Eletrônicos João 12 1684.70 10 20216.40
## 3 3 Smartphone Acessórios João 4 697.11 6 2788.44
## 4 4 Smartphone Informática Ana 13 1035.88 12 13466.44
## 5 5 Tablet Acessórios Maria 14 1425.01 3 19950.14
## 6 6 Teclado Informática Maria 16 1318.78 4 21100.48
## Classificacao
## 1 Alto
## 2 Alto
## 3 Baixo
## 4 Alto
## 5 Alto
## 6 Alto
# Criando tabela interativa com funcionalidades de ordenação, busca e paginação
datatable(
vendas_data,
options = list(
pageLength = 10,
lengthMenu = c(5, 10, 15, 20),
searching = TRUE,
ordering = TRUE,
autoWidth = TRUE
),
caption = "Tabela Interativa de Vendas",
filter = 'top',
class = 'display'
)
\[ P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} \]
Significado: Esta equação fundamental da teoria das probabilidades descreve como atualizar a probabilidade de uma hipótese (A) dado uma nova evidência (B).
\[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p + \epsilon \]
Significado: Modela a relação entre uma variável dependente Y e múltiplas variáveis independentes X.
\[ L = -\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{C}y_{ij}\log(\hat{y}_{ij}) \]
Significado: Utilizada em problemas de classificação multiclasse, mede a dissimilaridade entre distribuições.
\[ A = U\Sigma V^T \]
Significado: Fatora uma matriz qualquer A em três matrizes. Fundamental para PCA.
\[ \theta_{t+1} = \theta_t - \eta \cdot \nabla J(\theta_t) \]
Significado: Algoritmo de otimização iterativo para encontrar mínimos de funções.
# Figura 1: Distribuição de Vendas por Categoria
p1 <- ggplot(vendas_data, aes(x = Categoria, y = Valor_Total, fill = Categoria)) +
geom_boxplot() +
geom_jitter(alpha = 0.6, width = 0.2) +
labs(title = "Distribuição do Valor Total de Vendas por Categoria",
x = "Categoria",
y = "Valor Total (R$)") +
theme_minimal()
# Figura 2: Série Temporal de Vendas por Mês
vendas_mensais <- vendas_data %>%
group_by(Mes) %>%
summarise(Total_Vendas = sum(Valor_Total))
p2 <- ggplot(vendas_mensais, aes(x = Mes, y = Total_Vendas)) +
geom_line(color = "steelblue", size = 1.5) +
geom_point(color = "darkred", size = 3) +
labs(title = "Evolução das Vendas ao Longo dos Meses",
x = "Mês",
y = "Total de Vendas (R$)") +
theme_minimal() +
scale_x_continuous(breaks = 1:12)
# Exibindo as figuras lado a lado
library(gridExtra)
grid.arrange(p1, p2, ncol = 2)
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An Introduction to Statistical Learning with Applications in R. Springer.
Géron, A. (2022). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O’Reilly Media.
Wickham, H., & Grolemund, G. (2016). R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. O’Reilly Media.
Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
Shalev-Shwartz, S., & Ben-David, S. (2014). Understanding Machine Learning: From Theory to Algorithms. Cambridge University Press.