Análisis Exploratorio de Datos

1. Revisión de datos:

1.1 ¿Cuál es la población objetivo?

La población objetivo son todos los profesionales de diversas industrias (tecnología, salud, finanzas, retail y educación) que utilizan o han interactuado con chatbots en su trabajo.

1.2 ¿Existe una muestra? ¿Cuál es?

Sí, sí existe una muestra. La muestra está conformada por: 300 empleados seleccionados mediante muestreo aleatorio estratificado, pertenecientes a diferentes niveles educativos y sectores empresariales.

1.3 Mencione un parámetro y un estadístico en este estudio.

Parámetro: El promedio real de satisfacción con los chatbots en toda la población de profesionales que los usan en esos sectores.

Estadístico: El promedio de satisfacción calculado a partir de los 300 empleados seleccionados mediante muestreo aleatorio estratificado.

1.4 Clasifique cada una de las variables de la base de datos acuerdo con su naturaleza y nivel de medición

Edad: Cuantitativa continua

Género: Cualitativa nominal

Sector empresarial: Cualitativa nominal

Nivel educativo: Cualitativa ordinal

Horas en pantalla: Cuantitativa continua

Uso de chatbots en segundos: Cuantitativa continua

Frecuencia de uso de chatbots: Cualitativa ordinal

Satisfacción con chatbots: Cualitativa ordinal


Instalar y cargar paquetes necesarios

library(tidyverse)# Incluye paquetes de importación, visualización entre otros
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)# Manipulación de Datos
library(ggplot2)# Visualización de datos 
library(readxl)# Importación de datos
library(tibble)# Tablas
library(readr) #Para cargar la base de datos

2. Preparación de la base de datos:

Cargar base de datos:

datos <- read_csv("dataset_chatbots(in) (1).csv") 
## Rows: 300 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): genero, nivel_educativo, sector_empresa, uso_chatbots, satisfaccion...
## dbl (3): edad, horas_pantalla, uso_chatbots_seg
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Nombres de variables

names(datos)
## [1] "genero"                "nivel_educativo"       "sector_empresa"       
## [4] "uso_chatbots"          "satisfaccion_chatbots" "edad"                 
## [7] "horas_pantalla"        "uso_chatbots_seg"

Dimesiones de la base de datos

dim(datos)
## [1] 300   8

Mostrar las primeras filas de la base de datos

head(datos)
## # A tibble: 6 × 8
##   genero nivel_educativo sector_empresa uso_chatbots satisfaccion_chatbots  edad
##   <chr>  <chr>           <chr>          <chr>        <chr>                 <dbl>
## 1 mascu… pregrado        tecnologia     raro         alta                     15
## 2 otro   posgrado        tecnologia     raro         baja                     53
## 3 femen… posgrado        tecnologia     raro         baja                     23
## 4 femen… posgrado        tecnologia     moderado     media                    21
## 5 mascu… posgrado        tecnologia     moderado     media                    43
## 6 mascu… doctorado       salud          frecuente    alta                     54
## # ℹ 2 more variables: horas_pantalla <dbl>, uso_chatbots_seg <dbl>

Tipos de datos

str(datos)
## spc_tbl_ [300 × 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ genero               : chr [1:300] "masculino" "otro" "femenino" "femenino" ...
##  $ nivel_educativo      : chr [1:300] "pregrado" "posgrado" "posgrado" "posgrado" ...
##  $ sector_empresa       : chr [1:300] "tecnologia" "tecnologia" "tecnologia" "tecnologia" ...
##  $ uso_chatbots         : chr [1:300] "raro" "raro" "raro" "moderado" ...
##  $ satisfaccion_chatbots: chr [1:300] "alta" "baja" "baja" "media" ...
##  $ edad                 : num [1:300] 15 53 23 21 43 54 46 39 39 41 ...
##  $ horas_pantalla       : num [1:300] 6.43 7.94 6.89 8.08 6.34 ...
##  $ uso_chatbots_seg     : num [1:300] 2507 16690 6910 6684 NA ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   genero = col_character(),
##   ..   nivel_educativo = col_character(),
##   ..   sector_empresa = col_character(),
##   ..   uso_chatbots = col_character(),
##   ..   satisfaccion_chatbots = col_character(),
##   ..   edad = col_double(),
##   ..   horas_pantalla = col_double(),
##   ..   uso_chatbots_seg = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

Revisión de valores faltantes

colSums(is.na(datos))
##                genero       nivel_educativo        sector_empresa 
##                     0                     0                     0 
##          uso_chatbots satisfaccion_chatbots                  edad 
##                     0                     0                     0 
##        horas_pantalla      uso_chatbots_seg 
##                    20                    15
sum(is.na(datos))
## [1] 35

¿Qué encontró?

Se identificó la presencia de valores faltantes en la base de datos. En total existen 35 valores perdidos, distribuidos en dos variables: horas_pantalla (20 valores NA) y uso_chatbots_seg (15 valores NA). Las demás variables no presentan datos faltantes. Esto indica que la base de datos está mayormente completa, sin embargo, se debe evaluar el tratamiento adecuado de estos valores perdidos para evitar posibles sesgos en los análisis posteriores.

Revisión de datos atípicos

summary(datos)
##     genero          nivel_educativo    sector_empresa     uso_chatbots      
##  Length:300         Length:300         Length:300         Length:300        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  satisfaccion_chatbots      edad       horas_pantalla   uso_chatbots_seg
##  Length:300            Min.   :14.00   Min.   : 1.612   Min.   :-29327  
##  Class :character      1st Qu.:29.00   1st Qu.: 4.922   1st Qu.:  6746  
##  Mode  :character      Median :35.00   Median : 6.262   Median : 10350  
##                        Mean   :35.01   Mean   : 6.135   Mean   : 11127  
##                        3rd Qu.:40.00   3rd Qu.: 7.383   3rd Qu.: 13735  
##                        Max.   :55.00   Max.   :11.059   Max.   :215820  
##                                        NA's   :20       NA's   :15
# Boxplot Edad
boxplot(datos$edad,
        main="Diagrama de caja - Edad",
        ylab="Edad",
        col="lightblue")

# Boxplot uso_chatbots_seg
boxplot(datos$uso_chatbots_seg,
        main="Diagrama de caja - Uso de chatbots (segundos)",
        ylab="Segundos",
        col="purple")

¿Qué encontró?

En la revisión de los datos atípicos se observa que la variable edad no presenta valores atípicos, ya que no aparecen puntos fuera del diagrama de caja y las edades se mantienen dentro de un rango normal. En cambio, la variable uso de chatbots en segundos sí presenta varios valores atípicos, ya que aparecen puntos muy alejados del resto, lo que indica que algunas personas usan el chatbot mucho más tiempo que la mayoría y esto podría influir en los resultados del análisis.


3. Organización de datos en tablas de frecuencias:

Tabla para la variable: genero

#tabla 1
table(datos$genero)
## 
##  femenino masculino      otro 
##       135       136        29
prop.table(table(datos$genero))
## 
##   femenino  masculino       otro 
## 0.45000000 0.45333333 0.09666667

La tabla de frecuencias muestra que la distribución por género es bastante equilibrada, ya que femenino (45%) y masculino (45.3%) tienen prácticamente la misma representación, con una diferencia mínima a favor del masculino. La categoría “otro” representa el 9.7% de la muestra, lo que indica una menor participación en comparación con los dos grupos principales. En general, la muestra no presenta un desbalance significativo por género, lo que favorece un análisis más equitativo entre estas categorías.

Tabla para la variable: sector_empresa

#tabla 2
table(datos$sector_empresa)
## 
##  educacion   finanzas     retail      salud tecnologia 
##         24         59         38         45        134
prop.table(table(datos$sector_empresa))
## 
##  educacion   finanzas     retail      salud tecnologia 
##  0.0800000  0.1966667  0.1266667  0.1500000  0.4466667

La tabla de frecuencias muestra que el sector con mayor representación es tecnología, con aproximadamente el 44.7% de los participantes, lo que indica que casi la mitad de la muestra pertenece a este sector. En segundo lugar se encuentra finanzas (19.7%), seguido de salud (15%), retail (12.7%) y finalmente educación (8%). Esto evidencia que la muestra está fuertemente concentrada en el sector tecnológico, lo cual puede influir en los resultados, ya que estos profesionales probablemente tienen mayor familiaridad con el uso de chatbots.

Tabla para la variable: edad

#tabla agrupada

# Crear intervalos de edad
datos$edad_grupo <- cut(datos$edad,
                        breaks = 5,
                        right = FALSE)

# Tabla de frecuencia agrupada
table(datos$edad_grupo)
## 
##   [14,22.2) [22.2,30.4) [30.4,38.6) [38.6,46.8)   [46.8,55) 
##          16          75         109          75          25
prop.table(table(datos$edad_grupo))
## 
##   [14,22.2) [22.2,30.4) [30.4,38.6) [38.6,46.8)   [46.8,55) 
##  0.05333333  0.25000000  0.36333333  0.25000000  0.08333333

La tabla de frecuencias agrupada muestra que el intervalo con mayor concentración de empleados es el de 30.4 a 38.6 años, que representa aproximadamente el 36.3% de la muestra. Además, los rangos de 22.2 a 30.4 años y de 38.6 a 46.8 años también tienen una participación importante (25% cada uno), lo que indica que la mayoría de los encuestados se concentra entre los 22 y 46 años. En contraste, los grupos más jóvenes (14 a 22.2 años) y mayores (46.8 a 55 años) tienen menor representación. En general, esto muestra que la muestra está compuesta principalmente por adultos jóvenes y de mediana edad.

Tabla para las variables: genero y satisfaccion_chatbots

#tabla de contingencia

tabla_contingencia <- table(datos$genero, datos$satisfaccion_chatbots)
tabla_contingencia
##            
##             alta baja media nan
##   femenino    30   35    63   7
##   masculino   32   34    65   5
##   otro         8    8    10   3
prop.table(tabla_contingencia)
##            
##                   alta       baja      media        nan
##   femenino  0.10000000 0.11666667 0.21000000 0.02333333
##   masculino 0.10666667 0.11333333 0.21666667 0.01666667
##   otro      0.02666667 0.02666667 0.03333333 0.01000000

La tabla de contingencia muestra que, tanto en el género femenino como en el masculino, la mayor proporción de respuestas se concentra en el nivel de satisfacción media, seguido por alta y baja, lo que indica que la percepción de los chatbots es bastante similar entre ambos grupos. No se observan diferencias marcadas en los niveles de satisfacción según el género, ya que las proporciones son muy parecidas. En el caso de la categoría “otro”, aunque también predomina la satisfacción media, el número de participantes es menor, por lo que su peso dentro del total es reducido. En general, los resultados sugieren que el género no parece generar diferencias importantes en la percepción de satisfacción con los chatbots.

Tabla para la variable:nivel_educativo

table(datos$nivel_educativo)
## 
## doctorado  posgrado  pregrado 
##        54       102       144
prop.table(table(datos$nivel_educativo))
## 
## doctorado  posgrado  pregrado 
##      0.18      0.34      0.48

La distribución del nivel educativo muestra que la muestra no está concentrada en un solo grupo, sino que hay presencia en los tres niveles de formación. Aunque el pregrado tiene mayor participación, más de la mitad de los encuestados (52%) cuenta con estudios de posgrado o doctorado, lo que sugiere que una parte importante de los participantes tiene formación académica avanzada.


4. Organización de datos en gráficos

Gráfico de tipo diagrama circular para la variable: genero

# Gráfico 1
# Frecuencias de género
tabla_genero <- table(datos$genero)

# Gráfico circular
pie(tabla_genero,
    main="Distribución por Género",
    col=rainbow(length(tabla_genero)))

¿Qué ve?

En el gráfico circular se puede observar que la cantidad de hombres y mujeres que participaron en la encuesta es muy similar, con una ligera ventaja del género masculino. Ambos grupos representan la gran mayoría de los encuestados, mientras que quienes se identifican como “otro” constituyen una porción muy pequeña en comparación.

Gráfico de tipo histograma para la variable: edad

# Gráfico 2
hist(datos$edad,
     main="Histograma de Edad",
     xlab="Edad",
     col="lightblue",
     border="black")

¿Qué ve?

En el histograma de la edad se observa la concentración de empleados en determinados rangos etarios. La mayor frecuencia se encuentra en los grupos de edad intermedios, lo que indica que la muestra está compuesta principalmente por adultos jóvenes y de mediana edad. La distribución no presenta extremos marcados.

Gráfico de tipo diagrama de caja para la variable: horas en pantalla.

# Gráfico 3
boxplot(datos$horas_pantalla,
        main="Diagrama de caja - Horas en pantalla",
        ylab="Horas",
        col="orange")

¿Qué ve?

En el diagrama de caja se observa que la mayoría de los encuestados pasa alrededor de 6 horas frente a una pantalla al día, que es donde se ubica la mediana. La caja, que representa a la mayor parte de los participantes, se encuentra entre aproximadamente 5 y 7 horas, lo que indica que la mayoría tiene hábitos bastante similares en cuanto al tiempo de pantalla. Sin embargo, hay casos extremos: algunas personas reportaron tan solo 1-2 horas y otras hasta más de 10 horas al día, lo que muestra que aunque la mayoría se concentra en un rango moderado, existen casos atípicos en ambos extremos.

Gráfico de tipo diagrama de barras para la variable: uso de chatbots.

ggplot(datos, aes(x = uso_chatbots)) +
  geom_bar(fill = "steelblue") +
  labs(title = "Uso de Chatbots",
       x = "Categorías",
       y = "Frecuencia") +
  theme_minimal()

¿Qué ve?

En el diagrama de barras se observa que las tres categorías tienen frecuencias muy similares entre sí. El uso moderado es el más común, seguido de cerca por el uso frecuente y finalmente el uso raro, que es el menos reportado aunque por muy poca diferencia. Esto indica que los encuestados tienden a usar los chatbots con cierta regularidad, ya que las categorías moderado y frecuente superan a quienes los usan raramente, aunque la distribución es bastante equilibrada entre los tres grupos.


5. Hallazgos y conclusiones

- Hallazgo 1

La base de datos está compuesta por 300 empleados y contiene 8 variables. Se identificaron 35 valores faltantes en total, distribuidos en las variables horas_pantalla (20 valores NA) y uso_chatbots_seg (15 valores NA), mientras que las demás variables no presentan datos perdidos. Aunque la mayoría de la información está completa, es importante tener en cuenta estos valores faltantes al realizar el análisis para evitar posibles afectaciones en los resultados.

- Hallazgo 2

El análisis descriptivo mostró que la mayoría de los empleados se concentra en rangos de edad intermedios y presenta un número moderado de horas en pantalla. Además, se identificaron algunos valores atípicos en el tiempo de uso de chatbots, lo que evidencia diferencias en la intensidad con la que los empleados utilizan estas herramientas.

- Hallazgo 3

La muestra presenta una distribución bastante equilibrada en variables como género y frecuencia de uso de chatbots, lo que permite analizar los resultados sin que exista una concentración excesiva en una sola categoría. Además, se observa que una parte importante de los encuestados cuenta con formación académica avanzada (posgrado y doctorado), lo que sugiere que las percepciones sobre los chatbots provienen en gran medida de profesionales con alto nivel educativo.