---
title: "Encuesta Centro Colombo Americano"
author: 
  - "INGRITH KATHERINE LLANOS DUSSAN"
  - "Maestría en Inteligencia de Negocios"
  - "Trabajo dirigido: Diseño de un modelo de inteligencia de negocios centralizado basado en el modelo AMAR del Centro Colombo Americano"
date: ""
output:
  html_document:
    highlight: tango
    number_sections: yes
    theme: united
    toc: yes
    toc_depth: 3
    toc_float: yes
  word_document:
    toc: yes
    toc_depth: 3
  pdf_document:
    toc: yes
    toc_depth: 3
---

```{r include=FALSE}
# Definan el directorio de trabajo. Oculten este bloque de código.

setwd("C:/RSTUDIO/")

```


```{r eval=FALSE, include=FALSE}

install.packages("cli")
install.packages("rlang")
install.packages("tidyverse")
install.packages("readr")
install.packages("dplyr")
install.packages("ggplot2")
install.packages("psych")
install.packages("DescTools")

```


```{r include=FALSE}


library(tidyverse)
library(readr)
library(dplyr)
library(ggplot2)
library(psych)
library(DescTools)

```



# Contextualización. 



El objetivo de la aplicación del instrumento de medición interna es evaluar la percepción de los colaboradores de la Gerencia de Planeación y Desarrollo y Gerencia de Servicio Compartidos del Centro Colombo Americano sobre la efectividad de los procesos de gestión de datos dentro de la institución, de acuerdo a las variables: generación y recolección de datos, interoperabilidad de herramientas, agregación, explotación, y gobierno de datos. Mediante un análisis de medidas de tendencia central y medidas de variabilidad a todas las respuestas, para luego identificar fortalezas y áreas de oportunidad en la gestión de la información, permitiendo así fundamentar el diseño de un modelo de inteligencia de negocios centralizado. Este modelo no solo optimizará la gestión de datos y mejorará la toma de decisiones, sino que también alineará las prácticas institucionales con los objetivos estratégicos del modelo AMAR, promoviendo una cultura de datos sostenible en el tiempo.

# Elección de variables.

|                Variable               |                                Dimensión                                | Código | Preguntas |  Escala |  Naturaleza |
|:-------------------------------------:|:-----------------------------------------------------------------------:|:------:|-----------|:-------:|:-----------:|
| Generación y recolección de datos     | Percepción sobre la efectividad de datos integrales                     | V1     | P1 - P4   | Ordinal | Cualitativa |
| Interoperabilidad de las herramientas | Percepción de la integración y compatibilidad de los sistemas           | V2     | P5 - P7   | Ordinal | Cualitativa |
| Agregación de datos                   | Consolidación y calidad de los datos                                    | V3     | P8 - P11  | Ordinal | Cualitativa |
| Explotación de datos                  | Percepción sobre la capacidad analítica y utilización efectiva de datos | V4     | P12 - P15 | Ordinal | Cualitativa |
| Gobierno de datos                     | Percepción sobre la efectividad de la gestión de los datos              | V5     | P16 - P18 | Ordinal | Cualitativa |

```{r include=FALSE}
# Carguen el conjunto de datos. Oculten esten bloque de código.


library(readxl)
Data_CCA <- read_excel("RStudio_Resultado_encuesta_CCA.xlsx")
View(Data_CCA)
```

# Variables

```{r include=FALSE}
# Coerción de variables

for (i in 1:18) {
  col_name <- paste0("P", i)
  Data_CCA[[col_name]] <- as.numeric(as.character(Data_CCA[[col_name]]))
}
```


```{r include=FALSE}
# Verificar la estructura de los datos para asegurarse de que las preguntas son numéricas
str(Data_CCA)
```


```{r}
# Con la función srt() se puede visualizar la estructura de la base de datos

str(Data_CCA)

# Con la función names() los nombres de las variables. 

names(Data_CCA)
# Una vez hayan explorado estas dos funciones, oculten este bloque de código.

```
# Resumen estadistico 

```{r}

summary(Data_CCA)
```

```{r}
# Calcular el coeficiente alfa de Cronbach para las variables P1 a P18

#install.packages("psych")
#library(psych)

cronbach_result <- psych::alpha(Data_CCA[, -1])

# Mostrar el resultado
print(cronbach_result)

```


```{r}
library(dplyr)

# Subconjunto de datos para el grupo Generacion_Recoleccion y las preguntas P1 a P4
data_subsetv1 <- Data_CCA %>%
  select(starts_with("P")) %>%
  mutate_if(is.character, as.factor)

# Crear una función para calcular las métricas
calcular_metricasv1 <- function(preguntav1) {
  data.frame(
    Preguntav1 = preguntav1,
    Validov1 = sum(!is.na(data_subsetv1[[preguntav1]])),
    Perdidov1 = sum(is.na(data_subsetv1[[preguntav1]])),
    Mediav1 = mean(data_subsetv1[[preguntav1]], na.rm = TRUE),
    Medianav1 = median(data_subsetv1[[preguntav1]], na.rm = TRUE),
    Modav1 = DescTools::Mode(data_subsetv1[[preguntav1]]),
    Desviacion_Estandarv1 = sd(data_subsetv1[[preguntav1]], na.rm = TRUE),
    Varianzav1 = var(data_subsetv1[[preguntav1]], na.rm = TRUE)
  )
}

# Calcular las métricas para las preguntas P1 a P4
resultadosv1 <- lapply(c("P1", "P2", "P3", "P4"), calcular_metricasv1) %>%
  bind_rows()

# Mostrar los resultados
print(resultadosv1)

```




```{r}
# Crear Gráfica de barras para cada pregunta
for (preguntav1 in c("P1", "P2", "P3", "P4")) {
  # Calcular la media para la pregunta actual
  media_preguntav1 <- mean(data_subsetv1[[preguntav1]], na.rm = TRUE)
  
  # Crear la Grafíca de barras
  pv1 <- ggplot(data_subsetv1, aes(x = !!sym(preguntav1))) +
    geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#2F5597", color = "#2F5597", alpha = 0.7) +
    geom_density(color = "#446C88", size = 1) +
    geom_vline(aes(xintercept = media_preguntav1), color = "#B4C7E7", linetype = "dashed", size = 1) +
    labs(
      title = paste("Gráfica de barras de generacion y recoleccion de datos Pregunta", preguntav1),
      x = preguntav1,
      y = "Densidad"
    ) +
    theme_minimal()
  
  # Mostrar la gráfica de barras en el dispositivo gráfico
  print(pv1)
  
  # Guardar la gráfica de barras como imagen
  ggsave(filename = paste0("histograma_", preguntav1, ".png"), plot = pv1)
}

```


```{r}
# Subconjunto de datos para el grupo Interoperabilidad de las herramientas y las preguntas P5 a P7
data_subsetv2 <- Data_CCA %>%
  select(starts_with("P")) %>%
  mutate_if(is.character, as.factor)

# Crear una función para calcular las métricas
calcular_metricasv2 <- function(preguntav2) {
  modav2 <- DescTools::Mode(data_subsetv2[[preguntav2]])
  if (length(modav2) > 1) {
    modav2 <- paste(modav2, collapse = ", ")
  } else {
    modav2 <- as.character(modav2)  # Asegurar que modav2 sea de tipo character
  }
  data.frame(
    Preguntav2 = preguntav2,
    Validov2 = sum(!is.na(data_subsetv2[[preguntav2]])),
    Perdidov2 = sum(is.na(data_subsetv2[[preguntav2]])),
    Mediav2 = mean(data_subsetv2[[preguntav2]], na.rm = TRUE),
    Medianav2 = median(data_subsetv2[[preguntav2]], na.rm = TRUE),
    Modav2 = modav2,
    Desviacion_Estandarv2 = sd(data_subsetv2[[preguntav2]], na.rm = TRUE),
    Varianzav2 = var(data_subsetv2[[preguntav2]], na.rm = TRUE)
  )
}

# Calcular las métricas para las preguntas P5 a P7
resultadosv2 <- lapply(c("P5", "P6", "P7"), calcular_metricasv2)

# Convertir la lista a un data frame, manejar casos donde no hay moda encontrada
resultadosv2 <- bind_rows(resultadosv2)

# Mostrar los resultados
print(resultadosv2)




```


```{r warning=FALSE}
# Crear gráfica de barras para cada pregunta con línea de media y densidad de probabilidad
for (preguntav2 in c("P5", "P6", "P7")) {
  # Calcular la media para la pregunta actual
  media_preguntav2 <- mean(data_subsetv2[[preguntav2]], na.rm = TRUE)
  
  # Crear la gráfica de barras
  pv2 <- ggplot(data_subsetv2, aes(x = !!sym(preguntav2))) +
    geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#2F5597", color = "#2F5597", alpha = 0.7) +
    geom_density(color = "#446C88", size = 1) +
    geom_vline(aes(xintercept = media_preguntav2), color = "#B4C7E7", linetype = "dashed", size = 1) +
    labs(
      title = paste("Gráfica de barras de interoperabilidad de las herramientas Pregunta", preguntav2),
      x = preguntav2,
      y = "Densidad"
    ) +
    theme_minimal()
  
  # Mostrar la gráfica de barras en el dispositivo gráfico
  print(pv2)
  
  # Guardar la gráfica de barras como imagen
  ggsave(filename = paste0("histograma_", preguntav2, ".png"), plot = pv2)
}

```

```{r warning=FALSE}
# Subconjunto de datos para el grupo Agregación de datos y las preguntas P8 a P11
data_subsetv3 <- Data_CCA %>%
  select(starts_with("P")) %>%
  mutate_if(is.character, as.factor)

# Crear una función para calcular las métricas
calcular_metricasv3 <- function(preguntav3) {
  modav3 <- DescTools::Mode(data_subsetv3[[preguntav3]])
  if (length(modav3) > 1) {
    modav3 <- paste(modav3, collapse = ", ")
  } else {
    modav3 <- as.character(modav3)  # Asegurar que modav3 sea de tipo character
  }
  data.frame(
    Preguntav3 = preguntav3,
    Validov3 = sum(!is.na(data_subsetv3[[preguntav3]])),
    Perdidov3 = sum(is.na(data_subsetv3[[preguntav3]])),
    Mediav3 = mean(data_subsetv3[[preguntav3]], na.rm = TRUE),
    Medianav3 = median(data_subsetv3[[preguntav3]], na.rm = TRUE),
    Modav3 = modav3,
    Desviacion_Estandarv3 = sd(data_subsetv3[[preguntav3]], na.rm = TRUE),
    Varianzav3 = var(data_subsetv3[[preguntav3]], na.rm = TRUE)
  )
}

# Calcular las métricas para las preguntas P8 a P11
resultadosv3 <- lapply(c("P8", "P9", "P10", "P11"), calcular_metricasv3)

# Convertir la lista a un data frame, manejar casos donde no hay moda encontrada
resultadosv3 <- bind_rows(resultadosv3)

# Mostrar los resultados
print(resultadosv3)


```

```{r warning=FALSE}
# Crear la gráfica de barras para cada pregunta con línea de media y densidad de probabilidad
for (preguntav3 in c("P8", "P9", "P10", "P11")) {
  # Calcular la media para la pregunta actual
  media_preguntav3 <- mean(data_subsetv3[[preguntav3]], na.rm = TRUE)
  
  # Crear la gráfica de barras
  pv3 <- ggplot(data_subsetv3, aes(x = !!sym(preguntav3))) +
    geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#2F5597", color = "#2F5597", alpha = 0.7) +
    geom_density(color = "#446C88", size = 1) +
    geom_vline(aes(xintercept = media_preguntav3), color = "#B4C7E7", linetype = "dashed", size = 1) +
    labs(
      title = paste("Gráfica de barras de agregacion de datos Pregunta", preguntav3),
      x = preguntav3,
      y = "Densidad"
    ) +
    theme_minimal()
  
  # Mostrar la gráfica de barras en el dispositivo gráfico
  print(pv3)
  
  # Guardar la gráfica de barras como imagen
  ggsave(filename = paste0("histograma_", preguntav3, ".png"), plot = pv3)
}
```


```{r warning=FALSE}
# Subconjunto de datos para el grupo Explotación de datos y las preguntas P12 a P15
data_subsetv4 <- Data_CCA %>%
  select(starts_with("P")) %>%
  mutate_if(is.character, as.factor)

# Crear una función para calcular las métricas
calcular_metricasv4 <- function(preguntav4) {
  modav4 <- DescTools::Mode(data_subsetv4[[preguntav4]])
  if (length(modav4) > 1) {
    modav4 <- paste(modav4, collapse = ", ")
  } else {
    modav4 <- as.character(modav4)  # Asegurar que modav4 sea de tipo character
  }
  data.frame(
    Preguntav4 = preguntav4,
    Validov4 = sum(!is.na(data_subsetv4[[preguntav4]])),
    Perdidov4 = sum(is.na(data_subsetv4[[preguntav4]])),
    Mediav4 = mean(data_subsetv4[[preguntav4]], na.rm = TRUE),
    Medianav4 = median(data_subsetv4[[preguntav4]], na.rm = TRUE),
    Modav4 = modav4,
    Desviacion_Estandarv4 = sd(data_subsetv4[[preguntav4]], na.rm = TRUE),
    Varianzav4 = var(data_subsetv4[[preguntav4]], na.rm = TRUE)
  )
}

# Calcular las métricas para las preguntas P12 a P15
resultadosv4 <- lapply(c("P12", "P13", "P14", "P15"), calcular_metricasv4)

# Convertir la lista a un data frame, manejar casos donde no hay moda encontrada
resultadosv4 <- bind_rows(resultadosv4)

# Mostrar los resultados
print(resultadosv4)

```


```{r warning=FALSE}
# Crear la gráfica de barras para cada pregunta con línea de media y densidad de probabilidad
for (preguntav4 in c("P12", "P13", "P14", "P15")) {
  # Calcular la media para la pregunta actual
  media_preguntav4 <- mean(data_subsetv4[[preguntav4]], na.rm = TRUE)
  
  # Crear la gráfica de barras
  pv4 <- ggplot(data_subsetv4, aes(x = !!sym(preguntav4))) +
    geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#2F5597", color = "#2F5597", alpha = 0.7) +
    geom_density(color = "#446C88", size = 1) +
    geom_vline(aes(xintercept = media_preguntav4), color = "#B4C7E7", linetype = "dashed", size = 1) +
    labs(
      title = paste("Gráfica de barras de explotacion de datos Pregunta", preguntav4),
      x = preguntav4,
      y = "Densidad"
    ) +
    theme_minimal()
  
  # Mostrar la gráfica de barras en el dispositivo gráfico
  print(pv4)
  
  # Guardar la gráfica de barras como imagen
  ggsave(filename = paste0("histograma_", preguntav4, ".png"), plot = pv4)
}
```

```{r warning=FALSE}
# Subconjunto de datos para el grupo Explotación de datos y las preguntas P16 a P18
data_subsetv5 <- Data_CCA %>%
  select(starts_with("P")) %>%
  mutate_if(is.character, as.factor)

# Crear una función para calcular las métricas
calcular_metricasv5 <- function(preguntav5) {
  modav5 <- DescTools::Mode(data_subsetv5[[preguntav5]])
  if (length(modav5) > 1) {
    modav5 <- paste(modav5, collapse = ", ")
  } else {
    modav5 <- as.character(modav5)  # Asegurar que modav5 sea de tipo character
  }
  data.frame(
    Preguntav5 = preguntav5,
    Validov5 = sum(!is.na(data_subsetv5[[preguntav5]])),
    Perdidov5 = sum(is.na(data_subsetv5[[preguntav5]])),
    Mediav5 = mean(data_subsetv5[[preguntav5]], na.rm = TRUE),
    Medianav5 = median(data_subsetv5[[preguntav5]], na.rm = TRUE),
    Modav5 = modav5,
    Desviacion_Estandarv5 = sd(data_subsetv5[[preguntav5]], na.rm = TRUE),
    Varianzav5 = var(data_subsetv5[[preguntav5]], na.rm = TRUE)
  )
}

# Calcular las métricas para las preguntas P16 a P18
resultadosv5 <- lapply(c("P16", "P17", "P18"), calcular_metricasv5)

# Convertir la lista a un data frame, manejar casos donde no hay moda encontrada
resultadosv5 <- bind_rows(resultadosv5)

# Mostrar los resultados
print(resultadosv5)

```



```{r warning=FALSE}
# Crear la gráfica de barras para cada pregunta con línea de media y densidad de probabilidad
for (preguntav5 in c("P16", "P17", "P18")) {
  # Calcular la media para la pregunta actual
  media_preguntav5 <- mean(data_subsetv5[[preguntav5]], na.rm = TRUE)
  
  # Crear la gráfica de barras
  pv5 <- ggplot(data_subsetv5, aes(x = !!sym(preguntav5))) +
    geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#2F5597", color = "#2F5597", alpha = 0.7) +
    geom_density(color = "#446C88", size = 1) +
    geom_vline(aes(xintercept = media_preguntav5), color = "#B4C7E7", linetype = "dashed", size = 1) +
    labs(
      title = paste("Histograma de ExplotaciOn de datos Pregunta", preguntav5),
      x = preguntav5,
      y = "Densidad"
    ) +
    theme_minimal()
  
  # Mostrar la gráfica de barras en el dispositivo gráfico
  print(pv5)
  
  # Guardar la gráfica de barras como imagen
  ggsave(filename = paste0("histograma_", preguntav5, ".png"), plot = pv5)
}
```
.


```{r eval=FALSE, include=FALSE}
# Calcular las medias de las variables especificadas y crear nuevas columnas
Data_CCA <- transform(Data_CCA,
                       Generacion_Recoleccion = rowMeans(Data_CCA[, c("P1", "P2", "P3", "P4")], na.rm = TRUE),
                       Interoperabilidad = rowMeans(Data_CCA[, c("P5", "P6", "P7")], na.rm = TRUE),
                       Agregacion = rowMeans(Data_CCA[, c("P8", "P9", "P10", "P11")], na.rm = TRUE),
                       Explotacion = rowMeans(Data_CCA[, c("P12", "P13", "P14", "P15")], na.rm = TRUE),
                       Gobierno = rowMeans(Data_CCA[, c("P16", "P17", "P18")], na.rm = TRUE)
)

```


```{r eval=FALSE, include=FALSE}

# Calcular la matriz de correlación utilizando el método de Pearson
correlation_matrix <- cor(Data_CCA[, c("Generacion_Recoleccion", "Interoperabilidad", "Agregacion", "Explotacion", "Gobierno")], method = "pearson")

# Mostrar la matriz de correlación
print(correlation_matrix)

# Visualizar la matriz de correlación con corrplot (opcional)
chart.Correlation(correlation_matrix, histogram = TRUE, method = "pearson")


```


```{r eval=FALSE, include=FALSE}
# Mostrar las primeras filas del DataFrame actualizado
head(Data_CCA)
```


```{r eval=FALSE, include=FALSE}

# Realizar un análisis descriptivo
summary(Data_CCA[c("Generacion_Recoleccion", "Interoperabilidad", "Agregacion", "Explotacion", "Gobierno")])

```


```{r eval=FALSE, include=FALSE}
# Estadísticos descriptivos de la variable Generacion_Recolecion Solo se debe visualizar la tabla con los resultados en el html. Ocultar el este bloque de código


m1 <- mean(Data_CCA$Generacion_Recoleccion)
m2 <- median(Data_CCA$Generacion_Recoleccion)
m3 <- var(Data_CCA$Generacion_Recoleccion)
m4 <- sd(Data_CCA$Generacion_Recoleccion)
m5 <- round(sd(Data_CCA$Generacion_Recoleccion)/abs(mean(Data_CCA$Generacion_Recoleccion))*100,2) #desviación estándar/valor absoluto de la media.
m6 <- min(Data_CCA$Generacion_Recoleccion)
m7 <- max(Data_CCA$Generacion_Recoleccion)

Medida <- c("Media","Mediana","Varianza","Desviación estándar","Coeficiente de variación","Minimo","Maximo") # vector de caracteres
Valor <- round(c(m1,m2,m3,m4,m5,m6,m7),2)     # vector de valores

Resul <- data.frame(cbind(Medida,Valor)) # definir el data.frame 

table(Resul)
```



```{r eval=FALSE, include=FALSE}

# Crear histogramas
hist(Data_CCA$Generacion_Recoleccion, main = "Generacion Recoleccion", xlab = "Valor")
hist(Data_CCA$Interoperabilidad, main = "Interoperabilidad", xlab = "Valor")
hist(Data_CCA$Agregacion, main = "Agregacion", xlab = "Valor")
hist(Data_CCA$Explotacion, main = "Explotacion", xlab = "Valor")
hist(Data_CCA$Gobierno, main = "Gobierno", xlab = "Valor")

```

