Introducción

El texto de este manual es una recopilación de documentos presentes tanto en Internet como de artículos revisados en publicaciones. Contiene además códigos de ejemplo tanto de producción propia como de aquellas fuentes mencionadas. Pretende ser un acotado manual para introducirlos al análisis predictivo. Este documento se encuentra en constante revisión y actualización.

Análisis Predictivo

El análisis predictivo es el proceso de utilizar el análisis de datos para realizar predicciones basadas en los datos. En este proceso se hace uso de los datos junto con técnicas analíticas, estadísticas y de aprendizaje automático a fin de crear un modelo predictivo para predecir eventos futuros.

El análisis predictivo agrupa una variedad de técnicas estadísticas de modelización, aprendizaje automático y minería de datos que analiza los datos actuales e históricos reales para hacer predicciones acerca del futuro o acontecimientos no conocidos.

En el ámbito de los negocios los modelos predictivos extraen patrones de los datos históricos y transaccionales para identificar riesgos y oportunidades. Los modelos predictivos identifican relaciones entre diferentes factores que permiten valorar riesgos o probabilidades asociadas sobre la base de un conjunto de condiciones, guiando así al decisor durante las operaciones de la organización.

El efecto funcional que pretenden estas iniciativas técnicas es que el análisis predictivo provea una puntuación (probabilidad) para cada sujeto (cliente, empleado, paciente, producto, vehículo, componente, máquina y otra unidad en la organización) con el objeto de determinar, informar o influir procesos en la organización en el que participen un gran número de sujetos, tal y como ocurre en marketing, evaluación de riesgo de crédito, detección de fraudes, fabricación, salud y operaciones gubernamentales como el orden público.

Lo fundamental del análisis predictivo está en identificar relaciones entre las variables explicativas y las variables predictivas del pasado de forma que se pueda escalar a lo que está por ocurrir. Es importante advertir, en cualquier caso, que la fiabilidad y usabilidad de los resultados dependerán mucho del nivel de análisis del dato y la calidad de las hipótesis.

Flujo de trabajo de un análisis predictivo. Fuente: https://es.mathworks.com/discovery/predictive-analytics.html#c%C3%B3mo-funciona

Flujo de trabajo de un análisis predictivo. Fuente: https://es.mathworks.com/discovery/predictive-analytics.html#c%C3%B3mo-funciona

El término “análisis predictivo” describe la aplicación de una técnica estadística o de aprendizaje automático para crear una predicción cuantitativa sobre el futuro. Con frecuencia, se utilizan técnicas de aprendizaje automático supervisado para predecir un valor futuro (¿Cuánto tiempo puede funcionar esta máquina antes de necesitar mantenimiento?) o para calcular una probabilidad (¿Qué posibilidad existe de que este cliente no pueda pagar un préstamo?).

Análisis de regresión

El análisis de regresión es una técnica estadística para estudiar la relación entre variables. Tanto en el caso de dos variables (regresión simple) como en el caso de más de dos variables (regresión múltiple), el análisis puede utilizarse para explorar y cuantificar la relación entre una variable llamada dependiente o criterio (Y) y una o más variables llamadas independientes, predictoras o regresoras (X1, X2, …, Xn), así como para desarrollar una ecuación lineal con fines predictivo.En problemas de regresión se dispone de una serie de datos de entrenamiento que representan las entradas y las correspondientes salidas de un sistema lineal o no lineal. El objetivo de la regresión es descubrir la relación funcional entre la entrada y la salida de este sistema, para poder así predecir la salida del sistema cuando se le presenta un dato de entrada nuevo.

Modelo de regresión lineal

El análisis de regresión es una técnica estadística para estudiar la relación entre variables. El término regressión fue introducido por Francis Galton. Su trabajo se centró en la descripción de los rasgosfísicos de los descendientes (variable A) a partir de los de sus padres (variable B). Estudiando la altura de padres e hijos a partir de más de mil registros de grupos familiares, se llegó a la conclusión de que los padres muy altos tenían una tendencia a tener hijos que heredaban parte de esta altura, pero que revelaban también una tendencia a regresar a la media. Galton generalizó esta tendencia bajo la ley de la regresión universal.

Ejercicio

Tomado de https://rpubs.com/joser/RegresionSimple

Los datos del fichero corresponden a tres variables medidas en 25 individuos: edad, peso y cantidad de grasas en sangre. Para leer el fichero de datos y saber los nombres de las variables:

Para determinar las relaciones existentes entre cada par de variables se representa una matriz de diagramas de dispersión. Al parecer existe una relación lineal bastante clara entre la edad y las grasas, pero no entre los otros dos pares de variables. Por otra parte el fichero contiene un dato atípico.

Para cuantificar el grado de relación lineal, calculamos la matriz de coeficientes de correlación:

##             peso      edad    grasas
## peso   1.0000000 0.2400133 0.2652935
## edad   0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000

Representacion de la recta de mínimos cuadrados

El comando básico es lm (linear models) donde el primer argumento de este comando es una fórmula y ~ x en la que se especifica cuál es la variable respuesta o dependiente (y) y cuál es la variable regresora o independiente (x). Mediante el comando summary obtenemos un resumen de los principales resultados:

## 
## Call:
## lm(formula = grasas ~ edad, data = grasas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -63.478 -26.816  -3.854  28.315  90.881 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 102.5751    29.6376   3.461  0.00212 ** 
## edad          5.3207     0.7243   7.346 1.79e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43.46 on 23 degrees of freedom
## Multiple R-squared:  0.7012, Adjusted R-squared:  0.6882 
## F-statistic: 53.96 on 1 and 23 DF,  p-value: 1.794e-07

la columna ´Estimate´ de la tabla ´Coefficients´ de la salida anterior define la relación entre grasa en sangre y peso.

El coeficiente de determinación (es decir, el coeficiente de correlación al cuadrado) mide la bondad del ajuste de la recta a los datos. A partir de la salida anterior, vemos que su valor en este caso es Multiple R-squared: 0.701.

Para graficar la recta utilizamos plot.

Cálculo de predicciones

Para predecir sobre nuevos valores basta agtegar nuevos datos, sea directamente o en un nuevo archivo.

##        1        2        3        4        5        6        7        8 
## 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 294.1195 299.4402 
##        9       10       11       12       13       14       15       16 
## 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 336.6849 342.0056 
##       17       18       19       20       21 
## 347.3263 352.6469 357.9676 363.2883 368.6090

Análisis de supervivencia

El análisis de supervivencia es otro nombre para el análisis del tiempo hasta el evento. Estas técnicas se desarrollaron principalmente en las ciencias médicas y biológicas, pero también se usan ampliamente en las ciencias sociales como la economía, así como en la ingeniería (fiabilidad y análisis del tiempo de falla), ocurrencia de accidentes laborales, etc.

La censura y la no-normalidad, que son características de los datos de supervivencia no aplican bien usando modelos estadísticos normales como la regresión lineal múltiple. Además la distribución normal, simétrica, que aporta tanto valores positivos comom negativos, no aplican en análisis de tiempo (no hay valores negativos para el tiempo).

Mediciones

  • Tiempo desde una intervención hasta la muerte
  • Tiempo desde el alta hasta rehospitalización
  • Tiempo desde cirugía hasta la recaída
  • Tiempo sin accidentes laborales
  • Meses desde el inicio de la adicción hast ala infección con VIH en pacientes usuarios de drogas
  • Tiempo desde reparación hasta siguiente falla

Censura

El concepto de censura aplica a los datos con información incompleta. Hay personas durante el tiempo del estudio no se produce el evento en estudio (la muerte) esto es censura por la derecha tambien para personas que abandonan el estudio.

El tiempo hasta el evento de interés (ej.: muerte) se mide de forma secuencial, por tanto no aplica: * Calcular medias y desviaciones estándar * Dibujar histogramas o nubes de puntos * Basar la inferencia en prueba de t-student, análisis de varianza o pruebas de rangos.

A realizar: * Tomar cuenta de la censura y calcular su porcentaje * Utilizar medianas y percentiles * Usar técnicas que impliquen la censura y den estimadores sin sesgo de la supervivencia.

Riesgo

Función de supervivencia

Es la probabilidad de que el evento de interés suceda después del tiempo t.

\[S(t) = Prob (T \gt t)\]

Estimador de Kaplan Meier

Suponiendo la siguiente tabla de mortalidad en un estudio a 8 años.

Yi: 13 14+ 15+ 16 20 24+ 28 34
di: 1 0 0 1 1 0 1 1
ni: 8 7 6 5 4 3 2 1
di/ni: 1/8 0 0 1/5 1/4 0 1/2 1

Donde:

  • Yi: es la edad al evento en un estudio a 8 años
  • di: número de muertes en Yi
  • ni: número de individuos a riesgo justo antes de Yi
  • di/ni: riesgo en Yi

\[ \hat{S}(t) = \prod_{i:Y_i\lt t} \left( 1-\frac{d_i}{n_i} \right)\]

Arboles de clasificación y regresión

Los árboles de clasificación y regresión (Classification And Regression Trees, CART) son una técnica de aprendizaje de árboles de decisión no paramétrica que produce árboles de clasificación o regresión, dependiendo de si la variable dependiente es categórica (cualitativo) o numérica (continua), respectivamente.

En comparación a la alternativa de análisis de clasificación y regresión posee una mayor tolerancia a los outliers. y que mantiene la estructura de clasificación en forma de árbol y su facilidad de interpretación. La principal ventaja de los árboles de decisión frente a otros métodos de regresión es su fácil interpretación y la gran utilidad de su representación gráfica.

Genera un esquema de dicotomías, anidadas con forma de árbol de manera que cada rama se obtiene desde cada iteración de análisis. Al seguir el recorrido de las ramas o nodo se obtiene una predicción de pertenencia en el caso de clasificaciones, o de valor en caso de regresiones, para los individuos que cumplen con las propiedades que se han analizado en el recorrido del árbol.

Cuando tratan con variables continuas, pierden parte de su información al categorizarlas en el momento de la división de los nodos. Por esta razón, suelen ser modelos que consiguen mejores resultados en clasificación que en regresión.

Los árboles de decisión se utilizan para resolver problemas de:

  • Clasificación
    • Binaria: Fraude vs No fraude, Morosidad, Spam en correos.
    • Multiclase: niveles de satisfacción; completamente, bastante, poco satisfecho, totalmente insatisfecho
  • Regresión
    • Pagos de compañías de seguros
    • Gasto de compras por clientes

La partición en cada nodo describe dos conjuntos separados del dataset, donde el corte que separa los datos esta determinao por una o varias condiciones en una de las variables explicativas. El particionamiento es recursivo. Se detiene en los nodos terminales y a cada nodo terminal se le asigna uno de los estados de la variable criterio Y. Para cada nueva observación, el estado de la variable respuesta se predice por el estado del nodo terminal al que dicha observación pertenece.

Elementos de un árbol.

Elementos de un árbol.

Todo árbol tiene como mínimo un nodo raíz, un nodo interno y nodos terminales. El nodo raíz es particionado en nodos internos (hijos o ramas).

Se busca la homogeneidad de los nodos terminales, esto es que las variables resultantes en cada nodo terminal sean homogéneas. Lo que esta definido por una noción de impureza que puede estar determinado a su vez por tres funciones diferentes:

  • Mínimo error o error de Bayes
  • Entropía
  • índice de Gini

Los nodos terminales son aquellos que ya no pueden ser divididos en base a las variables determinantes.

Los árboles de decisión se generan a partir de algoritmos de segmentación recursiva, que determinan el mecanismo de segmentación y el criterio de parada definiendo el nodo terminal, esta determinado por tres procedimientos:

  • CHAID: Chi-Square Automatic Interaction Detector. creado por IBM e incluido en el software SPSS Modeler.
  • QUEST: Quick Unbiased Efficient Statistical Tree
  • CART: Classification and Regression Trees

Arboles y Regresión

Los árboles de regresión trabajan con variables continuas

Arboles y Clasificación

CART

Este algoritmo fue desarrollado en la Universidad de Berkeley, y consiste en tres pasos:

  • Construcción del árbol.
  • Elección del tamaño correcto.
  • Clasificación de nuevos datos a partir del árbol ya construido.

  • Trabaja con variables de todo tipo. No necesita discretizar las variables explicativas continuas.
  • El corte en cada nodo viene dado por reglas de tipo binario. Se pueden formular como preguntas: ¿Es X < a? ¿Pertenece X a un subconjunto E de estados?.
  • Da lugar a estructuras de árbol de mayor profundidad.

Ejercicios:

## ── Attaching packages ────────
## ✔ ggplot2 3.2.1     ✔ purrr   0.3.2
## ✔ tibble  2.1.3     ✔ dplyr   0.8.3
## ✔ tidyr   1.0.0     ✔ stringr 1.4.0
## ✔ readr   1.3.1     ✔ forcats 0.4.0
## ── Conflicts ─────────────────
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## Loading required package: lattice
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
## [1] FALSE
##   tipo alcohol malic_acid  ash alcalinity_of_ash magnesium total_phenols
## 1    1   14.23       1.71 2.43              15.6       127          2.80
## 2    1   13.20       1.78 2.14              11.2       100          2.65
## 3    1   13.16       2.36 2.67              18.6       101          2.80
## 4    1   14.37       1.95 2.50              16.8       113          3.85
## 5    1   13.24       2.59 2.87              21.0       118          2.80
## 6    1   14.20       1.76 2.45              15.2       112          3.27
##   flavanoids nonflavanoid_phenols proanthocyanins color_intensity  hue
## 1       3.06                 0.28            2.29            5.64 1.04
## 2       2.76                 0.26            1.28            4.38 1.05
## 3       3.24                 0.30            2.81            5.68 1.03
## 4       3.49                 0.24            2.18            7.80 0.86
## 5       2.69                 0.39            1.82            4.32 1.04
## 6       3.39                 0.34            1.97            6.75 1.05
##   od280_od315_of_diluted_wines proline
## 1                         3.92    1065
## 2                         3.40    1050
## 3                         3.17    1185
## 4                         3.45    1480
## 5                         2.93     735
## 6                         2.85    1450

Creando un sets de entrenamiento y prueba

####Entrenamiento Rpart es la función que pide una formula para especificar la variable objetivo de la clasificación. La formula que usaremos es tipo ~ ., la cual expresa que intentaremos clasificar tipo usando a todas las demás variables como predictoras.

## n= 125 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 125 75 2 (0.35200000 0.40000000 0.24800000)  
##   2) proline>=755 48  6 1 (0.87500000 0.04166667 0.08333333)  
##     4) flavanoids>=2.35 41  1 1 (0.97560976 0.02439024 0.00000000) *
##     5) flavanoids< 2.35 7  3 3 (0.28571429 0.14285714 0.57142857) *
##   3) proline< 755 77 29 2 (0.02597403 0.62337662 0.35064935)  
##     6) flavanoids>=1.265 51  4 2 (0.03921569 0.92156863 0.03921569) *
##     7) flavanoids< 1.265 26  1 3 (0.00000000 0.03846154 0.96153846) *

Dentro del rectángulo de cada nodo se nos muestra qué proporción de casos pertenecen a cada categoría y la proporción del total de datos que han sido agrupados allí. Por ejemplo, el rectángulo en el extremo inferior izquierdo de la gráfica tiene 92% de casos en el tipo 1, y 4% en los tipos 2 y 3, que representan 39% de todos los datos.

Valores de precision

Accuracy

La precisión o “accuray” es el porcentaje de instancias correctamente clasificadas de todas las instancias en su conjunto. Es más útil en una clasificación binaria que en los problemas de clasificación multiclase porque puede ser menos claro cómo se desglosa exactamente la precisión entre esas clases (por ejemplo, es necesario profundizar con una matriz de confusión).

Kappa (Kappa de Cohen)

El coeficiente Kappa mide la concordancia entre la clasificación y los valores reales. Un valor kappa de 1 representa un acuerdo perfecto, mientras que un valor de 0 representa ningún acuerdo. Kappa es como la precisión de clasificación, excepto que se normaliza en la línea de base del azar en su conjunto de datos. Es una medida más útil para usar en problemas que tienen un desequilibrio en las clases (por ejemplo, una división de 70-30 para las clases 0 y 1 y se puede alcanzar una precisión del 70% prediciendo que todos los casos son para la clase 0).

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1 15  0  0
##          2  0 15  3
##          3  0  6 14
## 
## Overall Statistics
##                                          
##                Accuracy : 0.8302         
##                  95% CI : (0.702, 0.9193)
##     No Information Rate : 0.3962         
##     P-Value [Acc > NIR] : 1.106e-10      
##                                          
##                   Kappa : 0.7444         
##                                          
##  Mcnemar's Test P-Value : NA             
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity             1.000   0.7143   0.8235
## Specificity             1.000   0.9062   0.8333
## Pos Pred Value          1.000   0.8333   0.7000
## Neg Pred Value          1.000   0.8286   0.9091
## Prevalence              0.283   0.3962   0.3208
## Detection Rate          0.283   0.2830   0.2642
## Detection Prevalence    0.283   0.3396   0.3774
## Balanced Accuracy       1.000   0.8103   0.8284

A valorar: Accuracy, Kappa

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1 14  0  0
##          2  1 21  0
##          3  0  0 17
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9811          
##                  95% CI : (0.8993, 0.9995)
##     No Information Rate : 0.3962          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.9713          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity            0.9333   1.0000   1.0000
## Specificity            1.0000   0.9688   1.0000
## Pos Pred Value         1.0000   0.9545   1.0000
## Neg Pred Value         0.9744   1.0000   1.0000
## Prevalence             0.2830   0.3962   0.3208
## Detection Rate         0.2642   0.3962   0.3208
## Detection Prevalence   0.2642   0.4151   0.3208
## Balanced Accuracy      0.9667   0.9844   1.0000

Otra prueba

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1 15  4  0
##          2  0 17  0
##          3  0  0 17
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9245          
##                  95% CI : (0.8179, 0.9791)
##     No Information Rate : 0.3962          
##     P-Value [Acc > NIR] : 8.174e-16       
##                                           
##                   Kappa : 0.8871          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity            1.0000   0.8095   1.0000
## Specificity            0.8947   1.0000   1.0000
## Pos Pred Value         0.7895   1.0000   1.0000
## Neg Pred Value         1.0000   0.8889   1.0000
## Prevalence             0.2830   0.3962   0.3208
## Detection Rate         0.2830   0.3208   0.3208
## Detection Prevalence   0.3585   0.3208   0.3208
## Balanced Accuracy      0.9474   0.9048   1.0000

Random Forest

Los árboles de clasificación (decisión) son bastantes eficientes para capturar las variables desde los datos de entrenamiento. Sin embargo, como predictores Para suplir esta deficiencia se utiliza una serie de árboles dentro de un conjunto (ensemble) denominado Random Forest. En este modelo cada árbol se entrena con un subconjunto distinto de datos y de variables (al azar), de modo que los resultados obtenidos se combinan, ya sea mediante el uso de la media para casos de regresión o de probabilidad para problemas de clasificación.

Es ampliamente utilizado ya es simple de entrenar y usar.

Dentro de sus características destacadas tenemos:

  • Ser uno de los algoritmos de aprendizaje más certeros que hay disponible.
  • Correr eficientemente en bases de datos grandes.
  • Manejar cientos de variables de entrada sin excluir ninguna.
  • Tener un método eficaz para estimar datos perdidos y mantener la exactitud cuando una gran proporción de los datos está perdida.
  • Dar estimaciones de qué variables son importantes en la clasificación.
  • No se ven muy nfluenciados por valores outliers.

Desventajas

  • La clasificación es dificil de interpretar.
  • Con variables categóricas con muchos niveles se parcializa a favor de variables con más niveles.

Regresión

Dataset

Seis sujetos varones de edades comprendidas entre los 20 y los 28 años se les colocaron acelerómetros en el cinturón, el antebrazo y el brazo. Un acelerómetro adicional colocado en la mancuerna. Los sujetos realizaron levantamientos de mancuernas de cinco maneras diferentes, una manera correcta (clase A) y cuatro maneras incorrectas diferentes (clases B, C, D, E). Las mediciones de los acelerómetros se capturaron durante el ejercicio en ventanas de tiempo de deslizamiento que oscilaban entre 0,5 y 2,5 segundos.

## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
## Rattle: A free graphical interface for data science with R.
## Versión 5.2.0 Copyright (c) 2006-2018 Togaware Pty Ltd.
## Escriba 'rattle()' para agitar, sacudir y  rotar sus datos.
## randomForest 4.6-14
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:rattle':
## 
##     importance
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following object is masked from 'package:dplyr':
## 
##     combine
## The following object is masked from 'package:ggplot2':
## 
##     margin

Carga de datos

Durante la mportación a R, los caracteres “NA” y “#DIV/0!” fueron transformados a valores “NA”.

El data frame resultante contiene 19622 observaciones y 160 variables.

Limpieza

En primer lugar, se verificaron los nombres de las variables. El analista notó que la primera variable no tenía una cabecera de columna. Esta variable es un pseudo número de fila, y por lo tanto fue renombrada como observationId. Al revisar los nombres de las variables en la tabla de abajo, el analista notó que las medidas estaban agrupadas por posición del acelerómetro, y que cada grupo de variables compartían las mismas medidas. Para cada grupo hay medidas brutas (es decir, medidas de balanceo, inclinación, guiñada, guiñada, x, y, z), y medidas estadísticas y de resumen (es decir, asimetría, curtosis, etc.).

Los algoritmos de aprendizaje automático funcionan con datos sin valores faltantes, por lo que se eliminaron las variables con valores faltantes.

Curiosamente, todas las medidas estadísticas y de resumen, excepto las medidas de aceleración total, contenían valores faltantes y fueron eliminadas. El conjunto de datos resultante incluye las variables de observación identificadoras[1-7], las medidas del acelerómetro bruto más la variable de resumen aceleración total[8-59], y la forma en que se realizó el ejercicio (clase).

Cruce

El conjunto de datos es lo suficientemente grande como para realizar una validación cruzada utilizando una división 70/30 de los datos de formación y pruebas. Se estableció una semilla arbitraria para asegurar la reproducibilidad, y se crearon los conjuntos de entrenamiento y pruebas utilizando createDataPartition del paquete caret. Las dimensiones de los conjuntos de datos resultantes se confirmaron a través de la salida.

Analisis exploratorio

Siempre realizar un análisis de los datos previo a cualquier proceso.

Mirando las gráficas de las medidas de las correas en balanceo, cabeceo, guiñada y aceleración total agrupadas por el método en el que se realizó el levantamiento de la barra. Está claro que los valores medios del método A difieren mucho de los métodos B, C, D y E en lo que se refiere a balanceo, guiñada y aceleración. Sin embargo, no parece que haya valores medianos distintivos que ayuden a clasificar los métodos B, C, D y E entre sí.

#### Arbol de decisión simple

A pesar de que no parecía que los métodos pudieran clasificarse utilizando sólo el cinturón de balanceo, el cinturón de cabeceo, el cinturón de guiñada y el cinturón de aceleración total, el analista tenía curiosidad por saber cuán preciso podía ser un modelo de árbol de decisión simple que utilizara sólo estas cuatro medidas como predictores. El árbol de decisión se ejecutó con 25 repeticiones de bootstrapping.

##### Accuray y predicción

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction    A    B    C    D    E
##          A 1665 1136 1026  861  434
##          B    0    0    0    0    0
##          C    0    0    0    0    0
##          D    0    0    0    0    0
##          E    9    3    0  103  648
## 
## Overall Statistics
##                                           
##                Accuracy : 0.393           
##                  95% CI : (0.3805, 0.4056)
##     No Information Rate : 0.2845          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.1669          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: A Class: B Class: C Class: D Class: E
## Sensitivity            0.9946   0.0000   0.0000   0.0000   0.5989
## Specificity            0.1791   1.0000   1.0000   1.0000   0.9761
## Pos Pred Value         0.3251      NaN      NaN      NaN   0.8493
## Neg Pred Value         0.9882   0.8065   0.8257   0.8362   0.9153
## Prevalence             0.2845   0.1935   0.1743   0.1638   0.1839
## Detection Rate         0.2829   0.0000   0.0000   0.0000   0.1101
## Detection Prevalence   0.8703   0.0000   0.0000   0.0000   0.1297
## Balanced Accuracy      0.5868   0.5000   0.5000   0.5000   0.7875

Aunque el código y la salida no se muestran aquí, se ejecutó un árbol de decisión simple usando todas las variables como predictores. Incluso con tal modelo, la precisión de la predicción fue de sólo el 55,2%. Por lo tanto, el analista decidió seguir un algoritmo forestal aleatorio para lograr una mejor tasa de predicción.

Modelo de Random forest

Se construyó un modelo forestal aleatorio utilizando todas las variables de predicción y la variable de clase como resultado categórico. Se intentó un bosque aleatorio con la función tren del paquete caret y también con la función bosque aleatorio del paquete bosque aleatorio. El analista dejó que la función de tren funcionara durante 75 minutos y la función nunca se completó. El método randomForest funcionó en menos de dos minutos, y por lo tanto se utilizó el método randomForest para construir el bosque aleatorio.

## 
## Call:
##  randomForest(formula = classe ~ ., data = training[, c(8:60)]) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 7
## 
##         OOB estimate of  error rate: 0.5%
## Confusion matrix:
##      A    B    C    D    E class.error
## A 3902    3    0    0    1 0.001024066
## B   10 2643    5    0    0 0.005643341
## C    0   16 2377    3    0 0.007929883
## D    0    0   24 2227    1 0.011101243
## E    0    0    2    4 2519 0.002376238

Predicciones

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction    A    B    C    D    E
##          A 1674    4    0    0    0
##          B    0 1130    4    0    0
##          C    0    5 1022    7    4
##          D    0    0    0  957    4
##          E    0    0    0    0 1074
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9952          
##                  95% CI : (0.9931, 0.9968)
##     No Information Rate : 0.2845          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.994           
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: A Class: B Class: C Class: D Class: E
## Sensitivity            1.0000   0.9921   0.9961   0.9927   0.9926
## Specificity            0.9991   0.9992   0.9967   0.9992   1.0000
## Pos Pred Value         0.9976   0.9965   0.9846   0.9958   1.0000
## Neg Pred Value         1.0000   0.9981   0.9992   0.9986   0.9983
## Prevalence             0.2845   0.1935   0.1743   0.1638   0.1839
## Detection Rate         0.2845   0.1920   0.1737   0.1626   0.1825
## Detection Prevalence   0.2851   0.1927   0.1764   0.1633   0.1825
## Balanced Accuracy      0.9995   0.9956   0.9964   0.9960   0.9963

Errores

Este gráfico muestra las tasas de error de clase del modelo Random Forest. A medida que aumenta el número de árboles, la tasa de error se acerca a cero.


Técnicas de aprendizaje

El aprendizaje computacional se empleó originalmente para desarrollar técnicas que permitieran a las computadoras aprender. Hoy en día, ya que incluye una serie de métodos estadísticos avanzados para la regresión y la clasificación, tiene aplicación en una amplia variedad de campos, incluyendo diagnósticos médicos, detección de fraudes de tarjetas de crédito, reconocimiento de la cara y el habla y el análisis del mercado de valores.

Redes neuronales

Las redes neuronales son técnicas de modelado no lineal sofisticadas que son capaces de modelar funciones complejas. Pueden aplicarse a problemas de predicción, clasificación o control en un amplio espectro de campos como las finanzas, la psicología cognitiva/neurociencia, la medicina, la ingeniería y la física.

Estas redes estan inspirada en la red de neuronas biológicas conectadas entre sí en forma múltiple. En que cada neurona transmite señal a otras y que se disponen en una serie de capas, existiendo a lo menos tres. Una capa de entrada, una capa oculta y una de salida.

Es una forma de aprendizaje automático en que cada

Esquema de redes neuronales. Fuente: https://www.asimovinstitute.org/neural-network-zoo/

Esquema de redes neuronales. Fuente: https://www.asimovinstitute.org/neural-network-zoo/

En producción…

Máquinas de vectores de soporte

Las máquinas de vectores de soporte (SVM) se usan para detectar y explotar patrones complejos de datos agrupando, ordenando y clasificando los datos.

Son máquinas de aprendizaje que se utilizan para realizar clasificaciones binarias y estimaciones de regresión. Usualmente usan métodos basados en kernel para aplicar técnicas de clasificación lineal a problemas de clasificación no lineal. Hay una serie de tipos de SVM tales como lineal, polinomial, sigmoide, etc.

Naive Bayes

El clasificador bayesiano “ingenuo” se basa en la regla de probabilidad condicional de Bayes, que se utiliza para la tarea de clasificación. El clasificador bayesiano asume que los predictores son estadísticamente independientes, lo que hace que sea una herramienta de clasificación eficaz que sea fácil de interpretar. Se emplea mejor cuando se enfrenta al problema de la “maldición de la dimensionalidad”, es decir, cuando el número de predicciones es muy alto.

K-vecinos más cercanos

El algoritmo vecino más próximo k-NN (Nearest Neighbor) pertenece a la clase de métodos estadísticos de reconocimiento de patrones. El método no impone a priori ninguna suposición sobre la distribución de la que se extrae la muestra de modelado.