class: cumbre-slide # <div class="cumbre-title" style="text-align: center; width: 80%; margin-left: 0;">`R` y `Rstudio` como herramienta para enseñar Estadística</div> <br><br> <div class="disertante-box"> <em>DISERTANTE</em> <strong>Blás Antonio Benítez Cristaldo</strong> </div> <div class="bottom-bar"></div> --- # 📊 Introducción ## ¿Qué es `R`? - **`R`** es un lenguaje de programación y entorno de desarrollo utilizado para el análisis estadístico y la visualización de datos. -- - Se puede usar como una "calculadora inteligente" que responde preguntas como: - *¿Cuál fue la tendencia de ausencias de estudiantes este semestre?* - *¿Qué factores están más asociados al rendimiento académico?* -- - Permite realizar análisis complejos y visualizaciones de alta calidad. --- ## 🤔¿Por qué `R` para enseñar Estadística? - 📈 Potente para análisis de datos -- - 🆓 Software libre y gratuito -- - 🧰 Herramientas visuales y prácticas -- - 🌐 Comunidad activa -- - 🧪 **Aplicación en el aula:** - Analizar notas de estudiantes - Graficar resultados de encuestas - Generar reportes dinámicos para la toma de decisiones educativas --- # 💻 Instalación de `R` y `RStudio` ## En Windows 1. **Instalar `R`:** - Visitar [https://cran.r-project.org](https://cran.r-project.org) y descargar la última versión de `R` para Windows. - Seguir el asistente de instalación. -- 2. **Instalar `RStudio`:** - Descargar `RStudio` desde [https://posit.co/download/rstudio-desktop/](https://posit.co/download/rstudio-desktop/). - Ejecutar el instalador y seguir las instrucciones. --- # Instalación de `R` en Windows <figure style="text-align: center;"> <video width="700" autoplay loop muted> <source src="instalacionRWin.mp4" type="video/mp4"> </video> <figcaption> <em>Video 1.</em> Página oficial de R en este <a href="https://posit.co/download/rstudio-desktop/" target="_blank">enlace</a>. </figcaption> </figure> --- # 🖥️ Introducción a `RStudio` - **RStudio** es un entorno de desarrollo integrado (IDE) diseñado específicamente para trabajar con `R`. -- - **Características**: - **Consola**: Donde se ejecutan los comandos. -- - **Editor de scripts**: Para escribir y ejecutar código `R`. -- - **Vista de objetos**: Donde se muestran los datos, variables y otros objetos. -- - **Gráficos**: Visualización de los gráficos generados por `R`. --- # Entorno de desarrollo integrado <figure style="text-align: center;"> <img src="ideR.png" width="800" height="400"> </div> <figcaption> IDE de Rstudio </figcaption> </figure> --- # 📌 Sintaxis Básica de `R` Guía rápida para comenzar con `R`. -- ### 🔢 Asignación de valores ```r x <- 10 # Asignación común y = 5 # También válido nombre <- "Juan" ``` -- ### 📂 Tipos de datos ```r x <- 5.2 # Numérico x <- as.integer(5) # Entero texto <- "Hola mundo" # Texto logico <- TRUE # Lógico (TRUE/FALSE) ``` --- ### 📦 Estructuras de datos #### Vectores ```r numeros <- c(1, 2, 3, 4) ``` -- #### Matrices ```r matriz <- matrix(1:9, nrow=3) ``` -- #### Data frames ```r df <- data.frame(nombre=c("Ana", "Luis"), edad=c(25, 30)) ``` -- #### Listas ```r lista <- list(nombre="Juan", edad=22, notas=c(7, 8, 9)) ``` --- ### 🧮 Funciones básicas ```r sum(x) mean(x) median(x) sd(x) var(x) summary(x) ``` -- ## 🔧 Crear funciones ```r suma <- function(a, b) { return(a + b) } suma(3, 5) ``` --- ## 📚 Paquetes ```r install.packages("ggplot2") library(ggplot2) ``` -- ## 📈 Gráficos rápidos ```r plot(c(1, 2, 3), c(3, 2, 6)) hist(rnorm(100)) boxplot(mpg ~ cyl, data=mtcars) ``` --- # 📊 Medidas Descriptivas Comparativa entre métodos **manuales** y uso de **RStudio**. -- ## 🔢 Datos de ejemplo > Un docente de una escuela secundaria desea conocer la distribución de edades de sus estudiantes en un curso optativo de informática. El objetivo es identificar la variabilidad del grupo etario y adecuar mejor las estrategias pedagógicas. Para ello, se recogieron los datos de edad de 10 estudiantes: ``` r x <- c(10, 12, 10, 15, 18, 20, 10, 12, 25, 30) ``` --- ## 🧮 Media **Manual**: `$$\bar{x} = \frac{\sum x_i}{N}=\frac{10+ 12+ 10+ 15+ 18+ 20+ 10+ 12+ 25+ 30}{10}=\frac{162}{10} = 16.2$$` -- **RStudio**: ``` r mean(x) ``` ``` ## [1] 16.2 ``` --- ## 🪙 Mediana **Manual**: Ordenar datos, luego: `$$\text{Mediana} = \frac{12 + 15}{2} = 13.5$$` -- **RStudio**: ``` r median(x) ``` ``` ## [1] 13.5 ``` --- ## 📈 Moda **Manual**: 10 (ocurre 3 veces) -- **RStudio**: ``` r get_mode <- function(v) { uniqv <- unique(v) uniqv[which.max(tabulate(match(v, uniqv)))] } get_mode(x) ``` ``` ## [1] 10 ``` --- ## 📐 Varianza **Manual**: `$$s^2 = \frac{\sum (x_i-\bar{x})^2}{N-1}\\=\frac{(10-16.2)^2+ (12-16.2)^2+ (10-16.2)^2+ (15-16.2)^2+ (18-16.2)^2+ (20-16.2)^2+ (10-16.2)^2+ (12-16.2)^2+ (25-16.2)^2+ (30-16.2)^2}{10-1}\\=48.62$$` -- **RStudio**: ``` r var(x) ``` ``` ## [1] 48.62222 ``` --- ## 📉 Desviación Estándar **Manual**: `$$s = \sqrt{48.62} \approx 6.97$$` -- **RStudio**: ``` r sd(x) ``` ``` ## [1] 6.972964 ``` --- ## 📦 Rango **Manual**: `$$\text{Rango} = 30 - 10 = 20$$` -- **RStudio**: ``` r diff(range(x)) ``` ``` ## [1] 20 ``` --- ## 📦 Resumen Rápido en `R` ``` r summary(x) ``` ``` ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 10.0 10.5 13.5 16.2 19.5 30.0 ``` Entrega: mínimo, cuartiles, mediana, media y máximo. --- # 🎨 Visualización con `ggplot2` ## Instalación y carga ``` r #install.packages("ggplot2") library(ggplot2) ``` --- # 🧪 Ejemplo con `ggplot2` .pull-left[ ```r ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(color = "blue") + geom_smooth(method = "lm", se = FALSE, color = "red") + labs(title = "Consumo vs. Peso") ``` 🚗 Relación entre peso y consumo de combustible. ] .pull-right[ <!-- --> ] --- # 📝 Recolección de Datos en Educación Se aplicará un formulario para recoger información de estudiantes con fines educativos. --- ## 📄 Preguntas del Formulario 1. ¿Cuál es tu edad? 2. ¿Cuál es tu sexo? 3. ¿Cuántas horas en promedio dedicas al estudio cada semana? 4. ¿Qué calificación final obtuviste en la materia Estadística? (Escala de 1 a 5) 5. ¿En qué grado o curso estás actualmente? 6. ¿Qué modalidad de clases tuviste este semestre? <figure style="text-align: center;"> <img src="cumbreqr.png" width="200" height="200"> </div> <figcaption> Encuesta para la Cumbre 2025 </figcaption> </figure> --- ## Activar las librarías necesarias ``` r library(googlesheets4) library(tidyverse) library(dplyr) require(reshape) library(ggplot2) ``` -- ## 🔗 Vincular con Google Sheets - Ve a la pestaña **Respuestas** del formulario - Haz clic en el ícono de hoja verde (Google Sheets) - Se generará automáticamente una hoja de cálculo con los datos ``` r participantes <- read_sheet("1ut3BoMfeZNueZBogA3h69Ano5TuTanrnQS9oXQ0CuuU") ``` --- ## Exploración de los datos ``` r str(participantes) ``` ``` ## tibble [53 × 6] (S3: tbl_df/tbl/data.frame) ## $ Marca temporal : POSIXct[1:53], format: "2025-06-05 16:18:21" "2025-06-05 16:58:44" ... ## $ ¿Cuál es tu edad? : num [1:53] 42 24 26 27 25 20 20 22 21 53 ... ## $ ¿Cuál es tu sexo? : chr [1:53] "Varón" "Mujer" "Mujer" "Mujer" ... ## $ ¿Cuántas horas en promedio dedicas al estudio cada semana? : num [1:53] 2.5 20 2 3 8 3 6 12.5 2 10 ... ## $ ¿Qué calificación final obtuviste en la materia Estadística? (Escala de 1 a 5): num [1:53] 3 5 3 4 5 5 3 4 2 4 ... ## $ ¿En qué curso estás actualmente? : chr [1:53] "Segundo" "EtapaTFG" "Segundo" "EtapaTFG" ... ``` ``` r summary(participantes) ``` ``` ## Marca temporal ¿Cuál es tu edad? ¿Cuál es tu sexo? ## Min. :2025-06-05 16:18:21.82 Min. : 18 Length:53 ## 1st Qu.:2025-06-05 18:29:35.14 1st Qu.: 20 Class :character ## Median :2025-06-05 18:32:21.39 Median : 22 Mode :character ## Mean :2025-06-05 18:43:10.46 Mean : 97496 ## 3rd Qu.:2025-06-05 18:57:12.44 3rd Qu.: 24 ## Max. :2025-06-05 23:34:11.36 Max. :5166034 ## ¿Cuántas horas en promedio dedicas al estudio cada semana? ## Min. : 0.500 ## 1st Qu.: 3.000 ## Median : 6.000 ## Mean : 9.151 ## 3rd Qu.:12.000 ## Max. :36.000 ## ¿Qué calificación final obtuviste en la materia Estadística? (Escala de 1 a 5) ## Min. :1.000 ## 1st Qu.:3.000 ## Median :4.000 ## Mean :3.887 ## 3rd Qu.:5.000 ## Max. :5.000 ## ¿En qué curso estás actualmente? ## Length:53 ## Class :character ## Mode :character ## ## ## ``` --- ## Limpieza de datos ``` r names(participantes) ``` ``` ## [1] "Marca temporal" ## [2] "¿Cuál es tu edad?" ## [3] "¿Cuál es tu sexo?" ## [4] "¿Cuántas horas en promedio dedicas al estudio cada semana?" ## [5] "¿Qué calificación final obtuviste en la materia Estadística? (Escala de 1 a 5)" ## [6] "¿En qué curso estás actualmente?" ``` ``` r participantes = rename(participantes, c("¿Cuál es tu edad?"="Edad", "¿Cuál es tu sexo?" = "Sexo", "¿Cuántas horas en promedio dedicas al estudio cada semana?" = "Horas", "¿Qué calificación final obtuviste en la materia Estadística? (Escala de 1 a 5)" = "Calificacion", "¿En qué curso estás actualmente?" = "Curso")) ``` --- ## Visualización de los datos ``` r ggplot(rendimiento, aes(x = Calificacion, y = Cantidad, fill = Calificacion)) + geom_bar(stat = "identity") + xlab("Sexo") + ylab("Calificación") + labs(title = "Gráfico de barras", subtitle = "Estudio de la variable Calificación", caption = "Fuente: Encuesta en la Cumbre 2025") ``` <img src="Presentacion_cumbre_files/figure-html/unnamed-chunk-16-1.png" style="display: block; margin: auto;" /> --- ## Visualización de los datos ``` r ggplot(participantes, aes(x = Horas, y = Calificacion, fill = Calificacion)) + geom_point(stat = "identity") + xlab("Sexo") + ylab("Calificación") + labs(title = "Diagrama de dispersión", subtitle = "Estudio de las variables Sexo y Calificación", caption = "Fuente: Encuesta en la Cumbre 2025") ``` <img src="Presentacion_cumbre_files/figure-html/unnamed-chunk-17-1.png" style="display: block; margin: auto;" /> --- ## 📥 Descargar el archivo .csv 1. Abre la hoja de cálculo 2. Menú: Archivo > Descargar > Valores separados por comas (.csv) 3. Guarda como `datos_estudiantes.csv` --- ## 💻 Importar datos en R ```r datos <- read.csv("datos_estudiantes.csv", header = TRUE) head(datos) str(datos) ``` --- ## 📊 Análisis Exploratorio Simple ### Histograma de Edades ```r hist(datos$Edad, main="Distribución de Edades", xlab="Edad", col="lightblue") ``` ### Tabla de Sexo ```r table(datos$Sexo) barplot(table(datos$Sexo), col="lightgreen", main="Sexo de los participantes") ``` --- ## 📈 Relación Horas vs Calificación ```r plot(datos$Horas.de.estudio, datos$Calificacion, main="Horas de Estudio vs Calificación", xlab="Horas de estudio", ylab="Calificación", pch=19) ``` --- ## 🧪 Resumen General ```r summary(datos) ``` Incluye: - Mínimo y máximo - Media y mediana - Cuartiles - Distribución de variables categóricas --- ## ✅ Bondades del proceso Este proceso permite al docente: - Recoger datos reales - Analizarlos de forma automatizada en `R` - Visualizar relaciones clave para mejorar la enseñanza --- # 🌐 Interactividad con `shiny` ## ¿Qué es Shiny? - 🖱️ Aplicaciones web interactiva - 📊 Visualización dinámica - 👨🎓 Ideal para enseñanza y exploración de datos -- ## 💻 A continuación un ejemplo de `Shiny` --- # Ejecución de la App ```r shinyApp(ui = ui, server = server) ``` <p style="text-align: center;"> <img src="appShiny.png" width="60%" /> </p> --- # 📚 Recursos para docentes - **Libro gratuito:** [R for Data Science](https://r4ds.hadley.nz/) - **Cursos online:** [DataCamp](https://rubenfcasal.github.io/post/ayuda-y-recursos-para-el-aprendizaje-de-r/), Coursera, edX - **Comunidades en español:** [R-Ladies](https://rladies.org/), [LatinR](https://latinr.org/) - **Material adaptado para la docencia:** [Teaching with R](https://education.rstudio.com/teach/materials/) --- # ✅ Conclusiones - `R` es 🧠 poderoso y 🆓 accesible. - `ggplot2` 🎨 hace atractiva la visualización. - `shiny` 🖥️ lleva la estadística a la web. - Ideal para 👨🏫 docentes y 👩🎓 estudiantes. --- # 🙌 Para enseñar o aprender con `R` <div style="font-size: 200%;"> 🚦 Flujo didáctico: -- 📥 Importar → -- 🧹 Preparar → -- 🔍 Explorar → -- 📈 Visualizar → -- 💬 Interpretar → -- 🧑🏫 Comunicar </div> --- # 📌 Recuerda! > *“La estadística cobra vida cuando se enseña con datos reales y herramientas interactivas como `R`”* ✨ <div style="font-size: 120%;"> -- .pull-left[ 📚 **`R` en el aula permite:** - 💡 Comprensión activa - 📊 Visualización significativa - 🔄 Aprendizaje reproducible - 📱 Interactividad con `shiny` - 🧠 Pensamiento crítico ] -- .pull-right[ ### 💬 ¡Inspirá, guiá y potenciá con `R`! - **Explorá** conjuntos de datos reales - **Enseñá** con gráficos y simulaciones - **Evaluá** con análisis prácticos ] -- ### 🎓 _`R` no solo enseña estadística... enseña a pensar._ </div> --- class: fondo-final