#install.packages("readxl")
#install.packages("dplyr")
#install.packages("ggplot2")
#install.packages("scales")
#install.packages("tm")
#install.packages("wordcloud")
#install.packages("RColorBrewer")
library(readxl)
library(dplyr)
library(ggplot2)
library(scales)
library(tm)
library(wordcloud)
library(RColorBrewer)

# Cargar los datos desde el archivo Excel
file_path <- "Uso de la IA en las Carreras de Ingeniería en la UPES.xlsx"
data <- read_excel(file_path, sheet = "Respuestas de formulario 1")

# Mostrar las primeras filas de los datos
head(data)
## # A tibble: 6 × 12
##   `Carrera de Ingeniería:` `Año de estudio` 1. ¿Cuánto conoces sobre Inteligen…¹
##   <chr>                               <dbl> <chr>                               
## 1 ing.Cc                                  2 Moderado                            
## 2 ing.Cc                                  1 Poco                                
## 3 ing. Civil                              2 Moderado                            
## 4 ing. Civil                              2 Nada                                
## 5 ing. Civil                              1 Poco                                
## 6 ing. Industrial                         2 Poco                                
## # ℹ abbreviated name:
## #   ¹​`1. ¿Cuánto conoces sobre Inteligencia Artificial (IA) y sus aplicaciones en la ingeniería?`
## # ℹ 9 more variables:
## #   `2. ¿Has utilizado herramientas o software basado en IA en tus proyectos de ingeniería?` <chr>,
## #   `3. ¿Cuáles son tus principales preocupaciones sobre la integración de IA en la ingeniería?1.       (Puedes elegir más de una opción)` <chr>,
## #   `4. ¿Cuáles consideranque son los beneficios mas significativos de utilizar  IA en la ingeniería?` <chr>,
## #   `6. ¿Cómo crees que la IA influirá en el futuro de la educación y formación en ingeniería?` <chr>, …
# Análisis exploratorio
# 1. Distribución de los estudiantes por carrera y año de estudio
distribucion_carrera <- data %>%
  group_by(`Carrera de Ingeniería:`, `Año de estudio`) %>%
  summarise(Conteo = n()) %>%
  mutate(Porcentaje = Conteo / sum(Conteo) * 100)

# Visualización de la distribución
ggplot(distribucion_carrera, aes(x = `Carrera de Ingeniería:`, y = Porcentaje, fill = `Año de estudio`)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), position = position_dodge(width = 0.9), vjust = -0.5) +
  labs(title = "Distribución de estudiantes por carrera y año de estudio",
       x = "Carrera de Ingeniería",
       y = "Porcentaje de estudiantes") +
  theme_minimal()

# 2. Nivel de conocimiento sobre IA
nivel_conocimiento <- data %>%
  group_by(`1. ¿Cuánto conoces sobre Inteligencia Artificial (IA) y sus aplicaciones en la ingeniería?`) %>%
  summarise(Conteo = n()) %>%
  mutate(Porcentaje = Conteo / sum(Conteo) * 100)

# Visualización del nivel de conocimiento sobre IA
ggplot(nivel_conocimiento, aes(x = `1. ¿Cuánto conoces sobre Inteligencia Artificial (IA) y sus aplicaciones en la ingeniería?`, y = Porcentaje)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), vjust = -0.5) +
  labs(title = "Nivel de conocimiento sobre IA",
       x = "Nivel de conocimiento",
       y = "Porcentaje de estudiantes") +
  theme_minimal()

# 3. Uso de herramientas o software basado en IA en proyectos de ingeniería
uso_IA <- data %>%
  group_by(`2. ¿Has utilizado herramientas o software basado en IA en tus proyectos de ingeniería?`) %>%
  summarise(Conteo = n()) %>%
  mutate(Porcentaje = Conteo / sum(Conteo) * 100)

# Visualización del uso de herramientas o software basado en IA
ggplot(uso_IA, aes(x = `2. ¿Has utilizado herramientas o software basado en IA en tus proyectos de ingeniería?`, y = Porcentaje)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), vjust = -0.5) +
  labs(title = "Uso de herramientas o software basado en IA en proyectos de ingeniería",
       x = "Uso de IA",
       y = "Porcentaje de estudiantes") +
  theme_minimal()

# 4. Interés en participar en un curso o taller sobre IA aplicada a la ingeniería
interes_curso <- data %>%
  group_by(`11. ¿Te interesaría participar en un curso o taller sobre IA aplicada a la ingeniería?`) %>%
  summarise(Conteo = n()) %>%
  mutate(Porcentaje = Conteo / sum(Conteo) * 100)

# Visualización del interés en cursos o talleres sobre IA
ggplot(interes_curso, aes(x = `11. ¿Te interesaría participar en un curso o taller sobre IA aplicada a la ingeniería?`, y = Porcentaje)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), vjust = -0.5) +
  labs(title = "Interés en cursos o talleres sobre IA aplicada a la ingeniería",
       x = "Interés",
       y = "Porcentaje de estudiantes") +
  theme_minimal()

#Análisis Cualitativo de la pregunta: ¿En qué áreas específicas de la ingeniería crees que la IA podría tener el mayor impacto?

# Crear un vector con las respuestas de la pregunta 5
respuestas <- c("Desarrollo de codigos", "sistemas", "Diseño y calculo de estructuras", 
                "Ingenieria en sistemas", "Producción industrial", "En la aera de produccion y calidad", 
                "Diseño, electrica circuitos para control.", "En todas", "Contrucción", 
                "En la mecánica automotriz y la informática", "Tecnología bi", "En el diseño y cálculos", 
                "En la educación", "En el área de computación y sistemas", "Ingeniería en sistemas", 
                "En el area de programacion y ciberseguridad puede tener mayor impacto", 
                "En los diseños", "Calculos", "Áreas informáticas", "Todas", "Medidas topográficas", 
                "En cálculos matemáticos y físicos", "Si", "Todo lo relacionado con máquinas de uso industrial y sistemas computacionales", 
                "Sobre todo en la capacidad de generar contenido orientado a la enseñanza y capacitación.", 
                "Programación y automatización.", "Nose", 
                "La inteligencia artificial ofrece importantes ventajas en las carreras de ingeniería de sistemas, como una automatización eficiente y una mejor toma de decisiones. Sin embargo, también hay desafíos importantes a considerar, como el desplazamiento laboral y las cuestiones éticas", 
                "Ingenieria en computación")

# Convertir el vector de respuestas a un Corpus
corpus <- Corpus(VectorSource(respuestas))

# Limpiar el texto
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, removeWords, stopwords("spanish"))
corpus <- tm_map(corpus, stripWhitespace)

# Crear una matriz de términos
dtm <- TermDocumentMatrix(corpus)
m <- as.matrix(dtm)
word_freqs <- sort(rowSums(m), decreasing=TRUE)
df <- data.frame(word=names(word_freqs), freq=word_freqs)

# Crear la nube de palabras
set.seed(1234) # para reproducibilidad
wordcloud(words = df$word, freq = df$freq, min.freq = 1,
          max.words = 100, random.order = FALSE, rot.per = 0.35,
          colors = brewer.pal(8, "Dark2"))

# Mostrar las 10 palabras más frecuentes
head(df, 10)
##                          word freq
## sistemas             sistemas    6
## diseño                 diseño    3
## ingenieria         ingenieria    2
## industrial         industrial    2
## todas                   todas    2
## cálculos             cálculos    2
## computación       computación    2
## ingeniería         ingeniería    2
## automatización automatización    2
## importantes       importantes    2