FUNDAMENTOS DE METODOLOGÍA DE LA INVESTIGACIÓN
UNIDAD 3: ANALISÍS DE LA INFORMACIÓN
1. Investigación y Selección de una Herramienta:
R es un lenguaje de programación y entorno de software diseñado específicamente para el
análisis estadístico, la visualización de datos y la ciencia de datos. Es ampliamente utilizado por
estadísticos, científicos de datos e investigadores debido a su capacidad para manejar grandes
volúmenes de datos y realizar análisis complejos. A continuación, se describen sus principales
características y funcionalidades:
Características principales de R
1. Enfoque estadístico:
o Diseñado específicamente para tareas estadísticas como regresión, pruebas de
hipótesis, análisis multivariante y modelado predictivo.
o Incluye una amplia gama de métodos estadísticos predefinidos.
2. Lenguaje de código abierto:
o R es gratuito y de código abierto, lo que permite a los usuarios modificarlo y
adaptarlo según sus necesidades.
o Tiene una comunidad activa que constantemente desarrolla y comparte
paquetes adicionales.
3. Extensibilidad mediante paquetes:
o R cuenta con un ecosistema robusto de más de 18,000 paquetes disponibles en
el repositorio CRAN (Comprehensive R Archive Network).
o Los paquetes permiten extender la funcionalidad de R en áreas específicas,
como aprendizaje automático (e.g., caret, randomForest), bioinformática (e.g.,
Bioconductor) y visualización avanzada (e.g., ggplot2).
4. Compatibilidad multiplataforma:
o Funciona en sistemas operativos Windows, macOS y Linux, asegurando una
amplia accesibilidad.
5. Enfocado en la visualización de datos:
o Ofrece herramientas avanzadas para generar gráficos de alta calidad,
personalizables y publicables.
o Los paquetes como ggplot2, lattice y shiny facilitan la creación de gráficos
complejos, paneles interactivos y aplicaciones web.
6. Interfaz interactiva:
o RStudio, una de las interfaces más populares, proporciona un entorno de
desarrollo integrado (IDE) que mejora la experiencia de usuario con
características como autocompletado, depuración y organización de proyectos.
7. Orientación a objetos:
o Permite trabajar con objetos y métodos específicos para simplificar tareas
complejas, como el análisis de grandes conjuntos de datos.
Funcionalidades clave de R
1. Análisis estadístico avanzado:
o Incluye funciones para análisis descriptivo (media, mediana, desviación
estándar), inferencial (pruebas t, ANOVA) y modelado avanzado (modelos
lineales y no lineales, análisis de series temporales).
2. Gestión y manipulación de datos:
o Herramientas como dplyr y tidyr facilitan el manejo y limpieza de datos,
incluyendo operaciones como filtrado, agrupamiento, y transformación.
3. Visualización avanzada de datos:
o Permite crear gráficos personalizados, como diagramas de dispersión,
histogramas, gráficos de líneas y mapas interactivos.
4. Modelado predictivo y aprendizaje automático:
o Soporta técnicas como árboles de decisión, redes neuronales, clustering y
regresiones múltiples.
o Paquetes como caret y mlr simplifican la implementación de modelos
complejos.
5. Integración con otras herramientas:
o Compatible con lenguajes como Python, C++ y Java.
o Puede conectarse con bases de datos SQL, trabajar con hojas de cálculo Excel y
generar informes en formato PDF o HTML.
6. Desarrollo de aplicaciones web interactivas:
o Con el paquete shiny, es posible crear aplicaciones web interactivas y paneles
de control sin necesidad de dominar lenguajes web.
7. Análisis reproducible:
o Herramientas como knitr y rmarkdown permiten combinar texto, código y
resultados en un único documento reproducible, ideal para informes científicos.
Ventajas de usar R
• Ideal para trabajos académicos y proyectos de investigación.
• Gran capacidad para trabajar con datos estructurados y no estructurados.
• Comunidad activa y recursos de aprendizaje gratuitos.
Limitaciones de R
• Puede ser más lento en comparación con otros lenguajes como Python para tareas no
estadísticas.
• La curva de aprendizaje puede ser empinada para principiantes sin experiencia en
programación.
R es una herramienta esencial en el análisis estadístico y la ciencia de datos, destacando por su
robustez, flexibilidad y capacidad de adaptarse a diversas necesidades. Su combinación de
características estadísticas avanzadas y herramientas de visualización lo convierten en una
opción preferida para muchos profesionales e investigadores
A continuación, se presenta una tabla comparativa entre R y Python (con Pandas), destacando
sus características clave:
Característica R Python (con Pandas)
Tipo de análisis Análisis estadístico avanzado, Análisis general de datos, manejo de
modelado predictivo, grandes conjuntos de datos,
visualización de datos. aprendizaje automático.
Facilidad de uso Diseñado específicamente para Más fácil para usuarios con
estadística; curva de experiencia previa en programación;
aprendizaje más empinada para versátil en diferentes dominios.
tareas generales.
Costo Gratuito (código abierto). Gratuito (código abierto).
Ecosistema de Más de 18,000 paquetes en Amplio ecosistema con paquetes
paquetes CRAN enfocados en adicionales como NumPy, SciPy, y
estadísticas, bioinformática, y matplotlib para tareas específicas.
visualización (ggplot2, dplyr).
Casos de uso Análisis estadístico puro, Ciencia de datos, desarrollo de
recomendados bioinformática, visualización sistemas productivos, integración con
avanzada de datos, tecnologías modernas, análisis de
investigación académica. datos estructurados y no
estructurados.
Manejo de datos Excelente para datos Muy eficiente con datos grandes y
estructurados, pero menos heterogéneos, especialmente en
eficiente con datos muy combinación con otras librerías.
grandes.
Visualización Gráficos avanzados y altamente Buena visualización, especialmente
personalizables (con ggplot2 y con matplotlib y seaborn, aunque
lattice). menos enfocado en detalles
estadísticos.
Integración Soporte limitado para lenguajes Altamente integrable con sistemas de
externos y tecnologías producción, lenguajes como Java,
modernas. C++, y bibliotecas de machine
learning.
Curva de Más intuitivo para estadísticos, Más intuitivo para programadores y
aprendizaje pero complejo para desarrolladores con experiencia en
programadores generales. lenguajes como Java o C++.
Documentación y Comunidad grande y activa en el Comunidad activa en múltiples
comunidad ámbito académico. dominios, incluyendo ciencia de
datos y desarrollo de software.
Aplicaciones Se destaca con shiny para crear Posible con Dash o Streamlit, aunque
interactivas aplicaciones web interactivas requiere mayor configuración inicial.
fácilmente.
Análisis de los defectos en formularios de una encuesta utilizando R
1. Introducción sobre la herramienta seleccionada y el conjunto de datos utilizado
Herramienta seleccionada
Para este análisis, se utiliza R, un lenguaje de programación especializado en análisis estadístico
y visualización de datos. Se emplearán paquetes como dplyr para la manipulación de datos y
ggplot2 para la visualización. R es ideal para realizar análisis descriptivos detallados y generar
gráficos claros y personalizados.
Conjunto de datos:
El conjunto de datos utilizado corresponde a una encuesta aplicada a 2720 viviendas. Las
columnas principales incluyen:
• fecha_inicio_producto: fecha del registro del defecto.
• alias_trabajador_real_ejecutado: quien registra el defecto
• nombre_supervisor_levantamiento: supervisor que realiza la encuesta
• Personal_Levant: Encuestador que levanta la encuesta
• cantidad_defecto: Número de errores detectados en el formulario, como respuestas
inconsistentes o preguntas no respondidas.
2. Descripción de los análisis realizados
a) Estadísticos descriptivos:
• Medidas de tendencia central: Se calcularon la media, mediana y moda del tiempo de
respuesta y nivel de satisfacción.
• Medidas de dispersión: Se incluyeron el rango, la desviación estándar y los cuartiles
para los tiempos de respuesta y los errores.
• Frecuencias: Se analizaron las frecuencias de formularios completos con defectos
b) Análisis gráfico:
• Histogramas para visualizar la distribución del tiempo de respuesta.
• Gráficos de barras para mostrar la proporción de respuestas completas frente a
incompletas.
• Diagramas de dispersión para explorar la relación entre los errores y el nivel de
satisfacción.
Paquetes utilizados:
• dplyr: Para el preprocesamiento de datos.
• ggplot2: Para generar los gráficos.
• summary(): Para obtener estadísticas descriptivas básicas.
3. Interpretación de los resultados obtenidos
Hallazgos gráficos:
• Todos los supervisores tienen mas defectos en la sección 3 del formulario
• La mayoría están concentrados en inconsistencis
4. Breve discusión sobre la utilidad de R para el análisis realizado
R fue una herramienta esencial para este análisis, gracias a su capacidad para manejar datos
estructurados y generar gráficos altamente personalizables. La combinación de paquetes como
dplyr y ggplot2 permitió realizar un análisis detallado y presentar resultados de manera clara y
visual.
Ventajas destacadas:
• La facilidad para realizar cálculos estadísticos complejos y gráficos avanzados con poco
código.
• La capacidad de identificar valores atípicos y patrones relevantes a través de diagramas
de dispersión y boxplots.
• La versatilidad de las herramientas de visualización (ggplot2) para presentar resultados
de forma profesional.
Conclusión:
R demostró ser una opción eficaz para el análisis de defectos en formularios de encuestas,
proporcionando resultados claros y detallados que permiten identificar problemas en el diseño
del formulario y mejorar la experiencia del usuario.
Código en R
# importación de las librerías
library(readr)
library(openxlsx)
library(tidyverse)
library(ggplot2)
library(lubridate)
library(ggstatsplot)
library(ggbeeswarm)
library(readxl)
library(cowplot) #Para unir gráficos generados por ggplot2
library(plotly)
library(tidyr)
library(scales)
# Especificar la ruta del archivo Excel
reporte <- "D://defectos\\[Link]"
# Leer el archivo Excel
reporte <- read_excel(reporte)
# Mostrar los datos leídos
#view(reporte)
pdf("D://defectos\\Reporte_defectos.pdf", width = 20, height = 8.5)
#GRAFICO 3
gctdc <- ggplot(reporte, aes(x = "", fill = nombre_defecto_formulario)) +
geom_bar() +
coord_polar("y", start = 0) +
labs(title = "Gráfico Circular por tipo de defecto en cantidades", fill = "Categoría") +
theme_void()
gctdce <- gctdc +
geom_text(stat = "count", aes(label = paste0("",..count..)),
vjust = -0.5, size = 5, color = "black",
position = position_stack(vjust = 0.5)) +
scale_fill_manual(values = c("turquoise1", "#40E0D0","antiquewhite","bisque2")) # Agregar
colores personalizados
print(gctdce)
#GRAFICO 4
# Definir colores personalizados
colores <- c("turquoise1", "#40E0D0","antiquewhite","bisque2") # Puedes agregar más
colores si es necesario
gctdp <- ggplot(reporte, aes(x = "", fill = nombre_defecto_formulario)) +
geom_bar() +
coord_polar("y", start = 0) +
labs(title = "Gráfico Circular por tipo de defecto en porcentaje", fill = "Categoría") +
theme_void()+
scale_fill_manual(values = colores) # Agregar colores personalizados
gctdpe <- gctdp +
geom_text(stat = "count", aes(label = paste0(scales::percent(..count../sum(..count..)))),
vjust = -0.5, size = 4, color = "black",
position = position_stack(vjust = 0.5))
print(gctdpe)
#GRAFICO 10
# Filtrar los datos excluyendo "Supervisor1"
datos_filtrados <- reporte %>% filter(alias_supervisor_levantamiento != "JMARTINEZ")
# Crear el gráfico de barras apiladas con los datos filtrados
badc <- ggplot(datos_filtrados, aes(x = alias_supervisor_levantamiento, fill =
alias_supervisor_levantamiento)) +
geom_bar() +
labs(title = "Barras apiladas de defectos por supervisor", x = "Críticos", y = "Cantidad") +
scale_fill_manual(values = c("orange", "#CAFF70", "aquamarine", "azure", "grey",
"#FFD39B", "gold", "pink"))
badce <- badc +
geom_text(stat = "count", aes(label = paste0("", after_stat(count))),
vjust = -0.5, size = 3, color = "black",
position = position_stack(vjust = 0.5))
print(badce)
#GRAFICO 12
grafico_13 <- ggplot(reporte, aes(x = nombre_tarea, fill = nombre_tarea)) +
geom_bar(position = "stack") +
facet_wrap(~Personal_Levant) +
geom_text(stat = 'count', aes(label = paste0( "\n", ..count..)),
vjust = 0.2, size = 3, color = "black", fontface = "bold",
position = position_stack(vjust = 0.5)) +
labs(title = "Gráfico de cantidades de defectos por encuestador") +
ylab("Cantidad") +
scale_fill_manual(values = c("darksalmon", "indianred1", "#FFB90F", "#A6D96A",
"#1A9850","burlywood1","#7FFF00","#00FFFF")) +
theme([Link].x = element_text(angle = 75, hjust = 1, color = "black"),
[Link] = element_text(size = 8)) # Adjust the size here
print(grafico_13)
#GRAFICO 10
# Filtrar los datos excluyendo "Supervisor1"
datos_filtrados <- reporte %>% filter(alias_supervisor_levantamiento != "JMARTINEZ")
# Crear el gráfico de barras apiladas con los datos filtrados
badc <- ggplot(datos_filtrados, aes(x = alias_supervisor_levantamiento, fill =
nombre_seccion)) +
geom_bar() +
labs(title = "Barras apiladas de defectos por supervisor por seccion", x = "Supervisores", y =
"Cantidad") +
scale_fill_manual(values = c("orange", "#CAFF70", "aquamarine", "azure", "grey",
"#FFD39B", "gold", "pink","magenta","yellow","green","red","purple","orange"))
badce <- badc +
geom_text(stat = "count", aes(label = paste0("", after_stat(count))),
vjust = -0.5, size = 3, color = "black",
position = position_stack(vjust = 0.5))
print(badce)
#GRAFICO9
frecuencia <- table(reporte$codigo_pregunta)
datos_mas_repetidos <- head(sort(frecuencia, decreasing = TRUE), 8)
# Crear un dataframe con las etiquetas y los valores
df <- [Link](etiqueta = names(datos_mas_repetidos), valor =
[Link](datos_mas_repetidos))
# Dividir las etiquetas en dos líneas
df$etiqueta <- gsub(" ", "\n", df$etiqueta)
# Asignar colores a cada barra
colores <- c("steelblue", "darkorange", "forestgreen", "purple",
"gold","aquamarine","#C0FF3E","#9AFF9A")
# Crear el gráfico de barras horizontal con etiquetas en dos líneas, colores asignados y
cantidades
gbhpdr<- ggplot(df, aes(x = valor, y = etiqueta, fill = etiqueta)) +
geom_bar(stat = "identity") +
geom_text(aes(label = valor), hjust = -0.2, color = "black") + # Agregar etiquetas con las
cantidades
labs(title = "Grafico de barra horizontal de las preguntas con mas defectos registrados", y =
"Datos", x = "Frecuencia") +
theme_minimal() +
theme([Link] = element_text(hjust = 0.5),
[Link].y = element_text(size = 8)) +
scale_fill_manual(values = colores) # Asignar colores personalizados
# Rotar las etiquetas en el eje y para mostrarlas horizontalmente
gbhpdr + theme([Link].y = element_text(angle = 0, hjust = 0))
#PROCESAMIENTO
#GRAFICO 12
# Grafica de Trabajo Defectos encontrados de Supervisor por critico
grafico_13 <- ggplot(reporte, aes(x = alias_trabajador_programado, fill =
nombre_trabajador_programado)) +
geom_bar(position = "stack") +
facet_wrap(~nombre_supervisor_levantamiento) +
geom_text(stat = 'count', aes(label = paste0( "\n", ..count..)),
vjust = 0.2, size = 3, color = "black", fontface = "bold",
position = position_stack(vjust = 0.5)) +
labs(title = "Gráfico de cantidades de defectos por supervisor registrado por procesamiento")
+
ylab("Cantidad") +
scale_fill_manual(values = c("#E066FF", "indianred1", "#FFB90F", "#A6D96A",
"#1A9850","burlywood1","#7FFF00","#00FFFF","#EED5B7","#FF4040","#98F5FF","#CAFF70",
"#FFF68F","violetred1"))+
theme([Link].x = element_text(angle = 75, hjust = 1, color = "black"))
print(grafico_13)
# Grafica de Trabajo Defectos encontrados de encuestadores por critico
grafico_13 <- ggplot(reporte, aes(x = alias_trabajador_programado, fill =
nombre_trabajador_programado)) +
geom_bar(position = "stack") +
facet_wrap(~Personal_Levant) +
geom_text(stat = 'count', aes(label = paste0( "\n", ..count..)),
vjust = 0.2, size = 3, color = "black", fontface = "bold",
position = position_stack(vjust = 0.5)) +
labs(title = "Gráfico de cantidades de defectos por encuestador registrado por
procesamiento") +
ylab("Cantidad") +
scale_fill_manual(values = c("#E066FF", "indianred1", "#FFB90F", "#A6D96A",
"#1A9850","burlywood1","#7FFF00","#00FFFF","#EED5B7","#FF4040","#98F5FF","#CAFF70",
"#FFF68F","palegreen1"))+
theme([Link].x = element_text(angle = 75, hjust = 1, color = "black"))
print(grafico_13)
badcpe <- ggplot(reporte, aes(x = periodo, fill = alias_trabajador_programado)) +
geom_bar() +
labs(title = "Barras apiladas de defectos por critico por periodo",
x = "Periodo",
y = "Cantidad") +
coord_flip() +
scale_fill_manual(values = c("#E066FF", "indianred1", "#FFB90F", "#A6D96A", "#1A9850",
"burlywood1", "#7FFF00", "#00FFFF", "#EED5B7", "#FF4040",
"#98F5FF", "#CAFF70", "#FFF68F", "palegreen1")) +
# Agregar etiquetas de conteo
geom_text(stat = "count", aes(label = paste0("", ..count..)),
vjust = 0.5, size = 3, color = "black",
position = position_stack(vjust = 0.5))
# Mostrar el gráfico
print(badcpe)
[Link]()