1. Contextualización de la base de datos y variables

La base datos_negocios_var_9_clientes.csv contiene información de 100 clientes de un negocio.
Las variables permiten caracterizar a los clientes en función de su categoría, gasto, edad y número de visitas.

Variables incluidas:

-Cliente: indica el tipo de cliente (Frecuente, Ocasional, Premium, etc.).
-Gasto Mensual: monto promedio en dinero gastado por cliente en un mes.
- Edad: edad del cliente (en años).
- Visitas Mensuales: número de visitas promedio que el cliente realiza al negocio en un mes.

# Librerías necesarias
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(readxl)

Cargar

datos <- read_excel("datos_negocios_var_9_clientes.xlsx")

2. Vista inicial de la base

head(datos)
## # A tibble: 6 × 1
##   `Categoria_Cliente,Gasto_Mensual,Edad,Visitas_Mensuales`
##   <chr>                                                   
## 1 Frecuente,2048.07,45,18                                 
## 2 Nuevo,2187.73,74,16                                     
## 3 Frecuente,1991.32,75,26                                 
## 4 Ocasional,182.28,19,24                                  
## 5 Nuevo,2485.97,59,23                                     
## 6 Frecuente,2486.65,53,28

3. Características generales de la base de datos

Número de filas y columnas:

dim(datos)
## [1] 100   1

Nombres de las variables:

names(datos)
## [1] "Categoria_Cliente,Gasto_Mensual,Edad,Visitas_Mensuales"

Tipos de variables:

str(datos)
## tibble [100 × 1] (S3: tbl_df/tbl/data.frame)
##  $ Categoria_Cliente,Gasto_Mensual,Edad,Visitas_Mensuales: chr [1:100] "Frecuente,2048.07,45,18" "Nuevo,2187.73,74,16" "Frecuente,1991.32,75,26" "Ocasional,182.28,19,24" ...

4. Análisis de variables numéricas

Medidas de resumen:

summary(select_if(datos, is.numeric))
## < table of extent 0 x 0 >

Histogramas de las variables numéricas:

num_vars <- names(select_if(datos, is.numeric))
for (v in num_vars) {
  print(
    ggplot(datos, aes_string(x = v)) +
      geom_histogram(fill = "steelblue", color = "white", bins = 15) +
      ggtitle(paste("Histograma de", v))
  )
}

5. Análisis de variables categóricas

Tablas de frecuencia:

table(datos$Categoria_Cliente)
## Warning: Unknown or uninitialised column: `Categoria_Cliente`.
## < table of extent 0 >

Gráfico de barras:

library(tidyr)

datos <- datos %>%
  separate(col = 1, into = c("Categoria_Cliente", "Gasto_Mensual", "Edad", "Visitas_Mensuales"), sep = ",") %>%
  mutate(
    Gasto_Mensual = as.numeric(Gasto_Mensual),
    Edad = as.numeric(Edad),
    Visitas_Mensuales = as.numeric(Visitas_Mensuales)
  )
ggplot(datos, aes(x = Categoria_Cliente)) +
  geom_bar(fill = "tomato") +
  ggtitle("Frecuencia de clientes por categoría")

# 6. Revisión de valores faltantes (NA)

colSums(is.na(datos))
## Categoria_Cliente     Gasto_Mensual              Edad Visitas_Mensuales 
##                 0                 0                 0                 0

No se detectan valores faltantes en ninguna variable.

7. Detección de valores atípicos (Outliers)

Boxplots de las variables numéricas:

for (v in num_vars) {
  print(
    ggplot(datos, aes_string(y = v)) +
      geom_boxplot(fill = "orange") +
      ggtitle(paste("Boxplot de", v))
  )
}

Se observan valores extremos en Gasto_Mensual y en Visitas_Mensuales.

8. Comentarios de resultados

La categoría Frecuente concentra la mayoría de clientes, aunque existen otros perfiles en menor cantidad.

El gasto mensual muestra un rango definido, pero algunos clientes gastan mucho más que el promedio (outliers).

La edad refleja diversidad, desde clientes jóvenes hasta adultos mayores.

Las visitas mensuales varían bastante: algunos clientes asisten de manera ocasional y otros con alta frecuencia.

La base de datos no presenta valores faltantes, lo que facilita un análisis confiable.