Sesión 1 · Bienvenida y práctica inicial

0.1 Propósito

Conocer la ruta de la asignatura y realizar una primera experiencia, corta y tranquila, en RStudio. Al finalizar, cada estudiante habrá ejecutado código en un R Script y en un documento R Markdown, y habrá construido un histograma y un diagrama de cajas con R base y con ggplot2.

0.2 Resultados de aprendizaje de la sesión

Al terminar, el estudiante podrá:

  • reconocer el propósito, los contenidos y la forma de evaluación del curso;
  • identificar las áreas principales de la interfaz de RStudio;
  • explicar la diferencia entre un archivo .R y un archivo .Rmd;
  • explorar de manera elemental una tabla de datos;
  • construir e interpretar un histograma y un diagrama de cajas;
  • instalar un paquete una sola vez y cargarlo durante una sesión de trabajo.

1 Parte I · Presentación del curso

1.1 1. Identificación

Elemento Información
Programa Especialización en Actuaría
Asignatura Electiva I: Análisis de datos en R
Código 60912004
Créditos 2
Modalidad Presencial
Naturaleza Teórico-práctica
Herramienta principal R y RStudio

1.2 2. ¿Qué aprenderemos?

El propósito general es utilizar R para visualizar, interpretar y analizar datos, con énfasis en decisiones actuariales. Durante el curso no bastará con obtener un número: será necesario explicar qué representa, de dónde proviene, qué supuestos utiliza y qué decisión puede respaldar.

La asignatura combina cuatro capacidades:

  1. comprender el problema y la estructura de los datos;
  2. limpiar, transformar y validar información;
  3. explorar, visualizar y modelar fenómenos de riesgo;
  4. comunicar resultados reproducibles y actuar responsablemente con los datos.

1.3 3. Contenidos oficiales

Unidad Contenidos principales
I. Introducción y metodologías Introducción al curso; transformación de datos; etapas descriptiva, predictiva, prescriptiva y prospectiva; diagnóstico; CRISP-DM y KDD
II. Otras metodologías SEMMA, KANBAN, TDSP, método propio y trabajo ad hoc
III. Ciclo del análisis Tipos y estructuras; entendimiento del negocio y de los datos; preparación; modelamiento; evaluación, implementación y monitoreo
IV. Herramientas y calidad Herramientas computacionales; limpieza; transformación; validación; localización de errores; imputación y ajustes

1.4 4. Ruta de las 16 sesiones

Sesión Tema
1 Presentación del curso y primeros pasos en RStudio
2 Del problema actuarial al análisis reproducible en R
3 Objetos, vectores, clases y factores
4 Matrices, listas, data.frame y tibble
5 Importación, fechas y uniones
6 Transformación con dplyr, tidyr y janitor
7 Analítica descriptiva, predictiva, prescriptiva y prospectiva
8 Diagnóstico y calidad de datos
9 Validación, valores atípicos e imputación
10 CRISP-DM y KDD
11 SEMMA y TDSP
12 KANBAN, método propio y trabajo ad hoc
13 Exploración y visualización actuarial
14 GLM de frecuencia y severidad
15 Evaluación, implementación y monitoreo
16 De los modelos a la prima

1.5 5. Forma de evaluación

Según el contenido programático de la asignatura:

Momento Porcentaje Unidad
Primer corte 20% Unidad I
Segundo corte 20% Unidad II
Investigación y exposición 30% Unidad III
Examen final 30% Unidad IV

La heteroevaluación corresponde al 95% y la autoevaluación al 5% en cada momento. Las fechas, productos y criterios detallados serán confirmados por el docente.

1.6 6. ¿Cómo trabajaremos?

  • El código de clase estará preparado y se ejecutará paso a paso.
  • Cada resultado deberá acompañarse de una interpretación.
  • Los errores de R se leerán: no son insultos personales, aunque a veces lo parezcan.
  • Se conservarán datos, código y conclusiones en un mismo proyecto.
  • En los casos actuariales se revisarán supuestos, calidad, incertidumbre, privacidad y límites de la recomendación.

2 Parte II · Actividad guiada de RStudio — 60 minutos

2.1 7. Cronograma

Minutos Actividad Producto
0–10 Reconocer R, RStudio y sus paneles Interfaz identificada
10–20 Abrir y ejecutar un R Script Primer código con iris
20–32 Explorar datos y crear gráficos con R base Histograma y boxplot
32–42 Abrir y ejecutar un R Markdown Código, texto y resultados juntos
42–52 Instalar y cargar ggplot2 Paquete disponible
52–58 Repetir los gráficos con ggplot2 Dos gráficos nuevos
58–60 Guardar y verificar Archivos listos

2.2 8. R no es lo mismo que RStudio

R es el lenguaje y el motor que realiza los cálculos.

RStudio es el entorno que ayuda a escribir código, ejecutarlo, consultar objetos, ver gráficos, organizar archivos y producir documentos.

Una comparación sencilla: R es el motor; RStudio es el tablero y el espacio de trabajo. Tener un tablero muy bonito sin motor no nos lleva muy lejos.

2.3 9. Reconocer la interfaz

RStudio suele mostrar cuatro áreas:

Área Uso
Source Escribir y guardar scripts o documentos
Console Ejecutar instrucciones y mostrar resultados inmediatos
Environment/History Consultar objetos creados y comandos recientes
Files/Plots/Packages/Help/Viewer Administrar archivos, gráficos, paquetes, ayuda y documentos

2.3.1 Primera regla

Escriba el código en un archivo y ejecútelo desde allí. La consola es útil para pruebas breves, pero lo que solo queda en la consola se pierde con facilidad.

2.4 10. R Script frente a R Markdown

Característica R Script (.R) R Markdown (.Rmd)
Contenido principal Código y comentarios Texto, código, resultados y gráficos
Uso habitual Procesar, limpiar, modelar y automatizar Explicar y comunicar un análisis
Ejecución Línea, selección o archivo Bloques de código o documento completo
Salida Objetos y resultados en RStudio Informe HTML, Word o PDF
En esta sesión actividad_iris_script.R Este documento

Idea clave. No son competidores. Un proyecto puede usar scripts para preparar datos y R Markdown para presentar el análisis.

2.5 11. Primer recorrido con iris en un R Script

Abra el archivo actividad_iris_script.R incluido con esta sesión.

Para ejecutar una línea:

  1. coloque el cursor sobre ella;
  2. seleccione Run o presione Ctrl + Enter;
  3. observe el resultado en la consola.

2.5.1 11.1 Cargar y mirar los datos

iris viene incluido con R. No es una base actuarial: la usamos porque permite concentrarnos en RStudio sin descargar archivos ni resolver problemas de acceso.

data(iris)

head(iris)
dim(iris)
## [1] 150   5
names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 
table(iris$Species)
## 
##     setosa versicolor  virginica 
##         50         50         50

2.5.2 ¿Qué debemos observar?

  • iris tiene 150 filas y 5 variables;
  • cada fila representa una flor;
  • cuatro variables contienen medidas;
  • Species identifica la especie;
  • hay 50 observaciones de cada especie.

Antes de calcular. Pregunte siempre qué representa una fila, qué representa una columna y en qué unidades está medida.

2.6 12. Dos gráficos con funciones básicas de R

2.6.1 12.1 Histograma

El histograma permite observar la distribución de una variable numérica.

hist(
  iris$Sepal.Length,
  main = "Longitud del sépalo",
  xlab = "Longitud del sépalo (cm)",
  ylab = "Frecuencia",
  col = "skyblue",
  border = "white"
)

Interpretación. Las longitudes se concentran principalmente entre 5 y 7 cm. El histograma muestra forma, concentración y posibles valores extremos, pero no permite comparar claramente las tres especies.

2.6.2 12.2 Diagrama de cajas

El boxplot permite comparar la distribución entre grupos.

boxplot(
  Sepal.Length ~ Species,
  data = iris,
  main = "Longitud del sépalo por especie",
  xlab = "Especie",
  ylab = "Longitud del sépalo (cm)",
  col = c("#7FC8A9", "#F6BD60", "#84A9C0")
)

Interpretación. La especie setosa presenta, en general, sépalos más cortos. Virginica tiene una mediana mayor y valores más dispersos. El gráfico describe los datos observados; por sí solo no prueba una relación causal.

2.7 13. Repetir el ejercicio dentro de R Markdown

Este archivo es un documento R Markdown. Un bloque ejecutable comienza con una cabecera de R y termina al cerrar las tres comillas invertidas.

Para ejecutar un bloque:

  1. use el botón verde ubicado en la esquina del bloque;
  2. observe el resultado debajo del código;
  3. al final, seleccione Knit → Knit to HTML.

El texto explica; el código calcula; la salida muestra la evidencia. Esa combinación será fundamental durante el curso.

2.8 14. Instalar y cargar ggplot2

Los paquetes amplían las capacidades de R.

2.8.1 Instalar: una sola vez por computador

Ejecute la siguiente instrucción en la consola:

install.packages("ggplot2")

2.8.2 Cargar: al iniciar una nueva sesión de trabajo

library(ggplot2)

No coloque install.packages() en todos los ejercicios. Instalar descarga el paquete. library() lo deja disponible para trabajar.

2.9 15. Los mismos gráficos con ggplot2

La estructura mínima es:

ggplot(datos, aes(variable_x, variable_y)) +
  geometria()

No todas las gráficas necesitan x y y. Un histograma utiliza una variable; un boxplot comparativo utiliza una variable de agrupación y una numérica.

2.9.1 15.1 Histograma con ggplot2

ggplot(iris, aes(x = Sepal.Length)) +
  geom_histogram(
    binwidth = 0.30,
    fill = "#235789",
    color = "white"
  ) +
  labs(
    title = "Longitud del sépalo",
    x = "Longitud del sépalo (cm)",
    y = "Frecuencia"
  ) +
  theme_minimal()

2.9.2 15.2 Diagrama de cajas con ggplot2

ggplot(
  iris,
  aes(x = Species, y = Sepal.Length, fill = Species)
) +
  geom_boxplot(alpha = 0.85) +
  scale_fill_manual(
    values = c("#7FC8A9", "#F6BD60", "#84A9C0")
  ) +
  labs(
    title = "Longitud del sépalo por especie",
    x = "Especie",
    y = "Longitud del sépalo (cm)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

2.10 16. Mini reto de cinco minutos

Cambie Sepal.Length por Petal.Length y vuelva a ejecutar los gráficos. El código completo está preparado:

# Histograma de longitud del pétalo
ggplot(iris, aes(x = Petal.Length)) +
  geom_histogram(
    binwidth = 0.25,
    fill = "#0F8B8D",
    color = "white"
  ) +
  labs(
    title = "Longitud del pétalo",
    x = "Longitud del pétalo (cm)",
    y = "Frecuencia"
  ) +
  theme_minimal()

# Boxplot de longitud del pétalo por especie
ggplot(
  iris,
  aes(x = Species, y = Petal.Length, fill = Species)
) +
  geom_boxplot() +
  labs(
    title = "Longitud del pétalo por especie",
    x = "Especie",
    y = "Longitud del pétalo (cm)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

2.10.1 Preguntas

  1. ¿En cuál especie se observan los pétalos más cortos?
  2. ¿Qué variable separa mejor visualmente las especies: longitud del sépalo o longitud del pétalo?

2.11 17. Cierre de la actividad

Antes de terminar, verifique:

2.12 18. Errores frecuentes

Mensaje o situación Qué revisar
could not find function "ggplot" Ejecute library(ggplot2)
there is no package called 'ggplot2' Instale el paquete una vez
object 'Sepal.Length' not found Revise el nombre y el uso de data = iris
El código aparece, pero no se ejecuta Use Run, Ctrl + Enter o el botón del bloque
Knit se detiene Lea el primer error y ejecute los bloques en orden

2.13 Salida

Complete oralmente:

  1. Un R Script me sirve para…
  2. Un R Markdown me sirve para…
  3. Para instalar un paquete uso…
  4. Para cargar un paquete uso…
  5. El boxplot me permitió observar…

2.14 Resultado de la sesión

Hoy no construimos un modelo actuarial, y está bien. Aprendimos a movernos en el entorno donde construiremos los análisis del curso. En la siguiente sesión pasaremos de una pregunta actuarial a datos, métricas técnicas y un análisis reproducible.