análisis de datos 3

Índice

1 intro: recuerdo de A.DD.1

1.1 protocolo para analizar datos

  • realizar análisis exploratorio de cada conjunto de datos
    • depuración de datos (trasformar variables, eliminar datos imposibles)
    • descripción univariante y bivariante (relación de la respuesta \(Y\) con cada \(X\))
    • reducción dimensional
  • aprendizaje: usar técnicas vistas en A.DD.1 o Modelos Lineales
    • regresión (\(Y\) cuantitativa)
      • lineal múltiple
      • árboles de regresión
    • clasificación (\(Y\) cualitativa)
      • regresión logística (\(Y\) binaria)
      • árboles de decisión
  • selección de un modelo
    • entrenamiento
    • validación (cruzada)
  • calidad de la predicción
  • interpretación del modelo

1.2 consejos para programar

  • módulos casi independientes
  • fáciles de chequearse
  • enlazados de manera sencilla
  • comentados

1.3 datos y tareas preliminares

1.3.1 iris

  • datos incluidos en la distribución básica de R
  • en algunos entornos (como Rcmdr) están «a la sombra»; puede ser necesario hacer

    library (datasets)
    data (iris)
    
    
  • objetivo: clasificar en «Species»
  • probar y comparar:

1.3.2 cularidad en bovinos

  • fichero de datos
  • objetivos:
    1. depurar los datos
    2. predecir «peso» a partir del resto de variables
    3. clasificar en «tipo» (C = culón, AC = aculonado, N = normal/corriente)
  • calcular edad, mes y estación de nacimiento y destete
  • depurar los datos en tres etapas (en cada etapa, eliminar atípicos encontrados)
    1. criterio univariante (stem, hist, boxplot)

      ## por ejemplo:
      stem (d$peri_torax)
      stem (d$peri_torax, scale=2, width=100) # con pantalla grande
      
      

      por ejemplo:

      depurar <- function (var, min, max) d[[var]] [d[[var]] < min | d[[var]] > max] <<- NA
      depurar ("alzada",       40, 150)      # tras hacer: stem (d$alzada)
      depurar ("long_cruz",    20, Inf)      # tras hacer: stem (d$long_cruz)
      depurar ("ancho_muslos", 10, 130)      # etc.
      depurar ("curva_nalga",   1,   5)      # ésta es discreta
      depurar ("peri_torax",   50, Inf)
      depurar ("peso",         20, Inf)      # tras hacer: stem (d$peso, scale=2)
      depurar ("edad",          0, 400)      # tras hacer: stem (d$peso, scale=10)
      
      d$sexo <- factor (d$sexo, levels = c("H", "M")) # tras hacer: table (d$sexo)
      d$tipo <- factor (d$tipo, levels = c("C ","AC","N "), labels = c("C","A","N"))
      
    2. criterio bivariante (mahalanobis)

      ## por ejemplo, para "vacas" mirar peso frente a cada medida morfológica
      ## (alzada long_cruz ancho_muslos peri_torax)
      morfo  <- "alzada"
      x      <- na.omit (d [c (morfo, "peso")])
      D2     <- mahalanobis (x, colMeans(x), var(x))
      umbral <- quantile (D2, 0.999)                                             # probar otros umbrales
      plot (as.formula (paste (morfo, "~ peso")), x, col = 1 + (D2 > umbral))    # color 1=negro 2=rojo
      
      
    3. criterio multivariante

      x      <- na.omit (d [c ("alzada", "long_cruz", "ancho_muslos", "peri_torax", "peso")])
      D2     <- mahalanobis (x, colMeans(x), var(x))
      umbral <- quantile (D2, 0.999)                                             # ¿umbral adecuado?
      for (morfo in c ("alzada", "long_cruz", "ancho_muslos", "peri_torax")) {
         dev.new ()
         plot (as.formula (paste (morfo, "~ peso")), x, col = 1 + (D2 > umbral))
      }
      
      

1.3.3 Chile

  • datos incluidos en el paquete «car» de R
  • objetivo:
    1. asignar los individuos con «vote=U» a una de las otras categorías (Y, N, A)
    2. comparar lo obtenido con los resultados del referendo de 1988 en Chile

2 análisis discriminante

  • material
  • compararlo con la versión bayesiana: lda (…, prior=…)
  • compararlo con la versión bayesiana ingenua: library(e1071); naiveBayes(…)

3 bag

4 boost

5 bosque aleatorios

6 máquinas de vector soporte

7 redes neuronales

8 estimación de la densidad

9 CORvas (curvas ROC)

Autor: Carlos Enrique Carleos Artime

Created: 2021-12-16 jue 13:53

Validate