# Gráfico de barras para la distribución de los años de proyección
ggplot(data, aes(x = factor(AnioProyeccionIngreso))) +
geom_bar(fill = "steelblue") +
labs(title = "Distribución del Año de Proyección de Ingresos", x = "Año", y = "Conteo")
## [1] 1.3
# Gráfico de barras para la distribución de productos
ggplot(data, aes(x = CategoriaProducto)) +
geom_bar(fill = "darkgreen") +
labs(title = "Distribución de Categoría de Producto", x = "Producto", y = "Conteo") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
# Gráfico de barras para el estado de avance de las oportunidades
ggplot(data, aes(x = EstadoAvanceOportunidad)) +
geom_bar(fill = "purple") +
labs(title = "Distribución del Estado de Avance de Oportunidades", x = "Estado", y = "Conteo")
ggplot(data, aes(x = "", y = SubOportunidadesGanadas)) +
geom_boxplot(fill = "lightblue") +
labs(title = "SubOportunidades Ganadas", x = "", y = "Ganadas")
ggplot(data, aes(x = "", y = SubOportunidadesCaidas)) +
geom_boxplot(fill = "salmon") +
labs(title = "SubOportunidades Caídas", x = "", y = "Caídas")
# Histograma de días desde el último estado
ggplot(data, aes(x = DiasUltimoEstado)) +
geom_histogram(binwidth = 20, fill = "orange", color = "black") +
labs(title = "Días desde el Último Estado", x = "Días", y = "Frecuencia")
# Histograma de la proyección anual de ingresos
# Histograma de la proyección anual de ingresos
ggplot(data, aes(x = ProyeccionAnual)) +
geom_histogram(binwidth = 50000, fill = "darkblue", color = "black") +
labs(title = "Proyección Anual de Ingresos", x = "Ingresos proyectados", y = "Frecuencia")
# Resumen de suboportunidades ganadas y caídas por estado de avance
library(randomForest) library(caret) library(dplyr) library(lubridate)
data <- read.csv(“nombre_del_archivo.csv”)
str(data) # Para ver la estructura de las columnas summary(data) # Resumen estadístico de las columnas
data\(Fecha_ultimo_estado <- as.Date(data\)Fecha_ultimo_estado, format=“%Y-%m-%d”) data\(Fecha_proyeccion_ing <- as.Date(data\)Fecha_proyeccion_ing, format=“%Y-%m-%d”)
data <- data %>% mutate(across(everything(), ~replace_na(., 0))) # Aquí rellenamos valores nulos con 0, puedes personalizarlo.
data\(Producto_Homologado_C <- as.factor(data\)Producto_Homologado_C) data\(Estado_Avance_Oportunidad <- as.factor(data\)Estado_Avance_Oportunidad) data\(Cliente <- as.factor(data\)Cliente) data\(Campaña <- as.factor(data\)Campaña) data\(Categoría_Producto <- as.factor(data\)Categoría_Producto)
data\(Dias_en_estado <- as.numeric(difftime(Sys.Date(), data\)Fecha_ultimo_estado, units = “days”))
cor(data %>% select_if(is.numeric)) # Correlación entre variables numéricas
set.seed(123) trainIndex <- createDataPartition(data$Estado_Avance_Oportunidad, p = .8, list = FALSE, times = 1) dataTrain <- data[ trainIndex,] dataTest <- data[-trainIndex,]
modelo_rf <- randomForest(Estado_Avance_Oportunidad ~ ., data = dataTrain, importance = TRUE)
predicciones <- predict(modelo_rf, dataTest)
confusionMatrix(predicciones, dataTest$Estado_Avance_Oportunidad)
varImpPlot(modelo_rf)
saveRDS(modelo_rf, “modelo_next_best_action.rds”)
state_summary <- data %>%
group_by(EstadoAvanceOportunidad) %>%
summarise(Ganadas = mean(SubOportunidadesGanadas),
Caidas = mean(SubOportunidadesCaidas))
state_summary
## # A tibble: 9 × 3
## EstadoAvanceOportunidad Ganadas Caidas
## <chr> <dbl> <dbl>
## 1 Aceptación no formal 4.88 5.15
## 2 Caída 5.82 5.03
## 3 En gestión 5.48 4.97
## 4 Ganada 4.86 4.92
## 5 Implementación 4.65 4.81
## 6 Negociación 5.33 5.31
## 7 Presentación 5.31 5.06
## 8 Propuesta 5.36 5.09
## 9 Siembra 4.86 5.35
# Visualización
ggplot(state_summary, aes(x = EstadoAvanceOportunidad, y = Ganadas)) +
geom_bar(stat = "identity", fill = "lightgreen") +
labs(title = "SubOportunidades Ganadas por Estado", x = "Estado", y = "Promedio de Ganadas") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
ggplot(state_summary, aes(x = EstadoAvanceOportunidad, y = Caidas)) +
geom_bar(stat = "identity", fill = "lightcoral") +
labs(title = "SubOportunidades Caídas por Estado", x = "Estado", y = "Promedio de Caídas") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
# Distribución de mes fiscal
ggplot(data, aes(x = factor(MesFiscal))) +
geom_bar(fill = "darkorange") +
labs(title = "Distribución por Mes Fiscal", x = "Mes Fiscal", y = "Conteo")
# Distribución de H_Fiscal
ggplot(data, aes(x = HFiscal)) +
geom_bar(fill = "lightblue") +
labs(title = "Distribución por H_Fiscal", x = "H_Fiscal", y = "Conteo")