Está en la página 1de 363

Se dic

gu ió
E

nd n
Práctico

o
Estadísticas
para científicos de datos
Más de 50 conceptos esenciales con R y Python
SEGUNDA EDICION

Estadísticas prácticas para


Científicos de datos
Más de 50 conceptos esenciales con R y Python

Peter Bruce, Andrew Bruce y Peter Gedeck

BBeeiijjiinngg BBoossttoonn FFaarrnnhhaamm SSeebbaassttooppooll TTookkyyoo


Estadísticas prácticas para científicos de datos

por Peter Bruce, Andrew Bruce y Peter Gedeck

Copyright © 2020 Peter Bruce, Andrew Bruce y Peter Gedeck. Reservados todos los derechos.

Impreso en los Estados Unidos de América.

Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

Los libros de O'Reilly se pueden comprar con fines educativos, comerciales o promocionales de ventas. Las ediciones en línea también
están disponibles para la mayoría de los títulos (http://oreilly.com). Para obtener más información, comuníquese con nuestro
departamento de ventas corporativo / institucional: 800-998-9938 o corporate@oreilly.com.

Editor: Nicole Tache Indexador: Ellen Troutman-Zaig


Editor de producción: Kristen Brown Diseñador de interiores: David Futato
Editor de copia: Editorial Piper Diseñador de la portada: Karen Montgomery
Corrector de pruebas: Arthur Johnson Ilustrador: Rebecca Demarest

Mayo de 2017: Primera edición


Mayo de 2020: Segunda edicion

Historial de revisiones de la segunda edición

2020-04-10: primer lanzamiento

Ver http://oreilly.com/catalog/errata.csp?isbn=9781492072942 para conocer los detalles de la versión.

El logotipo de O'Reilly es una marca registrada de O'Reilly Media, Inc. Estadísticas prácticas para científicos de datos,
la imagen de portada y la imagen comercial relacionada son marcas comerciales de O'Reilly Media, Inc.

Las opiniones expresadas en este trabajo son las de los autores y no representan las opiniones del editor. Si bien el
editor y los autores han realizado esfuerzos de buena fe para garantizar que la información y las instrucciones
contenidas en este trabajo sean precisas, el editor y los autores renuncian a toda responsabilidad por errores u
omisiones, incluida, entre otras, la responsabilidad por daños resultantes del uso de o dependencia de este trabajo. El
uso de la información y las instrucciones contenidas en este trabajo es bajo su propio riesgo. Si alguna muestra de
código u otra tecnología que este trabajo contiene o describe está sujeta a licencias de código abierto o derechos de
propiedad intelectual de otros, es su responsabilidad asegurarse de que su uso cumpla con dichas licencias y / o
derechos.

978-1-492-07294-2

[LSI]
Peter Bruce y Andrew Bruce quisieran dedicar este libro a los recuerdos de nuestros padres,
Victor G. Bruce y Nancy C. Bruce, quienes cultivaron una pasión por las matemáticas y las
ciencias; y a nuestros primeros mentores John W. Tukey y Julian Simon y nuestra vida
amigo Geoff Watson, quien ayudó a inspirarnos a seguir una carrera en estadística.

Peter Gedeck quisiera dedicar este libro a Tim Clark y Christian Kramer, con
profundo agradecimiento por su colaboración científica y amistad.
Tabla de contenido

Prefacio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

1. Análisis exploratorio de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


Elementos de datos estructurados 2
Lectura adicional 4
Datos rectangulares 4
Índices y marcos de datos 6
Estructuras de datos no rectangulares 6
Lectura adicional 7
Estimaciones de la ubicación 7
Media 9
Estimaciones medianas y sólidas 10
Ejemplo: estimaciones de ubicación de la población y las tasas de asesinatos 12
Lecturas adicionales 13
Estimaciones de variabilidad 13
Desviación estándar y estimaciones relacionadas 14
Estimaciones basadas en percentiles 16
Ejemplo: estimaciones de variabilidad de la población estatal 18
Lecturas complementarias 19
Explorando la distribución de datos 19
Percentiles y diagramas de caja 20
Tablas de frecuencia e histogramas 22
Gráficos y estimaciones de densidad 24
Lecturas complementarias 26
Exploración de datos binarios y categóricos 27
Modo 29
Valor esperado 29
Probabilidad 30

v
Otras lecturas 30
Correlación 30
Gráfico de dispersión 34
Otras lecturas 36
Explorando dos o más variables 36
Intervalos y contornos hexagonales (trazado de datos numéricos frente a datos numéricos) 36
Dos variables categóricas 39
Datos categóricos y numéricos 41
Visualización de múltiples variables 43
Lecturas complementarias 46
Resumen 46

2. Distribuciones de datos y muestreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47


Muestreo aleatorio y sesgo de la muestra 48
Sesgo 50
Selección aleatoria 51
Tamaño versus calidad: ¿Cuándo importa el tamaño? 52
Media muestral versus media poblacional 53
Lecturas complementarias 53
Sesgo de selección 54
Regresión a la media 55
Lecturas complementarias 57
Distribución muestral de una estadística 57
Teorema del límite central 60
Error estándar 60
Lecturas complementarias 61
El Bootstrap 61
Remuestreo versus bootstrapping 65
Lecturas complementarias 65
Intervalos de confianza 65
Lecturas complementarias 68
Distribución normal 69
Gráficos estándar normal y QQ 71
Distribuciones de cola larga 73
Lecturas complementarias 75
Distribución t de Student 75
Lecturas complementarias 78
Distribución binomial 78
Lecturas complementarias 80
Distribución chi-cuadrado 80
Lecturas complementarias 81
Distribución F 82

vi | Tabla de contenido
Otras lecturas 82
Distribuciones de Poisson y distribuciones 82
relacionadas Distribuciones de Poisson 83
Distribución exponencial 84
Estimación de la tasa de fallas 84
Distribución de Weibull 85
Otras lecturas 86
Resumen 86

3. Experimentos estadísticos y pruebas de significación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87


Pruebas A / B 88
¿Por qué tener un grupo de control? 90
¿Por qué solo A / B? ¿Por qué no C, D,…? 91
Lecturas complementarias 92
Pruebas de hipótesis 93
La hipótesis nula 94
Hipótesis alternativa 95
Pruebas de hipótesis unidireccionales versus bidireccionales 95
Lecturas complementarias 96
Remuestreo 96
Prueba de permutación 97
Ejemplo: Web Stickiness 98
Pruebas de permutación exhaustivas y Bootstrap 102
Pruebas de permutación: lo fundamental para la ciencia de datos 102
Lecturas complementarias 103
Significación estadística y valores p 103
Valor p 106
Alfa 107
Errores tipo 1 y tipo 2 109
Ciencia de datos y valores p 109
Lecturas complementarias 110
Pruebas t 110
Lecturas complementarias 112
Pruebas múltiples 112
Lecturas complementarias 116
Grados de libertad 116
Lecturas complementarias 118
ANOVA 118
Estadística F 121
ANOVA bidireccional 123
Lecturas complementarias 124
Prueba de chi-cuadrado 124

Tabla de contenido | vii


Prueba de chi-cuadrado: un método de remuestreo 124
Prueba de chi-cuadrado: teoría estadística Prueba 127
exacta de Fisher 128
Relevancia para la ciencia de 130
datos Lectura adicional 131
Lecturas adicionales del algoritmo 131
Bandit de brazos múltiples 134
Potencia y tamaño de la muestra 135
Tamaño de la muestra 136
Otras lecturas 138
Resumen 139

4. Regresión y predicción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141


Regresión lineal simple 141
La ecuación de regresión 143
Valores ajustados y residuales 146
Mínimos cuadrados 148
Predicción versus explicación (elaboración de perfiles) 149
Lecturas complementarias 150
Regresión lineal múltiple 150
Ejemplo: datos de vivienda del condado de King 151
Evaluación del modelo 153
Validación cruzada 155
Selección de modelo y regresión escalonada 156
Regresión ponderada 159
Lecturas complementarias 161
Predicción mediante regresión 161
Los peligros de la extrapolación 161
Intervalos de confianza y predicción 161
Variables de factores en regresión 163
Representación de variables ficticias 164
Factorizar variables con muchos niveles 167
Variables de factor ordenadas 169
Interpretación de la ecuación de regresión 169
Predictores correlacionados 170
Multicolinealidad 172
Variables de confusión 172
Interacciones y efectos principales 174
Diagnóstico de regresión 176
Valores atípicos 177
Valores influyentes 179
Heteroscedasticidad, no normalidad y errores correlacionados 182

viii | Tabla de contenido


Gráficos de residuos parciales y polinomio 185
de no linealidad y polinomio de regresión 187
spline 188
Estrías 189
Lectura adicional de modelos 192
aditivos generalizados 193
Resumen 194

5. Clasificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Bayes ingenuo 196
Por qué la clasificación bayesiana exacta no es práctica 197
La solución ingenua 198
Variables predictoras numéricas 200
Lecturas complementarias 201
Análisis discriminante 201
Matriz de covarianza 202
Discriminante lineal de Fisher 203
Un ejemplo simple 204
Lecturas complementarias 207
Regresión logística 208
Función de respuesta logística y Logit 208
Regresión logística y GLM 210
Modelos lineales generalizados 212
Valores predichos de regresión logística 212
Interpretación de coeficientes y razones de probabilidades 213
Regresión lineal y logística: similitudes y diferencias 214
Evaluación del modelo 216
Lecturas adicionales 219
Evaluación de modelos de clasificación 219
Matriz de confusión 221
El problema de las clases raras 223
Precisión, recuperación y especificidad 223
Curva ROC 224
226 AUC
Ascensor 228
Lecturas adicionales 229
Estrategias para datos desequilibrados 230
Submuestreo 231
Sobremuestreo y ponderación ascendente / descendente 232
Generación de datos 233
Clasificación basada en costos 234
Explorando las predicciones 234

Tabla de contenido | ix
Otras lecturas 236
Resumen 236

6. Aprendizaje automático estadístico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237


K-Vecinos más cercanos 238
Un pequeño ejemplo: predecir el incumplimiento de los préstamos 239
Métricas de distancia 241
Un codificador activo 242
Estandarización (normalización, puntuaciones z) 243
Elegir K 246
KNN como motor de funciones 247
Modelos de árboles 249
Un ejemplo simple 250
El algoritmo de particionamiento recursivo 252
Medición de la homogeneidad o la impureza 254
Detener el crecimiento del árbol 256
Predecir un valor continuo 257
Cómo se utilizan los árboles 258
Lecturas complementarias 259
Embolsado y el bosque aleatorio 259
Embolsado 260
Bosque aleatorio 261
Importancia variable 265
Hiperparámetros 269
Impulso 270
El algoritmo de impulso 271
XGBoost 272
Regularización: evitar el sobreajuste 274
Hiperparámetros y validación cruzada 279
Resumen 282

7. Aprendizaje sin supervisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283


Análisis de componentes principales 284
Un ejemplo simple 285
Calcular los componentes principales 288
Interpretación de los componentes principales 289
Análisis de correspondencia 292
Lecturas adicionales 294
Agrupación de K-medias 294
Un ejemplo sencillo 295
Algoritmo de K-medias 298
Interpretación de los clústeres 299

x | Tabla de contenido
Selección del número de clústeres 302
Agrupación jerárquica 304
Un ejemplo simple 305
El dendrograma 306
Las medidas del algoritmo 308
aglomerativo de la disimilitud 309
Agrupación basada en modelos 311
Mezclas de distribución normal 311
multivariante de normales 312
Selección del número de clústeres 315
Lectura adicional 318
Escala y variables categóricas 318
Escala de las variables 319
Variables dominantes 321
Datos categóricos y problemas de distancia 322
de Gower con la agrupación de datos mixtos 325
Resumen 326

Bibliografía. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

Tabla de contenido | xi
Prefacio

Este libro está dirigido al científico de datos con cierta familiaridad con el R y / o
Pitón lenguajes de programación, y con alguna exposición previa (quizás irregular o efímera) a las
estadísticas. Dos de los autores llegaron al mundo de la ciencia de datos desde el mundo de las
estadísticas y aprecian en cierta medida la contribución que las estadísticas pueden hacer al arte de la
ciencia de datos. Al mismo tiempo, somos muy conscientes de las limitaciones de la enseñanza de la
estadística tradicional: la estadística como disciplina tiene un siglo y medio, y la mayoría de los libros
de texto y cursos de estadística están cargados con el impulso y la inercia de un transatlántico. Todos
los métodos de este libro tienen alguna conexión, histórica o metodológica, con la disciplina de la
estadística. No se incluyen los métodos que evolucionaron principalmente a partir de la informática,
como las redes neuronales.

Dos objetivos subyacen a este libro:

• Presentar, en forma digerible, navegable y de fácil referencia, conceptos clave de las estadísticas
que son relevantes para la ciencia de datos.

• Explicar qué conceptos son importantes y útiles desde una perspectiva de ciencia de datos,
cuáles lo son menos y por qué.

Las convenciones usadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Itálico
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Ancho constante
Se utiliza para listas de programas, así como dentro de párrafos para referirse a elementos de
programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de
entorno, declaraciones y palabras clave.

xiii
Ancho constante en negrita
Muestra comandos u otro texto que el usuario debe escribir literalmente.

Términos clave

La ciencia de datos es una fusión de múltiples disciplinas, que incluyen estadística, informática,
tecnología de la información y campos específicos de dominio. Como resultado, se podrían usar varios
términos diferentes para hacer referencia a un concepto dado. Los términos clave y sus sinónimos se
destacarán a lo largo del libro en una barra lateral como esta.

Este elemento significa un consejo o sugerencia.

Este elemento significa una nota general.

Este elemento indica una advertencia o precaución.

Usar ejemplos de código


En todos los casos, este libro proporciona ejemplos de código primero en R y luego en Pitón. Para
evitar repeticiones innecesarias, generalmente solo mostramos la salida y los gráficos creados por el
R código. También omitimos el código requerido para cargar los paquetes y conjuntos de datos
requeridos. Puede encontrar el código completo y los conjuntos de datos para descargar enhttps: //
github.com/gedeck/practical-statistics-for-data-scientists.

Este libro está aquí para ayudarlo a hacer su trabajo. En general, si se ofrece un código de
ejemplo con este libro, puede utilizarlo en sus programas y documentación. No es necesario
que se comunique con nosotros para obtener permiso a menos que esté reproduciendo una
parte importante del código. Por ejemplo, escribir un programa que utiliza varios fragmentos
de código de este libro no requiere permiso. Vender o distribuir ejemplos de libros de O'Reilly
requiere permiso. Responder una pregunta citando este libro y citando un código de ejemplo
no requiere permiso. Incorporando una cantidad significativa de

xiv | Prefacio
El código de ejemplo de este libro en la documentación de su producto requiere
permiso.

Apreciamos la atribución, pero no la exigimos. Una atribución generalmente incluye el título, el


autor, el editor y el ISBN. Por ejemplo: "Estadísticas prácticas para científicos de datos
por Peter Bruce, Andrew Bruce y Peter Gedeck (O'Reilly). Copyright 2020 Peter Bruce,
Andrew Bruce y Peter Gedeck, 978-1-492-07294-2 ”.

Si cree que el uso que hace de los ejemplos de código está fuera del uso legítimo o del permiso otorgado
anteriormente, no dude en contactarnos en permissions@oreilly.com.

Aprendizaje en línea O'Reilly

Durante más de 40 años, O'Reilly Media ha proporcionado capacitación,


conocimiento y conocimientos en tecnología y negocios para ayudar a las
empresas a tener éxito.

Nuestra red única de expertos e innovadores comparte su conocimiento y experiencia a través de


libros, artículos y nuestra plataforma de aprendizaje en línea. La plataforma de aprendizaje en línea
de O'Reilly le brinda acceso bajo demanda a cursos de capacitación en vivo, rutas de aprendizaje en
profundidad, entornos de codificación interactivos y una amplia colección de texto y videos de O'Reilly
y más de 200 editores. Para más información visitehttp://oreilly.com.

Cómo contactarnos
Dirija sus comentarios y preguntas sobre este libro al editor:

O'Reilly Media, Inc.


1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (en los Estados Unidos o Canadá)
707-829-0515 (internacional o local)
707-829-0104 (fax)

Tenemos una página web para este libro, donde enumeramos erratas, ejemplos y cualquier
información adicional. Puede acceder a esta página enhttps://oreil.ly/practicalStats_dataSci_2e.

Correo electrónico bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este
libro.

Para obtener noticias y más información sobre nuestros libros y cursos, visite nuestro sitio web en
http://oreilly.com.

Prefacio | xv
Encuentranos en Facebook: http://facebook.com/oreilly

Síganos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://www.youtube.com/oreillymedia

Expresiones de gratitud

Los autores reconocen a las muchas personas que ayudaron a hacer realidad este libro.

Gerhard Pilcher, director ejecutivo de la empresa de minería de datos Elder Research, vio los
primeros borradores del libro y nos brindó correcciones y comentarios detallados y útiles.
Asimismo, Anya McGuirk y Wei Xiao, estadísticos de SAS, y Jay Hilfiger, autor colega de O'Reilly,
proporcionaron comentarios útiles sobre los borradores iniciales del libro. Toshiaki Kurokawa,
quien tradujo la primera edición al japonés, hizo un trabajo integral de revisión y corrección en
el proceso. Aaron Schumacher y Walter Paczkowski revisaron minuciosamente la segunda
edición del libro y proporcionaron numerosas sugerencias útiles y valiosas por las que estamos
muy agradecidos. No hace falta decir que cualquier error que quede es solo nuestro.

En O'Reilly, Shannon Cutt nos ha guiado a través del proceso de publicación con buen ánimo y
la cantidad adecuada de insistencia, mientras que Kristen Brown llevó nuestro libro sin
problemas a través de la fase de producción. Rachel Monaghan y Eliahu Sussman corrigieron y
mejoraron nuestra escritura con cuidado y paciencia, mientras Ellen Troutman-Zaig preparaba
el índice. Nicole Tache tomó las riendas de la segunda edición y ha guiado el proceso de
manera eficaz y ha proporcionado muchas buenas sugerencias editoriales para mejorar la
legibilidad del libro para una amplia audiencia. También agradecemos a Marie Beau- gureau,
quien inició nuestro proyecto en O'Reilly, así como a Ben Bengfort, autor de O'Reilly e instructor
de Statistics.com, quien nos presentó a O'Reilly.

Nosotros, y este libro, también nos hemos beneficiado de las muchas conversaciones que Peter ha tenido a
lo largo de los años con Galit Shmueli, coautor de otros proyectos de libros.

Finalmente, nos gustaría agradecer especialmente a Elizabeth Bruce y Deborah Donnell,


cuya paciencia y apoyo hicieron posible este esfuerzo.

xvi | Prefacio
CAPÍTULO 1

Análisis exploratorio de datos

Este capítulo se centra en el primer paso de cualquier proyecto de ciencia de datos: explorar los datos.

La estadística clásica se centró casi exclusivamente en inferencia, un conjunto de procedimientos a


veces complejo para sacar conclusiones sobre grandes poblaciones basadas en muestras pequeñas.
En 1962,John W. Tukey (Figura 1-1) pidió una reforma de las estadísticas en su artículo fundamental
"El futuro del análisis de datos" [Tukey-1962]. Propuso una nueva disciplina científica llamadaanálisis
de los datos que incluía la inferencia estadística como un solo componente. Tukey forjó vínculos con
las comunidades de ingeniería e informática (acuñó los términosun poco, abreviatura de dígito
binario, y software), y sus principios originales son sorprendentemente duraderos y forman parte de
la base de la ciencia de datos. El campo del análisis de datos exploratorios se estableció con el ahora
clásico libro de Tukey de 1977Análisis exploratorio de datos [Tukey-1977]. Tukey presentó gráficas
simples (por ejemplo, gráficas de caja, gráficas de dispersión) que, junto con estadísticas resumidas
(media, mediana, cuantiles, etc.), ayudan a pintar una imagen de un conjunto de datos.

Con la disponibilidad inmediata de la potencia informática y el software de análisis de datos


expresivos, el análisis de datos exploratorios ha evolucionado mucho más allá de su alcance
original. Los impulsores clave de esta disciplina han sido el rápido desarrollo de nuevas
tecnologías, el acceso a más y más datos y el mayor uso del análisis cuantitativo en una
variedad de disciplinas. David Donoho, profesor de estadística en la Universidad de Stanford y
exalumno de Tukey's, es autor de un excelente artículo basado en su presentación en el taller
Tukey Centennial en Princeton, Nueva Jersey.[Donoho-2015]. Donoho remonta la génesis de la
ciencia de datos al trabajo pionero de Tukey en el análisis de datos.

1
Figura 1-1. John Tukey, el eminente estadístico cuyas ideas se desarrollaron hace más de 50 años
forman la base de la ciencia de datos

Elementos de datos estructurados

Los datos provienen de muchas fuentes: mediciones de sensores, eventos, texto, imágenes y videos.
LaInternet de las Cosas (IoT) está arrojando flujos de información. Gran parte de estos datos no están
estructurados: las imágenes son una colección de píxeles, y cada píxel contiene información de color
RGB (rojo, verde, azul). Los textos son secuencias de palabras y caracteres que no son palabras, a
menudo organizados por secciones, subsecciones, etc. Los clickstreams son secuencias de acciones
de un usuario que interactúa con una aplicación o una página web. De hecho, uno de los principales
desafíos de la ciencia de datos es aprovechar este torrente de datos sin procesar en información
procesable. Para aplicar los conceptos estadísticos cubiertos en este libro, los datos brutos no
estructurados deben procesarse y manipularse en una forma estructurada. Una de las formas más
comunes de datos estructurados es una tabla con filas y columnas, ya que los datos pueden surgir de
una base de datos relacional o recopilarse para un estudio.

Hay dos tipos básicos de datos estructurados: numéricos y categóricos. Los datos numéricos vienen
en dos formas:continuo, como la velocidad del viento o la duración del tiempo, y discreto,
como el recuento de la ocurrencia de un evento. Categórico los datos toman solo un conjunto
fijo de valores, como un tipo de pantalla de TV (plasma, LCD, LED, etc.) o el nombre de un
estado (Alabama, Alaska, etc.). Binario Los datos son un caso especial importante de datos
categóricos que toman solo uno de dos valores, como 0/1, sí / no o verdadero / falso. Otro tipo
útil de datos categóricos esordinal datos en los que se ordenan las categorías; un ejemplo de
esto es una calificación numérica (1, 2, 3, 4 o 5).

¿Por qué nos molestamos con una taxonomía de tipos de datos? Resulta que a los efectos del análisis
de datos y el modelado predictivo, el tipo de datos es importante para ayudar a determinar el tipo de
presentación visual, análisis de datos o modelo estadístico. De hecho, el software de ciencia de datos,
comoR y Pitón, utiliza estos tipos de datos para mejorar el rendimiento computacional. Más
importante aún, el tipo de datos para una variable determina cómo el software manejará los cálculos
para esa variable.

2 | Capítulo 1: Análisis de datos exploratorios


Términos clave para los tipos de datos

Numérico
Datos que se expresan en una escala numérica.

Continuo
Datos que pueden tomar cualquier valor en un intervalo. (Sinónimos: intervalo, flotante,
numérico)

Discreto
Datos que pueden tomar solo valores enteros, como recuentos. (Sinónimos: entero, recuento)

Categórico
Datos que pueden tomar solo un conjunto específico de valores que representan un conjunto de
categorías posibles. (Sinónimos: enumeraciones, enumerado, factores, nominal)

Binario
Un caso especial de datos categóricos con solo dos categorías de valores, por ejemplo, 0/1,
verdadero / falso. (Sinónimos: dicotómico, lógico, indicador, booleano)

Ordinal
Datos categóricos que tienen un orden explícito. (Sinónimo: factor ordenado)

Los ingenieros de software y los programadores de bases de datos pueden preguntarse por qué
necesitamos la noción de categórico y ordinal datos para análisis. Después de todo, las categorías son
simplemente una colección de valores de texto (o numéricos), y la base de datos subyacente maneja
automáticamente la representación interna. Sin embargo, la identificación explícita de datos como
categóricos, a diferencia del texto, ofrece algunas ventajas:

• Saber que los datos son categóricos puede actuar como una señal que indica al software cómo deben
comportarse los procedimientos estadísticos, como producir un gráfico o ajustar un modelo. En
particular, los datos ordinales se pueden representar como unOrder.factor en R, preservando un orden
especificado por el usuario en gráficos, tablas y modelos. EnPitón, scikit-learn
admite datos ordinales con el sklearn.preprocessing.OrdinalEncoder.
• El almacenamiento y la indexación se pueden optimizar (como en una base de datos relacional).

• Los posibles valores que puede tomar una variable categórica dada se aplican en el software
(como una enumeración).

El tercer "beneficio" puede dar lugar a un comportamiento no deseado o inesperado: el comportamiento


predeterminado de las funciones de importación de datos en R (p.ej, read.csv) es convertir automáticamente
una columna de texto en un factor. Las operaciones posteriores en esa columna supondrán que los únicos
valores permitidos para esa columna son los que se importaron originalmente, y la asignación de un nuevo
valor de texto introducirá una advertencia y producirá una N / A (desaparecido

Elementos de datos estructurados | 3


valor). Lapandas paquete en Pitón no realizará dicha conversión automáticamente. Sin embargo,
puede especificar una columna como categórica explícitamente en elread_csv función.

Ideas claves

• Los datos generalmente se clasifican en software por tipo.

• Los tipos de datos incluyen numéricos (continuos, discretos) y categóricos (binarios,


ordinales).

• La introducción de datos en el software actúa como una señal para el software sobre cómo procesar los
datos.

Otras lecturas
• La pandas documentación describe los diferentes tipos de datos y cómo se
pueden manipular en Pitón.
• Los tipos de datos pueden ser confusos, ya que los tipos pueden superponerse y la
taxonomía de un software puede diferir de la de otro. LaSitio web de R Tutorial cubre
la taxonomía para R. La pandas documentación describe los diferentes tipos de datos
y cómo se pueden manipular en Pitón.
• Las bases de datos son más detalladas en su clasificación de tipos de datos, incorporando
consideraciones de niveles de precisión, campos de longitud fija o variable, y más; ver el
Guía de W3Schools para SQL.

Datos rectangulares
El marco de referencia típico para un análisis en ciencia de datos es un datos rectangulares
objeto, como una hoja de cálculo o una tabla de base de datos.

Datos rectangulares es el término general para una matriz bidimensional con filas que indican registros
(casos) y columnas que indican características (variables); marco de datos es el formato específico en R y
Pitón. Los datos no siempre comienzan de esta forma: los datos no estructurados (por ejemplo, texto) deben
procesarse y manipularse para que se puedan representar como un conjunto de características en los datos
rectangulares (ver "Elementos de datos estructurados" en la página 2). Los datos de las bases de datos
relacionales deben extraerse y colocarse en una sola tabla para la mayoría de las tareas de análisis y
modelado de datos.

4 | Capítulo 1: Análisis de datos exploratorios


Términos clave para datos rectangulares

Marco de datos
Los datos rectangulares (como una hoja de cálculo) son la estructura de datos básica para los modelos estadísticos
y de aprendizaje automático.

Característica

Una columna dentro de una tabla se denomina comúnmente característica.

Sinónimos
atributo, entrada, predictor, variable

Salir
Muchos proyectos de ciencia de datos implican predecir un Salir—A menudo un resultado
de sí / no (en Tabla 1-1, es “la subasta fue competitiva o no”). Lacaracterísticas a veces se
utilizan para predecir la Salir en un experimento o estudio.

Sinónimos
variable dependiente, respuesta, objetivo, salida

Registros
Una fila dentro de una tabla se denomina comúnmente registro.

Sinónimos
caso, ejemplo, instancia, observación, patrón, muestra

Tabla 1-1. Un formato de marco de datos típico

Categoría vendedor de divisas Calificación Duración endDay ClosePrice OpenPrice ¿Competitivo?

Música / Película / Juego US 3249 5 Lunes 0,01 0,01 0


Música / Película / Juego US 3249 5 Lunes 0,01 0,01 0
Automotor US 3115 7 Mar 0.01 0.01 0
Automotor US 3115 7 Mar 0.01 0.01 0
Automotor US 3115 7 Mar 0.01 0.01 0
Automotor US 3115 7 Mar 0.01 0.01 0
Automotor US 3115 7 Mar 0.01 0.01 1
Automotor US 3115 7 Mar 0.01 0.01 1

En Tabla 1-1, hay una combinación de datos medidos o contados (por ejemplo, duración y
precio) y datos categóricos (por ejemplo, categoría y moneda). Como se mencionó
anteriormente, una forma especial de variable categórica es una variable binaria (sí / no o 0/1),
que se ve en la columna más a la derecha enTabla 1-1: Una variable indicadora que muestra si
una subasta fue competitiva (tuvo varios postores) o no. Esta variable indicadora también
resulta ser unaSalir variable, cuando el escenario es predecir si una subasta es competitiva o no.

Datos rectangulares | 5
Índices y marcos de datos
Las tablas de bases de datos tradicionales tienen una o más columnas designadas como índice,
esencialmente un número de fila. Esto puede mejorar enormemente la eficiencia de determinadas consultas
de bases de datos. EnPitón, con el pandas biblioteca, la estructura de datos rectangular básica es una
Marco de datos objeto. De forma predeterminada, se crea un índice de enteros automático para unMarco de datos

basado en el orden de las filas. Enpandas También es posible establecer índices


jerárquicos / multinivel para mejorar la eficiencia de ciertas operaciones.

En R, la estructura de datos rectangular básica es una marco de datos objeto. Amarco de datos también
tiene un índice entero implícito basado en el orden de las filas. El nativoR marco de datos no admite
índices multinivel o especificados por el usuario, aunque se puede crear una clave personalizada a
través del nombres de fila atributo. Para superar esta deficiencia, dos nuevos paquetes están ganando
un uso generalizado:tabla de datos y dplyr. Ambos admiten índices multinivel y ofrecen importantes
aceleraciones al trabajar con un marco de datos.

Diferencias terminológicas

La terminología para datos rectangulares puede resultar confusa. Los estadísticos y


los científicos de datos utilizan términos diferentes para lo mismo. Para un
estadístico,variables predictoras se utilizan en un modelo para predecir un
respuesta o variable dependiente. Para un científico de datos, características se
utilizan para predecir un objetivo. Un sinónimo es particularmente confuso: los
científicos informáticos usarán el término muestra para una sola fila; amuestra
para un estadístico significa una colección de filas.

Estructuras de datos no rectangulares

Hay otras estructuras de datos además de los datos rectangulares.

Los datos de series de tiempo registran mediciones sucesivas de la misma variable. Es la materia
prima de los métodos de pronóstico estadístico y también es un componente clave de los datos
producidos por los dispositivos: Internet de las cosas.

Las estructuras de datos espaciales, que se utilizan en la cartografía y el análisis de la ubicación, son
más complejas y variadas que las estructuras de datos rectangulares. En elobjeto representación, el
foco de los datos es un objeto (por ejemplo, una casa) y sus coordenadas espaciales. Lacampo La
vista, por el contrario, se centra en pequeñas unidades de espacio y el valor de una métrica relevante
(brillo de píxeles, por ejemplo).

6 | Capítulo 1: Análisis de datos exploratorios


Las estructuras de datos de gráficos (o redes) se utilizan para representar relaciones físicas,
sociales y abstractas. Por ejemplo, un gráfico de una red social, como Facebook o LinkedIn,
puede representar conexiones entre personas en la red. Los centros de distribución conectados
por carreteras son un ejemplo de una red física. Las estructuras gráficas son útiles para ciertos
tipos de problemas, como la optimización de la red y los sistemas de recomendación.

Cada uno de estos tipos de datos tiene su metodología especializada en ciencia de datos. El enfoque
de este libro está en los datos rectangulares, el bloque de construcción fundamental del modelado
predictivo.

Gráficos en estadística

En informática y tecnología de la información, el término grafico


normalmente se refiere a una descripción de las conexiones entre entidades y
a la estructura de datos subyacente. En estadística,grafico se utiliza para
referirse a una variedad de parcelas y visualizaciones, no solo de conexiones
entre entidades, y el término se aplica solo a la visualización, no a la estructura
de datos.

Ideas claves

• La estructura de datos básica en ciencia de datos es una matriz rectangular en la que las filas son registros y
las columnas son variables (características).

• La terminología puede resultar confusa; Existe una variedad de sinónimos que surgen de las
diferentes disciplinas que contribuyen a la ciencia de datos (estadística, informática y
tecnología de la información).

Otras lecturas
• Documentación sobre marcos de datos en R

• Documentación sobre marcos de datos en Pitón

Estimaciones de ubicación

Las variables con datos medidos o de recuento pueden tener miles de valores distintos. Un paso
básico para explorar sus datos es obtener un “valor típico” para cada característica (variable): una
estimación de dónde se encuentra la mayoría de los datos (es decir, su tendencia central).

Estimaciones de ubicación | 7
Términos clave para estimaciones de ubicación

Significar

La suma de todos los valores dividida por el número de valores.

Sinónimo
promedio

Media ponderada
La suma de todos los valores multiplicada por un peso dividida por la suma de los pesos.

Sinónimo
peso promedio

Mediana
El valor tal que la mitad de los datos se encuentran arriba y abajo.

Sinónimo
Percentil 50
Percentil
El valor tal que PAG el porcentaje de los datos se encuentra a continuación.

Sinónimo
cuantil

Mediana ponderada
El valor tal que la mitad de la suma de los pesos se encuentre por encima y por debajo de los datos
ordenados.

Media recortada
El promedio de todos los valores después de eliminar un número fijo de valores extremos.

Sinónimo
media truncada

Robusto
No sensible a valores extremos.

Sinónimo
resistente

Parte aislada

Un valor de datos que es muy diferente de la mayoría de los datos.

Sinónimo
valor extremo

8 | Capítulo 1: Análisis de datos exploratorios


A primera vista, resumir los datos puede parecer bastante trivial: simplemente tome el
significar de los datos. De hecho, si bien la media es fácil de calcular y conveniente de usar,
puede que no siempre sea la mejor medida para un valor central. Por esta razón, los
estadísticos han desarrollado y promovido varias estimaciones alternativas a la media.

Métricas y estimaciones

Los estadísticos suelen utilizar el término estimar para un valor calculado a partir de
los datos disponibles, para establecer una distinción entre lo que vemos a partir de
los datos y el estado de cosas teórico verdadero o exacto. Es más probable que los
científicos de datos y los analistas de negocios se refieran a este valor comométrico.
La diferencia refleja el enfoque de la estadística frente al de la ciencia de datos: tener
en cuenta la incertidumbre se encuentra en el corazón de la disciplina de la
estadística, mientras que los objetivos empresariales u organizacionales concretos
son el foco de la ciencia de datos. Por lo tanto, los estadísticos estiman y los
científicos de datos miden.

Significar

La estimación más básica de la ubicación es la media o promedio valor. La media es la suma de


todos los valores dividida por el número de valores. Considere el siguiente conjunto de
números: {3 5 1 2}. La media es (3 + 5 + 1 + 2) / 4 = 11/4 = 2.75. Encontrarás el símboloX (se
pronuncia "x-bar") que se utiliza para representar la media de una muestra de un
población. La fórmula para calcular la media de un conjunto denorte valores X1, X2, ..., Xnorte es:

∑norte
i = 1XI
Media = x =
norte

N (o norte) se refiere al número total de registros u observaciones. En


estadística, se escribe con mayúscula si se refiere a una población y en
minúsculas si se refiere a una muestra de una población. En la ciencia de
datos, esa distinción no es vital, por lo que puede verla en ambos sentidos.

Una variación de la media es una media recortada, que se calcula dejando caer un número fijo de
valores ordenados en cada extremo y luego tomando un promedio de los valores restantes
ues. Representar los valores ordenados porX 1, X 2, ..., X norte dónde X 1 es el valor más pequeño
y X norte el más grande, la fórmula para calcular la media recortada con pag los valores más pequeños y más

grandes omitidos son:

∑norte - pag
Media recortada = x = i = p + 1X I
norte - 2pag

Estimaciones de ubicación | 9
Una media recortada elimina la influencia de valores extremos. Por ejemplo, en el buceo
internacional, la puntuación máxima y la puntuación inferior de cinco jueces se eliminan, yel
puntaje final es el promedio de los puntajes de los tres jueces restantes. Esto hace que sea
difícil para un solo juez manipular la partitura, quizás para favorecer al concursante de su país.
Las medias recortadas se utilizan ampliamente y, en muchos casos, son preferibles a la media
ordinaria; consulte“Estimaciones medianas y sólidas” en la página 10 para mayor discusión.

Otro tipo de media es una media ponderada, que calculas multiplicando cada
valor de los datos XI por un peso especificado por el usuario wI y dividiendo su suma por la suma de
los pesos. La fórmula para una media ponderada es:

yo = wx
∑norte
1 ii
Media ponderada = Xw =
∑norte
yo = 1wI

Hay dos motivaciones principales para usar una media ponderada:

• Algunos valores son intrínsecamente más variables que otros, y las observaciones
muy variables reciben un peso menor. Por ejemplo, si tomamos el promedio de
varios sensores y uno de los sensores es menos preciso, entonces podríamos reducir
el peso de los datos de ese sensor.
• Los datos recopilados no representan por igual a los diferentes grupos que nos interesa
medir. Por ejemplo, debido a la forma en que se realizó un experimento en línea, es
posible que no tengamos un conjunto de datos que refleje con precisión todos los grupos
en la base de usuarios. Para corregir eso, podemos dar un mayor peso a los valores de los
grupos que estaban subrepresentados.

Estimaciones medianas y sólidas

La mediana es el número del medio en una lista ordenada de datos. Si hay un


número par de valores de datos, el valor medio es uno que no está realmente en el
conjunto de datos, sino el promedio de los dos valores que dividen los datos
ordenados en mitades superior e inferior. En comparación con la media, que utiliza
todas las observaciones, la mediana depende solo de los valores en el centro de los
datos ordenados. Si bien esto puede parecer una desventaja, dado que la media es
mucho más sensible a los datos, hay muchos casos en los que la mediana es una
mejor métrica para la ubicación. Digamos que queremos observar los ingresos
familiares típicos en los vecindarios alrededor del lago Washington en Seattle. Al
comparar el vecindario de Medina con el vecindario de Windermere, usar la media
produciría resultados muy diferentes porque Bill Gates vive en Medina. Si usamos la
mediana,

10 | Capítulo 1: Análisis de datos exploratorios


Por las mismas razones por las que se usa una media ponderada, también es posible calcular una
mediana ponderada. Al igual que con la mediana, primero ordenamos los datos, aunque cada valor
de datos tiene un peso asociado. En lugar del número del medio, la mediana ponderada es un valor
tal que la suma de las ponderaciones es igual para las mitades inferior y superior de la lista ordenada.
Como la mediana, la mediana ponderada es robusta a valores atípicos.

Valores atípicos

La mediana se conoce como robusto estimación de la ubicación, ya que no está influenciada por
valores atípicoscasos extremos) que podrían sesgar los resultados. Un valor atípico es cualquier valor que
está muy lejos de los otros valores en un conjunto de datos. La definición exacta de un valor atípico es algo
subjetiva, aunque se utilizan ciertas convenciones en varios resúmenes de datos y gráficos (ver“Percentiles y
diagramas de caja” en la página 20). Ser un valor atípico en sí mismo no hace que un valor de datos sea
inválido o erróneo (como en el ejemplo anterior con Bill Gates). Aún así, los valores atípicos a menudo son el
resultado de errores de datos, como la mezcla de datos de diferentes unidades (kilómetros frente a metros) o
lecturas incorrectas de un sensor. Cuando los valores atípicos son el resultado de datos incorrectos, la media
dará como resultado una estimación deficiente de la ubicación, mientras que la mediana seguirá siendo
válida. En cualquier caso, los valores atípicos deben identificarse y, por lo general, merecen una mayor
investigación.

Detección de anomalías

En contraste con el análisis de datos típico, donde los valores atípicos son
a veces informativos y a veces molestos, en Detección de anomalías los
puntos de interés son los valores atípicos, y la mayor masa de datos sirve
principalmente para definir la "normal" contra la cual se miden las
anomalías.

La mediana no es la única estimación sólida de la ubicación. De hecho, una media recortada se usa
ampliamente para evitar la influencia de valores atípicos. Por ejemplo, recortar el 10% inferior y
superior (una opción común) de los datos proporcionará protección contra valores atípicos en todos
los conjuntos de datos, excepto en los más pequeños. La media recortada se puede considerar como
un compromiso entre la mediana y la media: es robusta a los valores extremos en los datos, pero
utiliza más datos para calcular la estimación de la ubicación.

Otras métricas sólidas para la ubicación

Los estadísticos han desarrollado una plétora de otros estimadores para la


ubicación, principalmente con el objetivo de desarrollar un estimador más robusto
que la media y también más eficiente (es decir, más capaz de discernir pequeñas
diferencias de ubicación entre conjuntos de datos). Si bien estos métodos son
potencialmente útiles para conjuntos de datos pequeños, no es probable que
proporcionen un beneficio adicional para conjuntos de datos grandes o incluso de
tamaño moderado.

Estimaciones de ubicación | 11
Ejemplo: estimaciones de ubicación de población y tasas de asesinatos

Tabla 1-2 muestra las primeras filas en el conjunto de datos que contienen las tasas de población y
asesinatos (en unidades de asesinatos por cada 100,000 personas por año) para cada estado de EE. UU.
(Censo de 2010).

Tabla 1-2. Algunas filas delmarco de datos estado de población y tasa de homicidios por estado

Expresar Población Tasa de asesinatos Abreviatura

1 Alabama 4.779.736 5.7 Alabama

2 Alaska 710,231 5,6 Alaska

3 Arizona 6.392.017 4,7 Arizona

4 Arkansas 2,915,918 5,6 Arkansas

5 California 37,253,956 4.4 California

6 Colorado 5,029,196 2.8 CO


7 Connecticut 3,574,097 2.4 Connecticut

8 Delaware 897,934 5.8 Delaware

Calcule la media, la media recortada y la mediana de la población utilizando R:

> Expresar <- read.csv('state.csv')


> significar(Expresar[['Población']])
[1] 6162876
> significar(Expresar[['Población']], podar=0,1)
[1] 4783697
> mediana(Expresar[['Población']])
[1] 4436370

Para calcular la media y la mediana en Pitón podemos usar el pandas métodos del marco
de datos. La media recortada requieretrim_mean funcionar en scipy.stats:

Expresar = pd.read_csv('state.csv')
Expresar['Población'].significar()
trim_mean(Expresar['Población'], 0,1)
Expresar['Población'].mediana()

La media es mayor que la media recortada, que es mayor que la mediana.

Esto se debe a que la media recortada excluye los cinco estados más grandes y más pequeños (recorte
= 0,1 cae un 10% de cada extremo). Si queremos calcular la tasa de homicidios promedio para el país,
necesitamos usar una media o mediana ponderada para dar cuenta de las diferentes poblaciones en
los estados. Desde baseR no tiene una función para la mediana ponderada, necesitamos instalar un
paquete como matrixStats:

> ponderado.medio(Expresar[['Tasa de asesinato']], w=Expresar[['Población']])


[1] 4.445834
> Biblioteca('matrixStats')

12 | Capítulo 1: Análisis de datos exploratorios


> ponderadoMedia(Expresar[['Tasa de asesinato']], w=Expresar[['Población']])
[1] 4.4

La media ponderada está disponible con NumPy. Para la mediana ponderada, podemos utilizar el paquete
especializado wquantiles:

notario público.promedio(Expresar['Tasa de asesinato'], pesos=Expresar['Población'])


wquantiles.mediana(Expresar['Tasa de asesinato'], pesos=Expresar['Población'])

En este caso, la media ponderada y la mediana ponderada son aproximadamente iguales.

Ideas claves

• La métrica básica para la ubicación es la media, pero puede ser sensible a valores extremos (valores
atípicos).

• Otras métricas (mediana, media recortada) son menos sensibles a valores atípicos y distribuciones
inusuales y, por lo tanto, son más robustas.

Otras lecturas
• El artículo de Wikipedia sobre tendencia central contiene una discusión extensa de
varias medidas de ubicación.
• El clásico de 1977 de John Tukey Análisis exploratorio de datos (Pearson) todavía se lee ampliamente.

Estimaciones de variabilidad

La ubicación es solo una dimensión para resumir una característica. Una segunda dimensión
variabilidad, también conocido como dispersión, mide si los valores de los datos están
estrechamente agrupados o dispersos. En el corazón de las estadísticas se encuentra la
variabilidad: medirla, reducirla, distinguir la variabilidad aleatoria de la real, identificar las
diversas fuentes de variabilidad real y tomar decisiones en presencia de ella.

Términos clave para las métricas de variabilidad

Desviaciones
La diferencia entre los valores observados y la estimación de ubicación.

Sinónimos
errores, residuales

Diferencia
La suma de las desviaciones cuadradas de la media dividida por norte - 1 donde norte es el
número de valores de datos.

Estimaciones de variabilidad | 13
Sinónimo
error medio cuadrado

Desviación Estándar
La raíz cuadrada de la varianza.

Desviación media absoluta


La media de los valores absolutos de las desviaciones de la media.

Sinónimos
l1-norma, norma de Manhattan

Desviación absoluta mediana de la mediana


La mediana de los valores absolutos de las desviaciones de la mediana.

Distancia

La diferencia entre el valor más grande y el más pequeño de un conjunto de datos.

Estadísticas de pedidos

Métricas basadas en los valores de datos ordenados de menor a mayor.

Sinónimo
rangos

Percentil
El valor tal que PAG el porcentaje de los valores toma este valor o menos y (100 – P) el
porcentaje toma este valor o más.

Sinónimo
cuantil

Rango intercuartil
La diferencia entre el percentil 75 y el percentil 25.
Sinónimo
IQR

Así como existen diferentes formas de medir la ubicación (media, mediana, etc.), también existen
diferentes formas de medir la variabilidad.

Desviación estándar y estimaciones relacionadas

Las estimaciones de variación más utilizadas se basan en las diferencias, o desviaciones,


entre la estimación de la ubicación y los datos observados. Para un conjunto de datos {1,
4, 4}, la media es 3 y la mediana es 4. Las desviaciones de la media son las diferencias: 1 -
3 = –2, 4 - 3 = 1, 4 - 3 = 1 Estas desviaciones nos dicen qué tan dispersos están los datos
alrededor del valor central.

14 | Capítulo 1: Análisis de datos exploratorios


Una forma de medir la variabilidad es estimar un valor típico para estas desviaciones. El
promedio de las desviaciones en sí no nos diría mucho: las desviaciones negativas
compensan las positivas. De hecho, la suma de las desviaciones de la media es
exactamente cero. En cambio, un enfoque simple es tomar el promedio de los valores
absolutos de las desviaciones de la media. En el ejemplo anterior, el valor absoluto de las
desviaciones es {2 1 1} y su promedio es (2 + 1 + 1) / 3 = 1,33. Esto se conoce como el
desviación media absoluta y se calcula con la fórmula:

yo = 1XI
∑norte -X
Desviación absoluta media =
norte

dónde X es la media muestral.

Las estimaciones de variabilidad más conocidas son las diferencia y el Desviación Estándar,
que se basan en desviaciones cuadradas. La varianza es un promedio de las desviaciones
cuadradas y la desviación estándar es la raíz cuadrada de la varianza:

2
yo = 1 XI -
∑norte
X
Diferencia = s2 =
norte - 1

Desviación Estándar = s = Diferencia

La desviación estándar es mucho más fácil de interpretar que la varianza, ya que está en la
misma escala que los datos originales. Aún así, con su fórmula más complicada y menos
intuitiva, podría parecer peculiar que en las estadísticas se prefiera la desviación estándar
sobre la desviación absoluta media. Debe su preeminencia a la teoría estadística:
matemáticamente, trabajar con valores cuadrados es mucho más conveniente que con valores
absolutos, especialmente para los modelos estadísticos.

Grados de libertad y norte o norte - 1?


En los libros de estadística, siempre se habla de por qué tenemos norte - 1 en el denominador en
la fórmula de varianza, en lugar de norte, conduciendo al concepto de grados de libertad. Esta
distinción no es importante ya que norte es generalmente lo suficientemente grande como para
que no haya mucha diferencia si se divide por norte o norte - 1. Pero por si te interesa, aquí
tienes la historia. Se basa en la premisa de que desea hacer estimaciones sobre una población,
basadas en una muestra.

Si usa el denominador intuitivo de norte en la fórmula de la varianza, subestimarás el valor


real de la varianza y la desviación estándar en la población. Esto se conoce como
tendencioso estimar. Sin embargo, si divide pornorte - 1 en lugar de norte, la varianza se
convierte en un imparcial estimar.

Estimaciones de variabilidad | 15
Para explicar completamente por qué usar norte conduce a una estimación sesgada implica la noción
de grados de libertad, que tiene en cuenta el número de restricciones en el cálculo de una estimación.
En este caso, haynorte - 1 grado de libertad ya que hay una restricción: la desviación estándar depende
del cálculo de la media muestral. Para la mayoría de los problemas, los científicos de datos no necesitan
preocuparse por los grados de libertad.

Ni la varianza, la desviación estándar ni la desviación media absoluta son robustas a


valores atípicos y extremos (ver “Estimaciones medianas y sólidas” en la página 10
para una discusión de estimaciones sólidas para la ubicación). La varianza y la desviación estándar
son especialmente sensibles a los valores atípicos, ya que se basan en las desviaciones al cuadrado.

Una estimación robusta de la variabilidad es la desviación absoluta mediana de la mediana o


MAD:

Desviación absoluta mediana = mediana X1 - m, x2 - m, ..., xnorte - metro

dónde metro es la mediana. Al igual que la mediana, la DMA no está influenciada por valores
extremos. También es posible calcular una desviación estándar recortada análoga a la media
recortada (ver"Media" en la página 9).

La varianza, la desviación estándar, la desviación absoluta media y la


desviación absoluta media de la mediana no son estimaciones
equivalentes, incluso en el caso de que los datos provengan de una
distribución normal. De hecho, la desviación estándar es siempre mayor
que la desviación absoluta media, que a su vez es mayor que la
desviación absoluta media. A veces, la desviación absoluta mediana se
multiplica por un factor de escala constante para poner la DMA en la
misma escala que la desviación estándar en el caso de una distribución
normal. El factor comúnmente utilizado de 1,4826 significa que el 50% de
la distribución normal cae dentro del rango ± MAD (ver, por ejemplo,
https://oreil.ly/SfDk2).

Estimaciones basadas en percentiles

Un enfoque diferente para estimar la dispersión se basa en observar la dispersión de los datos clasificados.
Las estadísticas basadas en datos ordenados (clasificados) se denominanestadísticas de pedidos.
La medida más básica es la distancia: la diferencia entre los números más grandes y más
pequeños. Es útil conocer los valores mínimos y máximos en sí mismos y son útiles para
identificar valores atípicos, pero el rango es extremadamente sensible a los valores atípicos y
no es muy útil como medida general de dispersión en los datos.

Para evitar la sensibilidad a los valores atípicos, podemos observar el rango de los datos después de eliminar
los valores de cada extremo. Formalmente, este tipo de estimaciones se basan en diferencias

16 | Capítulo 1: Análisis de datos exploratorios


Entre percentiles. En un conjunto de datos, el PAGEl percentil es un valor tal que al menos PAG por
ciento de los valores toman este valor o menos y al menos (100 - PAG) el porcentaje de los valores
toma este valor o más. Por ejemplo, para encontrar el percentil 80, ordene los datos. Luego,
comenzando con el valor más pequeño, continúe el 80 por ciento del camino hasta el valor más
grande. Tenga en cuenta que la mediana es lo mismo que el percentil 50. El percentil es
esencialmente el mismo que uncuantil con cuantiles indexados por fracciones (por lo que el .8 quan‐
tile es lo mismo que el percentil 80).

Una medida común de variabilidad es la diferencia entre el percentil 25 y el percentil 75,


llamado rango intercuartil (o IQR). Aquí hay un ejemplo simple: {3,1,5,3,6,7,2,9}. Los ordenamos
para obtener {1,2,3,3,5,6,7,9}. El percentil 25 está en 2,5 y el percentil 75 está en 6,5, por lo que
el rango intercuartil es 6,5 - 2,5 = 4. El software puede tener enfoques ligeramente diferentes
que producen respuestas diferentes (consulte el siguiente consejo); normalmente, estas
diferencias son menores.

Para conjuntos de datos muy grandes, calcular percentiles exactos puede ser computacionalmente
muy costoso ya que requiere ordenar todos los valores de datos. El aprendizaje automático y el
software estadístico utilizan algoritmos especiales, como[Zhang-Wang-2007], para obtener un
percentil aproximado que se puede calcular muy rápidamente y que tiene una cierta precisión
garantizada.

Percentil: Definición precisa

Si tenemos un número par de datos (norte es par), entonces el percentil


es ambiguo según la definición anterior. De hecho, podríamos tomar
en cualquier valor entre las estadísticas del pedido X j y X j + 1 dónde j
satisface:

100 * j
norte ≤ P < 100 * j +norte
1

Formalmente, el percentil es el promedio ponderado:

Percentil P = 1 - wx j + wx j + 1

por algo de peso w entre 0 y 1. El software estadístico tiene enfoques


ligeramente diferentes para elegir w. De hecho, el R función azulejo de quan
ofrece nueve alternativas diferentes para calcular el cuantil. A excepción de los
pequeños conjuntos de datos, normalmente no es necesario preocuparse por
la forma precisa en que se calcula un percentil. En el momento de redactar
este escrito,Pitón's numpy.quantile admite un solo enfoque, la interpolación
lineal.

Estimaciones de variabilidad | 17
Ejemplo: estimaciones de variabilidad de la población estatal

Tabla 1-3 (repetido de Tabla 1-2 por conveniencia) muestra las primeras filas del conjunto de datos
que contienen las tasas de población y homicidios para cada estado.

Tabla 1-3. Algunas filas delmarco de datos estado de población y tasa de homicidios por estado

Expresar Población Tasa de asesinatos Abreviatura

1 Alabama 4.779.736 5.7 Alabama

2 Alaska 710,231 5,6 Alaska

3 Arizona 6.392.017 4,7 Arizona

4 Arkansas 2,915,918 5,6 Arkansas

5 California 37,253,956 4.4 California

6 Colorado 5,029,196 2.8 CO


7 Connecticut 3,574,097 2.4 Connecticut

8 Delaware 897,934 5.8 Delaware

Utilizando RCon las funciones integradas de la desviación estándar, el rango intercuartílico


(IQR) y la desviación absoluta media de la mediana (MAD), podemos calcular estimaciones de
variabilidad para los datos de población del estado:

> Dakota del Sur(Expresar[['Población']])


[1] 6848235
> IQR(Expresar[['Población']])
[1] 4847308
> enojado(Expresar[['Población']])
[1] 3849870

La pandas El marco de datos proporciona métodos para calcular la desviación estándar y


los cuantiles. Usando los cuantiles, podemos determinar fácilmente el IQR. Para el MAD
robusto, usamos la funciónrobust.scale.mad desde el statsmodels paquete:

Expresar['Población'].std()
Expresar['Población'].cuantil(0,75) - Expresar['Población'].cuantil(0,25)
robusto.escala.enojado(Expresar['Población'])

La desviación estándar es casi dos veces mayor que la MAD (en R, por defecto, la escala de la
MAD se ajusta para estar en la misma escala que la media). Esto no es sorprendente ya que la
desviación estándar es sensible a valores atípicos.

18 | Capítulo 1: Análisis de datos exploratorios


Ideas claves

• La varianza y la desviación estándar son las estadísticas de variabilidad más difundidas y reportadas
de manera rutinaria.

• Ambos son sensibles a valores atípicos.

• Las métricas más sólidas incluyen la desviación absoluta media, la desviación absoluta media
de la mediana y los percentiles (cuantiles).

Otras lecturas
• El recurso de estadísticas en línea de David Lane tiene una sección de percentiles.

• Kevin Davenport tiene una publicación útil sobre R-Blogueros sobre las desviaciones de la
mediana y sus propiedades robustas.

Explorando la distribución de datos


Cada una de las estimaciones que hemos cubierto resume los datos en un solo número para describir
la ubicación o variabilidad de los datos. También es útil explorar cómo se distribuyen los datos en
general.

Términos clave para explorar la distribución

Diagrama de caja

Una trama presentada por Tukey como una forma rápida de visualizar la distribución de datos.

Sinónimo
diagrama de caja y bigotes

Tabla de frecuencia
Un recuento del recuento de valores de datos numéricos que caen en un conjunto de intervalos (bins).

Histograma
Un gráfico de la tabla de frecuencias con los contenedores en el eje xy el recuento (o proporción)
en el eje y. Aunque son visualmente similares, los gráficos de barras no deben confundirse con los
histogramas. Ver“Exploración de datos binarios y categóricos” en la página 27 para una discusión
de la diferencia.

Gráfico de densidad

Una versión suavizada del histograma, a menudo basada en un estimación de la densidad del grano.

Explorando la distribución de datos | 19


Percentiles y diagramas de caja

En “Estimaciones basadas en percentiles” en la página 16, exploramos cómo se pueden


usar los percentiles para medir la dispersión de los datos. Los percentiles también son
valiosos para resumir toda la distribución. Es común reportar los cuartiles (percentiles 25,
50 y 75) y los deciles (percentiles 10, 20,…, 90). Los percentiles son especialmente valiosos
para resumircolasel rango exterior) de la distribución. La cultura popular ha acuñado el
términouno por ciento para referirse a las personas en el percentil 99 superior de riqueza.

Tabla 1-4 muestra algunos percentiles de la tasa de homicidios por estado. EnR, esto sería
producido por el cuantil función:

cuantil(Expresar[['Tasa de asesinato']], pag=C(.05, .25, .5, 0,75, .95))


5% 25% 50% 75% 95%
1.600 2.425 4.000 5.550 6.510

La pandas método de marco de datos cuantil lo proporciona en Pitón:

Expresar['Tasa de asesinato'].cuantil([0,05, 0,25, 0,5, 0,75, 0,95])

Tabla 1-4. Percentiles de tasa de homicidios por estado

5% 25% 50% 75% 95%


1,60 2,42 4,00 5,55 6,51

La mediana es de 4 asesinatos por cada 100.000 habitantes, aunque hay bastante


variabilidad: el percentil 5 es solo 1,6 y el percentil 95 es 6,51.

Diagramas de caja, presentado por Tukey [Tukey-1977], se basan en percentiles y ofrecen una forma
rápida de visualizar la distribución de datos. Figura 1-2 muestra un diagrama de caja de la población
por estado producido por R:

diagrama de caja(Expresar[['Población']]/1000000, ylab='Población (millones)')

pandas proporciona una serie de gráficos exploratorios básicos para el marco de datos; uno de ellos son diagramas

de caja:

hacha = (Expresar['Población']/1_000_000).gráfico.caja()
hacha.set_ylabel('Población (millones)')

20 | Capítulo 1: Análisis de datos exploratorios


Figura 1-2. Diagrama de caja de las poblaciones estatales

A partir de este diagrama de caja, podemos ver inmediatamente que la población estatal media es de
aproximadamente 5 millones, la mitad de los estados se encuentran entre aproximadamente 2 millones y
aproximadamente 7 millones, y hay algunos valores atípicos de población alta. La parte superior e inferior
del cuadro son los percentiles 75 y 25, respectivamente. La mediana se muestra mediante la línea horizontal
en el cuadro. Las líneas discontinuas, denominadasbigotes, se extienden desde la parte superior e inferior
del cuadro para indicar el rango para la mayor parte de los datos. Hay muchas variaciones de un diagrama
de caja; consulte, por ejemplo, la documentación delR función diagrama de caja [R-base-2015]. Por defecto, elR
La función extiende los bigotes hasta el punto más alejado más allá de la caja, excepto que no irá más allá de
1,5 veces el IQR. Matplotlib utiliza la misma implementación; otro software puede utilizar una regla diferente.

Cualquier dato fuera de los bigotes se traza como puntos únicos o círculos (a menudo se consideran valores
atípicos).

Explorando la distribución de datos | 21


Tablas de frecuencia e histogramas
Una tabla de frecuencia de una variable divide el rango de la variable en segmentos igualmente
espaciados y nos dice cuántos valores caen dentro de cada segmento. Tabla 1-5 muestra una tabla de
frecuencia de la población por estado calculada en R:

rompe <- seq(de=min(Expresar[['Población']]),


a=max(Expresar[['Población']]), largo=11)
pop_freq <- cortar(Expresar[['Población']], rompe=rompe,
derecho=CIERTO, include.lowest=CIERTO)
mesa(pop_freq)

La función pandas.cut crea una serie que asigna los valores a los segmentos. Usando el
métodovalue_counts, obtenemos la tabla de frecuencias:

binnedPoblación = pd.cortar(Expresar['Población'], 10)


binnedPoblación.value_counts()

Tabla 1-5. Una tabla de frecuencia de la población por estado

BinNumber BinRange Estados de recuento

1 563,626–4,232,658 24 WY, VT, ND, AK, SD, DE, MT, RI, NH, ME, HI, ID, NE, WV, NM, NV, UT, KS, AR, MS, IA, CT, OK, O

2 4.232.659– 14 KY , LA, SC, AL, CO, MN, WI, MD, MO, TN, AZ, IN, MA, WA
7,901,691

3 7,901,692– 6 VA, Nueva Jersey, Carolina del Norte, Georgia, MI, OH

11,570,724

4 11,570,725– 2 CUBO
15,239,757

5 15,239,758– 1 Florida

18,908,790

6 18,908,791– 1 Nueva York

22,577,823

7 22,577,824– 1 TX
26,246,856

8 26,246,857– 0
29,915,889

9 29,915,890– 0
33.584.922

10 33,584,923– 1 California

37,253,956

El estado menos poblado es Wyoming, con 563,626 personas, y el más poblado es


California, con 37,253,956 personas. Esto nos da un rango de 37,253,956 - 563,626 =
36,690,330, que debemos dividir en contenedores de igual tamaño, digamos 10 contenedores. Con 10 contenedores
de igual tamaño, cada contenedor tendrá un ancho de 3,669,033, por lo que el primer contenedor abarcará desde
563.626 a 4.232.658. Por el contrario, el contenedor superior, 33,584,923 a 37,253,956, tiene un solo estado:
California. Los dos contenedores inmediatamente debajo de California están vacíos, hasta que

22 | Capítulo 1: Análisis de datos exploratorios


llegar a Texas. Es importante incluir los contenedores vacíos; el hecho de que no haya valores en esos
contenedores es información útil. También puede resultar útil experimentar con distintos tamaños de
contenedores. Si son demasiado grandes, se pueden ocultar características importantes de la distribución. Si
son demasiado pequeños, el resultado es demasiado granular y se pierde la capacidad de ver el panorama
general.

Tanto las tablas de frecuencia como los percentiles resumen los datos mediante la creación
de bins. En general, los cuartiles y deciles tendrán el mismo conteo en cada contenedor
(contenedores de igual conteo), pero los tamaños de contenedor serán diferentes. La tabla
de frecuencias, por el contrario, tendrá diferentes recuentos en los contenedores
(contenedores de igual tamaño) y los tamaños de los contenedores serán los mismos.

Un histograma es una forma de visualizar una tabla de frecuencias, con contenedores en el eje
xy el recuento de datos en el eje y. EnFigura 1-3, por ejemplo, el bin centrado en 10 millones (1e
+ 07) va de aproximadamente 8 millones a 12 millones, y hay seis estados en ese bin. Para crear
un histograma correspondiente aTabla 1-5 en R, utilizar el hist funcionar con el
rompe argumento:

hist(Expresar[['Población']], rompe=rompe)

pandas admite histogramas para marcos de datos con el DataFrame.plot.hist método. Usa el
argumento de la palabra clavecontenedores para definir el número de bins. Los diversos métodos de
trazado devuelven un objeto de eje que permite un mayor ajuste de la visualización utilizando
Matplotlib:

hacha = (Expresar['Población'] / 1_000_000).gráfico.hist(figsize=(4, 4))


hacha.set_xlabel('Población (millones)')

El histograma se muestra en Figura 1-3. En general, los histogramas se trazan de manera que:

• Los contenedores vacíos se incluyen en el gráfico.

• Los contenedores tienen el mismo ancho.

• El número de contenedores (o, de manera equivalente, el tamaño del contenedor) depende del usuario.

• Las barras son contiguas: no se muestran espacios vacíos entre las barras, a menos que haya un
contenedor vacío.

Explorando la distribución de datos | 23


Figura 1-3. Histograma de poblaciones estatales

Momentos estadísticos

En teoría estadística, la ubicación y la variabilidad se conocen como la


primera y la segunda momentos de una distribución. El tercer y cuarto
momento se llamanoblicuidad y curtosis. La asimetría se refiere a si los
datos están sesgados hacia valores mayores o menores, y la curtosis
indica la propensión de los datos a tener valores extremos.
Generalmente, las métricas no se utilizan para medir la asimetría y la
curtosis; en cambio, estos se descubren a través de pantallas visuales
como figuras1-2 y 1-3.

Gráficos y estimaciones de densidad

Relacionado con el histograma hay un gráfico de densidad, que muestra la distribución de los valores de los
datos como una línea continua. Una gráfica de densidad se puede considerar como un histograma
suavizado, aunque normalmente se calcula directamente a partir de los datos a través de unestimación de la
densidad del grano (ver [Duong-2001] para un breve tutorial). Figura 1-4 muestra una estimación de
densidad superpuesta a un histograma. EnR, puede calcular una estimación de densidad utilizando el
densidad función:

24 | Capítulo 1: Análisis de datos exploratorios


hist(Expresar[['Tasa de asesinato']], frecuencia=FALSO)
líneas(densidad(Expresar[['Tasa de asesinato']]), lwd=3, columna='azul')

pandas proporciona el densidad método para crear una gráfica de densidad. Usa el argumento
bw_method para controlar la suavidad de la curva de densidad:

hacha = Expresar['Tasa de asesinato'].gráfico.hist(densidad=Cierto, xlim=[0,12], contenedores=distancia(1,12))


Expresar['Tasa de asesinato'].gráfico.densidad(hacha=hacha)
hacha.set_xlabel('Tasa de asesinatos (por 100.000)')

Las funciones de trazado a menudo toman un eje opcional (hacha) argumento, que hará que la
gráfica se agregue al mismo gráfico.

Una distinción clave del histograma trazado en Figura 1-3 es la escala del eje y: un diagrama de
densidad corresponde a trazar el histograma como una proporción en lugar de recuentos
(especifique esto en R usando el argumento frecuencia = FALSO). Tenga en cuenta que el área total
debajo de la curva de densidad = 1, y en lugar de contar en contenedores, calcula las áreas debajo de
la curva entre dos puntos cualesquiera en el eje x, que corresponden a la proporción de la
distribución que se encuentra entre esos dos puntos.

Figura 1-4. Densidad de las tasas estatales de homicidios

Explorando la distribución de datos | 25


Estimación de densidad

La estimación de la densidad es un tema rico con una larga historia en la


literatura estadística. De hecho, más de 20R Se han publicado paquetes que
ofrecen funciones para la estimación de densidad. [Deng-Wickham-2011] dar
una revisión completa de R paquetes, con una recomendación particular para
CENIZA o KernSmooth. Los métodos de estimación de densidad en pandas y
scikit-learn también ofrecen buenas implementaciones. Para muchos
problemas de ciencia de datos, no hay necesidad de preocuparse por los
diversos tipos de estimaciones de densidad; basta con utilizar las funciones
base.

Ideas claves

• Un histograma de frecuencia traza los recuentos de frecuencia en el eje y y los valores de las
variables en el eje x; da una idea de la distribución de los datos de un vistazo.

• Una tabla de frecuencia es una versión tabular de los recuentos de frecuencia que se encuentran en un
histograma.

• Una gráfica de caja, con la parte superior e inferior de la caja en los percentiles 75 y 25,
respectivamente, también da una idea rápida de la distribución de los datos; se utiliza a menudo
en visualizaciones lado a lado para comparar distribuciones.

• Un gráfico de densidad es una versión suavizada de un histograma; requiere una función para estimar una
gráfica basada en los datos (por supuesto, son posibles múltiples estimaciones).

Otras lecturas
• Un profesor de SUNY Oswego proporciona un guía paso a paso para crear un diagrama de caja.

• Estimación de densidad en R está cubierto en El artículo de Henry Deng y Hadley Wickham del
mismo nombre.

• R-Bloggers tiene un publicación útil sobre histogramas en R, incluidos elementos de


personalización, como agrupamiento (pausas).

• R-Bloggers también tiene un publicación similar sobre diagramas de caja en R.

• Matthew Conlen publicó un presentación interactiva que demuestra el efecto de elegir


diferentes núcleos y ancho de banda en las estimaciones de densidad del núcleo.

26 | Capítulo 1: Análisis de datos exploratorios


Explorando datos binarios y categóricos
Para datos categóricos, proporciones simples o porcentajes cuentan la historia de los datos.

Términos clave para explorar datos categóricos

Modo
La categoría o valor que ocurre con más frecuencia en un conjunto de datos.

Valor esperado
Cuando las categorías se pueden asociar con un valor numérico, esto da un valor promedio
basado en la probabilidad de ocurrencia de una categoría.

Gráfica de barras

La frecuencia o proporción de cada categoría representada como barras.

Gráficos circulares

La frecuencia o proporción de cada categoría trazada como cuñas en un pastel.

Obtener un resumen de una variable binaria o una variable categórica con algunas categorías es un
asunto bastante fácil: simplemente calculamos la proporción de 1 o las proporciones de las categorías
importantes. Por ejemplo,Tabla 1-6 muestra el porcentaje de vuelos retrasados por la causa del
retraso en el aeropuerto de Dallas / Fort Worth desde 2010. Los retrasos se clasifican como debidos a
factores bajo el control de la aerolínea, retrasos en el sistema de control de tráfico aéreo (ATC), clima,
seguridad o retraso aviones entrantes.

Tabla 1-6. Porcentaje de retrasos por causa en el aeropuerto de Dallas / Fort Worth

Transportista ATC Seguridad meteorológica entrante

23.02 30.40 4.03 0,12 42,43

Los gráficos de barras, que se ven a menudo en la prensa popular, son una herramienta visual común
para mostrar una sola variable categórica. Las categorías se enumeran en el eje xy las frecuencias o
proporciones en el eje y.Figura 1-5 muestra los retrasos del aeropuerto por año por causa para
Dallas / Fort Worth (DFW), y se produce con el R función gráfico de barras:

gráfico de barras(como.matriz(dfw) / 6, eje cex.=0,8, cex.names=0,7,


xlab='Causa de retraso', ylab='Contar')

pandas también admite gráficos de barras para marcos de datos:

hacha = dfw.transponer().gráfico.bar(figsize=(4, 4), leyenda=Falso)


hacha.set_xlabel('Causa de retraso')
hacha.set_ylabel('Contar')

Explorando datos binarios y categóricos | 27


Figura 1-5. Gráfico de barras de retrasos de aerolíneas en DFW por causa

Tenga en cuenta que un gráfico de barras se parece a un histograma; en un gráfico de barras, el eje x
representa diferentes categorías de una variable de factor, mientras que en un histograma, el eje x
representa los valores de una sola variable en una escala numérica. En un histograma, las barras
generalmente se muestran tocándose entre sí, con espacios que indican valores que no ocurrieron en los
datos. En un gráfico de barras, las barras se muestran separadas entre sí.

Los gráficos circulares son una alternativa a los gráficos de barras, aunque los estadísticos y los expertos en visualización de

datos generalmente evitan los gráficos circulares por ser menos informativos visualmente (ver [Pocos-2007]).

28 | Capítulo 1: Análisis de datos exploratorios


Datos numéricos como datos categóricos

En “Tablas de frecuencia e histogramas” en la página 22, analizamos las tablas de


frecuencia basadas en la agrupación de los datos. Esto convierte implícitamente los
datos numéricos en un factor ordenado. En este sentido, los histogramas y los
gráficos de barras son similares, excepto que las categorías en el eje x del gráfico de
barras no están ordenadas. La conversión de datos numéricos en datos categóricos
es un paso importante y ampliamente utilizado en el análisis de datos, ya que
reduce la complejidad (y el tamaño) de los datos. Esto ayuda a descubrir las
relaciones entre las características, particularmente en las etapas iniciales de un
análisis.

Modo
La moda es el valor (o valores en caso de empate) que aparece con mayor frecuencia en los
datos. Por ejemplo, el modo de la causa del retraso en el aeropuerto de Dallas / Fort Worth es
"Inbound". Como otro ejemplo, en la mayor parte de los Estados Unidos, el modo de
preferencia religiosa sería cristiano. La moda es una estadística de resumen simple para datos
categóricos y, por lo general, no se usa para datos numéricos.

Valor esperado
Un tipo especial de datos categóricos son los datos en los que las categorías representan o pueden
asignarse a valores discretos en la misma escala. Un comercializador de una nueva tecnología en la
nube, por ejemplo, ofrece dos niveles de servicio, uno con un precio de $ 300 al mes y otro a $ 50 al
mes. El especialista en marketing ofrece seminarios web gratuitos para generar clientes potenciales, y
la firma calcula que el 5% de los asistentes se inscribirá en el servicio de $ 300, el 15% se inscribirá en
el servicio de $ 50 y el 80% no se inscribirá en nada. Estos datos se pueden resumir, para fines
financieros, en un solo "valor esperado", que es una forma de media ponderada, en la que las
ponderaciones son probabilidades.

El valor esperado se calcula de la siguiente manera:

1. Multiplique cada resultado por su probabilidad de ocurrencia.

2. Sume estos valores.

En el ejemplo del servicio en la nube, el valor esperado de un asistente a un seminario web es, por lo tanto, $ 22.50
por mes, calculado de la siguiente manera:

EV = 0. 05 300 + 0. 15 50 + 0. 80 0 = 22. 5

El valor esperado es realmente una forma de media ponderada: agrega las ideas de expectativas
futuras y ponderaciones de probabilidad, a menudo basadas en juicios subjetivos. El valor esperado
es un concepto fundamental en la valoración empresarial y el presupuesto de capital, para

Explorando datos binarios y categóricos | 29


Por ejemplo, el valor esperado de cinco años de ganancias de una nueva adquisición o los ahorros de costos
esperados del nuevo software de administración de pacientes en una clínica.

Probabilidad

Nos referimos anteriormente al probabilidad de un valor que ocurre. La mayoría de la gente


tiene una comprensión intuitiva de la probabilidad, y se encuentra con el concepto con
frecuencia en los pronósticos meteorológicos (la probabilidad de lluvia) o en el análisis
deportivo (la probabilidad de ganar). Los deportes y los juegos se expresan más a menudo
como probabilidades, que se pueden convertir fácilmente en probabilidades (si las
probabilidades de que un equipo gane son 2 a 1, su probabilidad de ganar es 2 / (2 + 1) = 2/3).
Sin embargo, sorprendentemente, el concepto de probabilidad puede ser fuente de una
profunda discusión filosófica a la hora de definirlo. Afortunadamente, aquí no necesitamos una
definición matemática o filosófica formal. Para nuestros propósitos, la probabilidad de que
suceda un evento es la proporción de veces que ocurrirá si la situación pudiera repetirse una y
otra vez, innumerables veces. La mayoría de las veces se trata de una construcción imaginaria,

Ideas claves

• Los datos categóricos generalmente se resumen en proporciones y se pueden visualizar en un gráfico de


barras.

• Las categorías pueden representar cosas distintas (manzanas y naranjas, hombres y


mujeres), niveles de una variable de factor (bajo, medio y alto) o datos numéricos que se
han agrupado.

• El valor esperado es la suma de los valores multiplicada por su probabilidad de ocurrencia, que a menudo se usa
para sumar los niveles de las variables del factor.

Otras lecturas
Ningún curso de estadística está completo sin un lección sobre gráficos engañosos, que a menudo incluye
gráficos de barras y gráficos circulares.

Correlación
El análisis exploratorio de datos en muchos proyectos de modelado (ya sea en ciencia de datos o en
investigación) implica examinar la correlación entre predictores y entre predictores y una variable
objetivo. Se dice que las variables X e Y (cada una con datos medidos) están correlacionadas
positivamente si los valores altos de X van con valores altos de Y, y los valores bajos de X van con
valores bajos de Y. Si los valores altos de X van con valores bajos valores de Y, y viceversa, las
variables están correlacionadas negativamente.

30 | Capítulo 1: Análisis de datos exploratorios


Términos clave para la correlación

Coeficiente de correlación
Métrica que mide el grado en que las variables numéricas están
asociadas entre sí (varía de –1 a +1).

Matriz de correlación
Una tabla donde las variables se muestran tanto en filas como en columnas, y los valores de
las celdas son las correlaciones entre las variables.

Gráfico de dispersión

Gráfica en la que el eje x es el valor de una variable y el eje y el valor de


otra.

Considere estas dos variables, perfectamente correlacionadas en el sentido de que cada una va de menor a
mayor:

v1: {1, 2, 3}
v2: {4, 5, 6}

La suma vectorial de productos es 1 · 4 + 2 · 5 + 3 · 6 = 32. Ahora intente barajar uno de ellos y vuelva a
calcular; la suma vectorial de productos nunca será mayor que 32. Por lo tanto, esta suma de productos
podría usarse como una métrica; es decir, la suma observada de 32 podría compararse con muchos cambios
aleatorios (de hecho, esta idea se relaciona con una estimación basada en el remuestreo; consulte"Prueba de
permutación" en la página 97). Sin embargo, los valores producidos por esta métrica no son tan
significativos, excepto por referencia a la distribución de remuestreo.

Más útil es una variante estandarizada: el coeficiente de correlación, que da una estimación de
la correlación entre dos variables que siempre se encuentra en la misma escala. Computar
Coeficiente de correlación de Pearson, Multiplicamos las desviaciones de la media de la variable
1 por las de la variable 2 y las dividimos por el producto de las desviaciones estándar:

∑norte

r = yo = 1 XI - xyI - y
norte - 1 sXsy

Tenga en cuenta que dividimos por norte - 1 en lugar de norte; ver "Grados de libertad y norte o norte
- ¿1? en la página 15para más detalles. El coeficiente de correlación siempre se encuentra entre +1
(correlación positiva perfecta) y –1 (correlación negativa perfecta); 0 indica que no hay correlación.

Las variables pueden tener una asociación que no sea lineal, en cuyo caso el coeficiente de
correlación puede no ser una métrica útil. La relación entre las tasas impositivas y los ingresos

Correlación | 31
planteado es un ejemplo: a medida que las tasas impositivas aumentan desde cero, los ingresos recaudados también

aumentan. Sin embargo, una vez que las tasas impositivas alcanzan un nivel alto y se acercan al 100%, la evasión fiscal aumenta

y los ingresos fiscales en realidad disminuyen.

Tabla 1-7, llamado a matriz de correlación, muestra la correlación entre los rendimientos
diarios de las acciones de telecomunicaciones desde julio de 2012 hasta junio de 2015. En la
tabla, puede ver que Verizon (VZ) y ATT (T) tienen la correlación más alta. El nivel 3 (LVLT), que
es una empresa de infraestructura, tiene la correlación más baja con las demás. Tenga en
cuenta la diagonal de 1 (la correlación de una acción consigo misma es 1) y la redundancia de la
información por encima y por debajo de la diagonal.

Tabla 1-7. Correlación entre la rentabilidad de las acciones de telecomunicaciones

T CTL FTR VZ LVLT


T 1.000 0.475 0.328 0,678 0,279

CTL 0.475 1.000 0,420 0.417 0,287

FTR 0,328 0,420 1.000 0,287 0,260

VZ 0,678 0,417 0,287 1.000 0,242

LVLT 0,279 0,287 0,260 0,242 1.000

Una tabla de correlaciones como Tabla 1-7 comúnmente se traza para mostrar visualmente la
relación entre múltiples variables. Figura 1-6 muestra la correlación entre los rendimientos
diarios de los principales fondos cotizados en bolsa (ETF). EnR, podemos crear esto fácilmente
usando el paquete corrplot:

etfs <- sp500_px[row.names(sp500_px) > «2012-07-01»,


sp500_sym[sp500_symPSsector == 'etf', 'símbolo']]
Biblioteca(corrplot)
corrplot(cor(etfs), método='elipse')

Es posible crear el mismo gráfico en Pitón, pero no hay implementación en los paquetes
comunes. Sin embargo, la mayoría apoya la visualización de matrices de correlación
mediante mapas de calor. El siguiente código demuestra esto usando elseaborn mapa de
calor paquete. En el repositorio de código fuente adjunto, incluimosPitón código para
generar la visualización más completa:

etfs = sp500_px.loc[sp500_px.índice > «2012-07-01»,


sp500_sym[sp500_sym['sector'] == 'etf'] ['símbolo']]
sns.mapa de calor(etfs.corr(), vmin= -1, vmax=1,
cmap=sns.paleta_divergente(20, 220, as_cmap=Cierto))

Los ETF para el S&P 500 (SPY) y el Índice Dow Jones (DIA) tienen una alta correlación. Del mismo
modo, el QQQ y el XLK, compuestos principalmente por empresas de tecnología, están
correlacionados positivamente. Los ETF defensivos, como los que rastrean los precios del oro
(GLD), los precios del petróleo (USO) o la volatilidad del mercado (VXX), tienden a tener una
correlación débil o negativa con los otros ETF. La orientación de la elipse indica si dos variables

32 | Capítulo 1: Análisis de datos exploratorios


están correlacionados positivamente (la elipse apunta hacia la parte superior derecha) o correlacionados
negativamente (la elipse apunta hacia la parte superior izquierda). El sombreado y el ancho de la elipse
indican la fuerza de la asociación: las elipses más delgadas y más oscuras corresponden a relaciones más
fuertes.

Figura 1-6. Correlación entre retornos ETF

Al igual que la media y la desviación estándar, el coeficiente de correlación es sensible a los


valores extremos en los datos. Los paquetes de software ofrecen alternativas sólidas al
coeficiente de correlación clásico. Por ejemplo, elR paquete robusto usa la función covRob para
calcular una estimación robusta de correlación. Los métodos en elscikit-learn módulo
sklearn.covariance implementar una variedad de enfoques.

Correlación | 33
Otras estimaciones de correlación

Los estadísticos propusieron hace mucho tiempo otros tipos de coeficientes de


correlación, como Rho de Spearman o Tau de Kendall. Estos son coeficientes de
correlación basados en el rango de los datos. Dado que trabajan con rangos en
lugar de valores, estas estimaciones son robustas para valores atípicos y pueden
manejar ciertos tipos de no linealidades. Sin embargo, los científicos de datos
generalmente pueden ceñirse al coeficiente de correlación de Pearson y sus
alternativas sólidas para el análisis exploratorio. El atractivo de las estimaciones
basadas en rangos es principalmente para conjuntos de datos más pequeños y
pruebas de hipótesis específicas.

Gráfico de dispersión

La forma estándar de visualizar la relación entre dos variables de datos medidos es con
un diagrama de dispersión. El eje x representa una variable y el eje y otra, y cada punto
del gráfico es un registro. VerFigura 1-7 para obtener un gráfico de la correlación entre
los rendimientos diarios de ATT y Verizon. Esto se produce enR con el comando:

gráfico(telecomunicacionesPST, telecomunicacionesPSVZ, xlab='ATT (T)', ylab='Verizon (VZ)')

El mismo gráfico se puede generar en Pitón utilizando la pandas método de dispersión:

hacha = telecomunicaciones.gráfico.dispersión(X='T', y='VZ', figsize=(4, 4), marcador=PSu25EF $ ')


hacha.set_xlabel('ATT (T)')
hacha.set_ylabel('Verizon (VZ)')
hacha.axhline(0, color='gris', lw=1)
hacha.axvline(0, color='gris', lw=1)

Los rendimientos tienen una relación positiva: si bien se agrupan alrededor de cero, la mayoría de los
días, las acciones suben o bajan en conjunto (cuadrantes superior derecho e inferior izquierdo). Hay
menos días en los que una acción baja significativamente mientras que la otra sube, o viceversa
(cuadrantes inferior derecho y superior izquierdo).

Mientras que la trama Figura 1-7 muestra solo 754 puntos de datos, ya es obvio lo difícil que es
identificar detalles en el medio de la trama. Más adelante veremos cómo la adición de transparencia a
los puntos, o el uso de agrupaciones hexagonales y diagramas de densidad, puede ayudar a
encontrar estructura adicional en los datos.

34 | Capítulo 1: Análisis de datos exploratorios


Figura 1-7. Diagrama de dispersión de la correlación entre los rendimientos de ATT y Verizon

Ideas claves

• El coeficiente de correlación mide el grado en que dos variables emparejadas (por


ejemplo, la altura y el peso de los individuos) están asociadas entre sí.

• Cuando los valores altos de v1 van con los valores altos de v2, v1 y v2 se asocian
positivamente.

• Cuando los valores altos de v1 van con los valores bajos de v2, v1 y v2 se asocian
negativamente.

• El coeficiente de correlación es una métrica estandarizada, por lo que siempre varía entre
- 1 (correlación negativa perfecta) a +1 (correlación positiva perfecta).

• Un coeficiente de correlación de cero indica que no hay correlación, pero tenga en cuenta que los arreglos
aleatorios de datos producirán valores tanto positivos como negativos para el coeficiente de correlación
simplemente por casualidad.

Correlación | 35
Otras lecturas
Estadísticas, La cuarta ed., De David Freedman, Robert Pisani y Roger Purves (WW Nor‐ ton,
2007) tiene una excelente discusión sobre la correlación.

Explorando dos o más variables


Los estimadores familiares como la media y la varianza analizan las variables una a la vez (
análisis univariado). Análisis de correlación (ver "Correlación" en la página 30) es un método
importante que compara dos variables (análisis bivariado). En esta sección, analizamos
estimaciones y gráficos adicionales, y más de dos variables (analisis multivariable).

Términos clave para explorar dos o más variables

Mesa de contingencia
Un recuento de recuentos entre dos o más variables categóricas.

Binning hexagonal
Un gráfico de dos variables numéricas con los registros agrupados en hexágonos.

Dibujo de contorno

Un gráfico que muestra la densidad de dos variables numéricas como un mapa topográfico.

Trama de violín

Similar a un diagrama de caja pero mostrando la densidad estimada.

Al igual que el análisis univariado, el análisis bivariado implica tanto el cálculo de estadísticas de
resumen como la producción de presentaciones visuales. El tipo apropiado de análisis bivariado o
multivariado depende de la naturaleza de los datos: numérico versus categórico.

Intervalos y contornos hexagonales (trazado de


datos numéricos frente a datos numéricos)

Los diagramas de dispersión están bien cuando hay un número relativamente pequeño de valores de datos.
La trama de acciones devuelve enFigura 1-7 implica sólo unos 750 puntos. Para conjuntos de datos con
cientos de miles o millones de registros, un diagrama de dispersión será demasiado denso, por lo que
necesitamos una forma diferente de visualizar la relación. Para ilustrar, considere el conjunto de datoskc_tax,
que contiene los valores tasados por impuestos para propiedades residenciales en el condado de
King, Washington. Para centrarnos en la parte principal de los datos, eliminamos las residencias muy
caras y muy pequeñas o grandes utilizando elsubconjunto función:

36 | Capítulo 1: Análisis de datos exploratorios


kc_tax0 <- subconjunto(kc_tax, TaxAssessedValue < 750000 Y
SqFtTotLiving > 100 Y
SqFtTotLiving < 3500)
nrow(kc_tax0)
432693

En pandas filtramos el conjunto de datos de la siguiente manera:

kc_tax0 = kc_tax.loc[(kc_tax.TaxAssessedValue < 750000) Y


(kc_tax.SqFtTotLiving > 100) Y
(kc_tax.SqFtTotLiving < 3500),:]
kc_tax0.forma
(432693, 3)

Figura 1-8 es un binning hexagonal diagrama de la relación entre los pies cuadrados terminados y el
valor tasado de impuestos para las viviendas en el condado de King. En lugar de trazar puntos, que
aparecerían como una nube oscura monolítica, agrupamos los registros en contenedores
hexagonales y trazamos los hexágonos con un color que indica el número de registros en ese
contenedor. En este gráfico, la relación positiva entre los pies cuadrados y el valor de tasación fiscal es
clara. Una característica interesante es el indicio de bandas adicionales por encima de la banda
principal (la más oscura) en la parte inferior, lo que indica hogares que tienen los mismos pies
cuadrados que los de la banda principal pero un valor fiscal más alto.

Figura 1-8 fue generado por el poderoso R paquete ggplot2, desarrollado por Hadley Wickham
[ggplot2]. ggplot2 es una de varias bibliotecas de software nuevas para el análisis visual
exploratorio avanzado de datos; ver“Visualización de múltiples variables” en la página 43:

ggplot(kc_tax0, (aes(X=SqFtTotLiving, y=TaxAssessedValue))) +


stat_binhex(color='blanco') +
theme_bw() +
scale_fill_gradient(bajo='blanco', elevado='negro') +
laboratorios(X='Pies cuadrados terminados', y='Valor tasado por impuestos')

En Pitón, Las parcelas de agrupamiento hexagonales están fácilmente disponibles utilizando el pandas método de

marco de datos hexbin:

hacha = kc_tax0.gráfico.hexbin(X='SqFtTotLiving', y='TaxAssessedValue',


tamaño de la cuadrícula=30, sharex=Falso, figsize=(5, 4))
hacha.set_xlabel('Pies cuadrados terminados')
hacha.set_ylabel('Valor tasado por impuestos')

Explorando dos o más variables | 37


Figura 1-8. Agrupación hexagonal para el valor tasado por impuestos frente a los pies cuadrados terminados

Figura 1-9 utiliza contornos superpuestos en un diagrama de dispersión para visualizar la relación
entre dos variables numéricas. Los contornos son esencialmente un mapa topográfico a dos
variables; cada banda de contorno representa una densidad específica de puntos, que aumenta a
medida que uno se acerca a un "pico". Esta trama muestra una historia similar aFigura 1-8: hay un
pico secundario "al norte" del pico principal. Este gráfico también se creó utilizandoggplot2 con el
incorporado geom_density2d función:

ggplot(kc_tax0, aes(SqFtTotLiving, TaxAssessedValue)) +


theme_bw() +
geom_point(alfa=0,1) +
geom_density2d(color='blanco') +
laboratorios(X='Pies cuadrados terminados', y='Valor tasado por impuestos')

La seaborn kdeplot funcionar en Pitón crea un gráfico de contorno:

hacha = sns.kdeplot(kc_tax0.SqFtTotLiving, kc_tax0.TaxAssessedValue, hacha=hacha)


hacha.set_xlabel('Pies cuadrados terminados')
hacha.set_ylabel('Valor tasado por impuestos')

38 | Capítulo 1: Análisis de datos exploratorios


Figura 1-9. Gráfica de contorno para el valor tasado por impuestos frente a los pies cuadrados terminados

Se utilizan otros tipos de gráficos para mostrar la relación entre dos variables numéricas, que incluyen
mapas de calor. Los mapas de calor, el agrupamiento hexagonal y los gráficos de contorno dan una
representación visual de una densidad bidimensional. De esta forma, son análogos naturales a los
histogramas y diagramas de densidad.

Dos variables categóricas


Una forma útil de resumir dos variables categóricas es una tabla de contingencia, una tabla de
conteos por categoría. Tabla 1-8 muestra la tabla de contingencia entre la calificación de un préstamo
personal y el resultado de ese préstamo. Esto se toma de los datos proporcionados por Lending Club,
líder en el negocio de préstamos entre pares. La nota va de A (alta) a G (baja). El resultado está
totalmente pagado, actual, atrasado o cancelado (no se espera que se cobre el saldo del préstamo).
Esta tabla muestra los porcentajes de recuento y fila. Los préstamos de alto grado tienen un
porcentaje muy bajo de retrasos / cancelaciones en comparación con los préstamos de grado inferior.

Explorando dos o más variables | 39


Tabla 1-8. Tabla de contingencia de grado y estado del préstamo

Grado cargado de corriente Totalmente pagado tarde Total

A 1562 50051 20408 469 72490

0.022 0,690 0,282 0,006 0,161

B 5302 93852 31160 2056 132370


0,040 0,709 0,235 0,016 0,294

C 6023 88928 23147 2777 120875


0,050 0,736 0,191 0.023 0,268

D 5007 53281 13681 2308 74277


0,067 0,717 0,184 0,031 0,165

mi 2842 24639 5949 1374 34804


0.082 0,708 0,171 0.039 0.077

F 1526 8444 2328 606 12904

0,118 0,654 0,180 0.047 0,029

GRAMO 409 1990 643 199 3241


0,126 0,614 0,198 0.061 0,007

Total 22671 321185 97316 9789 450961

Las tablas de contingencia solo pueden considerar recuentos o también pueden incluir porcentajes
totales y de columna. Las tablas dinámicas en Excel son quizás la herramienta más común utilizada
para crear tablas de contingencia. EnR, la CrossTable función en el descr paquete produce tablas de
contingencia, y el siguiente código se utilizó para crear Tabla 1-8:

Biblioteca(descr)
x_tab <- CrossTable(lc_loansPScalificación, lc_loansPSestado,
prop.c=FALSO, prop.chisq=FALSO, prop.t=FALSO)

La tabla dinámica El método crea la tabla dinámica en Pitón. La aggfunc El argumento nos permite
obtener los recuentos. Calcular los porcentajes es un poco más complicado:

tabulación cruzada = lc_loans.tabla dinámica(índice='calificación', columnas='estado',


aggfunc=lambda X: len(X), márgenes=Cierto)

df = tabulación cruzada.loc['A':'GRAMO',:].Copiar()
df.loc[:,'Descargado':'Tarde'] = df.loc[:,'Descargado':'Tarde'].div(df['Todas'],
eje=0)
df['Todas'] = df['Todas'] / suma(df['Todas'])
perc_crosstab = df

La márgenes El argumento de palabra clave agregará las sumas de columna y fila.

Creamos una copia de la tabla dinámica, ignorando las sumas de las columnas.

Dividimos las filas con la suma de las filas.

40 | Capítulo 1: Análisis de datos exploratorios


Dividimos el 'Todas' columna por su suma.

Datos categóricos y numéricos


Diagramas de caja (ver “Percentiles y diagramas de caja” en la página 20) son una forma sencilla de
comparar visualmente las distribuciones de una variable numérica agrupada según una variable
categórica. Por ejemplo, es posible que deseemos comparar cómo varía el porcentaje de retrasos en
los vuelos entre las aerolíneas.Figura 1-10 muestra el porcentaje de vuelos en un mes que se
retrasaron cuando el retraso estaba bajo el control de la aerolínea:

diagrama de caja(pct_carrier_delay ~ aerolínea, datos=airlines_stats, ylim=C(0, 50))

La diagrama de caja de los pandas el método toma el por argumento que divide el conjunto de datos en grupos y
crea los diagramas de caja individuales:

hacha = airlines_stats.diagrama de caja(por='aerolínea', columna='pct_carrier_delay')


hacha.set_xlabel('')
hacha.set_ylabel('Diario % of Vuelos retrasados ')
plt.subtítulo('')

Figura 1-10. Diagrama de caja del porcentaje de retrasos de la aerolínea por transportista

Explorando dos o más variables | 41


Alaska se destaca por tener la menor cantidad de retrasos, mientras que American tiene la mayor cantidad
de retrasos: el cuartil inferior de American es más alto que el cuartil superior de Alaska.

A trama de violín, presentado por [Hintze-Nelson-1998], es una mejora del diagrama de caja y
traza la densidad estimada con la densidad en el eje y. La densidad se refleja y se voltea, y la
forma resultante se rellena, creando una imagen que se asemeja a un violín. La ventaja de un
diagrama de violín es que puede mostrar matices en la distribución que no son perceptibles en
un diagrama de caja. Por otro lado, la gráfica de caja muestra más claramente los valores
atípicos en los datos. Enggplot2, la función geom_violin se puede utilizar para crear una trama de
violín de la siguiente manera:

ggplot(datos=airlines_stats, aes(aerolínea, pct_carrier_delay)) +


ylim(0, 50) +
geom_violin() +
laboratorios(X='', y='% Diario de vuelos retrasados')

Las parcelas de violín están disponibles con el violín método del marinero paquete:

hacha = sns.violín(airlines_stats.aerolínea, airlines_stats.pct_carrier_delay,


interno='cuartilla', color='blanco')
hacha.set_xlabel('')
hacha.set_ylabel('Diario % of Vuelos retrasados ')

La gráfica correspondiente se muestra en Figura 1-11. El gráfico de violín muestra una


concentración en la distribución cercana a cero para Alaska y, en menor medida, Delta. Este
fenómeno no es tan obvio en el diagrama de caja. Puede combinar un diagrama de violín con
un diagrama de caja agregandogeom_boxplot a la trama (aunque esto funciona mejor cuando se
utilizan colores).

42 | Capítulo 1: Análisis de datos exploratorios


Figura 1-11. Gráfico de violín del porcentaje de retrasos de las aerolíneas por aerolínea

Visualización de múltiples variables

Los tipos de gráficos utilizados para comparar dos variables (diagramas de dispersión, agrupamiento
hexagonal y diagramas de caja) se extienden fácilmente a más variables mediante la noción de
acondicionamiento. Como ejemplo, mire hacia atrás en Figura 1-8, que mostró la relación entre los
pies cuadrados terminados de las casas y sus valores de tasación fiscal. Observamos que parece
haber un grupo de hogares que tienen un valor fiscal más alto por pie cuadrado. Buceando más
profundoFigura 1-12 tiene en cuenta el efecto de la ubicación trazando los datos para un conjunto de
códigos postales. Ahora el panorama es mucho más claro: el valor fiscal es mucho más alto en
algunos códigos postales (98105, 98126) que en otros (98108, 98188). Esta disparidad da lugar a los
clusters observados enFigura 1-8.

Explorando dos o más variables | 43


Creamos Figura 1-12 utilizando ggplot2 y la idea de facetas o una variable acondicionadora (en
este caso, código postal):

ggplot(subconjunto(kc_tax0, Código postal %en% C(98188, 98105, 98108, 98126)),


aes(X=SqFtTotLiving, y=TaxAssessedValue)) +
stat_binhex(color='blanco') +
theme_bw() +
scale_fill_gradient(bajo='blanco', elevado='azul') +
laboratorios(X='Pies cuadrados terminados', y='Valor tasado por impuestos') +
facet_wrap('Código postal')

Utilizar el ggplot funciones facet_wrap y facet_grid para especificar la variable de


condicionamiento.

Figura 1-12. Valor tasado por impuestos versus pies cuadrados terminados por código postal

La mayoría Pitón los paquetes basan sus visualizaciones en Matplotlib. Si bien en principio
es posible crear gráficos facetados utilizando Matplotlib, el código puede complicarse. Por
suerte,marinero tiene una forma relativamente sencilla de crear estos gráficos:

44 | Capítulo 1: Análisis de datos exploratorios


códigos ZIP = [98188, 98105, 98108, 98126]
kc_tax_zip = kc_tax0.loc[kc_tax0.Código postal.es en(códigos ZIP) ,:]
kc_tax_zip

def hexbin(X, y, color, **kwargs):


cmap = sns.light_palette(color, as_cmap=Cierto)
plt.hexbin(X, y, tamaño de la cuadrícula=25, cmap=cmap, **kwargs)

gramo = sns.FacetGrid(kc_tax_zip, columna='Código postal', col_wrap=2)


gramo.mapa(hexbin, 'SqFtTotLiving', 'TaxAssessedValue',
grado=[0, 3500, 0, 700000])
gramo.set_axis_labels('Pies cuadrados terminados', 'Valor tasado por impuestos')
gramo.set_titles('Código postal {col_name: .0f}')

Usa los argumentos columna y fila para especificar las variables condicionantes. Para una sola
variable de acondicionamiento, usecolumna Juntos con col_wrap para envolver los gráficos
facetados en varias filas.

La mapa el método llama al hexbin función con subconjuntos del conjunto de datos original para
los diferentes códigos postales. grado define los límites de los ejes xey.

El concepto de condicionamiento de variables en un sistema gráfico fue pionero con


Gráficos enrejados, desarrollado por Rick Becker, Bill Cleveland y otros en Bell Labs
[Trellis- Gráficos]. Esta idea se ha propagado a varios sistemas gráficos modernos, como el
enrejado [enrejado] y ggplot2 paquetes en R y el marinero [marinero] y Bokeh
[bokeh] módulos en Pitón. Las variables condicionantes también son parte integral de las plataformas de
inteligencia empresarial como Tableau y Spotfire. Con el advenimiento de una gran potencia informática, las
plataformas de visualización modernas se han movido mucho más allá de los humildes comienzos del
análisis exploratorio de datos. Sin embargo, los conceptos y herramientas clave desarrollados hace medio
siglo (por ejemplo, diagramas de caja simples) todavía forman la base de estos sistemas.

Ideas claves

• El agrupamiento hexagonal y los gráficos de contorno son herramientas útiles que permiten
el examen gráfico de dos variables numéricas a la vez, sin verse abrumados por grandes
cantidades de datos.

• Las tablas de contingencia son la herramienta estándar para observar los recuentos de dos
variables de categoría.

• Los diagramas de caja y los diagramas de violín le permiten graficar una variable numérica contra una variable

categórica.

Explorando dos o más variables | 45


Otras lecturas
• Ciencia de datos moderna con R de Benjamin Baumer, Daniel Kaplan y Nicholas
Horton (Chapman & Hall / CRC Press, 2017) tiene una excelente presentación de "una
gramática para gráficos" (la "gg" en ggplot).
• ggplot2: Gráficos elegantes para análisis de datos de Hadley Wickham (Springer,
2009) es un excelente recurso del creador de ggplot2.

• Josef Fruehwald tiene un tutorial basado en la web sobre ggplot2.

Resumen
El análisis exploratorio de datos (EDA), iniciado por John Tukey, sentó las bases para el
campo de la ciencia de datos. La idea clave de EDA es que el primer y más importante
paso en cualquier proyecto basado en datos esmira los datos. Al resumir y visualizar los
datos, puede obtener una valiosa intuición y comprensión del proyecto.

Este capítulo ha revisado conceptos que van desde métricas simples, como estimaciones de
ubicación y variabilidad, hasta presentaciones visuales ricas que exploran las relaciones entre
múltiples variables, como en Figura 1-12. El diverso conjunto de herramientas y técnicas que
está desarrollando la comunidad de código abierto, combinado con la expresividad delR
y Pitón idiomas, ha creado una plétora de formas de explorar y analizar datos. El análisis
exploratorio debe ser la piedra angular de cualquier proyecto de ciencia de datos.

46 | Capítulo 1: Análisis de datos exploratorios


CAPITULO 2

Distribuciones de datos y muestreo

Un concepto erróneo popular sostiene que la era de los macrodatos significa el fin de la necesidad de
muestreo. De hecho, la proliferación de datos de diferente calidad y relevancia refuerza la necesidad del
muestreo como herramienta para trabajar de manera eficiente con una variedad de datos y minimizar el
sesgo. Incluso en un proyecto de big data, los modelos predictivos generalmente se desarrollan y se ponen a
prueba con muestras. Las muestras también se utilizan en pruebas de varios tipos (por ejemplo, comparar el
efecto de los diseños de páginas web en los clics).

Figura 2-1 muestra un esquema que sustenta los conceptos que discutiremos en este capítulo:
distribuciones de datos y muestreo. El lado izquierdo representa una población que, en las
estadísticas, se supone que sigue un subyacente perodesconocido distribución. Todo lo que
está disponible es elmuestra datos y su distribución empírica, que se muestran en el lado
derecho. Para ir del lado izquierdo al lado derecho, unmuestreo se utiliza el procedimiento
(representado por una flecha). Las estadísticas tradicionales se centraron mucho en el lado
izquierdo, utilizando teorías basadas en supuestos sólidos sobre la población. Las estadísticas
modernas se han movido hacia el lado derecho, donde tales suposiciones no son necesarias.

En general, los científicos de datos no deben preocuparse por la naturaleza teórica del lado izquierdo
y, en cambio, deben centrarse en los procedimientos de muestreo y los datos disponibles. Hay
algunas excepciones notables. A veces, los datos se generan a partir de un proceso físico que se
puede modelar. El ejemplo más simple es lanzar una moneda: sigue una distribución bino‐ mial.
Cualquier situación binomial de la vida real (compre o no compre, fraude o no fraude, haga clic o no
haga clic) se puede modelar de manera efectiva con una moneda (con probabilidad modificada de
caer cara, por supuesto). En estos casos, podemos obtener información adicional utilizando nuestro
conocimiento de la población.

47
Figura 2-1. Población versus muestra

Muestreo aleatorio y sesgo de la muestra


A muestra es un subconjunto de datos de un conjunto de datos más grande; Los estadísticos llaman a este
conjunto de datos más grande elpoblación. Una población en estadística no es lo mismo que en biología: es
un conjunto de datos grande y definido (pero a veces teórico o imaginario).

Muestreo aleatorio es un proceso en el que cada miembro disponible de la población


muestreada tiene la misma probabilidad de ser elegido para la muestra en cada sorteo. La
muestra resultante se llamamuestra aleatoria simple. El muestreo se puede hacer con
reemplazo, en el que las observaciones se vuelven a poner en la población después de cada
sorteo para una posible reselección futura. O se puede hacersin reemplazo, en cuyo caso las
observaciones, una vez seleccionadas, no están disponibles para futuros sorteos.

La calidad de los datos a menudo es más importante que la cantidad de datos cuando se hace una
estimación o un modelo basado en una muestra. La calidad de los datos en la ciencia de datos implica la
integridad, la coherencia del formato, la limpieza y la precisión de los puntos de datos individuales. La
estadística agrega la noción derepresentatividad.

48 | Capítulo 2: Distribuciones de datos y muestreo


Términos clave para el muestreo aleatorio

Muestra
Un subconjunto de un conjunto de datos más grande.

Población
El conjunto de datos más grande o la idea de un conjunto de datos.

N (n)
El tamaño de la población (muestra).

Muestreo aleatorio
Dibujar elementos en una muestra al azar.

Muestreo estratificado
División de la población en estratos y muestreo aleatorio de cada estrato.

Estrato (pl., Estratos)


Un subgrupo homogéneo de una población con características comunes.

Muestra aleatoria simple


La muestra que resulta de un muestreo aleatorio sin estratificar la
población.
Parcialidad

Error sistematico.

Sesgo de la muestra

Una muestra que tergiversa a la población.

El ejemplo clásico es el Compendio literario encuesta de 1936 que predijo una victoria de Alf
Landon sobre Franklin Roosevelt. LaCompendio literario, un periódico líder del día, encuestó a
toda su base de suscriptores más listas adicionales de individuos, un total de más de 10
millones de personas, y predijo una victoria aplastante para Landon. George Gallup, fundador
de Gallup Poll, realizó encuestas quincenales a solo 2.000 personas y predijo con precisión una
victoria de Roosevelt. La diferencia radica en la selección de los encuestados.

La Compendio literario optó por la cantidad, prestando poca atención al método de selección.
Terminaron encuestando a aquellos con un estatus socioeconómico relativamente alto (sus propios
suscriptores, más aquellos que, en virtud de poseer lujos como teléfonos y automóviles, aparecían en
las listas de los especialistas en marketing). El resultado fuesesgo de la muestra; es decir, la muestra
era diferente de alguna manera significativa y no aleatoria de la población más grande que estaba
destinada a representar. El terminono aleatorio es importante: casi ninguna muestra, incluidas las
aleatorias, será exactamente representativa de la población. El sesgo de la muestra ocurre cuando la
diferencia es significativa y se puede esperar que continúe para otras muestras extraídas de la misma
manera que la primera.

Muestreo aleatorio y sesgo de la muestra | 49


Sesgo de muestreo de autoselección

Las reseñas de restaurantes, hoteles, cafés, etc. que lee en sitios de redes
sociales como Yelp son propensas a sesgar porque las personas que las
envían no se seleccionan al azar; más bien, ellos mismos han tomado la
iniciativa de escribir. Esto conduce a un sesgo de autoselección: las personas
motivadas para escribir reseñas pueden haber tenido malas experiencias,
pueden tener una asociación con el establecimiento o simplemente pueden
ser un tipo de persona diferente de las que no escriben reseñas. Tenga en
cuenta que, si bien las muestras de autoselección pueden ser indicadores
poco confiables del verdadero estado de las cosas, pueden ser más confiables
simplemente comparando un establecimiento con uno similar; el mismo sesgo
de autoselección podría aplicarse a cada uno.

Parcialidad

El sesgo estadístico se refiere a errores de medición o muestreo que son sistemáticos y se


producen por el proceso de medición o muestreo. Debe hacerse una distinción importante
entre los errores debidos al azar y los errores debidos al sesgo. Considere el proceso físico de
un arma que dispara a un objetivo. No golpeará el centro absoluto del objetivo todo el tiempo,
ni siquiera mucho. Un proceso imparcial producirá un error, pero es aleatorio y no tiende
fuertemente en ninguna dirección (verFigura 2-2). Los resultados mostrados enFigura 2-3
muestran un proceso sesgado: todavía hay un error aleatorio tanto en la dirección x como en la
y, pero también hay un sesgo. Los disparos tienden a caer en el cuadrante superior derecho.

Figura 2-2. Diagrama de dispersión de disparos de un arma con puntería verdadera

50 | Capítulo 2: Distribuciones de datos y muestreo


Figura 2-3. Diagrama de dispersión de disparos de un arma con puntería sesgada

El sesgo se presenta en diferentes formas y puede ser observable o invisible. Cuando un resultado sugiere sesgo (por
ejemplo, por referencia a un punto de referencia o valores reales), a menudo es un indicador de que se ha
especificado incorrectamente un modelo estadístico o de aprendizaje automático, o que se ha omitido una variable
importante.

Selección aleatoria
Para evitar el problema del sesgo muestral que Compendio literario para predecir Landon
sobre Roosevelt, George Gallup (mostrado en Figura 2-4) optó por métodos escogidos
científicamente para lograr una muestra que fuera representativa del electorado votante de EE.
UU. Ahora hay una variedad de métodos para lograr la representatividad, pero en el corazón de
todos ellos se encuentramuestreo aleatorio.

Figura 2-4. George Gallup, catapultado a la fama por el fracaso de los "grandes datos" del Literary Digest

El muestreo aleatorio no siempre es fácil. La definición adecuada de una población accesible es clave.
Supongamos que queremos generar un perfil representativo de los clientes y necesitamos realizar
una encuesta piloto a los clientes. La encuesta debe ser representativa pero requiere mucha mano de
obra.

Muestreo aleatorio y sesgo de la muestra | 51


Primero, necesitamos definir quién es un cliente. Podríamos seleccionar todos los registros de
clientes donde el monto de la compra> 0. ¿Incluimos todos los clientes anteriores? ¿Incluimos
reembolsos? ¿Compras de prueba internas? Revendedores? ¿Agente de facturación y cliente?

A continuación, necesitamos especificar un procedimiento de muestreo. Podría ser "seleccionar 100 clientes al azar".
Cuando se trata de una muestra de un flujo (p. Ej., Transacciones de clientes en tiempo real o visitantes de la web), las
consideraciones de tiempo pueden ser importantes (p. Ej., Un visitante de la web a las 10 a. M. En un día laborable
puede ser diferente de un visitante de la web a las 10 p. M. en un fin de semana).

En muestreo estratificado, la población se divide en Estratos, y se toman muestras aleatorias de cada


estrato. Los encuestadores políticos pueden buscar conocer las preferencias electorales de blancos,
negros e hispanos. Una muestra aleatoria simple tomada de la población produciría muy pocos
negros e hispanos, por lo que esos estratos podrían sobreponderarse en el muestreo estratificado
para producir tamaños de muestra equivalentes.

Tamaño versus calidad: ¿Cuándo importa el tamaño?

En la era del big data, a veces es sorprendente que cuanto más pequeño, mejor. El tiempo y el
esfuerzo dedicados al muestreo aleatorio no solo reduce el sesgo, sino que también permite una
mayor atención a la exploración y la calidad de los datos. Por ejemplo, los datos faltantes y los valores
atípicos pueden contener información útil. Puede resultar prohibitivamente caro rastrear valores
perdidos o evaluar valores atípicos en millones de registros, pero hacerlo en una muestra de varios
miles de registros puede ser factible. El trazado de datos y la inspección manual se atascan si hay
demasiados datos.

Así que cuando están se necesitan grandes cantidades de datos?

El escenario clásico para el valor de big data es cuando los datos no solo son grandes sino
también escasos. Considere las consultas de búsqueda recibidas por Google, donde las
columnas son términos, las filas son consultas de búsqueda individuales y los valores de celda
son 0 o 1, dependiendo de si una consulta contiene un término. El objetivo es determinar el
mejor destino de búsqueda previsto para una consulta determinada. Hay más de 150.000
palabras en inglés y Google procesa más de un billón de consultas al año. Esto produce una
matriz enorme, la gran mayoría de cuyas entradas son "0".

Este es un verdadero problema de big data: solo cuando se acumulan cantidades tan enormes de datos, se
pueden obtener resultados de búsqueda efectivos para la mayoría de las consultas. Y cuantos más datos se
acumulen, mejores serán los resultados. Para los términos de búsqueda populares, esto no es un problema:
se pueden encontrar datos efectivos con bastante rapidez para un puñado de temas extremadamente
populares que son tendencia en un momento particular. El valor real de la tecnología de búsqueda moderna
radica en la capacidad de devolver resultados detallados y útiles para una gran variedad de consultas de
búsqueda, incluidas aquellas que ocurren con una frecuencia, digamos, de solo una en un millón.

Considere la frase de búsqueda "Ricky Ricardo y Caperucita Roja". En los primeros días de
Internet, esta consulta probablemente habría arrojado resultados sobre el líder de la
banda Ricky Ricardo, el programa de televisiónMe encanta Lucy en el que ese personaje

52 | Capítulo 2: Distribuciones de datos y muestreo


apareció, y la historia de los niños Caperucita roja. Ambos elementos individuales habrían
tenido muchas búsquedas para hacer referencia, pero la combinación habría tenido muy pocas.
Más tarde, ahora que se han acumulado billones de consultas de búsqueda, esta consulta de
búsqueda devuelve laMe encanta Lucy episodio en el que Ricky narra, de manera dramática, la
Caperucita roja historia a su hijo pequeño en una mezcla cómica de inglés y español.

Tenga en cuenta que el número de pertinente registros, aquellos en los que aparece esta
consulta de búsqueda exacta, o algo muy similar (junto con información sobre el enlace en el
que la gente finalmente hizo clic), puede que solo necesiten miles para que sean efectivos. Sin
embargo, se necesitan muchos billones de puntos de datos para obtener estos registros
pertinentes (y el muestreo aleatorio, por supuesto, no ayudará). Ver también“Distribuciones de
cola larga” en la página 73.

Media muestral versus media poblacional

El símbolo X (se pronuncia "x-bar") se utiliza para representar la media de una muestra de una
población, mientras que μ se utiliza para representar la media de una población. ¿Por qué hacer la
distinción? Se observa información sobre muestras y la información sobre poblaciones grandes a
menudo se infiere a partir de muestras más pequeñas. A los estadísticos les gusta mantener las dos
cosas separadas en la simbología.

Ideas claves

• Incluso en la era del big data, el muestreo aleatorio sigue siendo una flecha importante en el carcaj
del científico de datos.

• El sesgo ocurre cuando las mediciones u observaciones son sistemáticamente erróneas


porque no son representativas de la población completa.

• La calidad de los datos es a menudo más importante que la cantidad de datos, y el muestreo
aleatorio puede reducir el sesgo y facilitar la mejora de la calidad que de otro modo sería
prohibitivamente costoso.

Otras lecturas
• Se puede encontrar una revisión útil de los procedimientos de muestreo en el capítulo de
Ronald Fricker "Métodos de muestreo para encuestas en línea" en El manual SAGE de
métodos de investigación en línea, 2a ed., Editado por Nigel G. Fielding, Raymond M. Lee y
Grant Blank (Publicaciones SAGE, 2016). Este capítulo incluye una revisión de las
modificaciones al muestreo aleatorio que se utilizan a menudo por razones prácticas de
costo o viabilidad.

Muestreo aleatorio y sesgo de la muestra | 53


• La historia del Compendio literario la falla de la encuesta se puede encontrar en el Sitio web de Capital
Century.

Sesgo de selección

Parafraseando a Yogi Berra: si no sabes lo que estás buscando, mira lo


suficiente y lo encontrarás.
El sesgo de selección se refiere a la práctica de elegir datos de forma selectiva, consciente
o inconscientemente, de manera que lleve a una conclusión engañosa o efímera.

Términos clave para el sesgo de selección

Sesgo de selección

Sesgo resultante de la forma en que se seleccionan las observaciones.

Espionaje de datos
Amplia búsqueda de datos en busca de algo interesante.

Amplio efecto de búsqueda

Sesgo o no reproducibilidad resultante del modelado de datos repetidos o modelado de


datos con un gran número de variables predictoras.

Si especifica una hipótesis y realiza un experimento bien diseñado para probarla, puede
tener una gran confianza en la conclusión. Sin embargo, esto no suele ser lo que ocurre. A
menudo, uno mira los datos disponibles y trata de discernir patrones. Pero, ¿son reales
los patrones? ¿O son solo el producto deespionaje de datos¿Es decir, una búsqueda
exhaustiva de los datos hasta que surge algo interesante? Hay un dicho entre los
estadísticos: "Si torturas los datos el tiempo suficiente, tarde o temprano confesarán".

La diferencia entre un fenómeno que verifica cuando prueba una hipótesis utilizando
un experimento y un fenómeno que descubre al examinar los datos disponibles se
puede aclarar con el siguiente experimento mental.

Imagina que alguien te dice que puede lanzar una moneda y hacer que caiga cara en los próximos 10
lanzamientos. Usted los desafía (el equivalente a un experimento) y ellos proceden a lanzar la moneda
10 veces, con todos los lanzamientos de cara al suelo. Claramente, le atribuyes un talento especial a
esta persona: la probabilidad de que 10 lanzamientos de moneda salgan cara por casualidad es de 1
en 1.000.

Ahora imagine que el locutor de un estadio deportivo pide a las 20.000 personas presentes que
lancen una moneda 10 veces y que informen a un acomodador si obtienen 10 caras seguidas.
La posibilidad de quealguien en el estadio obtendrá 10 caras es extremadamente alto (más del
99%, es 1 menos la probabilidad de que nadie obtenga 10 caras). Claramente,

54 | Capítulo 2: Distribuciones de datos y muestreo


seleccionar después del hecho a la persona (o personas) que obtiene 10 cabezas en el estadio no indica que
tengan ningún talento especial; lo más probable es que sea suerte.

Dado que la revisión repetida de grandes conjuntos de datos es una propuesta de valor clave en la ciencia de
datos, el sesgo de selección es algo de lo que preocuparse. Una forma de sesgo de selección que preocupa
especialmente a los científicos de datos es lo que John Elder (fundador de Elder Research, una respetada
consultora de minería de datos) llamagran efecto de búsqueda. Si ejecuta repetidamente diferentes modelos
y hace diferentes preguntas con un gran conjunto de datos, seguramente encontrará algo interesante. Pero,
¿el resultado que encontró realmente es algo interesante, o es una posibilidad atípica?

Podemos protegernos contra esto mediante el uso de un conjunto de reserva y, a veces, más de un conjunto
de reserva, contra el cual validar el rendimiento. Elder también aboga por el uso de lo que él llamabarajar el
objetivouna prueba de permutación, en esencia) para probar la validez de las asociaciones predictivas que
sugiere un modelo de minería de datos.

Las formas típicas de sesgo de selección en las estadísticas, además del vasto efecto de búsqueda,
incluyen el muestreo no aleatorio (ver “Muestreo aleatorio y sesgo de muestra” en la página 48),
seleccionar datos, seleccionar intervalos de tiempo que acentúan un efecto estadístico particular y
detener un experimento cuando los resultados parecen "interesantes".

Regresión a la media
Regresión a la media se refiere a un fenómeno que involucra mediciones sucesivas en una variable
dada: las observaciones extremas tienden a ser seguidas por otras más centrales. Dar un enfoque y
un significado especiales al valor extremo puede conducir a una forma de sesgo de selección.

Los fanáticos de los deportes están familiarizados con el fenómeno del “novato del año, caída del segundo
año”. Entre los atletas que comienzan su carrera en una temporada determinada (la clase de novatos),
siempre hay uno que se desempeña mejor que todos los demás. Generalmente, este "novato del año" no lo
hace tan bien en su segundo año. ¿Por qué no?

En casi todos los deportes importantes, al menos en los que se juegan con pelota o disco, hay dos
elementos que influyen en el rendimiento general:

• Habilidad

• Suerte

La regresión a la media es una consecuencia de una forma particular de sesgo de selección. Cuando
seleccionamos al novato con la mejor actuación, es probable que la habilidad y la buena suerte
contribuyan. En su próxima temporada, la habilidad seguirá ahí, pero muy a menudo la suerte no
estará, por lo que su rendimiento disminuirá, retrocederá. El fenómeno fue identificado por primera
vez por Francis Galton en 1886.[Galton-1886], quien escribió sobre esto en conexión

Sesgo de selección | 55
con tendencias genéticas; Por ejemplo, los hijos de hombres extremadamente altos tienden a no ser
tan altos como su padre (verFigura 2-5).

Figura 2-5. El estudio de Galton que identificó el fenómeno de regresión a la media

La regresión a la media, que significa "retroceder", es distinta del


método de modelado estadístico de regresión lineal, en el que se
estima una relación lineal entre las variables predictoras y una
variable de resultado.

Ideas claves

• Especificar una hipótesis y luego recopilar datos siguiendo los principios de aleatorización y
muestreo aleatorio asegura que no haya sesgos.

• Todas las demás formas de análisis de datos corren el riesgo de sesgo resultante del proceso de
recopilación / análisis de datos (ejecución repetida de modelos en la minería de datos, espionaje de datos
en la investigación y selección posterior a los hechos de eventos interesantes).

56 | Capítulo 2: Distribuciones de datos y muestreo


Otras lecturas
• Artículo de Christopher J. Pannucci y Edwin G. Wilkins "Identificar y evitar sesgos en la
investigación" en (sorprendentemente no es una revista de estadísticas) Cirugía plástica y
reconstructiva (Agosto de 2010) tiene una excelente revisión de varios tipos de sesgos que
pueden entrar en la investigación, incluido el sesgo de selección.

• Artículo de Michael Harris "Engañado por la aleatoriedad a través del sesgo de selección" proporciona una
revisión interesante de las consideraciones de sesgo de selección en los esquemas de negociación del mercado
de valores, desde la perspectiva de los comerciantes.

Distribución muestral de una estadística


El termino distribución muestral de una estadística se refiere a la distribución de alguna estadística de
muestra sobre muchas muestras extraídas de la misma población. Gran parte de la estadística clásica
se ocupa de hacer inferencias de muestras (pequeñas) a poblaciones (muy grandes).

Términos clave para la distribución de muestras

Estadística de muestra

Métrica calculada para una muestra de datos extraídos de una población más grande.

Distribución de datos
La distribución de frecuencia del individuo valores en un conjunto de datos.

Distribución muestral
La distribución de frecuencia de un estadística de muestra sobre muchas muestras o remuestreos.

Teorema del límite central


La tendencia de la distribución muestral a adoptar una forma normal a medida que aumenta el tamaño de la

muestra.

Error estándar
La variabilidad (desviación estándar) de una muestra estadística sobre muchas muestras (no
confundir con Desviación Estándar, que por sí solo, se refiere a la variabilidad de los datos
individuales valores).

Normalmente, una muestra se extrae con el objetivo de medir algo (con un estadística de muestra) o
modelar algo (con un modelo estadístico o de aprendizaje automático). Dado que nuestra estimación
o modelo se basa en una muestra, podría ser un error; podría ser diferente si tuviéramos que extraer
una muestra diferente. Por lo tanto, estamos interesados en cuán diferente podría ser; una
preocupación clave esvariabilidad muestral. Si tuviéramos muchos datos, podríamos extraer
muestras adicionales y observar la distribución de una estadística de muestra directamente.

Distribución muestral de una estadística | 57


Por lo general, calcularemos nuestra estimación o modelo utilizando todos los datos que estén
fácilmente disponibles, por lo que la opción de extraer muestras adicionales de la población no está
disponible.

Es importante distinguir entre la distribución de los puntos de datos


individuales, conocida como la distribución de datos, y la distribución de
una estadística de muestra, conocida como distribución muestral.

Es probable que la distribución de una estadística de muestra, como la media, sea más regular y con forma
de campana que la distribución de los datos en sí. Cuanto mayor sea la muestra en la que se basa la
estadística, más cierto es esto. Además, cuanto más grande sea la muestra, más estrecha será la distribución
del estadístico muestral.

Esto se ilustra en un ejemplo que utiliza los ingresos anuales de los solicitantes de préstamos al Lending‐ Club
(consulte “Un pequeño ejemplo: predecir el incumplimiento de los préstamos” en la página 239 para una descripción
de los datos). Tome tres muestras de estos datos: una muestra de 1000 valores, una muestra de
1000 medias de 5 valores y una muestra de 1000 medias de 20 valores. Luego trazar un
histograma de cada muestra para producirFigura 2-6.

Figura 2-6. Histograma de ingresos anuales de 1,000 solicitantes de préstamos (arriba), luego 1,000
medias de n = 5 solicitantes (centro) y finalmente 1,000 medias de n = 20 solicitantes (abajo)

58 | Capítulo 2: Distribuciones de datos y muestreo


El histograma de los valores de los datos individuales está ampliamente distribuido y sesgado hacia
valores más altos, como es de esperar con los datos de ingresos. Los histogramas de las medias de 5
y 20 son cada vez más compactos y con forma de campana. Aquí está elR código para generar estos
histogramas, utilizando el paquete de visualización ggplot2:

Biblioteca(ggplot2)
# tomar una muestra aleatoria simple
samp_data <- marco de datos(ingreso=muestra(ingresos_préstamos, 1000),
tipo='data_dist')
# tomar una muestra de medias de 5 valores
samp_mean_05 <- marco de datos(
ingreso = tocar(muestra(ingresos_préstamos, 1000*5),
reps(1:1000, reps(5, 1000)), DIVERTIDA=significar),
tipo = 'mean_of_5')
# tomar una muestra de medias de 20 valores
samp_mean_20 <- marco de datos(
ingreso = tocar(muestra(ingresos_préstamos, 1000*20),
reps(1:1000, reps(20, 1000)), DIVERTIDA=significar),
tipo = 'mean_of_20')
# enlazar data.frames y convertir el tipo en un factor
ingreso <- rbind(samp_data, samp_mean_05, samp_mean_20)
ingresoPStipo = factor(ingresoPStipo,
niveles=C('data_dist', 'mean_of_5', 'mean_of_20'),
etiquetas=C('Datos', 'Media de 5', 'Media de 20'))
# trazar los histogramas
ggplot(ingreso, aes(X=ingreso)) +
geom_histogram(contenedores=40) +
facet_grid(tipo ~ .)

La Pitón usos del código marinero's FacetGrid para mostrar los tres histogramas:

importar pandas como pd


importar marinero como sns

Data de muestra = pd.Marco de datos({


'ingreso': ingresos_préstamos.muestra(1000),
'tipo': 'Datos',
})
sample_mean_05 = pd.Marco de datos({
'ingreso': [ingresos_préstamos.muestra(5).significar() por _ en distancia(1000)],
'tipo': 'Media de 5',
})
sample_mean_20 = pd.Marco de datos({
'ingreso': [ingresos_préstamos.muestra(20).significar() por _ en distancia(1000)],
'tipo': 'Media de 20',
})
resultados = pd.concat([Data de muestra, sample_mean_05, sample_mean_20])

gramo = sns.FacetGrid(resultados, columna='tipo', col_wrap=1, altura=2, aspecto=2)


gramo.mapa(plt.hist, 'ingreso', distancia=[0, 200000], contenedores=40)

Distribución muestral de una estadística | 59


gramo.set_axis_labels('Ingreso', 'Contar')
gramo.set_titles('{col_name}')

Teorema del límite central

El fenómeno que acabamos de describir se denomina teorema del límite central. Dice que las
medias extraídas de múltiples muestras se asemejarán a la familiar curva normal en forma de
campana (ver "Distribución normal" en la página 69), incluso si la población de origen no se
distribuye normalmente, siempre que el tamaño de la muestra sea lo suficientemente grande y
la desviación de los datos de la normalidad no sea demasiado grande. El teorema del límite
central permite utilizar fórmulas de aproximación normal como la distribución t para calcular
distribuciones muestrales para inferencia, es decir, intervalos de confianza y pruebas de
hipótesis.

El teorema del límite central recibe mucha atención en los textos de estadística tradicionales porque
subyace en la maquinaria de las pruebas de hipótesis y los intervalos de confianza, que en sí mismos
ocupan la mitad del espacio en dichos textos. Los científicos de datos deben ser conscientes de este
papel; Sin embargo, dado que las pruebas formales de hipótesis y los intervalos de confianza juegan
un papel pequeño en la ciencia de datos,bootstrapver “El Bootstrap” en la página 61) está disponible
en cualquier caso, el teorema del límite central no es tan central en la práctica de la ciencia de datos.

Error estándar
La Error estándar es una única métrica que resume la variabilidad en la distribución muestral de una
estadística. El error estándar se puede estimar utilizando una estadística basada en la desviación
estándars de los valores de la muestra, y el tamaño de la muestra norte:

Error estándar = SE = s
norte

A medida que aumenta el tamaño de la muestra, el error estándar disminuye, correspondiente


a lo observado en Figura 2-6. La relación entre el error estándar y el tamaño de la muestra a
veces se denominaraíz cuadrada de n regla: para reducir el error estándar en un factor de 2, el
tamaño de la muestra debe aumentarse en un factor de 4.

La validez de la fórmula del error estándar surge del teorema del límite central. De hecho, no es
necesario confiar en el teorema del límite central para comprender el error estándar. Considere
el siguiente enfoque para medir el error estándar:

1. Recolecte varias muestras nuevas de la población.


2. Para cada nueva muestra, calcule la estadística (p. Ej., Media).

60 | Capítulo 2: Distribuciones de datos y muestreo


3. Calcule la desviación estándar de las estadísticas calculadas en el paso 2; use esto como su
estimación del error estándar.

En la práctica, este enfoque de recolectar nuevas muestras para estimar el error estándar
generalmente no es factible (y estadísticamente es un desperdicio). Afortunadamente, resulta que no
es necesario sacar muestras nuevas; en su lugar, puedes usaroreja remuestreos. En las estadísticas
modernas, el bootstrap se ha convertido en la forma estándar de estimar el error estándar. Se puede
utilizar para prácticamente cualquier estadística y no se basa en el teorema del límite central ni en
otros supuestos distributivos.

Desviación estándar versus error estándar

No confunda la desviación estándar (que mide la variabilidad de puntos


de datos individuales) con el error estándar (que mide la variabilidad de
una métrica de muestra).

Ideas claves

• La distribución de frecuencia de una estadística de muestra nos dice cómo esa métrica
resultaría diferente de una muestra a otra.

• Esta distribución muestral se puede estimar mediante bootstrap o mediante fórmulas que se
basan en el teorema del límite central.

• Una métrica clave que resume la variabilidad de una estadística de muestra es su error estándar.

Otras lecturas
De David Lane recurso multimedia en línea en estadística tiene una simulación útil que le permite
seleccionar una estadística de muestra, un tamaño de muestra y el número de iteraciones y visualizar
un histograma de la distribución de frecuencia resultante.

El Bootstrap
Una forma fácil y eficaz de estimar la distribución muestral de una estadística, o de los
parámetros del modelo, es extraer muestras adicionales, con reemplazo, de la muestra
misma y recalcular la estadística o modelo para cada nueva muestra. Este procedimiento
se llamaoreja, y no implica necesariamente suposiciones sobre la distribución normal de
los datos o de la estadística de la muestra.

El Bootstrap | 61
Términos clave para Bootstrap

Muestra de Bootstrap
Una muestra tomada con reemplazo de un conjunto de datos observados.

Remuestreo
El proceso de tomar muestras repetidas de datos observados; incluye procedimientos tanto de
correa de arranque como de permutación (barajado).

Conceptualmente, puede imaginar que el bootstrap replica la muestra original miles o


millones de veces, de modo que tenga una población hipotética que incorpore todo el
conocimiento de su muestra original (es más grande). A continuación, puede extraer
muestras de esta población hipotética con el fin de estimar una distribución muestral; ver
Figura 2-7.

Figura 2-7. La idea del bootstrap

En la práctica, no es necesario replicar la muestra una gran cantidad de veces. Simplemente


reemplazamos cada observación después de cada sorteo; es decir, nosotrosmuestra con reemplazo.
De esta manera, creamos efectivamente una población infinita en la que la probabilidad de que se
extraiga un elemento permanece sin cambios de un sorteo a otro. El algoritmo para un remuestreo
bootstrap de la media, para una muestra de tamañonorte, es como sigue:

1. Dibuje un valor de muestra, regístrelo y luego reemplácelo.

2. Repetir norte veces.

3. Registre la media del norte valores remuestreados.

4. Repite los pasos 1 a 3. R veces.

5. Utilice el R resultados para:

62 | Capítulo 2: Distribuciones de datos y muestreo


una. Calcule su desviación estándar (esto estima el error estándar medio de la
muestra).
B. Genere un histograma o diagrama de caja.

C. Encuentra un intervalo de confianza.

R, el número de iteraciones del bootstrap se establece de forma algo arbitraria. Cuantas más
iteraciones haga, más precisa será la estimación del error estándar o el intervalo de confianza.
El resultado de este procedimiento es un conjunto inicial de estadísticas de muestra o
parámetros estimados del modelo, que luego puede examinar para ver qué tan variables son.

La R paquete bota combina estos pasos en una función. Por ejemplo, lo siguiente aplica el
bootstrap a los ingresos de las personas que solicitan préstamos:

Biblioteca(bota)
stat_fun <- función(X, idx) mediana(X[idx])
boot_obj <- bota(ingresos_préstamos, R=1000, estadística=stat_fun)

La función stat_fun calcula la mediana para una muestra dada especificada por el índice
idx. El resultado es el siguiente:

Estadísticas de Bootstrap :
sesgo original std. error
t1* 62000 -70.5595 209.1515

La estimación original de la mediana es $ 62 000. La distribución de bootstrap indica que la


estimación tiene unparcialidad de aproximadamente - $ 70 y un error estándar de $ 209. Los
resultados variarán ligeramente entre ejecuciones consecutivas del algoritmo.

El mayor Pitón Los paquetes no proporcionan implementaciones del enfoque de


arranque. Se puede implementar usando elscikit-learn método remuestrear:
resultados = []
por nrepetir en distancia(1000):
muestra = remuestrear(ingresos_préstamos)
resultados.adjuntar(muestra.mediana())
resultados = pd.Serie(resultados)
impresión('Estadísticas de Bootstrap: ')
impresión(F'original: {loan_income.median ()}')
impresión(F'sesgo: {resultados.medio () - ingresos_préstamos.medio ()}')
impresión(F'std. error: {results.std ()} ')

El bootstrap se puede utilizar con datos multivariados, donde las filas se muestrean como unidades
(consulte Figura 2-8). A continuación, se podría ejecutar un modelo sobre los datos de arranque, por
ejemplo, para estimar la estabilidad (variabilidad) de los parámetros del modelo o para mejorar el
poder predictivo. Con árboles de clasificación y regresión (también llamadosárboles de decisión),
ejecutar varios árboles en muestras de bootstrap y luego promediar sus predicciones (o, con la
clasificación, tomar un voto mayoritario) generalmente funciona mejor que usar un

El Bootstrap | 63
solo árbol. Este proceso se llamaembolsarabreviatura de "bootstrap aggregating"; ver
“Embolsado y el bosque aleatorio” en la página 259).

Figura 2-8. Muestreo bootstrap multivariante

El remuestreo repetido del bootstrap es conceptualmente simple, y Julian Simon, un


economista y demógrafo, publicó un compendio de ejemplos de remuestreo, incluido el
bootstrap, en su texto de 1969 Métodos básicos de investigación en ciencias sociales
(Casa al azar). Sin embargo, también es computacionalmente intensivo y no era una opción factible
antes de la amplia disponibilidad de potencia informática. La técnica ganó su nombre y despegó con
la publicación de varios artículos de revistas y un libro del estadístico de Stanford Bradley Efron a fines
de la década de 1970 y principios de la de 1980. Fue particularmente popular entre los investigadores
que usan estadísticas pero no son estadísticos, y para su uso con métricas o modelos donde las
aproximaciones matemáticas no están fácilmente disponibles. La distribución muestral de la media
está bien establecida desde 1908; la distribución muestral de muchas otras métricas no lo ha hecho.
El bootstrap se puede utilizar para determinar el tamaño de la muestra; experimentar con diferentes
valores paranorte para ver cómo se ve afectada la distribución de la muestra.

El bootstrap fue recibido con considerable escepticismo cuando se introdujo por primera
vez; tenía el aura para muchos de hilar oro de paja. Este escepticismo se debió a un
malentendido del propósito del bootstrap.

El bootstrap no compensa un tamaño de muestra pequeño; no crea nuevos


datos ni rellena huecos en un conjunto de datos existente. Simplemente nos
informa sobre cómo se comportarían muchas muestras adicionales cuando se
extraigan de una población como nuestra muestra original.

64 | Capítulo 2: Distribuciones de datos y muestreo


Remuestreo versus bootstrapping
A veces el término remuestreo se usa como sinónimo del término bootstrapping como se acaba de
describir. Más a menudo, el términoremuestreo también incluye procedimientos de permutación (ver
"Prueba de permutación" en la página 97), donde se combinan varias muestras y el muestreo puede
realizarse sin reemplazo. En cualquier caso, el términooreja siempre implica un muestreo con
reemplazo de un conjunto de datos observados.

Ideas claves

• El bootstrap (muestreo con reemplazo de un conjunto de datos) es una herramienta poderosa para evaluar
la variabilidad de una estadística de muestra.

• El bootstrap se puede aplicar de manera similar en una amplia variedad de circunstancias,


sin un estudio extenso de aproximaciones matemáticas a las distribuciones muestrales.

• También nos permite estimar distribuciones muestrales para estadísticas donde no se ha


desarrollado una aproximación matemática.

• Cuando se aplica a modelos predictivos, la agregación de múltiples predicciones de muestra


bootstrap (empaquetado) supera el uso de un solo modelo.

Otras lecturas
• Una introducción al Bootstrap de Bradley Efron y Robert Tibshirani (Chapman y Hall, 1993)
fue el primer tratamiento de la extensión de un libro sobre el bootstrap. Todavía es muy
leído.

• La retrospectiva del bootstrap en la edición de mayo de 2003 de Ciencia estadística


(vol. 18, no. 2), analiza (entre otros antecedentes, en "Una breve prehistoria del
Bootstrap" de Peter Hall) la publicación inicial de Julian Simon del bootstrap en
1969.
• Ver Introducción al aprendizaje estadístico por Gareth James, Daniela Witten, Trevor
Hastie y Robert Tibshirani (Springer, 2013) para secciones sobre el bootstrap y, en
particular, el ensacado.

Intervalos de confianza
Las tablas de frecuencia, los histogramas, los diagramas de caja y los errores estándar son formas de
comprender el error potencial en una estimación de muestra. Los intervalos de confianza son otro.

Intervalos de confianza | sesenta y cinco


Términos clave para intervalos de confianza

Nivel de confianza
El porcentaje de intervalos de confianza, construidos de la misma manera a partir de la
misma población, que se espera que contengan la estadística de interés.

Puntos finales de intervalo

La parte superior e inferior del intervalo de confianza.

Existe una aversión humana natural a la incertidumbre; la gente (especialmente los expertos) dice "No
sé" con demasiada frecuencia. Los analistas y gerentes, aunque reconocen la incertidumbre,
depositan una fe indebida en una estimación cuando se presenta como un solo número (unpunto
estimado). Presentar una estimación no como un número único sino como un rango es una forma de
contrarrestar esta tendencia. Los intervalos de confianza hacen esto de una manera basada en
principios de muestreo estadístico.

Los intervalos de confianza siempre vienen con un nivel de cobertura, expresado como un porcentaje
(alto), digamos 90% o 95%. Una forma de pensar en un intervalo de confianza del 90% es la siguiente:
es el intervalo que encierra el 90% central de la distribución de muestreo bootstrap de una estadística
de muestra (ver“El Bootstrap” en la página 61). De manera más general, unaX% El intervalo de
confianza en torno a una estimación de muestra debe, en promedio, contener estimaciones de
muestra similares X% del tiempo (cuando se sigue un procedimiento de muestreo similar).

Dada una muestra de tamaño norte, y una estadística de muestra de interés, el algoritmo para un intervalo de
confianza de la correa de la bota es el siguiente:

1. Dibujar una muestra aleatoria de tamaño norte con reemplazo de los datos (una nueva muestra).

2. Registre la estadística de interés para la nueva muestra.

3. Repita los pasos 1 a 2 varias veces (R) veces.

4. Para un X% intervalo de confianza, recorte [(100-X) / 2]% del R volver a muestrear los resultados de
cualquier extremo de la distribución.

5. Los puntos de corte son los puntos finales de un X% intervalo de confianza de bootstrap.

Figura 2-9 muestra un intervalo de confianza del 90% para el ingreso anual promedio de los solicitantes de
préstamos, basado en una muestra de 20 para la cual la media fue de $ 62,231.

66 | Capítulo 2: Distribuciones de datos y muestreo


Figura 2-9. Intervalo de confianza bootstrap para los ingresos anuales de los solicitantes de préstamos,
basado en una muestra de 20

El bootstrap es una herramienta general que se puede utilizar para generar intervalos de confianza para la
mayoría de las estadísticas o parámetros del modelo. Los libros de texto y software estadísticos, con raíces
en más de medio siglo de análisis estadístico sin computadora, también harán referencia a los intervalos de
confianza generados por fórmulas, especialmente la distribución t (ver“Distribución t de Student” en la
página 75).

Por supuesto, lo que realmente nos interesa cuando tenemos un resultado de


muestra es: "¿Cuál es la probabilidad de que el valor verdadero se encuentre dentro
de un cierto intervalo?" Esta no es realmente la pregunta que responde un intervalo
de confianza, pero termina siendo la forma en que la mayoría de la gente interpreta
la respuesta.

La pregunta de probabilidad asociada con un intervalo de confianza


comienza con la frase "Dado un procedimiento de muestreo y una
población, ¿cuál es la probabilidad de que ..." Para ir en la dirección
opuesta, "Dado un resultado de muestra, cuál es la probabilidad que
(algo es cierto sobre la población)? " implica cálculos más complejos
e imponderables más profundos.

Intervalos de confianza | 67
El porcentaje asociado con el intervalo de confianza se denomina nivel de confianza. Cuanto mayor
sea el nivel de confianza, más amplio será el intervalo. Además, cuanto más pequeña es la muestra,
más amplio es el intervalo (es decir, mayor es la incertidumbre). Ambos tienen sentido: cuanto más
confianza desee tener y cuantos menos datos tenga, más amplio debe hacer el intervalo de confianza
para estar lo suficientemente seguro de capturar el valor real.

Para un científico de datos, un intervalo de confianza es una herramienta que puede


usarse para tener una idea de cuán variable puede ser el resultado de una muestra.
Los científicos de datos no usarían esta información para publicar un artículo
académico o enviar un resultado a una agencia reguladora (como lo haría un
investigador) pero lo más probable es que comuniquen el error potencial en una
estimación y quizás para saber si se necesita una muestra más grande .

Ideas claves

• Los intervalos de confianza son la forma típica de presentar estimaciones como un rango de intervalo.

• Cuantos más datos tenga, menos variable será una estimación de muestra.

• Cuanto menor sea el nivel de confianza que pueda tolerar, más estrecho será el intervalo de
confianza.

• El bootstrap es una forma eficaz de construir intervalos de confianza.

Otras lecturas
• Para obtener un enfoque de arranque de los intervalos de confianza, consulte Introducción a las
estadísticas y análisis: una perspectiva de remuestreo por Peter Bruce (Wiley, 2014) o
Estadísticas: desbloquear el poder de los datos, 2a ed., Por Robin Lock y otros cuatro miembros
de la familia Lock (Wiley, 2016).

• Los ingenieros, que tienen la necesidad de comprender la precisión de sus mediciones, usan
intervalos de confianza quizás más que la mayoría de las disciplinas, y Estadísticas de ingeniería
moderna por Thomas Ryan (Wiley, 2007) analiza los intervalos de confianza. También revisa una
herramienta que es igualmente útil y recibe menos atención:intervalos de predicción
(intervalos alrededor de un valor único, en contraposición a una media u otra estadística de
resumen).

68 | Capítulo 2: Distribuciones de datos y muestreo


Distribución normal
La distribución normal en forma de campana es icónica en las estadísticas tradicionales.1 El hecho de que las
distribuciones de las estadísticas muestrales a menudo tengan una forma normal lo ha convertido en una
herramienta poderosa en el desarrollo de fórmulas matemáticas que se aproximen a esas distribuciones.

Términos clave para la distribución normal

Error
La diferencia entre un punto de datos y un valor pronosticado o promedio.

Estandarizar
Reste la media y divida por la desviación estándar.

puntuación z

El resultado de estandarizar un punto de datos individual.

Estándar normal
Una distribución normal con media = 0 y desviación estándar = 1.

QQ-Plot
Un gráfico para visualizar qué tan cerca está una distribución de muestra de una distribución específica,
por ejemplo, la distribución normal.

En una distribución normal (Figura 2-10), El 68% de los datos se encuentra dentro de una desviación estándar
de la media y el 95% se encuentra dentro de dos desviaciones estándar.

Es un error común pensar que la distribución normal se llama así porque la


mayoría de los datos siguen una distribución normal, es decir, es lo normal. La
mayoría de las variables utilizadas en un proyecto típico de ciencia de datos
(de hecho, la mayoría de los datos sin procesar en su conjunto) sonno
distribuido normalmente: ver "Distribuciones de cola larga" en la página 73. La
utilidad de la distribución normal se deriva del hecho de que muchas
estadísticasestán normalmente distribuidos en su distribución muestral. Aun
así, los supuestos de normalidad son generalmente un último recurso y se
utilizan cuando no se dispone de distribuciones de probabilidad empírica o
distribuciones bootstrap.

1 La curva de campana es icónica pero quizás sobrevalorada. George W. Cobb, el estadístico de Mount Holyoke conocido por su
contribución a la filosofía de la enseñanza de la estadística introductoria, argumentó en un editorial de noviembre de 2015 en el
Estadístico estadounidense que el "curso introductorio estándar, que coloca la distribución normal en su centro, había
sobrevivido a la utilidad de su centralidad".

Distribución normal | 69
Figura 2-10. Curva normal

La distribución normal también se conoce como Gaussiano distribución


después de Carl Friedrich Gauss, un prodigioso matemático alemán de
finales del siglo XVIII y principios del XIX. Otro nombre que se usó
anteriormente para la distribución normal fue distribución de “error”.
Estadísticamente hablando, unerror es la diferencia entre un valor real y
una estimación estadística como la media de la muestra. Por ejemplo, la
desviación estándar (ver“Estimaciones de variabilidad” en la página 13) se
basa en los errores de la media de los datos. El desarrollo de Gauss de la
distribución normal provino de su estudio de los errores de las
mediciones astronómicas que se encontró que estaban distribuidas
normalmente.

70 | Capítulo 2: Distribuciones de datos y muestreo


Gráficos estándar normal y QQ
A estándar normal La distribución es aquella en la que las unidades del eje x se expresan en
términos de desviaciones estándar de la media. Para comparar los datos con una distribución
normal estándar, resta la media y luego divide por la desviación estándar; esto también se llama
normalización o Estandarización (ver “Estandarización (normalización, puntajes z)” en la página
243). Tenga en cuenta que la "estandarización" en este sentido no está relacionada con la
estandarización de registros de bases de datos (conversión a un formato común). El valor
transformado se denominapuntuación z, y la distribución normal a veces se llama distribución z.

A QQ-Plot se utiliza para determinar visualmente qué tan cerca está una muestra de una distribución
especificada, en este caso, la distribución normal. El QQ-Plot ordena elz-puntajes de menor a mayor y
traza cada valor z-puntuación en el eje y; el eje x es el cuantil correspondiente de una distribución
normal para el rango de ese valor. Dado que los datos están normalizados, las unidades
corresponden al número de desviaciones estándar de la media. Si los puntos caen aproximadamente
en la línea diagonal, entonces la distribución de la muestra se puede considerar cercana a la normal.
Figura 2-11 muestra un QQ-Plot para una muestra de 100 valores generados aleatoriamente a partir
de una distribución normal; como se esperaba, los puntos siguen de cerca la línea. Esta figura se
puede producir enR con el qqnorm función:

norm_samp <- rnorm(100)


qqnorm(norm_samp)
abline(a=0, B=1, columna='gris')

En Pitón, usa el método scipy.stats.probplot para crear el QQ-Plot:


higo, hacha = plt.subtramas(figsize=(4, 4))
norm_sample = estadisticas.norma.autocaravanas(Talla=100)
estadisticas.probplot(norm_sample, gráfico=hacha)

Distribución normal | 71
Figura 2-11. QQ-Plot de una muestra de 100 valores extraídos de una distribución normal
estándar

Conversión de datos a z-puntuaciones (es decir, estandarizar o normalizar los datos)


no no hacer que los datos se distribuyan normalmente. Simplemente coloca los
datos en la misma escala que la distribución normal estándar, a menudo con fines
de comparación.

Ideas claves

• La distribución normal fue fundamental para el desarrollo histórico de las estadísticas, ya que
permitió una aproximación matemática de la incertidumbre y la variabilidad.

• Si bien los datos brutos generalmente no se distribuyen normalmente, los errores a menudo lo son, al igual que los promedios

y los totales en muestras grandes.

• Para convertir datos a z-puntajes, resta la media de los datos y divide por la desviación
estándar; luego puede comparar los datos con una distribución normal.

72 | Capítulo 2: Distribuciones de datos y muestreo


Distribuciones de cola larga
A pesar de la importancia histórica de la distribución normal en las estadísticas, y en contraste
con lo que sugiere el nombre, los datos generalmente no se distribuyen normalmente.

Términos clave para distribuciones de cola larga

Cola
La porción larga y estrecha de una distribución de frecuencia, donde ocurren valores
relativamente extremos a baja frecuencia.

Sesgar
Donde una cola de una distribución es más larga que la otra.

Si bien la distribución normal suele ser apropiada y útil con respecto a la distribución de errores
y las estadísticas de la muestra, por lo general no caracteriza la distribución de datos brutos. A
veces, la distribución es muysesgadoasimétrico), como con datos de ingresos; o la distribución
puede ser discreta, como ocurre con los datos binomiales. Tanto las distribuciones simétricas
como asimétricas pueden tenercolas largas. Las colas de una distribución corresponden a los
valores extremos (pequeños y grandes). Las colas largas y la protección contra ellas son
ampliamente reconocidas en el trabajo práctico. Nassim Taleb ha propuesto la
cisne negro teoría, que predice que eventos anómalos, como una caída del mercado de
valores, tienen muchas más probabilidades de ocurrir de lo que predeciría la distribución
normal.

Un buen ejemplo para ilustrar la naturaleza de cola larga de los datos son los rendimientos de las acciones.
Figura 2-12 muestra el QQ-Plot para la rentabilidad diaria de las acciones de Netflix (NFLX). Esto se
genera enR por:

nflx <- sp500_px[,'NFLX']


nflx <- diff(Iniciar sesión(nflx[nflx>0]))
qqnorm(nflx)
abline(a=0, B=1, columna='gris')

El correspondiente Pitón el código es:

nflx = sp500_px.NFLX nflx = notario público.diff(notario


público.Iniciar sesión(nflx[nflx>0]))
higo, hacha = plt.subtramas(figsize=(4, 4))
estadisticas.probplot(nflx, gráfico=hacha)

Distribuciones de cola larga | 73


Figura 2-12. QQ-Plot de los retornos de Netflix (NFLX)

En contraste con Figura 2-11, los puntos están muy por debajo de la línea para valores bajos y muy
por encima de la línea para valores altos, lo que indica que los datos no están distribuidos
normalmente. Esto significa que es mucho más probable que observemos valores extremos de lo que
se esperaría si los datos tuvieran una distribución normal.Figura 2-12 muestra otro fenómeno común:
los puntos están cerca de la línea de los datos dentro de una desviación estándar de la media. Tukey
se refiere a este fenómeno como datos que son "normales en el medio" pero que tienen colas mucho
más largas (ver[Tukey-1987]).

74 | Capítulo 2: Distribuciones de datos y muestreo


Existe mucha literatura estadística sobre la tarea de ajustar las distribuciones
estadísticas a los datos observados. Tenga cuidado con un enfoque
excesivamente centrado en los datos para este trabajo, que es tanto arte
como ciencia. Los datos son variables, y a menudo consistentes, a primera
vista, con más de una forma y tipo de distribución. Por lo general, es necesario
aplicar conocimientos estadísticos y de dominio para determinar qué tipo de
distribución es apropiado para modelar una situación dada. Por ejemplo,
podríamos tener datos sobre el nivel de tráfico de Internet en un servidor
durante muchos períodos consecutivos de cinco segundos. Es útil saber que la
mejor distribución para modelar "eventos por período de tiempo" es la de
Poisson (ver“Distribuciones de Poisson” en la página 83).

Ideas claves

• La mayoría de los datos no se distribuyen normalmente.

• Asumir una distribución normal puede llevar a subestimar los eventos extremos
(“cisnes negros”).

Otras lecturas
• El Cisne negro, 2a ed., Por NassimNicholas Taleb (RandomHouse, 2010)
• Manual de distribuciones estadísticas con aplicaciones, 2a ed., Por K. Krishna‐
moorthy (Chapman & Hall / CRC Press, 2016)

Distribución t de Student
La distribución t es una distribución de forma normal, excepto que es un poco más gruesa y
más larga en las colas. Se utiliza ampliamente para representar distribuciones de estadísticas
de muestra. Las distribuciones de las medias muestrales suelen tener la forma de una
distribución t, y hay una familia de distribuciones t que difieren según el tamaño de la muestra.
Cuanto más grande es la muestra, más normal se vuelve la distribución t.

Distribución t de Student | 75
Términos clave para la distribución t de Student

norte

Tamaño de la muestra.

Grados de libertad
Un parámetro que permite que la distribución t se ajuste a diferentes tamaños de muestra,
estadísticas y números de grupos.

La distribución t a menudo se llama T de estudiante porque fue publicado en 1908 en Bio‐ metrika por
WS Gosset con el nombre de "Estudiante". El empleador de Gosset, la fábrica de cerveza Guinness, no
quería que los competidores supieran que estaba usando métodos estadísticos, por lo que insistió en
que Gosset no usara su nombre en el artículo.

Gosset quería responder a la pregunta "¿Cuál es la distribución muestral de la media de una


muestra, extraída de una población más grande?" Comenzó con un experimento de
remuestreo: extrajo muestras aleatorias de 4 de un conjunto de datos de 3.000 medidas de la
altura de los delincuentes y la longitud del dedo medio izquierdo. (Siendo esta la era de la
eugenesia, había mucho interés en los datos sobre los delincuentes y en descubrir
correlaciones entre las tendencias delictivas y los atributos físicos o psicológicos.) Gosset trazó
los resultados estandarizados (elz-puntuaciones) en el eje xy la frecuencia en el eje y. Por
separado, había derivado una función, ahora conocida comoT de estudiante, y ajustó esta
función sobre los resultados de la muestra, trazando la comparación (ver Figura 2-13).

Figura 2-13. Resultados del experimento de remuestreo de Gosset y curva t ajustada (de su artículo de
1908 Biometrika)

76 | Capítulo 2: Distribuciones de datos y muestreo


Se pueden comparar varias estadísticas diferentes, después de la estandarización, con la distribución
t, para estimar los intervalos de confianza a la luz de la variación muestral. Considere una muestra de
tamañonorte para lo cual la media muestral X ha sido calculado. Sis es la desviación estándar de la
muestra, un intervalo de confianza del 90% alrededor de la media de la muestra viene dado por:

X ± tnorte - 1 0. 05 ·s
norte

dónde tnorte - 1. 05 es el valor del estadístico t, con (norte - 1) grados de libertad (ver
"Grados de libertad" en la página 116), que "corta" el 5% de la distribución t en
final. La distribución t se ha utilizado como referencia para la distribución de una media
muestral, la diferencia entre dos medias muestrales, parámetros de regresión y otras
estadísticas.

Si la potencia informática hubiera estado ampliamente disponible en 1908, las estadísticas sin duda se
habrían basado mucho más en métodos de remuestreo computacionalmente intensivos desde el principio. A
falta de computadoras, los estadísticos recurrieron a las matemáticas y funciones como la distribución t para
aproximar las distribuciones muestrales. El poder de la computadora permitió experimentos prácticos de
remuestreo en la década de 1980, pero para entonces, el uso de la distribución t y distribuciones similares se
había arraigado profundamente en los libros de texto y el software.

La precisión de la distribución t al representar el comportamiento de una estadística de muestra


requiere que la distribución de esa estadística para esa muestra tenga la forma de una distribución
normal. Resulta que las estadísticas de muestraestán a menudo distribuidos normalmente, incluso
cuando los datos de población subyacentes no lo son (un hecho que llevó a una aplicación
generalizada de la distribución t). Esto nos devuelve al fenómeno conocido comoteorema del límite
central (ver “Teorema del límite central” en la página 60).

¿Qué necesitan saber los científicos de datos sobre la distribución t y el


teorema del límite central? No mucho. La distribución t se utiliza en la
inferencia estadística clásica, pero no es tan central para los propósitos de la
ciencia de datos. Comprender y cuantificar la incertidumbre y la variación es
importante para los científicos de datos, pero el muestreo empírico de botas
puede responder la mayoría de las preguntas sobre el error de muestreo. Sin
embargo, los científicos de datos encontrarán rutinariamente estadísticas t en
la salida de software estadístico y procedimientos estadísticos enR—Por
ejemplo, en pruebas A / B y regresiones— por lo que resulta útil estar
familiarizado con su propósito.

Distribución t de Student | 77
Ideas claves

• La distribución t es en realidad una familia de distribuciones que se asemeja a la distribución


normal pero con colas más gruesas.

• La distribución t se usa ampliamente como base de referencia para la distribución de medias


muestrales, diferencias entre dos medias muestrales, parámetros de regresión y más.

Otras lecturas
• El artículo original de WS Gosset publicado en Biometrika en 1908 está disponible como PDF.

• Un tratamiento estándar de la distribución t se puede encontrar en David Lane recurso en


línea.

Distribución binomial
Los resultados sí / no (binomiales) se encuentran en el corazón de la analítica, ya que a menudo son la
culminación de una decisión u otro proceso; comprar / no comprar, hacer clic / no hacer clic, sobrevivir /
morir, etc. Para comprender la distribución binomial es fundamental la idea de un conjunto de
juicios, cada ensayo tiene dos resultados posibles con probabilidades definidas.

Por ejemplo, lanzar una moneda 10 veces es un experimento binomial con 10 intentos, cada
intento tiene dos resultados posibles (cara o cruz); verFigura 2-14. Estos resultados sí / no o 0/1
se denominanbinario resultados, y no es necesario que tengan probabilidades de 50/50.
Cualquier probabilidad que sume 1.0 es posible. Es convencional en estadística denominar el
resultado "1" comoéxito Salir; También es una práctica común asignar "1" al resultado más
raro. Uso del términoéxito no implica que el resultado sea deseable o beneficioso, pero tiende a
indicar el resultado de interés. Por ejemplo, los incumplimientos de préstamos o las
transacciones fraudulentas son eventos relativamente poco comunes que podríamos estar
interesados en predecir, por lo que se denominan "1" o "éxitos".

Figura 2-14. El lado de la cola de un níquel de búfalo

78 | Capítulo 2: Distribuciones de datos y muestreo


Términos clave para la distribución binomial

Juicio
Un evento con un resultado discreto (por ejemplo, un lanzamiento de moneda).

Éxito
El resultado de interés para un juicio.

Sinónimo
"1" (en contraposición a "0")

Binomio
Tener dos resultados.

Sinónimos
sí / no, 0/1, binario

Ensayo binomial
Un ensayo con dos resultados.

Sinónimo
Juicio de Bernoulli

Distribución binomial
Distribución del número de éxitos en X ensayos.

Sinónimo
Distribución de Bernoulli

La distribución binomial es la distribución de frecuencia del número de éxitos (X)


en un número determinado de ensayos (norte) con probabilidad especificada (pag) de éxito en cada
ensayo. Existe una familia de distribuciones binomiales, dependiendo de los valores denorte y pag. La
distribución binomial respondería una pregunta como:

Si la probabilidad de que un clic se convierta en una venta es 0.02, ¿cuál es la probabilidad de


observar 0 ventas en 200 clics?

La R función dbinom calcula probabilidades binomiales. Por ejemplo:

dbinom(X=2, Talla=5, pag=0,1)

devolvería 0.0729, la probabilidad de observar exactamente x = 2 éxitos en tamaño = 5 ensayos,


donde la probabilidad de éxito de cada ensayo es p = 0,1. Para nuestro ejemplo anterior,
usamosx = 0, tamaño = 200, y p = 0,02. Con estos argumentos,dbinom devuelve una
probabilidad de 0,0176.

A menudo nos interesa determinar la probabilidad de X o menos éxitos en norte


ensayos. En este caso, usamos la funciónpbinom:

Distribución binomial | 79
pbinom(2, 5, 0,1)

Esto devolvería 0,9914, la probabilidad de observar dos o menos éxitos en cinco ensayos,
donde la probabilidad de éxito para cada ensayo es 0,1.

La scipy.stats El módulo implementa una gran variedad de distribuciones estadísticas.


Para la distribución binomial, use las funcionesstats.binom.pmf y stats.binom.cdf:
estadisticas.binom.pmf(2, norte=5, pag=0,1)
estadisticas.binom.CDF(2, norte=5, pag=0,1)

La media de una distribución binomial es norte × pag; También puede pensar en esto como el
número esperado de éxitos en norte ensayos, para probabilidad de éxito = pag.

La varianza es norte × pag 1 - pag . Con un número suficientemente grande de ensayos (particularmente cuando
pag está cerca de 0,50), la distribución binomial es prácticamente indistinguible de la distribución
normal. De hecho, calcular probabilidades binomiales con tamaños de muestra grandes es
computacionalmente exigente y la mayoría de los procedimientos estadísticos utilizan la distribución
normal, con media y varianza, como aproximación.

Ideas claves

• Los resultados binomiales son importantes para modelar, ya que representan, entre otras cosas,
decisiones fundamentales (comprar o no comprar, hacer clic o no hacer clic, sobrevivir o morir,
etc.).

• Un ensayo binomial es un experimento con dos resultados posibles: uno con


probabilidad pag y el otro con probabilidad 1 - p.

• Con gran norte, y siempre pag no está demasiado cerca de 0 o 1, la distribución binomial
puede aproximarse mediante la distribución normal.

Otras lecturas
• Leer sobre el "quincunx", un dispositivo de simulación similar a un pinball para ilustrar la
distribución binomial.

• La distribución binomial es un elemento básico de la estadística introductoria, y todos los textos


introductorios de estadística tendrán uno o dos capítulos.

Distribución chi-cuadrado
Una idea importante en estadística es salida de la expectativa, especialmente con respecto a los
recuentos de categorías. La expectativa se define vagamente como "nada inusual o notable en los
datos" (por ejemplo, sin correlación entre variables o patrones predecibles). Esto también es

80 | Capítulo 2: Distribuciones de datos y muestreo


denominada "hipótesis nula" o "modelo nulo" (ver “La hipótesis nula” en la página 94). Por
ejemplo, es posible que desee probar si una variable (por ejemplo, una variable de fila
que representa el género) es independiente de otra (por ejemplo, una variable de
columna que representa "fue ascendido en el trabajo"), y tiene recuentos del número en
cada de las celdas de la tabla de datos. La estadística que mide hasta qué punto los
resultados se apartan de la expectativa nula de independencia es la estadística de chi-
cuadrado. Es la diferencia entre los valores observados y esperados, dividida por la raíz
cuadrada del valor esperado, al cuadrado y luego sumada en todas las categorías. Este
proceso estandariza la estadística para que pueda compararse con una distribución de
referencia. Una forma más general de expresar esto es señalar que el estadístico chi-
cuadrado es una medida del grado en que un conjunto de valores observados "se ajusta"
a una distribución específica (una prueba de "bondad de ajuste").

La distribución de chi-cuadrado es la distribución de este estadístico bajo extracciones


repetidas re-muestreadas del modelo nulo; ver “Prueba de chi-cuadrado” en la página 124 para
un algoritmo detallado y la fórmula de chi-cuadrado para una tabla de datos. Un valor de chi-
cuadrado bajo para un conjunto de recuentos indica que siguen de cerca la distribución
esperada. Un chi-cuadrado alto indica que difieren notablemente de lo esperado. Hay una
variedad de distribuciones de chi-cuadrado asociadas con diferentes grados de libertad (p. Ej.,
Número de observaciones; consulte"Grados de libertad" en la página 116).

Ideas claves

• La distribución de chi-cuadrado se refiere típicamente a los recuentos de sujetos o elementos


que caen en categorías.

• La estadística de chi-cuadrado mide el grado de desviación de lo que cabría esperar en


un modelo nulo.

Otras lecturas
• La distribución de chi-cuadrado debe su lugar en la estadística moderna al gran estadístico
Karl Pearson y al nacimiento de la prueba de hipótesis. Lea sobre esto y más en el libro de
David Salsburg. The Lady Tasting Tea: Cómo las estadísticas revolucionaron la ciencia en el
siglo XX (WH Freeman, 2001).
• Para una exposición más detallada, consulte la sección de este libro sobre la prueba de chi-cuadrado (“Prueba de
chi-cuadrado” en la página 124).

Distribución de chi-cuadrado | 81
Distribución F
Un procedimiento común en la experimentación científica es probar múltiples tratamientos
entre grupos, por ejemplo, diferentes fertilizantes en diferentes bloques de un campo. Esto es
similar a la prueba A / B / C referida en la distribución de chi-cuadrado (ver“Distribución de chi-
cuadrado” en la página 80), excepto que estamos tratando con valores continuos medidos en
lugar de recuentos. En este caso, nos interesa saber hasta qué punto las diferencias entre las
medias de los grupos son mayores de lo que cabría esperar en una variación aleatoria normal.
El estadístico F mide esto y es la razón entre la variabilidad entre las medias del grupo y la
variabilidad dentro de cada grupo (también llamada variabilidad residual). Esta comparación se
denominaAnálisis de variación (ver “ANOVA” en la página 118). La distribución del estadístico F
es la distribución de frecuencia de todos los valores que se producirían permutando
aleatoriamente los datos en los que todas las medias del grupo son iguales (es decir, un
modelo nulo). Hay una variedad de distribuciones F asociadas con diferentes grados de libertad
(p. Ej., Número de grupos; consulte"Grados de libertad" en la página 116). El cálculo de F se
ilustra en la sección de ANOVA. El estadístico F también se utiliza en regresión lineal para
comparar la variación explicada por el modelo de regresión con la variación general de los
datos. Las estadísticas F son producidas automáticamente porR y Pitón como parte de las
rutinas de regresión y ANOVA.

Ideas claves

• La distribución F se utiliza con experimentos y modelos lineales que involucran datos


medidos.

• El estadístico F compara la variación debida a factores de interés con la variación general.

Otras lecturas
De George Cobb Introducción al diseño y análisis de experimentos (Wiley, 2008) contiene
una excelente exposición de la descomposición de los componentes de la varianza, lo que
ayuda a comprender el ANOVA y el estadístico F.

Poisson y distribuciones relacionadas


Muchos procesos producen eventos aleatoriamente a una velocidad general determinada: visitantes que llegan a un sitio web o

automóviles que llegan a una plaza de peaje (eventos que se extienden en el tiempo); imperfecciones en un metro cuadrado de

tela, o errores tipográficos por cada 100 líneas de código (eventos esparcidos por el espacio).

82 | Capítulo 2: Distribuciones de datos y muestreo


Términos clave para Poisson y distribuciones relacionadas

Lambda
La tasa (por unidad de tiempo o espacio) a la que ocurren los eventos.

distribución de veneno
La distribución de frecuencia del número de eventos en unidades de tiempo o espacio
muestreadas.

Distribución exponencial
La distribución de frecuencia del tiempo o la distancia de un evento al siguiente
evento.

Distribución de Weibull
Una versión generalizada de la distribución exponencial en la que se permite que la tasa de
eventos cambie con el tiempo.

Distribuciones de Poisson

A partir de datos agregados anteriores (por ejemplo, número de infecciones de influenza por año), podemos
estimar el número promedio de eventos por unidad de tiempo o espacio (por ejemplo, infecciones por día o
por unidad de censo). También podríamos querer saber qué tan diferente puede ser esto de una unidad de
tiempo / espacio a otra. La distribución de Poisson nos dice la distribución de eventos por unidad de tiempo o
espacio cuando tomamos muestras de muchas de esas unidades. Es útil cuando se abordan preguntas sobre
colas como "¿Cuánta capacidad necesitamos para estar seguros al 95% de procesar completamente el tráfico
de Internet que llega a un servidor en un período de cinco segundos?"

El parámetro clave en una distribución de Poisson es λ, o lambda. Este es el número medio de eventos
que ocurren en un intervalo de tiempo o espacio específico. La varianza para una distribución de
veneno también esλ.

Una técnica común es generar números aleatorios a partir de una distribución de Poisson
como parte de una simulación de cola. Larpois funcionar en R hace esto, tomando solo dos
argumentos: la cantidad de números aleatorios buscados y lambda:

rpois(100, lambda=2)

El correspondiente scipy la función es stats.poisson.rvs:


estadisticas.poisson.autocaravanas(2, Talla=100)

Este código generará 100 números aleatorios a partir de una distribución de Poisson con λ = 2. Por
ejemplo, si las llamadas entrantes de servicio al cliente promedian dos por minuto, este código
simulará 100 minutos, devolviendo la cantidad de llamadas en cada uno de esos 100 minutos.

Poisson y distribuciones relacionadas | 83


Distribución exponencial
Usando el mismo parámetro λ que usamos en la distribución de Poisson, también podemos modelar
la distribución del tiempo entre eventos: tiempo entre visitas a un sitio web o entre autos que llegan a
una plaza de peaje. También se utiliza en ingeniería para modelar el tiempo hasta la falla y en la
gestión de procesos para modelar, por ejemplo, el tiempo requerido por llamada de servicio. LaR El
código para generar números aleatorios a partir de una distribución exponencial toma dos
argumentos: n (la cantidad de números que se generarán) y Velocidad (el número de eventos por
período de tiempo). Por ejemplo:

rexp(norte=100, Velocidad=0,2)

En la función stats.expon.rvs, el orden de los argumentos se invierte:


estadisticas.expon.autocaravanas(0,2, Talla=100)

Este código generaría 100 números aleatorios a partir de una distribución exponencial donde el
número medio de eventos por período de tiempo es 0,2. Por lo tanto, podría usarlo para simular 100
intervalos, en minutos, entre llamadas de servicio, donde la tasa promedio de llamadas entrantes es
0.2 por minuto.

Un supuesto clave en cualquier estudio de simulación para la distribución de Poisson o exponencial es


que la tasa, λ, permanece constante durante el período considerado. Esto rara vez es razonable en un
sentido global; por ejemplo, el tráfico en carreteras o redes de datos varía según la hora del día y el
día de la semana. Sin embargo, los períodos de tiempo, o áreas del espacio, generalmente se pueden
dividir en segmentos que sean lo suficientemente homogéneos para que el análisis o la simulación
dentro de esos períodos sea válido.

Estimación de la tasa de fallas

En muchas aplicaciones, la tasa de eventos, λ, se conoce o se puede estimar a partir de datos


anteriores. Sin embargo, para eventos raros, esto no es necesariamente así. La falla del motor de una
aeronave, por ejemplo, es lo suficientemente rara (afortunadamente) que, para un tipo de motor
dado, puede haber pocos datos en los que basar una estimación del tiempo entre fallas. Sin datos en
absoluto, hay poca base para estimar la tasa de eventos. Sin embargo, puede hacer algunas
conjeturas: si no se han visto eventos después de 20 horas, puede estar bastante seguro de que la
tasa no es 1 por hora. Mediante la simulación, o el cálculo directo de probabilidades, puede evaluar
diferentes tasas de eventos hipotéticos y estimar valores de umbral por debajo de los cuales es muy
poco probable que caiga la tasa. Si hay algunos datos, pero no los suficientes para proporcionar una
estimación precisa y confiable de la tasa, una prueba de bondad de ajuste (ver“Prueba de chi-
cuadrado” en la página 124) se puede aplicar a varias tasas para determinar qué tan bien se ajustan a
los datos observados.

84 | Capítulo 2: Distribuciones de datos y muestreo


Distribución de Weibull

En muchos casos, la tasa de eventos no permanece constante a lo largo del tiempo. Si el período
durante el cual cambia es mucho más largo que el intervalo típico entre eventos, no hay problema;
simplemente subdivide el análisis en los segmentos donde las tasas son relativamente constantes,
como se mencionó anteriormente. Sin embargo, si la tasa de eventos cambia durante el tiempo del
intervalo, las distribuciones exponenciales (o de Poisson) ya no son útiles. Es probable que este sea el
caso de las fallas mecánicas: el riesgo de fallas aumenta a medida que pasa el tiempo. La
Weibull La distribución es una extensión de la distribución exponencial en la que se permite que
cambie la tasa de eventos, según lo especificado por un parámetro de forma, β. Si β> 1, la
probabilidad de un evento aumenta con el tiempo; Siβ < 1, la probabilidad disminuye. Debido a que la
distribución de Wei‐ bull se utiliza con el análisis de tiempo hasta la falla en lugar de la tasa de
eventos, el segundo parámetro se expresa en términos de vida característica, en lugar de en términos
de la tasa de eventos por intervalo. El símbolo utilizado esη, la letra griega eta. También se le llama
escala parámetro.

Con Weibull, la tarea de estimación ahora incluye la estimación de ambos parámetros, β


y η. Se utiliza software para modelar los datos y obtener una estimación de la distribución de Weibull
que mejor se ajusta.

La R El código para generar números aleatorios a partir de una distribución de Weibull toma
tres argumentos: n (la cantidad de números que se generarán), forma, y escala. Por ejemplo, el
siguiente código generaría 100 números aleatorios (vidas) a partir de una distribución de Wei‐
bull con forma de 1.5 y vida característica de 5,000:

rweibull(100, 1,5, 5000)

Para lograr lo mismo en Pitón, usa la función stats.weibull_min.rvs:


estadisticas.weibull_min.autocaravanas(1,5, escala=5000, Talla=100)

Ideas claves

• Para eventos que ocurren a una tasa constante, el número de eventos por unidad de tiempo o espacio se
puede modelar como una distribución de Poisson.

• También puede modelar el tiempo o la distancia entre un evento y el siguiente como una
distribución exponencial.

• Se puede modelar una tasa de eventos cambiantes a lo largo del tiempo (por ejemplo, una probabilidad creciente de

falla del dispositivo) con la distribución de Weibull.

Poisson y distribuciones relacionadas | 85


Otras lecturas
• Estadísticas de ingeniería moderna de Thomas Ryan (Wiley, 2007) tiene un capítulo dedicado a
las distribuciones de probabilidad utilizadas en aplicaciones de ingeniería.

• Leer una perspectiva basada en la ingeniería sobre el uso de la distribución de Weibull


aquí y aquí.

Resumen
En la era de los macrodatos, los principios del muestreo aleatorio siguen siendo importantes cuando se
necesitan estimaciones precisas. La selección aleatoria de datos puede reducir el sesgo y producir un
conjunto de datos de mayor calidad que el que se obtendría si se usaran los datos convenientemente
disponibles. El conocimiento de diversas distribuciones de muestreo y generación de datos nos permite
cuantificar errores potenciales en una estimación que podrían deberse a variaciones aleatorias. Al mismo
tiempo, el bootstrap (muestreo con reemplazo de un conjunto de datos observados) es un método atractivo
de “talla única” para determinar el posible error en las estimaciones de la muestra.

86 | Capítulo 2: Distribuciones de datos y muestreo


CAPÍTULO 3

Experimentos estadísticos y
Prueba de significación

El diseño de experimentos es una piedra angular de la práctica de la estadística, con aplicaciones en


prácticamente todas las áreas de investigación. El objetivo es diseñar un experimento para confirmar
o rechazar una hipótesis. Los científicos de datos a menudo necesitan realizar experimentos
continuos, particularmente en lo que respecta a la interfaz de usuario y el marketing de productos.
Este capítulo revisa el diseño experimental tradicional y analiza algunos desafíos comunes en la
ciencia de datos. También cubre algunos conceptos frecuentemente citados en inferencia estadística
y explica su significado y relevancia (o falta de relevancia) para la ciencia de datos.

Siempre que vea referencias a significancia estadística, pruebas t o valores p, es típicamente en


el contexto de la inferencia estadística clásica "pipeline" (ver Figura 3-1). Este proceso comienza
con una hipótesis (“el medicamento A es mejor que el medicamento estándar existente” o “el
precio A es más rentable que el precio B existente”). Un experimento (podría ser una prueba A /
B) está diseñado para probar la hipótesis, diseñado de tal manera que, con suerte, arrojará
resultados concluyentes. Los datos se recopilan y analizan y luego se extrae una conclusión. El
terminoinferencia refleja la intención de aplicar los resultados del experimento, que involucran
un conjunto limitado de datos, a un proceso o población más grande.

Figura 3-1. La tubería de inferencia estadística clásica

87
Pruebas A / B
Una prueba A / B es un experimento con dos grupos para establecer cuál de los dos tratamientos,
productos, procedimientos o similares es superior. A menudo, uno de los dos tratamientos es el
tratamiento estándar existente o ningún tratamiento. Si se utiliza un tratamiento estándar (o no), se
denomina tratamientocontrol. Una hipótesis típica es que un nuevo tratamiento es mejor que el
control.

Términos clave para las pruebas A / B

Tratamiento
Algo (droga, precio, titular de la web) a lo que está expuesto un sujeto.

Grupo de tratamiento
Un grupo de sujetos expuestos a un tratamiento específico.

Grupo de control
Un grupo de sujetos expuestos a ningún tratamiento (o estándar).

Aleatorización
El proceso de asignación aleatoria de sujetos a tratamientos.

Asignaturas

Los elementos (visitantes de la web, pacientes, etc.) que están expuestos a tratamientos.

Estadística de prueba

Métrica utilizada para medir el efecto del tratamiento.

Las pruebas A / B son comunes en el diseño web y el marketing, ya que los resultados se miden con tanta
facilidad. Algunos ejemplos de pruebas A / B incluyen:

• Probar dos tratamientos de suelo para determinar cuál produce una mejor germinación de semillas

• Probar dos terapias para determinar cuál suprime el cáncer de manera más eficaz

• Probar dos precios para determinar cuál produce más ganancias netas

• Probar dos titulares web para determinar cuál produce más clics (Figura 3-2)
• Probar dos anuncios web para determinar cuál genera más conversiones.

88 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Figura 3-2. Los especialistas en marketing prueban continuamente una presentación web frente a otra

Una prueba A / B adecuada tiene asignaturas que puede asignarse a un tratamiento u otro. El sujeto
puede ser una persona, una semilla de una planta, un visitante de la web; la clave es que el sujeto
esté expuesto al tratamiento. Idealmente, los sujetos sonaleatorizadoasignados aleatoriamente) a los
tratamientos. De esta manera, sabrá que cualquier diferencia entre los grupos de tratamiento se
debe a una de dos cosas:

• El efecto de los diferentes tratamientos

• Suerte del sorteo en el que los sujetos se asignan a qué tratamientos (es decir, la asignación
aleatoria puede haber resultado en que los sujetos con mejor desempeño natural se
concentren en A o B)

Pruebas A / B | 89
También debe prestar atención a la Estadística de prueba o métrica que usa para comparar el grupo A
con el grupo B. Quizás la métrica más común en la ciencia de datos es una variable binaria: haga clic o
no haga clic, compre o no compre, fraude o no fraude, etc. Esos resultados se resumirían en una tabla
de 2 × 2.Tabla 3-1 es una tabla de 2 × 2 para una prueba de precio real (ver
“Significación estadística y valores p” en la página 103 para una mayor discusión de estos
resultados).

Tabla 3-1. Tabla 2 × 2 para resultados de experimentos de comercio electrónico

Salir Precio A Precio B

Conversión 200 182


Sin conversión 23.539 22.406

Si la métrica es una variable continua (monto de la compra, ganancias, etc.) o un recuento (por ejemplo, días
en el hospital, páginas visitadas), el resultado puede mostrarse de manera diferente. Si uno no estaba
interesado en la conversión, sino en los ingresos por vista de página, los resultados de la prueba de precio en
Tabla 3-1 podría verse así en la salida típica del software predeterminado:

Ingresos / vista de página con precio A: media = 3.87, SD = 51.10

Ingresos / vista de página con precio B: media = 4.11, SD = 62.98

"SD" se refiere a la desviación estándar de los valores dentro de cada grupo.

Solo porque el software estadístico, incluido R y Pitón—Genera la


salida por defecto no significa que toda la salida sea útil o relevante.
Puede ver que las desviaciones estándar anteriores no son tan
útiles; a primera vista, sugieren que numerosos valores pueden ser
negativos, cuando los ingresos negativos no son factibles. Estos
datos consisten en un pequeño conjunto de valores relativamente
altos (páginas vistas con conversiones) y una gran cantidad de
valores 0 (páginas vistas sin conversión). Es difícil resumir la
variabilidad de tales datos con un solo número, aunque la desviación
absoluta media de la media (7,68 para A y 8,15 para B) es más
razonable que la desviación estándar.

¿Por qué tener un grupo de control?

¿Por qué no omitir el grupo de control y simplemente ejecutar un experimento aplicando el


tratamiento de interés a un solo grupo y comparar el resultado con la experiencia anterior?

Sin un grupo de control, no hay garantía de que “todas las demás cosas sean iguales” y
que cualquier diferencia se deba realmente al tratamiento (o al azar). Cuando tiene un
grupo de control, está sujeto a las mismas condiciones (excepto para el tratamiento de

90 | Capítulo 3: Experimentos estadísticos y pruebas de significación


interés) como grupo de tratamiento. Si simplemente hace una comparación con la "línea de base" o la
experiencia previa, otros factores, además del tratamiento, pueden diferir.

Cegamiento en estudios

A estudio ciego es uno en el que los sujetos no saben si están recibiendo


el tratamiento A o el tratamiento B. El conocimiento de recibir un
tratamiento en particular puede afectar la respuesta. Adoble ciego El
estudio es aquel en el que los investigadores y facilitadores (p. ej.,
médicos y enfermeras en un estudio médico) tampoco saben qué sujetos
están recibiendo qué tratamiento. El cegamiento no es posible cuando la
naturaleza del tratamiento es transparente, por ejemplo, terapia
cognitiva de una computadora versus un psicólogo.

Las pruebas A / B en ciencia de datos se utilizan normalmente en un contexto web. Los tratamientos
pueden ser el diseño de una página web, el precio de un producto, la redacción de un titular o algún
otro artículo. Es necesario pensar un poco para preservar los principios de la aleatorización.
Normalmente, el sujeto del experimento es el visitante de la web, y los resultados que nos interesa
medir son los clics, las compras, la duración de la visita, el número de páginas visitadas, si se visita
una página en particular, etc. En un experimento A / B estándar, debe decidir una métrica antes de
tiempo. Se pueden recopilar múltiples métricas de comportamiento que pueden ser de interés, pero
si se espera que el experimento conduzca a una decisión entre el tratamiento A y el tratamiento B,
una sola métrica, oEstadística de prueba, debe establecerse de antemano. Seleccionar una estadística
de pruebadespués el experimento se lleva a cabo abre la puerta al sesgo del investigador.

¿Por qué solo A / B? ¿Por qué no C, D,…?

Las pruebas A / B son populares en el mundo del marketing y el comercio electrónico, pero están lejos
de ser el único tipo de experimento estadístico. Se pueden incluir tratamientos adicionales. Es posible
que se tomen medidas repetidas a los sujetos. Los ensayos farmacéuticos en los que los sujetos son
escasos, costosos y adquiridos con el tiempo a veces se diseñan con múltiples oportunidades para
detener el experimento y llegar a una conclusión.

Los diseños experimentales estadísticos tradicionales se centran en responder una pregunta estática sobre
la eficacia de tratamientos específicos. Los científicos de datos están menos interesados en la pregunta:

¿Es la diferencia entre el precio A y el precio B estadísticamente significativa?

que en la pregunta:

¿Cuál de los múltiples precios posibles es el mejor?

Para ello, se utiliza un tipo de diseño experimental relativamente nuevo: el bandido de varios brazos
(ver “Algoritmo Bandit de brazos múltiples” en la página 131).

Pruebas A / B | 91
Obtener permiso

En la investigación científica y médica que involucra a seres humanos, generalmente


es necesario obtener su permiso, así como obtener la aprobación de una junta de
revisión institucional. Los experimentos en los negocios que se realizan como parte
de las operaciones en curso casi nunca logran esto. En la mayoría de los casos (por
ejemplo, experimentos de precios o experimentos sobre qué título mostrar o qué
oferta debe hacerse), esta práctica es ampliamente aceptada. Facebook, sin
embargo, se enfrentó a esta aceptación general en 2014 cuando experimentó con el
tono emocional en las fuentes de noticias de los usuarios. Facebook usó el análisis
de sentimientos para clasificar las publicaciones de noticias como positivas o
negativas, y luego alteró el balance positivo / negativo en lo que mostraba a los
usuarios. Algunos usuarios seleccionados al azar experimentaron publicaciones más
positivas, mientras que otros experimentaron publicaciones más negativas.
Facebook descubrió que los usuarios que experimentaron un suministro de noticias
más positivo tenían más probabilidades de publicar positivamente ellos mismos, y
viceversa. Sin embargo, la magnitud del efecto fue pequeña y Facebook enfrentó
muchas críticas por realizar el experimento sin el conocimiento de los usuarios.
Algunos usuarios especularon que Facebook podría haber empujado a algunos
usuarios extremadamente deprimidos al límite si obtuvieron la versión negativa de
su feed.

Ideas claves

• Los sujetos se asignan a dos (o más) grupos que se tratan exactamente igual,
excepto que el tratamiento en estudio difiere de un grupo a otro.
• Idealmente, los sujetos se asignan al azar a los grupos.

Otras lecturas
• Las comparaciones de dos grupos (pruebas A / B) son un elemento básico de las estadísticas
tradicionales, y casi cualquier texto introductorio de estadística tendrá una amplia cobertura de los
principios de diseño y los procedimientos de inferencia. Para una discusión que coloca las pruebas A / B
en un contexto más de ciencia de datos y usa remuestreo, consulteIntroducción a la estadística y la
analítica: una perspectiva de remuestreo por Peter Bruce (Wiley, 2014).

• Para las pruebas web, los aspectos logísticos de las pruebas pueden ser tan desafiantes como los
estadísticos. Un buen lugar para comenzar es elSección de ayuda de Google Analytics sobre
experimentos.

• Tenga cuidado con los consejos que se encuentran en las guías omnipresentes para las pruebas A / B que ve en
la web, como estas palabras en una de estas guías: "Espere aproximadamente 1,000 visitantes en total y
asegúrese de ejecutar la prueba durante una semana". Estas reglas generales no son

92 | Capítulo 3: Experimentos estadísticos y pruebas de significación


estadísticamente significativo; ver“Potencia y tamaño de la muestra” en la página 135 para más detalles.

Pruebas de hipótesis

Pruebas de hipótesis, también llamadas pruebas de significancia, son omnipresentes en el


análisis estadístico tradicional de la investigación publicada. Su propósito es ayudarlo a saber si
el azar puede ser responsable de un efecto observado.

Términos clave para las pruebas de hipótesis

Hipótesis nula
La hipótesis de que el azar tiene la culpa.

Hipótesis alternativa
Contrapunto a lo nulo (lo que esperas probar).

Prueba unidireccional

Prueba de hipótesis que cuenta los resultados aleatorios solo en una dirección.

Prueba bidireccional

Prueba de hipótesis que cuenta los resultados aleatorios en dos direcciones.

Una prueba A / B (ver “Pruebas A / B” en la página 88) se construye típicamente con una hipótesis en
mente. Por ejemplo, la hipótesis podría ser que el precio B produce una mayor ganancia. ¿Por qué
necesitamos una hipótesis? ¿Por qué no simplemente mirar el resultado del experimento e ir con el
tratamiento que funcione mejor?

La respuesta radica en la tendencia de la mente humana a subestimar el alcance del


comportamiento aleatorio natural. Una manifestación de esto es la incapacidad de anticipar
eventos extremos, o los llamados "cisnes negros" (ver"Distribuciones de cola larga" en la
página 73). Otra manifestación es la tendencia a malinterpretar eventos aleatorios como
patrones de algún significado. La prueba de hipótesis estadística se inventó como una forma de
proteger a los investigadores de ser engañados por el azar.

Malinterpretar la aleatoriedad
Puede observar la tendencia humana a subestimar la aleatoriedad en este experimento. Pida a varios
amigos que inventen una serie de 50 lanzamientos de monedas: pídales que escriban una serie de H y
Ts al azar. Luego pídales que realmente lancen una moneda 50 veces y anoten los resultados. Pídales
que pongan los resultados reales del lanzamiento de la moneda en una pila y los resultados inventados
en otra. Es fácil saber qué resultados son reales: los reales tendrán series más largas de Hs o Ts. En un
juego de 50verdadero lanzamientos de moneda, no es nada inusual ver cinco

Pruebas de hipótesis | 93
o seis H o Ts seguidas. Sin embargo, cuando la mayoría de nosotros estamos inventando lanzamientos de
monedas al azar y hemos obtenido tres o cuatro H seguidas, nos decimos a nosotros mismos que, para que la
serie parezca aleatoria, es mejor cambiar a T.

La otra cara de esta moneda, por así decirlo, es que cuando hacer Si vemos el equivalente
en el mundo real de seis H seguidas (por ejemplo, cuando un titular supera a otro en un
10%), nos inclinamos a atribuirlo a algo real, no solo al azar.

En una prueba A / B correctamente diseñada, usted recopila datos sobre los tratamientos A y B de tal
manera que cualquier diferencia observada entre A y B debe deberse a:

• Oportunidad aleatoria en la asignación de asignaturas.

• Una verdadera diferencia entre A y B

Una prueba de hipótesis estadística es un análisis adicional de una prueba A / B, o cualquier


experimento aleatorio, para evaluar si el azar aleatorio es una explicación razonable de la
diferencia observada entre los grupos A y B.

La hipótesis nula
Las pruebas de hipótesis utilizan la siguiente lógica: “Dada la tendencia humana a reaccionar
ante un comportamiento inusual pero aleatorio e interpretarlo como algo significativo y real,
en nuestros experimentos necesitaremos una prueba de que la diferencia entre grupos es más
extrema de lo que razonablemente podría producir el azar. " Esto implica una suposición inicial
de que los tratamientos son equivalentes y que cualquier diferencia entre los grupos se debe al
azar. Este supuesto de referencia se denominahipótesis nula. Nuestra esperanza, entonces, es
que de hecho podamos probar la hipótesis nula equivocado y mostrar que los resultados de los
grupos A y B son más diferentes de lo que podría producir el azar.

Una forma de hacerlo es a través de un procedimiento de permutación de remuestreo, en el que


mezclamos los resultados de los grupos A y B y luego distribuimos repetidamente los datos en grupos
de tamaños similares, y luego observamos con qué frecuencia obtenemos una diferencia tan extrema
como la diferencia observada. Los resultados mezclados combinados de los grupos A y B, y el
procedimiento de remuestreo de ellos, encarna la hipótesis nula de que los grupos A y B son
equivalentes e intercambiables y se denomina modelo nulo. Ver“Remuestreo” en la página 96 para
más detalles.

94 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Hipótesis alternativa
Las pruebas de hipótesis, por su naturaleza, implican no solo una hipótesis nula, sino también una hipótesis
alternativa de compensación. Aquí hay unos ejemplos:

• Nulo = “sin diferencia entre las medias del grupo A y del grupo B”; alternativa = "A es
diferente de B" (podría ser más grande o más pequeño)

• Nulo = “A ≤ B”; alternativa = "A> B"


• Nulo = "B no es X% mayor que A"; alternativa = "B es un X% mayor que A"

En conjunto, las hipótesis nula y alternativa deben tener en cuenta todas las posibilidades. La
naturaleza de la hipótesis nula determina la estructura de la prueba de hipótesis.

Pruebas de hipótesis unidireccionales versus bidireccionales

A menudo, en una prueba A / B, está probando una nueva opción (por ejemplo, B) contra una opción
predeterminada establecida (A), y se presume que seguirá con la opción predeterminada a menos
que la nueva opción demuestre ser definitivamente mejor. En tal caso, desea una prueba de hipótesis
para evitar ser engañado por el azar en la dirección que favorece
B. No le importa ser engañado por el azar en la otra dirección, porque se quedaría con A a
menos que B demuestre definitivamente mejor. Entonces quieres undireccional
hipótesis alternativa (B es mejor que A). En tal caso, utiliza unde una sola mano (o prueba de hipótesis
de una cola). Esto significa que la probabilidad extrema da como resultado que solo una dirección
cuente hacia el valor p.

Si desea que una prueba de hipótesis lo proteja de ser engañado por el azar en cualquier
dirección, la hipótesis alternativa es bidireccionalA es diferente de B; podría ser más grande o
más pequeño). En tal caso, utiliza unbidireccionalo hipótesis de dos colas). Esto significa que los
resultados de probabilidad extrema en cualquier dirección cuentan para el valor p.

Una prueba de hipótesis de una cola a menudo se ajusta a la naturaleza de la toma de decisiones A /
B, en la que se requiere una decisión y a una opción generalmente se le asigna el estado
"predeterminado" a menos que la otra resulte mejor. Software, sin embargo, incluidoR y scipy en
Pitón, generalmente proporciona una prueba de dos colas en su salida predeterminada, y muchos
estadísticos optan por la prueba de dos colas más conservadora solo para evitar discusiones. Una cola
versus dos colas es un tema confuso, y no tan relevante para la ciencia de datos, donde la precisión
de los cálculos del valor p no es muy importante.

Pruebas de hipótesis | 95
Ideas claves

• Una hipótesis nula es una construcción lógica que incorpora la noción de que no ha
sucedido nada especial y que cualquier efecto que observe se debe al azar.

• La prueba de hipótesis asume que la hipótesis nula es verdadera, crea un “modelo


nulo” (un modelo de probabilidad) y prueba si el efecto que observa es un resultado
razonable de ese modelo.

Otras lecturas
• El paseo del borracho de Leonard Mlodinow (Pantheon, 2008) es una encuesta legible de las
formas en que "la aleatoriedad gobierna nuestras vidas".

• Texto de estadística clásico de David Freedman, Robert Pisani y Roger Purves Estadísticas, 4ª ed.
(WW Norton, 2007), tiene excelentes tratamientos no matemáticos de la mayoría de los temas de
estadística, incluida la prueba de hipótesis.

• Introducción a las estadísticas y análisis: una perspectiva de remuestreo por Peter Bruce (Wiley,
2014) desarrolla conceptos de prueba de hipótesis utilizando remuestreo.

Remuestreo
Remuestreo en estadística significa muestrear repetidamente valores a partir de datos observados, con el
objetivo general de evaluar la variabilidad aleatoria en una estadística. También se puede utilizar para
evaluar y mejorar la precisión de algunos modelos de aprendizaje automático (p. Ej., Las predicciones de los
modelos de árboles de decisión construidos en varios conjuntos de datos de arranque se pueden promediar
en un proceso conocido comoharpillera-ver “Embolsado y el bosque aleatorio” en la página 259).

Hay dos tipos principales de procedimientos de remuestreo: el oreja y permutación


pruebas. El bootstrap se usa para evaluar la confiabilidad de una estimación; se discutió en el capítulo
anterior (ver“El Bootstrap” en la página 61). Las pruebas de permutación se utilizan para probar
hipótesis, que generalmente involucran a dos o más grupos, y las discutimos en esta sección.

96 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Términos clave para el remuestreo

Prueba de permutación

El procedimiento de combinar dos o más muestras juntas y reasignar aleatoriamente (o


exhaustivamente) las observaciones a nuevas muestras.

Sinónimos
Prueba de aleatorización, prueba de permutación aleatoria, prueba exacta

Remuestreo
Extracción de muestras adicionales ("remuestreos") de un conjunto de datos observados.

Con o sin recambio


En el muestreo, si un artículo se devuelve o no a la muestra antes del próximo sorteo.

Prueba de permutación

en un permutación procedimiento, se involucran dos o más muestras, generalmente los grupos


en una prueba A / B u otra prueba de hipótesis. Permutar significa cambiar el orden de un
conjunto de valores. El primer paso en unprueba de permutación de una hipótesis es combinar
los resultados de los grupos A y B (y, si se usa, C, D,…). Ésta es la materialización lógica de la
hipótesis nula de que los tratamientos a los que estuvieron expuestos los grupos no difieren.
Luego probamos esa hipótesis extrayendo grupos al azar de este conjunto combinado y viendo
cuánto se diferencian entre sí. El procedimiento de permutación es el siguiente:

1. Combine los resultados de los diferentes grupos en un solo conjunto de datos.

2. Mezcle los datos combinados y luego dibuje aleatoriamente (sin reemplazo) una nueva
muestra del mismo tamaño que el grupo A (claramente contendrá algunos datos de los
otros grupos).

3. De los datos restantes, extraiga aleatoriamente (sin reemplazo) una nueva muestra del mismo
tamaño que el grupo B.

4. Haga lo mismo para los grupos C, D, etc. Ahora ha recopilado un conjunto de remuestreos
que reflejan los tamaños de las muestras originales.

5. Cualquiera que sea la estadística o estimación que se calculó para las muestras originales (por ejemplo,
diferencia en las proporciones de los grupos), calcúlela ahora para las nuevas muestras y regístrelo;
esto constituye una iteración de permutación.

6. Repite los pasos anteriores. R veces para producir una distribución de permutación del estadístico de
prueba.

Remuestreo | 97
Ahora regrese a la diferencia observada entre grupos y compárela con el conjunto de diferencias
permutadas. Si la diferencia observada se encuentra dentro del conjunto de diferencias permutadas,
entonces no hemos probado nada; la diferencia observada está dentro del rango de lo que podría
producir el azar. Sin embargo, si la diferencia observada se encuentra fuera de la mayor parte de la
distribución de permutación, entonces concluimos que la probabilidad esno responsable. En términos
técnicos, la diferencia esEstadísticamente significante. (Ver “Significación estadística y valores p” en la
página 103.)

Ejemplo: adherencia de la web

Una empresa que vende un servicio de valor relativamente alto quiere probar cuál de las dos
presentaciones web hace un mejor trabajo de venta. Debido al alto valor del servicio que se
vende, las ventas son poco frecuentes y el ciclo de ventas es largo; tomaría demasiado tiempo
acumular suficientes ventas para saber qué presentación es superior. Entonces, la empresa
decide medir los resultados con una variable proxy, utilizando la página interior detallada que
describe el servicio.

A apoderado variable es aquella que representa la verdadera variable de interés,


que puede no estar disponible, ser demasiado costosa o llevar demasiado tiempo
medirla. En la investigación climática, por ejemplo, el contenido de oxígeno de los
núcleos de hielo antiguos se utiliza como un proxy de la temperatura. Es útil tener al
menosalgunos datos sobre la verdadera variable de interés, por lo que se puede
evaluar la fuerza de su asociación con el proxy.

Una variable proxy potencial para nuestra empresa es el número de clics en la página de destino detallada.
Una mejor es cuánto tiempo pasan las personas en la página. Es razonable pensar que una presentación web
(página) que atraiga la atención de la gente por más tiempo generará más ventas. Por lo tanto, nuestra
métrica es el tiempo promedio de sesión, comparando la página A con la página B.

Debido al hecho de que se trata de una página interior con un propósito especial, no recibe una gran
cantidad de visitantes. También tenga en cuenta que Google Analytics, que es la forma en que medimos el
tiempo de sesión, no puede medir el tiempo de sesión de la última sesión que visita una persona. Sin
embargo, en lugar de eliminar esa sesión de los datos, Google Analytics la registra como cero, por lo que los
datos requieren un procesamiento adicional para eliminar esas sesiones. El resultado es un total de 36
sesiones para las dos presentaciones diferentes, 21 para la página A y 15 para la página B.
ggplot, podemos comparar visualmente los tiempos de sesión usando diagramas de caja uno al lado del otro:

ggplot(session_times, aes(X=Página, y=Hora)) +


geom_boxplot()

98 | Capítulo 3: Experimentos estadísticos y pruebas de significación


La diagrama de caja de los pandas el comando usa el argumento de palabra clave por para crear la figura:

hacha = session_times.diagrama de caja(por='Página', columna='Hora')


hacha.set_xlabel('')
hacha.set_ylabel('Tiempo (en segundos)')
plt.subtítulo('')

El diagrama de caja, que se muestra en Figura 3-3, indica que la página B conduce a sesiones más largas que
la página A. Las medias para cada grupo se pueden calcular en R como sigue:

mean_a <- significar(session_times[session_times['Página'] == 'Página A', 'Hora'])


mean_b <- significar(session_times[session_times['Página'] == 'Página B', 'Hora'])
mean_b - mean_a
[1] 35.66667

En Pitón, filtramos el pandas marco de datos primero por página y luego determinar la media de
la Hora columna:

mean_a = session_times[session_times.Página == 'Página A'].Hora.significar()


mean_b = session_times[session_times.Página == 'Página B'].Hora.significar()
mean_b - mean_a

La página B tiene tiempos de sesión superiores a los de la página A en 35,67 segundos, en


promedio. La pregunta es si esta diferencia está dentro del rango de lo que podría producir el
azar, es decir, si es estadísticamente significativa. Una forma de responder a esto es aplicar una
prueba de permutación: combine todos los tiempos de sesión juntos y luego repetidamente
barajarlos y dividirlos en grupos de 21 (recuerde que norteA = 21 para la página A) y 15 (norteB =
15 para la página B).

Para aplicar una prueba de permutación, necesitamos una función para asignar aleatoriamente los 36
tiempos de sesión a un grupo de 21 (página A) y un grupo de 15 (página B). LaR La versión de esta
función es:

perm_fun <- función(X, n / A, nótese bien) {

norte <- n / A + nótese bien

idx_b <- muestra(1:norte, nótese bien)


idx_a <- setdiff(1:norte, idx_b)
mean_diff <- significar(X[idx_b]) - significar(X[idx_a])
regreso(mean_diff)
}

La Pitón La versión de esta prueba de permutación es la siguiente:

def perm_fun(X, n / A, nótese bien):


norte = n / A + nótese bien

idx_B = colocar(aleatorio.muestra(distancia(norte), nótese bien))


idx_A = colocar(distancia(norte)) - idx_B
regreso X.loc[idx_B].significar() - X.loc[idx_A].significar()

Remuestreo | 99
Figura 3-3. Tiempos de sesión para las páginas web A y B

Esta función funciona por muestreo (sin reemplazo) norteB índices y asignación
ellos al grupo B; el restantenorteA los índices se asignan al grupo A. Se devuelve
la diferencia entre las dos medias. Llamar a esta funciónR = 1,000 veces y
especificando norteA = 21 y norteB = 15 conduce a una distribución de diferencias en los tiempos de sesión

que se puede trazar como un histograma. EnR esto se hace de la siguiente manera usando el hist
función:
perm_diffs <- reps(0, 1000)
por (yo en 1:1000) {
perm_diffs[I] = perm_fun(session_times[, 'Hora'], 21, 15)
}
hist(perm_diffs, xlab='Diferencias de tiempo de sesión (en segundos)')
abline(v=mean_b - mean_a)

En Pitón, podemos crear un gráfico similar usando matplotlib:

perm_diffs = [perm_fun(session_times.Hora, n / A, nótese bien) por _ en distancia(1000)]

higo, hacha = plt.subtramas(figsize=(5, 5))


hacha.hist(perm_diffs, contenedores=11, rwidth=0,9)
hacha.axvline(X = mean_b - mean_a, color='negro', lw=2)

100 | Capítulo 3: Experimentos estadísticos y pruebas de significación


hacha.texto(50, 190, 'Observado\nortediferencia', bbox={'color de la cara':'blanco'})
hacha.set_xlabel('Diferencias de tiempo de sesión (en segundos)')
hacha.set_ylabel('Frecuencia')

El histograma, en Figura 3-4 muestra que la diferencia media de permutaciones aleatorias a menudo
excede la diferencia observada en los tiempos de sesión (la línea vertical). Para nuestros resultados,
esto sucede en el 12,6% de los casos:

significar(perm_diffs > (mean_b - mean_a))


---
0,126

Como la simulación utiliza números aleatorios, el porcentaje variará. Por ejemplo, en el


Pitón versión, obtuvimos 12.1%:

notario público.significar(perm_diffs > mean_b - mean_a)


---
0,121

Esto sugiere que la diferencia observada en el tiempo de la sesión entre la página A y la página B está
dentro del rango de variación aleatoria y, por lo tanto, no es estadísticamente significativa.

Figura 3-4. Distribución de frecuencia para las diferencias de tiempo de sesión entre las páginas A y B; la
línea vertical muestra la diferencia observada

Remuestreo | 101
Pruebas de permutación exhaustivas y Bootstrap

Además del procedimiento de barajado aleatorio anterior, también llamado prueba de per‐ mutación
aleatoria o un prueba de aleatorización, hay dos variantes de la prueba de permutación:

• Un prueba de permutación exhaustiva

• A prueba de permutación bootstrap

En una prueba de permutación exhaustiva, en lugar de simplemente mezclar y dividir los datos al
azar, en realidad descubrimos todas las formas posibles en que se podrían dividir. Esto es práctico
solo para tamaños de muestra relativamente pequeños. Con un gran número de cambios repetidos,
los resultados de la prueba de permutación aleatoria se aproximan a los de la prueba de permutación
exhaustiva y se acercan a ellos en el límite. Las pruebas de permutación exhaustivas también se
denominan a vecespruebas exactas, debido a su propiedad estadística de garantizar que el modelo
nulo no probará como "significativo" más que el nivel alfa de la prueba (ver “Significancia estadística y
valores p” en la página 103).

En una prueba de permutación bootstrap, se realizan los dibujos descritos en los pasos 2 y 3 de
la prueba de permutación aleatoria con reemplazo en lugar de sin reemplazo. De esta manera,
el procedimiento de remuestreo modela no solo el elemento aleatorio en la asignación del
tratamiento a un sujeto, sino también el elemento aleatorio en la selección de sujetos de una
población. Ambos procedimientos se encuentran en las estadísticas y la distinción entre ellos es
algo complicada y no tiene consecuencias en la práctica de la ciencia de datos.

Pruebas de permutación: lo fundamental para la ciencia de datos

Las pruebas de permutación son procedimientos heurísticos útiles para explorar el papel de la
variación aleatoria. Son relativamente fáciles de codificar, interpretar y explicar, y ofrecen un desvío
útil en torno al formalismo y el “falso determinismo” de las estadísticas basadas en fórmulas, en las
que la precisión de las “respuestas” de las fórmulas tiende a implicar una certeza injustificada.

Una virtud del remuestreo, en contraste con los enfoques de fórmula, es que se acerca mucho más a
un enfoque de inferencia único para todos. Los datos pueden ser numéricos o binarios. Los tamaños
de las muestras pueden ser iguales o diferentes. No se necesitan suposiciones sobre datos
distribuidos normalmente.

Ideas claves

• En una prueba de permutación, se combinan varias muestras y luego se mezclan.

• Los valores mezclados se dividen en nuevas muestras y se calcula la estadística de


interés.

102 | Capítulo 3: Experimentos estadísticos y pruebas de significación


• A continuación, se repite este proceso y se tabula la estadística remuestreada.

• La comparación del valor observado de la estadística con la distribución remuestreada


le permite juzgar si una diferencia observada entre muestras podría ocurrir por
casualidad.

Otras lecturas
• Pruebas de aleatorización, 4th ed., Por Eugene Edgington y Patrick Onghena
(Chapman & Hall / CRC Press, 2007), pero no se deje llevar por la maraña del
muestreo no aleatorio
• Introducción a las estadísticas y análisis: una perspectiva de remuestreo de Peter Bruce
(Wiley, 2014)

Significación estadística y valores p


La significación estadística es la forma en que los estadísticos miden si un experimento (o incluso un
estudio de datos existentes) produce un resultado más extremo que el que podría producir el azar. Si
el resultado está más allá del ámbito de la variación aleatoria, se dice que es estadísticamente
significativo.

Términos clave de significancia estadística y valores p

valor p
Dado un modelo de azar que incorpora la hipótesis nula, el valor p es la probabilidad de
obtener resultados tan inusuales o extremos como los resultados observados.

Alfa
El umbral de probabilidad de "inusual" que los resultados aleatorios deben superar para que los
resultados reales se consideren estadísticamente significativos.

Error tipo 1
Concluir erróneamente que un efecto es real (cuando se debe al azar).

Error de tipo 2
La conclusión errónea de un efecto se debe al azar (cuando es real).

Significación estadística y valores p | 103


Considere en Tabla 3-2 los resultados de la prueba web mostrados anteriormente.

Tabla 3-2. Tabla 2 × 2 para resultados de experimentos de comercio electrónico

Salir Precio A Precio B

Conversión 200 182


Sin conversión 23.539 22.406

El precio A convierte casi un 5% mejor que el precio B (0,8425% = 200 / (23539 + 200) * 100, frente a
0,8057% = 182 / (22406 + 182) * 100, una diferencia de 0,0368 puntos porcentuales), lo
suficientemente grande como para ser significativo en un negocio de alto volumen. Tenemos más de
45.000 puntos de datos aquí, y es tentador considerar esto como "datos grandes", que no requieren
pruebas de significación estadística (necesarias principalmente para tener en cuenta la variabilidad
muestral en muestras pequeñas). Sin embargo, los porcentajes de conversión son tan bajos (menos
del 1%) que los valores significativos reales (las conversiones) son solo de 100, y el tamaño de muestra
necesario está realmente determinado por estas conversiones. Podemos probar si la diferencia en las
conversiones entre los precios A y B está dentro del rango devariación de oportunidad, utilizando un
procedimiento de remuestreo. Por variación al azar, nos referimos a la variación aleatoria producida
por un modelo de probabilidad que incorpora la hipótesis nula de que no hay diferencia entre las
tasas (ver“La hipótesis nula” en la página 94). El siguiente procedimiento de permutación pregunta: "Si
los dos precios comparten la misma tasa de conversión, ¿podría la variación aleatoria producir una
diferencia tan grande como el 5%?"

1. Coloque las tarjetas etiquetadas con 1 y 0 en una casilla: esto representa la supuesta tasa de
conversión compartida de 382 unos y 45,945 ceros = 0,008246 = 0,8246%.

2. Mezcle y extraiga una nueva muestra de tamaño 23,739 (igual norte como precio A) y
registre cuántos 1.

3. Registre el número de unos en los 22.588 restantes (el mismo norte como precio B).

4. Registre la diferencia en proporción de 1s.


5. Repita los pasos 2 a 4.

6. ¿Con qué frecuencia la diferencia fue> = 0.0368?

104 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Reutilizando la función perm_fun definido en “Ejemplo: adherencia de la Web” en la página 98, podemos crear
un histograma de diferencias permutadas aleatoriamente en la tasa de conversión en R:

obs_pct_diff <- 100 * (200 / 23739 - 182 / 22588)


conversión <- C(reps(0, 45945), reps(1, 382))
perm_diffs <- reps(0, 1000)
por (yo en 1:1000) {
perm_diffs[I] = 100 * perm_fun(conversión, 23739, 22588)
}
hist(perm_diffs, xlab='Tasa de conversión (porcentaje)', principal='')
abline(v=obs_pct_diff)

El correspondiente Pitón el código es:

obs_pct_diff = 100 * (200 / 23739 - 182 / 22588)


impresión(F'Diferencia observada: {obs_pct_diff: .4f}%')
conversión = [0] * 45945
conversión.ampliar([1] * 382)
conversión = pd.Serie(conversión)

perm_diffs = [100 * perm_fun(conversión, 23739, 22588)


por _ en distancia(1000)]

higo, hacha = plt.subtramas(figsize=(5, 5))


hacha.hist(perm_diffs, contenedores=11, rwidth=0,9)
hacha.axvline(X=obs_pct_diff, color='negro', lw=2)
hacha.texto(0,06, 200, 'Observado\nortediferencia', bbox={'color de la cara':'blanco'})
hacha.set_xlabel('Tasa de conversión (porcentaje)')
hacha.set_ylabel('Frecuencia')

Vea el histograma de 1000 resultados remuestreados en Figura 3-5Da la casualidad de que en este
caso la diferencia observada de 0.0368% está dentro del rango de variación aleatoria.

Significación estadística y valores p | 105


Figura 3-5. Distribución de frecuencia para la diferencia en las tasas de conversión entre los precios A
yB

valor p
El simple hecho de mirar el gráfico no es una forma muy precisa de medir la importancia
estadística, por lo que es más interesante el valor p. Esta es la frecuencia con la que el modelo
aleatorio produce un resultado más extremo que el resultado observado. Podemos estimar un
valor p de nuestra prueba de permutación tomando la proporción de veces que la prueba de
permutaciones produce una diferencia igual o mayor que la diferencia observada:

significar(perm_diffs > obs_pct_diff) [1


] 0.308

notario público.significar([diff > obs_pct_diff por diff en perm_diffs])

Aquí, ambos R y Pitón utilice el hecho de que verdadero se interpreta como 1 y falso como 0.

El valor p es 0.308, lo que significa que esperaríamos lograr un resultado tan


extremo como este, o un resultado más extremo, por azar en el 30% de las veces.

106 | Capítulo 3: Experimentos estadísticos y pruebas de significación


En este caso, no necesitamos usar una prueba de permutación para obtener un valor p. Dado que
tenemos una distribución binomial, podemos aproximar el valor p. EnR código, hacemos esto usando
la función prueba prop .:

> prueba prop.(X=C(200, 182), norte=C(23739, 22588), alternativa='mayor que')

2-prueba de muestra para la igualdad de proporciones con corrección de continuidad

datos: C(200, 182) fuera de C(23739, 22588)


X-al cuadrado = 0.14893, df = 1, pag-valor = 0.3498
hipótesis alternativa: mayor que
95 intervalo de confianza porcentual:
- 0,001057439 1,000000000
estimaciones de muestra:
apuntalar 1 apuntalar 2

0,008424955 0,008057376

El argumento X es el número de éxitos de cada grupo y el argumento norte es el número


de ensayos.

El método scipy.stats.chi2_contingency toma los valores como se muestra en Tabla 3-2:

supervivientes = notario público.formación([[200, 23739 - 200], [182, 22588 - 182]])


chi2, p_value, df, _ = estadisticas.chi2_contingencia(supervivientes)

impresión(F'valor p para la prueba unilateral: {p_value / 2: .4f}')

La aproximación normal arroja un valor p de 0.3498, que está cerca del valor p obtenido
de la prueba de permutación.

Alfa
Los estadísticos desaprueban la práctica de dejar a la discreción del investigador determinar si
un resultado es "demasiado inusual" para ocurrir por casualidad. Más bien, un umbral se
especifica de antemano, como en "más extremo que el 5% de la probabilidad de resultados
(hipótesis nula)"; este umbral se conoce comoalfa. Los niveles alfa típicos son 5% y 1%.
Cualquier nivel elegido es una decisión arbitraria; no hay nada en el proceso que garantice
decisiones correctas el x% de las veces. Esto se debe a que la pregunta de probabilidad que se
responde esno "¿Cuál es la probabilidad de que esto sucediera por casualidad?" sino más bien
"Dado un modelo de probabilidad, ¿cuál es la probabilidad de un resultado tan extremo?"
Luego deducimos hacia atrás sobre la idoneidad del modelo de azar, pero ese juicio no conlleva
una probabilidad. Este punto ha sido objeto de mucha confusión.

controversia sobre el valor p

Una controversia considerable ha rodeado el uso del valor p en los últimos años. Una revista de psicología ha
llegado a "prohibir" el uso de valores p en los artículos presentados con el argumento de que las decisiones
de publicación basadas únicamente en el valor p estaban dando como resultado la publicación de una
investigación deficiente. Demasiados investigadores, sólo vagamente conscientes de la

Significación estadística y valores p | 107


El valor p realmente significa, buscar en los datos y entre las diferentes hipótesis posibles para probar, hasta
que encuentren una combinación que produzca un valor p significativo y, por lo tanto, un artículo adecuado
para su publicación.

El problema real es que la gente quiere más significado del valor p del que contiene. Esto
es lo que haríamoscomo el valor p para transmitir:

La probabilidad de que el resultado se deba al azar.

Esperamos un valor bajo, por lo que podemos concluir que hemos probado algo. Esta es la
cantidad de editores de revistas que estaban interpretando el valor p. Pero aquí está el valor p
Realmente representa:

La probabilidad de que, dado un modelo de oportunidad, resultados tan extremos como los resultados observados podrían

ocurrir.

La diferencia es sutil pero real. Un valor p significativo no lo lleva tan lejos en el camino
hacia la "prueba" como parece prometer. El fundamento lógico para la conclusión
"estadísticamente significativo" es algo más débil cuando se comprende el significado real
del valor p.

En marzo de 2016, la Asociación Estadounidense de Estadística, después de muchas deliberaciones


internas, reveló el grado de malentendido sobre los valores p cuando emitió una declaración de
advertencia sobre su uso. LaDeclaración de ASA destacó seis principios para investigadores y editores
de revistas:

1. Los valores p pueden indicar cuán incompatibles son los datos con un modelo estadístico
específico.

2. Los valores P no miden la probabilidad de que la hipótesis estudiada sea cierta, o la


probabilidad de que los datos se hayan producido únicamente por azar.

3. Las conclusiones científicas y las decisiones comerciales o políticas no deben basarse


únicamente en si un valor p supera un umbral específico.

4. Una inferencia adecuada requiere informes y transparencia completos.

5. Un valor p, o significación estadística, no mide el tamaño de un efecto o la importancia


de un resultado.

6. Por sí mismo, un valor p no proporciona una buena medida de evidencia con respecto a un
modelo o hipótesis.

108 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Significado práctico

Incluso si un resultado es estadísticamente significativo, eso no significa que tenga importancia práctica. Una
pequeña diferencia que no tiene un significado práctico puede ser estadísticamente significativa si surge de
muestras suficientemente grandes. Las muestras grandes aseguran que los efectos pequeños y no
significativos puedan, no obstante, ser lo suficientemente grandes como para descartar el azar como
explicación. Descartar el azar no hace que mágicamente sea importante un resultado que, en esencia, carece
de importancia.

Errores tipo 1 y tipo 2


Al evaluar la significancia estadística, son posibles dos tipos de error:

• Un error de tipo 1, en el que concluye erróneamente que un efecto es real, cuando en


realidad se debe al azar.

• Un error de tipo 2, en el que concluye erróneamente que un efecto no es real (es decir,
debido al azar), cuando en realidad es real.

En realidad, un error de tipo 2 no es tanto un error como un juicio de que el tamaño de la muestra es
demasiado pequeño para detectar el efecto. Cuando un valor p no alcanza la significación estadística (por
ejemplo, supera el 5%), lo que realmente estamos diciendo es "efecto no probado". Podría ser que una
muestra más grande produjera un valor p menor.

La función básica de las pruebas de significancia (también llamadas pruebas de hipótesis) es proteger
contra ser engañado por el azar; por lo tanto, normalmente están estructurados para minimizar los
errores de Tipo 1.

Ciencia de datos y valores p


El trabajo que hacen los científicos de datos no suele estar destinado a su publicación en revistas
científicas, por lo que el debate sobre el valor de un valor p es algo académico. Para un científico de
datos, un valor p es una métrica útil en situaciones en las que desea saber si el resultado de un
modelo que parece interesante y útil está dentro del rango de variabilidad de probabilidad normal.
Como herramienta de decisión en un experimento, un valor p no debe considerarse un control, sino
simplemente otro punto de información que influye en una decisión. Por ejemplo, los valores p a
veces se utilizan como entradas intermedias en algunos modelos estadísticos o de aprendizaje
automático; una característica puede incluirse o excluirse de un modelo en función de su valor p.

Significación estadística y valores p | 109


Ideas claves

• Las pruebas de significación se utilizan para determinar si un efecto observado se encuentra dentro del
rango de variación aleatoria de un modelo de hipótesis nula.

• El valor p es la probabilidad de que se produzcan resultados tan extremos como los resultados
observados, dado un modelo de hipótesis nula.

• El valor alfa es el umbral de "inusualidad" en un modelo de probabilidad de hipótesis


nula.

• Las pruebas de significación han sido mucho más relevantes para la presentación de informes formales de

investigación que para la ciencia de datos (pero se han desvanecido recientemente, incluso para la primera).

Otras lecturas
• Stephen Stigler, "Fisher y el nivel del 5%", Oportunidad 21, no. 4 (2008): 12. Este artículo es
un breve comentario sobre el libro de Ronald Fisher de 1925Métodos estadísticos para
investigadores (Oliver & Boyd), y en el énfasis de Fisher en el nivel de significancia del 5%.

• Ver también “Pruebas de hipótesis” en la página 93 y la lectura adicional mencionada allí.

Pruebas t

Existen numerosos tipos de pruebas de significación, dependiendo de si los datos


comprenden datos de recuento o datos medidos, cuántas muestras hay y qué se está
midiendo. Uno muy común es elprueba t, el nombre de la distribución t de Student,
desarrollada originalmente por WS Gosset para aproximar la distribución de una sola
media muestral (ver “Distribución t de Student” en la página 75).

Términos clave para las pruebas t

Estadística de prueba

Métrica de la diferencia o efecto de interés.

estadística t
Una versión estandarizada de estadísticas de prueba comunes, como medias.

distribución t
Una distribución de referencia (en este caso derivada de la hipótesis nula), con la que se
puede comparar el estadístico t observado.

110 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Todas las pruebas de significancia requieren que especifique un Estadística de prueba para medir el
efecto que le interesa y ayudarlo a determinar si ese efecto observado se encuentra dentro del rango
de variación de probabilidad normal. En una prueba de remuestreo (ver la discusión de
permutaciones en"Prueba de permutación" en la página 97), la escala de los datos no importa. Usted
crea la distribución de referencia (hipótesis nula) a partir de los datos en sí y usa la estadística de
prueba tal como está.

En las décadas de 1920 y 1930, cuando se estaban desarrollando las pruebas de hipótesis estadísticas,
no era factible mezclar aleatoriamente los datos miles de veces para hacer una prueba de
remuestreo. Los estadísticos encontraron que una buena aproximación a la distribución de
permutación (barajada) era la prueba t, basada en la distribución t de Gosset. Se utiliza para la
comparación de dos muestras muy común (prueba A / B) en la que los datos son numéricos. Pero
para que la distribución t se utilice sin tener en cuenta la escala, se debe utilizar una forma
estandarizada del estadístico de prueba.

En esta etapa, un texto estadístico clásico mostraría varias fórmulas que incorporan la
distribución de Gosset y demuestran cómo estandarizar sus datos para compararlos con
la distribución t estándar. Estas fórmulas no se muestran aquí porque todo el software
estadístico, así comoR y Pitón, incluye comandos que incorporan la fórmula. EnR,
la función es t.prueba:
> t.prueba(Hora ~ Página, datos=session_times, alternativa='menos')

Welch dos muestras t-prueba

datos: Tiempo por página t = -1.0983, df = 27.693,


pag-valor = 0.1408
hipótesis alternativa: la verdadera diferencia de medias es menor que 0 95
intervalo de confianza porcentual:
- Inf 19.59674
estimaciones de muestra:
media en el grupo Página A media en el grupo Página B
126.3333 162.0000

La función scipy.stats.ttest_ind se puede utilizar en Pitón:


res = estadisticas.ttest_ind(session_times[session_times.Página == 'Página A'].Hora,
session_times[session_times.Página == 'Página B'].Hora,
igual_var=Falso)
impresión(F'valor p para la prueba de un solo lado: {res.pvalue / 2: .4f}')

La hipótesis alternativa es que la media del tiempo de sesión para la página A es menor que la de la
página B. El valor p de 0,1408 está bastante cerca de los valores p de la prueba de permutación de
0.121 y 0.126 (ver “Ejemplo: adherencia de la Web” en la página 98).

En un modo de remuestreo, estructuramos la solución para reflejar los datos observados y la


hipótesis que se va a probar, sin preocuparnos por si los datos son numéricos o binarios, si los
tamaños de la muestra están equilibrados, las varianzas de la muestra o una variedad de otras
características. tors. En el mundo de las fórmulas, se presentan muchas variaciones, y pueden ser

Pruebas t | 111
desconcertante. Los estadísticos necesitan navegar por ese mundo y aprender su mapa, pero los
científicos de datos no; por lo general, no están en el negocio de sudar los detalles de las pruebas de
hipótesis y los intervalos de confianza como lo haría un investigador que prepara un artículo para una
presentación.

Ideas claves

• Antes de la llegada de las computadoras, las pruebas de remuestreo no eran prácticas y los estadísticos
usaban distribuciones de referencia estándar.

• A continuación, se podría estandarizar una estadística de prueba y compararla con la distribución


de referencia.

• Uno de estos estadísticos estandarizados ampliamente utilizados es el estadístico t.

Otras lecturas
• Cualquier texto introductorio de estadística tendrá ilustraciones de la estadística t
y sus usos; dos buenos sonEstadísticas, 4a ed., Por David Freedman, Robert
Pisani y Roger Purves (WW Norton, 2007), y La práctica básica de la estadística,
8a ed., Por David S. Moore, William I. Notz y Michael A. Fligner (WH Freeman,
2017).
• Para un tratamiento tanto de la prueba t como de los procedimientos de remuestreo en paralelo, consulte
Introducción a las estadísticas y análisis: una perspectiva de remuestreo por Peter Bruce
(Wiley, 2014) o Estadísticas: desbloquear el poder de los datos, 2a ed., Por Robin Lock y
otros cuatro miembros de la familia Lock (Wiley, 2016).

Pruebas múltiples
Como mencionamos anteriormente, hay un dicho en las estadísticas: "Torture los datos el
tiempo suficiente y confesará". Esto significa que si observa los datos a través de suficientes
perspectivas diferentes y hace suficientes preguntas, casi invariablemente encontrará un efecto
estadísticamente significativo.

Por ejemplo, si tiene 20 variables predictoras y una variable de resultado, todas aleatoriamente generado, las
probabilidades son bastante buenas de que al menos un predictor resulte (falsamente) estadísticamente
significativo si realiza una serie de 20 pruebas de significancia en el nivel alfa = 0,05. Como se discutió
anteriormente, esto se llamaError de tipo 1. Puede calcular esta probabilidad encontrando primero la
probabilidad de que todos correctamente prueba no significativa al nivel 0.05. La probabilidad de queuno
comprobará correctamente que no es significativo es 0,95, por lo que la probabilidad de que las 20 pruebas
correctamente no sean significativas es 0,95 × 0,95 × 0,95…, o

112 | Capítulo 3: Experimentos estadísticos y pruebas de significación


0,9520 = 0,36.1 La probabilidad de que al menos un predictor dé (falsamente) una prueba significativa es
la otra cara de esta probabilidad, o 1 - (probabilidad de que todo no sea significativo) =
0,64. Esto se conoce comoinflación alfa.

Este problema está relacionado con el problema del sobreajuste en la minería de datos o
"ajustar el modelo al ruido". Cuantas más variables agregue o más modelos ejecute, mayor
será la probabilidad de que algo emerja como "significativo" por casualidad.

Términos clave para pruebas múltiples

Error tipo 1
Concluir erróneamente que un efecto es estadísticamente significativo.

Tasa de falsos descubrimientos

A través de múltiples pruebas, la tasa de cometer un error de tipo 1.

Inflación alfa
El fenómeno de las pruebas múltiples, en el que alfa, la probabilidad de cometer un error de
tipo 1 aumenta a medida que realiza más pruebas.

Ajuste de valores p
Contabilización de la realización de varias pruebas con los mismos datos.

Sobreajuste
Encajando el ruido.

En las tareas de aprendizaje supervisado, un conjunto de exclusión en el que los modelos se evalúan en base a datos
que el modelo no ha visto antes mitiga este riesgo. En las tareas estadísticas y de aprendizaje automático que no
involucran un conjunto de exclusión etiquetado, persiste el riesgo de llegar a conclusiones basadas en el ruido
estadístico.

En estadística, existen algunos procedimientos destinados a abordar este problema en


circunstancias muy específicas. Por ejemplo, si está comparando resultados en varios grupos
de tratamiento, puede hacer varias preguntas. Entonces, para los tratamientos A – C, podría
preguntar:

• ¿A es diferente de B?
• ¿B es diferente de C?
• ¿A es diferente de C?

1 La regla de la multiplicación establece que la probabilidad de norte Todos los eventos independientes que suceden son el producto de
las probabilidades individuales. Por ejemplo, si usted y yo lanzamos una moneda una vez, la probabilidad de que su moneda y la mía
caigan cara es 0.5 × 0.5 = 0.25.

Pruebas múltiples | 113


O, en un ensayo clínico, es posible que desee ver los resultados de una terapia en varias etapas.
En cada caso, está haciendo varias preguntas, y con cada pregunta, está aumentando la
posibilidad de ser engañado por el azar. Los procedimientos de ajuste en las estadísticas
pueden compensar esto estableciendo la barra de significación estadística de manera más
estricta de lo que se establecería para una única prueba de hipótesis. Estos procedimientos de
ajuste normalmente implican "dividir el alfa" según el número de pruebas. Esto da como
resultado un alfa más pequeño (es decir, una barra más estricta de significación estadística)
para cada prueba. Uno de esos procedimientos, el ajuste de Bonferroni, simplemente divide el
alfa por el número de comparaciones. Otro, utilizado para comparar las medias de varios
grupos, es la "diferencia significativa honesta" de Tukey, oHSD de Tukey. Esta prueba se aplica a
la diferencia máxima entre las medias de los grupos, comparándola con un punto de referencia
basado en la t- distribuciónaproximadamente equivalente a mezclar todos los valores juntos,
repartir grupos remuestreados del mismo tamaño que los grupos originales y encontrar la
diferencia máxima entre las medias de los grupos remuestreados).

Sin embargo, el problema de las comparaciones múltiples va más allá de estos casos altamente
estructurados y está relacionado con el fenómeno del “dragado” de datos repetidos que da
lugar al dicho sobre la tortura de los datos. Dicho de otra manera, dados datos suficientemente
complejos, si no ha encontrado algo interesante, simplemente no ha buscado lo suficiente.
Ahora hay más datos disponibles que nunca, y el número de artículos de revistas publicados
casi se duplicó entre 2002 y 2010. Esto da lugar a muchas oportunidades para encontrar algo
interesante en los datos, incluidos problemas de multiplicidad como:

• Comprobación de múltiples diferencias por pares entre grupos

• Observando los resultados de múltiples subgrupos ("no encontramos ningún efecto significativo del tratamiento
en general, pero sí encontramos un efecto para las mujeres solteras menores de 30 años")

• Probar muchos modelos estadísticos

• Incluir muchas variables en modelos


• Hacer una serie de preguntas diferentes (es decir, diferentes resultados posibles)

114 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Tasa de descubrimiento falso

El termino tasa de descubrimiento falso se utilizó originalmente para


describir la velocidad a la que un conjunto dado de pruebas de hipótesis
identificaría falsamente un efecto significativo. Se volvió particularmente
útil con el advenimiento de la investigación genómica, en la que se
podrían realizar un gran número de pruebas estadísticas como parte de
un proyecto de secuenciación de genes. En estos casos, el término se
aplica al protocolo de prueba, y un solo "descubrimiento" falso se refiere
al resultado de una prueba de hipótesis (por ejemplo, entre dos
muestras). Los investigadores buscaron establecer los parámetros del
proceso de prueba para controlar la tasa de falsos descubrimientos en
un nivel específico. El término también se ha utilizado para la clasificación
en la minería de datos; es la tasa de clasificación errónea dentro de las
predicciones de clase 1. O, dicho de otra manera, es la probabilidad de
que un "descubrimiento" (etiquetar un registro como "1") sea falso.
Capítulo 5 y “El problema de las clases raras” en la página 223).

Por una variedad de razones, incluyendo especialmente este problema general de “multiplicidad”,
más investigación no significa necesariamente una mejor investigación. Por ejemplo, la compañía
farmacéutica Bayer descubrió en 2011 que cuando intentó replicar 67 estudios científicos, solo pudo
replicar completamente 14 de ellos. Casi dos tercios no se pudieron reproducir en absoluto.

En cualquier caso, los procedimientos de ajuste para pruebas estadísticas muy definidas y estructuradas son
demasiado específicos e inflexibles para ser de uso general para los científicos de datos. La conclusión para
los científicos de datos sobre multiplicidad es:

• Para el modelado predictivo, el riesgo de obtener un modelo ilusorio cuya aparente eficacia es en
gran parte un producto de la casualidad se mitiga mediante la validación cruzada (ver
“Validación cruzada” en la página 155) y el uso de una muestra reservada.

• Para otros procedimientos sin un conjunto de exclusión etiquetado para verificar el modelo, debe confiar
en:

- Conciencia de que cuanto más consulta y manipula los datos, mayor es el papel que
puede desempeñar el azar.

- Heurísticas de remuestreo y simulación para proporcionar puntos de referencia


aleatorios con los que comparar los resultados observados.

Pruebas múltiples | 115


Ideas claves

• La multiplicidad en un estudio de investigación o proyecto de minería de datos


(comparaciones múltiples, muchas variables, muchos modelos, etc.) aumenta el riesgo de
concluir que algo es significativo por casualidad.

• Para situaciones que involucran múltiples comparaciones estadísticas (es decir, múltiples pruebas
de significancia), existen procedimientos de ajuste estadístico.

• En una situación de minería de datos, el uso de una muestra reservada con variables de resultado
etiquetadas puede ayudar a evitar resultados engañosos.

Otras lecturas
• Para una breve exposición de un procedimiento (prueba de Dunnett) para ajustar para múltiples
comparaciones, vea David Lane texto de estadísticas en línea.

• Megan Goldman ofrece una tratamiento un poco más largo del procedimiento de ajuste de
Bonferroni.

• Para un tratamiento en profundidad de procedimientos estadísticos más flexibles para ajustar los valores
p, consulte Pruebas múltiples basadas en remuestreos por Peter Westfall y Stanley Young (Wiley, 1993).

• Para una discusión sobre la partición de datos y el uso de muestras reservadas en el


modelado predictivo, consulte el Capítulo 2 de Minería de datos para análisis empresarial,
por Galit Shmueli, Peter Bruce, Nitin Patel, Peter Gedeck, Inbal Yahav y Kenneth
Lichtendahl (Wiley, 2007-2020, con ediciones para R, Python, Excel y JMP).

Grados de libertad
En la documentación y la configuración de muchas pruebas estadísticas y distribuciones de
probabilidad, verá una referencia a los "grados de libertad". El concepto se aplica a estadísticas
calculadas a partir de datos de muestra y se refiere al número de valores que pueden variar
libremente. Por ejemplo, si conoce la media de una muestra de 10 valores, hay 9 grados de
libertad (una vez que conozca 9 de los valores de la muestra, se puede calcular el décimo y no
es libre de variar). El parámetro de grados de libertad, aplicado a muchas distribuciones de
probabilidad, afecta la forma de la distribución.

El número de grados de libertad es una entrada para muchas pruebas estadísticas. Por
ejemplo, grados de libertad es el nombre que se le da alnorte - 1 denominador visto en
los cálculos de varianza y desviación estándar. ¿Por qué eso importa? Cuando usa una
muestra para estimar la varianza de una población, terminará con una estimación que es

116 | Capítulo 3: Experimentos estadísticos y pruebas de significación


ligeramente sesgado hacia abajo si usa norte en el denominador. Si utilizanorte - 1 en el
denominador, la estimación estará libre de ese sesgo.

Términos clave para los grados de libertad

n o tamaño de la muestra

El número de observaciones (también llamado filas o registros) en los datos.

df
Grados de libertad.

Una gran parte de un curso o texto de estadística tradicional es consumida por varias pruebas
estándar de hipótesis (prueba t, prueba F, etc.). Cuando las estadísticas de muestra están
estandarizadas para su uso en fórmulas estadísticas tradicionales, los grados de libertad son parte del
cálculo de estandarización para garantizar que sus datos estandarizados coincidan con la distribución
de referencia adecuada (distribución t, distribución F, etc.).

¿Es importante para la ciencia de datos? En realidad, no, al menos en el contexto de las pruebas de
significación. Por un lado, las pruebas estadísticas formales se utilizan con moderación en la ciencia de datos.
Por otro lado, el tamaño de los datos suele ser lo suficientemente grande como para que rara vez haga una
diferencia real para un científico de datos si, por ejemplo, el denominador tienenorte o norte - 1. (Como norte
se hace grande, el sesgo que vendría de usar norte en el denominador desaparece.)

Sin embargo, hay un contexto en el que es relevante: el uso de variables factorizadas en la


regresión (incluida la regresión logística). Algunos algoritmos de regresión se bloquean si están
presentes variables predictoras exactamente redundantes. Esto ocurre con mayor frecuencia al
factorizar variables categóricas en indicadores binarios (variables ficticias). Considere la variable
"día de la semana". Aunque hay siete días de la semana, solo hay seis grados de libertad para
especificar el día de la semana. Por ejemplo, una vez que sepa que el día de la semana no es de
lunes a sábado, sabrá que debe ser domingo. La inclusión de los indicadores de lunes a sábado
significa queademás incluyendo el domingo haría que la regresión fallara, debido a un
multicolinealidad error.

Ideas claves

• El número de grados de libertad (gl) forma parte del cálculo para estandarizar las
estadísticas de prueba para que puedan compararse con distribuciones de referencia
(distribución t, distribución F, etc.).

• El concepto de grados de libertad se encuentra detrás de la factorización de variables


categóricas en norte - 1 indicador o variables ficticias al hacer una regresión (para evitar
multicolinealidad).

Grados de libertad | 117


Otras lecturas
Existen varios tutoriales web sobre grados de libertad.

ANOVA
Supongamos que, en lugar de una prueba A / B, tuviéramos una comparación de varios grupos,
digamos A / B / C / D, cada uno con datos numéricos. El procedimiento estadístico que prueba una
diferencia estadísticamente significativa entre los grupos se llamaAnálisis de variación, o ANOVA.

Términos clave para ANOVA

Comparación por pares


Una prueba de hipótesis (por ejemplo, de medias) entre dos grupos entre varios grupos.

Prueba omnibus
Una única prueba de hipótesis de la varianza general entre las medias de varios grupos.

Descomposición de la varianza
Separación de los componentes que contribuyen a un valor individual (p. Ej., Del
promedio general, de una media de tratamiento y de un error residual).

Estadístico F
Una estadística estandarizada que mide hasta qué punto las diferencias entre las medias de
los grupos superan lo que podría esperarse en un modelo de azar.

SS
“Suma de cuadrados”, que se refiere a las desviaciones de algún valor promedio.

Tabla 3-3 muestra la rigidez de cuatro páginas web, definida como la cantidad de segundos que
un visitante pasa en la página. Las cuatro páginas se cambian para que cada visitante de la web
reciba una al azar. Hay un total de cinco visitantes para cada página, y en
Tabla 3-3, cada columna es un conjunto de datos independiente. El primer visor de la página 1 no
tiene conexión con el primer visor de la página 2. Tenga en cuenta que en una prueba web como esta,
no podemos implementar completamente el diseño de muestreo aleatorio clásico en el que cada
visitante se selecciona al azar de una gran población. Debemos llevar a los visitantes tal como vienen.
Los visitantes pueden diferir sistemáticamente según la hora del día, la hora de la semana, la
temporada del año, las condiciones de Internet, el dispositivo que estén usando, etc. Estos factores
deben considerarse como sesgos potenciales cuando se revisan los resultados del experimento.

118 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Tabla 3-3. Adhesión (en segundos) de cuatro páginas web

Página 1 Página 2 Página 3 Página 4

164 178 175 155


172 191 193 166
177 182 171 164
156 185 163 170
195 177 176 168
Promedio 172 185 176 162
Gran promedio 173,75

Ahora tenemos un adivinanza (ver Figura 3-6). Cuando comparábamos solo dos
grupos, era un asunto sencillo; simplemente miramos la diferencia entre las medias de
cada grupo. Con cuatro medias, hay seis posibles comparaciones entre grupos:

• Página 1 en comparación con la página 2

• Página 1 en comparación con la página 3

• Página 1 en comparación con la página 4

• Página 2 en comparación con la página 3

• Página 2 en comparación con la página 4

• Página 3 en comparación con la página 4

Cuanto más tal por parejas comparaciones que hacemos, mayor es la posibilidad de ser
engañado por el azar al azar (ver “Pruebas múltiples” en la página 112). En lugar de
preocuparnos por todas las diferentes comparaciones entre páginas individuales que
podríamos hacer, podemos hacer una única prueba general que aborde la pregunta: “¿Podrían
todas las páginas tener la misma rigidez subyacente y las diferencias entre ellas se deben a la
clasificación? ¿Cuál es la forma en que se asignó un conjunto común de tiempos de sesión entre
las cuatro páginas? "

ANOVA | 119
Figura 3-6. Los diagramas de caja de los cuatro grupos muestran diferencias considerables entre ellos

El procedimiento utilizado para probar esto es ANOVA. La base para ello se puede ver en el siguiente
procedimiento de remuestreo (especificado aquí para la prueba A / B / C / D de adherencia de la
página web):

1. Combine todos los datos en un solo cuadro.


2. Mezcle y extraiga cuatro remuestreos de cinco valores cada uno.

3. Registre la media de cada uno de los cuatro grupos.

4. Registre la varianza entre las medias de los cuatro grupos.

5. Repita los pasos 2 a 4 muchas veces (digamos, 1000).

¿En qué proporción del tiempo la varianza remuestreada excedió la varianza


observada? Este es el valor p.

Este tipo de prueba de permutación es un poco más complicado que el tipo utilizado en “Prueba de
permutaciones” en la página 97. Afortunadamente, elaovp función en el lmPerm paquete calcula una prueba
de permutación para este caso:

120 | Capítulo 3: Experimentos estadísticos y pruebas de significación


> Biblioteca(lmPerm)
> resumen(aovp(Hora ~ Página, datos=cuatro_sesiones))
[1] "Configuración: SS único"
Componente 1 :
Df R Suma Sq R Media Sq Iter Pr(Prob)
Página 3831,4 277,13 3104 0,09278 .
Derechos residuales de autor 16 1618,4 101,15
---
Signif. codigos: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1

El valor p, dado por Pr (problema), es 0.09278. En otras palabras, dada la misma rigidez
subyacente, el 9.3% de las veces la tasa de respuesta entre cuatro páginas puede diferir tanto
como se observó realmente, solo por casualidad. Este grado de improbabilidad está por debajo
del umbral estadístico tradicional del 5%, por lo que concluimos que la diferencia entre las
cuatro páginas podría haber surgido por casualidad.

La columna Iter enumera el número de iteraciones tomadas en la prueba de permutación. Las otras
columnas corresponden a una tabla ANOVA tradicional y se describen a continuación.

En Pitón, podemos calcular la prueba de permutación usando el siguiente código:

varianza_observada = cuatro_sesiones.agrupar por('Página').significar().var() [0]


impresión('Observado significa: ', cuatro_sesiones.agrupar por('Página').significar().valores.enmarañar())
impresión('Diferencia:', varianza_observada)

def prueba_perm(df):
df = df.Copiar()
df['Hora'] = notario público.aleatorio.permutación(df['Hora'].valores)
regreso df.agrupar por('Página').significar().var() [0]

perm_variance = [prueba_perm(cuatro_sesiones) por _ en distancia(3000)]


impresión('Pr (problema) ', notario público.significar([var > varianza_observada por var en perm_variance]))

Estadística F

Al igual que se puede utilizar la prueba t en lugar de una prueba de permutación para comparar la
media de dos grupos, existe una prueba estadística para ANOVA basada en la Estadístico F. El
estadístico F se basa en la relación entre la varianza entre las medias del grupo (es decir, el efecto del
tratamiento) y la varianza debida al error residual. Cuanto mayor sea esta relación, más
estadísticamente significativo será el resultado. Si los datos siguen una distribución normal, entonces
la teoría estadística dicta que la estadística debe tener una determinada distribución. Con base en
esto, es posible calcular un valor p.

ANOVA | 121
En R, podemos calcular un Tabla ANOVA utilizando la aov función:

> resumen(aov(Hora ~ Página, datos=cuatro_sesiones))


Df Suma Sq Media Sq F valor Pr(>F)
Página 3831,4 277,1 2,74 0,0776 .
Derechos residuales de autor 16 1618,4 101,2
---
Signif. codigos: 0 '***' 0,001 '**' 0,01 '*' 0,05 '. 0,1 '' 1

La statsmodels El paquete proporciona una implementación de ANOVA en Pitón:

modelo = smf.ols('Hora ~ Página', datos=cuatro_sesiones).encajar()

aov_table = sm.estadisticas.anova_lm(modelo)
aov_table

La salida del Pitón el código es casi idéntico al de R.

Df es "grados de libertad", Suma Sq es "suma de cuadrados", Media Sq es "cuadrados


medios" (abreviatura de desviaciones cuadráticas medias), y Valor F es el estadístico F. Para el
gran promedio, la suma de cuadrados es la desviación del gran promedio de 0, al cuadrado,
multiplicado por 20 (el número de observaciones). Los grados de libertad para el gran
promedio es 1, por definición.

Para las medias de tratamiento, los grados de libertad son 3 (una vez que se establecen tres valores, y luego
se establece la media general, la otra media de tratamiento no puede variar). La suma de los cuadrados para
las medias de tratamiento es la suma de las desviaciones al cuadrado entre las medias de tratamiento y el
gran promedio.

Para los residuos, los grados de libertad son 20 (todas las observaciones pueden variar) y SS es la
suma de la diferencia al cuadrado entre las observaciones individuales y las medias del tratamiento.
Los cuadrados medios (MS) es la suma de los cuadrados dividida por los grados de libertad.

El estadístico F es MS (tratamiento) / MS (error). Por lo tanto, el valor F depende solo de esta


razón y se puede comparar con una distribución F estándar para determinar si las diferencias
entre las medias de los tratamientos son mayores de lo que cabría esperar en la variación
aleatoria.

122 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Descomposición de la varianza

Los valores observados en un conjunto de datos pueden considerarse sumas de diferentes


componentes. Para cualquier valor de datos observado dentro de un conjunto de datos,
podemos desglosarlo en el promedio general, el efecto del tratamiento y el error residual. A
esto lo llamamos una "descomposición de la varianza":

1. Comience con un promedio general (173,75 para los datos de permanencia de la página web).

2. Agregar efecto de tratamiento, que puede ser negativo (variable


independiente = página web).

3. Agregue el error residual, que puede ser negativo.

Por lo tanto, la descomposición de la varianza para el valor superior izquierdo en la tabla de


prueba A / B / C / D es la siguiente:

1. Comience con un gran promedio: 173,75.

2. Añadir efecto de tratamiento (grupo): –1,75 (172 - 173,75).

3. Agregue el residuo: –8 (164 - 172).

4. Igual a: 164.

ANOVA bidireccional

La prueba A / B / C / D que se acaba de describir es un ANOVA "unidireccional", en el que tenemos un


factor (grupo) que varía. Podríamos tener un segundo factor involucrado, digamos, "fin de semana
versus día de la semana", con datos recolectados en cada combinación (grupo A fin de semana, grupo
A día de la semana, grupo B fin de semana, etc.). Este sería un "ANOVA bidireccional" y lo
manejaríamos de manera similar al ANOVA unidireccional identificando el "efecto de interacción".
Después de identificar el efecto del gran promedio y el efecto del tratamiento, separamos las
observaciones del fin de semana y del día de la semana para cada grupo y encontramos la diferencia
entre los promedios para esos subconjuntos y el promedio del tratamiento.

Puede ver que ANOVA y luego ANOVA bidireccional son los primeros pasos en el camino hacia
un modelo estadístico completo, como la regresión y la regresión logística, en el que se pueden
modelar múltiples factores y sus efectos (ver Capítulo 4).

Ideas claves

• ANOVA es un procedimiento estadístico para analizar los resultados de un experimento con


múltiples grupos.

• Es la extensión de procedimientos similares para la prueba A / B, que se utiliza para evaluar si la


variación general entre los grupos está dentro del rango de variación aleatoria.

ANOVA | 123
• Un resultado útil de ANOVA es la identificación de componentes de varianza asociados con
tratamientos de grupo, efectos de interacción y errores.

Otras lecturas
• Introducción a las estadísticas y análisis: una perspectiva de remuestreo de Peter Bruce
(Wiley, 2014) tiene un capítulo sobre ANOVA.

• Introducción al diseño y análisis de experimentos por George Cobb (Wiley, 2008) es


un tratamiento comprensible y legible de su tema.

Prueba de chi-cuadrado

Las pruebas web a menudo van más allá de las pruebas A / B y prueban múltiples tratamientos a la vez. La
prueba de chi-cuadrado se usa con datos de recuento para probar qué tan bien se ajusta a alguna
distribución esperada. El uso más común delchi-cuadrado la estadística en la práctica estadística es con
r × C tablas de contingencia, para evaluar si la hipótesis nula de independencia entre
variables es razonable (ver también “Distribución de chi-cuadrado” en la página 80).

La prueba de chi-cuadrado fue desarrollado originalmente por Karl Pearson en 1900. El terminochi
proviene de la letra griega Χ utilizada por Pearson en el artículo.

Términos clave para la prueba de chi-cuadrado

Estadística de chi-cuadrado

Una medida de la medida en que algunos datos observados se apartan de las expectativas.

Expectativa o esperado
Cómo esperaríamos que resultaran los datos bajo algún supuesto, típicamente la
hipótesis nula.

r × C significa “filas por columnas”: una tabla de 2 × 3 tiene dos filas y tres
columnas.

Prueba de chi-cuadrado: un enfoque de remuestreo

Suponga que está probando tres titulares diferentes (A, B y C) y los ejecuta cada uno en 1000
visitantes, con los resultados que se muestran en Tabla 3-4.

124 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Tabla 3-4. Resultados de pruebas web para tres titulares diferentes

Título A Título B Título C


Hacer clic 14 8 12
986 sin clic 992 988

Los titulares ciertamente parecen diferir. El título A devuelve casi el doble de la tasa de clics de
B. Sin embargo, las cifras reales son pequeñas. Un procedimiento de remuestreo puede probar
si las tasas de clics difieren en un grado mayor de lo que podría causar la casualidad. Para esta
prueba, necesitamos tener la distribución "esperada" de clics, y en este caso, eso sería bajo el
supuesto de hipótesis nula de que los tres titulares comparten la misma tasa de clics, para una
tasa de clics general de 34/3000. Bajo este supuesto, nuestra tabla de contingencia se vería
comoTabla 3-5.

Tabla 3-5. Se espera si los tres titulares tienen la misma tasa de clics (hipótesis nula)

Título A Título B Título C


Hacer clic 11,33 11,33 11,33
Sin clic 988.67 988,67 988,67

La Residuo de Pearson Se define como:

R = Observado-esperado
Esperado

R mide el grado en que los recuentos reales difieren de estos recuentos esperados
(ver Tabla 3-6).

Tabla 3-6. Residuos de Pearson

Título A Título B Título C


Hacer clic 0,792 - 0,990 0,198
Sin clic –0,085 0,106 - 0,021

La estadística de chi-cuadrado se define como la suma de los residuos de Pearson al cuadrado:

r
Χ = ∑∑CR2
ij

dónde r y C son el número de filas y columnas, respectivamente. La estadística de chi-cuadrado para


este ejemplo es 1.666. ¿Es eso más de lo que razonablemente podría ocurrir en un modelo aleatorio?

Prueba de chi-cuadrado | 125


Podemos probar con este algoritmo de remuestreo:

1. Constituya una caja con 34 unos (clics) y 2966 ceros (sin clics).
2. Mezcle, tome tres muestras separadas de 1,000 y cuente los clics en cada una.

3. Encuentre las diferencias al cuadrado entre los recuentos mezclados y los recuentos
esperados y súmelos.
4. Repita los pasos 2 y 3, digamos, 1.000 veces.

5. ¿Con qué frecuencia la suma de las desviaciones cuadradas remuestreadas excede la observada?
Ese es el valor p.

La función chisq.test se puede utilizar para calcular una estadística de chi-cuadrado remuestreada en
R. Para los datos de clic, la prueba de chi-cuadrado es:

> chisq.test(clics, simular.p.value=CIERTO)

Pearson's Prueba de chi-cuadrado con valor p simulado (basado en 2000 repeticiones)

datos: clics
X-al cuadrado = 1.6659, df = N / A, pag-valor = 0.4853

La prueba muestra que este resultado podría haberse obtenido fácilmente por azar. Para

ejecutar una prueba de permutación enPitón, utilice la siguiente implementación:

caja = [1] * 34
caja.ampliar([0] * 2966)
aleatorio.barajar(caja)

def chi2(observado, esperado):


pearson_residuals = []
por fila, suponer en Código Postal(observado, esperado):
pearson_residuals.adjuntar([(observar - suponer) ** 2 / suponer
por observar en fila])
# devuelve la suma de cuadrados
regreso notario público.suma(pearson_residuals)

esperados_clics = 34 / 3
no_clic_esperados = 1000 - esperados_clics
esperados = [34 / 3, 1000 - 34 / 3]
chi2observed = chi2(clics.valores, esperado)

def perm_fun(caja):
sample_clicks = [suma(aleatorio.muestra(caja, 1000)),
suma(aleatorio.muestra(caja, 1000)),
suma(aleatorio.muestra(caja, 1000))]
sample_noclicks = [1000 - norte por norte en sample_clicks]
regreso chi2([sample_clicks, sample_noclicks], esperado)

perm_chi2 = [perm_fun(caja) por _ en distancia(2000)]

126 | Capítulo 3: Experimentos estadísticos y pruebas de significación


resampled_p_value = suma(perm_chi2 > chi2observed) / len(perm_chi2)
impresión(F'Chi2 observado: {chi2observed: .4f}')
impresión(F'Valor p remuestreado: {valor_p remuestreado: .4f}')

Prueba de chi-cuadrado: teoría estadística

La teoría estadística asintótica muestra que la distribución del estadístico chi-cuadrado puede
aproximarse mediante un distribución de chi-cuadrado (ver “Distribución de chi-cuadrado” en la
página 80). La distribución estándar de chi-cuadrado apropiada está determinada por la
grados de libertad (ver "Grados de libertad" en la página 116). Para una tabla de contingencia,
los grados de libertad están relacionados con el número de filas (r) y columnas (C) como sigue:

grados de libertad = r - 1 × C - 1

La distribución de chi-cuadrado es típicamente sesgada, con una cola larga a la derecha; ver
Figura 3-7 para la distribución con 1, 2, 5 y 20 grados de libertad. Cuanto más alejada esté la
estadística observada en la distribución de chi-cuadrado, menor será el valor p.

La función chisq.test se puede utilizar para calcular el valor p utilizando la distribución de chi-
cuadrado como referencia:

> chisq.test(clics, simular.p.value=FALSO)

Pearson's Prueba de chi-cuadrado

datos: clics
X-al cuadrado = 1.6659, df = 2, pag-valor = 0.4348

En Pitón, usa la función scipy.stats.chi2_contingency:


chisq, pvalue, df, esperado = estadisticas.chi2_contingencia(clics)
impresión(F'Chi2 observado: {chi2observed: .4f}')
impresión(F'valor p: {valor p: .4f}')

El valor p es un poco menor que el valor p de remuestreo; esto se debe a que la distribución de
chi-cuadrado es solo una aproximación de la distribución real del estadístico.

Prueba de chi-cuadrado | 127


Figura 3-7. Distribución chi-cuadrado con varios grados de libertad

Prueba exacta de Fisher

La distribución de chi-cuadrado es una buena aproximación de la prueba de remuestreo aleatorio que se


acaba de describir, excepto cuando los recuentos son extremadamente bajos (dígitos de un solo dígito,
especialmente cinco o menos). En tales casos, el procedimiento de remuestreo producirá valores p más
precisos. De hecho, la mayor parte del software estadístico tiene un procedimiento para enumerartodas los
posibles reordenamientos (permutaciones) que pueden ocurrir, tabular sus frecuencias y determinar
exactamente cuán extremo es el resultado observado. Se llamaPrueba exacta de Fisher después del gran
estadístico RA Fisher. R El código para la prueba exacta de Fisher es simple en su forma básica:

> Fisher.test(clics)

Pescador's Prueba exacta para datos de recuento

datos: clics
pag-valor = 0.4824
hipótesis alternativa: dos caras

El valor p está muy cerca del valor p de 0,4853 obtenido mediante el método de
remuestreo.

Cuando algunos recuentos son muy bajos pero otros son bastante altos (por ejemplo, el denominador en
una tasa de conversión), puede ser necesario realizar una prueba de permutación aleatoria en lugar de una
prueba exacta completa, debido a la dificultad de calcular todas las permutaciones posibles. El precedenteR
La función tiene varios argumentos que controlan si se debe usar esta

128 | Capítulo 3: Experimentos estadísticos y pruebas de significación


aproximaciónsimulate.p.value = TRUE o FALSE), cuántas iteraciones deben usarse (B = ...), y
una restricción computacional (espacio de trabajo = ...) que limita hasta qué punto los
cálculos para el exacto el resultado debería irse.

No existe una implementación de la prueba exacta de Fisher fácilmente disponible en Pitón.

Detectar el fraude científico


Un ejemplo interesante lo proporciona el caso de la investigadora de la Universidad de
Tufts, Thereza Imanishi-Kari, quien fue acusada en 1991 de fabricar datos en su
investigación. El congresista John Dingell se involucró y el caso eventualmente llevó a la
renuncia de su colega, David Baltimore, de la presidencia de la Universidad Rockefeller.

Un elemento del caso descansaba en la evidencia estadística con respecto a la distribución


esperada de dígitos en sus datos de laboratorio, donde cada observación tenía muchos dígitos.
Investigadores enfocados en lainterior dígitos (ignorando el primer y último dígito de un
número), que se esperaría que siguieran a un uniforme al azar distribución. Es decir, se
producirían de forma aleatoria, y cada dígito tendría la misma probabilidad de ocurrir (el dígito
principal podría ser predominantemente un valor y los dígitos finales podrían verse afectados
por el redondeo).Tabla 3-7 enumera las frecuencias de los dígitos interiores de los datos reales
en el caso.

Tabla 3-7. Frecuencia de dígitos interiores en datos de laboratorio

Frecuencia de dígitos

0 14
1 71
2 7
3 sesenta y cinco

4 23
5 19
6 12
7 45
8 53
9 6

La distribución de los 315 dígitos, que se muestra en Figura 3-8, ciertamente parece no aleatorio.

Los investigadores calcularon la desviación de la expectativa (31.5; esa es la frecuencia con la que cada dígito
ocurriría en una distribución estrictamente uniforme) y usaron una prueba de chi-cuadrado (un procedimiento
de remuestreo podría haberse usado igualmente) para mostrar que la distribución real estaba mucho más allá
el rango de variación de probabilidad normal, lo que indica que los datos podrían

Prueba de chi-cuadrado | 129


han sido fabricados. (Nota: Imanishi-Kari fue finalmente exonerado después de un largo
proceso).

Figura 3-8. Histograma de frecuencia para datos de laboratorio Imanishi-Kari

Relevancia para la ciencia de datos

La prueba de chi-cuadrado, o la prueba exacta de Fisher, se utiliza cuando desea saber si un efecto es
real o podría ser producto del azar. En la mayoría de las aplicaciones estadísticas clásicas de la prueba
de chi-cuadrado, su función es establecer la significación estadística, que normalmente se necesita
antes de que se pueda publicar un estudio o un experimento. Esto no es tan importante para los
científicos de datos. En la mayoría de los experimentos de ciencia de datos, ya sea A / B o A / B / C…, el
objetivo no es simplemente establecer la significación estadística, sino más bien llegar al mejor
tratamiento. Para ello, los bandidos armados múltiples (ver“Algoritmo Bandit de brazos múltiples” en
la página 131) ofrecen una solución más completa.

Una aplicación de ciencia de datos de la prueba de chi-cuadrado, especialmente la versión exacta de Fisher,
es determinar tamaños de muestra apropiados para experimentos web. Estos experimentos a menudo
tienen tasas de clics muy bajas y, a pesar de miles de exposiciones, las tasas de recuento pueden ser
demasiado pequeñas para arrojar conclusiones definitivas en un experimento. En tales casos, Fisher's

130 | Capítulo 3: Experimentos estadísticos y pruebas de significación


La prueba exacta, la prueba de chi-cuadrado y otras pruebas pueden ser útiles como un componente de los cálculos
de potencia y tamaño de la muestra (ver “Potencia y tamaño de la muestra” en la página 135).

Las pruebas de chi-cuadrado se utilizan ampliamente en la investigación por parte de los


investigadores en busca del elusivo valor p estadísticamente significativo que permitirá la publicación.
Las pruebas de chi-cuadrado, o simulaciones de remuestreo similares, se utilizan en aplicaciones de
ciencia de datos más como un filtro para determinar si un efecto o una característica es digno de
mayor consideración que como una prueba formal de significación. Por ejemplo, se utilizan en
estadísticas espaciales y cartografía para determinar si los datos espaciales se ajustan a una
distribución nula especificada (por ejemplo, ¿se concentran los delitos en un área determinada en
mayor grado de lo que permitiría el azar?). También se pueden utilizar en la selección automatizada
de funciones en el aprendizaje automático, para evaluar la prevalencia de clases en todas las
funciones e identificar funciones en las que la prevalencia de una determinada clase es inusualmente
alta o baja.

Ideas claves

• Un procedimiento común en estadística es probar si los recuentos de datos observados son


consistentes con un supuesto de independencia (por ejemplo, la propensión a comprar un artículo
en particular es independiente del género).

• La distribución de chi-cuadrado es la distribución de referencia (que incorpora el


supuesto de independencia) con la que se debe comparar el estadístico de chi-
cuadrado calculado observado.

Otras lecturas
• El famoso ejemplo de "Lady Tasting Tea" de RA Fisher de principios del siglo XX sigue
siendo una ilustración simple y eficaz de su prueba exacta. Busque en Google "Lady
Tasting Tea" y encontrará una serie de buenas reseñas.
• Stat Trek ofrece una buen tutorial sobre la prueba de chi-cuadrado.

Algoritmo Multi-ArmBandit
Los bandidos multibrazo ofrecen un enfoque para las pruebas, especialmente las pruebas web, que
permiten una optimización explícita y una toma de decisiones más rápida que el enfoque estadístico
tradicional para diseñar experimentos.

Algoritmo Multi-ArmBandit | 131


Términos clave para Multi-ArmBandits

Bandido de varios brazos

Una máquina tragamonedas imaginaria con múltiples brazos para que el cliente elija, cada uno
con diferentes beneficios, aquí interpretado como una analogía de un experimento de múltiples
tratamientos.

Brazo
Un tratamiento en un experimento (por ejemplo, "título A en una prueba web").

Ganar

El análogo experimental de una ganancia en la máquina tragamonedas (por ejemplo, "el cliente hace clic en el

enlace").

Una prueba A / B tradicional implica datos recopilados en un experimento, de acuerdo con un diseño
específico, para responder una pregunta específica como, "¿Cuál es mejor, el tratamiento A o el
tratamiento B?" La presunción es que una vez que obtenemos una respuesta a esa pregunta, la
experimentación termina y procedemos a actuar sobre los resultados.

Probablemente pueda percibir varias dificultades con ese enfoque. Primero, nuestra
respuesta puede no ser concluyente: "efecto no probado". En otras palabras, los
resultados del experimento pueden sugerir un efecto, pero si hay un efecto, no
tenemos una muestra lo suficientemente grande para probarlo (a satisfacción de los
estándares estadísticos tradicionales). ¿Qué decisión tomamos? En segundo lugar, es
posible que deseemos comenzar a aprovechar los resultados que se obtienen antes
de la conclusión del experimento. En tercer lugar, es posible que deseemos tener el
derecho a cambiar de opinión o probar algo diferente en función de los datos
adicionales que lleguen después de que termine el experimento. El enfoque
tradicional de los experimentos y las pruebas de hipótesis data de la década de 1920
y es bastante inflexible. El advenimiento del poder y el software informático ha
permitido enfoques flexibles más poderosos. Es más,

Los algoritmos Bandit, que son muy populares en las pruebas web, le permiten probar múltiples
tratamientos a la vez y llegar a conclusiones más rápido que los diseños estadísticos tradicionales.
Toman su nombre de las máquinas tragamonedas utilizadas en los juegos de azar, también llamadas
bandidos de un solo brazo (ya que están configurados de tal manera que extraen dinero del jugador
en un flujo constante). Si imagina una máquina tragamonedas con más de un brazo, cada brazo
pagando a un ritmo diferente, tendría un bandido de múltiples brazos, que es el nombre completo de
este algoritmo.

Su objetivo es ganar la mayor cantidad de dinero posible y, más específicamente, identificar y


conformarse con el brazo ganador más temprano que tarde. El desafío es que no sabe a qué
tasa general se pagan los brazos; solo conoce los resultados de los tirones individuales de los
brazos. Suponga que cada "ganancia" es por la misma cantidad, sin importar en qué brazo.

132 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Lo que difiere es la probabilidad de ganar. Suponga además que inicialmente prueba cada brazo 50
veces y obtiene los siguientes resultados:

Brazo A: 10 victorias de 50
Brazo B: 2 victorias de 50
Brazo C: 4 victorias de 50

Un enfoque extremo es decir: "Parece que el brazo A es un ganador; dejemos de probar los
otros brazos y sigamos con A". Esto aprovecha al máximo la información de la prueba inicial. Si
A es realmente superior, obtenemos el beneficio de eso desde el principio. Por otro lado, si B o
C es realmente mejor, perdemos cualquier oportunidad de descubrirlo. Otro enfoque extremo
es decir: "Todo esto parece estar dentro del ámbito del azar; sigamos tirando de todos por
igual". Esto brinda la máxima oportunidad para que los suplentes de A se muestren. Sin
embargo, en el proceso, estamos implementando lo que parecen ser tratamientos inferiores.
¿Cuánto tiempo permitimos eso? Los algoritmos Bandit adoptan un enfoque híbrido:
comenzamos a extraer A con más frecuencia, para aprovechar su aparente superioridad, pero
no abandonamos B y C. Simplemente los extraemos con menos frecuencia. Si A sigue
superando, continuamos desplazando recursos (tirando) de B y C y tirando de A más a menudo.
Si, por otro lado, C comienza a mejorar y A comienza a empeorar, podemos cambiar los tirones
de A de nuevo a C. Si uno de ellos resulta ser superior a A y esto estaba oculto en la prueba
inicial debido al azar, ahora tiene la oportunidad de emerger con más pruebas.

Ahora piense en aplicar esto a las pruebas web. En lugar de varios brazos de máquinas
tragamonedas, es posible que tenga varias ofertas, titulares, colores, etc., que se están probando en
un sitio web. Los clientes hacen clic (una "ganancia" para el comerciante) o no hacen clic. Inicialmente,
las ofertas se muestran de forma aleatoria y equitativa. Sin embargo, si una oferta comienza a
superar a las demás, puede mostrarse ("retirarse") con más frecuencia. Pero, ¿cuáles deberían ser los
parámetros del algoritmo que modifica las tasas de extracción? ¿A qué "tasas de atracción"
deberíamos cambiar y cuándo deberíamos cambiar?

Aquí hay un algoritmo simple, el algoritmo épsilon-codicioso para una prueba A / B:

1. Genere un número aleatorio distribuido uniformemente entre 0 y 1.


2. Si el número se encuentra entre 0 y épsilon (donde épsilon es un número entre 0 y 1,
generalmente bastante pequeño), lanza una moneda justa (probabilidad de 50/50) y:

una. Si la moneda sale cara, muestre la oferta A.

B. Si la moneda es cruz, muestre la oferta B.

3. Si el número es ≥ épsilon, muestre la oferta que haya tenido la tasa de respuesta más alta hasta la
fecha.

Epsilon es el único parámetro que gobierna este algoritmo. Si épsilon es 1, terminamos


con un experimento A / B simple estándar (asignación aleatoria entre A y B para cada

Algoritmo Multi-ArmBandit | 133


sujeto). Si épsilon es 0, terminamos con un puramenteavaro algoritmo: uno que elige la mejor
opción inmediata disponible (un óptimo local). No busca más experimentación, simplemente
asigna a los sujetos (visitantes de la web) al tratamiento de mejor rendimiento.

Un algoritmo más sofisticado utiliza "muestreo de Thompson". Este procedimiento “toma


muestras” (tira de un brazo de bandido) en cada etapa para maximizar la probabilidad de elegir
el mejor brazo. Por supuesto, no sabe cuál es el mejor brazo, ¡ese es todo el problema! Pero a
medida que observa la recompensa con cada sorteo sucesivo, obtiene más información. El
muestreo de Thompson usa un enfoque bayesiano: inicialmente se asume alguna distribución
previa de recompensas, usando lo que se llama undistribución betaeste es un mecanismo
común para especificar información previa en un problema bayesiano). A medida que se
acumula información de cada sorteo, esta información se puede actualizar, lo que permite
optimizar mejor la selección del próximo sorteo en cuanto a elegir el brazo derecho.

Los algoritmos Bandit pueden manejar de manera eficiente más de 3 tratamientos y avanzar hacia la
selección óptima de los "mejores". Para los procedimientos de prueba estadística tradicionales, la
complejidad de la toma de decisiones para más de 3 tratamientos supera con creces la de la prueba A / B
tradicional, y la ventaja de los algoritmos bandit es mucho mayor.

Ideas claves

• Las pruebas A / B tradicionales prevén un proceso de muestreo aleatorio, que puede conducir a una
exposición excesiva al tratamiento inferior.

• Los bandidos multibrazo, por el contrario, alteran el proceso de muestreo para incorporar
información aprendida durante el experimento y reducir la frecuencia del tratamiento
inferior.

• También facilitan el tratamiento eficaz de más de dos tratamientos.

• Existen diferentes algoritmos para desviar la probabilidad de muestreo del


tratamiento o tratamientos inferiores al (presunto) superior.

Otras lecturas
• Un excelente tratamiento breve de los algoritmos de bandidos de varios brazos se encuentra en
Algoritmos Bandit para optimización de sitios web, por John Myles White (O'Reilly, 2012). El
blanco incluyePitón código, así como los resultados de las simulaciones para evaluar el
desempeño de los bandidos.

• Para obtener más información (algo técnica) sobre el muestreo de Thompson, consulte
"Análisis del muestreo de Thompson para el problema de los bandidos con múltiples brazos" por Shipra
Agrawal y Navin Goyal.

134 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Potencia y tamaño de la muestra

Si ejecuta una prueba web, ¿cómo decide cuánto tiempo debe ejecutarse (es decir, cuántas
impresiones por tratamiento se necesitan)? A pesar de lo que pueda leer en muchas guías de
pruebas web, no existe una buena guía general; depende, principalmente, de la frecuencia con
la que se logre el objetivo deseado.

Términos clave para potencia y tamaño de muestra

Tamaño del efecto

El tamaño mínimo del efecto que espera poder detectar en una prueba estadística,
como "una mejora del 20% en las tasas de clics".

Energía
La probabilidad de detectar un tamaño de efecto dado con un tamaño de muestra dado.

Nivel significativo
El nivel de significación estadística en el que se realizará la prueba.

Un paso en los cálculos estadísticos para el tamaño de la muestra es preguntar "¿Una prueba
de hipótesis realmente revelará una diferencia entre los tratamientos A y B?" El resultado de
una prueba de hipótesis, el valor p, depende de cuál sea la diferencia real entre el tratamiento
A y el tratamiento B. También depende de la suerte del sorteo, quién es seleccionado para los
grupos en el experimento. Pero tiene sentido que cuanto mayor sea la diferencia real entre los
tratamientos A y B, mayor será la probabilidad de que nuestro experimento la revele; y cuanto
menor sea la diferencia, se necesitarán más datos para detectarla. Para distinguir entre un
bateador de .350 y un bateador de .200 en el béisbol, no se necesitan tantos turnos al bate.
Para distinguir entre un bateador de .300 y un bateador de .280, se necesitarán muchos más
turnos al bate.

Energía es la probabilidad de detectar un determinado tamaño del efecto con características


específicas de la muestra (tamaño y variabilidad). Por ejemplo, podríamos decir (hipotéticamente) que
la probabilidad de distinguir entre un bateador de .330 y un bateador de .200 en 25 turnos al bate es
0,75. El tamaño del efecto aquí es una diferencia de .130. Y "detectar" significa que una prueba de hipótesis
rechazará la hipótesis nula de "no hay diferencia" y concluirá que hay un efecto real. Entonces, el
experimento de 25 turnos al bate (n = 25) para dos bateadores, con un tamaño de efecto de
0.130, tiene una potencia (hipotética) de 0.75, o 75%.

Puede ver que hay varias partes móviles aquí, y es fácil enredarse en las numerosas suposiciones y fórmulas
estadísticas que se necesitarán (para especificar la variabilidad de la muestra, el tamaño del efecto, el
tamaño de la muestra, el nivel alfa para la prueba de hipótesis, etc., y para calcular la potencia). De hecho,
existe un software estadístico de propósito especial para calcular la potencia. La mayoría de los científicos de
datos no necesitarán seguir todos los pasos formales necesarios para informar sobre el poder, por ejemplo,
en un artículo publicado. Sin embargo, pueden enfrentar ocasiones

Potencia y tamaño de la muestra | 135


donde quieren recopilar algunos datos para una prueba A / B, y recopilar o procesar los
datos implica algún costo. En ese caso, saber aproximadamente cuántos datos recopilar
puede ayudar a evitar la situación en la que recopila datos con cierto esfuerzo y el
resultado no es concluyente. Aquí hay un enfoque alternativo bastante intuitivo:

1. Comience con algunos datos hipotéticos que representen su mejor suposición sobre los datos que se
obtendrán (tal vez basándose en datos anteriores), por ejemplo, una casilla con 20 unos y 80 ceros para
representar un bateador de .200, o una casilla con algunas observaciones. de "tiempo dedicado al sitio
web".

2. Cree una segunda muestra simplemente agregando el tamaño del efecto deseado a la primera muestra,
por ejemplo, un segundo cuadro con 33 unos y 67 ceros, o un segundo cuadro con 25 segundos
agregados a cada “tiempo inicial dedicado a la página web”. "

3. Dibuja una muestra bootstrap de tamaño norte de cada caja.

4. Realice una prueba de hipótesis de permutación (o basada en fórmulas) en las dos


muestras bootstrap y registre si la diferencia entre ellas es estadísticamente
significativa.
5. Repita los dos pasos anteriores muchas veces y determine con qué frecuencia la diferencia
fue significativa; esa es la potencia estimada.

Tamaño de la muestra

El uso más común de los cálculos de potencia es estimar el tamaño de la muestra que
necesitará.

Por ejemplo, suponga que está observando las tasas de clics (clics como porcentaje de las exposiciones) y
probando un anuncio nuevo con un anuncio existente. ¿Cuántos clics necesita acumular en el estudio? Si solo
está interesado en los resultados que muestran una gran diferencia (por ejemplo, una diferencia del 50%),
una muestra relativamente pequeña podría ser la solución. Si, por otro lado, sería de interés incluso una
pequeña diferencia, entonces se necesita una muestra mucho más grande. Un enfoque estándar es
establecer una política de que un anuncio nuevo debe funcionar mejor que un anuncio existente en un
porcentaje, digamos, el 10%; de lo contrario, el anuncio existente permanecerá en su lugar. Este objetivo, el
"tamaño del efecto", determina el tamaño de la muestra.

Por ejemplo, suponga que las tasas de clics actuales son aproximadamente del 1,1% y está buscando un aumento del
10% al 1,21%. Así que tenemos dos casillas: la casilla A con 1,1% de unidades (digamos, 110 unidades y
9,890 ceros) y la casilla B con 1,21% de unos (digamos, 121 unos y 9,879 ceros). Para empezar, intentemos
300 sorteos de cada cuadro (esto sería como 300 "impresiones" para cada anuncio). Supongamos que
nuestro primer sorteo produce lo siguiente:

Caja A: 3 unidades
Caja B: 5 unidades

136 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Inmediatamente podemos ver que cualquier prueba de hipótesis revelaría esta diferencia (5 versus
3) estar bien dentro del rango de variación del azar. Esta combinación de tamaño de muestra (n = 300 en
cada grupo) y el tamaño del efecto (10% de diferencia) es demasiado pequeño para que cualquier prueba de
hipótesis muestre una diferencia confiable.

Entonces, podemos intentar aumentar el tamaño de la muestra (intentemos 2000 impresiones) y


exigir una mejora mayor (50% en lugar de 10%).

Por ejemplo, supongamos que las tasas de clics actuales siguen siendo del 1,1%, pero ahora buscamos un
aumento del 50% hasta el 1,65%. Así que tenemos dos casillas: la casilla A todavía con 1,1% de unos
(digamos, 110 unos y 9,890 ceros), y la casilla B con 1,65% de unos (digamos, 165 unos y 9,868 ceros). Ahora
intentaremos 2,000 sorteos de cada caja. Supongamos que nuestro primer sorteo produce lo siguiente:

Caja A: 19 unidades
Caja B: 34 unidades

Una prueba de significación de esta diferencia (34-19) muestra que todavía se registra como “no
significativa” (aunque mucho más cercana a la significación que la diferencia anterior de 5-3). Para
calcular la potencia, tendríamos que repetir el procedimiento anterior muchas veces o usar un
software estadístico que pueda calcular la potencia, pero nuestro sorteo inicial nos sugiere que
incluso detectar una mejora del 50% requerirá varios miles de impresiones de anuncios.

En resumen, para calcular la potencia o el tamaño de muestra requerido, hay cuatro partes
móviles:

• Tamaño de la muestra

• Tamaño del efecto que desea detectar

• Nivel de significación (alfa) en el que se realizará la prueba


• Energía

Especifique tres de ellos y se podrá calcular el cuarto. Lo más común es calcular


el tamaño de la muestra, por lo que debe especificar los otros tres. ConR y
Pitón, también debe especificar la hipótesis alternativa como "mayor" o "mayor" para obtener una prueba unilateral;
ver“Pruebas de hipótesis unidireccionales y bidireccionales” en la página 95 para obtener más información sobre las
pruebas unidireccionales frente a las bidireccionales. Aquí estáR código para una prueba que involucra dos
proporciones, donde ambas muestras son del mismo tamaño (esto usa el pwr paquete):

tamaño del efecto = ES.h(p1=0.0121, p2=0,011)


pwr.2p.test(h=tamaño del efecto, nivel sig.=0,05, energía=0,8, alternativa='mayor que')
--
Diferencia de cálculo de potencia proporcional para binomio distribución
(transformación de arcoseno)

h = 0.01029785
norte = 116601.7
nivel sig. = 0,05

Potencia y tamaño de la muestra | 137


energía = 0,8
alternativa = mayor que

NOTA: mismos tamaños de muestra

La función ES.h calcula el tamaño del efecto. Vemos que si queremos una potencia del 80%,
necesitamos un tamaño de muestra de casi 120.000 impresiones. Si buscamos un impulso del 50% (p1
= 0,0165), el tamaño de la muestra se reduce a 5.500 impresiones.

La statsmodels El paquete contiene varios métodos para calcular la potencia. Aquí usamos
proporción_de_efecto para calcular el tamaño del efecto y TTestIndPower para resolver el tamaño
de la muestra:

tamaño del efecto = sm.estadisticas.proporción_de_efecto(0.0121, 0,011)


análisis = sm.estadisticas.TTestIndPower()
resultado = análisis.solve_power(tamaño del efecto=tamaño del efecto,
alfa=0,05, energía=0,8, alternativa='más grande')
impresión('Tamaño de la muestra: % .3f' % resultado)
--
Tamaño de la muestra: 116602.393

Ideas claves

• Para saber el tamaño de muestra que necesita, es necesario pensar con anticipación en la prueba
estadística que planea realizar.

• Debe especificar el tamaño mínimo del efecto que desea detectar.


• También debe especificar la probabilidad requerida de detectar ese tamaño de efecto
(potencia).

• Por último, debe especificar el nivel de significancia (alfa) en el que se realizará la


prueba.

Otras lecturas
• Determinación y potencia del tamaño de la muestra de Thomas Ryan (Wiley, 2013) es
una revisión completa y legible de este tema.
• Steve Simon, consultor estadístico, ha escrito un Publicación de estilo narrativo muy interesante
sobre el tema..

138 | Capítulo 3: Experimentos estadísticos y pruebas de significación


Resumen
Los principios del diseño experimental — la aleatorización de los sujetos en dos o más grupos que
reciben diferentes tratamientos — nos permiten sacar conclusiones válidas sobre qué tan bien
funcionan los tratamientos. Es mejor incluir un tratamiento de control de "no hacer cambios". El tema
de la inferencia estadística formal (pruebas de hipótesis, valores p, pruebas t y mucho más en este
sentido) ocupa mucho tiempo y espacio en un curso o texto de estadística tradicional, y la formalidad
es en su mayoría innecesaria a partir de una ciencia de datos. - perspectiva de la ence. Sin embargo,
sigue siendo importante reconocer el papel que puede desempeñar la variación aleatoria para
engañar al cerebro humano. Los procedimientos de remuestreo intuitivos (permutación y bootstrap)
permiten a los científicos de datos medir hasta qué punto la variación aleatoria puede desempeñar un
papel en el análisis de sus datos.

Resumen | 139
CAPÍTULO 4

Regresión y predicción

Quizás el objetivo más común en estadística es responder a la pregunta "¿Es la variable


X (o más probable, X1, ..., Xpag) asociado con una variable Y, y si es así, ¿cuál es la relación y
podemos usarla para predecir Y?"

En ninguna parte el nexo entre la estadística y la ciencia de datos es más fuerte que en el ámbito de la
predicción, específicamente, la predicción de una variable de resultado (objetivo) basada en los
valores de otras variables "predictoras". Este proceso de entrenamiento de un modelo en datos
donde se conoce el resultado, para su posterior aplicación a datos donde se desconoce el resultado,
se denominaaprendizaje supervisado. Otra conexión importante entre la ciencia de datos y las
estadísticas se encuentra en el área de Detección de anomalías, donde los diagnósticos de regresión
originalmente destinados al análisis de datos y la mejora del modelo de regresión se pueden utilizar
para detectar registros inusuales.

Regresión lineal simple


La regresión lineal simple proporciona un modelo de la relación entre la magnitud de una
variable y la de una segunda, por ejemplo, como X aumenta, Y también aumenta. O como
X aumenta, Y disminuye.1 La correlación es otra forma de medir cómo se relacionan dos
variables; consulte la sección "Correlación" en la página 30. La diferencia es que mientras
que la correlación mide lafuerza de una asociación entre dos variables, la regresión
cuantifica la naturaleza de la relación.

1 Esta y las secciones siguientes de este capítulo © 2020 Datastats, LLC, Peter Bruce, Andrew Bruce y Peter
Gedeck; utilizado con permiso.

Regresión y predicción | 141


Términos clave para la regresión lineal simple

Respuesta
La variable que intentamos predecir.

Sinónimos
variable dependiente, Y variable, objetivo, resultado

Variable independiente
La variable utilizada para predecir la respuesta.

Sinónimos
X variable, característica, atributo, predictor

Registro
El vector de valores predictivos y de resultado para un caso o individuo específico.

Sinónimos
fila, caso, instancia, ejemplo

Interceptar
La intersección de la línea de regresión, es decir, el valor predicho cuando X = 0.

Sinónimos
B0, β0

Coeficiente de regresion
La pendiente de la recta de regresión.

Sinónimos
Pendiente, B1, β1, estimaciones de parámetros, ponderaciones

Valores ajustados

Las estimaciones YI obtenido de la línea de regresión.

Sinónimo
valores predichos

Derechos residuales de autor

La diferencia entre los valores observados y los valores ajustados.

Sinónimo
errores

142 | Capítulo 4: Regresión y predicción


Mínimos cuadrados

El método de ajustar una regresión minimizando la suma de los residuos al cuadrado.

Sinónimos
mínimos cuadrados ordinarios, MCO

La ecuación de regresión
La regresión lineal simple estima cuánto Y cambiará cuando X cambios en una cierta
cantidad. Con el coeficiente de correlación, las variablesX y Y son intercambiables.
Con la regresión, estamos tratando de predecir laY variable de X usando una relación
lineal (es decir, una línea):

Y = b0 + B1X

Leemos esto como "Y es igual a b1 multiplicado por X, más una constante b0." El símbolo B0 que se conoce como

la interceptaro constante), y el símbolo B1 como el Pendiente por X. Ambos aparecen en R


salida como coeficientes, aunque en general use el término coeficiente a menudo está reservado para
B1. La Y variable se conoce como la respuesta o dependiente variable ya que depende de
X. La X variable se conoce como la vaticinador o independiente variable. La máquina
comunidad de aprendizaje tiende a utilizar otros términos, llamando Y la objetivo y X a característica
vector. A lo largo de este libro, usaremos los términosvaticinador y característica
intercambiablemente.

Considere la gráfica de dispersión en Figura 4-1 mostrando el número de años que un trabajador estuvo
expuesto al polvo de algodón (Exposición) versus una medida de capacidad pulmonar (PEFR o "índice de flujo
espiratorio máximo"). Como esPEFR relacionado con ¿Exposición? Es difícil de decir basándose solo en la
imagen.

143
Figura 4-1. Exposición al algodón versus capacidad pulmonar

La regresión lineal simple intenta encontrar la "mejor" línea para predecir la respuesta PEFR en
función de la variable predictora Exposición:

PEFR = B0 + B1Exposición

La lm funcionar en R se puede utilizar para ajustar una regresión lineal:

modelo <- lm(PEFR ~ Exposición, datos=pulmón)

lm representa Modelo lineal, y el símbolo ~ denota que PEFR es predicho por Exposición.
Con esta definición de modelo, la intersección se incluye y ajusta automáticamente. Si
desea excluir la intersección del modelo, debe escribir la definición del modelo de la
siguiente manera:

PEFR ~ Exposición - 1

144 | Capítulo 4: Regresión y predicción


Imprimiendo el modelo objeto produce la siguiente salida:

Llamada:

lm(fórmula = PEFR ~ Exposición, datos = pulmón)

Coeficientes:
(Interceptar) Exposición
424.583 - 4.185

La intersección, o B0, es 424.583 y se puede interpretar como la predicción PEFR para


trabajador con exposición cero años. El coeficiente de regresión, oB1, puede interpretarse de la siguiente

manera: por cada año adicional que un trabajador está expuesto al polvo de algodón, el trabajo
er's PEFR la medición se reduce en –4,185.

En Pitón, nosotros podemos usar Regresión lineal desde el scikit-learn paquete. (lamodelos de
estadísticas El paquete tiene una implementación de regresión lineal que es más similar a R
(sm.OLS); lo usaremos más adelante en este capítulo):

predictores = ['Exposición']
Salir = 'PEFR'

modelo = Regresión lineal()


modelo.encajar(pulmón[predictores], pulmón[Salir])

impresión(F'Intercepción: {model.intercept _ :. 3f}')


impresión(F'Coeficiente de exposición: {model.coef_ [0] :. 3f}')

La línea de regresión de este modelo se muestra en Figura 4-2.

Regresión lineal simple | 145


Figura 4-2. Pendiente e intersección para el ajuste de regresión a los datos pulmonares

Valores ajustados y residuales

Los conceptos importantes en el análisis de regresión son los valores ajustados (las predicciones) y
residualeserrores de predicción). En general, los datos no caen exactamente en una línea, por lo que el
La ecuación de regresión debe incluir un término de error explícito. miI:

Yyo = B0 + B1Xyo + miI

Los valores ajustados, también denominados valores predichos, se denotan típicamente por YI
(Y-sombrero). Estos vienen dados por:

Yyo = B0 + B1XI

La notación B0 y B1 indica que los coeficientes son estimados versus conocidos.

146 | Capítulo 4: Regresión y predicción


Notación de sombrero: estimaciones frente a valores conocidos

La notación "sombrero" se utiliza para diferenciar entre estimaciones y


valores conocidos. Entonces el símboloB ("B-hat") es una estimación del
parámetro desconocido B. ¿Por qué los estadísticos diferencian entre la
estimación y el valor real? La estimación tiene incertidumbre, mientras
que el valor real es fijo.2

Calculamos los residuos miI restando el predicho valores de los datos originales:

miyo = YI - YI

En R, podemos obtener los valores ajustados y los residuales usando las funciones predecir y
derechos residuales de autor:

equipado <- predecir(modelo)


resid <- derechos residuales de autor(modelo)

Con scikit-learn's Regresión lineal modelo, usamos el predecir método en el


datos de entrenamiento para obtener el equipado valores y posteriormente el derechos residuales de autor. Como

veremos, este es un patrón general que todos los modelos en scikit-learn seguir:

equipado = modelo.predecir(pulmón[predictores])
derechos residuales de autor = pulmón[Salir] - equipado

Figura 4-3 ilustra los residuos de la línea de regresión ajustada a los datos pulmonares. Los residuales
son la longitud de las líneas punteadas verticales desde los datos hasta la línea.

2 En las estadísticas bayesianas, se supone que el valor verdadero es una variable aleatoria con una distribución específica. En el
contexto bayesiano, en lugar de estimaciones de parámetros desconocidos, existen distribuciones anteriores y posteriores.

Regresión lineal simple | 147


Figura 4-3. Residuos de una línea de regresión (para acomodar todos los datos, la escala del eje
y difiere deFigura 4-2, de ahí la pendiente aparentemente diferente)

Mínimos cuadrados

¿Cómo se ajusta el modelo a los datos? Cuando hay una relación clara, puede imaginarse
ajustando la línea a mano. En la práctica, la línea de regresión es la estimación que minimiza la
suma de los valores residuales al cuadrado, también llamadasuma residual de cuadrados o
RSS:

RSS = ∑ YI - Y 2 I
norte

yo = 1

= ∑ Y - BI - b 0X 2 1 I
norte

yo = 1

Las estimaciones B0 y B1 son los valores que minimizan el RSS.

El método de minimizar la suma de los residuos cuadrados se denomina mínimos cuadrados


regresión, o mínimos cuadrados ordinarios (MCO) regresión. A menudo se atribuye a Carl
Friedrich Gauss, el matemático alemán, pero fue publicado por primera vez por los franceses

148 | Capítulo 4: Regresión y predicción


matemático Adrien-Marie Legendre en 1805. La regresión por mínimos cuadrados se puede calcular
rápida y fácilmente con cualquier software estadístico estándar.

Históricamente, la conveniencia computacional es una de las razones del uso generalizado de mínimos
cuadrados en la regresión. Con la llegada de los macrodatos, la velocidad computacional sigue siendo un
factor importante. Mínimos cuadrados, como la media (ver“Estimaciones medianas y sólidas” en la página 10
), son sensibles a valores atípicos, aunque esto tiende a ser un problema significativo solo en conjuntos de
datos de tamaño pequeño o moderado. Ver"Valores atípicos" en la página 177 para una discusión de los
valores atípicos en la regresión.

Terminología de regresión

Cuando los analistas e investigadores usan el término regresión por sí


mismos, normalmente se refieren a la regresión lineal; el enfoque suele estar
en el desarrollo de un modelo lineal para explicar la relación entre las
variables predictoras y una variable de resultado numérica. En su sentido
estadístico formal, la regresión también incluye modelos no lineales que
producen una relación funcional entre predictores y variables de resultado. En
la comunidad de aprendizaje automático, el término también se usa
ocasionalmente para referirse al uso de cualquier modelo predictivo que
produce un resultado numérico predicho (a diferencia de los métodos de
clasificación que predicen un resultado binario o categórico).

Predicción versus explicación (elaboración de perfiles)

Históricamente, un uso principal de la regresión fue iluminar una supuesta relación lineal
entre las variables predictoras y una variable de resultado. El objetivo ha sido comprender
una relación y explicarla utilizando los datos a los que se ajustó la regresión.
En este caso, el enfoque principal está en la pendiente estimada de la ecuación de regresión, B.
Los economistas quieren conocer la relación entre el gasto del consumidor y el crecimiento del
PIB. Es posible que los funcionarios de salud pública quieran comprender si una campaña de
información pública es eficaz para promover prácticas sexuales seguras. En tales casos, el
enfoque no está en predecir casos individuales sino en comprender la relación general entre
las variables.

Con el advenimiento del big data, la regresión se usa ampliamente para formar un modelo para predecir
resultados individuales para nuevos datos (es decir, un modelo predictivo) en lugar de explicar los datos en

mano. En este caso, los principales elementos de interés son los valores ajustadosY. En marketing, la
regresión se puede utilizar para predecir el cambio en los ingresos en respuesta al tamaño de una campaña
publicitaria. Las universidades usan la regresión para predecir el GPA de los estudiantes en función de sus
puntajes SAT.

Se establece un modelo de regresión que se ajusta bien a los datos de manera que los cambios en X conducir
a cambios en Y. Sin embargo, por sí misma, la ecuación de regresión no prueba la dirección de la causalidad.
Las conclusiones sobre la causalidad deben provenir de una comprensión más amplia

Regresión lineal simple | 149


sobre la relación. Por ejemplo, una ecuación de regresión puede mostrar una relación definida
entre el número de clics en un anuncio web y el número de conversiones. Es nuestro
conocimiento del proceso de marketing, no la ecuación de regresión, lo que nos lleva a la
conclusión de que los clics en el anuncio generan ventas, y no al revés.

Ideas claves

• La ecuación de regresión modela la relación entre una variable de respuesta Y


y una variable predictora X como una línea.

• Un modelo de regresión produce valores ajustados y residuales: predicciones de la


respuesta y los errores de las predicciones.

• Los modelos de regresión suelen ajustarse mediante el método de mínimos cuadrados.

• La regresión se utiliza tanto para la predicción como para la explicación.

Otras lecturas
Para un tratamiento en profundidad de la predicción versus la explicación, consulte el artículo de Galit Shmueli
"¿Explicar o predecir?".

Regresión lineal múltiple


Cuando hay varios predictores, la ecuación simplemente se amplía para
acomodarlos:

Y = b0 + B1X1 + B2X2 + ... + BpagXp + mi

En lugar de una línea, ahora tenemos un modelo lineal: la relación entre cada coeficiente
y su variable (característica) es lineal.

Términos clave para la regresión lineal múltiple

Error cuadrático medio


La raíz cuadrada del error cuadrático medio de la regresión (esta es la métrica más
utilizada para comparar modelos de regresión).

Sinónimo
RMSE
Error estándar residual
Lo mismo que el error cuadrático medio de la raíz, pero ajustado por grados de libertad.

150 | Capítulo 4: Regresión y predicción


Sinónimo
RSE
R-cuadrado
La proporción de varianza explicada por el modelo, de 0 a 1.

Sinónimos
coeficiente de determinación, R2

estadística t
El coeficiente de un predictor, dividido por el error estándar del coeficiente, proporciona
una métrica para comparar la importancia de las variables en el modelo. Ver“Pruebas t” en
la página 110.

Regresión ponderada
Regresión con los registros que tienen diferentes pesos.

Todos los demás conceptos de la regresión lineal simple, como el ajuste por mínimos cuadrados y la
definición de valores ajustados y residuales, se extienden a la configuración de regresión lineal
múltiple. Por ejemplo, los valores ajustados vienen dados por:

Yyo = B0 + B1X1, yo + B2X2, yo + ... + B pagXPi

Ejemplo: datos de vivienda del condado de King

Un ejemplo del uso de la regresión lineal múltiple es la estimación del valor de las casas. Los
tasadores del condado deben estimar el valor de una casa a los efectos de evaluar los impuestos. Los
profesionales inmobiliarios y los compradores de viviendas consultan sitios web populares comoZil‐
bajo para determinar un precio justo. Aquí hay algunas filas de datos de vivienda del condado de King
(Seattle), Washington, deldatos de la casa.

cabeza(casa[, C('AdjSalePrice', 'SqFtTotLiving', 'SqFtLot', 'Baños',


'Dormitorios', 'BldgGrade')])
Fuente: marco de datos local [6 X 6]

AdjSalePrice SqFtTotLiving SqFtLot Baños Dormitorios BldgGrade


(doble) (En t) (En t) (doble) (En t) (En t)
1 300805 2400 9373 3,00 6 7
2 1076162 3764 20156 3,75 4 10
3 761805 2060 26036 1,75 4 8
4 442065 3200 8618 3,75 5 7
5 297065 1720 8620 1,75 4 7
6 411781930 1012 1,50 2 8

La cabeza método de pandas marco de datos enumera las filas superiores:

Regresión lineal múltiple | 151


subconjunto = ['AdjSalePrice', 'SqFtTotLiving', 'SqFtLot', 'Baños',
'Dormitorios', 'BldgGrade']
casa[subconjunto].cabeza()

El objetivo es predecir el precio de venta a partir de las otras variables. Lalm la función maneja
el caso de regresión múltiple simplemente al incluir más términos en el lado derecho de la
ecuación; el argumentona.action = na.omit hace que el modelo descarte los registros que tienen
valores perdidos:

house_lm <- lm(AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade,
datos=casa, na.acción=na.omit)

scikit-learn's Regresión lineal también se puede utilizar para regresión lineal múltiple:

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios', 'BldgGrade']


Salir = 'AdjSalePrice'

house_lm = Regresión lineal()


house_lm.encajar(casa[predictores], casa[Salir])

Impresión house_lm objeto produce la siguiente salida:


house_lm

Llamada:

lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade, datos = casa, na.acción = na.omit)

Coeficientes:
(Interceptar) SqFtTotLiving SqFtLot Cuartos de baño

- 5.219e + 05 2.288e + 02 - 6.047e-02 - 1.944e + 04


Dormitorios BldgGrade
- 4.777e + 04 1.061e + 05

Para Regresión lineal modelo, intersección y coeficientes son los campos interceptar_
y coef_ del modelo ajustado:
impresión(F'Intercepción: {house_lm.intercept _ :. 3f}')
impresión('Coeficientes: ')
por nombre, coef en Código Postal(predictores, house_lm.coef_):
impresión(F'{nombre}: {coef}')

La interpretación de los coeficientes es como en la regresión lineal simple: la predicción


valor Y cambios por el coeficiente Bj por cada cambio de unidad en Xj asumiendo todos los demás
variables, Xk por k ≠ j, permanece igual. Por ejemplo, agregar un pie cuadrado terminado adicional a
una casa aumenta el valor estimado en aproximadamente $ 229; agregando 1,000 terminado
pies cuadrados implica que el valor aumentará en $ 228,800.

152 | Capítulo 4: Regresión y predicción


Evaluación del modelo

La métrica de rendimiento más importante desde la perspectiva de la ciencia de datos es error


cuadrático medio, o RMSE. RMSE es la raíz cuadrada del error cuadrático medio en el
predicho yI valores:

yo = 1yI -
∑norte y 2I
RMSE =
norte

Esto mide la precisión general del modelo y es una base para compararlo con otros modelos
(incluidos los modelos que se ajustan mediante técnicas de aprendizaje automático). Similar a
RMSE es elerror estándar residual, o RSE. En este caso tenemos pag predictores, y el RSE viene
dado por:

yo = 1yI -
∑norte y 2I
RSE =
norte - pag - 1

La única diferencia es que el denominador son los grados de libertad, en contraposición al


número de registros (ver "Grados de libertad" en la página 116). En la práctica, para la
regresión lineal, la diferencia entre RMSE y RSE es muy pequeña, particularmente para
aplicaciones de big data.

La resumen funcionar en R calcula RSE y otras métricas para un modelo de


regresión:
resumen(house_lm)

Llamada:

lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade, datos = casa, na.acción = na.omit)

Derechos residuales de autor:

Min 1Q Mediana 3Q Max


- 1199479-118908 - 20977 87435 9473035

Coeficientes:
Estimar Std. Valor t de errorPr(> |t|)
(Interceptar) - 5.219e + 05 1.565e + 04 -33.342 < 2e-16 ***
SqFtTotLiving 2.288e + 02 3.899e + 00 58.694 < 2e-16 ***
SqFtLot - 6.047e-02 6.118e-02 -0.988 0.323
Cuartos de baño - 1.944e + 04 3.625e + 03 -5.363 8.27e-08 ***
Dormitorios - 4.777e + 04 2.490e + 03 -19.187 < 2e-16 ***
BldgGrade 1.061e + 05 2.396e + 03 44.277 < 2e-16 ***
---
Signif. codigos: 0 '***' 0,001 '**' 0,01 '*' 0,05 '. 0,1 '' 1

Regresión lineal múltiple | 153


Error estándar residual: 261300 en 22681 grados de libertad Multiple R-
al cuadrado: 0.5406, R ajustado-al cuadrado: 0.5405
F-estadística: 5338 en 5 y 22681 DF, pag-valor: < 2.2e-16

scikit-learn proporciona una serie de métricas de regresión y clasificación. Aquí


usamoserror medio cuadrado para obtener RMSE y r2_score para el coeficiente de
determinación:
equipado = house_lm.predecir(casa[predictores])
RMSE = notario público.sqrt(error medio cuadrado(casa[Salir], equipado))
r2 = r2_score(casa[Salir], equipado)
impresión(F'RMSE: {RMSE: .0f}')
impresión(F'r2: {r2: .4f}')

Usar statsmodels para obtener un análisis más detallado del modelo de regresión en Pitón:

modelo = sm.OLS(casa[Salir], casa[predictores].asignar(constante=1))


resultados = modelo.encajar()
resultados.resumen()

La pandas método asignar, como se usa aquí, agrega una columna constante con valor 1 a los
predictores. Esto es necesario para modelar la intersección.

Otra métrica útil que verá en la salida del software es la coeficiente de determinación
nación, también llamado el R-cuadrado estadística o R2. R-cuadrado varía de 0 a 1 y mide
la proporción de variación en los datos que se tiene en cuenta en el modelo. Es útil
principalmente en usos explicativos de regresión donde desea evaluar qué tan bien
el modelo se ajusta a los datos. La fórmula paraR2 es:

yo = 1yI -
∑norte y 2I
R2 = 1 -
yo = 1 yI -
∑norte y2

El denominador es proporcional a la varianza de Y. La salida de R también informa un R


cuadrado ajustado, que se ajusta a los grados de libertad, penalizando efectivamente la adición
de más predictores a un modelo. Rara vez esto es significativamente diferente de
R-cuadrado en regresión múltiple con grandes conjuntos de datos.

Junto con los coeficientes estimados, R y statsmodels reportar el error estándar de los
coeficientes (SE) y un estadística t:

tb = B
SE B

El estadístico t —y su imagen especular, el valor p— mide hasta qué punto un coeficiente


es “estadísticamente significativo”, es decir, fuera del rango de lo que podría producir una
disposición aleatoria de predicción y variable objetivo. Cuanto mayor sea el

154 | Capítulo 4: Regresión y predicción


Estadístico t (y cuanto menor sea el valor p), más significativo será el predictor. Dado que la parsimonia es
una característica valiosa del modelo, es útil tener una herramienta como esta para guiar la elección de
variables para incluir como predictores (ver“Selección de modelo y regresión escalonada” en la página 156).

Además del estadístico t, R y otros paquetes a menudo informarán valor p (Pr


(> | t |) en el R salida) y Estadístico F. Los científicos de datos generalmente no
se involucran demasiado con la interpretación de estas estadísticas, ni con el
tema de la significación estadística. Los científicos de datos se centran
principalmente en el estadístico t como una guía útil para incluir o no un
predictor en un modelo. Los estadísticos t altos (que van con valores p
cercanos a 0) indican que un predictor debe retenerse en un modelo, mientras
que los estadísticos t muy bajos indican que podría descartarse un predictor.
Ver“Valor p” en la página 106 para más discusión.

Validación cruzada

Métricas clásicas de regresión estadística (R2, Las estadísticas F y los valores p) son todas métricas "en
la muestra": se aplican a los mismos datos que se utilizaron para ajustar el modelo. Intuitivamente,
puede ver que tendría mucho sentido dejar de lado algunos de los datos originales, no usarlos para
ajustar el modelo, y luego aplicar el modelo a los datos reservados (reservados) para ver qué tan bien
funciona . Normalmente, usaría la mayoría de los datos para ajustar el modelo y usaría una porción
más pequeña para probar el modelo.

Esta idea de validación “fuera de muestra” no es nueva, pero en realidad no se afianzó hasta que los conjuntos de
datos más grandes se volvieron más frecuentes; con un conjunto de datos pequeño, los analistas normalmente
quieren utilizar todos los datos y ajustar el mejor modelo posible.

Sin embargo, usar una muestra reservada lo deja sujeto a cierta incertidumbre que surge
simplemente de la variabilidad en la muestra reservada pequeña. ¿Qué tan diferente sería la
evaluación si seleccionara una muestra reservada diferente?

La validación cruzada extiende la idea de una muestra reservada a múltiples muestras reservadas
secuenciales. El algoritmo para básicovalidación cruzada de k-fold es como sigue:

1. Ponga a un lado 1 / k de los datos como muestra reservada.

2. Entrene el modelo con los datos restantes.

3. Aplicar (puntuar) el modelo al 1 / k espera y registre las métricas de evaluación del modelo
necesarias.

4. Restaurar el primero 1 / k de los datos y apartar el siguiente 1 / k (excluyendo cualquier registro


que se eligió la primera vez).

5. Repita los pasos 2 y 3.

Regresión lineal múltiple | 155


6. Repita hasta que cada registro se haya utilizado en la parte reservada.

7. Promedio o combinación de las métricas de evaluación del modelo.

La división de los datos en la muestra de entrenamiento y la muestra reservada también se denomina


pliegue.

Selección de modelo y regresión escalonada


En algunos problemas, muchas variables podrían usarse como predictores en una regresión. Por ejemplo,
para predecir el valor de la vivienda, se podrían utilizar variables adicionales como el tamaño del sótano o el
año de construcción. EnR, estos son fáciles de agregar a la ecuación de regresión:

casa_completa <- lm(AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade + Tipo de propiedad + NbrLivingUnits +
SqFtFinBasement + YrBuilt + YrRenovado +
Nueva construcción,
datos=casa, na.acción=na.omit)

En Pitón, necesitamos convertir las variables categóricas y booleanas en números:

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios', 'BldgGrade',


'Tipo de propiedad', 'NbrLivingUnits', 'SqFtFinBasement', 'YrBuilt',
'YrRenovated', 'Nueva construcción']

X = pd.get_dummies(casa[predictores], drop_first=Cierto)
X['Nueva construcción'] = [1 Si Carolina del Norte demás 0 por Carolina del Norte en X['Nueva construcción']]

casa_completa = sm.OLS(casa[Salir], X.asignar(constante=1))


resultados = casa_completa.encajar()
resultados.resumen()

Sin embargo, agregar más variables no significa necesariamente que tengamos un modelo mejor. Los
estadísticos utilizan el principio deLa navaja de Occam para orientar la elección de un modelo: en
igualdad de condiciones, se debe utilizar un modelo más simple en lugar de un modelo más
complicado.

La inclusión de variables adicionales siempre reduce el RMSE y aumenta R2 para los datos de entrenamiento.
Por lo tanto, estos no son apropiados para ayudar a guiar la elección del modelo. Una aproximación

para incluir la complejidad del modelo es utilizar el ajuste R2:

Rad
2 j= 1 - (1 - R2) norte - 1
norte - PAG - 1

Aquí, norte es el número de registros y PAG es el número de variables del modelo.

156 | Capítulo 4: Regresión y predicción


En la década de 1970, Hirotugu Akaike, el eminente estadístico japonés, desarrolló una métrica
llamada AIC (Criterios de información de Akaike) que penaliza la adición de términos a un modelo. En
el caso de regresión, AIC tiene la forma:

AIC = 2P + n Iniciar sesión(RSS /norte)

dónde PAG es el número de variables y norte es el número de registros. El objetivo es


encontrar el modelo que minimice el AIC; modelos conk más variables adicionales se penalizan
con 2k.

AIC, BIC y Mallows Cp

La fórmula de AIC puede parecer un poco misteriosa, pero de hecho se


basa en resultados asintóticos en la teoría de la información. Hay varias
variantes de AIC:

AICc
Una versión de AIC corregida para tamaños de muestra pequeños.

Criterios de información BIC o bayesianos


Similar a AIC, con una penalización más fuerte por incluir
variables adicionales al modelo.

Malvas Cp
Una variante de AIC desarrollada por Colin Mallows.

Por lo general, estos se informan como métricas dentro de la muestra (es decir, en
los datos de capacitación), y los científicos de datos que usan datos retenidos para la
evaluación del modelo no necesitan preocuparse por las diferencias entre ellos o la
teoría subyacente detrás de ellos.

¿Cómo encontramos el modelo que minimiza el AIC o maximiza el ajuste R2? Una forma es buscar en
todos los modelos posibles, un enfoque llamado regresión de todos los subconjuntos. Esto es
computacionalmente costoso y no es factible para problemas con datos grandes y muchas variables.
Una alternativa atractiva es utilizarregresión por pasos. Podría comenzar con un modelo completo y
eliminar sucesivamente las variables que no contribuyan de manera significativa. Se llamaeliminación
hacia atrás. Alternativamente, se podría comenzar con un modelo constante y agregar variables
sucesivamente (selección hacia adelante). Como tercera opción también podemos tener éxito
sivamente agregue y elimine predictores para encontrar un modelo que reduzca el AIC o ajuste R2. La
MASA en R paquete de Venebles y Ripley ofrece una función de regresión paso a paso llamada
stepAIC:

Biblioteca(MASA)
paso <- stepAIC(casa_completa, dirección="ambas cosas")
paso

Llamada:

Regresión lineal múltiple | 157


lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving + Cuartos de baño + Dormitorios +
BldgGrade + Tipo de propiedad + SqFtFinBasement + YrBuilt, datos = casa,
na.acción = na.omit)

Coeficientes:
(Interceptar) SqFtTotLiving
6.179e + 06 1.993e + 02
Cuartos de baño Dormitorios
4.240e + 04 - 5.195e + 04
BldgGrade PropertyTypeSingle Family
1.372e + 05 2.291e + 04
PropertyType Townhouse SqFtFinBasement
8.448e + 04 7.047e + 00
YrBuilt
- 3.565e + 03

scikit-learn no tiene implementación para la regresión paso a paso. Implementamos funciones


ciones stepwise_selection, forward_selection, y backward_elimination en nuestro
dmba paquete:

y = casa[Salir]

def tren_modelo(variables):
Si len(variables) == 0:
regreso Ninguno
modelo = Regresión lineal()
modelo.encajar(X[variables], y)
regreso modelo

def score_model(modelo, variables):


Si len(variables) == 0:
regreso AIC_score(y, [y.significar()] * len(y), modelo, df=1)
regreso AIC_score(y, modelo.predecir(X[variables]), modelo)

mejor modelo, mejores_variables = selección_paso(X.columnas, tren_modelo,


score_model, verboso=Cierto)

impresión(F'Intercepción: {best_model.intercept _ :. 3f}')


impresión('Coeficientes: ')
por nombre, coef en Código Postal(mejores_variables, mejor modelo.coef_):
impresión(F'{nombre}: {coef}')

Defina una función que devuelva un modelo ajustado para un conjunto de variables dado.

Defina una función que devuelva una puntuación para un modelo y un conjunto de variables
dados. En este caso, usamos elAIC_score implementado en el dmba paquete.

La función eligió un modelo en el que se eliminaron varias variables de


house_full: SqFtLot, NbrLivingUnits, YrRenovated, y Nueva construcción.

158 | Capítulo 4: Regresión y predicción


Más simples aún son selección de avance y selección hacia atrás. En la selección hacia adelante,
comienza sin predictores y los agrega uno por uno, en cada paso agregando el predictor
que tiene la mayor contribución a R2, y detenerse cuando la contribución ya no sea
estadísticamente significativa. En selección hacia atrás, oeliminación hacia atrás, comienza con
el modelo completo y elimina los predictores que no son estadísticamente significativos hasta
que se queda con un modelo en el que todos los predictores son estadísticamente significativos.

Regresión penalizada es similar en espíritu a AIC. En lugar de buscar explícitamente a través de un


conjunto discreto de modelos, la ecuación de ajuste del modelo incorpora una restricción que
penaliza al modelo por demasiadas variables (parámetros). En lugar de eliminar por completo las
variables predictoras, como ocurre con la selección por pasos, hacia adelante y hacia atrás, la
regresión penalizada aplica la penalización al reducir los coeficientes, en algunos casos hasta casi
cero. Los métodos de regresión penalizados comunes sonregresión de la cresta y regresión de lazo.

La regresión escalonada y toda la regresión de subconjuntos son en la muestra métodos para evaluar
y ajustar modelos. Esto significa que la selección del modelo posiblemente esté sujeta a sobreajuste
(ajustando el ruido en los datos) y puede no funcionar tan bien cuando se aplica a nuevos datos. Un
enfoque común para evitar esto es utilizar la validación cruzada para validar los modelos. En la
regresión lineal, el sobreajuste no suele ser un problema importante, debido a la estructura global
simple (lineal) impuesta a los datos. Para tipos de modelos más sofisticados, procedimientos
particularmente iterativos que responden a la estructura de datos local, la validación cruzada es una
herramienta muy importante; ver“Validación cruzada” en la página 155 para detalles.

Regresión ponderada
Los estadísticos utilizan la regresión ponderada para una variedad de propósitos; en particular, es
importante para el análisis de encuestas complejas. Los científicos de datos pueden encontrar útil la
regresión ponderada en dos casos:

• Ponderación de la varianza inversa cuando se han medido diferentes observaciones


con diferente precisión; los de mayor varianza reciben pesos más bajos.
• Análisis de datos donde las filas representan múltiples casos; la variable de ponderación codifica
cuántas observaciones originales representa cada fila.

Por ejemplo, con los datos de vivienda, las ventas más antiguas son menos confiables que las ventas más
recientes. Utilizando laFecha del documento para determinar el año de la venta, podemos calcular un
Peso como el número de años desde 2005 (el comienzo de los datos):

R
Biblioteca(lubridate)
casaPSAño = año(casaPSFecha del documento)
casaPSPeso = casaPSAño - 2005

Regresión lineal múltiple | 159


Pitón
casa['Año'] = [En t(fecha.separar('-') [0]) por fecha en casa.Fecha del documento]
casa['Peso'] = casa.Año - 2005

Podemos calcular una regresión ponderada con el lm función usando el peso


argumento:

house_wt <- lm(AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade,
datos=casa, peso=Peso)
redondo(cbind(house_lm=house_lmPScoeficientes,
house_wt=house_wtPScoeficientes), digitos=3)

house_lm house_wt
(Interceptar) - 521871.368 -584189.329
SqFtTotLiving 228.831 245.024
SqFtLot - 0.060 - 0.292
Cuartos de baño - 19442.840 -26085.970
Dormitorios - 47769.955 -53608.876
BldgGrade 106106.963 115242.435

Los coeficientes de la regresión ponderada son ligeramente diferentes de los de la regresión


original.

La mayoría de modelos en scikit-learn aceptar pesos como argumento de palabra clave sam
ple_weight en la llamada del encajar método:

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios', 'BldgGrade']


Salir = 'AdjSalePrice'

house_wt = Regresión lineal()


house_wt.encajar(casa[predictores], casa[Salir], sample_weight=casa.Peso)

Ideas claves

• Modelos de regresión lineal múltiple la relación entre una variable de respuesta Y


y múltiples variables predictoras X1, ..., Xpag.

• Las métricas más importantes para evaluar un modelo son el error cuadrático medio
(RMSE) y R-cuadrado (R2).

• El error estándar de los coeficientes se puede utilizar para medir la confiabilidad de la


contribución de una variable a un modelo.

• La regresión escalonada es una forma de determinar automáticamente qué variables deben


incluirse en el modelo.

• La regresión ponderada se usa para dar a ciertos registros más o menos peso al ajustar la
ecuación.

160 | Capítulo 4: Regresión y predicción


Otras lecturas
Se puede encontrar un excelente tratamiento de validación cruzada y remuestreo en
Introducción al aprendizaje estadístico por Gareth James, Daniela Witten, Trevor Hastie y
Robert Tibshirani (Springer, 2013).

Predicción mediante regresión


El propósito principal de la regresión en la ciencia de datos es la predicción. Es útil tener esto en
cuenta, ya que la regresión, al ser un método estadístico antiguo y establecido, viene con un bagaje
que es más relevante para su función tradicional como herramienta para el modelado explicativo que
para la predicción.

Términos clave para la predicción mediante regresión

Intervalo de predicción
Un intervalo de incertidumbre alrededor de un valor predicho individual.

Extrapolación
Extensión de un modelo más allá del rango de los datos utilizados para ajustarlo.

Los peligros de la extrapolación

Los modelos de regresión no deben usarse para extrapolar más allá del rango de los datos
(dejando de lado el uso de regresión para el pronóstico de series de tiempo). El modelo es
válido solo para valores de predicción para los que los datos tienen valores suficientes (incluso
en el caso de que haya suficientes datos disponibles, podría haber otros problemas; consulte
“Diagnóstico de regresión” en la página 176). Como caso extremo, supongamodel_lm se utiliza
para predecir el valor de un lote vacío de 5,000 pies cuadrados. En tal caso, todos los
predictores relacionados con el edificio tendrían un valor de 0, y la ecuación de regresión
arrojaría una predicción absurda de –521,900 + 5,000 × –.0605 = - $ 522,202. ¿Por qué pasó
esto? Los datos contienen solo parcelas con edificios; no hay registros correspondientes a
terrenos baldíos. En consecuencia, el modelo no tiene información que le diga cómo predecir el
precio de venta de los terrenos baldíos.

Intervalos de confianza y predicción


Gran parte de las estadísticas implica comprender y medir la variabilidad (incertidumbre). Los estadísticos t y
los valores p informados en el resultado de la regresión tratan esto de una manera formal, lo que a veces es
útil para la selección de variables (ver"Evaluación del modelo" en la página 153). Las métricas más útiles son
los intervalos de confianza, que son intervalos de incertidumbre colocados alrededor de los coeficientes de
regresión y las predicciones. Una forma sencilla de entender esto es mediante el bootstrap (consulte“El
Bootstrap” en la página 61 para más detalles sobre

Predicción mediante regresión | 161


el procedimiento de arranque general). Los intervalos de confianza de regresión más comunes que se
encuentran en la salida del software son los de los parámetros de regresión (coeficientes). Aquí hay
un algoritmo de arranque para generar intervalos de confianza para parámetros de regresión
(coeficientes) para un conjunto de datos conPAG predictores y norte registros (filas):

1. Considere cada fila (incluida la variable de resultado) como un solo "boleto" y coloque todos los norte
entradas en una caja.

2. Dibuje un boleto al azar, registre los valores y reemplácelo en el cuadro.

3. Repita el paso 2 norte veces; ahora tiene un remuestreo de arranque.

4. Ajuste una regresión a la muestra bootstrap y registre los coeficientes estimados.

5. Repita los pasos 2 a 4, digamos, 1.000 veces.

6. Ahora tiene 1000 valores de arranque para cada coeficiente; encuentre los percentiles apropiados
para cada uno (por ejemplo, 5º y 95º para un intervalo de confianza del 90%).

Puedes usar el Bota funcionar en R para generar intervalos de confianza de arranque reales para los
coeficientes, o simplemente puede usar los intervalos basados en fórmulas que son una rutina R
producción. El significado conceptual y la interpretación son los mismos, y no tienen una importancia
central para los científicos de datos, porque se refieren a los coeficientes de regresión.
De mayor interés para los científicos de datos son los intervalos alrededor de los predichos y valores (YI). La

incertidumbre alrededor YI proviene de dos fuentes:

• Incertidumbre sobre cuáles son las variables predictoras relevantes y sus coeficientes
(consulte el algoritmo de arranque anterior)

• Error adicional inherente a puntos de datos individuales

El error de punto de datos individual puede pensarse de la siguiente manera: incluso si supiéramos
con certeza cuál era la ecuación de regresión (por ejemplo, si tuviéramos una gran cantidad de
registros para ajustarla), el real los valores de resultado para un conjunto dado de valores predictores
variarán. Por ejemplo, varias casas, cada una con 8 habitaciones, un lote de 6,500 pies cuadrados, 3
baños y un sótano, pueden tener valores diferentes. Podemos modelar este error individual con los
residuos de los valores ajustados. El algoritmo de arranque para modelar tanto el error del modelo de
regresión como el error del punto de datos individuales se vería de la siguiente manera:

1. Tome una muestra de bootstrap de los datos (explicados con mayor detalle anteriormente).

2. Ajuste la regresión y prediga el nuevo valor.


3. Tome un único residuo al azar del ajuste de regresión original, agréguelo al valor
predicho y registre el resultado.
4. Repita los pasos del 1 al 3, digamos, 1.000 veces.

5. Encuentre los percentiles 2.5 y 97.5 de los resultados.

162 | Capítulo 4: Regresión y predicción


Ideas claves

• La extrapolación más allá del rango de los datos puede provocar errores.

• Los intervalos de confianza cuantifican la incertidumbre en torno a los coeficientes de regresión.

• Los intervalos de predicción cuantifican la incertidumbre en las predicciones individuales.

• La mayoría del software, R incluido, producirá predicciones e intervalos de confianza en la salida


predeterminada o especificada, utilizando fórmulas.

• El bootstrap también se puede utilizar para producir predicciones e intervalos de confianza;


la interpretación y la idea son las mismas.

¿Intervalo de predicción o intervalo de confianza?

Un intervalo de predicción se refiere a la incertidumbre en torno a un solo


valor, mientras que un intervalo de confianza se refiere a una media u otra
estadística calculada a partir de múltiples valores. Por tanto, un intervalo de
predicción suele ser mucho más amplio que un intervalo de confianza para el
mismo valor. Modelamos este error de valor individual en el modelo de
arranque seleccionando un residuo individual para agregar al valor predicho.
¿Cuál deberías usar? Eso depende del contexto y el propósito del análisis,
pero, en general, los científicos de datos están interesados en predicciones
individuales específicas, por lo que un intervalo de predicción sería más
apropiado. Usar un intervalo de confianza cuando debería usar un intervalo de
predicción subestimará en gran medida la incertidumbre en un valor predicho
dado.

Variables de factores en regresión


Factor variables, también denominadas categórico variables, toman un número limitado de valores
discretos. Por ejemplo, el propósito de un préstamo puede ser “consolidación de deudas”, “boda”,
“automóvil”, etc. La variable binaria (sí / no), también llamadaindicador variable, es un caso especial
de una variable factorial. La regresión requiere entradas numéricas, por lo que las variables de factor
deben recodificarse para usarlas en el modelo. El enfoque más común es convertir una variable en un
conjunto detonto variables.

Variables de factores en regresión | 163


Términos clave para variables de factores

Variables ficticias
Variables binarias 0-1 derivadas de la recodificación de datos de factores para su uso en modelos de
regresión y otros.

Codificación de referencia

El tipo de codificación más común utilizado por los estadísticos, en el que un nivel de un
factor se usa como referencia y otros factores se comparan con ese nivel.

Sinónimo
codificación de tratamiento

Un codificador caliente

Un tipo común de codificación utilizado en la comunidad de aprendizaje automático en el que se


conservan todos los niveles de factores. Si bien es útil para ciertos algoritmos de aprendizaje
automático, este enfoque no es apropiado para la regresión lineal múltiple.

Codificación de desviación

Un tipo de codificación que compara cada nivel con la media general en oposición al
nivel de referencia.

Sinónimo
suma de contrastes

Representación de variables ficticias

En los datos de vivienda del condado de King, hay una variable de factor para el tipo de propiedad; un pequeño
subconjunto de seis registros se muestra a continuación:

R:
cabeza(casa[, 'Tipo de propiedad'])
Fuente: marco de datos local [6 X 1]

Tipo de propiedad
(fctr)
1 Multicine
2 Unifamiliar
3 Unifamiliar
4 Unifamiliar
5 Unifamiliar
6 Casa adosada

Pitón:
casa.Tipo de propiedad.cabeza()

164 | Capítulo 4: Regresión y predicción


Hay tres valores posibles: Multiplex, Unifamiliar, y Casa adosada. Para usar esta variable de factor,
necesitamos convertirla en un conjunto de variables binarias. Hacemos esto creando una
variable binaria para cada valor posible de la variable del factor. Para hacer esto en
R, usamos el model.matrix función:3
prop_type_dummies <- model.matrix(~Tipo de propiedad -1, datos=casa)
cabeza(prop_type_dummies)
PropertyTypeMultiplex PropertyTypeUnifamiliar PropertyTypeTownhouse
1 100
2 010
3 010
4 010
5 010
6 001

La función model.matrix convierte un marco de datos en una matriz adecuada para un modelo
lineal. La variable factorTipo de propiedad, que tiene tres niveles distintos, se representa como
una matriz con tres columnas. En la comunidad de aprendizaje automático, esta representación
se conoce comouna codificación en calientever “Un codificador activo” en la página 242).

En Pitón, podemos convertir variables categóricas en variables ficticias usando el pandas método
get_dummies:

pd.get_dummies(casa['Tipo de propiedad']).cabeza()
pd.get_dummies(casa['Tipo de propiedad'], drop_first=Cierto).cabeza()

De forma predeterminada, devuelve una codificación activa de la variable categórica.

El argumento de la palabra clave drop_first volverá PAG - 1 columnas. Utilice esto para evitar el
problema de la multicolinealidad.

En ciertos algoritmos de aprendizaje automático, como los vecinos más cercanos y los modelos de árbol, una
codificación en caliente es la forma estándar de representar variables de factores (por ejemplo, consulte
“Modelos de árbol” en la página 249).

En la configuración de regresión, una variable de factor con PAG distintos niveles se representa generalmente por
una matriz con sólo PAG - 1 columnas. Esto se debe a que un modelo de regresión generalmente incluye un término
de intersección. Con una intersección, una vez que haya definido los valores para
PAG - 1 binarios, el valor de la PAGEsto es conocido y podría considerarse redundante.
Añadiendo elPAGLa columna causará un error de multicolinealidad (ver “Multicolinealidad” en
la página 172).

3 El -1 argumento en el model.matrix produce una representación de codificación activa (eliminando la intersección, de ahí el
"-"). De lo contrario, el valor predeterminado enR es producir una matriz con PAG - 1 columnas con el primer nivel de factor
como referencia.

Variables de factores en regresión | 165


La representación predeterminada en R es utilizar el primer nivel de factor como referencia e
interpretar los niveles restantes en relación con ese factor:

lm(AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade + Tipo de propiedad, datos=casa)

Llamada:

lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade + Tipo de propiedad, datos = casa)

Coeficientes:
(Interceptar) SqFtTotLiving
- 4.468e + 05 2.234e + 02
SqFtLot Cuartos de baño

- 7.037e-02 - 1.598e + 04
Dormitorios BldgGrade
- 5.089e + 04 1.094e + 05
PropertyTypeSingle Family PropertyTypeTownhouse
- 8.468e + 04 - 1.151e + 05

El método get_dummies toma el argumento de palabra clave opcional drop_first para excluir
el primer factor como referencia:

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios',


'BldgGrade', 'Tipo de propiedad']

X = pd.get_dummies(casa[predictores], drop_first=Cierto)

house_lm_factor = Regresión lineal()


house_lm_factor.encajar(X, casa[Salir])

impresión(F'Intercepción: {house_lm_factor.intercept _ :. 3f}')


impresión('Coeficientes: ')
por nombre, coef en Código Postal(X.columnas, house_lm_factor.coef_):
impresión(F'{nombre}: {coef}')

La salida del R La regresión muestra dos coeficientes correspondientes a Propiedad


Tipo: PropertyTypeSingle Family y PropertyTypeTownhouse. No hay coeffi‐
ciente de Multicine ya que se define implícitamente cuando PropertyTypeSingle Family == 0
y PropertyTypeTownhouse == 0. Los coeficientes se interpretan como relativos a Multicine,
entonces un hogar que es Unifamiliar vale casi $ 85,000 menos, y una casa que está Casa
adosada vale más de $ 150,000 menos.4

4 Esto no es intuitivo, pero puede explicarse por el impacto de la ubicación como una variable de confusión; ver“Variables de
confusión” en la página 172.

166 | Capítulo 4: Regresión y predicción


Codificaciones de diferentes factores

Hay varias formas diferentes de codificar variables de factor, conocidas como


codificación de contraste sistemas. Por ejemplo,codificación de desviación, también
conocido como suma de contrastes, compara cada nivel con la media general. Otro
contraste escodificación polinomial, cuál es apropiado para factores ordenados; ver
la sección“Variables de factor ordenadas” en la página 169. Con la excepción de los
factores ordenados, los científicos de datos generalmente no encontrarán ningún
tipo de codificación además de la codificación de referencia o un codificador activo.

Factorizar variables con muchos niveles

Algunas variables de factor pueden producir una gran cantidad de variables ficticias
binarias: los códigos postales son una variable de factor y hay 43.000 códigos postales en
los EE. UU. En tales casos, es útil explorar los datos y las relaciones entre las variables
predictoras y el resultado, para determinar si las categorías contienen información útil. Si
es así, debe decidir además si es útil retener todos los factores o si los niveles deben
consolidarse.

En el condado de King, hay 80 códigos postales con la venta de una casa:

mesa(casaPSCódigo postal)

98001 98002 98003 98004 98005 98006 98007 98008 98010 98011 98014 98019
358180241293133460112291 56163 85242
98022 98023 98024 98027 98028 98029 98030 98031 98032 98033 98034 98038
188 455 31 366 252475 263 308 121517 575 788
98039 98040 98042 98043 98045 98047 98050 98051 98052 98053 98055 98056
47244641 1222 48 7 32 614 499 332 402
98057 98058 98059 98065 98068 98070 98072 98074 98075 98077 98092 98102
4420 513 430 1 89 245 502 388 204 289 106
98103 98105 98106 98107 98108 98109 98112 98113 98115 98116 98117 98118
671313361296155149357 1620364619492
98119 98122 98125 98126 98133 98136 98144 98146 98148 98155 98166 98168
260380409473465310332287 40358193332
98177 98178 98188 98198 98199 98224 98288 98354
216 266 101225 393 3 4 9

La value_counts método de pandas Los marcos de datos devuelven la misma información:

pd.Marco de datos(casa['Código postal'].value_counts()).transponer()

Código postal es una variable importante, ya que es un proxy del efecto de la ubicación en
el valor de una casa. Incluir todos los niveles requiere 79 coeficientes correspondientes a
79 grados de libertad. El modelo originalhouse_lm tiene solo 5 grados de libertad; ver
"Evaluación del modelo" en la página 153. Además, varios códigos postales tienen una sola venta. En
algunos problemas, puede consolidar un código postal utilizando los primeros dos o tres dígitos,

Variables de factores en regresión | 167


correspondiente a una región geográfica submetropolitana. Para el condado de King, casi todas las
ventas ocurren en 980xx o 981xx, por lo que esto no ayuda.

Un enfoque alternativo es agrupar los códigos postales de acuerdo con otra variable, como el
precio de venta. Aún mejor es formar grupos de códigos postales utilizando los residuos de un
modelo inicial. La siguientedplyr codificar en R consolida los 80 códigos postales en cinco
grupos basados en la mediana del residuo del house_lm regresión:

zip_groups <- casa %>%


mudar(resid = derechos residuales de autor(house_lm)) %>%
agrupar por(Código postal) %>%
resumir(med_resid = mediana(resid),
cnt = norte()) %>%
arreglar(med_resid) %>%
mudar(cum_cnt = eyacular(cnt),
ZipGroup = ntile(cum_cnt, 5))
casa <- casa %>%
left_join(Seleccione(zip_groups, Código postal, ZipGroup), por='Código postal')

La mediana residual se calcula para cada zip, y la ntile La función se utiliza para dividir los códigos
postales, ordenados por la mediana, en cinco grupos. Ver“Variables de confusión” en la página 172
para ver un ejemplo de cómo se usa esto como un término en una regresión que mejora el ajuste
original.

En Pitón podemos calcular esta información de la siguiente manera:

zip_groups = pd.Marco de datos([


*pd.Marco de datos({
'Código postal': casa['Código postal'],
'residual' : casa[Salir] - house_lm.predecir(casa[predictores]),
})
. agrupar por(['Código postal'])
. solicitar(lambda X: {
'Código postal': X.iloc[0,0],
'contar': len(X),
'median_residual': X.residual.mediana()
})
]).sort_values('median_residual')
zip_groups['cum_count'] = notario público.eyacular(zip_groups['contar'])
zip_groups['ZipGroup'] = pd.qcut(zip_groups['cum_count'], 5, etiquetas=Falso,
retbins=Falso)

unir = zip_groups[['Código postal', 'ZipGroup']].set_index('Código postal')


casa = casa.entrar(unir, en='Código postal')
casa['ZipGroup'] = casa['ZipGroup'].astipo('categoría')

El concepto de utilizar los residuos para ayudar a guiar el ajuste de regresión es un paso fundamental
en el proceso de modelado; ver“Diagnóstico de regresión” en la página 176.

168 | Capítulo 4: Regresión y predicción


Variables de factor ordenadas

Algunas variables de factores reflejan los niveles de un factor; estos se denominanvariables de factor
ordenadas o variables categóricas ordenadas. Por ejemplo, la calificación del préstamo podría ser A,
B, C, etc., cada calificación conlleva más riesgo que la calificación anterior. A menudo, las variables de
factor ordenadas se pueden convertir a valores numéricos y usarse tal cual. Por ejemplo, la variable
BldgGrade es una variable factorial ordenada. Varios de los tipos de grados se muestran enTabla 4-1. Si
bien las calificaciones tienen un significado específico, el valor numérico está ordenado de menor a
mayor, correspondiente a las viviendas de mayor grado. Con el modelo de regresión
house_lm, encajar “Regresión lineal múltiple” en la página 150, BldgGrade fue tratado como una
variable numérica.

Tabla 4-1. Calificaciones de construcción y equivalentes numéricos

Valor Descripción

1 Cabina

2 Subestándar

5 Justo

10 Muy bien

12 Lujo
13 Mansión

El tratamiento de los factores ordenados como una variable numérica conserva la información
contenida en el orden que se perdería si se convirtiera en un factor.

Ideas claves

• Las variables de los factores deben convertirse en variables numéricas para su uso en una
regresión.

• El método más común para codificar una variable de factor con valores distintos de P es
representarlos usando variables ficticias P - 1.

• Es posible que sea necesario consolidar una variable de factor con muchos niveles, incluso en conjuntos de datos

muy grandes, en una variable con menos niveles.

• Algunos factores tienen niveles que están ordenados y se pueden representar como una única
variable numérica.

Interpretación de la ecuación de regresión


En ciencia de datos, el uso más importante de la regresión es predecir alguna variable dependiente
(resultado). En algunos casos, sin embargo, obtener información a partir de la ecuación en sí

Interpretación de la ecuación de regresión | 169


comprender la naturaleza de la relación entre los predictores y el resultado puede ser
valioso. Esta sección proporciona orientación sobre cómo examinar la ecuación de
regresión e interpretarla.

Términos clave para interpretar la ecuación de regresión

Variables correlacionadas
Cuando las variables predictoras están altamente correlacionadas, es difícil interpretar los
coeficientes individuales.

Multicolinealidad
Cuando las variables predictoras tienen una correlación perfecta o casi perfecta, la
regresión puede ser inestable o imposible de calcular.

Sinónimo
colinealidad

Variables de confusión
Un predictor importante que, cuando se omite, conduce a relaciones falsas en una
ecuación de regresión.

Efectos principales

La relación entre un predictor y la variable de resultado, independientemente de otras


variables.

Interacciones
Una relación interdependiente entre dos o más predictores y la
respuesta.

Predictores correlacionados

En la regresión múltiple, las variables predictoras a menudo se correlacionan entre sí. Como
ejemplo, examine los coeficientes de regresión del modelo.step_lm, encajar “Selección de
modelo y regresión escalonada” en la página 156.

R:
step_lmPScoeficientes
(Interceptar) SqFtTotLiving Cuartos de baño

6.178645e + 06 1.992776e + 02 4.239616e + 04


Dormitorios BldgGrade PropertyTypeSingle Family
- 5.194738e + 04 1.371596e + 05 2.291206e + 04
PropertyTypeTownhouse SqFtFinBasement YrBuilt
8.447916e + 04 7.046975e + 00 - 3.565425e + 03

170 | Capítulo 4: Regresión y predicción


Pitón:
impresión(F'Intercepción: {best_model.intercept _ :. 3f}')
impresión('Coeficientes: ')
por nombre, coef en Código Postal(mejores_variables, mejor modelo.coef_):
impresión(F'{nombre}: {coef}')

El coeficiente para Dormitorios es negativo! Esto implica que agregar un dormitorio a una casa
reducirá su valor. ¿Cómo puede ser esto? Esto se debe a que las variables predictoras están
correlacionadas: las casas más grandes tienden a tener más dormitorios y es el tamaño lo que
determina el valor de la casa, no el número de dormitorios. Considere dos casas del mismo
tamaño exacto: es razonable esperar que una casa con más habitaciones pero más pequeñas
se considere menos deseable.

Tener predictores correlacionados puede dificultar la interpretación del signo y el valor de los
coeficientes de regresión (y puede inflar el error estándar de las estimaciones). Las variables
para los dormitorios, el tamaño de la casa y el número de baños están correlacionados. Esto se
ilustra con el siguiente ejemplo enR, que se ajusta a otra regresión eliminando el
variables SqFtTotLiving, SqFtFinBasement, y Cuartos de baño de la ecuación:
actualizar(step_lm, . ~ . - SqFtTotLiving - SqFtFinBasement - Cuartos de baño)

Llamada:

lm(fórmula = AdjPrecio de venta ~ Dormitorios + BldgGrade + Tipo de propiedad +


YrBuilt, datos = casa, na.acción = na.omit)

Coeficientes:
(Interceptar) Dormitorios
4913973 27151
BldgGrade PropertyTypeSingle Family
248998-199898
PropertyType Townhouse Año de construcción
- 47355 - 3212

La actualizar La función se puede utilizar para agregar o eliminar variables de un modelo. Ahora el
coeficiente para los dormitorios es positivo, en línea con lo que cabría esperar (aunque en realidad
actúa como un sustituto del tamaño de la casa, ahora que se eliminaron esas variables).

En Pitón, no hay equivalente a R's actualizar función. Necesitamos reajustar el modelo con la
lista de predictores modificada:

predictores = ['Dormitorios', 'BldgGrade', 'Tipo de propiedad', 'YrBuilt']


Salir = 'AdjSalePrice'

X = pd.get_dummies(casa[predictores], drop_first=Cierto)

reducida_lm = Regresión lineal()


reducida_lm.encajar(X, casa[Salir])

Las variables correlacionadas son solo un problema al interpretar los coeficientes de regresión. En
house_lm, no hay una variable para dar cuenta de la ubicación de la casa, y el modelo

Interpretación de la ecuación de regresión | 171


está mezclando tipos de regiones muy diferentes. La ubicación puede ser unaconfuso
variable; ver“Variables de confusión” en la página 172 para mayor discusión.

Multicolinealidad
Un caso extremo de variables correlacionadas produce multicolinealidad, una condición en la
que hay redundancia entre las variables predictoras. La multicolinealidad perfecta ocurre
cuando una variable predictora se puede expresar como una combinación lineal de otras. La
multicolinealidad ocurre cuando:

• Una variable se incluye varias veces por error.


• PAG maniquíes, en lugar de PAG - 1 variables ficticias, se crean a partir de una variable de factor (ver
“Factorizar variables en regresión” en la página 163).

• Dos variables están casi perfectamente correlacionadas entre sí.

Se debe abordar la multicolinealidad en la regresión; las variables deben eliminarse hasta que
desaparezca la multicolinealidad. Una regresión no tiene una solución bien definida en
presencia de una multicolinealidad perfecta. Muchos paquetes de software, incluidosR y
Pitón, manejar automáticamente ciertos tipos de multicolinealidad. Por ejemplo, si
SqFtTotLiving se incluye dos veces en la regresión de la casa datos, los resultados son los mismos
que para el house_lm modelo. En el caso de multicolinealidad no perfecta, el software puede
obtener una solución, pero los resultados pueden ser inestables.

La multicolinealidad no es un problema para los métodos de regresión no


lineal como árboles, agrupamiento y vecinos más cercanos, y en tales
métodos puede ser aconsejable retener PAG maniquíes (en lugar de PAG - 1).
Dicho esto, incluso en esos métodos, la no redundancia en las variables
predictoras sigue siendo una virtud.

Variables de confusión
Con las variables correlacionadas, el problema es de comisión: incluir diferentes variables que
tienen una relación predictiva similar con la respuesta. Convariables de confusión, el problema
es de omisión: una variable importante no está incluida en la ecuación de regresión. La
interpretación ingenua de los coeficientes de la ecuación puede llevar a conclusiones inválidas.

Tomemos, por ejemplo, la ecuación de regresión del condado de King house_lm de “Ejemplo: datos de
viviendas del condado de King” en la página 151. Los coeficientes de regresión deSqFtLot, Baños, y
Dormitorios son todos negativos. El modelo de regresión original no contiene una variable para
representar la ubicación, un predictor muy importante del precio de la vivienda.

172 | Capítulo 4: Regresión y predicción


Para modelar la ubicación, incluya una variable ZipGroup que clasifica el código postal en uno
de cinco grupos, desde el más económico (1) al más caro (5):5

lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +


Dormitorios + BldgGrade + Tipo de propiedad + ZipGroup, datos = casa,
na.acción = na.omit)

Coeficientes:
(Interceptar) SqFtTotLiving
- 6.666e + 05 2.106e + 02
SqFtLot Cuartos de baño

4.550e-01 5.928e + 03
Dormitorios BldgGrade
- 4.168e + 04 9.854e + 04
PropertyTypeSingle Family PropertyTypeTownhouse
1.932e + 04 - 7.820e + 04
ZipGroup2 ZipGroup3
5.332e + 04 1.163e + 05
ZipGroup4 ZipGroup5
1.784e + 05 3.384e + 05

El mismo modelo en Pitón:

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios',


'BldgGrade', 'Tipo de propiedad', 'ZipGroup']
Salir = 'AdjSalePrice'

X = pd.get_dummies(casa[predictores], drop_first=Cierto)

confounding_lm = Regresión lineal()


confounding_lm.encajar(X, casa[Salir])

impresión(F'Intercepción: {confounding_lm.intercept _ :. 3f}')


impresión('Coeficientes: ')
por nombre, coef en Código Postal(X.columnas, confounding_lm.coef_):
impresión(F'{nombre}: {coef}')

ZipGroup es claramente una variable importante: se estima que una casa en el grupo de código
postal más caro tiene un precio de venta más alto en casi $ 340,000. Los coeficientes de
SqFtLot y Cuartos de baño ahora son positivos, y agregar un baño aumenta el precio de
venta en $ 5,928.

El coeficiente para Dormitorios sigue siendo negativo. Si bien esto no es intuitivo, es un fenómeno bien
conocido en el sector inmobiliario. En el caso de viviendas de la misma superficie habitable y número
de baños, tener más y, por tanto, dormitorios más pequeños se asocia con viviendas de menor valor.

5 Hay 80 códigos postales en el condado de King, varios con solo un puñado de ventas. Una alternativa al uso directo del código postal
como variable de factor,ZipGroup agrupa códigos postales similares en un solo grupo. Ver“Factorizar variables con muchos niveles” en
la página 167 para detalles.

Interpretación de la ecuación de regresión | 173


Interacciones y efectos principales

A los estadísticos les gusta distinguir entre efectos principales, o variables independientes, y el
interacciones entre los efectos principales. Los efectos principales son los que a menudo se
denominanvariables predictoras en la ecuación de regresión. Una suposición implícita cuando
solo se utilizan efectos principales en un modelo es que la relación entre una variable
predictora y la respuesta es independiente de las otras variables predictoras. Con frecuencia
este no es el caso.

Por ejemplo, el modelo se ajusta a los datos de vivienda del condado de King en “Variables de
confusión” en la página 172 incluye varias variables como efectos principales, incluyendo Código postal.
La ubicación en el sector inmobiliario lo es todo, y es natural suponer que la relación entre,
digamos, el tamaño de la casa y el precio de venta depende de la ubicación. Una casa grande
construida en un distrito de renta baja no va a retener el mismo valor que una casa grande
construida en un área cara. Incluyes interacciones entre variables enR utilizando el operador *.
Para los datos del condado de King, lo siguiente se ajusta a una interacción entreSqFtTotLiving y
ZipGroup:

lm(fórmula = AdjPrecio de venta ~ SqFtTotLiving * ZipGroup + SqFtLot +


Cuartos de baño + Dormitorios + BldgGrade + Tipo de propiedad, datos = casa,
na.acción = na.omit)

Coeficientes:
(Interceptar) SqFtTotLiving
- 4.853e + 05 1.148e + 02
ZipGroup2 ZipGroup3
- 1.113e + 04 2.032e + 04
ZipGroup4 ZipGroup5
2.050e + 04 - 1.499e + 05
SqFtLot Cuartos de baño

6.869e-01 - 3.619e + 03
Dormitorios BldgGrade
- 4.180e + 04 1.047e + 05
PropertyTypeSingle Family PropertyTypeTownhouse
1.357e + 04 - 5.884e + 04
SqFtTotLiving:ZipGroup2 SqFtTotLiving:ZipGroup3
3.260e + 01 4.178e + 01
SqFtTotLiving:ZipGroup4 SqFtTotLiving:ZipGroup5
6.934e + 01 2.267e + 02

El modelo resultante tiene cuatro términos nuevos: SqFtTotLiving: ZipGroup2, SqFtTotLiv


ing: ZipGroup3, y así.

En Pitón, necesitamos usar el statsmodels paquete para entrenar modelos de regresión lineal con
interacciones. Este paquete fue diseñado de manera similar aR y permite definir modelos usando una
interfaz de fórmula:

modelo = smf.ols(fórmula='AdjSalePrice ~ SqFtTotLiving * ZipGroup + SqFtLot +' +


'Baños + Dormitorios + BldgGrade + PropertyType', datos=casa)

174 | Capítulo 4: Regresión y predicción


resultados = modelo.encajar()
resultados.resumen()

La statsmodels paquete se ocupa de las variables categóricas (p. ej., ZipGroup [T.1],
PropertyType [T.Single Family]) y términos de interacción (p. ej., SqFtTotLiv ing:
ZipGroup [T.1]).

La ubicación y el tamaño de la casa parecen tener una fuerte interacción. Por un hogar en lo mas bajo
ZipGroup, la pendiente es la misma que la pendiente para el efecto principal SqFtTotLiving, que es $
118 por pie cuadrado (esto se debe a R usos referencia codificación de variables factoriales; ver
“Factorizar variables en regresión” en la página 163). Por un hogar en lo más altoZipGroup,
la pendiente es la suma del efecto principal más SqFtTotLiving: ZipGroup5, o $ 115 + $ 227 = $ 342
por pie cuadrado. En otras palabras, agregar un pie cuadrado en el grupo de código postal más
caro aumenta el precio de venta previsto en un factor de casi tres, en comparación con el
aumento promedio de agregar un pie cuadrado.

Selección de modelo con términos de interacción

En problemas que involucran muchas variables, puede resultar difícil


decidir qué términos de interacción deben incluirse en el modelo. Por lo
general, se adoptan varios enfoques diferentes:

• En algunos problemas, el conocimiento previo y la intuición pueden guiar


la elección de qué términos de interacción incluir en el modelo.

• Selección paso a paso (ver “Selección de modelo y regresión escalonada”


en la página 156) se puede utilizar para examinar los distintos modelos.

• La regresión penalizada puede ajustarse automáticamente a un gran conjunto de


posibles términos de interacción.

• Quizás el enfoque más común es utilizar modelos de árboles, así como sus
descendientes, bosque aleatorio y árboles con degradado. Esta clase de
modelos busca automáticamente términos de interacción óptimos; ver
“Modelos de árbol” en la página 249.

Ideas claves

• Debido a la correlación entre predictores, se debe tener cuidado en la interpretación de


los coeficientes en regresión lineal múltiple.

• La multicolinealidad puede causar inestabilidad numérica al ajustar la ecuación de


regresión.

• Una variable de confusión es un predictor importante que se omite de un modelo y


puede conducir a una ecuación de regresión con relaciones espurias.

Interpretación de la ecuación de regresión | 175


• Se necesita un término de interacción entre dos variables si la relación entre las
variables y la respuesta es interdependiente.

Diagnóstico de regresión
En el modelado explicativo (es decir, en un contexto de investigación), varios pasos, además de las
métricas mencionadas anteriormente (ver "Evaluación del modelo" en la página 153), se toman para
evaluar qué tan bien se ajusta el modelo a los datos; la mayoría se basan en el análisis de los residuos.
Estos pasos no abordan directamente la precisión predictiva, pero pueden proporcionar información
útil en un entorno predictivo.

Términos clave para el diagnóstico de regresión

Residuos estandarizados
Residuos divididos por el error estándar de los residuales.

Valores atípicos

Registros (o valores de resultado) que están distantes del resto de los datos (o del
resultado previsto).

Valor influyente
Un valor o registro cuya presencia o ausencia marca una gran diferencia en la
ecuación de regresión.

Aprovechar
El grado de influencia que tiene un solo registro en una ecuación de regresión.

Sinónimo
sombrero-valor

Residuos anormales
Los residuos que no se distribuyen normalmente pueden invalidar algunos requisitos técnicos de
regresión, pero generalmente no son una preocupación en la ciencia de datos.

Heterocedasticidad
Cuando algunos rangos del resultado experimentan residuos con mayor varianza
(puede indicar que falta un predictor en la ecuación).

Gráficos de residuos parciales

Un gráfico de diagnóstico para iluminar la relación entre la variable de resultado


y un solo predictor.

Sinónimo
gráfico de variables agregadas

176 | Capítulo 4: Regresión y predicción


Valores atípicos

En general, un valor extremo, también llamado parte aislada, es uno que está distante de la mayoría
de las otras observaciones. Del mismo modo que los valores atípicos deben manejarse para estimar la
ubicación y la variabilidad (ver"Estimaciones de la ubicación" en la página 7 y “Estimaciones de
variabilidad” en la página 13), los valores atípicos pueden causar problemas con los modelos de
regresión. En regresión, un valor atípico es un registro cuyo valor realy el valor está distante del valor
predicho. Puede detectar valores atípicos examinando elresidual estandarizado, que es el residual
dividido por el error estándar de los residuales.

No existe una teoría estadística que separe los valores atípicos de los no atípicos. Más bien, existen reglas
prácticas (arbitrarias) sobre qué tan distante del grueso de los datos debe estar una observación para que se
la considere un valor atípico. Por ejemplo, con la gráfica de caja, los puntos de salida son aquellos puntos de
datos que están demasiado por encima o por debajo de los límites de la caja (ver
“Percentiles y diagramas de caja” en la página 20), donde "demasiado lejos" = "más de 1,5 veces
el rango intercuartílico". En la regresión, el residuo estandarizado es la métrica que se usa
típicamente para determinar si un registro se clasifica como un valor atípico. Los residuos
estandarizados se pueden interpretar como "el número de errores estándar fuera de la línea de
regresión".

Ajustemos una regresión a los datos de ventas de viviendas del condado de King para todas las ventas en el código postal 98105 en R:

house_98105 <- casa[casaPSCódigo postal == 98105,]


lm_98105 <- lm(AdjPrecio de venta ~ SqFtTotLiving + SqFtLot + Cuartos de baño +
Dormitorios + BldgGrade, datos=house_98105)

En Pitón:
house_98105 = casa.loc[casa['Código postal'] == 98105,]

predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios', 'BldgGrade']


Salir = 'AdjSalePrice'

house_outlier = sm.OLS(house_98105[Salir],
house_98105[predictores].asignar(constante=1))
result_98105 = house_outlier.encajar()

Extraemos los residuos estandarizados en R utilizando la rstandard función y obtener el


índice del residuo más pequeño utilizando la pedido función:

sresid <- rstandard(lm_98105)


idx <- pedido(sresid)
sresid[idx[1]]
20429
- 4.326732

Diagnóstico de regresión | 177


En modelos de estadísticas, usar OLSInfluencia para analizar los residuales:

influencia = OLSInfluencia(result_98105)
sresiduales = influencia.resid_studentized_internal
sresiduals.idxmin(), sresiduales.min()

La mayor sobreestimación del modelo es más de cuatro errores estándar por encima de la línea de
regresión, lo que corresponde a una sobreestimación de $ 757,754. El registro de datos original
correspondiente a este valor atípico es el siguiente enR:

house_98105[idx[1], C('AdjSalePrice', 'SqFtTotLiving', 'SqFtLot',


'Baños', 'Dormitorios', 'BldgGrade')]

AdjSalePrice SqFtTotLiving SqFtLot Baños Dormitorios BldgGrade


(doble) (En t) (En t) (doble) (En t) (En t)
20429 119748 2900 7276 3 6 7

En Pitón:
parte aislada = house_98105.loc[sresiduales.idxmin(),:]
impresión('AdjSalePrice ', parte aislada[Salir])
impresión(parte aislada[predictores])

En este caso, parece que hay algo mal con el registro: una casa de ese tamaño normalmente se vende
por mucho más de $ 119,748 en ese código postal. Figura 4-4 muestra un extracto de la escritura
legal de esta venta: está claro que la venta involucró solo un interés parcial en la propiedad. En este
caso, el valor atípico corresponde a una venta que es anómala y no debe incluirse en la regresión. Los
valores atípicos también podrían ser el resultado de otros problemas, como una entrada de datos de
"dedo gordo" o una falta de coincidencia de unidades (por ejemplo, informar una venta en miles de
dólares en lugar de simplemente en dólares).

Figura 4-4. Escritura de garantía legal para el mayor residuo negativo

Para problemas de macrodatos, los valores atípicos generalmente no son un problema para ajustar la regresión que
se utilizará para predecir nuevos datos. Sin embargo, los valores atípicos son fundamentales para la detección de
anomalías, donde encontrar valores atípicos es la clave. El valor atípico también podría corresponder a un caso de
fraude o una acción accidental. En cualquier caso, la detección de valores atípicos puede ser una necesidad
empresarial crítica.

178 | Capítulo 4: Regresión y predicción


Valores influyentes

Un valor cuya ausencia cambiaría significativamente la ecuación de regresión se denomina


observación influyente. En la regresión, este valor no necesita estar asociado con un residuo
grande. Como ejemplo, considere las líneas de regresión enFigura 4-5. La línea continua
corresponde a la regresión con todos los datos, mientras que la línea discontinua corresponde
a la regresión con el punto en la esquina superior derecha eliminado. Claramente, el valor de
los datos tiene una gran influencia en la regresión aunque no esté asociado con un valor atípico
grande (de la regresión completa). Se considera que este valor de datos tiene un alto
aprovechar en la regresión.

Además de los residuos estandarizados (ver "Valores atípicos" en la página 177), los estadísticos han
desarrollado varias métricas para determinar la influencia de un solo registro en una regresión. Una medida
común de apalancamiento es elvalor de sombrero; valores por encima de 2 P + 1 /norte Indicar un valor de
datos de alto apalancamiento.6

Figura 4-5. Un ejemplo de un punto de datos influyente en la regresión

6 El término sombrero-valor proviene de la noción de matriz hat en regresión. La regresión lineal múltiple se puede expresar mediante la
fórmulaY = HY dónde H es la matriz del sombrero. Los valores de sombrero corresponden a la diagonal deH.

Diagnóstico de regresión | 179


Otra métrica es La distancia de Cook, que define la influencia como una combinación de
apalancamiento y tamaño residual. Una regla general es que una observación tiene una gran
influencia si la distancia de Cook excede 4 /norte - PAG - 1.

Un trama de influencia o gráfico de burbujas combina residuos estandarizados, el valor de sombrero y la


distancia de Cook en un solo gráfico. Figura 4-6 muestra la gráfica de influencia para los datos de la casa del
condado de King y se puede crear mediante el siguiente R código:

std_resid <- rstandard(lm_98105)


cooks_D <- cocineros distancia(lm_98105)
hat_values <- hatvalues(lm_98105)
gráfico(subconjunto(hat_values, cooks_D > 0,08), subconjunto(std_resid, cooks_D > 0,08),
xlab='hat_values', ylab='std_resid',
cex=10*sqrt(subconjunto(cooks_D, cooks_D > 0,08)), pch=dieciséis, columna='gris claro')
puntos(hat_values, std_resid, cex=10*sqrt(cooks_D))
abline(h=C(-2,5, 2.5), lty=2)

Aquí está el Pitón código para crear una figura similar:

influencia = OLSInfluencia(result_98105)
higo, hacha = plt.subtramas(figsize=(5, 5))
hacha.axhline(-2.5, estilo de línea='-', color='C1')
hacha.axhline(2.5, estilo de línea='-', color='C1')
hacha.dispersión(influencia.hat_matrix_diag, influencia.resid_studentized_internal,
s=1000 * notario público.sqrt(influencia.cooks_distance[0]),
alfa=0,5)
hacha.set_xlabel('valores de sombrero')
hacha.set_ylabel('residuales estudentizados')

Aparentemente, hay varios puntos de datos que exhiben una gran influencia en la regresión. La
distancia de Cook se puede calcular usando la funcióncocineros distancia, y puedes usar hatvalues
para calcular los diagnósticos. Los valores del sombrero se trazan en el eje x, los residuos se
trazan en el eje y, y el tamaño de los puntos está relacionado con el valor de la distancia de
Cook.

180 | Capítulo 4: Regresión y predicción


Figura 4-6. Un gráfico para determinar qué observaciones tienen una gran influencia; los
puntos con una distancia de Cook superior a 0,08 se resaltan en gris

Tabla 4-2 compara la regresión con el conjunto de datos completo y con los puntos de datos de gran
influencia eliminados (distancia de Cook> 0,08).

El coeficiente de regresión para Cuartos de baño cambia bastante dramáticamente.7

Tabla 4-2. Comparación de coeficientes de regresión con los datos completos y con datos influyentes
remoto
Original Influyente eliminado

(Interceptar) - 772,550 - 647,137

SqFtTotLiving 210 230


SqFtLot 39 33
Cuartos de baño 2282 - 16.132

Dormitorios - 26,320 - 22,888

BldgGrade 130.000 114,871

7 El coeficiente para Cuartos de baño se vuelve negativo, lo cual no es intuitivo. No se ha tenido en cuenta la ubicación y el
código postal 98105 contiene áreas de distintos tipos de viviendas. Ver“Variables de confusión” en la página 172 para una
discusión de las variables de confusión.

Diagnóstico de regresión | 181


Para el propósito de ajustar una regresión que predice de manera confiable datos futuros, la identificación
de observaciones influyentes es útil solo en conjuntos de datos más pequeños. Para las regresiones que
involucran muchos registros, es poco probable que una sola observación tenga suficiente peso para causar
una influencia extrema en la ecuación ajustada (aunque la regresión aún puede tener grandes valores
atípicos). Sin embargo, para la detección de anomalías, la identificación de observaciones influyentes puede
ser muy útil.

Heteroscedasticidad, no normalidad y errores correlacionados

Los estadísticos prestan mucha atención a la distribución de los residuos. Resulta que los mínimos
cuadrados ordinarios (ver“Mínimos cuadrados” en la página 148) son insesgados y, en algunos casos,
son el estimador "óptimo", según una amplia gama de supuestos distributivos. Esto significa que en la
mayoría de los problemas, los científicos de datos no necesitan preocuparse demasiado por la
distribución de los residuos.

La distribución de los residuos es relevante principalmente para la validez de la inferencia estadística


formal (pruebas de hipótesis y valores p), que es de mínima importancia para los científicos de datos
interesados principalmente en la precisión predictiva. Los errores normalmente distribuidos son una
señal de que el modelo está completo; los errores que no se distribuyen normalmente indican que al
modelo le puede faltar algo. Para que la inferencia formal sea completamente válida, se supone que
los residuos están distribuidos normalmente, tienen la misma varianza y son independientes. Un área
en la que esto puede ser de interés para los científicos de datos es el cálculo estándar de los
intervalos de confianza para los valores pronosticados, que se basan en las suposiciones sobre los
residuos (ver“Intervalos de confianza y predicción” en la página 161).

Heterocedasticidad es la falta de varianza residual constante en el rango de los valores


predichos. En otras palabras, los errores son mayores para algunas partes del rango que para
otras. Visualizar los datos es una forma conveniente de analizar residuos.

El siguiente código en R traza los residuos absolutos frente a los valores predichos para el lm_98105
ajuste de regresión "Valores atípicos" en la página 177:

df <- marco de datos(resid = derechos residuales de autor(lm_98105), pred = predecir(lm_98105))


ggplot(df, aes(pred, abdominales(resid))) + geom_point() + geom_smooth()

Figura 4-7 muestra la trama resultante. Utilizandogeom_smooth, es fácil superponer un suave de


los residuos absolutos. La función llama alloess método (suavizado del diagrama de dispersión
estimado localmente) para producir una estimación suavizada de la relación entre las variables
en el eje xy el eje y en un diagrama de dispersión (ver “Suavizadores de gráficos de dispersión”
en la página 185).

En Pitón, la marinero el paquete tiene el tramar función para crear una figura similar:

higo, hacha = plt.subtramas(figsize=(5, 5))


sns.tramar(result_98105.valores ajustados, notario público.abdominales(result_98105.resid),
scatter_kws={'alfa': 0,25}, line_kws={'color': 'C1'},
bajeza=Cierto, hacha=hacha)

182 | Capítulo 4: Regresión y predicción


hacha.set_xlabel('predicho')
hacha.set_ylabel('abs (residual)')

Figura 4-7. Un gráfico del valor absoluto de los residuos frente a los valores predichos

Evidentemente, la varianza de los residuos tiende a aumentar para las viviendas de mayor valor, pero
también es grande para las de menor valor. Esta trama indica quelm_98105 posee heteroske‐ dastic
errores.

¿Por qué a un científico de datos le importaría la heterocedasticidad?

La heterocedasticidad indica que los errores de predicción difieren


para diferentes rangos del valor predicho y pueden sugerir un
modelo incompleto. Por ejemplo, la heterocedasticidad enlm_98105
puede indicar que la regresión ha dejado algo sin explicar en los
hogares de rango alto y bajo.

Figura 4-8 es un histograma de los residuos estandarizados para el lm_98105 regresión. La


distribución tiene colas decididamente más largas que la distribución normal y exhibe una leve
asimetría hacia residuos más grandes.

Diagnóstico de regresión | 183


Figura 4-8. Un histograma de los residuos de la regresión de los datos de vivienda.

Los estadísticos también pueden verificar el supuesto de que los errores son independientes. Esto es
particularmente cierto para los datos que se recopilan a lo largo del tiempo o el espacio. LaDurbin-
Watson La estadística se puede utilizar para detectar si existe una autocorrelación significativa en una
regresión que involucra datos de series de tiempo. Si los errores de un modelo de regresión están
correlacionados, entonces esta información puede ser útil para hacer pronósticos a corto plazo y
debe incorporarse al modelo. VerPronóstico práctico de series de tiempo con R, 2nd ed., Por Galit
Shmueli y Kenneth Lichtendahl (Axelrod Schnall, 2018) para aprender más sobre cómo construir
información de autocorrelación en modelos de regresión para datos de series de tiempo. Si el
objetivo son los pronósticos a más largo plazo o los modelos explicativos, el exceso de datos
autocorrelacionados a nivel micro puede distraer. En ese caso, el suavizado o la recopilación de datos
menos granular en primer lugar, puede estar en orden.

Aunque una regresión pueda violar uno de los supuestos distributivos, ¿debería importarnos? La
mayoría de las veces, en la ciencia de datos, el interés se centra principalmente en la precisión
predictiva, por lo que puede ser necesario revisar la heterocedasticidad. Puede descubrir que hay
alguna señal en los datos que su modelo no ha capturado. Sin embargo, satisfacer los supuestos
distributivos simplemente por el simple hecho de validar la inferencia estadística formal (valores p,
estadísticas F, etc.) no es tan importante para el científico de datos.

184 | Capítulo 4: Regresión y predicción


Suavizadores de gráficos de dispersión

La regresión consiste en modelar la relación entre la respuesta y las


variables predictoras. Al evaluar un modelo de regresión, es útil utilizar
undiagrama de dispersión más suave para resaltar visualmente las
relaciones entre dos variables.

Por ejemplo, en Figura 4-7, una suavidad de la relación entre los


residuos absolutos y el valor predicho muestra que la varianza de los
residuos depende del valor del residuo. En este caso, elloess se
utilizó la función; loess funciona ajustando repetidamente una serie
de regresiones locales a subconjuntos contiguos para obtener un
suave. Tiempoloess es probablemente el suavizador más utilizado,
hay otros suavizadores de gráficos de dispersión disponibles en R,
como super suavesupsmu) y suavizado de granosksmooth). En
Pitón, podemos encontrar suavizadores adicionales en scipy (salchicha o sav)
y statsmodels (kernel_regression). A los efectos de la evaluación
Al utilizar un modelo de regresión, normalmente no hay necesidad de preocuparse por los detalles

de estos suavizados del diagrama de dispersión.

Gráficos de residuos parciales y no linealidad

Gráficos de residuos parciales son una forma de visualizar qué tan bien el ajuste estimado
explica la relación entre un predictor y el resultado. La idea básica de una gráfica residual
parcial es aislar la relación entre una variable predictora y la respuesta,teniendo en cuenta
todas las demás variables predictoras. Un residual parcial podría considerarse como un valor
de "resultado sintético", que combina la predicción basada en un único predictor con el residual
real de la ecuación de regresión completa. Un residual parcial para pre‐
dictador XI es el residuo ordinario más el término de regresión asociado con XI:

Residual parcial = Residual + BIXI

dónde BI es el coeficiente de regresión estimado. Lapredecir funcionar en R tiene una opción

para devolver los términos de regresión individuales BIXI:

condiciones <- predecir(lm_98105, tipo='condiciones')


parcial_resid <- resid(lm_98105) + condiciones

El gráfico de residuos parciales muestra el XI predictor en el eje xy los residuos parciales


en el eje y. Utilizandoggplot2 facilita la superposición de un suave de la parcial
derechos residuales de autor:

df <- marco de datos(SqFtTotLiving = house_98105[, 'SqFtTotLiving'],


Condiciones = condiciones[, 'SqFtTotLiving'],
PartialResid = parcial_resid[, 'SqFtTotLiving'])
ggplot(df, aes(SqFtTotLiving, PartialResid)) +

Diagnóstico de regresión | 185


geom_point(forma=1) + scale_shape(sólido = FALSO) +
geom_smooth(tipo de línea=2) +
geom_line(aes(SqFtTotLiving, Condiciones))

La statsmodels el paquete tiene el método sm.graphics.plot_ccpr que crea una gráfica


residual parcial similar:
sm.gráficos.plot_ccpr(result_98105, 'SqFtTotLiving')

La R y Pitón los gráficos se diferencian por un cambio constante. EnR, se suma una constante para que la
media de los términos sea cero.

La trama resultante se muestra en Figura 4-9. El residual parcial es una estimación


de la contribución queSqFtTotLiving se suma al precio de venta. La relación entre
SqFtTotLiving y el precio de venta es evidentemente no lineal (línea discontinua). La línea de
regresión (línea continua) subestima el precio de venta de las casas de menos de 1,000 pies
cuadrados y sobreestima el precio de las casas entre 2,000 y 3,000 pies cuadrados. Hay muy
pocos puntos de datos por encima de los 4,000 pies cuadrados para sacar conclusiones para
esas casas.

Figura 4-9. Un gráfico de residuos parciales para la variableSqFtTotLiving

186 | Capítulo 4: Regresión y predicción


Esta no linealidad tiene sentido en este caso: agregar 500 pies en una casa pequeña hace
una diferencia mucho mayor que agregar 500 pies en una casa grande. Esto sugiere que,
en lugar de un término lineal simple paraSqFtTotLiving, debe considerarse un término no
lineal (ver “Regresión polinomial y spline” en la página 187).

Ideas claves

• Si bien los valores atípicos pueden causar problemas para conjuntos de datos pequeños, el interés principal de los

valores atípicos es identificar problemas con los datos o localizar anomalías.

• Los registros individuales (incluidos los valores atípicos de regresión) pueden tener una gran influencia en una

ecuación de regresión con datos pequeños, pero este efecto se desvanece en los datos grandes.

• Si el modelo de regresión se usa para inferencias formales (valores p y similares), entonces


deben verificarse ciertos supuestos sobre la distribución de los residuos. Sin embargo, en
general, la distribución de residuos no es crítica en la ciencia de datos.

• La gráfica de residuos parciales se puede utilizar para evaluar cualitativamente el ajuste para cada término
de regresión, lo que posiblemente lleve a una especificación de modelo alternativa.

Regresión polinomial y spline


La relación entre la respuesta y una variable predictora no es necesariamente lineal. La respuesta a la
dosis de un medicamento a menudo no es lineal: duplicar la dosis generalmente no conduce a una
respuesta duplicada. La demanda de un producto no es una función lineal de los dólares gastados en
marketing; en algún momento, es probable que la demanda se sature. Hay muchas formas en que se
puede extender la regresión para capturar estos efectos no lineales.

Términos clave para la regresión no lineal

Regresión polinomial
Agrega términos polinomiales (cuadrados, cubos, etc.) a una regresión.

Regresión spline
Ajuste de una curva suave con una serie de segmentos polinomiales.

Nudos
Valores que separan segmentos de spline.

Modelos aditivos generalizados


Modelos de estrías con selección automática de nudos.

Sinónimo
GAM

Regresión polinomial y spline | 187


Regresión no lineal

Cuando los estadísticos hablan de regresión no lineal, se refieren a modelos


que no se pueden ajustar mediante mínimos cuadrados. ¿Qué tipo de modelos
son no lineales? Esencialmente todos los modelos en los que la respuesta no
se puede expresar como una combinación lineal de los predictores o alguna
transformación de los predictores. Los modelos de regresión no lineal son
más difíciles y computacionalmente más intensivos de ajustar, ya que
requieren optimización numérica. Por esta razón, generalmente se prefiere
utilizar un modelo lineal si es posible.

Polinomio
Regresión polinomial implica incluir términos polinomiales en una ecuación de
regresión. El uso de la regresión polinomial se remonta casi al desarrollo de la
regresión en sí con un artículo de Gergonne en 1815. Por ejemplo, una regresión
cuadrática entre la respuestaY y el predictor X tomaría la forma:

Y = b0 + B1X + b2X2 + mi

La regresión polinomial puede encajar en R a través de escuela politécnica función. Por ejemplo, lo siguiente
se ajusta a un polinomio cuadrático paraSqFtTotLiving con los datos de vivienda del condado de King:

lm(AdjPrecio de venta ~ escuela politécnica(SqFtTotLiving, 2) + SqFtLot +


BldgGrade + Cuartos de baño + Dormitorios,
datos=house_98105)

Llamada:

lm(fórmula = AdjPrecio de venta ~ escuela politécnica(SqFtTotLiving, 2) + SqFtLot +


BldgGrade + Cuartos de baño + Dormitorios, datos = house_98105)

Coeficientes:
(Interceptar) escuela politécnica(SqFtTotLiving, 2)1 escuela politécnica(SqFtTotLiving, 2)2
- 402530.47 3271519.49 776934.02
SqFtLot BldgGrade Baños
32.56 135717.06 - 1435.12
Dormitorios
- 9191,94

En modelos de estadísticas, agregamos el término al cuadrado a la definición del modelo usando Yo (SqFtTot
Viviendo ** 2):

model_poly = smf.ols(fórmula='AdjSalePrice ~ SqFtTotLiving +' +


'+ I (SqFtTotLiving ** 2) +' +
'SqFtLot + Baños + Dormitorios + BldgGrade', datos=house_98105)
result_poly = model_poly.encajar()
result_poly.resumen()

188 | Capítulo 4: Regresión y predicción


La intersección y los coeficientes del polinomio son diferentes en comparación con R. Esto
se debe a diferentes implementaciones. Los coeficientes restantes y las predicciones son
equivalentes.

Ahora hay dos coeficientes asociados con SqFtTotLiving: uno para el término lineal y
otro para el término cuadrático.

La gráfica de residuos parciales (ver “Gráficos de residuos parciales y no linealidad” en la página


185) indica alguna curvatura en la ecuación de regresión asociada con SqFtTotLiving.
La línea ajustada se asemeja más a la suave (ver “Splines” en la página 189) de los residuos
parciales en comparación con un ajuste lineal (ver Figura 4-10).

La statsmodels La implementación funciona solo para términos lineales. El código fuente adjunto
proporciona una implementación que también funcionará para la regresión polinomial.

Figura 4-10. Un ajuste de regresión polinomial para la variableSqFtTotLiving (línea continua) versus una línea
suave (línea discontinua; consulte la siguiente sección sobre splines)

Estrías
La regresión polinomial captura solo una cierta cantidad de curvatura en una relación no lineal.
Sumar en términos de orden superior, como un polinomio cuártico cúbico, a menudo

Regresión polinomial y spline | 189


conduce a una "ondulación" indeseable en la ecuación de regresión. Un enfoque alternativo, y a
menudo superior, para modelar relaciones no lineales es utilizarsplines. EstríasProporcionar una
forma de interpolar sin problemas entre puntos fijos. Los dibujantes usaban originalmente splines
para dibujar una curva suave, particularmente en la construcción de barcos y aviones.

Las estrías se crearon doblando una delgada pieza de madera usando pesos, conocidos como
"patos"; verFigura 4-11.

Figura 4-11. Las estrías se crearon originalmente con madera flexible y "patos" y se utilizaron como
herramienta del dibujante para adaptarse a las curvas (foto cortesía de Bob Perry)

La definición técnica de una spline es una serie de polinomios continuos por partes. Fueron
desarrollados por primera vez durante la Segunda Guerra Mundial en el campo de pruebas de
Aberdeen en EE. UU. Por IJ Schoenberg, un matemático rumano. Las piezas del polinomio se conectan
suavemente en una serie de puntos fijos en una variable predictora, denominadanudos La
formulación de splines es mucho más complicada que la regresión polinomial; El software estadístico
generalmente maneja los detalles del ajuste de una spline. LaR paquete splines
incluye la función bs para crear un b-splinespline base) término en un modelo de regresión. Por
ejemplo, lo siguiente agrega un término b-spline al modelo de regresión de la casa:

Biblioteca(splines)
nudos <- cuantil(house_98105PSSqFtTotLiving, pag=C(.25, .5, 0,75))
lm_spline <- lm(AdjPrecio de venta ~ bs(SqFtTotLiving, nudos=nudos, la licenciatura=3) +
SqFtLot + Cuartos de baño + Dormitorios + BldgGrade, datos=house_98105)

Es necesario especificar dos parámetros: el grado del polinomio y la ubicación de los


nudos. En este caso, el predictorSqFtTotLiving se incluye en el modelo usando una
spline cúbica (grado = 3). Por defecto, bs coloca nudos en los límites; Además, también
se colocaron nudos en el cuartil inferior, el cuartil mediano y el cuartil superior.

La statsmodels La interfaz de fórmulas admite el uso de splines de manera similar a R.


Aquí, especificamos el b-spline utilizando df, los grados de libertad. Esto crearádf -
grado = 6 - 3 = 3 nudos internos con posiciones calculadas de la misma forma que en el R
código anterior:

190 | Capítulo 4: Regresión y predicción


fórmula = 'AdjSalePrice ~ bs (SqFtTotLiving, gl = 6, grado = 3) +' +
'SqFtLot + Baños + Dormitorios + BldgGrade'
model_spline = smf.ols(fórmula=fórmula, datos=house_98105)
result_spline = model_spline.encajar()

A diferencia de un término lineal, para el cual el coeficiente tiene un significado directo, los
coeficientes de un término spline no son interpretables. En cambio, es más útil usar la pantalla
visual para revelar la naturaleza del ajuste de spline.Figura 4-12 muestra el gráfico de residuos
parciales de la regresión. A diferencia del modelo polinomial, el modelo de splines se asemeja
más al suave, lo que demuestra la mayor flexibilidad de los splines. En este caso, la línea se
ajusta más a los datos. ¿Significa esto que la regresión spline es un mejor modelo? No
necesariamente: no tiene sentido económico que las casas muy pequeñas (menos de 1,000 pies
cuadrados) tengan un valor más alto que las casas un poco más grandes. Esto es posiblemente
un artefacto de una variable de confusión; ver“Variables de confusión” en la página 172.

Figura 4-12. Un ajuste de regresión spline para la variableSqFtTotLiving (línea continua) en comparación con una línea
suave (línea discontinua)

Regresión polinomial y spline | 191


Modelos aditivos generalizados

Suponga que sospecha de una relación no lineal entre la respuesta y una variable predictora, ya sea
por conocimiento a priori o examinando los diagnósticos de regresión. Los términos polinomiales
pueden no ser lo suficientemente flexibles para capturar la relación, y los términos spline requieren
especificar los nodos.Modelos aditivos generalizados, o GAM, son una técnica de modelado flexible
que se puede utilizar para ajustar automáticamente una regresión spline. La
mgcv paquete en R se puede utilizar para ajustar un modelo GAM a los datos de la vivienda:

Biblioteca(mgcv)
lm_gam <- juego(AdjPrecio de venta ~ s(SqFtTotLiving) + SqFtLot +
Cuartos de baño + Dormitorios + BldgGrade,
datos=house_98105)

El termino s (SqFtTotLiving) le dice al juego función para encontrar los "mejores" nodos para un término
de spline (consulte Figura 4-13).

Figura 4-13. Un ajuste de regresión GAM para la variableSqFtTotLiving (línea continua) en comparación con una línea
suave (línea discontinua)

En Pitón, podemos usar el pyGAM paquete. Proporciona métodos de regresión y


clasificación. Aquí usamosLinearGAM para crear un modelo de regresión:

192 | Capítulo 4: Regresión y predicción


predictores = ['SqFtTotLiving', 'SqFtLot', 'Baños', 'Dormitorios', 'BldgGrade']
Salir = 'AdjSalePrice'
X = house_98105[predictores].valores y =
house_98105[Salir]

juego = LinearGAM(s(0, n_splines=12) + l(1) + l(2) + l(3) + l(4))


juego.búsqueda de cuadrícula(X, y)

El valor predeterminado para n_splines es 20. Esto conduce a un sobreajuste para grandes SqFtTot
Living valores. Un valor de 12 conduce a un ajuste más razonable.

Ideas claves

• Los valores atípicos en una regresión son registros con un residuo grande.

• La multicolinealidad puede causar inestabilidad numérica al ajustar la ecuación de


regresión.

• Una variable de confusión es un predictor importante que se omite de un modelo y


puede conducir a una ecuación de regresión con relaciones espurias.

• Se necesita un término de interacción entre dos variables si el efecto de una variable


depende del nivel o la magnitud de la otra.

• La regresión polinomial puede ajustar relaciones no lineales entre predictores y la variable de


resultado.

• Las estrías son series de segmentos polinomiales encadenados, uniéndose en nudos.

• Podemos automatizar el proceso de especificación de los nudos en splines utilizando modelos


aditivos generalizados (GAM).

Otras lecturas
• Para obtener más información sobre modelos spline y GAM, consulte Los elementos del aprendizaje estadístico,

2a ed., Por Trevor Hastie, Robert Tibshirani y Jerome Friedman (2009), y su primo
más bajo basado en R, Introducción al aprendizaje estadístico de Gareth James,
Daniela Witten, Trevor Hastie y Robert Tibshirani (2013); ambos son libros de
Springer.
• Para obtener más información sobre el uso de modelos de regresión para el pronóstico de series de tiempo, consulte

Pronóstico práctico de series de tiempo con R por Galit Shmueli y Kenneth Lichten‐
dahl (Axelrod Schnall, 2018).

Regresión polinomial y spline | 193


Resumen
Quizás ningún otro método estadístico ha tenido mayor uso a lo largo de los años que la
regresión, el proceso de establecer una relación entre múltiples variables predictoras y una
variable de resultado. La forma fundamental es lineal: cada variable predictora tiene un
coeficiente que describe una relación lineal entre el predictor y el resultado. Las formas más
avanzadas de regresión, como la regresión polinomial y spline, permiten que la relación sea no
lineal. En la estadística clásica, el énfasis está en encontrar un buen ajuste a los datos
observados para explicar o describir algún fenómeno, y la fuerza de este ajuste es lo tradicional
en la muestra Las métricas se utilizan para evaluar el modelo. En la ciencia de datos, por el
contrario, el objetivo suele ser predecir valores para nuevos datos, por lo que se utilizan
métricas basadas en la precisión predictiva para datos fuera de la muestra. Los métodos de
selección variable se utilizan para reducir la dimensionalidad y crear modelos más compactos.

194 | Capítulo 4: Regresión y predicción


CAPÍTULO 5

Clasificación

Los científicos de datos a menudo tienen la tarea de automatizar las decisiones para problemas
comerciales. ¿Es un correo electrónico un intento de phishing? ¿Es probable que un cliente abandone?
¿Es probable que el usuario de la web haga clic en un anuncio? Estos son todosclasificación
problemas, una forma de aprendizaje supervisado en el que primero entrenamos un modelo con
datos donde se conoce el resultado y luego aplicamos el modelo a los datos donde se desconoce el
resultado. La clasificación es quizás la forma más importante de predicción: el objetivo es predecir si
un registro es un 1 o un 0 (phishing / no phishing, hacer clic / no hacer clic, abandonar / no
abandonar) o, en algunos casos, , una de varias categorías (por ejemplo, el filtrado de Gmail de su
bandeja de entrada en "principal", "social", "promocional" o "foros").

A menudo, necesitamos más que una simple clasificación binaria: queremos saber la probabilidad
predicha de que un caso pertenezca a una clase. En lugar de que un modelo simplemente asigne una
clasificación binaria, la mayoría de los algoritmos pueden devolver una puntuación de probabilidad
(propensión) de pertenecer a la clase de interés. De hecho, con la regresión logística, la salida
predeterminada deR está en la escala logarítmica de probabilidades, y esto debe transformarse en
una propensión. EnPitón's scikit-learn, La regresión logística, como la mayoría de los métodos de
clasificación, proporciona dos métodos de predicción: predecir (que devuelve la clase) y predecir_proba
(que devuelve probabilidades para cada clase). Luego, se puede usar un límite deslizante para
convertir el puntaje de propensión en una decisión. El enfoque general es el siguiente:

1. Establezca una probabilidad de corte para la clase de interés, por encima de la cual consideramos que un
registro pertenece a esa clase.

2. Estime (con cualquier modelo) la probabilidad de que un registro pertenezca a la clase de


interés.

3. Si esa probabilidad está por encima de la probabilidad de corte, asigne el nuevo registro a la clase
de interés.

195
Cuanto más alto sea el límite, menos registros pronosticados como 1, es decir, pertenecientes a la
clase de interés. Cuanto menor sea el límite, más registros pronosticaron como 1.

Este capítulo cubre varias técnicas clave para clasificar y estimar propensiones; En el
capítulo siguiente se describen métodos adicionales que se pueden utilizar tanto para la
clasificación como para la predicción numérica.

¿Más de dos categorías?


La gran mayoría de los problemas involucran una respuesta binaria. Sin embargo, algunos
problemas de clasificación implican una respuesta con más de dos resultados posibles. Por
ejemplo, en el aniversario del contrato de suscripción de un cliente, puede haber tres
resultados: el cliente abandona o "abandona" (Y = 2), tiene un contrato de mes a mes (Y =
1), o firma un nuevo contrato a largo plazo (Y = 0). El objetivo es predecirY = j por
j = 0, 1 o 2. La mayoría de los métodos de clasificación de este capítulo se pueden aplicar, ya sea
directamente o con adaptaciones modestas, a respuestas que tienen más de dos resultados.
Incluso en el caso de más de dos resultados, el problema a menudo se puede reformular en una
serie de problemas binarios utilizando probabilidades condicionales. Por ejemplo, para predecir
el resultado del contrato, puede resolver dos problemas de predicción binaria:

• Predecir si Y = 0 o Y> 0.
• Dado que Y> 0, predice si Y = 1 o Y = 2.

En este caso, tiene sentido dividir el problema en dos casos: (1) si el cliente abandona;
y (2) si no abandonan, qué tipo de contrato elegirán. Desde el punto de vista del
ajuste del modelo, a menudo es ventajoso convertir el problema multiclase en una
serie de problemas binarios. Esto es particularmente cierto cuando una categoría es
mucho más común que las otras.

Bayes ingenuo

El algoritmo ingenuo de Bayes utiliza la probabilidad de observar valores predictores, dado un


resultado, para estimar lo que realmente interesa: la probabilidad de observar el resultado. Y = yo,
dado un conjunto de valores predictores.1

1 Esta y las secciones siguientes de este capítulo © 2020 Datastats, LLC, Peter Bruce, Andrew Bruce y Peter
Gedeck; utilizado con permiso.

196 | Capítulo 5: Clasificación


Términos clave para Bayes ingenuos

La probabilidad condicional
La probabilidad de observar algún evento (digamos, X = yo) dado algún otro evento (digamos,
Y = i), Escrito como PXI YI .

Probabilidad posterior
La probabilidad de un resultado después de que se haya incorporado la información del predictor
(en contraste con la probabilidad previa de los resultados, sin tener en cuenta la información de
los predictores).

Para comprender la clasificación bayesiana ingenua, podemos comenzar imaginando una


clasificación bayesiana completa o exacta. Para cada registro a clasificar:

1. Busque todos los demás registros con el mismo perfil de predictor (es decir, donde los valores de los
predictores son los mismos).

2. Determine a qué clases pertenecen esos registros y cuál es la más prevalente (es
decir, probable).
3. Asigne esa clase al nuevo registro.

El enfoque anterior equivale a encontrar todos los registros de la muestra que son exactamente iguales al
nuevo registro que se va a clasificar, en el sentido de que todos los valores de los predictores son idénticos.

Las variables predictoras deben ser variables categóricas (factoriales) en el


algoritmo estándar de Bayes ingenuo. Ver“Variables predictoras numéricas”
en la página 200 para dos soluciones para el uso de variables continuas.

Por qué la clasificación bayesiana exacta no es práctica

Cuando el número de variables predictoras excede un puñado, muchos de los registros que se
clasificarán no tendrán coincidencias exactas. Considere un modelo para predecir la votación sobre la
base de variables demográficas. Incluso una muestra considerable puede que no contenga ni una
sola coincidencia para un nuevo registro que sea un hispano con altos ingresos del Medio Oeste de
los EE. UU. Que votó en las últimas elecciones, no votó en las elecciones anteriores, tiene tres hijas y
un hijo y está divorciado. Y esto es con solo ocho variables, un número pequeño para la mayoría de
los problemas de clasificación. La adición de una sola variable nueva con cinco categorías igualmente
frecuentes reduce la probabilidad de una coincidencia en un factor de 5.

Bayes ingenuo | 197


La solución ingenua

En la solución ingenua de Bayes, ya no restringimos el cálculo de probabilidad a aquellos registros que


coinciden con el registro que se va a clasificar. En su lugar, usamos el conjunto de datos completo. La
modificación ingenua de Bayes es la siguiente:

1. Para una respuesta binaria Y = yo (yo = 0 o 1), estime el problema condicional individual
habilidades para cada predictor PXj Y = yo; estas son las probabilidades de que el valor
predictor esté en el registro cuando observamos Y = yo. Esta probabilidad se estima
por la proporción de Xj valores entre los Y = yo registros en el conjunto de entrenamiento.

2. Multiplique estas probabilidades entre sí y luego por la proporción de registros


pertenecientes a Y = yo.
3. Repita los pasos 1 y 2 para todas las clases.

4. Estime una probabilidad de resultado I tomando el valor calculado en el paso 2 para la clase
I y dividirlo por la suma de dichos valores para todas las clases.
5. Asigne el registro a la clase con la probabilidad más alta para este conjunto de valores predictores.

Este ingenuo algoritmo de Bayes también se puede establecer como una ecuación para la probabilidad de
observar el resultado Y = yo, dado un conjunto de valores predictores X1,⋯, Xpag:

P (Y = yo | X1, X2,…, Xpag)

Aquí está la fórmula completa para calcular las probabilidades de clase usando la clasificación exacta
de Bayes:

P (Y = i) P (X1,…, Xp |Y = i)
P (Y = yo | X1, X2,…, Xp) = P (Y = 0)P (X1,…, Xp |Y = 0) + P (Y = 1)P (X1,…, Xp |Y = 1)

Bajo el supuesto ingenuo de Bayes de la independencia condicional, esta ecuación


cambia a:

P (Y = yo | X1, X2,…, Xpag)

P (Y = i) P (X1 |Y = i)...P (Xp |Y = i)


= P (Y = 0)P (X1 |Y = 0)…P (Xp |Y = 0) + P (Y = 1)P (X1 |Y = 1)…P (Xp |Y = 1)

¿Por qué esta fórmula se llama "ingenua"? Hemos hecho una suposición simplificadora de que
probabilidad condicional exacta de un vector de valores predictores, dada la observación de un

198 | Capítulo 5: Clasificación


resultado, se estima suficientemente bien por el producto de la condicional individual
probabilidades PXj Y = yo. En otras palabras, al estimar PXj Y = yo en vez de
PX1, X2,⋯Xpag Y = yo, estamos asumiendo Xj es independiente de todas las demás variables
predictoras Xk por k ≠ j.

Varios paquetes en R se puede utilizar para estimar un modelo de Bayes ingenuo. A continuación se ajusta
un modelo a los datos de pago del préstamo utilizando elklaR paquete:

Biblioteca(klaR)
ingenuo_modelo <- NaiveBayes(Salir ~ propósito_ + casa_ + emp_len_,
datos = na.omit(préstamo_datos))
ingenuo_modeloPSmesa
PSpropósito_
var
agrupamiento tarjeta de crédito consolidación de deudas mejoras en el hogar compra principal
pagado 0.18759649 0,55215915 0,07150104 0,05359270
defecto 0.15151515 0,57571347 0,05981209 0,03727229
var
agrupamiento médico otra pequeña_empresa
pagado 0,01424728 0,09990737 0.02099599
defecto 0,01433549 0,11561025 0.04574126

PScasa_
var
agrupamiento HIPOTECA PROPIO RENTA

pagado 0,4894800 0,0808963 0,4296237


defecto 0,4313440 0,0832782 0,4853778

PSemp_len_
var
agrupamiento < 1 Año > 1 Año
pagado 0.03105289 0.96894711
defecto 0.04728508 0.95271492

La salida del modelo son las probabilidades condicionales PXj Y = yo.

En Pitón nosotros podemos usar sklearn.naive_bayes.MultinomialNB de scikit-learn. Nosotros


Necesitamos convertir las características categóricas en variables ficticias antes de ajustar el modelo:

predictores = ['propósito_', 'casa_', 'emp_len_']


Salir = 'Salir'
X = pd.get_dummies(préstamo_datos[predictores], prefijo='', prefix_sep='')
y = préstamo_datos[Salir]

ingenuo_modelo = MultinomialNB(alfa=0,01, fit_prior=Cierto)


ingenuo_modelo.encajar(X, y)

Es posible derivar las probabilidades condicionales del modelo ajustado usando la


propiedad feature_log_prob_.

Bayes ingenuo | 199


El modelo se puede utilizar para predecir el resultado de un nuevo préstamo. Usamos el último valor del
conjunto de datos para probar:

nuevo_préstamo <- préstamo_datos[147, C('propósito_', 'casa_', 'emp_len_')]


nombres de fila(nuevo_préstamo) <- NULO
nuevo_préstamo

propósito_ inicio_ emp_len_


1 pequeña_empresa HIPOTECA > 1 Año

En Pitón, obtenemos este valor de la siguiente manera:

nuevo_préstamo = X.loc[146:146,:]

En este caso, el modelo predice un valor predeterminado (R):

predecir(ingenuo_modelo, nuevo_préstamo)
PSclase
[1] defecto
Niveles: pagado por defecto

PSposterior
pagado defecto
[1,] 0,3463013 0,6536987

Como discutimos, scikit-learnLos modelos de clasificación tienen dos métodos:predecir,


que devuelve la clase predicha, y predecir_proba, que devuelve las probabilidades de
la clase:
impresión('clase predicha: ', ingenuo_modelo.predecir(nuevo_préstamo) [0])

probabilidades = pd.Marco de datos(ingenuo_modelo.predecir_proba(nuevo_préstamo),


columnas=préstamo_datos[Salir].gato.categorias)
impresión('probabilidades predichas ', probabilidades)
--
clase predicha: probabilidades
predichas por defecto
pago por defecto
0 0,653696 0,346304

La predicción también devuelve un posterior estimación de la probabilidad de incumplimiento. Se sabe


que el clasificador bayesiano ingenuo producetendencioso estimados. Sin embargo, donde el objetivo
esrango registros de acuerdo con la probabilidad de que Y = 1, no se necesitan estimaciones de
probabilidad no sesgadas y Bayes ingenuo produce buenos resultados.

Variables predictoras numéricas

El clasificador bayesiano solo funciona con predictores categóricos (p. Ej., Con clasificación de
spam, donde la presencia o ausencia de palabras, frases, caracteres, etc. se encuentra en el
corazón de la tarea predictiva). Para aplicar Bayes ingenuo a los predictores numéricos, se debe
tomar uno de dos enfoques:

200 | Capítulo 5: Clasificación


• Bin y convierta los predictores numéricos en predictores categóricos y aplique el
algoritmo de la sección anterior.
• Utilice un modelo de probabilidad, por ejemplo, la distribución normal (consulte
"Distribución normal" en la página 69): Para estimar la probabilidad condicional PXj Y = yo.

Cuando una categoría de predictor está ausente en los datos de


entrenamiento, el algoritmo asigna probabilidad cero a la variable de
resultado en nuevos datos, en lugar de simplemente ignorar esta variable y
usar la información de otras variables, como lo harían otros métodos. La
mayoría de las implementaciones de Naive Bayes utilizan un parámetro de
suavizado (suavizado de Laplace) para evitar esto.

Ideas claves

• Naive Bayes trabaja con predictores y resultados categóricos (factoriales).

• Pregunta: "Dentro de cada categoría de resultado, ¿qué categorías de predictores son las más
probables?"

• Luego, esa información se invierte para estimar las probabilidades de las categorías de resultados, dados
los valores predictores.

Otras lecturas
• Los elementos del aprendizaje estadístico, 2a ed., Por Trevor Hastie, Robert Tibshirani
y Jerome Friedman (Springer, 2009).
• Hay un capítulo completo sobre Bayes ingenuos en Minería de datos para análisis
empresarial por Galit Shmueli, Peter Bruce, Nitin Patel, Peter Gedeck, Inbal Yahav y
Kenneth Lichtendahl (Wiley, 2007-2020, con ediciones para R, Python, Excel y JMP).

Análisis discriminante
Análisis discriminante es el clasificador estadístico más antiguo; Fue introducido por RA Fisher
en 1936 en un artículo publicado en elAnales de la eugenesia diario.2

2 Ciertamente es sorprendente que el primer artículo sobre clasificación estadística se haya publicado en una revista
dedicada a la eugenesia. De hecho, hay unaConexión desconcertante entre el desarrollo temprano de la estadística y la
eugenesia.

Análisis discriminante | 201


Términos clave para el análisis discriminante

Covarianza
Una medida del grado en que una variable varía en concierto con otra (es decir,
magnitud y dirección similares).

Función discriminante
La función que, aplicada a las variables predictoras, maximiza la separación
de las clases.

Pesos discriminantes
Las puntuaciones que resultan de la aplicación de la función discriminante y se utilizan
para estimar las probabilidades de pertenecer a una clase u otra.

Si bien el análisis discriminante abarca varias técnicas, la más comúnmente utilizada es


análisis discriminante lineal, o LDA. El método original propuesto por Fisher era en
realidad ligeramente diferente del LDA, pero la mecánica es esencialmente la misma. La
LDA se utiliza ahora menos con la llegada de técnicas más sofisticadas, como los modelos
de árboles y la regresión logística.

Sin embargo, es posible que aún encuentre LDA en algunas aplicaciones y tiene vínculos a otros
métodos más utilizados (como el análisis de componentes principales; consulte “Análisis de
componentes principales” en la página 284).

El análisis discriminante lineal no debe confundirse con la asignación de


Dirichlet latente, también conocida como LDA. La asignación de Dirichlet
latente se utiliza en el procesamiento de texto y lenguaje natural y no está
relacionada con el análisis discriminante lineal.

Matriz de covarianza

Para comprender el análisis discriminante, primero es necesario introducir el concepto de


covarianza entre dos o más variables. La covarianza mide la relación entre dos
variablesX y z. Denote la media de cada variable por X y z (ver
"Media" en la página 9). La covarianzasx, z Entre X y z es dado por:

yo = 1 XI -
∑norte
xzI - z
sx, z =
norte - 1

dónde norte es el número de registros (tenga en cuenta que dividimos entre norte - 1 en lugar de norte; ver
"Grados de libertad y norte o norte - ¿1? en la página 15).

202 | Capítulo 5: Clasificación


Al igual que con el coeficiente de correlación (ver "Correlación" en la página 30), los valores
positivos indican una relación positiva y los valores negativos indican una relación negativa. La
correlación, sin embargo, está limitada a estar entre –1 y 1, mientras que la escala de
covarianza depende de la escala de las variables.X y z. La matriz de covarianza Σ por X y
z consta de las varianzas de las variables individuales, s2 X y s2 z, en la diagonal (donde fila
y columna son la misma variable) y las covarianzas entre pares de variables en las
diagonales fuera:

sX2 sx, z
Σ=
sz, x s2z

Recuerde que la desviación estándar se usa para normalizar una variable a un


z-puntaje; la matriz de covarianza se utiliza en una extensión multivariante de
este proceso de estandarización. Esto se conoce como distancia de
Mahalanobis (ver“Otras métricas de distancia” en la página 242) y está
relacionado con la función LDA.

Discriminante lineal de Fisher

Para simplificar, centrémonos en un problema de clasificación en el que queremos predecir un


resultado binario y usando solo dos variables numéricas continuas x, z. Técnicamente, el
análisis discriminante asume que las variables predictoras son variables continuas distribuidas
normalmente, pero, en la práctica, el método funciona bien incluso para desviaciones no
extremas de la normalidad y para predictores binarios. El discriminante lineal de Fisher
distingue la variaciónEntre grupos, por un lado, de la variación dentro grupos en el otro.
Específicamente, buscando dividir los registros en dos grupos, discriminante lineal
El análisis (LDA) se centra en maximizar la suma de cuadrados "entre" SSEntre (midiendo la
variación entre los dos grupos) en relación con la suma de cuadrados "dentro"
SSdentro (medir la variación dentro del grupo). En este caso, los dos grupos
corresponden a los registrosX0, z0 para cual y = 0 y los registros X1, z1 para cual y = 1.
El método encuentra la combinación lineal wXx + wzz que maximiza esa relación de suma de
cuadrados:

SSEntre
SSdentro

La suma de cuadrados entre cuadrados es la distancia al cuadrado entre las medias de los dos
grupos, y la suma de cuadrados interiores es la distribución alrededor de las medias dentro de cada
grupo, ponderada por la matriz de covarianza. Intuitivamente, maximizando la suma intermedia de

Análisis discriminante | 203


cuadrados y minimizando la suma interna de cuadrados, este método produce la mayor
separación entre los dos grupos.

Un ejemplo simple
La MASA paquete, asociado con el libro Estadísticas aplicadas modernas con S por WN Venables
y BD Ripley (Springer, 1994), proporciona una función para LDA con R. A continuación, se aplica
esta función a una muestra de datos de préstamos utilizando dos variables predictoras,
puntaje_de_prestado y Payment_inc_ratio, e imprime los pesos estimados del
discriminador lineal:
Biblioteca(MASA)
préstamo_lda <- lda(Salir ~ puntaje_de_prestado + pago_inc_ratio,
datos=préstamo3000)
préstamo_ldaPSescalada
LD1
puntaje_de_prestado 7.17583880
pago_inc_ratio -0.09967559

En Pitón, nosotros podemos usar AnálisisDiscriminante Lineal de sklearn.discrimi


nant_analysis. La escalas_ propiedad da los pesos estimados:

préstamo3000.Salir = préstamo3000.Salir.astipo('categoría')

predictores = ['puntaje_de_prestado', 'pago_inc_ratio']


Salir = 'Salir'

X = préstamo3000[predictores]
y = préstamo3000[Salir]

préstamo_lda = AnálisisDiscriminante Lineal()


préstamo_lda.encajar(X, y)
pd.Marco de datos(préstamo_lda.escalas_, índice=X.columnas)

Uso del análisis discriminante para la selección de características

Si las variables predictoras se normalizan antes de ejecutar LDA, los pesos del
discriminador son medidas de importancia variable, lo que proporciona un
método computacionalmente eficiente de selección de características.

La lda La función puede predecir la probabilidad de "incumplimiento" frente a "liquidación":

pred <- predecir(préstamo_lda)


cabeza(predPSposterior)
pagado por defecto
1 0,4464563 0,5535437
2 0,4410466 0,5589534
3 0,7273038 0,2726962
4 0,4937462 0,5062538

204 | Capítulo 5: Clasificación


5 0,3900475 0,6099525
6 0,5892594 0,4107406

La predecir_proba El método del modelo ajustado devuelve las probabilidades de los resultados
"predeterminado" y "pagado":

pred = pd.Marco de datos(préstamo_lda.predecir_proba(préstamo3000[predictores]),


columnas=préstamo_lda.clases_)
pred.cabeza()

Un diagrama de las predicciones ayuda a ilustrar cómo funciona LDA. Usando la salida del
predecir función, se produce un gráfico de la probabilidad estimada de incumplimiento de la siguiente manera:

centrar <- 0,5 * (préstamo_ldaPSsignificar[1,] + préstamo_ldaPSsignificar[2,])


Pendiente <- -préstamo_ldaPSescalada[1] / préstamo_ldaPSescalada[2]
interceptar <- centrar[2] - centrar[1] * Pendiente

ggplot(datos=lda_df, aes(X=puntaje_de_prestado, y=pago_inc_ratio,


color=prob_default)) +
geom_point(alfa=.6) +
scale_color_gradientn(colores=C('# ca0020', '# f7f7f7', '# 0571b0')) +
scale_x_continuous(expandir=C(0,0)) +
scale_y_continuous(expandir=C(0,0), lim=C(0, 20)) +
geom_abline(Pendiente=Pendiente, interceptar=interceptar, color='verde oscuro')

Se crea un gráfico similar en Python usando este código:

# Utilice escalas y el centro de medios para determinar el límite de decisión


centrar = notario público.significar(préstamo_lda.medio_, eje=0)
Pendiente = - préstamo_lda.escalas_[0] / préstamo_lda.escalas_[1]
interceptar = centrar[1] - centrar[0] * Pendiente

# payment_inc_ratio para la puntuación del prestatario de 0 y 20


x_0 = (0 - interceptar) / pendiente
x_20 = (20 - interceptar) / Pendiente

lda_df = pd.concat([préstamo3000, pred['defecto']], eje=1)


lda_df.cabeza()

higo, hacha = plt.subtramas(figsize=(4, 4))


gramo = sns.gráfico de dispersión(X='puntaje_de_prestado', y='pago_inc_ratio',
matiz='defecto', datos=lda_df,
paleta=sns.paleta_divergente(240, 10, norte=9, as_cmap=Cierto),
hacha=hacha, leyenda=Falso)

hacha.set_ylim(0, 20)
hacha.set_xlim(0,15, 0,8)
hacha.gráfico((x_0, x_20), (0, 20), ancho de línea=3)
hacha.gráfico(*préstamo_lda.medio_.transponer())

Análisis discriminante | 205


La trama resultante se muestra en Figura 5-1. Se predice que los puntos de datos a la izquierda de la línea
diagonal serán predeterminados (probabilidad mayor que 0.5).

Figura 5-1. Predicción de la LDA del incumplimiento del préstamo utilizando dos variables: una puntuación
de la solvencia del prestatario y la relación pago-ingresos

Usando los pesos de la función discriminante, LDA divide el espacio del predictor en dos regiones,
como se muestra en la línea continua. Las predicciones más alejadas de la línea en ambas direcciones
tienen un mayor nivel de confianza (es decir, una probabilidad más alejada de 0,5).

206 | Capítulo 5: Clasificación


Extensiones del análisis discriminante

Más variables predictoras: mientras que el texto y el ejemplo de esta sección


utilizaron solo dos variables predictoras, LDA funciona igual de bien con más
de dos variables predictoras. El único factor limitante es el número de
registros (la estimación de la matriz de covarianza requiere un número
suficiente de registros por variable, lo que normalmente no es un problema en
las aplicaciones de ciencia de datos).

Hay otras variantes de análisis discriminante. El más conocido es el


análisis discriminante cuadrático (QDA). A pesar de su nombre, QDA
sigue siendo una función discriminante lineal. La principal diferencia es
que en LDA, se supone que la matriz de covarianza es la misma para los
dos grupos correspondientes aY = 0 y Y = 1. En QDA, se permite que la
matriz de covarianza sea diferente para los dos grupos. En la práctica, la
diferencia en la mayoría de las aplicaciones no es crítica.

Ideas claves

• El análisis discriminante funciona con predictores continuos o categóricos, así como


con resultados categóricos.

• Usando la matriz de covarianza, calcula un función discriminante lineal, que se utiliza


para distinguir los registros que pertenecen a una clase de los que pertenecen a otra.

• Esta función se aplica a los registros para derivar ponderaciones, o puntuaciones, para cada
registro (una ponderación para cada clase posible), lo que determina su clase estimada.

Otras lecturas
• Ambas cosas Los elementos del aprendizaje estadístico, 2a ed., Por Trevor Hastie, Robert
Tib‐ shirani y Jerome Friedman (Springer, 2009), y su primo más bajo, Introducción al
aprendizaje estadístico de Gareth James, Daniela Witten, Trevor Hastie y Robert Tibshirani
(Springer, 2013), tienen una sección sobre análisis discriminante.

• Minería de datos para análisis empresarial por Galit Shmueli, Peter Bruce, Nitin Patel,
Peter Gedeck, Inbal Yahav y Kenneth Lichtendahl (Wiley, 2007-2020, con ediciones
para R, Python, Excel y JMP) tiene un capítulo completo sobre análisis discriminante.

• Por interés histórico, el artículo original de Fisher sobre el tema, "El uso de múltiples
medidas en problemas taxonómicos", publicado en 1936 en Anales de la eugenesia (ahora
llamado Annals of Genetics), puede ser encontrado en línea.

Análisis discriminante | 207


Regresión logística
La regresión logística es análoga a la regresión lineal múltiple (ver Capítulo 4), excepto que el
resultado es binario. Se emplean varias transformaciones para convertir el problema en uno en
el que se pueda ajustar un modelo lineal. Como el análisis discriminante, y a diferencia deK-
Vecino más cercano y Bayes ingenuo, la regresión logística es un enfoque de modelo estructurado en
lugar de un enfoque centrado en datos. Debido a su rápida velocidad computacional y su salida de un
modelo que se presta a la puntuación rápida de nuevos datos, es un método popular.

Términos clave para la regresión logística

Logit
La función que asigna la probabilidad de pertenencia a una clase en un rango de ± ∞
(en lugar de 0 a 1).

Sinónimo
Log odds (ver más abajo)

Impares

La proporción de "éxito" (1) a "no éxito" (0).

Probabilidades de registro

La respuesta en el modelo transformado (ahora lineal), que se asigna de nuevo a una


probabilidad.

Función de respuesta logística y Logit


Los ingredientes clave para la regresión logística son función de respuesta logística y el
logit, en el que mapeamos una probabilidad (que está en una escala de 0 a 1) a una escala más amplia
adecuada para el modelado lineal.

El primer paso es pensar en la variable de resultado no como una etiqueta binaria sino como la probabilidad
pag que la etiqueta es un "1" Ingenuamente, podríamos tener la tentación de modelarpag como función
lineal de las variables predictoras:

p = β0 + β1X1 + β2X2 +⋯ + βqXq

Sin embargo, el ajuste de este modelo no garantiza que pag terminará entre 0 y 1, como debe ser la
probabilidad.

En cambio, modelamos pag aplicando un respuesta logística o logit inverso función a los
predictores:

208 | Capítulo 5: Clasificación


1
p=
- β0 + β1X1 + β2X2 +⋯ + βqxq
1 + mi

Esta transformación asegura que el pag permanece entre 0 y 1.

Para sacar la expresión exponencial del denominador, consideramos impares en lugar de


probabilidades. Las probabilidades, familiares para los apostadores de todo el mundo, son la
proporción de "éxitos" (1) a "no éxitos" (0). En términos de probabilidades, las probabilidades son la
probabilidad de un evento dividida por la probabilidad de que el evento no ocurra. Por ejemplo, si la
probabilidad de que un caballo gane es 0.5, la probabilidad de que "no gane" es (1 - 0.5) = 0.5, y las
probabilidades son 1.0:

Impares Y = 1 = pag
1 - pag

Podemos obtener la probabilidad de las probabilidades usando la función de probabilidades inversas:

p = Impares
1 + probabilidades

Combinamos esto con la función de respuesta logística, mostrada anteriormente, para obtener:

β + β1X1 + β2X2 +⋯ + βqxq


Impares Y = 1 = mi 0

Finalmente, tomando el logaritmo de ambos lados, obtenemos una expresión que involucra una
función lineal de los predictores:

probabilidades de registro Y = 1 = β0 + β1X1 + β2X2 +⋯ + βqXq

La probabilidades de registro función, también conocida como la logit función, mapea la probabilidad pag de
0, 1 a cualquier valor - ∞, + ∞ —ver Figura 5-2. El círculo de transformación está completo; hemos
utilizado un modelo lineal para predecir una probabilidad, que a su vez podemos asignar a una
etiqueta de clase aplicando una regla de corte; cualquier registro con una probabilidad mayor que el
límite se clasifica como 1.

Regresión logística | 209


Figura 5-2. Gráfico de la función logit que asigna una probabilidad a una escala adecuada para un
modelo lineal

Regresión logística y GLM


La respuesta en la fórmula de regresión logística es la probabilidad logarítmica de un resultado binario de
1. Observamos solo el resultado binario, no las probabilidades logarítmicas, por lo que se necesitan métodos
estadísticos especiales para ajustar la ecuación. La regresión logística es una instancia especial demodelo
lineal generalizado (GLM) desarrollado para extender la regresión lineal a otros entornos.

En R, para ajustar una regresión logística, el glm La función se utiliza con la familia parámetro establecido en
binomio. El siguiente código se ajusta a una regresión logística a los datos de préstamos personales
introducidos en “K-Vecinos más cercanos” en la página 238:

modelo_logístico <- glm(Salir ~ pago_inc_ratio + propósito_ +


casa_ + emp_len_ + puntaje_de_prestado,
datos=préstamo_datos, familia='binomio')
modelo_logístico

Llamada: glm(fórmula = Salir ~ pago_inc_ratio + propósito_ + casa_ +


emp_len_ + puntaje_de_prestado, familia = "binomio", datos = préstamo_datos)

210 | Capítulo 5: Clasificación


Coeficientes:
(Interceptar) pago_inc_ratio
1,63809 0.07974
propósito_deuda_consolidación proposito_home_improvement
0.24937 0.40774
propósito_compra_principal proposito_medico
0.22963 0.51048
propósito_otro propósito_pequeña_empresa
0,62066 1.21526
home_OWN home_RENT
0.04833 0.15732
emp_len_ > 1 Año puntaje_de_prestado
- 0.35673 - 4.61264

Grados de libertad: 45341 Total (es decir, nulo); 45330 Desviación nula
residual: 62860
Desviación residual: 57510 AIC: 57540

La respuesta es Salir, que toma un 0 si el préstamo se cancela y un 1 si el préstamo no se paga.


propósito_ y casa_ son variables de factores que representan el propósito del préstamo y el estado de
propiedad de la vivienda. Como en la regresión lineal, una variable factorial conPAG los niveles se
representa con PAG - 1 columnas. Por defecto enR, la referencia se utiliza codificación, y todos los
niveles se comparan con el nivel de referencia (ver “Factorizar variables en regresión” en la página 163
). Los niveles de referencia para estos factores sontarjeta de crédito y HIPOTECA,
respectivamente. La variablepuntaje_de_prestado es una puntuación de 0 a 1 que
representa la solvencia del prestatario (de mala a excelente). Esta variable se creó a partir
de varias otras variables utilizandoK-Vecino más cercano: ver “KNN como motor de
funciones” en la página 247.

En Pitón, usamos el scikit-learn clase Regresión logística de sklearn.lin


ear_model. Los argumentos multa y C se utilizan para evitar el sobreajuste mediante la regularización L1
o L2. La regularización está activada de forma predeterminada. Para encajar sin regularización,
establecemosC a un valor muy grande. Lasolucionador el argumento selecciona el mini‐ mizador usado;
el métodoliblinear es el predeterminado:

predictores = ['pago_inc_ratio', 'propósito_', 'casa_', 'emp_len_',


'puntaje_de_prestado']
Salir = 'Salir'
X = pd.get_dummies(préstamo_datos[predictores], prefijo='', prefix_sep='',
drop_first=Cierto)
y = préstamo_datos[Salir]

logit_reg = Regresión logística(multa='l2', C=1e42, solucionador='liblinear')


logit_reg.encajar(X, y)

En contraste con R, scikit-learn deriva las clases de los valores únicos en y (pagado y
defecto). Internamente, las clases están ordenadas alfabéticamente. Como este es el
orden inverso de los factores utilizados enR, verá que los coeficientes se invierten. La

Regresión logística | 211


predecir El método devuelve la etiqueta de la clase y predecir_proba devuelve las
probabilidades en el orden disponible del atributo logit_reg.classes_.

Modelos lineales generalizados

Los modelos lineales generalizados (GLM) se caracterizan por dos componentes principales:

• Una distribución de probabilidad o familia (binomial en el caso de regresión logística)

• Una función de enlace, es decir, una función de transformación que mapea la respuesta a los
predictores (logit en el caso de regresión logística)

La regresión logística es, con mucho, la forma más común de GLM. Un científico de datos se encontrará con
otros tipos de GLM. A veces, se utiliza una función de enlace de registro en lugar del logit; en la práctica, es
poco probable que el uso de un enlace de registro dé lugar a resultados muy diferentes para la mayoría de
las aplicaciones. La distribución de Poisson se usa comúnmente para modelar datos de recuento (por
ejemplo, el número de veces que un usuario visita una página web en un cierto período de tiempo). Otras
familias incluyen binomio negativo y gamma, que a menudo se utilizan para modelar el tiempo transcurrido
(p. Ej., Tiempo de falla). A diferencia de la regresión logística, la aplicación de GLM con estos modelos es más
matizada e implica mayor cuidado. Es mejor evitarlos a menos que esté familiarizado y comprenda la utilidad
y los peligros de estos métodos.

Valores predichos de regresión logística


El valor predicho de la regresión logística está en términos de las probabilidades logarítmicas:
Y = probabilidades de registro Y = 1. La probabilidad predicha viene dada por la función de respuesta
logística:

1
p=
1 + mi-Y

Por ejemplo, mire las predicciones del modelo modelo_logístico en R:


pred <- predecir(modelo_logístico)
resumen(pred)
Min. 1st Qu. Mediana Significar 3rd Qu. Max.
- 2,704774 -0,518825 -0,008539 0,002564 0,505061 3,509606

En Pitón, podemos convertir las probabilidades en un marco de datos y usar el describir


método para obtener estas características de la distribución:

pred = pd.Marco de datos(logit_reg.predict_log_proba(X),


columnas=préstamo_datos[Salir].gato.categorias)
pred.describir()

212 | Capítulo 5: Clasificación


Convertir estos valores a probabilidades es una transformación simple:

problema <- 1/(1 + Exp(-pred))


> resumen(problema)
Min. 1st Qu. Mediana Significar 3rd Qu. Max.
0,06269 0,37313 0,49787 0,50000 0,62365 0,97096

Las probabilidades están disponibles directamente usando el predecir_proba métodos en scikit-


aprender:

pred = pd.Marco de datos(logit_reg.predecir_proba(X),


columnas=préstamo_datos[Salir].gato.categorias)
pred.describir()

Estos están en una escala de 0 a 1 y aún no declaran si el valor predicho es predeterminado o pagado.
Podríamos declarar cualquier valor superior a 0,5 como predeterminado. En la práctica, un límite más
bajo suele ser apropiado si el objetivo es identificar a los miembros de una clase poco común (ver“El
problema de las clases raras” en la página 223).

Interpretación de coeficientes y razones de probabilidades

Una ventaja de la regresión logística es que produce un modelo que puede puntuarse a nuevos datos
rápidamente, sin volver a calcularlo. Otro es la relativa facilidad de interpretación del modelo, en
comparación con otros métodos de clasificación. La idea conceptual clave es comprender unrazón de
posibilidades. La razón de posibilidades es más fácil de entender para una variable de factor binario X:

razón de probabilidades = Probabilidades Y = 1 X = 1


Impares Y = 1 X = 0

Esto se interpreta como las probabilidades de que Y = 1 cuando X = 1 frente a las probabilidades de que Y = 1 cuando

X = 0. Si la razón de probabilidades es 2, entonces las probabilidades que Y = 1 son dos veces más altos cuando X = 1
versus cuando X = 0.

¿Por qué preocuparse por una razón de posibilidades en lugar de probabilidades? Trabajamos con probabilidades
porque el coeficienteβj en la regresión logística es el logaritmo de la razón de posibilidades para Xj.

Un ejemplo lo hará más explícito. Para el modelo encaja“Regresión logística y GLM”


en la página 210, el coeficiente de regresión para propósito_pequeña_empresa es
1.21526. Esto significa que un préstamo a una pequeña empresa en comparación con un préstamo para pagar la
deuda de la tarjeta de crédito reduce las probabilidades de incumplimiento en lugar de ser cancelado por
Exp 1.21526 ≈ 3.4. Claramente, los préstamos con el propósito de crear o expandir una pequeña empresa son
considerablemente más riesgosos que otros tipos de préstamos.

Figura 5-3 muestra la relación entre la razón de probabilidades y el logaritmo de razón de probabilidades para las
razones de probabilidades superiores a 1. Debido a que los coeficientes están en la escala logarítmica, un aumento
de 1 en el coeficiente da como resultado un aumento de Exp 1 ≈ 2,72 en la razón de posibilidades.

Regresión logística | 213


Figura 5-3. La relación entre la razón de probabilidades y la razón logarítmica de las probabilidades

Razones de probabilidad para variables numéricas X se puede interpretar de manera similar: miden el
cambio en la razón de probabilidades para un cambio de unidad en X. Por ejemplo, el efecto de
aumentar la relación pago-ingreso de, digamos, 5 a 6 aumenta las probabilidades de incumplimiento
del préstamo en un factor de Exp 0,08244 ≈ 1,09. La variablepuntaje_de_prestado es un puntaje sobre la
solvencia crediticia de los prestatarios y varía de 0 (bajo) a 1 (alto). Las probabilidades de que los
mejores prestatarios en relación con los peores prestatarios incumplan sus préstamos es menor en
un factor deExp - 4,61264 ≈ 0,01. En otras palabras, el riesgo de incumplimiento de los prestatarios
con menor solvencia crediticia es 100 veces mayor que el de los mejores prestatarios.

Regresión lineal y logística: similitudes y diferencias


La regresión lineal y la regresión logística comparten muchos puntos en común. Ambos asumen una
forma lineal paramétrica que relaciona los predictores con la respuesta. La exploración y la búsqueda
del mejor modelo se realizan de manera muy similar. Extensiones del modelo lineal, como el uso de
una transformada spline de un predictor (ver“Splines” en la página 189), son igualmente aplicables en
el entorno de regresión logística. La regresión logística difiere de dos formas fundamentales:

214 | Capítulo 5: Clasificación


• La forma en que se ajusta el modelo (los mínimos cuadrados no son aplicables)

• La naturaleza y análisis de los residuos del modelo.

Encajando el modelo

La regresión lineal se ajusta mediante mínimos cuadrados y la calidad del ajuste se evalúa mediante
RMSE y estadísticas R-cuadrado. En la regresión logística (a diferencia de la regresión lineal), no hay
una solución de forma cerrada y el modelo debe ajustarse utilizandoestimación de máxima
verosimilitud (MLE). La estimación de máxima verosimilitud es un proceso que intenta encontrar el
modelo que es más probable que haya producido los datos que vemos. En la ecuación de regresión
logística, la respuesta no es 0 o 1, sino más bien una estimación de las probabilidades logarítmicas de
que la respuesta es 1. El MLE encuentra la solución de manera que las probabilidades logarítmicas
estimadas describan mejor el resultado observado. La mecánica del algoritmo implica una
optimización cuasi-Newton que itera entre un paso de puntuación (Puntuación de Fisher), basado en
los parámetros actuales, y una actualización de los parámetros para mejorar el ajuste.

Estimación de máxima verosimilitud


Aquí hay un poco más de detalle, si le gustan los símbolos estadísticos: comience con un conjunto de datos
X1, X2,⋯, Xnorte y un modelo de probabilidad PAGθ X1, X2,⋯, Xnorte eso depende de un conjunto de

parámetros θ. El objetivo de MLE es encontrar el conjunto de parámetros θ que maximiza la


valor de PAGθ X1, X2,⋯, Xn; es decir, maximiza la probabilidad de observar
X1, X2,⋯, Xnorte dado el modelo pag. En el proceso de ajuste, el modelo se evalúa utilizando una métrica
llamada desviación:

desviación = - 2 log PX1, X2,⋯, Xnorte


θ

Una desviación más baja corresponde a un mejor ajuste.

Afortunadamente, la mayoría de los profesionales no necesitan preocuparse por los detalles del
algoritmo de ajuste, ya que esto lo maneja el software. La mayoría de los científicos de datos no
necesitarán preocuparse por el método de ajuste, aparte de comprender que es una forma de
encontrar un buen modelo bajo ciertos supuestos.

Regresión logística | 215


Manejo de variables de factor

En la regresión logística, las variables factoriales deben codificarse como en la


regresión lineal; ver“Factorizar variables en regresión” en la página 163. EnR
y otro software, esto normalmente se maneja automáticamente, y generalmente se
usa codificación de referencia. Todos los demás métodos de clasificación que se
tratan en este capítulo suelen utilizar la representación de un codificador activo
(consulte“Un codificador activo” en la página 242). EnPitón's
scikit-learn, es más fácil utilizar una codificación activa, lo que significa
que solo n - 1 de las variables ficticias resultantes se pueden utilizar en la
regresión.

Evaluación del modelo

Al igual que otros métodos de clasificación, la regresión logística se evalúa por la precisión con la que
el modelo clasifica nuevos datos (ver “Evaluación de modelos de clasificación” en la página 219). Al
igual que con la regresión lineal, se encuentran disponibles algunas herramientas estadísticas
estándar adicionales para examinar y mejorar el modelo. Junto con los coeficientes estimados,R
reporta el error estándar de los coeficientes (SE), un z-valor, y un valor p:

resumen(modelo_logístico)

Llamada:

glm(fórmula = Salir ~ pago_inc_ratio + propósito_ + casa_ +


emp_len_ + puntaje_de_prestado, familia = "binomio", datos = préstamo_datos)

Residuos de desviación:
Min 1Q Mediana 3Q Max
- 2.51951 -1.06908 -0.05853 1.07421 2.15528

Coeficientes:
Estimar Std. Valor z de errorPr(> |z|)
(Interceptar) 1,638092 0,073708 22,224 < 2e-16 ***
pago_inc_ratio 0,079737 0,002487 32,058 < 2e-16 ***
propósito_deuda_consolidación 0.249373 0,027615 9,030 < 2e-16 ***
proposito_home_improvement 0.407743 0,046615 8,747 < 2e-16 ***
propósito_compra_principal 0.229628 0.053683 4.277 1.89e-05 ***
proposito_medico 0.510479 0.086780 5.882 4.04e-09 ***
propósito_otro 0,620663 0,039436 15,738 < 2e-16 ***
propósito_pequeña_empresa 1.215261 0.063320 19.192 < 2e-16 ***
home_OWN 0.048330 0,038036 1,271 0,204
home_RENT 0.157320 0,021203 7,420 1,17e-13 ***
emp_len_ > 1 Año - 0.356731 0.052622 -6.779 1.21e-11 ***
puntaje_de_prestado - 4.612638 0.083558 -55.203 < 2e-16 ***
---
Signif. codigos: 0 '***' 0,001 '**' 0,01 '*' 0,05 '. 0,1 '' 1

(Parámetro de dispersión para la familia binomial considerada 1)

Desviación nula: 62857 en 45341 grados de libertad

216 | Capítulo 5: Clasificación


Desviación residual: 57515 en 45330 grados de libertad AIC:
57539

Número de iteraciones de puntuación de Fisher: 4

El paquete statsmodels tiene una implementación para el modelo lineal generalizado (GLM)
que proporciona información igualmente detallada:

y_numbers = [1 Si yi == 'defecto' demás 0 por yi en y]


logit_reg_sm = sm.GLM(y_numbers, X.asignar(constante=1),
familia=sm.familias.Binomio())
logit_result = logit_reg_sm.encajar()
logit_result.resumen()

La interpretación del valor p viene con la misma salvedad que en la regresión y debe verse más
como un indicador relativo de importancia variable (ver "Evaluación del modelo" en la página
153) que como una medida formal de significación estadística. Un modelo de regresión
logística, que tiene una respuesta binaria, no tiene un RMSE o R cuadrado asociado. En cambio,
un modelo de regresión logística generalmente se evalúa utilizando métricas más generales
para la clasificación; ver“Evaluación de modelos de clasificación” en la página 219.

Muchos otros conceptos de regresión lineal se trasladan a la configuración de regresión logística (y


otros GLM). Por ejemplo, puede utilizar la regresión por pasos, ajustar términos de interacción o
incluir términos de spline. Las mismas preocupaciones con respecto a las variables de confusión y
correlacionadas se aplican a la regresión logística (ver“Interpretación de la ecuación de regresión” en
la página 169). Puede ajustar modelos aditivos generalizados (consulte“Modelos aditivos
generalizados” en la página 192) utilizando la mgcv paquete en R:

logistic_gam <- juego(Salir ~ s(pago_inc_ratio) + propósito_ +


casa_ + emp_len_ + s(puntaje_de_prestado),
datos=préstamo_datos, familia='binomio')

La interfaz de fórmula de statsmodels también es compatible con estas extensiones en Pitón:

importar statsmodels.formula.api como smf


fórmula = ('resultado ~ bs (ratio_inc_pago, gl = 4) + propósito_ +' +
'inicio_ + emp_len_ + bs (puntaje_del prestatario, df = 4)')
modelo = smf.glm(fórmula=fórmula, datos=préstamo_datos, familia=sm.familias.Binomio())
resultados = modelo.encajar()

Análisis de residuos

Un área donde la regresión logística difiere de la regresión lineal es en el análisis de los


residuos. Como en la regresión lineal (verFigura 4-9), es sencillo calcular los residuos
parciales en R:

condiciones <- predecir(logistic_gam, tipo='condiciones')


parcial_resid <- resid(modelo_logístico) + términos df <- marco de datos(
pago_inc_ratio = préstamo_datos[, 'pago_inc_ratio'],
condiciones = condiciones[, 's (pago_inc_ratio)'],
parcial_resid = parcial_resid[, 's (pago_inc_ratio)'])

Regresión logística | 217


ggplot(df, aes(X=pago_inc_ratio, y=parcial_resid, sólido = FALSO)) +
geom_point(forma=46, alfa=0.4) +
geom_line(aes(X=pago_inc_ratio, y=condiciones),
color='rojo', alfa=0,5, Talla=1,5) +
laboratorios(y='Residual parcial')

El gráfico resultante se muestra en Figura 5-4. El ajuste estimado, mostrado por la línea,
va entre dos conjuntos de nubes de puntos. La nube superior corresponde a una
respuesta de 1 (préstamos en mora) y la nube inferior corresponde a una respuesta de 0
(préstamos cancelados). Esto es muy típico de los residuos de una regresión logística, ya
que la salida es binaria. La predicción se mide como logit (logaritmo de la razón de
probabilidades), que siempre será un valor finito. El valor real, un 0 o 1 absoluto,
corresponde a un logit infinito, ya sea positivo o negativo, por lo que los residuos (que se
suman al valor ajustado) nunca serán iguales a 0. Por lo tanto, los puntos graficados se
encuentran en nubes arriba o abajo. debajo de la línea ajustada en la gráfica de residuos
parciales. Los residuos parciales en la regresión logística, aunque menos valiosos que en
la regresión,

Actualmente no hay implementación de residuos parciales en ninguno de los principales Pitón


paquetes. ProporcionamosPitón código para crear el gráfico residual parcial en el repositorio
de código fuente adjunto.

Figura 5-4. Residuos parciales de regresión logística

218 | Capítulo 5: Clasificación


Algunos de los resultados del resumen la función se puede ignorar de
manera efectiva. El parámetro de dispersión no se aplica a la regresión
logística y está disponible para otros tipos de GLM. La desviación residual
y el número de iteraciones de puntuación están relacionados con el
método de ajuste de máxima verosimilitud; ver“Estimación de máxima
verosimilitud” en la página 215.

Ideas claves

• La regresión logística es como la regresión lineal, excepto que el resultado es una variable
binaria.

• Se necesitan varias transformaciones para obtener el modelo en una forma que se pueda ajustar como un modelo

lineal, con el logaritmo de la razón de posibilidades como variable de respuesta.

• Una vez que se ajusta el modelo lineal (mediante un proceso iterativo), las probabilidades logarítmicas se vuelven a asignar a

una probabilidad.

• La regresión logística es popular porque es computacionalmente rápida y produce un modelo que


puede puntuarse a nuevos datos con solo unas pocas operaciones aritméticas.

Otras lecturas
• La referencia estándar sobre regresión logística es Regresión logística aplicada, 3a ed.,
Por David Hosmer, Stanley Lemeshow y Rodney Sturdivant (Wiley, 2013).
• También son populares dos libros de Joseph Hilbe: Modelos de regresión logística (
muy completo, 2017) y Guía práctica de regresión logística (compacto, 2015), ambos
de Chapman & Hall / CRC Press.
• Ambas cosas Los elementos del aprendizaje estadístico, 2a ed., Por Trevor Hastie, Robert
Tib‐ shirani y Jerome Friedman (Springer, 2009), y su primo más bajo, Introducción al
aprendizaje estadístico de Gareth James, Daniela Witten, Trevor Hastie y Robert Tibshirani
(Springer, 2013), tienen una sección sobre regresión logística.

• Minería de datos para análisis empresarial por Galit Shmueli, Peter Bruce, Nitin Patel,
Peter Gedeck, Inbal Yahav y Kenneth Lichtendahl (Wiley, 2007-2020, con ediciones
para R, Python, Excel y JMP) tiene un capítulo completo sobre regresión logística.

Evaluación de modelos de clasificación


Es común en el modelado predictivo entrenar varios modelos diferentes, aplicar cada uno
a una muestra reservada y evaluar su desempeño. A veces, después de que se hayan
evaluado y ajustado varios modelos, y si hay suficientes datos, una tercera reserva

Evaluación de modelos de clasificación | 219


La muestra, que no se usó anteriormente, se usa para estimar cómo funcionará el modelo
elegido con datos completamente nuevos. Diferentes disciplinas y profesionales también
usarán los términosvalidación y prueba para referirse a las muestras reservadas. Básicamente,
el proceso de evaluación intenta aprender qué modelo produce las predicciones más precisas y
útiles.

Términos clave para evaluar modelos de clasificación

Precisión
El porcentaje (o proporción) de casos clasificados correctamente.

Matriz de confusión
Una visualización tabular (2 × 2 en el caso binario) del registro cuenta por su estado de
clasificación previsto y real.

Sensibilidad
El porcentaje (o proporción) de todos los 1 que se clasifican correctamente como 1.

Sinónimo
Recordar

Especificidad
El porcentaje (o proporción) de todos los ceros que se clasifican correctamente como ceros.

Precisión
El porcentaje (proporción) de 1 pronosticados que en realidad son 1.

Curva ROC
Un gráfico de sensibilidad versus especificidad.

Elevar

Una medida de la eficacia del modelo para identificar (comparativamente raros) 1 en


diferentes límites de probabilidad.

Una forma sencilla de medir el desempeño de la clasificación es contar la proporción de predicciones


que son correctas, es decir, medir la precisión. La precisión es simplemente una medida del error total:

precisión = ∑TruePositive + ∑TrueNegative


Tamaño de la muestra

220 | Capítulo 5: Clasificación


En la mayoría de los algoritmos de clasificación, a cada caso se le asigna una "probabilidad estimada
de ser un 1".3 El punto de decisión predeterminado, o límite, suele ser 0,50 o 50%. Si la probabilidad es
superior a 0,5, la clasificación es “1”; de lo contrario, es "0". Un punto de corte por defecto alternativo
es la probabilidad predominante de 1 en los datos.

Matriz de confusión

En el corazón de las métricas de clasificación está el matriz de confusión. La matriz de confusión


es una tabla que muestra el número de predicciones correctas e incorrectas categorizadas por
tipo de respuesta. Hay varios paquetes disponibles enR y Pitón para calcular una matriz de
confusión, pero en el caso binario, es sencillo calcular una a mano.

Para ilustrar la matriz de confusión, considere la logistic_gam modelo que se entrenó en un


conjunto de datos equilibrado con un número igual de préstamos en mora y cancelados (ver
Figura 5-4). Siguiendo las convenciones habituales,Y = 1 corresponde al evento de interés (p. Ej.,
Predeterminado), y Y = 0 corresponde a un evento negativo (o habitual) (por ejemplo, pagado). A
continuación se calcula la matriz de confusión para ellogistic_gam modelo aplicado a todo el conjunto
de entrenamiento (desequilibrado) en R:

pred <- predecir(logistic_gam, nuevos datos=juego de trenes)


pred_y <- as.numeric(pred > 0)
verdadero_y <- as.numeric(juego de trenesPSSalir=='defecto')
true_pos <- (verdadero_y==1) Y (pred_y==1)
true_neg <- (verdadero_y==0) Y (pred_y==0)
false_pos <- (verdadero_y==0) Y (pred_y==1)
false_neg <- (verdadero_y==1) Y (pred_y==0)
conf_mat <- matriz(C(suma(true_pos), suma(false_pos),
suma(false_neg), suma(true_neg)), 2, 2)
colnames(conf_mat) <- C('Yhat = 1', 'Yhat = 0')
nombres de fila(conf_mat) <- C('Y = 1', 'Y = 0')
conf_mat
Yhat = 1 Yhat = 0
Y = 1 14295 8376
Y = 0 8052 14619

En Pitón:
pred = logit_reg.predecir(X)
pred_y = logit_reg.predecir(X) == 'defecto'
verdadero_y = y == 'defecto'
true_pos = verdadero_y Y pred_y
true_neg = ~verdadero_y & ~pred_y
false_pos = ~verdadero_y Y pred_y
false_neg = verdadero_y & ~pred_y

3 No todos los métodos proporcionan estimaciones de probabilidad no sesgadas. En la mayoría de los casos, es suficiente que el método proporcione

una clasificación equivalente a las clasificaciones que resultarían de una estimación de probabilidad insesgada; el método de corte es entonces

funcionalmente equivalente.

Evaluación de modelos de clasificación | 221


conf_mat = pd.Marco de datos([[notario público.suma(true_pos), notario público.suma(false_neg)],
[notario público.suma(false_pos), notario público.suma(true_neg)]],

índice=['Y = predeterminado', 'Y = pagado'],


columnas=['Yhat = predeterminado', 'Yhat = pagado'])
conf_mat

Los resultados predichos son columnas y los verdaderos resultados son las filas. Los elementos
diagonales de la matriz muestran el número de predicciones correctas y los elementos fuera de la
diagonal muestran el número de predicciones incorrectas. Por ejemplo, 14.295 préstamos en mora se
predijeron correctamente como mora, pero 8.376 préstamos en mora se predijeron incorrectamente
como liquidados.

Figura 5-5 muestra la relación entre la matriz de confusión para una respuesta binaria
Y y diferentes métricas (ver “Precisión, recuperación y especificidad” en la página 223 para obtener más
información sobre las métricas). Al igual que en el ejemplo de los datos de préstamos, la respuesta real está
a lo largo de las filas y la respuesta prevista a lo largo de las columnas. Las cajas diagonales (superior

izquierda, abajo a la derecha) muestran cuándo las predicciones Y predecir correctamente la respuesta. Una
métrica importante que no se menciona explícitamente es el falso positivoVelocidad (la imagen especular de
la precisión). Cuando los 1 son raros, la proporción de falsos positivos a todos los positivos previstos puede
ser alta, lo que lleva a una situación poco intuitiva en la que un 1 predicho es muy probablemente un
0. Este problema afecta a las pruebas de detección médica (por ejemplo, mamografías) que se aplican
ampliamente: debido a la relativa rareza de la afección, lo más probable es que los resultados positivos de las
pruebas no signifiquen cáncer de mama. Esto genera mucha confusión en el público.

Figura 5-5. Matriz de confusión para una respuesta binaria y varias métricas

Aquí, presentamos la respuesta real a lo largo de las filas y la respuesta


predicha a lo largo de las columnas, pero no es raro ver esto al revés. Un
ejemplo notable es el popularsigno de intercalación paquete en R.

222 | Capítulo 5: Clasificación


El problema de las clases raras

En muchos casos, existe un desequilibrio en las clases a predecir, con una clase mucho más
prevalente que la otra, por ejemplo, reclamaciones de seguros legítimas frente a fraudulentas, o
navegadores frente a compradores en un sitio web. La clase rara (p. Ej., Las reclamaciones
fraudulentas) suele ser la clase de mayor interés y normalmente se designa como 1, en contraste con
los 0 más frecuentes. En el escenario típico, los 1 son el caso más importante, en el sentido de que
clasificarlos incorrectamente como 0 es más costoso que clasificarlos incorrectamente como 1. Por
ejemplo, identificar correctamente una reclamación de seguro fraudulenta puede ahorrar miles de
dólares. Por otro lado, identificar correctamente un reclamo no fraudulento simplemente le ahorra el
costo y el esfuerzo de revisar el reclamo a mano con una revisión más cuidadosa (que es lo que haría
si el reclamo fuera etiquetado como "fraudulento").

En tales casos, a menos que las clases sean fácilmente separables, el modelo de clasificación más
preciso puede ser uno que simplemente clasifique todo como un 0. Por ejemplo, si solo el 0.1% de los
navegadores en una tienda web terminan comprando, un modelo que predice que Cada navegador
que salga sin comprar tendrá una precisión del 99,9%. Sin embargo, será inútil. En cambio,
estaríamos contentos con un modelo que es menos preciso en general, pero que es bueno para
seleccionar a los compradores, incluso si clasifica erróneamente a algunos no compradores en el
camino.

Precisión, recuperación y especificidad

Las métricas distintas de la precisión pura (métricas que tienen más matices) se utilizan
comúnmente en la evaluación de modelos de clasificación. Varios de estos tienen una larga
historia en estadística, especialmente bioestadística, donde se utilizan para describir el
rendimiento esperado de las pruebas de diagnóstico. Laprecisión mide la precisión de un
resultado positivo predicho (ver Figura 5-5):

∑VerdaderoPositivo
precisión = ∑TruePositive + ∑FalsePositive

La recordar, también conocido como sensibilidad, mide la fuerza del modelo para
predecir un resultado positivo: la proporción de los 1 que identifica correctamente (ver
Figura 5-5). El terminosensibilidad se utiliza mucho en bioestadística y diagnósticos médicos, mientras
que recordar se utiliza más en la comunidad de aprendizaje automático. La definición de recuperación
es:

∑VerdaderoPositivo
recordar = ∑TruePositive + ∑FalseNegative

Evaluación de modelos de clasificación | 223


Otra métrica utilizada es especificidad, que mide la capacidad de un modelo para predecir un
resultado negativo:

∑VerdaderoNegativo
especificidad = ∑TrueNegative + ∑FalsePositive

Podemos calcular las tres métricas de conf_mat en R:


# precisión
conf_mat[1, 1] / suma(conf_mat[,1])
# recordar
conf_mat[1, 1] / suma(conf_mat[1,])
# especificidad
conf_mat[2, 2] / suma(conf_mat[2,])

Aquí está el código equivalente para calcular las métricas en Pitón:

conf_mat = matriz de confusión(y, logit_reg.predecir(X))


impresión('Precisión', conf_mat[0, 0] / suma(conf_mat[:, 0]))
impresión('Recordar', conf_mat[0, 0] / suma(conf_mat[0,:]))
impresión('Especificidad ', conf_mat[1, 1] / suma(conf_mat[1,:]))

precision_recall_fscore_support(y, logit_reg.predecir(X),
etiquetas=['defecto', 'pagado'])

scikit-learn tiene un método personalizado precision_recall_fscore_support ese cálculo


Última precisión y recuerdo / especificidad a la vez.

Curva ROC
Puede ver que hay un equilibrio entre recuerdo y especificidad. Capturar más 1 generalmente
significa clasificar erróneamente más 0 como 1. El clasificador ideal haría un excelente trabajo
al clasificar los 1, sin clasificar erróneamente más 0 como 1.

La métrica que captura esta compensación es la curva "Características operativas del receptor",
generalmente conocida como Curva ROC. Los gráficos de la curva ROC recuerdan (sensibilidad)
en el eje y contra la especificidad en el eje x.4 La curva ROC muestra la compensación entre el
recuerdo y la especificidad a medida que cambia el límite para determinar cómo clasificar un
registro. La sensibilidad (recuperación) se traza en el eje y, y puede encontrar dos formas en las
que el eje x está etiquetado:

4 La curva ROC se utilizó por primera vez durante la Segunda Guerra Mundial para describir el rendimiento de las estaciones receptoras de radar, cuyo trabajo

consistía en identificar (clasificar) correctamente las señales de radar reflejadas y alertar a las fuerzas de defensa sobre la llegada de aeronaves.

224 | Capítulo 5: Clasificación


• Especificidad graficada en el eje x, con 1 a la izquierda y 0 a la derecha

• 1-Especificidad graficada en el eje x, con 0 a la izquierda y 1 a la derecha

La curva se ve idéntica de cualquier forma que se haga. El proceso para calcular la curva
ROC es:

1. Ordene los registros por la probabilidad predicha de ser un 1, comenzando con el más
probable y terminando con el menos probable.

2. Calcule la especificidad acumulada y recuerde basándose en los registros ordenados.

Calcular la curva ROC en R es sencillo. El siguiente código calcula ROC para los
datos del préstamo:
idx <- pedido(-pred)
recordar <- eyacular(verdadero_y[idx] == 1) / suma(verdadero_y == 1)
especificidad <- (suma(verdadero_y == 0) - eyacular(verdadero_y[idx] == 0)) / suma(verdadero_y == 0)
roc_df <- marco de datos(recordar = recordar, especificidad = especificidad)
ggplot(roc_df, aes(X=especificidad, y=recordar)) +
geom_line(color='azul') +
scale_x_reverse(expandir=C(0, 0)) +
scale_y_continuous(expandir=C(0, 0)) +
geom_line(datos=marco de datos(X=(0:100) / 100), aes(X=X, y=1-X),
tipo de línea='punteado', color='rojo')

En Pitón, podemos usar el scikit-learn función sklearn.metrics.roc_curve a


Calcule la información requerida para la curva ROC. Puede encontrar paquetes similares paraR,
p.ej, ROCR:

fpr, tpr, umbrales = roc_curve(y, logit_reg.predecir_proba(X) [:,0],


pos_label='defecto')
roc_df = pd.Marco de datos({'recordar': tpr, 'especificidad': 1 - fpr})

hacha = roc_df.gráfico(X='especificidad', y='recordar', figsize=(4, 4), leyenda=Falso)


hacha.set_ylim(0, 1)
hacha.set_xlim(1, 0)
hacha.gráfico((1, 0), (0, 1))
hacha.set_xlabel('especificidad')
hacha.set_ylabel('recordar')

El resultado se muestra en Figura 5-6. La línea diagonal punteada corresponde a un clasificador que no es
mejor que el azar. Un clasificador extremadamente eficaz (o, en situaciones médicas, una prueba de
diagnóstico extremadamente eficaz) tendrá un ROC que abraza la esquina superior izquierda; identificará
correctamente lotes de 1 sin clasificar erróneamente lotes de 0 como 1. Para este modelo, si queremos un
clasificador con una especificidad de al menos el 50%, la recuperación es de aproximadamente el 75%.

Evaluación de modelos de clasificación | 225


Figura 5-6. Curva ROC para los datos del préstamo

Curva de recuperación de precisión

Además de las curvas ROC, puede resultar esclarecedor examinar el


curva de recuperación de precisión (PR). Las curvas de RP se calculan de manera
similar, excepto que los datos se ordenan de menor a mayor probabilidad y se
calculan la precisión acumulativa y las estadísticas de recuperación. Las curvas PR
son especialmente útiles para evaluar datos con resultados altamente
desequilibrados.

AUC
La curva ROC es una valiosa herramienta gráfica, pero por sí misma no constituye una medida
única para el desempeño de un clasificador. Sin embargo, la curva ROC se puede utilizar para
producir el área debajo de la métrica de la curva (AUC). AUC es simplemente el área total bajo la
curva ROC. Cuanto mayor sea el valor de AUC, más eficaz será el clasificador. Un AUC de 1
indica un clasificador perfecto: obtiene todos los 1 correctamente clasificados y no clasifica
erróneamente ningún 0 como 1.

Un clasificador completamente ineficaz, la línea diagonal, tendrá un AUC de 0,5.

226 | Capítulo 5: Clasificación


Figura 5-7 muestra el área bajo la curva ROC para el modelo de préstamo. El valor de AUC se
puede calcular mediante una integración numérica enR:

suma(roc_dfPSrecordar[-1] * diff(1 - roc_dfPSespecificidad)) [1]


0,6926172

En Pitón, podemos calcular la precisión como se muestra para R o usar scikit-learn


función de sklearn.metrics.roc_auc_score. Deberá proporcionar el valor esperado
como 0 o 1:
impresión(notario público.suma(roc_df.recordar[:-1] * notario público.diff(1 - roc_df.especificidad)))
impresión(roc_auc_score([1 Si yi == 'defecto' demás 0 por yi en y],
logit_reg.predecir_proba(X) [:, 0]))

El modelo tiene un AUC de aproximadamente 0,69, que corresponde a un clasificador relativamente débil.

Figura 5-7. Área bajo la curva ROC para los datos del préstamo

Evaluación de modelos de clasificación | 227


Confusión de tasa de falso positivo

Las tasas de falsos positivos / negativos a menudo se confunden o combinan con la


especificidad o sensibilidad (¡incluso en publicaciones y software!). A veces, la tasa de
falsos positivos se define como la proporción de verdaderos negativos que dan
positivo en la prueba. En muchos casos (como la detección de intrusiones en la red),
el término se utiliza para referirse a la proporción de señales positivas que son
verdaderas negativas.

Elevar

Usar el AUC como métrica para evaluar un modelo es una mejora con respecto a la precisión simple,
ya que puede evaluar qué tan bien un clasificador maneja el equilibrio entre la precisión general y la
necesidad de identificar los 1 más importantes. Pero no aborda por completo el problema de los
casos raros, en el que es necesario reducir el límite de probabilidad del modelo por debajo de 0,5
para evitar que todos los registros se clasifiquen como 0. En tales casos, para que un registro se
clasifique como 1, podría ser suficiente tener una probabilidad de 0.4, 0.3 o menor. En efecto,
terminamos sobreidentificando los 1, lo que refleja su mayor importancia.

Cambiar este límite mejorará tus posibilidades de atrapar los 1 (a costa de clasificar
erróneamente más 0 como 1). Pero, ¿cuál es el límite óptimo?

El concepto de elevación le permite aplazar la respuesta a esa pregunta. En su lugar, considera los
registros en el orden de su probabilidad predicha de ser 1 s. Digamos, del 10% superior clasificado
como 1, ¿cuánto mejor fue el algoritmo, en comparación con el punto de referencia de simplemente
seleccionar a ciegas? Si puede obtener una respuesta del 0.3% en este decil superior en lugar del 0.1%
que obtiene en general al elegir al azar, se dice que el algoritmo tiene unaelevar (también llamado
ganancias) de 3 en el decil superior. Un gráfico de elevación (gráfico de ganancias) cuantifica esto en
el rango de los datos. Puede producirse decil por decil o de forma continua sobre el rango de los
datos.

Para calcular un gráfico de elevación, primero genera un gráfico de ganancias acumuladas que
muestra la recuperación en el eje y y el número total de registros en el eje x. Lacurva de elevación es
la relación entre las ganancias acumuladas y la línea diagonal correspondiente a la selección aleatoria.
Gráficos de ganancias de decil son una de las técnicas más antiguas en modelado predictivo, que data de los
días anteriores al comercio por Internet. Fueron particularmente populares entre los profesionales del correo
directo. El correo directo es un método costoso de publicidad si se aplica indiscriminadamente, y los
anunciantes utilizaron modelos predictivos (bastante simples, en los primeros días) para identificar a los
clientes potenciales con la perspectiva más probable de rentabilidad.

228 | Capítulo 5: Clasificación


Edificación

A veces el término edificación se utiliza para significar lo mismo que levantar.


Se utiliza un significado alternativo en un entorno más restrictivo, cuando se
ha realizado una prueba A / B y luego el tratamiento (A o B) se utiliza como
variable predictiva en un modelo predictivo. La elevación es la mejora en la
respuesta prevista.para un caso individual con el tratamiento A versus el
tratamiento B. Esto se determina puntuando el caso individual primero con el
predictor establecido en A, y luego nuevamente con el predictor cambiado a B.
Los especialistas en marketing y los consultores de campañas políticas usan
este método para determinar cuál de los dos tratamientos de mensajería debe
utilizarse con qué clientes o votantes.

Una curva de elevación le permite ver las consecuencias de establecer diferentes límites de
probabilidad para clasificar registros como 1. Puede ser un paso intermedio para establecer un nivel
de corte apropiado. Por ejemplo, una autoridad fiscal puede tener solo una cierta cantidad de
recursos que puede gastar en auditorías fiscales y quiere gastarlos en las trampas fiscales más
probables. Con su limitación de recursos en mente, la autoridad usaría un gráfico de elevación para
estimar dónde trazar la línea entre las declaraciones de impuestos seleccionadas para auditoría y las
que se dejaron solas.

Ideas claves

• La precisión (el porcentaje de clasificaciones previstas que son correctas) no es más que un primer paso en
la evaluación de un modelo.

• Otras métricas (recuerdo, especificidad, precisión) se enfocan en características de desempeño más


específicas (por ejemplo, el recuerdo mide qué tan bueno es un modelo para identificar correctamente los
1).

• AUC (área bajo la curva ROC) es una métrica común de la capacidad de un modelo para
distinguir 1 de 0.

• De manera similar, la elevación mide la eficacia de un modelo para identificar los 1 y, a


menudo, se calcula decil por decil, comenzando con los 1 más probables.

Otras lecturas
La evaluación y valoración se cubren típicamente en el contexto de un modelo en particular (p.
Ej., K-Vecinos más cercanos o árboles de decisión); Tres libros que tratan el tema en su propio
capítulo son:

• Procesamiento de datos, 3a ed., Por Ian Whitten, Eibe Frank y Mark Hall (Morgan
Kaufmann, 2011).

Evaluación de modelos de clasificación | 229


• Ciencia de datos moderna con R por Benjamin Baumer, Daniel Kaplan y Nicholas
Horton (Chapman & Hall / CRC Press, 2017).
• Minería de datos para análisis empresarial por Galit Shmueli, Peter Bruce, Nitin
Patel, Peter Gedeck, Inbal Yahav y Kenneth Lichtendahl (Wiley, 2007-2020, con
ediciones para R, Python, Excel y JMP).

Estrategias para datos desequilibrados

La sección anterior trataba sobre la evaluación de modelos de clasificación utilizando métricas que
van más allá de la simple precisión y son adecuadas para datos desequilibrados, datos en los que el
resultado de interés (compra en un sitio web, fraude de seguros, etc.) es poco común. En esta sección,
analizamos estrategias adicionales que pueden mejorar el rendimiento del modelado predictivo con
datos desequilibrados.

Términos clave para datos desequilibrados

Submuestra
Utilice menos registros de clases prevalentes en el modelo de clasificación.

Sinónimo
Reducir la muestra

Sobremuestreo
Utilice más registros de clases raras en el modelo de clasificación, arrancando si es
necesario.

Sinónimo
Upsample

Subir o bajar de peso


Adjunte más (o menos) peso a la clase rara (o prevalente) en el modelo.

Generación de datos
Como el bootstrapping, excepto que cada nuevo registro de bootstrap es ligeramente diferente de
su fuente.

puntuación z

El valor que resulta después de la estandarización.

K
El número de vecinos considerados en el cálculo del vecino más cercano.

230 | Capítulo 5: Clasificación


Submuestreo
Si tiene suficientes datos, como es el caso de los datos del préstamo, una solución es
submuestra (o reducir) la clase predominante, por lo que los datos a modelar están más
equilibrados entre 0 y 1. La idea básica del submuestreo es que los datos de la clase dominante
tienen muchos registros redundantes. Tratar con un conjunto de datos más pequeño y
equilibrado produce beneficios en el rendimiento del modelo y facilita la preparación de los
datos y la exploración y prueba de modelos.

¿Cuántos datos son suficientes? Depende de la aplicación, pero en general, basta con
tener decenas de miles de registros para la clase menos dominante. Cuanto más
fácilmente se distingan los 1 de los 0, menos datos se necesitan.

Los datos de préstamos analizados en “Regresión logística” en la página 208 se basó en un conjunto de
capacitación equilibrado: la mitad de los préstamos fueron cancelados y la otra mitad estaba en mora. Los
valores predichos fueron similares: la mitad de las probabilidades fueron menores de 0.5 y la mitad fueron
mayores de 0.5. En el conjunto de datos completo, solo alrededor del 19% de los préstamos estaban en
mora, como se muestra enR:

significar(full_train_setPSSalir=='defecto') [1]
0.1889455

En Pitón:
impresión('porcentaje de préstamos en mora: ',
100 * notario público.significar(full_train_set.Salir == 'defecto'))

¿Qué sucede si usamos el conjunto de datos completo para entrenar el modelo? Veamos cómo se ve
esto enR:

modelo_completo <- glm(Salir ~ pago_inc_ratio + propósito_ + casa_ +


emp_len_+ dti + revol_bal + revol_util,
datos=full_train_set, familia='binomio')
pred <- predecir(modelo_completo)
significar(pred > 0) [
1] 0,003942094

Y en Pitón:
predictores = ['pago_inc_ratio', 'propósito_', 'casa_', 'emp_len_',
'dti', 'revol_bal', 'revol_util']
Salir = 'Salir'
X = pd.get_dummies(full_train_set[predictores], prefijo='', prefix_sep='',
drop_first=Cierto)
y = full_train_set[Salir]

modelo_completo = Regresión logística(multa='l2', C=1e42, solucionador='liblinear')


modelo_completo.encajar(X, y)
impresión('porcentaje de préstamos previstos en incumplimiento: ',
100 * notario público.significar(modelo_completo.predecir(X) == 'defecto'))

Estrategias para datos desequilibrados »Wiki Ùtil 231


Se prevé que solo el 0,39% de los préstamos estén en mora, o menos de 1/47 del número esperado.5
Los préstamos que se cancelaron superan a los préstamos en mora porque el modelo se entrena
utilizando todos los datos por igual. Pensándolo de manera intuitiva, la presencia de tantos
préstamos no morosos, junto con la inevitable variabilidad en los datos de predicción, significa que,
incluso para un préstamo moroso, es probable que el modelo encuentre algunos préstamos no
morosos a los que es similar, por casualidad. Cuando se utilizó una muestra equilibrada, se
pronosticó que aproximadamente el 50% de los préstamos estaban en mora.

Sobremuestreo y ponderación ascendente / descendente

Una de las críticas al método de submuestreo es que descarta datos y no utiliza toda la
información disponible. Si tiene un conjunto de datos relativamente pequeño, y la clase
más rara contiene algunos cientos o miles de registros, entonces el submuestreo de la
clase dominante tiene el riesgo de arrojar información útil. En este caso, en lugar de
reducir la muestra del caso dominante, debe sobremuestrear (aumentar la muestra) la
clase más rara dibujando filas adicionales con reemplazo (bootstrapping).

Puede lograr un efecto similar ponderando los datos. Muchos algoritmos de clasificación toman un
argumento de ponderación que le permitirá subir o bajar la ponderación de los datos. Por ejemplo, aplique
un vector de ponderación a los datos del préstamo utilizando elpeso argumento para glm en R:

peso <- si no(full_train_setPSSalir=='defecto',


1 / significar(full_train_setPSSalir == 'defecto'), 1)
modelo_completo <- glm(Salir ~ pago_inc_ratio + propósito_ + casa_ +
emp_len_+ dti + revol_bal + revol_util,
datos=full_train_set, peso=peso, familia='cuasibinomial')
pred <- predecir(modelo_completo)
significar(pred > 0
) [1] 0.5767208

La mayoría scikit-learn Los métodos permiten especificar pesos en el encajar función usando el
argumento de palabra clave sample_weight:

default_wt = 1 / notario público.significar(full_train_set.Salir == 'defecto')


peso = [default_wt Si Salir == 'defecto' demás 1
por Salir en full_train_set.Salir]

modelo_completo = Regresión logística(multa="l2", C=1e42, solucionador='liblinear')


modelo_completo.encajar(X, y, sample_weight=peso)
impresión('porcentaje de préstamos previstos en incumplimiento (ponderación): ',
100 * notario público.significar(modelo_completo.predecir(X) == 'defecto'))

Las ponderaciones de los préstamos en mora se establecen en 1


pag , dónde pag es la probabilidad de incumplimiento.
Los préstamos no morosos tienen una ponderación de 1. Las sumas de las ponderaciones por incumplimiento

5 Debido a las diferencias en la implementación, los resultados Pitón difieren ligeramente: 1%, o aproximadamente 1/18 del número esperado.

232 | Capítulo 5: Clasificación


préstamos incobrables y préstamos no morosos son aproximadamente iguales. La media de los valores predichos es
ahora de aproximadamente 58% en lugar de 0,39%.

Tenga en cuenta que la ponderación proporciona una alternativa tanto al aumento de la clase más rara como
a la disminución de la clase dominante.

Adaptación de la función de pérdida

Muchos algoritmos de clasificación y regresión optimizan ciertos criterios o


función de pérdida. Por ejemplo, la regresión logística intenta minimizar la
desviación. En la literatura, algunos proponen modificar la función de pérdida
para evitar los problemas provocados por una clase rara. En la práctica, esto
es difícil de hacer: los algoritmos de clasificación pueden ser complejos y
difíciles de modificar. La ponderación es una manera fácil de cambiar la
función de pérdida, descontando errores para registros con pesos bajos a
favor de registros con pesos más altos.

Generación de datos

Una variación de upsampling mediante bootstrapping (ver “Sobremuestreo y ponderación hacia


arriba / hacia abajo” en la página 232) es generación de datos perturbando los registros existentes
para crear nuevos registros. La intuición detrás de esta idea es que dado que observamos solo un
conjunto limitado de instancias, el algoritmo no tiene un conjunto rico de información para construir
“reglas” de clasificación. Al crear nuevos registros que son similares pero no idénticos a los registros
existentes, el algoritmo tiene la oportunidad de aprender un conjunto de reglas más sólido. Esta
noción es similar en espíritu a los modelos estadísticos conjuntos como el impulso y el ensacado (ver
Capítulo 6).

La idea ganó fuerza con la publicación del SMOTE algoritmo, que significa "Técnica de
sobremuestreo de minorías sintéticas". El algoritmo SMOTE encuentra un registro que es
similar al registro que se está muestreando (consulte“K-Vecinos más cercanos” en la página 238
) y crea un registro sintético que es un promedio ponderado aleatoriamente del registro
original y el registro vecino, donde el peso se genera por separado para cada predictor. El
número de registros sintéticos sobremuestreados que se crean depende de la proporción de
sobremuestreo necesaria para que el conjunto de datos esté en un equilibrio aproximado con
respecto a las clases de resultados.

Hay varias implementaciones de SMOTE en R. El paquete más completo para manejar datos no
balanceados es desequilibrado. Ofrece una variedad de técnicas, incluido un algoritmo "Racing" para
seleccionar el mejor método. Sin embargo, el algoritmo SMOTE es lo suficientemente simple como
para que se pueda implementar directamente enR utilizando la FNN paquete.

La Pitón paquete desequilibrado-aprender implementa una variedad de métodos con una


API que es compatible con scikit-learn. Proporciona varios métodos para sobre y

Estrategias para datos desequilibrados »Wiki Ùtil 233


submuestreo y soporte para el uso de estas técnicas con clasificadores de refuerzo y
ensacado.

Clasificación basada en costos

En la práctica, la precisión y el AUC son una forma pobre de elegir una regla de clasificación. A
menudo, se puede asignar un costo estimado a los falsos positivos frente a los falsos negativos, y es
más apropiado incorporar estos costos para determinar el mejor punto de corte al clasificar 1 y 0. Por
ejemplo, suponga que el costo esperado del incumplimiento de un nuevo préstamo esC y el
rendimiento esperado de un préstamo cancelado es R. Entonces, el rendimiento esperado de ese
préstamo es:

retorno esperado = PY = 0 × R + PY = 1 × C

En lugar de simplemente etiquetar un préstamo como predeterminado o cancelado, o determinar la


probabilidad de incumplimiento, tiene más sentido determinar si el préstamo tiene un rendimiento
esperado positivo. La probabilidad de incumplimiento prevista es un paso intermedio y debe
combinarse con el valor total del préstamo para determinar la ganancia esperada, que es la métrica
de planificación final del negocio. Por ejemplo, un préstamo de menor valor podría pasarse a favor de
uno más grande con una probabilidad de incumplimiento prevista ligeramente mayor.

Explorando las predicciones

Una sola métrica, como AUC, no puede evaluar todos los aspectos de la idoneidad de un modelo para
una situación. Figura 5-8 muestra las reglas de decisión para cuatro modelos diferentes que se
ajustan a los datos del préstamo utilizando solo dos variables predictoras: puntaje_de_prestado y pagar
ment_inc_ratio. Los modelos son análisis discriminante lineal (LDA), regresión lineal logística, ajuste de
regresión logística utilizando un modelo aditivo generalizado (GAM) y un modelo de árbol (ver
“Modelos de árbol” en la página 249). La región de la parte superior izquierda de las líneas
corresponde a un valor predeterminado previsto. La LDA y la regresión lineal logística dan resultados
casi idénticos en este caso. El modelo de árbol produce la regla menos regular, con dos pasos.
Finalmente, el ajuste GAM de la regresión logística representa un compromiso entre el modelo de
árbol y el modelo lineal.

234 | Capítulo 5: Clasificación


Figura 5-8. Comparación de las reglas de clasificación para cuatro métodos diferentes

No es fácil visualizar las reglas de predicción en dimensiones superiores o, en el caso del


GAM y el modelo de árbol, incluso generar las regiones para tales reglas.

En cualquier caso, siempre se justifica el análisis exploratorio de los valores predichos.

Ideas claves

• Los datos muy desequilibrados (es decir, donde los resultados interesantes, los 1, son raros) son
problemáticos para los algoritmos de clasificación.

• Una estrategia para trabajar con datos desequilibrados es equilibrar los datos de entrenamiento
submuestreando el caso abundante (o sobremuestreando el caso raro).

• Si el uso de todos los 1 todavía le deja con muy pocos 1, puede iniciar los casos raros o usar
SMOTE para crear datos sintéticos similares a los casos raros existentes.

• Los datos desequilibrados generalmente indican que clasificar correctamente una clase (los 1) tiene un
valor más alto, y que la relación de valores debe incorporarse en la métrica de evaluación.

Estrategias para datos desequilibrados »Wiki Ùtil 235


Otras lecturas
• Tom Fawcett, autor de Ciencia de datos para empresas, tiene un buen artículo sobre clases
desequilibradas.

• Para obtener más información sobre SMOTE, consulte Nitesh V. Chawla, Kevin W. Bowyer,
Lawrence O. Hall y W. Philip Kegelmeyer, “SMOTE: Técnica sintética de sobremuestreo de
minorías”, Revista de investigación en inteligencia artificial 16 (2002): 321–357.

• Consulte también el equipo de contenido de Analytics Vidhya “Guía práctica para abordar los
problemas de clasificación desequilibrada en R," 28 de marzo de 2016.

Resumen
La clasificación, el proceso de predecir a cuál de dos o más categorías pertenece un registro, es una
herramienta fundamental del análisis predictivo. ¿Habrá un préstamo en mora (sí o no)? ¿Pagará por
adelantado? ¿Un visitante de la web hará clic en un enlace? ¿Comprarán algo? ¿Es un reclamo de
seguro fraudulento? A menudo, en los problemas de clasificación, una clase es de interés principal (p.
Ej., La reclamación de seguro fraudulenta), y en la clasificación binaria, esta clase se designa como 1,
mientras que la otra clase, más prevalente, es un 0. A menudo, una clave parte del proceso es estimar
unpuntaje de propensión, una probabilidad de pertenecer a la clase de interés. Un escenario común
es aquel en el que la clase de interés es relativamente rara. Al evaluar un clasificador, hay una
variedad de métricas de evaluación de modelos que van más allá de la simple precisión; estos son
importantes en la situación de las clases raras, cuando la clasificación de todos los registros como 0
puede producir una alta precisión.

236 | Capítulo 5: Clasificación


CAPÍTULO 6

Aprendizaje automático estadístico

Los avances recientes en estadística se han dedicado al desarrollo de técnicas automatizadas


más poderosas para el modelado predictivo, tanto de regresión como de clasificación. Estos
métodos, como los discutidos en el capítulo anterior, sonmétodos supervisados—Están
capacitados con datos donde se conocen los resultados y aprenden a predecir los resultados en
nuevos datos. Caen bajo el paraguas deaprendizaje automático estadístico y se distinguen de
los métodos estadísticos clásicos en que se basan en datos y no buscan imponer una estructura
lineal u otra estructura general a los datos. LaK-El método de vecinos más cercanos, por
ejemplo, es bastante simple: clasifique un registro de acuerdo con cómo se clasifican los
registros similares. Las técnicas más exitosas y ampliamente utilizadas se basan en
aprendizaje conjunto aplicado a árboles de decisión. La idea básica del aprendizaje por conjuntos es
usar muchos modelos para formar una predicción, en lugar de usar un solo modelo. Los árboles de
decisiones son una técnica flexible y automática para aprender reglas sobre las relaciones entre las
variables predictoras y las variables de resultado. Resulta que la combinación de aprendizaje por
conjuntos con árboles de decisión conduce a algunas de las técnicas de modelado predictivo listas
para usar con mejor rendimiento.

El desarrollo de muchas de las técnicas en el aprendizaje automático estadístico se


remonta a los estadísticos Leo Breiman (ver Figura 6-1) en la Universidad de California en
Berkeley y Jerry Friedman en la Universidad de Stanford. Su trabajo, junto con el de otros
investigadores de Berkeley y Stanford, comenzó con el desarrollo de modelos de árboles
en 1984. El desarrollo posterior de métodos conjuntos de ensacado y refuerzo en la
década de 1990 estableció las bases del aprendizaje automático estadístico.

237
Figura 6-1. Leo Breiman, quien fue profesor de estadística en UC Berkeley, estuvo a la vanguardia del desarrollo
de muchas técnicas en el conjunto de herramientas de un científico de datos en la actualidad.

Aprendizaje automático versus estadísticas

En el contexto del modelado predictivo, ¿cuál es la diferencia entre el


aprendizaje automático y las estadísticas? No hay una línea clara que
divida las dos disciplinas. El aprendizaje automático tiende a centrarse
más en desarrollar algoritmos eficientes que escalen a grandes datos
para optimizar el modelo predictivo. La estadística generalmente presta
más atención a la teoría probabilística y la estructura subyacente del
modelo. Embolsado, y el bosque aleatorio (ver“Embolsado y el bosque
aleatorio” en la página 259), creció firmemente en el campo de la
estadística. Impulsar (ver"Impulso" en la página 270), por otro lado, se ha
desarrollado en ambas disciplinas, pero recibe más atención en el lado
de la división del aprendizaje automático. Independientemente de la
historia, la promesa de impulsar asegura que prosperará como técnica
tanto en estadística como en aprendizaje automático.

K-Vecinos más cercanos


La idea detrás K-Vecinos más cercanos (KNN) es muy simple.1 Para que cada registro sea
clasificado o predicho:

1. Encuentra K registros que tienen características similares (es decir, valores predictores similares).

2. Para la clasificación, averigüe cuál es la clase mayoritaria entre esos registros


similares y asigne esa clase al nuevo registro.
3. Para la predicción (también llamada Regresión KNN), encontrar el promedio entre esos registros
similares y predecir ese promedio para el nuevo registro.

1 Esta y las secciones siguientes de este capítulo © 2020 Datastats, LLC, Peter Bruce, Andrew Bruce y Peter
Gedeck; utilizado con permiso.

238 | Capítulo 6: Aprendizaje automático estadístico


Términos clave para los vecinos más cercanos de K

Vecino
Un registro que tiene valores de predicción similares a otro registro.

Métricas de distancia
Mide que suman en un solo número qué tan lejos está un registro de otro.

Estandarización
Reste la media y divida por la desviación estándar.

Sinónimo
Normalización

puntuación z

El valor que resulta después de la estandarización.

K
El número de vecinos considerados en el cálculo del vecino más cercano.

KNN es una de las técnicas de predicción / clasificación más simples: no hay ningún modelo que se
ajuste (como en la regresión). Esto no significa que el uso de KNN sea un procedimiento automático.
Los resultados de la predicción dependen de cómo se escalan las características, cómo se mide la
similitud y qué tan grandeK Está establecido. Además, todos los predictores deben estar en forma
numérica. Ilustraremos cómo utilizar el método KNN con un ejemplo de clasificación.

Un pequeño ejemplo: predecir el incumplimiento de los préstamos

Tabla 6-1 muestra algunos registros de datos de préstamos personales de LendingClub. LendingClub
es líder en préstamos entre pares en los que grupos de inversores otorgan préstamos personales a
individuos. El objetivo de un análisis sería predecir el resultado de un nuevo préstamo potencial:
cancelado versus incumplimiento.

Tabla 6-1. Algunos registros y columnas para los datos de préstamos de LendingClub

Salir Importe del préstamo Ingresos Propósito Años empleados Propiedad de la vivienda Estado

Pagado 10000 79100 consolidación_deuda 11 HIPOTECA Nevada

Pagado 9600 48000 moviendo 5 HIPOTECA Tennesse

Pagado 18800 120036 consolidación_deuda 11 HIPOTECA Maryland

Defecto 15250 232000 pequeña_empresa 9 HIPOTECA California

Pagado 17050 35000 consolidación_deuda 4 RENTA Maryland

Pagado 5500 43000 consolidación_deuda 4 RENTA Kansas

K-Vecinos más cercanos | 239


Considere un modelo muy simple con solo dos variables predictoras: dti, que es la relación
entre los pagos de la deuda (excluida la hipoteca) y los ingresos, y Payment_inc_ratio,
que es la relación entre el pago del préstamo y los ingresos. Ambas razones se multiplican por 100.
Con un pequeño conjunto de 200 préstamos,préstamo200, con resultados binarios conocidos
(predeterminados o no predeterminados, especificados en el predictor result200), y con K establecido
en 20, la estimación de KNN para la predicción de un nuevo préstamo, nuevo préstamo con dti = 22,5 y
pago_inc_ratio = 9 se puede calcular en R como sigue:2

nuevo préstamo <- préstamo200[1, 2:3, soltar=FALSO]


knn_pred <- knn(entrenar=préstamo200[-1, 2:3], prueba=nuevo préstamo, cl=préstamo200[-1, 1], k=20)
knn_pred == 'pagado'
[1] CIERTO

La predicción de KNN es que el préstamo incurra en incumplimiento.

Tiempo R tiene un nativo knn función, el contribuido R paquete FNN, para vecino más cercano
rápido, escala de forma más eficaz a big data y proporciona más flexibilidad.

La scikit-learn El paquete proporciona una implementación rápida y eficiente de KNN en


Pitón:
predictores = ['pago_inc_ratio', 'dti']
Salir = 'Salir'

nuevo préstamo = préstamo200.loc[0:0, predictores]


X = préstamo200.loc[1:, predictores]
y = préstamo200.loc[1:, Salir]

knn = KNeighborsClassifier(n_vecinos=20)
knn.encajar(X, y)
knn.predecir(nuevo préstamo)

Figura 6-2 da una representación visual de este ejemplo. El nuevo préstamo que se pronostica es la cruz en el
medio. Los cuadrados (pagados) y los círculos (predeterminados) son los datos de entrenamiento. El círculo
negro grande muestra el límite de los 20 puntos más cercanos. En este caso, dentro del círculo se encuentran
9 préstamos en mora, en comparación con 11 préstamos cancelados. Por lo tanto, se amortiza el resultado
previsto del préstamo. Tenga en cuenta que si consideramos solo a los tres vecinos más cercanos, la
predicción sería que el préstamo incumple.

2 Para este ejemplo, tomamos la primera fila de la préstamo200 conjunto de datos como el nuevo préstamo y excluirlo del conjunto de datos para

entrenamiento.

240 | Capítulo 6: Aprendizaje automático estadístico


Figura 6-2. Predicción KNN del incumplimiento de los préstamos utilizando dos variables: la relación deuda-
ingresos y la relación préstamo-pago-ingresos

Si bien la salida de KNN para la clasificación suele ser una decisión binaria,
como el incumplimiento o el pago en los datos del préstamo, las rutinas de
KNN suelen ofrecer la oportunidad de generar una probabilidad (propensión)
entre 0 y 1. La probabilidad se basa en la fracción de una clase en el K vecinos
más cercanos. En el ejemplo anterior, este

la probabilidad de incumplimiento se habría estimado en 9


20, o 0,45.
El uso de una puntuación de probabilidad le permite utilizar reglas de clasificación
distintas de los votos por mayoría simple (probabilidad de 0,5). Esto es
especialmente importante en problemas con clases desequilibradas; ver“Estrategias
para datos embalsamados” en la página 230. Por ejemplo, si el objetivo es identificar
miembros de una clase poco común, el límite normalmente se establecería por
debajo del 50%. Un enfoque común es establecer el límite en la probabilidad del
evento raro.

Métricas de distancia

La similitud (cercanía) se determina mediante un métrica de distancia, que es una función que
mide qué tan lejos dos registros (X1, X2, …, Xpag) y (tu1, tu2, …, tupag) son el uno del otro.
La métrica de distancia más popular entre dos vectores esDistancia euclidiana. A

K-Vecinos más cercanos | 241


medir la distancia euclidiana entre dos vectores, restar uno del otro, elevar al
cuadrado las diferencias, sumarlas y sacar la raíz cuadrada:

2+ 2.
X1 - tu1 X2- tu 2 2 + ⋯ + Xpag
- tu pag

Otra métrica de distancia común para datos numéricos es Distancia de Manhattan:

|X1 - tu1 | + |X2 - tu2 | +⋯ + | Xpag - tup |

La distancia euclidiana corresponde a la distancia en línea recta entre dos puntos (por ejemplo, en
línea recta). La distancia de Manhattan es la distancia entre dos puntos atravesados en una sola
dirección a la vez (por ejemplo, viajando a lo largo de cuadras rectangulares de la ciudad). Por esta
razón, la distancia de Manhattan es una aproximación útil si la similitud se define como el tiempo de
viaje de un punto a otro.

Al medir la distancia entre dos vectores, las variables (características) que se miden con una
escala comparativamente grande dominarán la medida. Por ejemplo, para los datos de
préstamos, la distancia sería casi exclusivamente una función de las variables de ingresos y
monto del préstamo, que se miden en decenas o cientos de miles. Las variables de razón no
contarían prácticamente nada en comparación. Abordamos este problema estandarizando los
datos; ver“Estandarización (normalización, puntuaciones z)” en la página 243.

Otras métricas de distancia

Existen muchas otras métricas para medir la distancia entre vectores. Para
datos numéricos,Distancia de Mahalanobis es atractivo ya que da cuenta de la
correlación entre dos variables. Esto es útil ya que si dos variables están
altamente correlacionadas, Mahalanobis esencialmente las tratará como una
sola variable en términos de distancia. La distancia euclidiana y de Manhattan
no tiene en cuenta la correlación, lo que efectivamente otorga mayor peso al
atributo que subyace a esas características. La distancia de Mahalanobis es la
distancia euclidiana entre los componentes principales (ver“Análisis de
componentes principales” en la página 284). La desventaja de usar la distancia
de Mahalanobis es un mayor esfuerzo y complejidad computacional; se calcula
utilizando elMatriz de covarianza (ver “Matriz de covarianza” en la página 202).

Un codificador caliente

Los datos del préstamo en Tabla 6-1 incluye varias variables de factor (cadena). La mayoría de los modelos
estadísticos y de aprendizaje automático requieren que este tipo de variable se convierta en una serie de
variables ficticias binarias que transmiten la misma información, como enTabla 6-2. En lugar de una sola
variable que denote el estado del ocupante de la vivienda como "propietario con una hipoteca",

242 | Capítulo 6: Aprendizaje automático estadístico


“Posee sin hipoteca”, “alquila” u “otro”, terminamos con cuatro variables binarias. La primera
sería "posee con hipoteca — S / N", la segunda sería "posee sin hipoteca — S / N", y así
sucesivamente. Este predictor, el estado del ocupante de la casa, produce un vector con un 1 y
tres 0 que se puede utilizar en algoritmos estadísticos y de aprendizaje automático. La fraseuna
codificación en caliente proviene de la terminología de circuitos digitales, donde describe la
configuración del circuito en la que solo se permite que un bit sea positivo (activo).

Tabla 6-2. Representar los datos del factor de propiedad de la vivienda enTabla 6-1 como una variable ficticia numérica

OWNS_WITH_MORTGAGE OWNS_WITHOUT_MORTGAGE OTRO ALQUILER

1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
0 0 0 1
0 0 0 1

En la regresión lineal y logística, una codificación en caliente causa


problemas con la multicolinealidad; ver“Multicolinealidad” en la página
172. En tales casos, se omite una variable ficticia (su valor se puede
inferir de los otros valores). Este no es un problema con KNN y otros
métodos discutidos en este libro.

Estandarización (normalización, puntuaciones z)

En la medición, a menudo no nos interesa tanto "cuánto" sino "qué tan diferente del
promedio". Estandarización, también llamadanormalización, coloca todas las variables en
escalas similares restando la media y dividiendo por la desviación estándar; De esta
forma, nos aseguramos de que una variable no influya demasiado en un modelo
simplemente por la escala de su medida original:

z=x-X
s

El resultado de esta transformación se conoce comúnmente como puntuación z. Luego, las


mediciones se expresan en términos de "desviaciones estándar de la media".

Normalización en este contexto estadístico no debe confundirse con


normalización de la base de datos, que es la eliminación de datos redundantes
y la verificación de dependencias de datos.

K-Vecinos más cercanos | 243


Para KNN y algunos otros procedimientos (por ejemplo, análisis de componentes principales y
agrupamiento), es esencial considerar estandarizar los datos antes de aplicar el procedimiento.
Para ilustrar esta idea, KNN se aplica a los datos de préstamos utilizandodti y
pago_inc_ratio (ver “Un pequeño ejemplo: predecir el incumplimiento de los préstamos” en la
página 239) más otras dos variables: revol_bal, el crédito renovable total disponible para el
solicitante en dólares, y revol_util, el porcentaje del crédito que se está utilizando. El nuevo
récord a predecir se muestra aquí:

nuevo préstamo

pago_inc_ratio dti revol_bal revol_util


1 2,3932 1 1687 9,4

La magnitud de revol_bal, que está en dólares, es mucho mayor que el de las otras
variables. Laknn La función devuelve el índice de los vecinos más cercanos como atributo.
nn.index, y esto se puede utilizar para mostrar las cinco filas más cercanas en préstamo_df:

préstamo_df <- model.matrix(~ -1 + pago_inc_ratio + dti + revol_bal +


revol_util, datos=préstamo_datos)
nuevo préstamo <- préstamo_df[1,, soltar=FALSO]
préstamo_df <- préstamo_df[-1,]
Salir <- préstamo_datos[-1, 1]
knn_pred <- knn(entrenar=préstamo_df, prueba=nuevo préstamo, cl=Salir, k=5)
préstamo_df[attr(knn_pred, "nn.index"),]

pago_inc_ratio dti revol_bal revol_util


35537 1,47212 1,46 1686 10,0
33652 3.38178 6.37 1688 8.4
25864 2,36303 1,39 1691 3,5
42954 1.28160 7.14 1684 3.9
43600 4.12244 8.98 1684 7.2

Siguiendo el ajuste del modelo, podemos usar el vecinos método para identificar las cinco filas más cercanas
en el conjunto de entrenamiento con scikit-learn:

predictores = ['pago_inc_ratio', 'dti', 'revol_bal', 'revol_util']


Salir = 'Salir'

nuevo préstamo = préstamo_datos.loc[0:0, predictores]


X = préstamo_datos.loc[1:, predictores]
y = préstamo_datos.loc[1:, Salir]

knn = KNeighborsClassifier(n_vecinos=5)
knn.encajar(X, y)

nbrs = knn.vecinos(nuevo préstamo)


X.iloc[nbrs[1] [0],:]

El valor de revol_bal en estos vecinos está muy cerca de su valor en el nuevo registro, pero las otras
variables predictoras están en todo el mapa y esencialmente no juegan ningún papel en la
determinación de los vecinos.

244 | Capítulo 6: Aprendizaje automático estadístico


Compare esto con KNN aplicado a los datos estandarizados usando el R función escala,
que calcula el z-puntuación para cada variable:

préstamo_df <- model.matrix(~ -1 + pago_inc_ratio + dti + revol_bal +


revol_util, datos=préstamo_datos)
préstamo_std <- escala(préstamo_df)
newloan_std <- préstamo_std[1,, soltar=FALSO]
préstamo_std <- préstamo_std[-1,]
préstamo_df <- préstamo_df[-1,]
Salir <- préstamo_datos[-1, 1]
knn_pred <- knn(entrenar=préstamo_std, prueba=newloan_std, cl=Salir, k=5)
préstamo_df[attr(knn_pred, "nn.index"),]
pago_inc_ratio dti revol_bal revol_util
2081 2.61091 1.03 1218 9.7
1439 2,34343 0,51 278 9,9
30216 2.71200 1.34 1075 8.5
28543 2,39760 0,74 2917 7,4
44738 2,34309 1,37 488 7,2

Necesitamos eliminar la primera fila de préstamo_df también, de modo que los números de fila
se correspondan entre sí.

La sklearn.preprocessing.StandardScaler El método se entrena primero con el pre‐


dictores y posteriormente se utiliza para transformar el conjunto de datos antes de entrenar el
modelo KNN:

nuevo préstamo = préstamo_datos.loc[0:0, predictores]


X = préstamo_datos.loc[1:, predictores]
y = préstamo_datos.loc[1:, Salir]

escalador = preprocesamiento.Escalador estándar()


escalador.encajar(X * 1.0)

X_std = escalador.transformar(X * 1.0)


newloan_std = escalador.transformar(nuevo préstamo * 1.0)

knn = KNeighborsClassifier(n_vecinos=5)
knn.encajar(X_std, y)

nbrs = knn.vecinos(newloan_std)
X.iloc[nbrs[1] [0],:]

Los cinco vecinos más cercanos son mucho más parecidos en todas las variables, proporcionando un
resultado más sensible. Tenga en cuenta que los resultados se muestran en la escala original, pero se aplicó
KNN a los datos escalados y al nuevo préstamo que se predijo.

K-Vecinos más cercanos | 245


Utilizando la z-la puntuación es solo una forma de cambiar la escala de las
variables. En lugar de la media, se podría utilizar una estimación más sólida de
la ubicación, como la mediana. Asimismo, se podría utilizar una estimación de
escala diferente, como el rango intercuartil, en lugar de la desviación
estándar. A veces, las variables se "aplastan" en el rango 0-1. También es
importante darse cuenta de que escalar cada variable para tener varianza
unitaria es algo arbitrario. Esto implica que se cree que cada variable tiene la
misma importancia en el poder predictivo. Si tiene conocimiento subjetivo de
que algunas variables son más importantes que otras, entonces estas podrían
ampliarse. Por ejemplo, con los datos de los préstamos, es razonable esperar
que la relación entre pagos e ingresos sea muy importante.

La normalización (estandarización) no cambia la forma de


distribución de los datos; no le da una forma normal si no tenía
ya una forma normal (ver"Distribución normal" en la página 69).

Elegir K
La elección de K es muy importante para el desempeño de KNN. La elección más sencilla es configurar
K = 1, conocido como clasificador de vecino más cercano. La predicción es intuitiva: se basa en
encontrar el registro de datos en el conjunto de entrenamiento más similar al nuevo registro que se
va a predecir. ConfiguraciónK = 1 rara vez es la mejor opción; casi siempre obtendrá un rendimiento
superior al usarK> 1-vecinos más cercanos.

En general, si K es demasiado bajo, es posible que estemos sobreajustando: incluido el ruido en los
datos. Valores más altos deK proporcionan suavizado que reduce el riesgo de sobreajuste en los
datos de entrenamiento. Por otro lado, siK es demasiado alto, podemos suavizar demasiado los datos
y perder la capacidad de KNN para capturar la estructura local en los datos, una de sus principales
ventajas.

La K que el mejor equilibrio entre el sobreajuste y el sobreajuste suele determinarse mediante


métricas de precisión y, en particular, la precisión con datos de validación o reserva. No existe una
regla general sobre lo mejorK—Depende en gran medida de la naturaleza de los datos. Para datos
muy estructurados con poco ruido, valores más pequeños deK funciona mejor. Tomando prestado un
término de la comunidad de procesamiento de señales, este tipo de datos a veces se denomina tener
un altorelación señal-ruido (SNR). Ejemplos de datos con una SNR típicamente alta son conjuntos de
datos para escritura a mano y reconocimiento de voz. Para datos ruidosos con menos estructura
(datos con una SNR baja), como los datos de préstamos, valores mayores de
K son apropiados. Normalmente, los valores deK caen en el rango de 1 a 20. A menudo, se elige un número
impar para evitar empates.

246 | Capítulo 6: Aprendizaje automático estadístico


Compensación de sesgo-varianza

La tensión entre el sobreajuste y el sobreajuste es un ejemplo de la compensación


de sesgo-varianza, un problema omnipresente en el ajuste de modelos estadísticos.
La varianza se refiere al error de modelado que se produce debido a la elección de
los datos de entrenamiento; es decir, si tuviera que elegir un conjunto diferente de
datos de entrenamiento, el modelo resultante sería diferente. Sesgo se refiere al
error de modelado que se produce porque no ha identificado correctamente el
escenario del mundo real subyacente; este error no desaparecería si simplemente
agregara más datos de entrenamiento. Cuando un modelo flexible está
sobreajustado, la variación aumenta. Puede reducir esto utilizando un modelo más
simple, pero el sesgo puede aumentar debido a la pérdida de flexibilidad en el
modelado de la situación subyacente real. Un enfoque general para manejar esta
compensación es a través devalidación cruzada. Ver “Validación cruzada” en la
página 155 para más detalles.

KNN como motor de funciones

KNN ganó popularidad debido a su simplicidad y naturaleza intuitiva. En términos de


rendimiento, KNN por sí solo no suele competir con técnicas de clasificación más sofisticadas.
Sin embargo, en el ajuste práctico del modelo, KNN se puede utilizar para agregar
"conocimiento local" en un proceso por etapas con otras técnicas de clasificación:

1. KNN se ejecuta sobre los datos y, para cada registro, se deriva una clasificación (o cuasi-
probabilidad de una clase).

2. Ese resultado se agrega como una nueva característica al registro, y luego se ejecuta otro método
de clasificación en los datos. Por tanto, las variables predictoras originales se utilizan dos veces.

Al principio, podría preguntarse si este proceso, dado que usa algunos predictores dos veces,
causa un problema con la multicolinealidad (consulte “Multicolinealidad” en la página 172). Esto
no es un problema, ya que la información que se incorpora al modelo de la segunda etapa es
altamente local, se deriva solo de unos pocos registros cercanos y, por lo tanto, es información
adicional y no redundante.

Puede pensar en este uso por etapas de KNN como una forma de aprendizaje
conjunto, en el que se utilizan múltiples métodos de modelado predictivo
junto con otros. También se puede considerar como una forma de ingeniería
de características en la que el objetivo es derivar características (variables
predictoras) que tienen poder predictivo. A menudo, esto implica una revisión
manual de los datos; KNN ofrece una forma bastante automática de hacer
esto.

K-Vecinos más cercanos | 247


Por ejemplo, considere los datos de vivienda del condado de King. Al fijar el precio de una casa en venta, un
agente de bienes raíces basará el precio en casas similares vendidas recientemente, conocidas como
"comps". En esencia, los agentes inmobiliarios están haciendo una versión manual de KNN: al observar los
precios de venta de casas similares, pueden estimar a qué se venderá una casa. Podemos crear una nueva
característica para un modelo estadístico que imite al profesional inmobiliario aplicando KNN a las ventas
recientes. El valor predicho es el precio de venta y las variables predictoras existentes podrían incluir la
ubicación, el total de pies cuadrados, el tipo de estructura, el tamaño del lote y la cantidad de dormitorios y
baños. La nueva variable predictora (característica) que agregamos a través de KNN es el predictor KNN para
cada registro (análogo a las composiciones de los agentes inmobiliarios). Como estamos prediciendo un
valor numérico, el promedio de laK-Vecinos más cercanos se utiliza en lugar de un voto mayoritario (conocido
como Regresión KNN).

De manera similar, para los datos del préstamo, podemos crear características que representen diferentes
aspectos del proceso de préstamo. Por ejemplo, lo siguienteR El código crearía una característica que
representaría la solvencia de un prestatario:

pedir prestado <- model.matrix(~ -1 + dti + revol_bal + revol_util + open_acc +


delinq_2yrs_zero + pub_rec_zero, datos=préstamo_datos)
pedir prestado <- knn(pedir prestado, prueba=pedir prestado, cl=préstamo_datos[, 'Salir'],
problema=CIERTO, k=20)
problema <- attr(pedir prestado, "problema")
pedir prestado <- si no(pedir prestado == 'defecto', problema, 1 - problema)
resumen(pedir prestado)
Min. 1st Qu. Mediana Significar 3rd Qu. Max.
0,000 0,400 0,500 0,501 0,600 0,950

Con scikit-learn, usamos el predecir_proba método del modelo entrenado para obtener las
probabilidades:

predictores = ['dti', 'revol_bal', 'revol_util', 'open_acc',


'delinq_2yrs_zero', 'pub_rec_zero']
Salir = 'Salir'

X = préstamo_datos[predictores]
y = préstamo_datos[Salir]

knn = KNeighborsClassifier(n_vecinos=20)
knn.encajar(X, y)

préstamo_datos['puntaje_de_prestado'] = knn.predecir_proba(X) [:, 1]


préstamo_datos['puntaje_de_prestado'].describir()

El resultado es una característica que predice la probabilidad de que un prestatario incurra en incumplimiento de acuerdo con su historial

crediticio.

248 | Capítulo 6: Aprendizaje automático estadístico


Ideas claves

• K-Vecinos más cercanos (KNN) clasifica un registro asignándolo a la clase a la que


pertenecen registros similares.

• La similitud (distancia) está determinada por la distancia euclidiana u otras métricas relacionadas.

• El número de vecinos más cercanos con los que comparar un registro, K, está determinado por el
rendimiento del algoritmo en los datos de entrenamiento, utilizando diferentes valores para K.

• Normalmente, las variables predictoras están estandarizadas para que las variables de gran escala
no dominen la métrica de distancia.

• KNN se usa a menudo como una primera etapa en el modelado predictivo, y el valor predicho se agrega
nuevamente a los datos como un vaticinador para modelado de segunda etapa (no KNN).

Modelos de árboles

Modelos de árboles, también llamados Árboles de clasificación y regresión (CART),3 árboles de


decisión, o solo árboles, son un método de clasificación (y regresión) eficaz y popular
desarrollado inicialmente por Leo Breiman y otros en 1984. Modelos de árboles y sus
descendientes más poderosos bosques aleatorios y árboles potenciadosver “Embolsado y el
bosque aleatorio” en la página 259 y "Impulso" en la página 270), forman la base de las
herramientas de modelado predictivo más utilizadas y potentes en ciencia de datos para
regresión y clasificación.

Términos clave para árboles

Partición recursiva
Dividir y subdividir repetidamente los datos con el objetivo de hacer que los
resultados en cada subdivisión final sean lo más homogéneos posible.

Valor dividido
Un valor de predictor que divide los registros en aquellos en los que ese predictor es menor que el
valor de división y en aquellos en los que es más.

Nodo
En el árbol de decisión, o en el conjunto de reglas de ramificación correspondientes, un nodo es la
representación gráfica o de reglas de un valor dividido.

3 El término CART es una marca registrada de Salford Systems relacionada con su implementación específica de modelos de árboles.

Modelos de árboles | 249


Hoja
El final de un conjunto de reglas si-entonces, o ramas de un árbol: las reglas que lo llevan a esa hoja
proporcionan una de las reglas de clasificación para cualquier registro en un árbol.

Pérdida

El número de clasificaciones erróneas en una etapa del proceso de división; cuantas más
pérdidas, más impureza.

Impureza
La medida en que se encuentra una combinación de clases en una subpartición de los datos
(cuanto más mezclada, más impura).

Sinónimo
Heterogeneidad

Antónimos
Homogeneidad, pureza

Poda
El proceso de tomar un árbol completamente desarrollado y cortar progresivamente sus ramas
para reducir el sobreajuste.

Un modelo de árbol es un conjunto de reglas del tipo "si-entonces-si no" que son fáciles de entender e
implementar. A diferencia de la regresión lineal y logística, los árboles tienen la capacidad de descubrir
patrones ocultos correspondientes a interacciones complejas en los datos. Sin embargo, a diferencia de KNN
o Bayes ingenuo, los modelos de árboles simples se pueden expresar en términos de relaciones predictoras
que son fácilmente interpretables.

Árboles de decisión en la investigación de operaciones

El termino árboles de decisión tiene un significado diferente (y más antiguo)


en la ciencia de la decisión y la investigación de operaciones, donde se refiere
a un proceso de análisis de decisiones humanas. En este sentido, los puntos
de decisión, los posibles resultados y sus probabilidades estimadas se
presentan en un diagrama de ramificación, y se elige la ruta de decisión con el
valor máximo esperado.

Un ejemplo simple
Los dos paquetes principales para encajar modelos de árbol en R están rpart y árbol. Utilizando la rpart
paquete, un modelo se ajusta a una muestra de 3000 registros de los datos del préstamo utilizando las variables

pago_inc_ratio y puntaje_prestado (ver “K-Vecinos más cercanos” en la página 238


para una descripción de los datos):

Biblioteca(rpart)
préstamo_árbol <- rpart(Salir ~ puntaje_de_prestado + pago_inc_ratio,
datos=préstamo3000, control=rpart.control(cp=0,005))

250 | Capítulo 6: Aprendizaje automático estadístico


gráfico(préstamo_árbol, uniforme=CIERTO, margen=0,05)
texto(préstamo_árbol)

La sklearn.tree.DecisionTreeClassifier proporciona una implementación de una decisión


árbol de sion. Ladmba El paquete proporciona una función de conveniencia para crear una visualización
dentro de un cuaderno Jupyter:

predictores = ['puntaje_de_prestado', 'pago_inc_ratio']


Salir = 'Salir'

X = préstamo3000[predictores]
y = préstamo3000[Salir]

préstamo_árbol = DecisionTreeClassifier(estado_aleatorio=1, criterio='entropía',


min_impurity_decrease=0,003)
préstamo_árbol.encajar(X, y)
plotDecisionTree(préstamo_árbol, feature_names=predictores,
class_names=préstamo_árbol.clases_)

El árbol resultante se muestra en Figura 6-3. Debido a las diferentes implementaciones, encontrará
que los resultados deR y Pitón no son idénticos; esto se espera. Estas reglas de clasificación se
determinan atravesando un árbol jerárquico, comenzando en la raíz y moviéndose hacia la izquierda
si el nodo es verdadero y hacia la derecha si no, hasta que se alcanza una hoja.

Por lo general, el árbol se traza al revés, por lo que la raíz está en la parte superior y las hojas en la
parte inferior. Por ejemplo, si obtenemos un préstamo conpuntaje_de_prestado de 0,6 y una
pago_inc_ratio de 8.0, terminamos en la hoja más a la izquierda y predecimos que el préstamo se
pagará.

Figura 6-3. Las reglas para un modelo de árbol simple se ajustan a los datos del préstamo

Modelos de árboles | 251


También se puede producir fácilmente una versión impresa del árbol en R:

préstamo_árbol

norte= 3000

nodo), separar, norte, pérdida, yval, (probablemente)


* denota nodo terminal

1) raíz 3000 1445 pagado apagado (0.5183333 0.4816667)


2) puntaje_de_prestado> =0,575 878 261 pagado apagado (0,7027335 0,2972665) *
3) puntaje_de_prestado< 0,575 2122 938 defecto (0,4420358 0,5579642)
6) puntaje_de_prestado> =0,375 1639802 defecto (0,4893228 0,5106772)
12) pago_inc_ratio< 10.42265 1157 547 pagado apagado (0,5272256 0,4727744)
24) pago_inc_ratio< 4.42601 334139 pagado apagado (0,5838323 0,4161677) *
25) pago_inc_ratio> =4.42601 823 408 pagado apagado (0,5042527 0,4957473)
50) puntaje_de_prestado> =0,475 418 190 pagado apagado (0,5454545 0,4545455) *
51) puntaje_de_prestado< 0,475 405 187 defecto (0,4617284 0,5382716) *
13) pago_inc_ratio> =10.42265 482 192 defecto (0.3983402 0.6016598) *
7) puntaje_de_prestado< 0,375 483 136 defecto (0,2815735 0,7184265) *

La profundidad del árbol se muestra con la sangría. Cada nodo corresponde a una clasificación
provisional determinada por el resultado predominante en esa partición. La "pérdida" es el
número de clasificaciones erróneas producidas por la clasificación provisional en una partición.
Por ejemplo, en el nodo 2, hubo 261 clasificaciones erróneas de un total de 878 registros. Los
valores entre paréntesis corresponden a la proporción de registros cancelados o en mora,
respectivamente. Por ejemplo, en el nodo 13, que predice el incumplimiento, más del 60 por
ciento de los registros son préstamos que están en incumplimiento.

La scikit-learn La documentación describe cómo crear una representación de texto de un modelo de


árbol de decisión. Incluimos una función de conveniencia en nuestrodmba paquete:

impresión(textDecisionTree(préstamo_árbol))
--
nodo=0 nodo de prueba: ir al nodo 1 Si 0 <= 0.5750000178813934 demás al nodo 6
nodo=1 nodo de prueba: ir al nodo 2 Si 0 <= 0,32500000298023224 demás al nodo 3
nodo=2 nodo hoja: [[0,785, 0,215]]
nodo=3 nodo de prueba: ir al nodo 4 Si 1 <= 10.42264986038208 demás al nodo 5
nodo=4 nodo hoja: [[0,488, 0.512]]
nodo=5 nodo hoja: [[0,613, 0.387]]
nodo=6 nodo de prueba: ir al nodo 7 Si 1 <= 9.19082498550415 demás al nodo 10
nodo=7 nodo de prueba: ir al nodo 8 Si 0 <= 0,7249999940395355 demás al nodo 9
nodo=8 nodo hoja: [[0,247, 0,753]]
nodo=9 nodo hoja: [[0.073, 0,927]]
nodo=10 nodo hoja: [[0,457, 0.543]]

El algoritmo de particionamiento recursivo

El algoritmo para construir un árbol de decisiones, llamado particionamiento recursivo, es sencillo e


intuitivo. Los datos se particionan repetidamente utilizando valores de predicción que hacen el mejor
trabajo al separar los datos en particiones relativamente homogéneas.Figura 6-4

252 | Capítulo 6: Aprendizaje automático estadístico


muestra las particiones creadas para el árbol en Figura 6-3. La primera regla, representada por regla
1, es puntaje_prestado> = 0.575 y segmenta la parte derecha de la trama. La segunda
regla espuntaje_prestado <0.375 y segmenta la parte izquierda.

Figura 6-4. Las primeras tres reglas para un modelo de árbol simple se ajustan a los datos del préstamo

Supongamos que tenemos una variable de respuesta Y y un conjunto de PAG variables predictoras Xj por
j = 1,⋯, pag. Para una partición A de registros, la partición recursiva encontrará la mejor manera
particionar A en dos subparticiones:

1. Para cada variable predictora Xj:

una. Por cada valorsj de Xj:

I. Divide los registros enA con Xj valores < sj como una partición, y los registros
restantes donde Xj ≥ sj como otra partición.
ii. Medir la homogeneidad de clases dentro de cada subpartición deUNA.

B. Seleccione el valor desj que produce la máxima homogeneidad de clase dentro de la partición.

2. Seleccione la variable Xj y el valor dividido sj que produce la máxima homogeneidad de


clase dentro de la partición.

Modelos de árboles | 253


Ahora viene la parte recursiva:

1. Inicializar A con todo el conjunto de datos.

2. Aplicar el algoritmo de partición para dividir A en dos subparticiones, A1 y A2.


3. Repita el paso 2 en las subparticiones. A1 y A2.

4. El algoritmo termina cuando no se pueden realizar más particiones que mejoren


suficientemente la homogeneidad de las particiones.

El resultado final es una partición de los datos, como en Figura 6-4, excepto en PAG-
dimensiones, con cada partición prediciendo un resultado de 0 o 1 dependiendo del voto
mayoritario de la respuesta en esa partición.

Además de una predicción binaria 0/1, los modelos de árbol pueden


producir una estimación de probabilidad basada en el número de 0 y 1
en la partición. La estimación es simplemente la suma de 0 o 1 en la
partición dividida por el número de observaciones en la partición:

Prob Y = 1 = Número de 1 en la partición


Tamaño de la partición

El problema estimado Y = A continuación, 1 se puede convertir en una decisión


binaria; por ejemplo, establezca la estimación en 1 si Prob (Y = 1)> 0,5.

Medir la homogeneidad o la impureza


Los modelos de árbol crean particiones (conjuntos de registros) de forma recursiva, A, que predicen
un resultado de Y = 0 o Y = 1. Puede ver en el algoritmo anterior que necesitamos una forma de medir
la homogeneidad, también llamada pureza de clase, dentro de una partición. O de manera
equivalente, necesitamos medir la impureza de una partición. La precisión de las predicciones es la
proporciónpag de registros mal clasificados dentro de esa partición, que va de 0 (perfecto) a 0,5
(adivinación puramente aleatoria).

Resulta que la precisión no es una buena medida de impureza. En cambio, dos medidas
comunes para la impureza son laImpureza de gini y entropía de información. Si bien estas (y
otras) medidas de impurezas se aplican a problemas de clasificación con más de dos clases, nos
centramos en el caso binario. La impureza de Gini para un conjunto de registrosA es:

IA = p 1 - pag

La medida de la entropía viene dada por:

IA = - pag Iniciar sesión2 pag - 1 - pag Iniciar sesión2 1 - pag

254 | Capítulo 6: Aprendizaje automático estadístico


Figura 6-5 muestra que la impureza de Gini (reescalada) y las medidas de entropía son similares, con la
entropía dando puntuaciones de impureza más altas para tasas de precisión moderadas y altas.

Figura 6-5. Medidas de impureza y entropía de Gini

Coeficiente GINI

La impureza de Gini no debe confundirse con la Coeficiente GINI. Representan


conceptos similares, pero el coeficiente de Gini se limita al problema de
clasificación binaria y está relacionado con la métrica AUC (ver
“AUC” en la página 226).

La métrica de impurezas se utiliza en el algoritmo de división descrito anteriormente. Para cada


partición propuesta de los datos, se mide la impureza para cada una de las particiones que resultan
de la división. A continuación, se calcula un promedio ponderado y se selecciona la partición (en cada
etapa) que arroje el promedio ponderado más bajo.

Modelos de árboles | 255


Detener el crecimiento del árbol
A medida que el árbol crece, las reglas de división se vuelven más detalladas y el árbol cambia gradualmente
de identificar reglas “grandes” que identifican relaciones reales y confiables en los datos a reglas “pequeñas”
que reflejan solo ruido. Un árbol completamente desarrollado da como resultado hojas completamente
puras y, por lo tanto, una precisión del 100% en la clasificación de los datos sobre los que está entrenado.
Esta precisión es, por supuesto, ilusoria: hemos sobreajustado (ver“Compensación entre sesgo y varianza” en
la página 247) los datos, ajustando el ruido en los datos de entrenamiento, no la señal que queremos
identificar en nuevos datos.

Necesitamos alguna forma de determinar cuándo dejar de cultivar un árbol en una etapa que
se generalizará a nuevos datos. Hay varias formas de dejar de dividirseR y Pitón:

• Evite dividir una partición si una subpartición resultante es demasiado pequeña o si una hoja de terminal
es demasiado pequeña. EnrpartR), estas restricciones son controladas por separado por los parámetros
minplit y minbucket, respectivamente, con valores predeterminados de 20 y 7. En

Pitón's DecisionTreeClassifier, podemos controlar esto usando los parámetros


min_samples_split (defecto 2) y min_samples_leaf (defecto 1).
• No divida una partición si la nueva partición no reduce "significativamente" la impureza. En
rpart, esto está controlado por el parámetro de complejidad cp, que es una medida de cuán
complejo es un árbol: cuanto más complejo, mayor es el valor de cp.
En la práctica, cp se usa para limitar el crecimiento del árbol al agregar una penalización a la
complejidad adicional (divisiones) en un árbol. DecisionTreeClassifier (Pitón) tiene el parámetro
min_impurity_decrease, que limita la división en función de un valor ponderado de disminución de
impurezas. Aquí, valores más pequeños conducirán a árboles más complejos.

Estos métodos involucran reglas arbitrarias y pueden ser útiles para el trabajo exploratorio, pero no
podemos determinar fácilmente los valores óptimos (es decir, valores que maximicen la precisión
predictiva con nuevos datos). Necesitamos combinar la validación cruzada con el cambio sistemático
de los parámetros del modelo o la modificación del árbol mediante la poda.

Controlar la complejidad del árbol en R

Con el parámetro de complejidad, cp, podemos estimar qué tamaño de árbol funcionará mejor con nuevos
datos. Sicp es demasiado pequeño, entonces el árbol se ajustará a los datos, ajustando el ruido y no la señal.
Por otro lado, sicp es demasiado grande, entonces el árbol será demasiado pequeño y tendrá poco poder
predictivo. El predeterminado enrpart es 0.01, aunque para conjuntos de datos más grandes, es probable que
encuentre que es demasiado grande. En el ejemplo anterior,cp estaba configurado para 0,005
ya que el valor predeterminado condujo a un árbol con una sola división. En el análisis exploratorio, basta
con probar algunos valores.

256 | Capítulo 6: Aprendizaje automático estadístico


Determinando el óptimo cp es un ejemplo de la compensación sesgo-varianza. La forma más
común de estimar un buen valor decp es mediante validación cruzada (ver “Validación cruzada”
en la página 155):

1. Divida los datos en conjuntos de entrenamiento y validación (reserva).

2. Haga crecer el árbol con los datos de entrenamiento.

3. Pódalo sucesivamente, paso a paso, grabando cputilizando la capacitación datos) en cada


paso.

4. Tenga en cuenta el cp que corresponde al error mínimo (pérdida) en el validación datos.

5. Reparta los datos en capacitación y validación, y repita el cultivo, la poda y cp


proceso de grabación.
6. Haga esto una y otra vez, y promedie el cps que reflejan un error mínimo para cada árbol.

7. Regrese a los datos originales, o datos futuros, y haga crecer un árbol, deteniéndose en este
óptimo cp valor.

En rpart, puedes usar el argumento cptable para producir una mesa del cp valores y su
error de validación cruzada asociado (xerror en R), a partir del cual puede determinar el cp
valor que tiene el error de validación cruzada más bajo.

Controlar la complejidad del árbol en Pitón

Ni el parámetro de complejidad ni la poda están disponibles en scikit-learnImplementación del árbol de


decisiones. La solución es utilizar la búsqueda de cuadrícula sobre combinaciones de diferentes
valores de parámetros. Por ejemplo, podemos variarmáxima profundidad en el rango de 5 a 30 y
min_samples_split entre 20 y 100. El GridSearchCV método en scikit-
aprender es una forma conveniente de combinar la búsqueda exhaustiva a través de todas las combinaciones con la

validación cruzada. A continuación, se selecciona un conjunto de parámetros óptimo utilizando el rendimiento del
modelo con validación cruzada.

Predecir un valor continuo


Predecir un valor continuo (también denominado regresión) con un árbol sigue la misma lógica
y procedimiento, excepto que la impureza se mide por desviaciones cuadradas de la media
(errores cuadráticos) en cada subpartición, y el desempeño predictivo se juzga por la raíz
cuadrada del error cuadrático medio (RMSE) (ver "Evaluación del modelo" en la página 153) en
cada partición.

scikit-learn tiene el sklearn.tree.DecisionTreeRegressor método para entrenar a un


modelo de regresión de árbol de decisión.

Modelos de árboles | 257


Cómo se utilizan los árboles

Uno de los grandes obstáculos que enfrentan los modeladores predictivos en las organizaciones es la
naturaleza percibida de “caja negra” de los métodos que utilizan, lo que genera oposición por parte
de otros elementos de la organización. En este sentido, el modelo de árbol tiene dos aspectos
atractivos:

• Los modelos de árbol proporcionan una herramienta visual para explorar los datos, para tener
una idea de qué variables son importantes y cómo se relacionan entre sí. Los árboles pueden
capturar relaciones no lineales entre variables predictoras.

• Los modelos de árbol proporcionan un conjunto de reglas que se pueden comunicar de manera eficaz a los no
especialistas, ya sea para su implementación o para "vender" un proyecto de minería de datos.

Sin embargo, en lo que respecta a la predicción, aprovechar los resultados de varios árboles
suele ser más eficaz que utilizar un solo árbol. En particular, los algoritmos de bosque aleatorio
y árbol impulsado casi siempre proporcionan una precisión y un rendimiento predictivos
superiores (consulte“Embolsado y el bosque aleatorio” en la página 259 y "Impulso" en la
página 270), pero se pierden las ventajas antes mencionadas de un solo árbol.

Ideas claves

• Los árboles de decisión producen un conjunto de reglas para clasificar o predecir un resultado.

• Las reglas corresponden a particiones sucesivas de los datos en subparticiones.

• Cada partición, o división, hace referencia a un valor específico de una variable de predicción y divide los
datos en registros donde ese valor de predicción está por encima o por debajo de ese valor de división.

• En cada etapa, el algoritmo de árbol elige la división que minimiza la impureza del resultado
dentro de cada subpartición.

• Cuando no se pueden hacer más divisiones, el árbol está completamente desarrollado y cada nodo
terminal, u hoja, tiene registros de una sola clase; a los nuevos casos que sigan esa ruta de regla
(dividida) se les asignará esa clase.

• Un árbol completamente desarrollado se adapta a los datos y debe podarse para que capture la
señal y no el ruido.

• Los algoritmos de árboles múltiples, como los bosques aleatorios y los árboles potenciados, producen un
mejor rendimiento predictivo, pero pierden el poder comunicativo basado en reglas de los árboles
individuales.

258 | Capítulo 6: Aprendizaje automático estadístico


Otras lecturas
• Equipo de contenido de Analytics Vidhya, "Algoritmos basados en árboles: un tutorial completo
desde cero (en R y Python)", 12 de abril de 2016.

• Terry M. Therneau, Elizabeth J. Atkinson y la Fundación Mayo, “Introducción al


particionamiento recursivo mediante las rutinas RPART”, 11 de abril de 2019.

Embolsado y el bosque aleatorio


En 1906, el estadístico Sir Francis Galton estaba visitando una feria del condado en Inglaterra, en la
que se estaba llevando a cabo un concurso para adivinar el peso vestido de un buey que estaba en
exhibición. Hubo 800 conjeturas, y aunque las conjeturas individuales variaron ampliamente, tanto la
media como la mediana estuvieron dentro del 1% del peso real del buey. James Suro‐ wiecki ha
explorado este fenómeno en su libroLa sabiduría de las multitudes (Doubleday,
2004). Este principio se aplica también a los modelos predictivos: promediar (o tomar la
mayoría de votos) de múltiples modelos, unaconjunto de modelos: resulta ser más preciso que
simplemente seleccionar un modelo.

Términos clave para el ensacado y el bosque aleatorio

Conjunto
Formar una predicción mediante el uso de una colección de modelos.

Sinónimo
Promedio del modelo

Harpillera
Una técnica general para formar una colección de modelos mediante el arranque de los datos.

Sinónimo
Agregación de Bootstrap

Bosque aleatorio
Un tipo de estimación empaquetada basada en modelos de árbol de decisión.

Sinónimo
Árboles de decisión empaquetados

Importancia variable
Una medida de la importancia de una variable predictora en el desempeño del
modelo.

El enfoque de conjunto se ha aplicado a muchos métodos de modelado diferentes, más


públicamente en el Premio Netflix, en el que Netflix ofreció un millón de dólares.

Embolsado y el bosque aleatorio | 259


premio a cualquier concursante que haya ideado un modelo que produzca una mejora del 10% en la
predicción de la calificación que un cliente de Netflix otorgaría a una película. La versión simple de
conjuntos es la siguiente:

1. Desarrolle un modelo predictivo y registre las predicciones para un conjunto de datos dado.

2. Repita para varios modelos con los mismos datos.

3. Para cada registro que se va a predecir, tome un promedio (o un promedio ponderado o un voto
mayoritario) de las predicciones.

Los métodos de conjunto se han aplicado de forma más sistemática y eficaz a los árboles de decisión. Los
modelos de árbol de conjuntos son tan poderosos que proporcionan una forma de construir buenos
modelos predictivos con relativamente poco esfuerzo.

Más allá del simple algoritmo de conjuntos, existen dos variantes principales de modelos de
conjuntos: harpillera y impulsar. En el caso de los modelos de árbol de conjuntos, estos se denominan
bosque aleatorio modelos y árbol potenciado modelos. Esta sección se centra en el ensacado; el
impulso está cubierto en"Impulso" en la página 270.

Harpillera

El ensacado, que significa "agregación bootstrap", fue introducido por Leo Breiman en
1994. Supongamos que tenemos una respuesta Y y PAG variables predictoras = X1, X2,⋯, XPAG con
norte registros.

El ensacado es como el algoritmo básico para conjuntos, excepto que, en lugar de ajustar los distintos
modelos a los mismos datos, cada nuevo modelo se ajusta a un remuestreo de arranque. Aquí está el
algoritmo presentado de manera más formal:

1. Inicializar METRO, el número de modelos a ajustar, y norte, el número de registros a elegir (


n <N). Establecer la iteración m = 1.
2. Realice un remuestreo bootstrap (es decir, con reemplazo) de norte registros de los datos de
entrenamiento para formar una submuestra Ymetro y mel bolso).

3. Entrene un modelo usando Ymetro y metro para crear un conjunto de reglas de decisión F metro .

4. Incrementar el contador de modelos m = m + 1. Si m <= M, vaya al paso 2.

En el caso donde F metro predice la probabilidad Y = 1, la estimación en bolsas viene dada por:

f=1
M f 1 + F 2 + ⋯ + F METRO

260 | Capítulo 6: Aprendizaje automático estadístico


Bosque aleatorio

La bosque aleatorio se basa en aplicar el ensacado a los árboles de decisión, con una extensión
importante: además de muestrear los registros, el algoritmo también muestrea las variables.4
En árboles de decisión tradicionales, para determinar cómo crear una subpartición de una
partición A, el algoritmo hace la elección de la variable y el punto de división minimizando un
criterio como la impureza de Gini (ver “Medición de la homogeneidad o la impureza” en la
página 254). Con bosques aleatorios, en cada etapa del algoritmo, la elección de la variable se
limita a unsubconjunto aleatorio de variables. Comparado con el algoritmo de árbol básico (ver
“El algoritmo de particionamiento recursivo” en la página 252), el algoritmo de bosque aleatorio
agrega dos pasos más: el ensacado discutido anteriormente (ver “Embolsado y el bosque
aleatorio” en la página 259), y el muestreo bootstrap de variables en cada división:

1. Tome una submuestra de bootstrap (con reemplazo) de la registros.

2. Para la primera división, muestrea p <P variables al azar sin reemplazo.


3. Para cada una de las variables muestreadas Xj 1, Xj 2, ..., Xjp, aplicar el algoritmo de
división:
una. Por cada valorsjk de Xjk:

I. Dividir los registros en particiónA, con Xj (k) < sj (k) como una partición y los
registros restantes donde Xjk ≥ sjk como otra partición.

ii. Medir la homogeneidad de clases dentro de cada subpartición deUNA.

B. Seleccione el valor desjk que produce la máxima homogeneidad de clase dentro de la


partición.

4. Seleccione la variable Xjk y el valor dividido sjk que produce la máxima homogeneidad de
clase dentro de la partición.

5. Continúe con la siguiente división y repita los pasos anteriores, comenzando con el paso 2.

6. Continúe con divisiones adicionales, siguiendo el mismo procedimiento hasta que el árbol
crezca.

7. Vuelva al paso 1, tome otra submuestra de arranque y comience el proceso de nuevo.

¿Cuántas variables muestrear en cada paso? Una regla general es elegirPAG dónde PAG
es el número de variables predictoras. El paqueterandomForest implementa el bosque aleatorio
en R. Lo siguiente aplica este paquete a los datos del préstamo (ver “K-Vecinos más cercanos”
en la página 238 para una descripción de los datos):

4 El término bosque aleatorio es una marca comercial de Leo Breiman y Adele Cutler con licencia de Salford Systems. No existe un
nombre estándar que no sea una marca comercial, y el término bosque aleatorio es tan sinónimo del algoritmo como Kleenex lo es
de los pañuelos faciales.

Embolsado y el bosque aleatorio | 261


rf <- randomForest(Salir ~ puntaje_de_prestado + pago_inc_ratio,
datos=préstamo3000)
rf

Llamada:

randomForest(fórmula = Salir ~ puntaje_de_prestado + pago_inc_ratio,


datos = préstamo3000)
Tipo de bosque aleatorio: clasificación
Numero de arboles: 500
No. de variables probadas en cada división: 1

Estimación OOB de la tasa de error: 39,17%


Matriz de confusión:
defecto pagado class.error
defecto 873572 0,39584775
pagado 603 952 0,38778135

En Pitón, usamos el método sklearn.ensemble.RandomForestClassifier:


predictores = ['puntaje_de_prestado', 'pago_inc_ratio']
Salir = 'Salir'

X = préstamo3000[predictores]
y = préstamo3000[Salir]

rf = RandomForestClassifier(n_estimators=500, estado_aleatorio=1, oob_score=Cierto)


rf.encajar(X, y)

De forma predeterminada, se entrenan 500 árboles. Dado que solo hay dos variables en el conjunto de
predictores, el algoritmo selecciona aleatoriamente la variable en la que dividir en cada etapa (es decir, una
submuestra de arranque de tamaño 1).

La fuera de la bolsa (OOB) La estimación del error es la tasa de error de los modelos entrenados,
aplicada a los datos que quedan fuera del conjunto de entrenamiento para ese árbol. Usando la salida
del modelo, el error OOB se puede trazar contra el número de árboles en el bosque aleatorio enR:

error_df = marco de datos(Tasa de error=rfPSerr.rate[,'OOB'],


núm_árboles=1:rfPSntree)
ggplot(error_df, aes(X=núm_árboles, y=Tasa de error)) +
geom_line()

La RandomForestClassifier La implementación no tiene una manera fácil de obtener estimaciones fuera


de la bolsa en función del número de árboles en el bosque aleatorio. Podemos entrenar una
secuencia de clasificadores con un número creciente de árboles y realizar un seguimiento de la
oob_score_ valores. Sin embargo, este método no es eficaz:

262 | Capítulo 6: Aprendizaje automático estadístico


n_estimator = lista(distancia(20, 510, 5))
oobScores = []
por norte en n_estimator:
rf = RandomForestClassifier(n_estimators=norte, criterio='entropía',
máxima profundidad=5, estado_aleatorio=1, oob_score=Cierto)
rf.encajar(X, y)
oobScores.adjuntar(rf.oob_score_)
df = pd.Marco de datos({ 'norte': n_estimator, 'oobScore': oobScores })
df.gráfico(X='norte', y='oobScore')

El resultado se muestra en Figura 6-6. La tasa de error disminuye rápidamente desde más de 0,44
antes de estabilizarse alrededor de 0,385. Los valores predichos se pueden obtener de lapredecir
función y trazada de la siguiente manera en R:

pred <- predecir(rf, problema=CIERTO)


rf_df <- cbind(préstamo3000, pred = pred)
ggplot(datos=rf_df, aes(X=puntaje_de_prestado, y=pago_inc_ratio,
forma=pred, color=pred, Talla=pred)) +
geom_point(alfa=.8) +
scale_color_manual(valores = C('pagado'='# b8e186', 'defecto'='# d95f02')) +
scale_shape_manual(valores = C('pagado'=0, 'defecto'=1)) +
scale_size_manual(valores = C('pagado'=0,5, 'defecto'=2))

En Pitón, podemos crear una trama similar a la siguiente:

predicciones = X.Copiar()
predicciones['predicción'] = rf.predecir(X)
predicciones.cabeza()

higo, hacha = plt.subtramas(figsize=(4, 4))

predicciones.loc[predicciones.predicción=='pagado'].gráfico(
X='puntaje_de_prestado', y='pago_inc_ratio', estilo='.',
marcador de color='ninguno', markeredgecolor='C1', hacha=hacha)
predicciones.loc[predicciones.predicción=='defecto'].gráfico(
X='puntaje_de_prestado', y='pago_inc_ratio', estilo='o',
marcador de color='ninguno', markeredgecolor='C0', hacha=hacha)
hacha.leyenda(['pagado', 'defecto']);
hacha.set_xlim(0, 1)
hacha.set_ylim(0, 25)
hacha.set_xlabel('puntaje_de_prestado')
hacha.set_ylabel('pago_inc_ratio')

Embolsado y el bosque aleatorio | 263


Figura 6-6. Un ejemplo de la mejora en la precisión del bosque aleatorio con la adición
de más árboles.

La trama, que se muestra en Figura 6-7, es bastante revelador sobre la naturaleza del bosque
aleatorio.

El método del bosque aleatorio es un método de "caja negra". Produce predicciones más precisas que
un árbol simple, pero se pierden las reglas de decisión intuitivas del árbol simple. Las predicciones
forestales aleatorias también son algo ruidosas: tenga en cuenta que algunos prestatarios con una
puntuación muy alta, lo que indica una alta calidad crediticia, aún terminan con una predicción de
incumplimiento. Esto es el resultado de algunos registros inusuales en los datos y demuestra el
peligro de sobreajuste por el bosque aleatorio (ver“Compensación entre sesgo y varianza” en la
página 247).

264 | Capítulo 6: Aprendizaje automático estadístico


Figura 6-7. Los resultados previstos del bosque aleatorio aplicados a los datos predeterminados del
préstamo

Importancia variable
El poder del algoritmo de bosque aleatorio se muestra cuando crea modelos predictivos para
datos con muchas características y registros. Tiene la capacidad de determinar
automáticamente qué predictores son importantes y descubrir relaciones complejas entre
predictores correspondientes a términos de interacción (ver"Interacciones y efectos
principales" en la página 174). Por ejemplo, ajuste un modelo a los datos predeterminados del
préstamo con todas las columnas incluidas. Lo siguiente muestra esto enR:

rf_all <- randomForest(Salir ~ ., datos=préstamo_datos, importancia=CIERTO)


rf_all
Llamada:

randomForest(fórmula = Salir ~ ., datos = préstamo_datos, importancia = CIERTO)


Tipo de bosque aleatorio: clasificación
Numero de arboles: 500
No. de variables probadas en cada división: 4

Estimación OOB de la tasa de error: 33,79%

Embolsado y el bosque aleatorio | 265


Matriz de confusión:
pagó la clase predeterminada.
pagado 14676 7995 0,3526532
defecto 7325 15346 0,3231000

Y en Pitón:
predictores = ['préstamo_amnt', 'término', 'anual_inc', 'dti', 'pago_inc_ratio',
'revol_bal', 'revol_util', 'propósito', 'delinq_2yrs_zero',
'pub_rec_zero', 'open_acc', 'calificación', 'emp_length', 'propósito_',
'casa_', 'emp_len_', 'puntaje_de_prestado']
Salir = 'Salir'

X = pd.get_dummies(préstamo_datos[predictores], drop_first=Cierto)
y = préstamo_datos[Salir]

rf_all = RandomForestClassifier(n_estimators=500, estado_aleatorio=1)


rf_all.encajar(X, y)

El argumento importancia = VERDADERO solicita que el randomForest almacenar información


adicional sobre la importancia de diferentes variables. La funciónvarImpPlot
trazará el rendimiento relativo de las variables (en relación con la permutación de esa variable):

varImpPlot(rf_all, tipo=1)
varImpPlot(rf_all, tipo=2)

disminución media de la precisión

disminución media de la impureza del nodo

En Pitón, la RandomForestClassifier recopila información sobre la importancia de las características


durante el entrenamiento y la pone a disposición en el campo feature_importances_:

importancias = rf_all.feature_importances_

La "disminución de Gini" está disponible como feature_importance_ propiedad del clasificador


ajustado. Sin embargo, la reducción de la precisión no está disponible de fábrica paraPitón. Podemos
calcularlo (puntuaciones) usando el siguiente código:

rf = RandomForestClassifier(n_estimators=500)
puntuaciones = defaultdict(lista)

# validar de forma cruzada las puntuaciones en una serie de diferentes divisiones aleatorias de los datos
por _ en distancia(3):
train_X, valid_X, train_y, válido_y = train_test_split(X, y, test_size=0,3)
rf.encajar(train_X, train_y)
acc = métrica.puntuación_de_precisión(válido_y, rf.predecir(valid_X))
por columna en X.columnas:
X_t = valid_X.Copiar()
X_t[columna] = notario público.aleatorio.permutación(X_t[columna].valores)

266 | Capítulo 6: Aprendizaje automático estadístico


shuff_acc = métrica.puntuación_de_precisión(válido_y, rf.predecir(X_t))
puntuaciones[columna].adjuntar((acc-shuff_acc)/acc)

El resultado se muestra en Figura 6-8. Se puede crear un gráfico similar con estePitón
código:

df = pd.Marco de datos({
'característica': X.columnas,
'Disminución de la precisión': [notario público.significar(puntuaciones[columna]) por columna en X.columnas],
'Disminución de Gini': rf_all.feature_importances_,
})
df = df.sort_values('Disminución de la precisión')

higo, ejes = plt.subtramas(ncols=2, figsize=(8, 4.5))


hacha = df.gráfico(amable='barh', X='característica', y='Disminución de la precisión',
leyenda=Falso, hacha=ejes[0])
hacha.set_ylabel('')

hacha = df.gráfico(amable='barh', X='característica', y='Disminución de Gini',


leyenda=Falso, hacha=ejes[1])
hacha.set_ylabel('')
hacha.get_yaxis().set_visible(Falso)

Hay dos formas de medir la importancia de las variables:

• Por la disminución de la precisión del modelo si los valores de una variable se permutan
aleatoriamente (tipo = 1). La permutación aleatoria de los valores tiene el efecto de eliminar todo
el poder predictivo de esa variable. La precisión se calcula a partir de los datos fuera de la bolsa
(por lo que esta medida es efectivamente una estimación con validación cruzada).

• Por la disminución media en la puntuación de impurezas de Gini (ver “Medición de la


homogeneidad o la impureza” en la página 254) para todos los nodos que se dividieron en una
variable (tipo = 2). Esto mide cuánto mejora la pureza de los nodos la inclusión de esa variable.
Esta medida se basa en el conjunto de entrenamiento y, por lo tanto, es menos confiable que
una medida calculada con datos fuera de la bolsa.

Embolsado y el bosque aleatorio | 267


Figura 6-8. La importancia de las variables para el ajuste completo del modelo a los datos del préstamo

268 | Capítulo 6: Aprendizaje automático estadístico


Los paneles superior e inferior de Figura 6-8 muestran una importancia variable según la disminución
en la precisión y en la impureza de Gini, respectivamente. Las variables de ambos paneles se clasifican
según la disminución de la precisión. Las puntuaciones de importancia variable producidas por estas
dos medidas son bastante diferentes.

Dado que la disminución de la precisión es una métrica más confiable, ¿por qué deberíamos usar la
medida de disminución de impurezas de Gini? Por defecto,randomForest calcula solo esta impureza de
Gini: la impureza de Gini es un subproducto del algoritmo, mientras que la precisión del modelo por
variable requiere cálculos adicionales (permutar aleatoriamente los datos y predecir estos datos). En
los casos en que la complejidad computacional es importante, como en un entorno de producción
donde se ajustan miles de modelos, puede que no valga la pena el esfuerzo computacional adicional.
Además, la disminución de Gini arroja luz sobre qué variables está usando el bosque aleatorio para
hacer sus reglas de división (recuerde que esta información, fácilmente visible en un árbol simple, se
pierde efectivamente en un bosque aleatorio).

Hiperparámetros
El bosque aleatorio, como ocurre con muchos algoritmos estadísticos de aprendizaje automático, se
puede considerar un algoritmo de caja negra con perillas para ajustar cómo funciona la caja. Estas
perillas se llamanhiperparámetros, cuáles son los parámetros que debe establecer antes de ajustar
un modelo; no están optimizados como parte del proceso de formación. Si bien los modelos
estadísticos tradicionales requieren opciones (por ejemplo, la elección de predictores para usar en un
modelo de regresión), los hiperparámetros para el bosque aleatorio son más críticos, especialmente
para evitar el sobreajuste. En particular, los dos hiperparámetros más importantes para el bosque
aleatorio son:

nodeize / min_samples_leaf
El tamaño mínimo de los nodos terminales (hojas en el árbol). El valor predeterminado es 1
para clasificación y 5 para regresión enR. La scikit-learn implementación en
Pitón utiliza un valor predeterminado de 1 para ambos.

maxnodes / max_leaf_nodes
El número máximo de nodos en cada árbol de decisión. Por defecto, no hay límite y el
árbol más grande se ajustará sujeto a las restricciones detamaño del nodo. Tenga en cuenta
que en Pitón, usted especifica el número máximo de nodos terminales. Los dos
parámetros están relacionados:

maxnodes = 2max_leaf _nodes - 1

Puede resultar tentador ignorar estos parámetros y simplemente utilizar los valores predeterminados. Sin
embargo, el uso de los valores predeterminados puede provocar un sobreajuste cuando aplica el bosque
aleatorio a datos ruidosos. Cuando aumentasnodeize / min_samples_leaf o establecer maxnodes /
max_leaf_nodes, el algoritmo se ajustará a árboles más pequeños y es menos probable que cree

Embolsado y el bosque aleatorio | 269


reglas predictivas espurias. Validación cruzada (ver“Validación cruzada” en la página 155) se puede utilizar
para probar los efectos de establecer diferentes valores para los hiperparámetros.

Ideas claves

• Los modelos de conjunto mejoran la precisión del modelo al combinar los resultados de muchos
modelos.

• El ensacado es un tipo particular de modelo de conjunto que se basa en ajustar muchos modelos a
muestras de arranque de los datos y promediar los modelos.

• El bosque aleatorio es un tipo especial de ensacado que se aplica a los árboles de decisión. Además
de volver a muestrear los datos, el algoritmo de bosque aleatorio toma muestras de las variables
predictoras al dividir los árboles.

• Un resultado útil del bosque aleatorio es una medida de importancia variable que clasifica a
los predictores en términos de su contribución a la precisión del modelo.

• El bosque aleatorio tiene un conjunto de hiperparámetros que deben ajustarse mediante validación
cruzada para evitar el sobreajuste.

Impulsando

Los modelos de conjuntos se han convertido en una herramienta estándar para el modelado
predictivo. Impulsando es una técnica general para crear un conjunto de modelos. Fue desarrollado
casi al mismo tiempo queembolsarver “Embolsado y el bosque aleatorio” en la página 259). Al igual
que el ensacado, el impulso se usa más comúnmente con árboles de decisión. A pesar de sus
similitudes, el impulso toma un enfoque muy diferente, uno que viene con muchas más campanas y
susurros. Como resultado, mientras que el ensacado se puede hacer con relativamente poco ajuste, el
refuerzo requiere mucho más cuidado en su aplicación. Si estos dos métodos fueran automóviles, el
ensacado podría considerarse un Honda Accord (confiable y estable), mientras que el impulso podría
considerarse un Porsche (poderoso pero requiere más cuidado).

En los modelos de regresión lineal, los residuos a menudo se examinan para ver si se puede mejorar
el ajuste (ver “Gráficos de residuos parciales y no linealidad” en la página 185). Boosting lleva este
concepto mucho más allá y se ajusta a una serie de modelos, en los que cada modelo sucesivo busca
minimizar el error del modelo anterior. Se utilizan habitualmente varias variantes del algoritmo:
Adaboost, aumento de gradiente, y aumento de gradiente estocástico. Este último, el aumento de
gradiente estocástico, es el más general y más utilizado. De hecho, con la elección correcta de
parámetros, el algoritmo puede emular el bosque aleatorio.

270 | Capítulo 6: Aprendizaje automático estadístico


Términos clave para impulsar

Conjunto
Formar una predicción mediante el uso de una colección de modelos.

Sinónimo
Promedio del modelo

Impulsando

Una técnica general para ajustar una secuencia de modelos dando más peso a los
registros con grandes residuos para cada ronda sucesiva.

Adaboost
Una versión inicial de impulso que vuelve a ponderar los datos en función de los residuos.

Aumento de gradiente
Una forma más general de impulso que se proyecta en términos de minimizar una función
de costo.

Impulso del gradiente estocástico


El algoritmo más general para impulsar que incorpora remuestreo de registros y
columnas en cada ronda.

Regularización
Una técnica para evitar el sobreajuste al agregar un término de penalización a la función de costo
en el número de parámetros en el modelo.

Hiperparámetros
Parámetros que deben establecerse antes de ajustar el algoritmo.

El algoritmo de impulso
Hay varios algoritmos de impulso, y la idea básica detrás de todos ellos es esencialmente la
misma. El más fácil de entender es Adaboost, que procede de la siguiente manera:

1. Inicializar METRO, el número máximo de modelos que se ajustarán, y establezca el contador de


iteraciones m = 1. Inicialice los pesos de observación wyo = 1 /norte por yo = 1, 2, ..., NORTE.
Inicializar el modelo de conjunto F0 = 0.

2. Usando los pesos de observación w1, w2, ..., wNORTE, entrenar a un modelo F metro que minimiza el
error ponderado mimetro definido sumando los pesos de las observaciones mal
clasificadas.
registro 1 - em

3. Agregue el modelo al conjunto: Fm = Fmetro - 1 + αmetro F metro dónde αm =


mi
.
metro

Impulso | 271
4. Actualiza los pesos w1, w2, ..., wnorte de modo que se aumenten los pesos para las observaciones
que se clasificaron erróneamente. El tamaño del aumento depende deαmetro, con valores
mayores de αmetro lo que lleva a pesos más grandes.

5. Incrementar el contador de modelos m = m + 1. Si metro ≤ METRO, vaya al paso 2.

La estimación aumentada viene dada por:

F = α1 F 1 + α2 F 2 +⋯ + αMETRO F METRO

Al aumentar las ponderaciones de las observaciones que se clasificaron erróneamente, el algoritmo


obliga a los modelos a entrenar más en los datos para los que tuvo un rendimiento deficiente.
El factor αmetro asegura que los modelos con menor error tengan un mayor peso.

El aumento de gradiente es similar a Adaboost pero presenta el problema como una optimización de una
función de costo. En lugar de ajustar los pesos, el aumento de gradiente ajusta los modelos a un
pseudo-residual, lo que tiene el efecto de entrenar más intensamente en los residuos más
grandes. En el espíritu del bosque aleatorio, el aumento de gradiente estocástico agrega
aleatoriedad al algoritmo al muestrear observaciones y variables predictoras en cada etapa.

XGBoost
El software de dominio público más utilizado para impulsar es XGBoost, una implementación de
impulso de gradiente estocástico desarrollado originalmente por Tianqi Chen y Carlos Guestrin en la
Universidad de Washington. Una implementación computacionalmente eficiente con muchas
opciones, está disponible como un paquete para la mayoría de los principales lenguajes de software
de ciencia de datos. EnR, XGBoost está disponible como el paquete xgboost y con el mismo nombre
también para Pitón.

El método xgboost tiene muchos parámetros que pueden y deben ajustarse (ver
“Hiperparámetros y validación cruzada” en la página 279). Dos parámetros muy importantes son
submuestra, que controla la fracción de observaciones que deben ser muestreadas
en cada iteración, y eta, un factor de contracción aplicado a αmetro en el algoritmo de
impulso (ver “El algoritmo de impulso” en la página 271). Utilizandosubmuestra hace
El impulso actúa como el bosque aleatorio, excepto que el muestreo se realiza sin reemplazo. El
parámetro de contraccióneta es útil para evitar el sobreajuste al reducir el cambio en los pesos (un
cambio más pequeño en los pesos significa que es menos probable que el algoritmo se sobreajuste al
conjunto de entrenamiento). Se aplica lo siguientexgboost en R a los datos del préstamo con solo dos
variables predictoras:

predictores <- matriz de datos(préstamo3000[, C('puntaje_de_prestado', 'pago_inc_ratio')])


etiqueta <- as.numeric(préstamo3000[,'Salir']) - 1
xgb <- xgboost(datos=predictores, etiqueta=etiqueta, objetivo="binario: logístico",
params=lista(submuestra=0,63, eta=0,1), nrounds=100)

272 | Capítulo 6: Aprendizaje automático estadístico


[1] entrenar-error:0.358333
[2] entrenar-error:0.346333
[3] entrenar-error:0.347333
...
[99] entrenar-error:0.239333
[100] entrenar-error:0.241000

Tenga en cuenta que xgboost no admite la sintaxis de la fórmula, por lo que los predictores
deben convertirse a un matriz de datos y la respuesta debe convertirse a variables 0/1. La
objetivo el argumento dice xgboost qué tipo de problema es este; basado en esto,
xgboost elegirá una métrica para optimizar.

En Pitón, xgboost tiene dos interfaces diferentes: a scikit-learn API y una interfaz más
funcional como en R. Para ser coherente con otros scikit-learn métodos, algunos
parámetros fueron renombrados. Por ejemplo,eta se renombra a tasa de aprendizaje;
utilizando eta no fallará, pero no tendrá el efecto deseado:

predictores = ['puntaje_de_prestado', 'pago_inc_ratio']


Salir = 'Salir'

X = préstamo3000[predictores]
y = préstamo3000[Salir]

xgb = Clasificador XGB(objetivo='binario: logístico', submuestra=0,63)


xgb.encajar(X, y)
--
Clasificador XGB(base_score=0,5, aumentador de presión='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gama=0, tasa de aprendizaje=0,1,
max_delta_step=0, máxima profundidad=3, peso_min_niño=1, desaparecido=Ninguno,
n_estimators=100, n_jobs=1, nthread=Ninguno, objetivo='binario: logístico',
estado_aleatorio=0, reg_alpha=0, reg_lambda=1, scale_pos_weight=1, semilla=Ninguno,
silencio=Ninguno, submuestra=0,63, verbosidad=1)

Los valores predichos se pueden obtener de la predecir funcionar en R y, dado que solo
hay dos variables, graficadas frente a los predictores:

pred <- predecir(xgb, nuevos datos=predictores)


xgb_df <- cbind(préstamo3000, pred_default = pred > 0,5, prob_default = pred)
ggplot(datos=xgb_df, aes(X=puntaje_de_prestado, y=pago_inc_ratio,
color=pred_default, forma=pred_default, Talla=pred_default)) +
geom_point(alfa=.8) +
scale_color_manual(valores = C('FALSO'='# b8e186', 'CIERTO'='# d95f02')) +
scale_shape_manual(valores = C('FALSO'=0, 'CIERTO'=1)) +
scale_size_manual(valores = C('FALSO'=0,5, 'CIERTO'=2))

La misma figura se puede crear en Pitón usando el siguiente código:

higo, hacha = plt.subtramas(figsize=(6, 4))

xgb_df.loc[xgb_df.predicción=='pagado'].gráfico(
X='puntaje_de_prestado', y='pago_inc_ratio', estilo='.',
marcador de color='ninguno', markeredgecolor='C1', hacha=hacha)

Impulso | 273
xgb_df.loc[xgb_df.predicción=='defecto'].gráfico(
X='puntaje_de_prestado', y='pago_inc_ratio', estilo='o',
marcador de color='ninguno', markeredgecolor='C0', hacha=hacha)
hacha.leyenda(['pagado', 'defecto']);
hacha.set_xlim(0, 1)
hacha.set_ylim(0, 25)
hacha.set_xlabel('puntaje_de_prestado')
hacha.set_ylabel('pago_inc_ratio')

El resultado se muestra en Figura 6-9. Cualitativamente, esto es similar a las predicciones del bosque
aleatorio; verFigura 6-7. Las predicciones son algo ruidosas en el sentido de que algunos prestatarios
con un puntaje de prestatario muy alto aún terminan con una predicción de incumplimiento.

Figura 6-9. Los resultados previstos de XGBoost aplicados a los datos de incumplimiento del préstamo

Regularización: evitar el sobreajuste


Aplicación ciega de xgboost puede conducir a modelos inestables como resultado de sobreajuste a los
datos de entrenamiento. El problema del sobreajuste es doble:

274 | Capítulo 6: Aprendizaje automático estadístico


• Se degradará la precisión del modelo en datos nuevos que no estén en el conjunto de entrenamiento.

• Las predicciones del modelo son muy variables, lo que genera resultados inestables.

Cualquier técnica de modelado es potencialmente propensa a sobreajustarse. Por ejemplo, si se


incluyen demasiadas variables en una ecuación de regresión, el modelo puede terminar con
predicciones falsas. Sin embargo, para la mayoría de las técnicas estadísticas, el sobreajuste se puede
evitar mediante una selección juiciosa de variables predictoras. Incluso el bosque aleatorio
generalmente produce un modelo razonable sin ajustar los parámetros.

Sin embargo, este no es el caso de xgboost. Encajar xgboost a los datos de préstamo de un conjunto de
formación con todas las variables incluidas en el modelo. EnR, puede hacer esto de la siguiente manera:

semilla <- 400820


predictores <- matriz de datos(préstamo_datos[, -cual(nombres(préstamo_datos) %en%
'Salir')])
etiqueta <- as.numeric(préstamo_datosPSSalir) - 1
test_idx <- muestra(nrow(préstamo_datos), 10000)

xgb_default <- xgboost(datos=predictores[-test_idx,], etiqueta=etiqueta[-test_idx],


objetivo='binario: logístico', nrounds=250, verboso=0)
pred_default <- predecir(xgb_default, predictores[test_idx,])
error_default <- abdominales(etiqueta[test_idx] - pred_default) > 0,5
xgb_defaultPSregistro_evaluación[250,]
significar(error_default)
-
iter train_error
1: 250 0,133043

[1] 0.3529

Usamos la función train_test_split en Pitón para dividir el conjunto de datos en conjuntos de entrenamiento y
de prueba:

predictores = ['préstamo_amnt', 'término', 'anual_inc', 'dti', 'pago_inc_ratio',


'revol_bal', 'revol_util', 'propósito', 'delinq_2yrs_zero',
'pub_rec_zero', 'open_acc', 'calificación', 'emp_length', 'propósito_',
'casa_', 'emp_len_', 'puntaje_de_prestado']
Salir = 'Salir'

X = pd.get_dummies(préstamo_datos[predictores], drop_first=Cierto)
y = pd.Serie([1 Si o == 'defecto' demás 0 por o en préstamo_datos[Salir]])

train_X, valid_X, train_y, válido_y = train_test_split(X, y, test_size=10000)

xgb_default = Clasificador XGB(objetivo='binario: logístico', n_estimators=250,


máxima profundidad=6, reg_lambda=0, tasa de aprendizaje=0,3,
submuestra=1)
xgb_default.encajar(train_X, train_y)

pred_default = xgb_default.predecir_proba(valid_X) [:, 1]

Impulso | 275
error_default = abdominales(válido_y - pred_default) > 0,5
impresión('defecto: ', notario público.significar(error_default))

El conjunto de prueba consta de 10.000 registros muestreados aleatoriamente a partir de los datos completos, y el
conjunto de entrenamiento consta de los registros restantes. El impulso conduce a una tasa de error de solo
13,3% para el conjunto de formación. El conjunto de prueba, sin embargo, tiene una tasa de error mucho mayor de
35,3%. Esto es el resultado del sobreajuste: aunque el impulso puede explicar muy bien la variabilidad en el conjunto
de entrenamiento, las reglas de predicción no se aplican a los datos nuevos.

El impulso proporciona varios parámetros para evitar el sobreajuste, incluidos los parámetros
etao tasa de aprendizaje) y submuestraver “XGBoost” en la página 272). Otro enfoque
esregularización, una técnica que modifica la función de costos con el fin de
penalizar la complejidad del modelo. Los árboles de decisión se ajustan minimizando los criterios de
costo como la puntuación de impureza de Gini (ver“Medición de la homogeneidad o la impureza” en la
página 254). Enxgboost, es posible modificar la función de costo agregando un término que mida la
complejidad del modelo.

Hay dos parámetros en xgboost para regularizar el modelo: alfa y lambda,


que corresponden a la distancia de Manhattan (regularización L1) y la distancia euclidiana al
cuadrado (regularización L2), respectivamente (ver "Métricas de distancia" en la página 241). El
aumento de estos parámetros penalizará los modelos más complejos y reducirá el tamaño de
los árboles que se ajustan. Por ejemplo, vea qué sucede si configuramoslambda a 1000 en R:

xgb_penalty <- xgboost(datos=predictores[-test_idx,], etiqueta=etiqueta[-test_idx],


params=lista(eta=.1, submuestra=.63, lambda=1000),
objetivo='binario: logístico', nrounds=250, verboso=0)
pred_penalty <- predecir(xgb_penalty, predictores[test_idx,])
penalidad_error <- abdominales(etiqueta[test_idx] - pred_penalty) > 0,5
xgb_penaltyPSregistro_evaluación[250,]
significar(penalidad_error)
-
iter train_error
1: 250 0.30966

[1] 0.3286

En el scikit-learn API, los parámetros se llaman reg_alpha y reg_lambda:


xgb_penalty = Clasificador XGB(objetivo='binario: logístico', n_estimators=250,
máxima profundidad=6, reg_lambda=1000, tasa de aprendizaje=0,1,
submuestra=0,63)
xgb_penalty.encajar(train_X, train_y)
pred_penalty = xgb_penalty.predecir_proba(valid_X) [:, 1]
penalidad_error = abdominales(válido_y - pred_penalty) > 0,5
impresión('multa: ', notario público.significar(penalidad_error))

Ahora, el error de entrenamiento es solo un poco más bajo que el error en el conjunto de prueba.

276 | Capítulo 6: Aprendizaje automático estadístico


La predecir método en R ofrece un argumento conveniente, ntreelimit, que obliga solo al primero I
árboles que se utilizarán en la predicción. Esto nos permite comparar directamente las tasas de error
dentro y fuera de muestra a medida que se incluyen más modelos:

error_default <- reps(0, 250)


penalidad_error <- reps(0, 250)
por(yo en 1:250) {
pred_def <- predecir(xgb_default, predictores[test_idx,], ntreelimit=I)
error_default[I] <- significar(abdominales(etiqueta[test_idx] - pred_def) > = 0,5)
pred_pen <- predecir(xgb_penalty, predictores[test_idx,], ntreelimit=I)
penalidad_error[I] <- significar(abdominales(etiqueta[test_idx] - pred_pen) > = 0,5)
}

En Pitón, podemos llamar al predecir_proba método con el ntree_limit argumento:


resultados = []
por I en distancia(1, 250):
train_default = xgb_default.predecir_proba(train_X, ntree_limit=I) [:, 1]
pen_transporte = xgb_penalty.predecir_proba(train_X, ntree_limit=I) [:, 1]
pred_default = xgb_default.predecir_proba(valid_X, ntree_limit=I) [:, 1]
pred_penalty = xgb_penalty.predecir_proba(valid_X, ntree_limit=I) [:, 1]
resultados.adjuntar({
'iteraciones': I,
'tren predeterminado': notario público.significar(abdominales(train_y - train_default) > 0,5),
'tren de penalización': notario público.significar(abdominales(train_y - pen_transporte) > 0,5),
'prueba predeterminada': notario público.significar(abdominales(válido_y - pred_default) > 0,5),
'prueba de penalización': notario público.significar(abdominales(válido_y - pred_penalty) > 0,5),
})

resultados = pd.Marco de datos(resultados)


resultados.cabeza()

La salida del modelo devuelve el error del conjunto de entrenamiento en el componente.


xgb_default $ registro_evaluación. Combinando esto con los errores fuera de la muestra, podemos
graficar los errores frente al número de iteraciones:

errores <- rbind(xgb_defaultPSregistro_evaluación,


xgb_penaltyPSregistro_evaluación,
ata.frame(iter=1:250, train_error=error_default),
marco de datos(iter=1:250, train_error=penalidad_error))
erroresPStipo <- reps(C('tren predeterminado', 'tren de penalización',
'prueba predeterminada', 'prueba de penalización'), reps(250, 4))
ggplot(errores, aes(X=iter, y=train_error, grupo=tipo)) +
geom_line(aes(tipo de línea=tipo, color=tipo))

Podemos usar el pandas método de trazado para crear el gráfico lineal. El eje devuelto por el primer
gráfico nos permite superponer líneas adicionales en el mismo gráfico. Este es un patrón que muchos
dePitónLos paquetes de gráficos admiten:

hacha = resultados.gráfico(X='iteraciones', y='prueba predeterminada')


resultados.gráfico(X='iteraciones', y='prueba de penalización', hacha=hacha)
resultados.gráfico(X='iteraciones', y='tren predeterminado', hacha=hacha)
resultados.gráfico(X='iteraciones', y='tren de penalización', hacha=hacha)

Impulso | 277
El resultado, mostrado en Figura 6-10, muestra cómo el modelo predeterminado mejora constantemente la
precisión del conjunto de entrenamiento, pero en realidad empeora para el conjunto de prueba. El modelo
penalizado no presenta este comportamiento.

Figura 6-10. La tasa de error del XGBoost predeterminado frente a una versión penalizada de XGBoost

Regresión de crestas y lazo


Agregar una penalización a la complejidad de un modelo para ayudar a evitar el sobreajuste se remonta a la
década de 1970. La regresión de mínimos cuadrados minimiza la suma de cuadrados residual (RSS); ver
“Mínimos cuadrados” en la página 148. Regresión de crestas minimiza la suma de los residuos al
cuadrado más un término de penalización que es función del número y tamaño de los coeficientes:

norte
2 2 2
∑ YI - B0 - B1XI -⋯bX pag+ λ b1 +⋯ + B pag
yo = 1

El valor de λ determina cuánto se penalizan los coeficientes; los valores más grandes producen modelos que
tienen menos probabilidades de sobreajustarse a los datos. LaLazo es similar, excepto que utiliza la distancia de
Manhattan en lugar de la distancia euclidiana como término de penalización:

norte
2
∑ YI - B0 - B1XI -⋯bX p+α b1 +⋯ + B pag
yo = 1

278 | Capítulo 6: Aprendizaje automático estadístico


La xgboost parámetros lambda (reg_lambda) y alpha (reg_alpha) están actuando en un
manera similar.

El uso de la distancia euclidiana también se conoce como regularización L2 y el uso de la


distancia Manhattan como regularización L1. Laxgboost parámetros lambda (reg_lambda) y
alpha (reg_alpha) están actuando de manera similar.

Hiperparámetros y validación cruzada


xgboost tiene una enorme variedad de hiperparámetros; ver“Hiperparámetros de XGBoost” en la
página 281 para una discusión. Como se vio en“Regularización: evitar el sobreajuste” en la página 274,
la elección específica puede cambiar drásticamente el ajuste del modelo. Dada una enorme
combinación de hiperparámetros para elegir, ¿cómo debemos guiarnos en nuestra elección? Una
solución estándar a este problema es utilizarvalidación cruzada; ver “Validación cruzada” en la página
155. La validación cruzada divide aleatoriamente los datos enK diferentes grupos, también llamados
pliegues. Para cada pliegue, se entrena un modelo sobre los datos que no están en el pliegue y luego
se evalúa sobre los datos en el pliegue. Esto produce una medida de precisión del modelo en datos
fuera de muestra. El mejor conjunto de hiperparámetros es el que proporciona el modelo con el error
general más bajo calculado al promediar los errores de cada uno de los pliegues.

Para ilustrar la técnica, la aplicamos a la selección de parámetros para xgboost. En este ejemplo, exploramos
dos parámetros: el parámetro de contracción eta (tasa_aprendizaje- ver “XGBoost” en la página 272) y la
profundidad máxima de los árboles máxima profundidad. El parámetro máxima profundidad es la profundidad
máxima de un nodo de hoja a la raíz del árbol con un valor predeterminado de seis. Esto nos brinda otra
forma de controlar el sobreajuste: los árboles profundos tienden a ser más complejos y pueden sobreajustar
los datos. Primero configuramos los pliegues y la lista de parámetros. EnR, esto se hace de la siguiente
manera:

norte <- nrow(préstamo_datos)


número_de_pliegue <- muestra(1:5, norte, reemplazar=CIERTO)
params <- marco de datos(eta = reps(C(.1, .5, .9), 3),
máxima profundidad = reps(C(3, 6, 12), reps(3,3)))

Ahora aplicamos el algoritmo anterior para calcular el error para cada modelo y cada pliegue usando
cinco pliegues:

error <- matriz(0, nrow=9, ncol=5)


por(yo en 1:nrow(params)) {
por(familiares 1:5) {
fold_idx <- (1:norte) [número_de_pliegue == k]
xgb <- xgboost(datos=predictores[-fold_idx,], etiqueta=etiqueta[-fold_idx],
params=lista(eta=params[I, 'eta'],
máxima profundidad=params[I, 'máxima profundidad']),

objetivo='binario: logístico', nrounds=100, verboso=0)


pred <- predecir(xgb, predictores[fold_idx,])
error[I, k] <- significar(abdominales(etiqueta[fold_idx] - pred) > = 0,5)

Impulso | 279
}
}

En el siguiente Pitón código, creamos todas las combinaciones posibles de hiperparámetros y


ajustamos y evaluamos modelos con cada combinación:

idx = notario público.aleatorio.elección(distancia(5), Talla=len(X), reemplazar=Cierto)


error = []
por eta, máxima profundidad en producto([0,1, 0,5, 0,9], [3, 6, 9]):
xgb = Clasificador XGB(objetivo='binario: logístico', n_estimators=250,
máxima profundidad=máxima profundidad, tasa de aprendizaje=eta)

cv_error = []
por k en distancia(5):
fold_idx = idx == k train_X = X.loc[~fold_idx]; train_y = y[~
fold_idx]
valid_X = X.loc[fold_idx]; válido_y = y[fold_idx]

xgb.encajar(train_X, train_y)
pred = xgb.predecir_proba(valid_X) [:, 1]
cv_error.adjuntar(notario público.significar(abdominales(válido_y - pred) > 0,5))
error.adjuntar({
'eta': eta,
'máxima profundidad': máxima profundidad,

'avg_error': notario público.significar(cv_error)


})
impresión(error[-1])
errores = pd.Marco de datos(error)

Usamos la función itertools.product desde el Pitón biblioteca estándar para crear todas
las combinaciones posibles de los dos hiperparámetros.

Dado que estamos instalando 45 modelos en total, esto puede llevar un tiempo. Los errores se almacenan
como una matriz con los modelos a lo largo de las filas y los pliegues a lo largo de las columnas. Usar la
funciónrowMeans, podemos comparar la tasa de error para los diferentes conjuntos de parámetros:

avg_error <- 100 * redondo(fila Significa(error), 4)


cbind(params, avg_error)
eta max_depth avg_error
1 0,1 3 32,90
2 0.5 3 33.43
3 0.9 3 34.36
4 0.1 6 33.08
5 0.5 6 35.60
6 0.9 6 37.82
7 0.1 12 34.56
8 0.5 12 36.83
9 0.9 12 38.18

Cross-validation suggests that using shallower trees with a smaller value of eta/learn
ing_rate yields more accurate results. Since these models are also more stable, the
best parameters to use are eta=0.1 and max_depth=3 (or possibly max_depth=6).

280 | Chapter 6: Statistical Machine Learning


XGBoost Hyperparameters
The hyperparameters for xgboost are primarily used to balance overfitting with the
accuracy and computational complexity. For a complete discussion of the parameters, refer
to the xgboost documentation.

eta/learning_rate
The shrinkage factor between 0 and 1 applied to α in the boosting algorithm. The
default is 0.3, but for noisy data, smaller values are recommended (e.g., 0.1). In
Python, the default value is 0.1.

nrounds/n_estimators
The number of boosting rounds. If eta is set to a small value, it is important to increase
the number of rounds since the algorithm learns more slowly. As long as some
parameters are included to prevent overfitting, having more rounds doesn’t hurt.

max_depth
The maximum depth of the tree (the default is 6). In contrast to the random for‐ est,
which fits very deep trees, boosting usually fits shallow trees. This has the advantage
of avoiding spurious complex interactions in the model that can arise from noisy data.
In Python, the default is 3.

subsample and colsample_bytree


Fraction of the records to sample without replacement and the fraction of predic‐ tors
to sample for use in fitting the trees. These parameters, which are similar to those in
random forests, help avoid overfitting. The default is 1.0.

lambda/reg_lambda and alpha/reg_alpha


The regularization parameters to help control overfitting (see “Regularization:
Avoiding Overfitting” on page 274). Default values for Python are reg_lambda=1
and reg_alpha=0. In R, both values have default of 0.

Boosting | 281
Key Ideas

• Boosting is a class of ensemble models based on fitting a sequence of models, with


more weight given to records with large errors in successive rounds.

• Stochastic gradient boosting is the most general type of boosting and offers the best
performance. The most common form of stochastic gradient boosting uses tree
models.
• XGBoost is a popular and computationally efficient software package for stochas‐ tic
gradient boosting; it is available in all common languages used in data science.

• Boosting is prone to overfitting the data, and the hyperparameters need to be


tuned to avoid this.
• Regularization is one way to avoid overfitting by including a penalty term on the
number of parameters (e.g., tree size) in a model.
• Cross-validation is especially important for boosting due to the large number of
hyperparameters that need to be set.

Summary
This chapter has described two classification and prediction methods that “learn” flexibly
and locally from data, rather than starting with a structural model (e.g., a lin‐ ear
regression) that is fit to the entire data set. K-Nearest Neighbors is a simple pro‐ cess that
looks around at similar records and assigns their majority class (or average value) to the
record being predicted. Trying various cutoff (split) values of predictor variables, tree
models iteratively divide the data into sections and subsections that are increasingly
homogeneous with respect to class. The most effective split values form a path, and also a
“rule,” to a classification or prediction. Tree models are a very power‐ ful and popular
predictive tool, often outperforming other methods. They have given rise to various
ensemble methods (random forests, boosting, bagging) that sharpen the predictive
power of trees.

282 | Chapter 6: Statistical Machine Learning


CAPÍTULO 7

Aprendizaje sin supervisión

El termino aprendizaje sin supervisión se refiere a métodos estadísticos que extraen significado de los
datos sin entrenar un modelo en datos etiquetados (datos donde se conoce un resultado de interés).
En capítulos4 a 6, el objetivo es construir un modelo (conjunto de reglas) para predecir una variable
de respuesta a partir de un conjunto de variables predictoras. Este es el aprendizaje supervisado. Por
el contrario, el aprendizaje no supervisado también construye un modelo de los datos, pero no
distingue entre una variable de respuesta y variables predictoras.

El aprendizaje no supervisado se puede utilizar para lograr diferentes objetivos. En algunos casos, se
puede utilizar para crear una regla predictiva en ausencia de una respuesta etiquetada.Agrupación Se
pueden utilizar métodos para identificar grupos de datos significativos. Por ejemplo, utilizando los
clics web y los datos demográficos de un usuario en un sitio web, es posible que podamos agrupar
diferentes tipos de usuarios. Luego, el sitio web podría personalizarse para estos diferentes tipos.

En otros casos, el objetivo puede ser reducir la dimensión de los datos a un conjunto de
variables más manejable. Este conjunto reducido podría luego usarse como entrada en un
modelo predictivo, como regresión o clasificación. Por ejemplo, podemos tener miles de
sensores para monitorear un proceso industrial. Al reducir los datos a un conjunto más
pequeño de características, es posible que podamos construir un modelo más poderoso e
interpretable para predecir fallas en el proceso que el que se podría construir al incluir flujos de
datos de miles de sensores.

Finalmente, el aprendizaje no supervisado puede verse como una extensión del análisis de
datos exploratorios (ver Capítulo 1) a situaciones en las que se enfrenta a una gran cantidad de
variables y registros. El objetivo es obtener información sobre un conjunto de datos y cómo las
diferentes variables se relacionan entre sí. Las técnicas sin supervisión le permiten examinar y
analizar estas variables y descubrir relaciones.

283
Aprendizaje y predicción no supervisados

El aprendizaje no supervisado puede desempeñar un papel importante en la


predicción, tanto para problemas de regresión como de clasificación. En algunos
casos, queremos predecir una categoría en ausencia de datos etiquetados. Por
ejemplo, podríamos querer predecir el tipo de vegetación en un área a partir de un
conjunto de datos sensoriales satelitales. Dado que no tenemos una variable de
respuesta para entrenar un modelo, la agrupación nos brinda una forma de
identificar patrones comunes y categorizar las regiones.

La agrupación en clústeres es una herramienta especialmente importante para el


"problema del arranque en frío". En este tipo de problemas, como lanzar una nueva
campaña de marketing o identificar posibles nuevos tipos de fraude o spam, es posible que
inicialmente no tengamos ninguna respuesta para entrenar un modelo. Con el tiempo, a
medida que se recopilan los datos, podemos aprender más sobre el sistema y construir un
modelo predictivo tradicional. Pero la agrupación nos ayuda a iniciar el proceso de
aprendizaje más rápidamente al identificar segmentos de población.

El aprendizaje no supervisado también es importante como componente


básico de las técnicas de regresión y clasificación. Con big data, si una
pequeña subpoblación no está bien representada en la población general, es
posible que el modelo entrenado no funcione bien para esa subpoblación. Con
la agrupación, es posible identificar y etiquetar subpoblaciones. Los modelos
separados se pueden adaptar a las diferentes subpoblaciones.
Alternativamente, la subpoblación se puede representar con su propia
característica, lo que obliga al modelo general a considerar explícitamente la
identidad de la subpoblación como un predictor.

Análisis de componentes principales


A menudo, las variables variarán juntas (covariarán), y parte de la variación en una se duplica en
realidad por la variación en otra (por ejemplo, cheques y propinas de restaurantes). El análisis de
componentes principales (PCA) es una técnica para descubrir la forma en que covarían las variables
numéricas.1

1 Esta y las secciones siguientes de este capítulo © 2020 Datastats, LLC, Peter Bruce, Andrew Bruce y Peter
Gedeck; utilizado con permiso.

284 | Capítulo 7: Aprendizaje no supervisado


Términos clave para el análisis de componentes principales

Componente principal
Una combinación lineal de las variables predictoras.

Cargas
Los pesos que transforman los predictores en componentes.

Sinónimo
Pesos

Gráfico de sedimentación

Una gráfica de las varianzas de los componentes, que muestra la importancia relativa de los
componentes, ya sea como varianza explicada o como proporción de varianza explicada.

La idea en PCA es combinar múltiples variables predictoras numéricas en un conjunto más pequeño de
variables, que son combinaciones lineales ponderadas del conjunto original. El conjunto más pequeño de
variables, elcomponentes principales, “Explica” la mayor parte de la variabilidad del conjunto completo de
variables, reduciendo la dimensión de los datos. Las ponderaciones utilizadas para formar los componentes
principales revelan las contribuciones relativas de las variables originales a los nuevos componentes
principales.

PCA fue el primero propuesto por Karl Pearson. En lo que quizás fue el primer artículo sobre
aprendizaje no supervisado, Pearson reconoció que en muchos problemas hay variabilidad en
las variables predictoras, por lo que desarrolló el PCA como una técnica para modelar esta
variabilidad. El PCA puede verse como la versión no supervisada del análisis discriminante
lineal; ver“Análisis discriminante” en la página 201.

Un ejemplo simple
Para dos variables, X1 y X2, hay dos componentes principales ZI (yo = 1 o 2):

Zyo = wI, 1X1 + wI, 2X2

Los pesos wI, 1, wI, 2 se conocen como el componente cargas. Estos transforman el
variables originales en los componentes principales. El primer componente principal,Z1,
es la combinación lineal que mejor explica la variación total. El segundo director
componente, Z2, es ortogonal al primero y explica la mayor parte posible de la
variación restante. (Si hubiera componentes adicionales, cada uno adicional sería
ortogonal a los demás.)

Análisis de componentes principales | 285


También es común calcular los componentes principales sobre las
desviaciones de las medias de las variables predictoras, en lugar de sobre los
valores mismos.

Puede calcular componentes principales en R utilizando la princomp función. Lo siguiente


realiza una PCA sobre los rendimientos del precio de las acciones de Chevron (CVX) y Exxon‐
Mobil (XOM):

oil_px <- sp500_px[, C('CVX', 'XOM')]


pca <- princomp(oil_px)
pcaPScargas

Cargas:
Comp.1 Comp.2
CVX -0,747 0,665
XOM -0,665 -0,747

Comp.1 Comp.2
Cargas SS 1.0 1.0
Proporción Var 0,5 0,5
Var acumulada 0,5 1,0

En Pitón, podemos usar el scikit-learn implementación sklearn.decomposi


ción.PCA:

piezas = PCA(n_componentes=2)
piezas.encajar(oil_px)
cargas = pd.Marco de datos(piezas.componentes_, columnas=oil_px.columnas)
cargas

Las ponderaciones de CVX y XOM para el primer componente principal son –0,747 y
- 0,665, y para el segundo componente principal son 0,665 y –0,747. ¿Cómo interpretar
esto? El primer componente principal es esencialmente un promedio de CVX y XOM, lo
que refleja la correlación entre las dos empresas de energía. El segundo componente
principal mide cuando los precios de las acciones de CVX y XOM divergen.

Es instructivo graficar los componentes principales con los datos. Aquí creamos una
visualización enR:

cargas <- pcaPScargas


ggplot(datos=oil_px, aes(X=CVX, y=XOM)) +
geom_point(alfa=.3) +
stat_ellipse(tipo='norma', nivel=.99) +
geom_abline(interceptar = 0, Pendiente = cargas[2,1]/cargas[1,1]) +
geom_abline(interceptar = 0, Pendiente = cargas[2,2]/cargas[1,2])

286 | Capítulo 7: Aprendizaje no supervisado


El siguiente código crea una visualización similar en Pitón:
def abline(Pendiente, interceptar, hacha):
"" "Calcular las coordenadas de una línea en función de la pendiente y la intersección" ""
x_vals = notario público.formación(hacha.get_xlim())
regreso (x_vals, interceptar + Pendiente * x_vals)

hacha = oil_px.gráfico.dispersión(X='XOM', y='CVX', alfa=0,3, figsize=(4, 4))


hacha.set_xlim(-3, 3)
hacha.set_ylim(-3, 3)
hacha.gráfico(*abline(cargas.loc[0, 'CVX'] / cargas.loc[0, 'XOM'], 0, hacha),
'-', color='C1')
hacha.gráfico(*abline(cargas.loc[1, 'CVX'] / cargas.loc[1, 'XOM'], 0, hacha),
'-', color='C1')

El resultado se muestra en Figura 7-1.

Figura 7-1. Los componentes principales de la rentabilidad de las acciones de Chevron (CVX) y
ExxonMobil (XOM)

Las líneas discontinuas muestran la dirección de los dos componentes principales: el primero está a lo
largo del eje largo de la elipse y el segundo a lo largo del eje corto. Puede ver que la mayor parte de la
variabilidad en los rendimientos de las dos acciones se explica por el primer componente principal.
Esto tiene sentido ya que los precios de las acciones de energía tienden a moverse como grupo.

Análisis de componentes principales | 287


Las ponderaciones del primer componente principal son ambas
negativas, pero invertir el signo de todas las ponderaciones no cambia el
componente principal. Por ejemplo, usar pesos de 0,747 y 0,665 para el
primer componente principal es equivalente a los pesos negativos, al
igual que una línea infinita definida por el origen y 1,1 es lo mismo que
una definida por el origen y –1, –1.

Calcular los componentes principales


Pasar de dos variables a más variables es sencillo. Para el primer componente,
simplemente incluya las variables predictoras adicionales en la combinación lineal,
asignando pesos que optimicen la colección de la covariación de todas las variables
predictoras en este primer componente principal (covarianza es el término estadístico; ver
“Matriz de covarianza” en la página 202). El cálculo de los componentes principales es un método
estadístico clásico, que se basa en la matriz de correlación de los datos o en la matriz de covarianza, y
se ejecuta rápidamente, sin depender de la iteración. Como se señaló anteriormente, el análisis de
componentes principales funciona solo con variables numéricas, no categóricas. El proceso completo
se puede describir de la siguiente manera:

1. Al crear el primer componente principal, PCA llega a la combinación lineal de variables


predictoras que maximiza el porcentaje de la varianza total explicada.
2. Esta combinación lineal se convierte en el primer predictor "nuevo", Z1.

3. PCA repite este proceso, utilizando las mismas variables con diferentes pesos, para crear
comió un segundo nuevo predictor, Z2. La ponderación se realiza de manera que Z1 y Z2 no están
correlacionados.

4. El proceso continúa hasta que tenga tantas variables o componentes nuevos ZI


como variables originales XI.

5. Elija retener tantos componentes como sean necesarios para dar cuenta de la mayor parte de la
variación.

6. El resultado hasta ahora es un conjunto de ponderaciones para cada componente. El paso final es
convertir los datos originales en nuevos puntajes de componentes principales aplicando las
ponderaciones a los valores originales. Estos nuevos puntajes se pueden usar luego como el conjunto
reducido de variables predictoras.

288 | Capítulo 7: Aprendizaje no supervisado


Interpretación de componentes principales

La naturaleza de los componentes principales a menudo revela información sobre la estructura de los
datos. Hay un par de pantallas de visualización estándar para ayudarlo a obtener información sobre
los componentes principales. Uno de esos métodos es ungráfico de sedimentación para visualizar la
importancia relativa de los componentes principales (el nombre deriva de la semejanza de la parcela
con una pendiente de pedregal; aquí, el eje y es el valor propio). La siguienteR
El código muestra un ejemplo para algunas de las principales empresas del S&P 500:

syms <- C( 'AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM',


'SLB', 'POLICÍA', 'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO')
top_sp <- sp500_px[row.names(sp500_px)> ='2005-01-01', syms]
sp_pca <- princomp(top_sp)
gráfico de sedimentación(sp_pca)

La información para crear un gráfico de carga a partir del scikit-learn el resultado está disponible en
varianza_explicada_. Aquí, lo convertimos en un pandas marco de datos y utilícelo para hacer un
gráfico de barras:

syms = ordenado(['AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM', 'SLB', 'POLICÍA',


'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO'])
top_sp = sp500_px.loc[sp500_px.índice > = '2011-01-01', syms]

sp_pca = PCA()
sp_pca.encajar(top_sp)

varianza_explicada = pd.Marco de datos(sp_pca.varianza_explicada_)


hacha = varianza_explicada.cabeza(10).gráfico.bar(leyenda=Falso, figsize=(4, 4))
hacha.set_xlabel('Componente')

Como se vio en Figura 7-2, la varianza del primer componente principal es bastante grande (como
suele ser el caso), pero los otros componentes principales principales son importantes.

Análisis de componentes principales | 289


Figura 7-2. Un diagrama de pantalla para un PCA de las principales acciones del S&P 500

Puede resultar especialmente revelador graficar los pesos de los componentes principales
superiores. Una forma de hacer esto enR es usar el recolectar función de la tidyr paquete en
conjunción con ggplot:

Biblioteca(tidyr)
cargas <- sp_pcaPScargas[,1:5]
cargasPSSímbolo <- nombres de fila(cargas)
cargas <- recolectar(cargas, 'Componente', 'Peso', -Símbolo)
ggplot(cargas, aes(X=Símbolo, y=Peso)) +
geom_bar(estadística='identidad') +
facet_grid(Componente ~ ., escamas='free_y')

Aquí está el código para crear la misma visualización en Pitón:

cargas = pd.Marco de datos(sp_pca.componentes_[0:5,:], columnas=top_sp.columnas)


maxPC = 1.01 * notario público.max(notario público.max(notario público.abdominales(cargas.loc[0:5,:])))

F, ejes = plt.subtramas(5, 1, figsize=(5, 5), sharex=Cierto)


por I, hacha en enumerar(ejes):
pc_loadings = cargas.loc[I,:]
colores = ['C0' Si l > 0 demás 'C1 ' por l en pc_loadings]
hacha.axhline(color='# 888888')

290 | Capítulo 7: Aprendizaje no supervisado


pc_loadings.gráfico.bar(hacha=hacha, color=colores)
hacha.set_ylabel(F"PC {i + 1}")
hacha.set_ylim(-maxPC, maxPC)

Las cargas de los cinco componentes principales se muestran en Figura 7-3. Las cargas para el primer
componente principal tienen el mismo signo: esto es típico de los datos en los que todas las columnas
comparten un factor común (en este caso, la tendencia general del mercado de valores). El segundo
componente captura los cambios de precio de las acciones de energía en comparación con las otras
acciones. El tercer componente es principalmente un contraste en los movimientos de Apple y CostCo.
El cuarto componente contrasta los movimientos de Schlumberger (SLB) con las otras acciones de
energía. Finalmente, el quinto componente está dominado mayoritariamente por empresas
financieras.

Figura 7-3. Las cargas para los cinco componentes principales principales de la rentabilidad del precio de las acciones.

Análisis de componentes principales | 291


¿Cuántos componentes elegir?

Si su objetivo es reducir la dimensión de los datos, debe decidir cuántos


componentes principales seleccionar. El enfoque más común es utilizar una
regla ad hoc para seleccionar los componentes que explican "la mayor parte"
de la varianza. Puede hacer esto visualmente a través de la gráfica de pantalla,
como, por ejemplo, enFigura 7-2. Alternativamente, puede seleccionar los
componentes superiores de manera que la varianza acumulada exceda un
umbral, como el 80%. Además, puede inspeccionar las cargas para determinar
si el componente tiene una interpretación intuitiva. La validación cruzada
proporciona un método más formal para seleccionar el número de
componentes significativos (ver“Validación cruzada” en la página 155 para
más).

Análisis de correspondencia

PCA no se puede utilizar para datos categóricos; sin embargo, una técnica algo relacionada es
análisis de correspondencia. El objetivo es reconocer asociaciones entre categorías o entre
características categóricas. Las similitudes entre el análisis de correspondencia y el análisis de
componentes principales se encuentran principalmente bajo el capó: el álgebra matricial para el
escalado de dimensiones. El análisis de correspondencia se utiliza principalmente para el análisis
gráfico de datos categóricos de baja dimensión y no se utiliza de la misma forma que el PCA para la
reducción de dimensiones como paso preparatorio con big data.

La entrada puede verse como una tabla, con filas que representan una variable y columnas
otra, y las celdas representan recuentos de registros. La salida (después de algún álgebra
matricial) es unabiplot: Una gráfica de dispersión con ejes escalados (y con porcentajes que
indican cuánta varianza se explica por esa dimensión). El significado de las unidades en los ejes
no está conectado intuitivamente a los datos originales, y el valor principal del diagrama de
dispersión es ilustrar gráficamente las variables que están asociadas entre sí (por proximidad
en el diagrama). Ver por ejemplo,Figura 7-4, en el que las tareas del hogar se ordenan según si
se realizan de forma conjunta o individual (eje vertical), y si la responsabilidad principal es la
esposa o el esposo (eje horizontal). El análisis de correspondencia tiene muchas décadas, al
igual que el espíritu de este ejemplo, a juzgar por la asignación de tareas.

Hay una variedad de paquetes para el análisis de correspondencia en R. Aquí usamos el


paquete California:

ca_analysis <- California(tareas de la casa)


gráfico(ca_analysis)

292 | Capítulo 7: Aprendizaje no supervisado


En Pitón, podemos usar el Príncipe paquete, que implementa el análisis de
correspondencia utilizando el scikit-learn API:

California = Príncipe.California(n_componentes=2)

California = California.encajar(tareas de la casa)

California.plot_coordinates(tareas de la casa, figsize=(6, 6))

Figura 7-4. Representación gráfica de un análisis de correspondencia de datos de tareas de la casa

Análisis de componentes principales | 293


Ideas claves

• Los componentes principales son combinaciones lineales de las variables predictoras (solo
datos numéricos).

• Los componentes principales se calculan para minimizar la correlación entre componentes,


reduciendo la redundancia.

• Un número limitado de componentes normalmente explicará la mayor parte de la varianza en la


variable de resultado.

• El conjunto limitado de componentes principales se puede utilizar en lugar de los predictores


originales (más numerosos), reduciendo la dimensionalidad.

• Una técnica superficialmente similar para datos categóricos es el análisis de correspondencia, pero
no es útil en un contexto de big data.

Otras lecturas
Para obtener una descripción detallada del uso de la validación cruzada en los componentes
principales, consulte Rasmus Bro, K. Kjeldahl, AK Smilde y Henk AL Kiers, "Validación cruzada de
modelos de componentes: una mirada crítica a los métodos actuales", Química analítica y bioanalítica
390, no. 5 (2008).

Agrupación de K-medias

La agrupación en clústeres es una técnica para dividir los datos en diferentes grupos, donde los registros de
cada grupo son similares entre sí. Un objetivo de la agrupación en clústeres es identificar grupos de datos
significativos y significativos. Los grupos se pueden utilizar directamente, analizar con más profundidad o
pasar como una característica o un resultado a un modelo de clasificación o regresión predictiva.K-significa
fue el primer método de agrupamiento que se desarrolló; todavía se usa ampliamente, debido a su
popularidad a la relativa simplicidad del algoritmo y su capacidad para escalar a grandes conjuntos de datos.

Términos clave para la agrupación en clústeres de K-medias

Grupo
Un grupo de registros que son similares.

Media del grupo


El vector de medias variables para los registros de un conglomerado.

K
El número de clústeres.

294 | Capítulo 7: Aprendizaje no supervisado


K-significa divide los datos en K clusters minimizando la suma de las distancias al
cuadrado de cada registro al significar de su clúster asignado. Esto se conoce como el
suma de cuadrados dentro del conglomerado o dentro del clúster SS. K-Significa que no garantiza que los
grupos tendrán el mismo tamaño, pero encuentra los grupos que están mejor separados.

Normalización

Es típico normalizar (estandarizar) las variables continuas restando la


media y dividiendo por la desviación estándar. De lo contrario, las
variables con gran escala dominarán el proceso de agrupamiento (ver
“Estandarización (normalización, puntuaciones z)” en la página 243).

Un ejemplo simple
Empiece por considerar un conjunto de datos con norte registros y solo dos variables, X y y. Suponer
queremos dividir los datos en K = 4 racimos. Esto significa asignar cada registroXI, yI
a un racimo k. Dada una asignación de nortek registros para agrupar k, el centro del cúmulo
Xk, yk es la media de los puntos del clúster:

1
Xk = ∑ XI
nortek
I∈
Grupo k
1
ȳk= ∑ yI
nortek
I∈
Grupo k

Media del grupo

Al agrupar registros con múltiples variables (el caso típico), el término


media del grupo se refiere no a un solo número sino al vector de medias
de las variables.

La suma de cuadrados dentro de un grupo viene dada por:

SSk= ∑ XI - X k2+ yI - y 2 k
I∈
Grupo k

K-medias encuentra la asignación de registros que minimiza la suma de cuadrados dentro del
conglomerado en los cuatro conglomerados SS1 + SS2 + SS3 + SS4:

4
∑ SSk
k=1

Agrupación de K-medias | 295


Un uso típico de la agrupación en clústeres es localizar clústeres separados y naturales en los
datos. Otra aplicación es dividir los datos en un número predeterminado de grupos separados,
donde se utiliza la agrupación para garantizar que los grupos sean lo más diferentes posible
entre sí.

Por ejemplo, supongamos que queremos dividir los rendimientos diarios de las acciones en cuatro grupos. K-
significa que la agrupación en clústeres se puede utilizar para separar los datos en las mejores agrupaciones. Tenga en cuenta

que los rendimientos diarios de las acciones se informan de una manera que, de hecho, está estandarizada, por lo que no es

necesario normalizar los datos. EnR, K-significa que la agrupación se puede realizar utilizando el

k significa función. Por ejemplo, lo siguiente encuentra cuatro grupos basados en dos variables: los
rendimientos diarios de las acciones de ExxonMobil (XOM) y Chevron (CVX):

df <- sp500_px[row.names(sp500_px)> ='2011-01-01', C('XOM', 'CVX')]


km <- k significa(df, centros=4)

Usamos el sklearn.cluster.KMeans método de scikit-learn en Pitón:


df = sp500_px.loc[sp500_px.índice > = '2011-01-01', ['XOM', 'CVX']]
k significa = KMeans(n_clusters=4).encajar(df)

La asignación de grupo para cada registro se devuelve como el grupo componente (R):

> dfPSgrupo <- factor(kmPSgrupo)


> cabeza(df)
XOM Clúster CVX
2011-01-03 0.73680496 0.2406809 2
2011-01-04 0.16866845 -0.5845157 1
2011-01-05 0.02663055 0.4469854 2
2011-01-06 0.24855834 -0.9197513 1
2011-01-07 0.33732892 0.1805111 2
2011-01-10 0.00000000 -0.4641675 1

En scikit-learn, las etiquetas de grupo están disponibles en el etiquetas_ campo:

df['grupo'] = k significa.etiquetas_df.
cabeza()

Los primeros seis registros se asignan al clúster 1 o al clúster 2. También se devuelven las
medias de los clústeres (R):

> centros <- marco de datos(grupo=factor(1:4), kmPScentros)


> centros
grupo XOM CVX
1 1 -0,3284864 -0,5669135
2 2 0,2410159 0,3342130
3 3 -1.1439800 -1.7502975
4 4 0,9568628 1,3708892

296 | Capítulo 7: Aprendizaje no supervisado


En scikit-learn, los centros de clúster están disponibles en el cluster_centers_ campo:

centros = pd.Marco de datos(k significa.cluster_centers_, columnas=['XOM', 'CVX'])


centros

Los clústeres 1 y 3 representan mercados "a la baja", mientras que los clústeres 2 y 4 representan "mercados
al alza".

Como el K-significa que el algoritmo utiliza puntos de partida aleatorios, los resultados pueden diferir
entre ejecuciones posteriores y diferentes implementaciones del método. En general, debe verificar
que las fluctuaciones no sean demasiado grandes.

En este ejemplo, con solo dos variables, es sencillo visualizar los clústeres y sus
medios:
ggplot(datos=df, aes(X=XOM, y=CVX, color=grupo, forma=grupo)) +
geom_point(alfa=.3) +
geom_point(datos=centros, aes(X=XOM, y=CVX), Talla=3, carrera=2)

La diagrama de dispersión marino La función facilita el color (matiz) y estiloestilo) los puntos
por una propiedad:

higo, hacha = plt.subtramas(figsize=(4, 4))


hacha = sns.gráfico de dispersión(X='XOM', y='CVX', matiz='grupo', estilo='grupo',
hacha=hacha, datos=df)
hacha.set_xlim(-3, 3)
hacha.set_ylim(-3, 3)
centros.gráfico.dispersión(X='XOM', y='CVX', hacha=hacha, s=50, color='negro')

La trama resultante, que se muestra en Figura 7-5, muestra las asignaciones de grupos y las medias
de grupos. Tenga en cuenta queK-means asignará registros a grupos, incluso si esos grupos no están
bien separados (lo que puede ser útil si necesita dividir registros en grupos de manera óptima).

Agrupación de K-medias | 297


Figura 7-5. Los grupos de K-medias aplicados a la rentabilidad diaria de las acciones de ExxonMobil y
Chevron (los centros de los grupos están resaltados con símbolos negros)

Algoritmo de K-medias

En general, K-Los medios se pueden aplicar a un conjunto de datos con pag variables X1, ..., Xpag. Si bien la

solución exacta para K-medios es computacionalmente muy difícil, los algoritmos heurísticos pro‐
vide una forma eficiente de calcular una solución localmente óptima.

El algoritmo comienza con una especificación del usuario. K y un conjunto inicial de medias de clúster
y luego itera los siguientes pasos:

1. Asigne cada registro a la media del conglomerado más cercana medida por la distancia al cuadrado.

2. Calcule las nuevas medias del conglomerado en función de la asignación de registros.

El algoritmo converge cuando la asignación de registros a los clústeres no cambia.

Para la primera iteración, debe especificar un conjunto inicial de medias de clúster. Por lo general,
esto se hace asignando aleatoriamente cada registro a uno de losK grupos y luego encontrar los
medios de esos grupos.

Dado que no se garantiza que este algoritmo encuentre la mejor solución posible, se recomienda
ejecutar el algoritmo varias veces utilizando diferentes muestras aleatorias para inicializar el
algoritmo. Cuando se utiliza más de un conjunto de iteraciones, elK-significa que el resultado viene
dado por la iteración que tiene la suma de cuadrados más baja dentro del clúster.

298 | Capítulo 7: Aprendizaje no supervisado


La nstart parámetro al R función k significa le permite especificar el número de inicios aleatorios
para intentarlo. Por ejemplo, se ejecuta el siguiente códigoK-significa encontrar 5 grupos
usando 10 diferentes medios de grupo inicial:

syms <- C( 'AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM', 'SLB', 'POLICÍA',
'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO')
df <- sp500_px[row.names(sp500_px) > = '2011-01-01', syms]
km <- k significa(df, centros=5, nstart=10)

La función devuelve automáticamente la mejor solución de los 10 puntos de partida diferentes.


Puedes usar el argumentoiter.max para establecer el número máximo de iteraciones, se permite
el algoritmo para cada inicio aleatorio.

La scikit-learn el algoritmo se repite 10 veces de forma predeterminada (n_init). El argumento


max_iter (predeterminado 300) se puede utilizar para controlar el número de iteraciones:

syms = ordenado(['AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM', 'SLB', 'POLICÍA',


'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO'])
top_sp = sp500_px.loc[sp500_px.índice > = '2011-01-01', syms]
k significa = KMeans(n_clusters=5).encajar(top_sp)

Interpretando los clústeres

Una parte importante del análisis de conglomerados puede involucrar la interpretación de los
conglomerados. Los dos resultados más importantes dek significa son los tamaños de los conglomerados y
las medias del conglomerado. Para el ejemplo de la subsección anterior, los tamaños de los clústeres
resultantes vienen dados por esteR mando:

kmPSTalla
[1] 106 186 285 288 266

En Pitón, podemos usar el colecciones Contador class de la biblioteca estándar para obtener
esta información. Debido a las diferencias en la implementación y la aleatoriedad
inherente del algoritmo, los resultados variarán:

de colecciones importar Contador


Contador(k significa.etiquetas_)

Encimera({4: 302, 2: 272, 0: 288, 3: 158, 1: 111})

Los tamaños de los conglomerados están relativamente equilibrados. Los conglomerados desequilibrados pueden
ser el resultado de valores atípicos distantes o de grupos de registros muy distintos del resto de los datos; ambos
pueden justificar una mayor inspección.

Agrupación de K-medias | 299


Puede trazar los centros de los grupos utilizando el recolectar función en conjunto con
ggplot:

centros <- as.data.frame(t(centros))


nombres(centros) <- pegar("Grupo", 1:5)
centrosPSSímbolo <- nombres de fila(centros)
centros <- recolectar(centros, 'Grupo', 'Significar', -Símbolo)
centrosPSColor = centrosPSSignificar > 0
ggplot(centros, aes(X=Símbolo, y=Significar, llenar=Color)) +
geom_bar(estadística='identidad', posición='identidad', ancho=0,75) +
facet_grid(Grupo ~ ., escamas='free_y')

El código para crear esta visualización en Pitón es similar a lo que usamos para PCA:

centros = pd.Marco de datos(k significa.cluster_centers_, columnas=syms)

F, ejes = plt.subtramas(5, 1, figsize=(5, 5), sharex=Cierto)


por I, hacha en enumerar(ejes):
centrar = centros.loc[I,:]
maxPC = 1.01 * notario público.max(notario público.max(notario público.abdominales(centrar)))

colores = ['C0' Si l > 0 demás 'C1 ' por l en centrar]


hacha.axhline(color='# 888888')
centrar.gráfico.bar(hacha=hacha, color=colores)
hacha.set_ylabel(F'Clúster {i + 1}')
hacha.set_ylim(-maxPC, maxPC)

La trama resultante se muestra en Figura 7-6 y revela la naturaleza de cada grupo. Por ejemplo, los
grupos 4 y 5 corresponden a días en los que el mercado está a la baja y al alza, respectivamente. Los
clústeres 2 y 3 se caracterizan por días de mercado alcista para las acciones de consumo y días de
mercado a la baja para las acciones de energía, respectivamente. Por último, el grupo 1 captura los
días en los que las existencias de energía subieron y las de los consumidores bajaron.

300 | Capítulo 7: Aprendizaje no supervisado


Figura 7-6. Las medias de las variables en cada conglomerado ("medias del conglomerado")

Agrupación de K-medias | 301


Análisis de conglomerados versus PCA

La gráfica de las medias de los conglomerados es similar en espíritu a mirar las


cargas para el análisis de componentes principales (PCA); ver“Interpretación de los
componentes principales” en la página 289. Una distinción importante es que, a
diferencia de la PCA, el signo de las medias del grupo es significativo. PCA identifica
las principales direcciones de variación, mientras que el análisis de conglomerados
encuentra grupos de registros ubicados uno cerca del otro.

Seleccionar el número de clústeres

La K-significa que el algoritmo requiere que especifique el número de clústeres K. A veces, la


aplicación determina el número de clústeres. Por ejemplo, una empresa que administra una fuerza de
ventas puede querer agrupar a los clientes en "personas" para enfocar y guiar las llamadas de ventas.
En tal caso, las consideraciones administrativas dictarían el número de segmentos de clientes
deseados; por ejemplo, dos podrían no producir una diferenciación útil de clientes, mientras que ocho
podrían ser demasiados para administrar.

En ausencia de un número de conglomerados dictado por consideraciones prácticas o de gestión, se


podría utilizar un enfoque estadístico. No existe un método estándar único para encontrar el "mejor"
número de conglomerados.

Un enfoque común, llamado método del codo, es identificar cuándo el conjunto de conglomerados
explica "la mayor parte" de la varianza en los datos. Agregar nuevos grupos más allá de este conjunto
contribuye relativamente poco en la varianza explicada. El codo es el punto donde la varianza
acumulada explicada se aplana después de subir abruptamente, de ahí el nombre del método.

Figura 7-7 muestra el porcentaje acumulado de varianza explicado para los datos
predeterminados para el número de conglomerados que van de 2 a 15. ¿Dónde está el codo en
este ejemplo? No hay un candidato obvio, ya que el aumento incremental de la varianza
explicado cae gradualmente. Esto es bastante típico en los datos que no tienen grupos bien
definidos. Este es quizás un inconveniente del método del codo, pero revela la naturaleza de los
datos.

302 | Capítulo 7: Aprendizaje no supervisado


Figura 7-7. El método del codo aplicado a los datos de existencias.

En R, la k significa La función no proporciona un solo comando para aplicar el método del codo,
pero se puede aplicar fácilmente desde la salida de k significa como se muestra aquí:

pct_var <- marco de datos(pct_var = 0,


num_clusters = 2:14)
totalss <- k significa(df, centros=14, nstart=50, iter.max=100)PStotss
por (yo en 2:14) {
kmCluster <- k significa(df, centros=I, nstart=50, iter.max=100)
pct_var[I-1, 'pct_var'] <- kmClusterPSentre / totalss
}

Para el KMeans resultado, obtenemos esta información de la propiedad inercia_. Después de la


conversión a pandas marco de datos, podemos utilizar su gráfico método para crear el gráfico:

inercia = []
por n_clusters en distancia(2, 14):
k significa = KMeans(n_clusters=n_clusters, estado_aleatorio=0).encajar(top_sp)
inercia.adjuntar(k significa.inercia_ / n_clusters)

inercias = pd.Marco de datos({'n_clusters': distancia(2, 14), 'inercia': inercia})


hacha = inercias.gráfico(X='n_clusters', y='inercia')
plt.xlabel('Número de agrupaciones (k)')
plt.etiqueta('Distancias cuadradas promedio dentro de los conglomerados')

Agrupación de K-medias | 303


plt.ylim((0, 1.1 * inercias.inercia.max()))
hacha.leyenda().set_visible(Falso)

Al evaluar cuántos conglomerados retener, quizás la prueba más importante sea la siguiente: ¿qué
probabilidad hay de que los conglomerados se repliquen en nuevos datos? ¿Los grupos son
interpretables y se relacionan con una característica general de los datos o simplemente reflejan una
instancia específica? Puede evaluar esto, en parte, mediante validación cruzada; ver“Validación
cruzada” en la página 155.

En general, no existe una regla única que guíe de manera confiable cuántos clústeres
producir.

Hay varias formas más formales de determinar el número de conglomerados


en función de la teoría estadística o de la información. Por ejemplo,
Robert Tibshirani, Guenther Walther y Trevor Hastie proponen una estadística de
"brecha" basado en la teoría estadística para identificar el codo. Para la mayoría de
las aplicaciones, un enfoque teórico probablemente no sea necesario, ni siquiera
apropiado.

Ideas claves

• El número de clústeres deseados, K, es elegido por el usuario.

• El algoritmo desarrolla agrupaciones asignando registros iterativamente a la media de agrupación más


cercana hasta que las asignaciones de agrupaciones no cambien.

• Las consideraciones prácticas suelen dominar la elección de K; no hay un número óptimo de


conglomerados determinado estadísticamente.

Agrupación jerárquica
Agrupación jerárquica es una alternativa a K-significa que pueden producir clústeres muy
diferentes. La agrupación jerárquica permite al usuario visualizar el efecto de especificar
diferentes números de agrupaciones. Es más sensible a la hora de descubrir grupos o registros
distantes o aberrantes. La agrupación jerárquica también se presta a una visualización gráfica
intuitiva, lo que facilita la interpretación de las agrupaciones.

304 | Capítulo 7: Aprendizaje no supervisado


Términos clave para la agrupación en clústeres jerárquica

Dendrograma
Una representación visual de los registros y la jerarquía de los clústeres a los que
pertenecen.

Distancia
Una medida de lo cerca que uno registro es a otro.

Disimilitud
Una medida de lo cerca que uno grupo es a otro.

La flexibilidad de la agrupación en clústeres jerárquica tiene un costo, y la agrupación jerárquica no se


adapta bien a grandes conjuntos de datos con millones de registros. Incluso para datos de tamaño modesto
con solo decenas de miles de registros, la agrupación jerárquica puede requerir recursos informáticos
intensivos. De hecho, la mayoría de las aplicaciones de la agrupación jerárquica se centran en conjuntos de
datos relativamente pequeños.

Un ejemplo simple
La agrupación jerárquica funciona en un conjunto de datos con norte registros y pag variables y se basa en
dos bloques de construcción básicos:

• Una métrica de distancia Dyo, j para medir la distancia entre dos registros I y j.

• Una métrica de disimilitud DA, B para medir la diferencia entre dos grupos A y
B basado en las distancias Dyo, j entre los miembros de cada grupo.

Para aplicaciones que involucran datos numéricos, la opción más importante es la métrica de
disimilaridad. La agrupación jerárquica comienza estableciendo cada registro como su propio grupo y
se repite para combinar los grupos menos diferentes.

En R, la hclust La función se puede utilizar para realizar agrupaciones jerárquicas. Una gran diferencia
ferencia con hclust versus k significa es que opera en las distancias por pares Dyo, j
en lugar de los datos en sí. Puede calcularlos usando eldist función. Para examen-
Por ejemplo, lo siguiente aplica la agrupación jerárquica a los rendimientos de las acciones para un conjunto de
empresas:

syms1 <- C('GOOGL', 'AMZN', 'AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM', 'SLB',
'POLICÍA', 'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO')
# take transpose: para agrupar empresas, necesitamos las acciones a lo largo de las filas
df <- t(sp500_px[row.names(sp500_px) > = '2011-01-01', syms1])
D <- dist(df)
hcl <- hclust(D)

Agrupación jerárquica | 305


Los algoritmos de agrupamiento agruparán los registros (filas) de un marco de datos. Dado que
queremos agrupar las empresas, necesitamostransponert) el marco de datos y coloque las acciones a
lo largo de las filas y las fechas a lo largo de las columnas.

La scipy El paquete ofrece varios métodos diferentes para la agrupación


jerárquica en el scipy.cluster.hierarchy módulo. Aquí usamos elenlace funciona con
el método "completo":
syms1 = ['AAPL', 'AMZN', 'AXP', 'POLICÍA', 'COSTO', 'CSCO', 'CVX', 'GOOGL', 'HD',
'INTC', 'JPM', 'MSFT', 'SLB', 'TGT', 'USB', 'WFC', 'WMT', 'XOM']
df = sp500_px.loc[sp500_px.índice > = '2011-01-01', syms1].transponer()

Z = enlace(df, método='completo')

El dendrograma
La agrupación jerárquica se presta a una visualización gráfica natural como un árbol, conocido
como dendrograma. El nombre proviene de las palabras griegas dendroárbol) y grama
(dibujo). EnR, puede producir esto fácilmente usando el gráfico mando:

gráfico(hcl)

Podemos usar el dendrograma método para trazar el resultado de la enlace funcionar en


Pitón:
higo, hacha = plt.subtramas(figsize=(5, 5))
dendrograma(Z, etiquetas=df.índice, hacha=hacha, color_threshold=0)
plt.xticks(rotación=90)
hacha.set_ylabel('distancia')

El resultado se muestra en Figura 7-8 (tenga en cuenta que ahora estamos trazando
empresas que son similares entre sí, no días). Las hojas del árbol corresponden a los
registros. La longitud de la rama en el árbol indica el grado de disimilitud entre los grupos
correspondientes. Los rendimientos de Google y Amazon son bastante diferentes entre sí
y los rendimientos de las otras acciones. Las acciones de petróleo (SLB, CVX, XOM, COP)
están en su propio grupo, Apple (AAPL) lo está por sí mismo, y el resto son similares entre
sí.

306 | Capítulo 7: Aprendizaje no supervisado


Figura 7-8. Un dendrograma de acciones

En contraste con K-significa que no es necesario especificar previamente el número de clústeres.


Gráficamente, puede identificar diferentes números de grupos con una línea horizontal que se desliza
hacia arriba o hacia abajo; un grupo se define donde la línea horizontal se cruza con las líneas
verticales. Para extraer un número específico de clústeres, puede utilizar elcutree función:

cutree(hcl, k=4)
GOOGL AMZN AAPL MSFT CSCO INTC CVX XOM SLB POLICÍA JPM WFC
123333 4 4 4 4 3 3
COSTE USB AXP WMT TGT HD
333333

Agrupación jerárquica | 307


En Pitón, logras lo mismo con el fcluster método:
miembro = fcluster(Z, 4, criterio='maxclust')
miembro = pd.Serie(miembro, índice=df.índice)
por clave, Articulo en miembro.agrupar por(miembro):
impresión(F"{clave}: {',' .join (item.index)}")

El número de clústeres a extraer se establece en 4, y puede ver que Google y Amazon pertenecen
cada uno a su propio clúster. Todas las reservas de petróleo pertenecen a otro grupo. Las poblaciones
restantes están en el cuarto grupo.

El algoritmo aglomerativo
El algoritmo principal para la agrupación jerárquica es el aglomerante algoritmo, que fusiona
de forma iterativa clústeres similares. El algoritmo de aglomeración comienza con cada registro
que constituye su propio grupo de registro único y luego crea grupos cada vez más grandes. El
primer paso es calcular las distancias entre todos los pares de registros.

Por cada par de registros X1, X2, ..., Xpag y y1, y2, ..., ypag , medimos la distancia
entre los dos registros, Dx, y, usando una métrica de distancia (ver "Métricas de distancia" en la página
241). Por ejemplo, podemos usar la distancia euclidiana:

2 +⋯ + Xpag - ypag 2
dx, y = X1 - y 12 + X2 - y2

Pasamos ahora a la distancia entre grupos. Considere dos gruposA y B, cada uno con un dis‐
tintivo conjunto de registros, A = a1, a2, ..., ametro y B = b1, B2, ..., Bq. Podemos medir la
diferencia entre los grupos DA, B utilizando las distancias entre las mem‐
bers de A y los miembros de B.

Una medida de disimilitud es la vinculación completa método, que es la distancia máxima


entre todos los pares de registros entre A y B:

DA, B = max daI, Bj para todos los pares yo, j

Esto define la disimilitud como la mayor diferencia entre todos los pares.

308 | Capítulo 7: Aprendizaje no supervisado


Los principales pasos del algoritmo aglomerativo son:

1. Cree un conjunto inicial de agrupaciones con cada agrupación que consta de un solo registro para todos
los registros de los datos.

2. Calcule la diferencia corriente continuak, Cℓ entre todos los pares de grupos k, ℓ.

3. Fusionar los dos clústeres Ck y Cℓ que son menos diferentes según lo medido por
corriente continuak, Cℓ.

4. Si nos queda más de un clúster, regrese al paso 2. De lo contrario, hemos


terminado.

Medidas de disimilitud
Hay cuatro medidas comunes de disimilitud: vinculación completa, vinculación simple,
vinculación promedio, y varianza mínima. Estas (más otras medidas) están respaldadas
por la mayoría del software de agrupamiento jerárquico, incluido hclust y enlace. El método
de vinculación completo definido anteriormente tiende a producir agrupaciones con
miembros similares. El método de enlace único es la distancia mínima entre los registros
en dos grupos:

DA, B = min daI, Bj para todos los pares yo, j

Este es un método "codicioso" y produce agrupaciones que pueden contener elementos


bastante dispares. El método de enlace promedio es el promedio de todos los pares de
distancias y representa un compromiso entre los métodos de enlace simple y completo. Por
último, el método de varianza mínima, también denominadoWard's método, es similar a K-
significa ya que minimiza la suma de cuadrados dentro del clúster (ver “Agrupación de K-
medias” en la página 294).

Figura 7-9 aplica la agrupación jerárquica utilizando las cuatro medidas para los rendimientos de las
acciones de ExxonMobil y Chevron. Para cada medida, se retienen cuatro grupos.

Agrupación jerárquica | 309


Figura 7-9. Una comparación de medidas de disimilitud aplicadas a los datos de stock.

Los resultados son sorprendentemente diferentes: la medida de vinculación única asigna casi
todos los puntos a un solo grupo. Excepto por el método de varianza mínima (R: Ward.D;
Pitón: pabellón), todas las medidas terminan con al menos un grupo con solo unos pocos
puntos periféricos. El mtodo de varianza mnima es muy similar alK-significa racimo;
Comparar conFigura 7-5.

Ideas claves

• La agrupación en clústeres jerárquica comienza con cada registro de su propio clúster.

• Progresivamente, los clústeres se unen a los clústeres cercanos hasta que todos los registros pertenecen a
un solo clúster (el algoritmo de aglomeración).

• El historial de aglomeraciones se conserva y se traza, y el usuario (sin especificar el número de


conglomerados de antemano) puede visualizar el número y la estructura de los conglomerados en
diferentes etapas.

• Las distancias entre grupos se calculan de diferentes formas, todas basándose en el conjunto de todas las
distancias entre registros.

310 | Capítulo 7: Aprendizaje no supervisado


Agrupación en clústeres basada en modelos

Métodos de agrupamiento como agrupamiento jerárquico y K-Los medios se basan en la heurística y


se basan principalmente en la búsqueda de grupos cuyos miembros estén cerca unos de otros,
medidos directamente con los datos (sin modelo de probabilidad involucrado). En los últimos 20 años,
se ha dedicado un esfuerzo significativo a desarrollaragrupación en clústeres basada en modelos
métodos. Adrian Raftery y otros investigadores de la Universidad de Washington hicieron
contribuciones críticas a la agrupación en clústeres basada en modelos, incluida la teoría y el
software. Las técnicas se basan en la teoría estadística y proporcionan formas más rigurosas de
determinar la naturaleza y el número de conglomerados. Podrían usarse, por ejemplo, en casos en los
que podría haber un grupo de registros que son similares entre sí pero no necesariamente cercanos
entre sí (por ejemplo, acciones tecnológicas con alta variación de rendimientos), y otro grupo de
registros que son similares y también cercanos (por ejemplo, acciones de servicios públicos con baja
variación).

Distribución normal multivariante


Los métodos de agrupación basados en modelos más utilizados se basan en el normal
multivariante distribución. La distribución normal multivariante es una generalización de la nor‐
distribución mal a un conjunto de pag variables X1, X2, ..., Xpag. La distribución está definida por un
conjunto de medios μ = μ1, μ2, ..., μ y una matriz de covarianza Σ. La matriz de covarianza es una
medida de cómo las variables se correlacionan entre sí (ver "Matriz de covarianza" en
página 202 para obtener detalles sobre la covarianza). La matriz de covarianzaΣ consiste en pag varian‐

ces σ2,1 σ2,2 ..., σ2 pag y covarianzas σyo, j para todos los pares de variables I ≠ j. Con las variables
colocada a lo largo de las filas y duplicada a lo largo de las columnas, la matriz se ve así:

σ12σ1, 2 ⋯ σ1, pag


σ2, 1 σ22⋯ σ2, pag
Σ=
⋮ ⋮⋱ ⋮
σpag, 1 σ2
pag, 2 ⋯
σ2pag

Tenga en cuenta que la matriz de covarianza es simétrica alrededor de la diagonal desde la parte superior izquierda a

inferior derecha. Desdeσyo, j = σ Ji, solo hay pag × pag - 1/2 términos de covarianza. En total, la
matriz de covarianza tienepag × pag - 1/2 + pag parámetros. La distribución se denota
por:

X1, X2, ..., Xpag ∼ nortepag μ, Σ

Agrupación basada en modelos | 311


Esta es una forma simbólica de decir que todas las variables están distribuidas normalmente y que la
distribución general está completamente descrita por el vector de medias de las variables y la matriz
de covarianza.

Figura 7-10 muestra los contornos de probabilidad para una distribución normal multivariante
para dos variables X y Y (el contorno de probabilidad 0,5, por ejemplo, contiene el 50% de la
distribución).

Los medios son μx = 0,5 y μy = - 0.5, y la matriz de covarianza es:

11
Σ=
12

Desde la covarianza σxy es positivo, X y Y están correlacionados positivamente.

Figura 7-10. Contornos de probabilidad para una distribución normal bidimensional

Mezclas de normales
La idea clave detrás de la agrupación en clústeres basada en modelos es que se supone que cada registro se
distribuye como uno de los K distribuciones normales multivariadas, donde K es el numero de

312 | Capítulo 7: Aprendizaje no supervisado


racimos. Cada distribución tiene una media diferenteμ y matriz de covarianza Σ. Para
ejemplo, si tiene dos variables, X y Y, luego cada fila XI, YI se modela como una
muestra de uno de los K distribuciones normales multivariadas
N μ1, Σ1, N μ2, Σ2, ..., N μK, ΣK.

R tiene un paquete muy rico para la agrupación en clústeres basada en modelos llamado mclust, originalmente
desarrollado por Chris Fraley y Adrian Raftery. Con este paquete, podemos aplicar la agrupación en clústeres basada
en modelos a los datos de devolución de existencias que analizamos previamente utilizandoK-medios y agrupamiento
jerárquico:

>Biblioteca(mclust)
>df <- sp500_px[row.names(sp500_px) > = '2011-01-01', C('XOM', 'CVX')]
>mcl <- Mclust(df)
>resumen(mcl)
Mclust VEE (elipsoidal, igual forma y orientación) modelo con 2 componentes:

log.likelihood n df BIC ICL


- 2255.134 1131 9 -4573.546 -5076.856

Tabla de agrupamiento:
12
963 168

scikit-learn tiene el sklearn.mixture.GaussianMixture clase para basado en modelo


agrupamiento:

df = sp500_px.loc[sp500_px.índice > = '2011-01-01', ['XOM', 'CVX']]


mclust = Mezcla Gaussiana(n_componentes=2).encajar(df)
mclust.bic(df)

Si ejecuta este código, notará que el cálculo lleva mucho más tiempo que otros
procedimientos. Extraer las asignaciones de clúster mediante elpredecir
función, podemos visualizar los clusters:

grupo <- factor(predecir(mcl)PSclasificación)


ggplot(datos=df, aes(X=XOM, y=CVX, color=grupo, forma=grupo)) +
geom_point(alfa=.8)

Aquí está el Pitón código para crear una figura similar:

higo, hacha = plt.subtramas(figsize=(4, 4))


colores = [F'C {c}' por C en mclust.predecir(df)]
df.gráfico.dispersión(X='XOM', y='CVX', C=colores, alfa=0,5, hacha=hacha)
hacha.set_xlim(-3, 3)
hacha.set_ylim(-3, 3)

La trama resultante se muestra en Figura 7-11. Hay dos grupos: un grupo en el


medio de los datos y un segundo grupo en el borde exterior de los datos. Esto es
muy diferente de los clusters obtenidos usandoK-medio (Figura 7-5) y agrupación
jerárquica (Figura 7-9), que encuentran clústeres compactos.

Agrupación basada en modelos | 313


Figura 7-11. Se obtienen dos grupos para los datos de devolución de existencias utilizandomclust

Puede extraer los parámetros a las distribuciones normales utilizando el resumen


función:
> resumen(mcl, parámetros=CIERTO)PSsignificar
[,1] [,2]
XOM 0.05783847 -0.04374944
CVX 0,07363239 -0,21175715
> resumen(mcl, parámetros=CIERTO)PSdiferencia
,, 1
XOM CVX
XOM 0.3002049 0.3060989
CVX 0.3060989 0.5496727
,, 2

XOM CVX
XOM 1.046318 1.066860
CVX 1.066860 1.915799

314 | Capítulo 7: Aprendizaje no supervisado


En Pitón, obtienes esta información del medio_ y covarianzas_ propiedades del
resultado:
impresión('Significar')

impresión(mclust.medio_)
impresión('Covarianzas ')
impresión(mclust.covarianzas_)

Las distribuciones tienen medias y correlaciones similares, pero la segunda distribución tiene
varianzas y covarianzas mucho mayores. Debido a la aleatoriedad del algoritmo, los resultados
pueden variar ligeramente entre diferentes ejecuciones.

Los racimos de mclust pueden parecer sorprendentes, pero de hecho, ilustran la naturaleza estadística del
método. El objetivo de la agrupación en clústeres basada en modelos es encontrar el conjunto de
distribuciones normales multivariadas que mejor se ajuste. Los datos de stock parecen tener una forma de
aspecto normal: vea los contornos deFigura 7-10. De hecho, sin embargo, los rendimientos de las acciones
tienen una distribución de cola más larga que una distribución normal. Para manejar esto,mclust ajusta una
distribución a la mayor parte de los datos, pero luego ajusta una segunda distribución con una varianza
mayor.

Seleccionar el número de clústeres

a diferencia de K-medios y agrupamiento jerárquico, mclust selecciona automáticamente el número


de clústeres en R (en este caso, dos). Para ello, elige el número de clústeres para los queCriterios de
información bayesianos (BIC) tiene el valor más grande (BIC es similar a AIC; consulte “Selección de
modelo y regresión escalonada” en la página 156). BIC funciona seleccionando el modelo que mejor
se ajusta con una penalización por el número de parámetros del modelo. En el caso de la agrupación
en clústeres basada en modelos, agregar más clústeres siempre mejorará el ajuste a expensas de
introducir parámetros adicionales en el modelo.

Tenga en cuenta que, en la mayoría de los casos, el BIC suele minimizarse. Los
autores de lamclust El paquete decidió definir BIC para tener el signo opuesto para
facilitar la interpretación de los gráficos.

mclust se adapta a 14 modelos diferentes con un número creciente de componentes y elige un


modelo óptimo automáticamente. Puede trazar los valores BIC de estos modelos usando una
función enmclust:

gráfico(mcl, qué='BIC', pedir=FALSO)

El número de conglomerados, o el número de diferentes modelos normales multivariados


(componentes), se muestra en el eje x (ver Figura 7-12).

Agrupación basada en modelos | 315


Figura 7-12. Valores BIC para 14 modelos de datos de devolución de existencias con un número creciente
de componentes

La Mezcla Gaussiana la implementación, por otro lado, no probará varias


combinaciones. Como se muestra aquí, es sencillo ejecutar múltiples combinaciones
usandoPitón. Esta implementación define BIC como de costumbre. Por lo tanto, el
valor BIC calculado será positivo y debemos minimizarlo.
resultados = []
tipos_covarianza = ['completo', 'atado', 'diag', 'esférico']
por n_componentes en distancia(1, 9):
por tipo_covarianza en tipos_covarianza:
mclust = Mezcla Gaussiana(n_componentes=n_componentes, arranque en caliente=Cierto,
tipo_covarianza=tipo_covarianza)
mclust.encajar(df)
resultados.adjuntar({
'bic': mclust.bic(df),
'n_componentes': n_componentes,
'tipo_covarianza': tipo_covarianza,
})

316 | Capítulo 7: Aprendizaje no supervisado


resultados = pd.Marco de datos(resultados)

colores = ['C0', 'C1', 'C2', 'C3']


estilos = ['C0-','C1:','C0-.', 'C1--']

higo, hacha = plt.subtramas(figsize=(4, 4))


por I, tipo_covarianza en enumerar(tipos_covarianza):
subconjunto = resultados.loc[resultados.tipo_covarianza == tipo_covarianza,:]
subconjunto.gráfico(X='n_componentes', y='bic', hacha=hacha, etiqueta=tipo_covarianza,
amable='línea', estilo=estilos[I])

Con el arranque en caliente argumento, el cálculo reutilizará la información del


ajuste anterior. Esto acelerará la convergencia de los cálculos posteriores.

Esta gráfica es similar a la gráfica de codo que se usa para identificar el número de conglomerados
para elegir. K-significa, excepto que el valor que se traza es BIC en lugar del porcentaje de varianza
explicado (ver Figura 7-7). Una gran diferencia es que, en lugar de una línea,mclust
muestra 14 líneas diferentes! Esto es porquemclust en realidad, se ajusta a 14 modelos diferentes para
cada tamaño de clúster y, en última instancia, elige el modelo que mejor se ajusta. Mezcla gaussiana
implementa menos enfoques, por lo que el número de líneas será solo cuatro.

Por que mclust ¿Se ajustan a tantos modelos para determinar el mejor conjunto de normas
multivariadas? Es porque hay diferentes formas de parametrizar la matriz de covarianza.Σ para
ajustar un modelo. En su mayor parte, no necesita preocuparse por los detalles de los modelos
y simplemente puede usar el modelo elegido pormclust. En este ejemplo, de acuerdo con BIC,
tres modelos diferentes (llamados VEE, VEV y VVE) dan el mejor ajuste usando dos
componentes.

La agrupación en clústeres basada en modelos es un área de estudio rica y en rápido


desarrollo, y la cobertura en este texto abarca solo una pequeña parte del campo. De
hecho, elmclust El archivo de ayuda tiene actualmente 154 páginas. Navegar por los
matices de la agrupación en clústeres basada en modelos es probablemente más esfuerzo
del que se necesita para la mayoría de los problemas que encuentran los científicos de
datos.

Las técnicas de agrupación en clústeres basadas en modelos tienen algunas limitaciones. Los
métodos requieren una suposición subyacente de un modelo para los datos, y los resultados del
conglomerado dependen en gran medida de esa suposición. Los requisitos de cálculo son más altos
incluso que la agrupación jerárquica, lo que dificulta la ampliación a grandes datos. Finalmente, el
algoritmo es más sofisticado y menos accesible que el de otros métodos.

Agrupación basada en modelos | 317


Ideas claves

• Se supone que los conglomerados se derivan de diferentes procesos de generación de datos con diferentes
distribuciones de probabilidad.

• Se ajustan diferentes modelos, asumiendo diferentes números de distribuciones


(típicamente normales).

• El método elige el modelo (y el número asociado de conglomerados) que se ajusta bien a los
datos sin utilizar demasiados parámetros (es decir, sobreajuste).

Otras lecturas
Para obtener más detalles sobre la agrupación en clústeres basada en modelos, consulte la mclust y Mezcla Gaussiana
documentación.

Variables categóricas y de escala


Las técnicas de aprendizaje no supervisadas generalmente requieren que los datos se escalen
adecuadamente. Esto es diferente de muchas de las técnicas de regresión y clasificación en las
que la escala no es importante (una excepción esK-Vecinos más cercanos; ver“K- Vecinos más
cercanos” en la página 238).

Términos clave para escalar datos

Escalada
Aplastando o expandiendo datos, generalmente para traer múltiples variables a la misma escala.

Normalización
Un método de escalado: restar la media y dividir por la desviación
estándar.

Sinónimo
Estandarización

La distancia de Gower
Un algoritmo de escala aplicado a datos categóricos y numéricos mixtos para llevar todas las
variables a un rango de 0 a 1.

Por ejemplo, con los datos de préstamos personales, las variables tienen unidades y magnitudes muy
diferentes. Algunas variables tienen valores relativamente pequeños (p. Ej., Número de años empleados),
mientras que otras tienen valores muy grandes (p. Ej., Monto del préstamo en dólares). Si el

318 | Capítulo 7: Aprendizaje no supervisado


los datos no se escalan, entonces el PCA, K-medias, y otros métodos de agrupamiento estarán
dominados por las variables con valores grandes e ignorarán las variables con valores
pequeños.

Los datos categóricos pueden plantear un problema especial para algunos procedimientos de agrupación. Al igual que con

K-Vecinos más cercanos, las variables de factor desordenado generalmente se convierten en un conjunto de
variables binarias (0/1) usando una codificación en caliente (ver “Un codificador activo” en la página 242). No
solo es probable que las variables binarias estén en una escala diferente de otros datos, sino que el hecho de
que las variables binarias tengan solo dos valores puede resultar problemático con técnicas como PCA yK-
medio.

Escalar las variables


Las variables con escalas y unidades muy diferentes deben normalizarse adecuadamente antes de
aplicar un procedimiento de agrupamiento. Por ejemplo, apliquemosk significa a un conjunto de datos
de impagos de préstamos sin normalizar:

valores predeterminados <- préstamo_datos[préstamo_datosPSSalir=='defecto',]


df <- valores predeterminados[, C('préstamo_amnt', 'anual_inc', 'revol_bal', 'open_acc',
'dti', 'revol_util')]
km <- k significa(df, centros=4, nstart=10)
centros <- marco de datos(Talla=kmPSTalla, kmPScentros)
redondo(centros, digitos=2)

tamaño préstamo_amnt anual_inc revol_bal open_acc dti revol_util


1 52 22570.19 489783.40 85161.35 13.33 6.91 59,65
2 1192 21856,38 165473,54 38935,88 12,61 13,48 63,67
3 13902 10606.48 42500.30 10280.52 9,59 17,71 58.11
4 7525 18282.25 83458.11 19653.82 11,66 16,77 62.27

Aquí está el correspondiente Pitón código:

valores predeterminados = préstamo_datos.loc[préstamo_datos['Salir'] == 'defecto',]


columnas = ['préstamo_amnt', 'anual_inc', 'revol_bal', 'open_acc',
'dti', 'revol_util']

df = valores predeterminados[columnas]

k significa = KMeans(n_clusters=4, estado_aleatorio=1).encajar(df)


cuenta = Encimera(k significa.etiquetas_)

centros = pd.Marco de datos(k significa.cluster_centers_, columnas=columnas)


centros['Talla'] = [cuenta[I] por I en distancia(4)]
centros

Las variables anual_inc y revol_bal dominan los conglomerados, y los conglomerados tienen
tamaños muy diferentes. El grupo 1 tiene solo 52 miembros con ingresos comparativamente
altos y saldo de crédito renovable.

Un enfoque común para escalar las variables es convertirlas a z-puntajes


restando la media y dividiendo por la desviación estándar. Esto se denomina

Variables categóricas y de escala | 319


Estandarización o normalizaciónver “Estandarización (normalización, puntuaciones z)” en la página 243 para
obtener más información sobre el uso z-puntuaciones):

z=x-X
s

Vea lo que sucede con los clústeres cuando k significa se aplica a los datos normalizados:

df0 <- escala(df)


km0 <- k significa(df0, centros=4, nstart=10)
centros0 <- escala(km0PScentros, centrar=FALSO,
escala=1 / attr(df0, 'escalado: escala'))
centros0 <- escala(centros0, centrar= -attr(df0, 'escalado: centro'), escala=FALSO)
centros0 <- marco de datos(Talla=km0PSTalla, centros0)
redondo(centros0, digitos=2)

tamaño préstamo_amnt anual_inc revol_bal open_acc dti revol_util


1 7355 10467.65 51134.87 11523.31 7.48 15.78 77,73
2 5309 10363.43 53523.09 6038.26 8.68 11.32 30,70
3 3713 25894.07 116185.91 32797.67 12.41 16.22 66,14
4 6294 13361.61 55596.65 16375.27 14.25 24.23 59,61

En Pitón, nosotros podemos usar scikit-learn's Escalador estándar. La transformación_inversa


El método permite convertir los centros de los conglomerados a la escala original:

escalador = preprocesamiento.Escalador estándar()


df0 = escalador.fit_transform(df * 1.0)

k significa = KMeans(n_clusters=4, estado_aleatorio=1).encajar(df0)


cuenta = Encimera(k significa.etiquetas_)

centros = pd.Marco de datos(escalador.transformación_inversa(k significa.cluster_centers_),


columnas=columnas)
centros['Talla'] = [cuenta[I] por I en distancia(4)]
centros

Los tamaños de los conglomerados están más equilibrados y los conglomerados no están dominados por
anual_inc y revol_bal, revelando una estructura más interesante en los datos. Tenga en cuenta
que los centros se reescalan a las unidades originales en el código anterior. Si los hubiéramos
dejado sin escalar, los valores resultantes estarían en términos dez-puntajes y, por lo tanto,
sería menos interpretable.

La escala también es importante para PCA. Utilizando laz-puntajes equivale a


usar la matriz de correlación (ver "Correlación" en la página 30) en lugar de la
matriz de covarianza en el cálculo de los componentes principales. El software
para calcular PCA generalmente tiene una opción para usar la matriz de
correlación (enR, la princomp la función tiene el argumento
cor).

320 | Capítulo 7: Aprendizaje no supervisado


Variables dominantes

Incluso en los casos en que las variables se miden en la misma escala y reflejan con precisión la importancia
relativa (por ejemplo, el movimiento de los precios de las acciones), a veces puede ser útil cambiar la escala
de las variables.

Supongamos que agregamos Google (GOOGL) y Amazon (AMZN) al análisis en “Interpretación de los
componentes principales” en la página 289. Vemos como se hace esto enR debajo:

syms <- C('GOOGL', 'AMZN', 'AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM',
'SLB', 'POLICÍA', 'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO')
top_sp1 <- sp500_px[row.names(sp500_px) > = '2005-01-01', syms]
sp_pca1 <- princomp(top_sp1)
gráfico de sedimentación(sp_pca1)

En Pitón, obtenemos el diagrama de pantalla de la siguiente manera:

syms = ['GOOGL', 'AMZN', 'AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM',


'SLB', 'POLICÍA', 'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COSTO']
top_sp1 = sp500_px.loc[sp500_px.índice > = '2005-01-01', syms]

sp_pca1 = PCA()
sp_pca1.encajar(top_sp1)

varianza_explicada = pd.Marco de datos(sp_pca1.varianza_explicada_)


hacha = varianza_explicada.cabeza(10).gráfico.bar(leyenda=Falso, figsize=(4, 4))
hacha.set_xlabel('Componente')

El gráfico de pantalla muestra las variaciones de los componentes principales principales. En este
caso, el diagrama de pantalla enFigura 7-13 revela que las variaciones del primer y segundo
componentes son mucho mayores que las de los demás. Esto a menudo indica que una o dos
variables dominan las cargas. Este es, de hecho, el caso en este ejemplo:

redondo(sp_pca1PScargas[,1:2], 3)
Comp.1 Comp.2
GOOGL 0,781 0,609
AMZN 0,593 -0,792
AAPL 0,078 0,004
MSFT 0,029 0,002
CSCO 0.017 -0.001
INTC 0.020 -0.001
CVX 0.068 -0.021
XOM 0.053 -0.005
...

En Pitón, usamos lo siguiente:


cargas = pd.Marco de datos(sp_pca1.componentes_[0:2,:], columnas=top_sp1.columnas)
cargas.transponer()

Los dos primeros componentes principales están dominados casi por completo por GOOGL y
AMZN. Esto se debe a que los movimientos del precio de las acciones de GOOGL y AMZN
dominan la variabilidad.

Variables categóricas y de escala | 321


Para manejar esta situación, puede incluirlas tal cual, cambiar la escala de las variables (ver
“Escalar las variables” en la página 319), o excluir las variables dominantes del
análisis y manejarlas por separado. No existe un enfoque "correcto" y el tratamiento
depende de la aplicación.

Figura 7-13. Un diagrama de pantalla para un PCA de las principales acciones del S&P 500, incluidos
GOOGL y AMZN

Datos categóricos y distancia de Gower


En el caso de datos categóricos, debe convertirlos en datos numéricos, ya sea por clasificación (para
un factor ordenado) o codificándolos como un conjunto de variables binarias (ficticias). Si los datos
constan de una mezcla de variables continuas y binarias, normalmente querrá escalar las variables
para que los rangos sean similares; ver“Escalar las variables” en la página 319. Un método popular es
utilizarLa distancia de Gower.

La idea básica detrás de la distancia de Gower es aplicar una métrica de distancia diferente a
cada variable según el tipo de datos:

• Para variables numéricas y factores ordenados, la distancia se calcula como el valor


absoluto de la diferencia entre dos registros (Distancia de Manhattan).

322 | Capítulo 7: Aprendizaje no supervisado


• Para las variables categóricas, la distancia es 1 si las categorías entre dos registros son
diferentes y la distancia es 0 si las categorías son las mismas.

La distancia de Gower se calcula de la siguiente manera:

1. Calcule la distancia Dyo, j para todos los pares de variables I y j para cada registro.

2. Escale cada par Dyo, j por lo que el mínimo es 0 y el máximo es 1.

3. Sume las distancias escaladas por pares entre variables juntas, usando una media
simple o ponderada, para crear la matriz de distancias.

Para ilustrar la distancia de Gower, tome algunas filas de los datos del préstamo en R:

> X <- préstamo_datos[1:5, C('dti', 'pago_inc_ratio', 'casa_', 'propósito_')]


> X
# A tibble: 5 × 4
dti pago_inc_ratio casa propósito
<doble> <doble> <fctr> <fctr>
1 1,00 2,39320 RENTA carro

2 5,55 4,57170 PROPIO pequeños negocios


3 18,08 9,71600 RENTA otro
4 10.08 12.21520 RENT deuda_consolidación
5 7.06 3.90888 ALQUILAR otro

La función margarita en el grupo paquete en R se puede utilizar para calcular la distancia de


Gower:

Biblioteca(grupo)
margarita(X, métrico='gower')
Disimilitudes :
1 2 3 4
2 0,6220479
3 0,6863877 0,8143398
4 0,6329040 0,7608561 0,4307083
5 0.3772789 0.5389727 0.3091088 0.5056250

Métrico : mezclado ; Tipos = I, I, norte, N


Número de objetos : 5

En el momento de escribir este artículo, la distancia de Gower no está disponible en ninguno de los
paquetes populares de Python. Sin embargo, se están realizando actividades para incluirlo enscikit-
learn. Actualizaremos el código fuente adjunto una vez que se publique la implementación.

Todas las distancias están entre 0 y 1. El par de registros con la mayor distancia es 2 y 3:
ninguno tiene los mismos valores para casa y propósito, y tienen niveles muy diferentes de
dtideuda-ingresos) y pago_inc_ratio. Los registros 3 y 5 tienen la distancia más pequeña
porque comparten los mismos valores para casa y propósito.

Puede pasar la matriz de distancias de Gower calculada a partir de margarita a hclust para la
agrupación jerárquica (ver "Agrupación jerárquica" en la página 304):

Variables categóricas y de escala | 323


df <- valores predeterminados[muestra(nrow(valores predeterminados), 250),

C('dti', 'pago_inc_ratio', 'casa', 'propósito')]


D = margarita(df, métrico='gower')
hcl <- hclust(D)
dnd <- como dendrograma(hcl)
gráfico(dnd, laboratorio de hojas='ninguno')

El dendrograma resultante se muestra en Figura 7-14. Los registros individuales no se pueden


distinguir en el eje x, pero podemos cortar el dendrograma horizontalmente en 0.5 y examinar
los registros en uno de los subárboles con este código:

dnd_cut <- cortar(dnd, h=0,5)


df[etiquetas(dnd_cutPSmás bajo[[1]]),]
dti pago_inc_ratio inicio_ propósito_
44532 21,22 8,37694 Consolidación_deuda PROPIA
39826 22,59 6,22827 Consolidación_deuda PROPIA
13282 31,00 9,64200 Consolidación_deuda PROPIA
31510 26,21 11,94380 Consolidación_deuda PROPIA
6693 26,96 9,45600 Consolidación_deuda PROPIA
7356 25,81 9,39257 Consolidación_deuda PROPIA
9278 21,00 14,71850 Consolidación_deuda PROPIA
13520 29,00 18,86670 Consolidación_deuda PROPIA
14668 25,75 17,53440 Consolidación_deuda PROPIA
19975 22,70 17,12170 Consolidación_deuda PROPIA
23492 22,68 18,50250 Consolidación_deuda PROPIA

Este subárbol consta en su totalidad de propietarios con un propósito de préstamo etiquetado como
"consolidación_deuda". Si bien la separación estricta no es cierta para todos los subárboles, esto ilustra que
las variables de categoría tienden a agruparse en los conglomerados.

Figura 7-14. Un dendrograma dehclust aplicado a una muestra de datos de incumplimiento de préstamos con
tipos de variables mixtas

324 | Capítulo 7: Aprendizaje no supervisado


Problemas con la agrupación de datos mixtos

K-medias y PCA son las más apropiadas para variables continuas. Para conjuntos de datos más
pequeños, es mejor utilizar la agrupación jerárquica con la distancia de Gower. En principio, no hay
ninguna razón por la queK-los medios no se pueden aplicar a datos binarios o categóricos. Por lo
general, utilizaría la representación de "un codificador activo" (consulte“Un codificador activo” en la
página 242) para convertir los datos categóricos en valores numéricos. En la práctica, sin embargo, el
uso deK-medios y PCA con datos binarios pueden resultar difíciles.

Si el estándar z-se utilizan puntuaciones, las variables binarias dominarán la definición de los conglomerados.
Esto se debe a que las variables 0/1 toman solo dos valores yK-Los medios pueden obtener una pequeña
suma de cuadrados dentro del conglomerado asignando todos los registros con un 0 o 1 a un solo
conglomerado. Por ejemplo, apliquek significa prestar datos predeterminados, incluidas variables de factores
casa y pub_rec_zero, mostrado aquí en R:

df <- model.matrix(~ -1 + dti + pago_inc_ratio + casa_ + pub_rec_zero,


datos=valores predeterminados)

df0 <- escala(df)


km0 <- k significa(df0, centros=4, nstart=10)
centros0 <- escala(km0PScentros, centrar=FALSO,
escala=1/attr(df0, 'escalado: escala'))
redondo(escala(centros0, centrar= -attr(df0, 'escalado: centro'), escala=FALSO), 2)

dti payment_inc_ratio home_MORTGAGE home_OWN home_RENT pub_rec_zero


1 17,20 9,27 0,00 1 0,00 0,92
2 16,99 9,11 0,00 0 1,00 1,00
3 16,50 8,06 0,52 0 0,48 0,00
4 17,46 8,42 1,00 0 0,00 1,00

En Pitón:
columnas = ['dti', 'pago_inc_ratio', 'casa_', 'pub_rec_zero']
df = pd.get_dummies(valores predeterminados[columnas])

escalador = preprocesamiento.Escalador estándar()


df0 = escalador.fit_transform(df * 1.0)
k significa = KMeans(n_clusters=4, estado_aleatorio=1).encajar(df0)
centros = pd.Marco de datos(escalador.transformación_inversa(k significa.cluster_centers_),
columnas=df.columnas)
centros

Los cuatro grupos principales son esencialmente sustitutos de los diferentes niveles de las variables de
factor. Para evitar este comportamiento, puede escalar las variables binarias para que tengan una varianza
menor que otras variables. Alternativamente, para conjuntos de datos muy grandes, puede aplicar la
agrupación en clústeres a diferentes subconjuntos de datos tomando valores categóricos específicos. Por
ejemplo, podría aplicar la agrupación por separado a los préstamos otorgados a alguien que tiene una
hipoteca, es propietario de una vivienda o alquila.

Variables categóricas y de escala | 325


Ideas claves

• Las variables medidas en diferentes escalas deben transformarse a escalas similares para que su
impacto en los algoritmos no esté determinado principalmente por su escala.

• Un método de escala común es la normalización (estandarización): restar la media


y dividir por la desviación estándar.
• Otro método es la distancia de Gower, que escala todas las variables al rango 0-1 (a
menudo se usa con datos numéricos y categóricos mixtos).

Resumen
Para la reducción dimensional de datos numéricos, las herramientas principales son el análisis de componentes
principales o K-significa agrupamiento. Ambos requieren atención al escalado adecuado de los datos para garantizar
una reducción significativa de los datos.

Para la agrupación en clústeres con datos muy estructurados en los que los clústeres están bien separados,
es probable que todos los métodos produzcan un resultado similar. Cada método ofrece su propia ventaja.
K-significa escala a datos muy grandes y se entiende fácilmente. La agrupación jerárquica se puede
aplicar a tipos de datos mixtos (numéricos y categóricos) y se presta a una visualización intuitiva (el
dendrograma). El agrupamiento basado en modelos se basa en la teoría estadística y proporciona un
enfoque más riguroso, en contraposición a los métodos heurísticos. Sin embargo, para datos muy
grandes,K-medios es el método principal utilizado.

Con datos ruidosos, como los datos de préstamos y acciones (y gran parte de los datos a los que se
enfrentará un científico de datos), la elección es más clara. K-Los medios, la agrupación jerárquica y,
especialmente, la agrupación basada en modelos producen soluciones muy diferentes. ¿Cómo debe
proceder un científico de datos? Desafortunadamente, no existe una regla general simple para guiar la
elección. En última instancia, el método utilizado dependerá del tamaño de los datos y el objetivo de la
aplicación.

326 | Capítulo 7: Aprendizaje no supervisado


Bibliografía

[Baumer-2017] Baumer, Benjamin, Daniel Kaplan y Nicholas Horton. Moderno


Ciencia de datos con R. Boca Raton, Fla .: Chapman & Hall / CRC Press, 2017.
[bokeh] Equipo de desarrollo de Bokeh. “Bokeh: biblioteca de Python para visualización interactiva
ción ”(2014). https://bokeh.pydata.org.
[Deng-Wickham-2011] Deng, Henry y Hadley Wickham. "Estimación de densidad en
R. ” Septiembre de 2011.https://oreil.ly/-Ny_6.
[Donoho-2015] Donoho, David. "50 años de ciencia de datos". 18 de septiembre de 2015.
https://oreil.ly/kqFb0.
[Duong-2001] Duong, Tarn. "Introducción a la estimación de la densidad del grano". 2001.
https://oreil.ly/Z5A7W.
[Pocos-2007] Pocos, Stephen. "Guarde las tartas para el postre".Inteligencia comercial visual
Boletin informativo. Perceptual Edge. Agosto de 2007.https://oreil.ly/_iGAL.
[Freedman-2007] Freedman, David, Robert Pisani y Roger Purves. Estadísticas. Cuarto
ed. Nueva York: WW Norton, 2007.
[Hintze-Nelson-1998] Hintze, Jerry L. y Ray D. Nelson. “Violin Plots: A Box Plot–
Sinergismo de trazas de densidad ". El estadístico estadounidense 52, no. 2 (Mayo de 1998): 181–84.
[Galton-1886] Galton, Francis. “Regresión hacia la mediocridad en el estado hereditario
ure. " La Revista del Instituto Antropológico de Gran Bretaña e Irlanda 15
(1886): 246–63. https://oreil.ly/DqoAk.
[ggplot2] Wickham, Hadley. ggplot2: Gráficos elegantes para análisis de datos. Nueva York:
Springer-Verlag Nueva York, 2009. https://oreil.ly/O92vC.
[Hyndman-Fan-1996] Hyndman, Rob J. y Yanan Fan. “Cuantiles de muestra en estadísticas
Paquetes ticos ". Estadístico estadounidense 50, no. 4 (1996): 361–65.
[enrejado] Sarkar, Deepayan. Lattice: visualización de datos multivariantes con R. Nueva York:
Springer, 2008. http://lmdvr.r-forge.r-project.org.
[Legendre] Legendre, Adrien-Marie. Nouvelle méthodes pour la détermination des
orbites des comètes. París: F. Didot, 1805. https://oreil.ly/8FITJ.
[NIST-Handbook-2012] "Medidas de asimetría y curtosis". EnNIST / SEMATECH
Manual electrónico de métodos estadísticos. 2012. https://oreil.ly/IAdHA.

327
[R-base-2015] Equipo R Core. “R: Un lenguaje y un entorno para la competencia estadística
poniendo ". Fundación R para la Computación Estadística. 2015.https://www.r-project.org.
[Salsburg-2001] Salsburg, David. The Lady Tasting Tea: cómo revolucionaron las estadísticas
La ciencia en el siglo XX. Nueva York: WH Freeman, 2001.
[nacida en el mar] Waskom, Michael. "Seaborn: Visualización de datos estadísticos". 2015.https: //
seaborn.pydata.org.
[Trellis-Graphics] Becker, Richard A., William S. Cleveland, Ming-Jen Shyu y Ste‐
phen P. Kaluzny. "Un recorrido por los gráficos Trellis". 15 de abril de 1996.https://oreil.ly/
LVnOV.
[Tukey-1962] Tukey, JohnW. "El futuro del análisis de datos".Los Anales de las Matemáticas
Estadísticas ical 33, no. 1 (1962): 1–67.https://oreil.ly/qrYNW.
[Tukey-1977] Tukey, John W. Análisis exploratorio de datos. Reading, Mass .: Addison-
Wesley, 1977.
[Tukey-1987] Tukey, John W. Las obras completas de John W. Tukey. Vol. 4,Filosofía
and Principles of Data Analysis: 1965-1986, editado por Lyle V. Jones. Boca Raton, Fla .:
Chapman & Hall / CRC Press, 1987.
[Zhang-Wang-2007] Zhang, Qi y Wei Wang. "Un algoritmo rápido para aproximaciones
Cuantiles en flujos de datos de alta velocidad ". XIX Conferencia Internacional sobre Gestión
de Bases de Datos Científicas y Estadísticas (SSDBM 2007). Piscataway, NJ: IEEE, 2007.
También disponible en https://oreil.ly/qShjk.

328 | Bibliografía
Índice

A B
Pruebas A / B, 88-93 b-spline (spline base), 190
beneficios de usar un grupo de control, 90 eliminación hacia atrás, 157, 159
algoritmo épsilon-codicioso para, 133 selección hacia atrás, 159
ejemplos de, 88 harpillera, 64, 96, 238, 260
hipótesis en, 93 impulsar versus, 270
importancia de obtener permisos, 92 algoritmos bandidos, 132
bandidos multibrazo versus, 134 (ver también bandidos multibrazo)
tradicional, defecto de, 91 gráficos de barras, 27
precisión, 220 histogramas y, 29
Adaboost, 270 Enfoque bayesiano en el muestreo de Thompson,
aumento del algoritmo, 271 134
R cuadrado ajustado, 154 Clasificación bayesiana, 197
ajuste de p-valores, 113 (ver también el algoritmo ingenuo de Bayes)
algoritmo aglomerativo, 308 Criterios de información bayesiana (BIC), 157,
AIC (Criterios de información de Akaike), 157, 315 315-317
AICc, 157 distribución beta, 134
toda la regresión de subconjuntos, 157 parcialidad, 50

alfa, 103, 107 estimaciones sesgadas del clasificador ingenuo de Bayes,


inflación alfa, 113 200
hipótesis alternativa, 93, 95 Sesgo de selección, 54-57
Asociación Estadounidense de Estadística (ASA), estado compensación de sesgo-varianza, 247
Mento sobre el uso de valores p, 108 estimaciones sesgadas, 15
análisis de varianza (ANOVA), 82, 118-124 hipótesis alternativa bidireccional, 95
descomposición de la varianza, 123 big data
Estadístico F, 121 modelos predictivos en, 47
ANOVA bidireccional, 123 valor de, 52
Detección de anomalías, 141 datos binarios, 2
valores atípicos y, 11 explorador, 27-30
brazos (bandidos multibrazo), 132 variables ficticias binarias, 242
AUC (área bajo la curva ROC), 226-228 resultados binarios, 78
métrica de vinculación promedio, 309 variables binarias, 163, 319
valor medio (ver media) Distribución binomial, 79-80
ensayos binomiales, 79

329
bins, en tablas de frecuencia e histogramas, 22 escala (ver escala y variación categórica
biplot 292 ables)
análisis bivariado, 36 causalidad, regresión y, 149
teoría del cisne negro, 73 teorema del límite central, 57, 60
estudios ciegos, 91 Distribución t de Student y, 77
árboles potenciados, 249, 260 tendencia central (ver estimaciones de ubicación)
impulsando 238, 270-282 variación de probabilidad, 104
versus ensacado, 270 distribución de chi-cuadrado, 80, 127
aumento del algoritmo, 271 estadística de chi-cuadrado, 124, 125
hiperparámetros y validación cruzada, prueba de chi-cuadrado, 124-131
279-281 Prueba exacta de Fisher, 128-130
regularización, evitando el sobreajuste con, relevancia para la ciencia de datos, 130
274-279 enfoque de remuestreo, 124
Software XGBoost, 272-274 teoría estadística, 127
oreja, 60, 61-sesenta y cinco pureza de clase, 254, 254
algoritmo para remuestreo bootstrap del clasificación, 195-236
significar, 62 análisis discriminante, 201-207
pruebas de arranque y permutación, 102 Matriz de covarianza, 202
generación de intervalo de confianza, 66, 162-163 Discriminante lineal de Fisher, 203
en remuestreo, 96 ejemplo simple, 204-207
remuestreo versus arranque, sesenta y cinco evaluar modelos, 219-230
muestreo de variables en par‐ Métrica AUC, 226-228
posicionamiento 261 matriz de confusión, 221-222
error estándar y, 61 elevar, 228

bootstrap agregando (ver ensacado) precisión, recuerdo y especificidad, 223


muestra de bootstrap, 62 problema de clase raro, 223
diagramas de caja 19 Curva ROC, 224-226
comparar datos numéricos y categóricos, 41 Regresión logística, 208-219
extendiéndose con variables condicionales, 43 comparación con la regresión lineal, 214-216
percentiles y, 20-21 modelos lineales generalizados, 210-212
tramas de violín versus, 42 interpretar coeficientes y odds ratio,
Breiman, Leo, 237, 249 213
diagramas de burbujas, 180 función de respuesta logística y logit, 208
valores predichos de, 212
C algoritmo ingenuo de Bayes, 196-201
aplicando a variables predictoras numéricas,
datos categóricos
explorador, 27-30
200
valor esperado, 29
prediciendo más de dos clases, 196
estrategias para datos desequilibrados, 230-236
modo, 29
clasificación basada en costos, 234
probabilidad, 30
generación de datos, 233
explorar variables numéricas agrupadas por categoría
explorando las predicciones, 234-235
variable gorical, 41
sobremuestreo y ponderación hacia arriba / hacia abajo,
explorando dos variables categóricas, 39
importancia del concepto, 3 232
variables categóricas, 163
submuestreo 231
el aprendizaje no supervisado como bloque de construcción,
(ver también variables factoriales)
convertir a variables ficticias, 165
284
requerido para el algoritmo ingenuo de Bayes, 197
Árboles de clasificación y regresión (CART),
249

330 | Índice
(ver también modelos de árbol) La distancia de Cook, 180
media de conglomerados, 294, 295, 300 variables predictoras correlacionadas, 170
Cargas de PCA versus, 302 correlación, 30-36
agrupamiento, 283 ejemplo, correlación entre los retornos de ETF,
variables categóricas que plantean problemas en, 32
319 conceptos clave, 35
jerárquico, 304-310 términos clave para, 30

algoritmo aglomerativo, 308 gráfico de dispersión, 34

métricas de disimilitud, 309-310 coeficiente de correlación, 31


representación en un dendrograma, 306-308 calcular el coeficiente de correlación de Pearson,
ejemplo simple, 305 31
K-significa, 294-304 otros tipos de, 34
interpretando los clusters, 299-302 matriz de correlación, 32, 320
Algoritmo de K-medias, 298 análisis de correspondencia, 292-294
seleccionando el número de clústeres, 302 clasificación basada en costos, 234
ejemplo simple, 295 covarianza 202, 288
basado en modelos, 311-318 Matriz de covarianza, 203, 242, 311
mezclas de normales, 313-315 validación cruzada, 155, 247
distribución normal multivariante, 311 usando para hiperparámetros, 279-281
seleccionando el número de clústeres, 315-317 usar para seleccionar componentes principales, 292
problemas con la agrupación de datos mixtos, 325 usar para probar valores de hiperparámetros, 270
usos de, 284 gráfico de ganancias acumuladas, 228

racimos 294
coeficiente de determinación, 154
coeficientes
D
df (grados de libertad), 117
intervalos de confianza y, 162
(ver también grados de libertad)
en regresión logística, 213
análisis de datos, 1
en regresión lineal múltiple, 152 (ver también análisis exploratorio de datos)
en regresión lineal simple, 143 distribución de datos, 19-27, 57
problemas de arranque en frío, utilizando la agrupación en clústeres para, 284
gráficos de densidad y estimaciones, 24-27
método de vinculación completa, 308, 309
tabla de frecuencias e histograma, 22-24
la probabilidad condicional, 197
percentiles y diagramas de caja, 20-21
condicionando variables, 43
distribución muestral versus, 58
intervalos de confianza, 161
marcos de datos, 4
algoritmo para el intervalo de confianza de bootstrap,
histogramas para, 23
66 e índices, 6
aplicación a la ciencia de datos, 68
marco de datos típico, 5
nivel de confianza, 68 generación de datos, 230, 233
intervalos de predicción versus, 163
calidad de los datos, 48
variables de confusión, 170, 172, 172-173 tamaño de la muestra versus, 52
matriz de confusión, 220, 221-222
Ciencia de los datos
tablas de contingencia, 36
Pruebas A / B en, 91
resumiendo dos variables categóricas, 39 multiplicidad y, 115
Datos continuos, 2
valores p y, 109
parcelas de contorno, 36
pruebas de permutación, valor de, 102
usar con agrupamiento hexagonal, 36-39
relevancia de las pruebas de chi-cuadrado, 130
codificación de contraste, 167
estadística t y, 155
grupo de control, 88
valor de la heterocedasticidad para, 183
beneficios de usar, 90
espionaje de datos, 54

Índice | 331
tipos de datos estudios doble ciego, 91
términos clave para, 2 reducción de muestreo, 231

recursos para lectura adicional, 4 (ver también submuestreo)


enfoque centrado en datos, excesivo, 75 variables ficticias, 163, 242
normalización de la base de datos frente a normalización en representación de variables factoriales en regres‐
Estadísticas, 243 sion 164
bases de datos, tipos de datos en, 4 Estadístico de Durbin-Watson, 184
gráficos de ganancias de decil, 228

árboles de decisión, 249


aprendizaje conjunto aplicado a, 237
mi
tamaño del efecto, 135, 137
significado más antiguo en el análisis de decisiones humanas,
método del codo, 302, 317
250 Anciano, John, 55
ejecutando múltiples muestras de bootstrap, 63
aprendizaje conjunto, 237
descomposición de la varianza, 118, 123
uso por etapas de K-Neighbors Neighbours, 247
grados de libertad, 15, 116-118, 122 conjunto de modelos, 259
para la distribución de chi-cuadrado, 127
embolsado y refuerzo, 260
distribución t y, 77 crear usando impulso, 270
dendrogramas, 305, 306-308, 324
entropía de la información, 254
parcelas de densidad, 19
algoritmo épsilon-codicioso para prueba A / B, 133
y estimaciones, 24
errores 69
salida de la expectativa, 80 errores de predicción, 146
variables dependientes, 6, 143
(ver también residuales)
(ver también respuesta)
estimados
desviación 215
notación de sombrero y, 147
intentar minimizar en la regresión logística,
métricas y, 9
233 estimaciones de ubicación, 7-13
codificación de desviación, 164, 167
Distancia euclidiana, 242, 308
desviaciones
pruebas exactas, 102
definido 13
Prueba exacta de Fisher, 128-130
desviación estándar y estimaciones relacionadas, 14
pruebas exhaustivas de permutación, 102
datos discretos, 2
expectativa o esperado, 124
análisis discriminante, 201-207
salida de, 80
Matriz de covarianza, 202
valor esperado, 27, 29
Discriminante lineal de Fisher, 203
explicación (elaboración de perfiles), predicción versus, 149
análisis discriminante lineal (LDA), 202 análisis exploratorio de datos, 1-46
ejemplo simple, 204-207 datos categóricos y binarios, 2-4, 27-30
variantes de, 207
correlación, 30-36
función discriminante, 202 distribución de datos, 19-27
pesos discriminantes, 202
estimaciones de ubicación, 7-13
dispersión, 13 estimaciones de variabilidad, 13-19
(ver también variabilidad)
explorar dos o más variables, 36-46
métricas de disimilitud, 305, 309-310
para predicciones de modelos de clasificación,
método de vinculación completa, 308
234
métricas de distancia, 239, 241
aprendizaje no supervisado como extensión de, 283
La distancia de Gower, 322
Análisis de datos exploratorios (Tukey), 1
en agrupamiento jerárquico, 305, 308
distribución exponencial, 84
Distancia de Manhattan, 322
extrapolación
variables dominantes, 321-322
peligros de, 161
Donoho, David, 1 definido 161

332 | Índice
F Encuesta Gallup, 49

Distribución F, 82 Galton, Francis, 55, 259


Estadístico F, 118, 121, 155 Gauss, Carl Friedrich, 148
facetas 44 Distribución gaussiana, 70
variables factoriales, 3, 117, 163-169 (ver también distribución normal) modelos

binario, razón de posibilidades para, 213


aditivos generalizados (GAM), 187,

codificación en regresión logística, 216 192-193


diferentes codificaciones, 167 ajuste de regresión logística con, 234

representaciones de variables ficticias, 164 modelos lineales generalizados (GLM), 210-212

en el ingenuo algoritmo de Bayes, 197 características y aplicaciones de, 212


ordenado, 169 Coeficiente GINI, 255
con muchos niveles, 167-168 Impureza de Gini, 254, 266

tasa de fallas, estimación, 84 Google analitico, 98


tasa de falsos descubrimientos, 113, 115 Gosset, WS, 76
tasa de falsos positivos, 222 La distancia de Gower, 318

selección de características
usar para escalar variables categóricas, 322

pruebas de chi-cuadrado en, 131


aumento de gradiente, 270, 272

en regresión escalonada, 156 gráficos 7

utilizando análisis discriminante para, 204 en informática versus estadística, 7


características, 5, 143
algoritmos codiciosos, 134

(ver también las variables predictoras) K-Vecinos más

cercanos como motor de características, H


247-248 notación de sombrero, estimaciones frente a valores conocidos,
diferencias terminológicas, 6 147
vista de campo (datos espaciales), 6 sombrero-valor, 176, 179
Prueba exacta de Fisher, 128-130 mapas de calor, 39
relevancia para la ciencia de datos, 130 errores heteroscedásticos, 183
Discriminante lineal de Fisher, 203 heterocedasticidad, 176, 182
Puntuación de Fisher, 215 valor para la ciencia de datos, 183
Fisher, RA, 201 binning hexagonal, 36
valores ajustados, 142 y contornos, trazando la relación entre
en regresión lineal múltiple, 151 dos valores numéricos, 36-39
en regresión lineal simple, 146 extendiéndose con variables condicionales, 43
ajustando el modelo agrupación jerárquica, 304-310
compensación de sesgo-varianza, 247 algoritmo aglomerativo, 308
Vecinos más cercanos de K, ventajas de, 247 métricas de disimilitud, 309-310
regresión lineal versus logística, 215 representación en dendrograma, 306-308
ajuste de bosque aleatorio para prestar datos predeterminados, 265 ejemplo simple, 305
reglas para el ajuste del modelo de árbol simple a los datos del préstamo, usando con la distancia de Gower, 323
251 histogramas, 19
pliegues 156, 279 gráficos de barras y, 29
selección hacia adelante, 157, 159 trazado de, 23
tablas de frecuencia, 19 visualizar tablas de frecuencia con, 23
ejemplo, tasas de homicidios por estado, 22 homogeneidad, medición, 254
Friedman, Jerome H. (Jerry), 237 hiperparámetros, 269, 271
pruebas de hipótesis, 93-96

GRAMO hipótesis alternativa, 95


tasa de falsos descubrimientos, 115
ganancias, 228

(ver también ascensor)


malinterpretar la aleatoriedad, 93

Índice | 333
hipótesis nula, 94 ejemplo, predecir el incumplimiento del préstamo, 239-241

pruebas unidireccionales y bidireccionales, 95 como motor de funciones, 247-248


estructurado para minimizar los errores de tipo 1, 109 un codificador en caliente y, 242
estandarización en, 243-246

I Tau de Kendall, 34
estimaciones de densidad de kernel, 19, 24
reglas if-then-else (modelos de árbol), 250
(ver también diagramas de
Estrategias de datos desequilibrados para la clasificación.
densidad) KNN (ver K-Vecinos más
modelos 230-236, 241
cercanos) nudos, 187, 190
clasificación basada en costos, 234
generación de datos, 233
curtosis, 24
explorando las predicciones, 234-235
sobremuestreo y ponderación hacia arriba / hacia abajo, 232 L
impureza, 250 regresión de lazo, 159, 278
medición, 254, 257 Asignación de Dirichlet latente, 202
métodos de validación en la muestra, 159 hoja, 250
variables independientes, 142, 143 regresión de mínimos cuadrados, 143, 148, 278
(ver también variables predictoras) Legendre, Adrien-Marie, 149
índices, marcos de datos y, 6 nivel de confianza, 68
variables indicadoras, 163 aprovechar

inferencia, 1, 87 definido 176


tramas de influencia, 180 valores influyentes en la regresión, 179
valores influyentes, 176, 179 elevar, 220, 228
interacciones, 170, 265 curva de elevación, 228

y efectos principales, 174-176 elevación y, 229


interceptar, 142, 143 análisis discriminante lineal (LDA), 202, 234
Internet de las cosas (IoT), 2 (ver también análisis discriminante)
rango intercuartil, 14, 17 análisis de componentes principales como insuperable
calculador, 18 versión vista, 285
puntos finales de intervalo, 66 función discriminante lineal, 204, 207
función logit inverso, 208 modelo lineal (lm), 144, 150
función de probabilidades inversas, 209 regresión lineal
IQR (ver rango intercuartílico) comparación con la regresión logística, 214-216
examen de los residuos para ver si el ajuste se puede

K mejorado, 270
modelo lineal generalizado (GLM), 210
K (en agrupación de K-medias), 294, 302
problemas de multicolinealidad causados por uno
K (en K-Vecinos más cercanos), 230, 239, 249
codificación en caliente, 243
validación cruzada de k veces, 155
Agrupación de K-medias, 294-304
múltiple, 150-161
aplicando a datos sin normalización, 319 evaluar el modelo, 153
validación cruzada, 155
aplicando a datos normalizados, 320
ejemplo, estimar el valor de las casas,
interpretando los clusters, 299-302
Algoritmo de K-medias, 298
151-152
selección de modelos y regresión escalonada,
seleccionando el número de clústeres, 302
ejemplo simple, 295 156-159
regresión ponderada, 159-161
usar con datos binarios, 325
predicción versus explicación, 149
K-Vecinos más cercanos, 237, 238-249
sencillo, 141-150
datos categóricos y, 319
valores ajustados y residuales, 146
eligiendo K, 246
mínimos cuadrados, 148
métricas de distancia, 241

334 | Índice
ecuación de regresión, 143-146 fórmula para calcular, 15
Encuesta Literary Digest de 1936, 49 mediana, 8, 10
cargas, 285, 285 desviación absoluta mediana de la mediana
media del grupo versus, 302 (ENOJADO), 14, dieciséis

trazado de los principales componentes principales, 290 pruebas de detección médica, falsos positivos y, 222
con signos negativos, 288 métrica, 9
ubicación, estimaciones de, 7-13 métrica de varianza mínima, 309
función log-odds (ver función logit) modo, 27
log-odds ratio y odds ratio, 214 ejemplos en datos categóricos, 29
regresión lineal logística, 234 agrupación en clústeres basada en modelos, 311-318

Regresión logística, 208-219 limitaciones de, 317


evaluar el modelo, 216-219 mezclas de normales, 313-315
comparación con la regresión lineal, 214-216 distribución normal multivariante, 311
ajustar usando un modelo aditivo generalizado, 234 seleccionando el número de clústeres, 315-317
y el modelo lineal generalizado, 210-212 momentos (de una distribución), 24
interpretar coeficientes y odds ratio, 213 bandidos multibrazo, 91, 131-134
función de respuesta logística y logit, 208 multicolinealidad, 170, 172
problemas de multicolinealidad causados por uno y predictores usados dos veces en KNN, 247
codificación en caliente, 243 problemas causados por una codificación en caliente, 243
valores predichos de, 212 errores de multicolinealidad, 117, 165
función de respuesta logística, 208, 209 pruebas múltiples, 112-116
función logit, 208, 209 analisis multivariable, 36-46
distribuciones de cola larga, 73-75 muestreo bootstrap multivariado, 63
pérdida, 250 distribución normal multivariante, 311
en un ejemplo de modelo de árbol simple, 252 mezclas de normales, 313-315
función de pérdida, 233

norte
METRO N (on) refiriéndose al total de registros, 9
aprendizaje automático, 237 n o n - 1, dividiendo por una fórmula de varianza, 15
(ver también aprendizaje automático estadístico; super‐ n o n - 1, dividiendo entre en varianza o estándar
aprendizaje visual; aprendizaje no supervisado) fórmula de desviación, 116
riesgo de sobreajuste, mitigación,113 n o tamaño de la muestra, 117

estadísticas versus, 238 algoritmo ingenuo de Bayes, 196-201


uso de remuestreo para mejorar modelos, 96 variables predictoras numéricas con, 200
MAD (ver la desviación absoluta media de la solución, 198-200
mediana) por qué la clasificación bayesiana exacta es impracticable
Distancia de Mahalanobis, 203, 242 tical 197
efectos principales, 170 vecinos (en K-Vecinos más cercanos), 239
interacciones y, 174-176 estructuras de datos de red, 7
Malvas Cp, 157 nodos, 249
Distancia de Manhattan, 242, 278, 322 residuos no normales, 176, 182
estimación de máxima verosimilitud (MLE), 215, regresión no lineal, 188
219 muestras no aleatorias, 49
significar, 9, 9 estructuras de datos no rectangulares, 6
regresión a, 55 distribución normal, 69-72
media muestral versus media poblacional, 53 conceptos clave, 72
media recortada, 9 conceptos erróneos sobre, 69
media ponderada, 10 multivariante 311
desviación media absoluta, 14 estándar normal y QQ-Plots, 71

Índice | 335
normalización, 71, 243, 318 PAG
(ver también estandarización) valores p, 103-110, 121
en estadística, frente a la normalización de la base de datos, 243 ajuste de, 113
escalar las variables, 319-320 alfa, 107
hipótesis nula, 93, 94, 104 distribución de chi-cuadrado y, 127
en las pruebas de tasa de clics para titulares web, 125 controversia sobre el uso de, 107
usando hipótesis alternativas con, 95 ciencia de datos y, 109
Datos numéricos, 2 significado práctico y, 109
reducción de dimensión de, 326 estadística t y, 154
explorar la relación entre dos números errores tipo 1 y tipo 2, 109
variables, 36-39 comparaciones por pares, 118, 119
agrupados por variable categórica, explorando, parcelas residuales parciales, 176, 185
41 para regresión spline, 191
variables numéricas en regresión logística, 217
conversión de variables factoriales a, en regresión no linealidad y, 187
sion 163 particiones en árboles, 249, 258
convertir variables de factor ordenadas a, 169 bosques aleatorios, 261
Distancia de Mahalanobis, 242 algoritmo de particionamiento recursivo, 252-254
PCA (ver análisis de componentes principales)
O Residuos de Pearson, 125
representación de objetos (datos espaciales), 6 Prueba de chi-cuadrado de Pearson, 124

La navaja de Occam, 156 Coeficiente de correlación de Pearson, 31

impares, 209 Pearson, Karl, 285


obteniendo probabilidad de, 209 regresión penalizada, 159, 175
razón de posibilidades, 213 penalización por la complejidad del modelo, 276

relación con el logaritmo de la razón de probabilidades, 214 percentiles, 8, 14


pruebas ómnibus, 118 y diagramas de caja, 20-21

una codificación en caliente, 164, 165, 243, 319 estimaciones basadas en, 17

ANOVA unidireccional, 123 definición precisa de, 17


pruebas unidireccionales, 93, 95 permisos para pruebas científicas y médicas,
estadísticas de pedidos, 14, dieciséis 92
variables factoriales ordenadas, 169 pruebas de permutación, 96, 97-103, 105

datos ordinales, 2 para ANOVA, 120


importancia del concepto, 3 para la prueba de chi-cuadrado, 126

regresión de mínimos cuadrados ordinarios (MCO), 148, estimando p-valores de, 106
182 exhaustivo y bootstrap, 102
estimación del error fuera de la bolsa, 262 valor para la ciencia de datos, 102

validación fuera de muestra, 155 ejemplo de adherencia de la web, 98-102

Salir, 5 registros pertinentes (en búsquedas), 53

valores atípicos, 8, 11 gráficos circulares, 27, 28

coeficiente de correlación y, 33 tablas dinamicas, 40

en diagramas de caja, 21 (véanse también las tablas de

en diagnósticos de regresión, 177-178 contingencia) estimaciones puntuales, 66

sobreajuste 113 Distribuciones de Poisson, 83, 212


evitar el uso de la regularización, 274-279 codificación polinomial, 167

sobremuestreo 230 regresión polinomial, 188


y ponderación arriba / abajo, 232 población, 48
media de la población frente a la media de la muestra, 53

probabilidad posterior, 197, 200

336 | Índice
potencia y tamaño de la muestra, 135-139 estandarización en K-Vecinos más cercanos,
cálculo, componentes en, 137 243
energía, 135 estadística t y, 155
tamaño de la muestra, 136 utilizado dos veces en KNN, 247
significación práctica versus significación estadística usando más de dos en discriminante lineal
cance, 109 análisis, 207
precisión, 220, 223 componentes principales, 285
curva de recuperación de precisión (PR), 226 análisis de componentes principales, 284-294, 325
valores predichos, 146 análisis de conglomerados versus, 302

(ver también valores computación de componentes principales, 288


ajustados) predicción, 195 análisis de correspondencia, 292-294
(ver también clasificación) decidir cuántos componentes elegir,
explorar predicciones de la clasificación 292
modelos 234 interpretar los componentes principales, 289-292
valores ajustados y residuales en lineal simple escalado de variables, 320
regresión, 146 ejemplo simple, 285-288
de bosques al azar, 264 usar con datos binarios, 325
de XGBoost aplicado a los datos predeterminados del préstamo, probabilidad, 30, 195
274 asociado con un intervalo de confianza, 67
aprovechar los resultados de varios árboles, 258 salida de K-Neighbours más cercanos, 241
valores predichos de regresión logística, producido por modelos de árboles, 254
212 propensión, 195
prediciendo un valor continuo con árbol (ver también probabilidad)
modelo, 257 variables proxy, 98
predecir el incumplimiento del préstamo con K-Nehest poda, 250, 256
Vecinos 239-241 pseudo-residuales, 272
predicción vs explicación en lineal simple
regresión, 149
aprendizaje no supervisado y, 284
Q
QQ-Plots, 69
usando regresión, 141, 161-163
para devoluciones de acciones de la NFLX, 74
intervalos de confianza y predicción,
distribución normal estándar y, 71
161-163 análisis discriminante cuadrático (QDA), 207
peligros de la extrapolación, 161
cuantiles, 17
intervalos de predicción, 68, 161
(ver también percentiles)
intervalos de confianza versus, 163
funciones para, 17
modelado predictivo

R
KNN como primera etapa para, 247, 249
aprendizaje automático frente a estadísticas, 238

variables predictoras, 6, 143


R-cuadrado, 151, 154
Sitio web de R-Tutorial, 4
correlacionado, 170
bosques aleatorios, 238, 249, 259, 261-264
aislar la relación entre la respuesta y,
185 hiperparámetros, 269
efectos e interacciones principales, 174-176
importancia variable en, 265-269
números aleatorios, generación a partir de la distribución de Poisson
relaciones no lineales entre, capturadas por
contribución 83
árboles, 258
numérico, aplicando el algoritmo ingenuo de Bayes a,
muestreo aleatorio, 48-54

200 parcialidad, 50

redundancia en, 172 Selección aleatoria, 51


media muestral versus media poblacional, 53
tamaño versus calidad, 52

Índice | 337
subconjunto aleatorio de variables (en bosque aleatorio), selección de modelos y regresión escalonada,
261 156-159
aleatorización, 88 regresión ponderada, 159-161
aleatoriedad, subestimación y mala interpretación regresión polinomial y spline, 187-193
preting 93 modelos aditivos generalizados, 192-193
distancia, 14, dieciséis polinomio, 188
registros de clasificación, algoritmo ingenuo de Bayes, 200 splines, 189
problema de clase raro, 223 predicción con, 161-163
recordar, 223 intervalos de confianza y predicción,
(ver también sensibilidad) 161-163
compensación con especificidad, 224 peligros de la extrapolación, 161
Curva de características operativas del receptor (ver Regresión lineal simple, 141-150
Curva ROC) valores ajustados y residuales, 146
registros, 5, 142 mínimos cuadrados, 148

datos rectangulares, 4-7 predicción versus explicación, 149


términos clave para, 4 ecuación de regresión, 143-146
diferencias terminológicas, 6 con un arbol, 257
particionamiento recursivo, 249, 252-254 el aprendizaje no supervisado como bloque de construcción,

reducir la dimensión de los datos, 283 284


codificación de referencia, 164, 166, 175, 211 coeficientes de regresión, 142, 145
regresión, 141-194 comparación con datos completos y con influen‐
ANOVA como primer paso hacia la estadística datos iniciales eliminados, 181
modelo, 123 intervalos de confianza y, 161
precaución de causalidad, 149 predictores correlacionados y, 171
diagnósticos, 176-187 regresión a la media, 55
heterocedasticidad, no normalidad y regularización, 271
errores correlacionados, 182-185 evitando sobreajustar con, 274-279
valores influyentes, 179 Regularización L1, 276, 278
valores atípicos, 177 Regularización L2, 276, 278
gráficos de residuos parciales y no linealidad, reemplazo (en muestreo), 48, 97
185 en las pruebas de permutación bootstrap, 102
factores de variables en, 117, 163-169 muestra con reemplazo, 62
representación de variables ficticias, 164 representatividad, 48
variables factoriales ordenadas, 169 mediante muestreo aleatorio, 51
con muchos niveles, 167-168 remuestreo 62, 96-103
interpretar la ecuación de regresión, pruebas de arranque y permutación, 96
169-176 bootstrapping versus, sesenta y cinco

variables de confusión, 172-173 pruebas de permutación, 97-103, 120


variables predictoras correlacionadas, 170 pruebas exhaustivas y de arranque, 102
interacciones y efectos principales, 174-176 valor para la ciencia de datos, 102
multicolinealidad, 172 ejemplo de adherencia de la web, 98-102
Regresión logística, 208-219 usando en la prueba de chi-cuadrado, 124, 126

comparación con la regresión lineal, 214-216 cambio de escala de variables, métodos distintos de z-
significados del término, 149 puntuaciones, 246

regresión lineal múltiple, 150-161 error estándar residual (RSE), 150, 153
evaluar el modelo, 153 suma residual de cuadrados (RSS), 148, 278
validación cruzada, 155 derechos residuales de autor, 142

ejemplo, estimar el valor de las casas, análisis de, en regresión logística, 217
151-152 en regresión lineal múltiple, 151

338 | Índice
en regresión lineal simple, 146 distribución muestral, 57-61
respuesta, 6, 142, 143 teorema del límite central, 60
aislar la relación entre el predictor distribución de datos versus, 58
variable y, 185 Error estándar, 60
regresión de la cresta, 159, 278 variabilidad muestral, 57
RMSE (ver error cuadrático medio) escalada, 318
robusto, 8 variables de escala y categóricas, 318-326
estimaciones robustas de correlación, 33 variables categóricas y la distancia de Gower,
estimaciones sólidas de ubicación, 10-13 322
ejemplo, estimaciones de ubicación de la población variables dominantes, 321-322
y tasas de homicidio, 12 problemas con la agrupación de datos mixtos, 325
mediana, 10 escalar las variables, 319-320
valores atípicos y, 11 suavizadores de diagramas de dispersión, 185

otras métricas sólidas para, 11 gráfico de dispersión, 31, 34

mediana ponderada, 11 biplot 292


estimaciones robustas de variabilidad, mediana absoluta extendiéndose con variables condicionales, 43
desviación de la mediana, dieciséis fraude científico, detección, 129
estimaciones robustas de varianza, cálculo robusto tramas de pantalla, 285, 321

ENOJADO, 18 para PCA de las principales acciones, 289

Curva ROC, 220, 224-226 buscar


Métrica AUC, 226-228 necesidad de enormes cantidades de datos, 52
error cuadrático medio (RMSE), 150, 153, 257 vasto efecto de búsqueda, 55

RSE (ver error estándar residual) RSS Sesgo de selección, 54-57


(ver suma de cuadrados residual) regresión a la media, 55-56
formas típicas de, 55

S sesgo de muestreo de autoselección, 50


sensibilidad, 220, 223
sesgo de la muestra, 49
relación señal / ruido (SNR), 246
estadística de muestra, 57
Nivel significativo, 135, 137
muestras
pruebas de significancia, 93
tamaño de muestra, potencia y, 135-139
(ver también pruebas de hipótesis)
diferencias terminológicas, 6
subestimar y malinterpretar ran‐
muestreo, 47-86
dom eventos en, 93
Distribución binomial, 79-80
muestra aleatoria simple, 48
oreja, 61-sesenta y cinco
métrica de enlace único, 309
distribución de chi-cuadrado, 80
sesgar, 73
intervalos de confianza, sesenta y cinco-68
oblicuidad, 24
Distribución F, 82
Pendiente, 143
distribuciones de cola larga, 73-75
(véanse también los coeficientes de regresión) las
distribución normal, 69-72
máquinas tragamonedas utilizadas en los juegos de azar, 132
Poisson y distribuciones relacionadas, 82-86
parámetro de suavizado, usar con Bayes ingenuo
estimar la tasa de fallas, 84
distribución exponencial, 84
algoritmo, 201
Distribuciones de Poisson, 83
Algoritmo SMOTE, 233
estructuras de datos espaciales, 6
Distribución de Weibull, 85
Rho de Spearman, 34
muestreo aleatorio y sesgo de la muestra, 48-54
especificidad, 220, 224
con y sin recambio, 48, 62, 97,
102 compensación con recuperación, 224

Sesgo de selección, 54-57


regresión spline, 187, 189
valor dividido, 249, 258
Distribución t de Student, 75-78

Índice | 339
SQL (lenguaje de consulta estructurado), 4 sobreajuste, evitando con regularización,
regla de la raíz cuadrada de n, 60 274-279
SS (ver suma de cuadrados) Software XGBoost, 272-274
desviación estándar, 14 K-Vecinos más cercanos, 238-249
matriz de covarianza y, 203 métricas de distancia, 241
en pruebas A / B, 90 ejemplo, predecir el incumplimiento del préstamo,

y estimaciones relacionadas, 15 239-241


Error estándar, 57, 60 KNN como motor de funciones, 247-248
distribución normal estándar, 69 un codificador en caliente, 242

y QQ-Plots, 71 Estandarización, 243-246


Estandarización, 69, 71, 239, 242 modelos de árboles, 249-259
en K-Vecinos más cercanos, 243-246 cómo se usan los árboles, 258
de variables continuas, 295 medir la homogeneidad o impureza,
residuos estandarizados 254
definido 176 predecir un valor continuo, 257
examinar para detectar valores atípicos, 177 particionamiento recursivo, 252-254
histograma de, para la regresión de datos de vivienda, ejemplo simple, 250
183 detener el crecimiento de los árboles, 256

experimentos estadísticos y pruebas de significación, aprendizaje sin supervisión, 283


87-139 (ver también aprendizaje no supervisado)
Pruebas A / B, 88-93 significancia estadística, 98
análisis de varianza (ANOVA), 118-124 significado práctico versus, 109
prueba de chi-cuadrado, 124-131 estadísticas versus aprendizaje automático, 238
grados de libertad, 116-118 regresión paso a paso, 157
pruebas de hipótesis, 93-96 aumento de gradiente estocástico, 270
bandidos multibrazo, 131-134 Implementación de XGBoost, 272-274
pruebas múltiples, 112-116 muestreo estratificado, 52
potencia y tamaño de la muestra, 135-139 datos estructurados, 2-4
remuestreo 96-103 Distribución t de Student, 75-78, 110
significación estadística y valores p, 103-110 asignaturas, 88
alfa, 107 éxito, 78
controversia sobre los valores p, 107 suma de contrastes, 167
ciencia de datos y valores p, 109 suma de cuadrados (SS), 118, 122
valores p, 106 dentro del clúster SS, 295
errores tipo 1 y tipo 2, 109 aprendizaje supervisado, 141, 195, 237
pruebas t, 110-112 Técnica de sobremuestreo de minorías sintéticas
inferencia estadística, canalización de inferencia clásica, (ver algoritmo SMOTE)
87
aprendizaje automático estadístico, 237-282
ensacado y el bosque aleatorio, 259-270
T
distribución t, 75-78, 110, 114
harpillera, 260
estadística t, 110, 151, 154
hiperparámetros, 269 pruebas t, 110-112
bosques aleatorios, 261-264
cruz, 73
importancia variable, 265-269
resumiendo con percentiles, 20
impulsando 270-282
objetivo, 6
aumento del algoritmo, 271
barajar el objetivo, 55
hiperparámetros y validación cruzada, Estadística de prueba, 90, 91, 111, 111
279-281 Muestreo de Thompson, 134
tratamiento, 88

340 | Índice
grupo de tratamiento, 88 interpretar los componentes principales,
modelos de árboles, 175, 234, 249-259 289-292
ventajas de, 250 ejemplo simple, 285-288
conjunto, bosque aleatorio y árboles potenciados, variables de escala y categóricas, 318-326
260 variables categóricas y la distribución de Gower
cómo se usan los árboles, 258 tance, 322
medir la homogeneidad o impureza, 254 variables dominantes, 321-322
predecir un valor continuo, 257 problemas con la agrupación de datos mixtos,
algoritmo de particionamiento recursivo, 252-254 325
ejemplo simple, 250 escalar las variables, 319-320
detener el crecimiento de los árboles, 256 ponderación arriba / abajo, 230, 232
Gráficos enrejados, 45 edificación, 229

juicios, 79 (ver también ascensor)

media recortada, 8
fórmula para, 9
HSD de Tukey (diferencia de significancia honesta),
V
variabilidad, estimaciones de, 13-19
114 ejemplo, tasas de homicidios por población estatal,
Tukey, JohnWilder, 1 18
ANOVA bidireccional, 123
terminología clave, 13
pruebas bidireccionales, 93, 95
percentiles, dieciséis
errores tipo 1, 103, 109, 113
desviación estándar y estimaciones relacionadas,
errores tipo 2, 103, 109
14-dieciséis

importancia variable, 259, 265-269


U variables
estimaciones no sesgadas, 15 covarianza entre, 202
submuestreo 231 explorando dos o más, 36-46
distribución aleatoria uniforme, 129 datos categóricos y numéricos, 41
análisis univariado, 36 variables categóricas, 39
aprendizaje sin supervisión, 283-326 términos clave, 36
metas alcanzadas por, 283 utilizando agrupamiento hexagonal y contorno
agrupación jerárquica, 304-310 gráfico, 36-39
algoritmo aglomerativo, 308 visualizar múltiples variables, 43
métricas de disimilitud, 309-310 cambio de escala, métodos distintos a las puntuaciones z, 246

representación en un dendrograma, 306-308 diferencia, 13, 15


ejemplo simple, 305 análisis de (ANOVA), 82, 118-124
Agrupación de K-medias, 294-304 compensación de sesgo-varianza en el ajuste del modelo,
interpretando los clusters, 299-302 247
Algoritmo de K-medias, 298 vasto efecto de búsqueda, 55

seleccionando el número de clústeres, 302 tramas de violín, 36


ejemplo simple, 295 diagramas de caja versus, 42

agrupación en clústeres basada en modelos, 311-318 visualizaciones, 7


mezclas de normales, 313-315 (ver también gráficos)
distribución normal multivariante, 311
seleccionando el número de clústeres, 315-317
y predicción, 284
W
Guía de W3Schools para SQL, 4
análisis de componentes principales, 284-294
pruebas web
computación de componentes principales, 288
Pruebas A / B en ciencia de datos, 91
análisis de correspondencia, 292-294
tasa de clics para tres titulares diferentes, 124
popularidad de los algoritmos bandidos en, 132

Índice | 341
ejemplo de adherencia de la web, 98-102, 118 X
Distribución de Weibull, 85 XGBoost, 272-274
media ponderada, 8 hiperparámetros, 281
fórmula para, 10 usar la regularización para evitar el sobreajuste,
mediana ponderada, 8, 11 274-279
regresión ponderada, 151, 159-161
ponderación
peso hacia arriba y hacia abajo, 232
Z
puntuaciones z, 69, 71, 203, 230, 239
usar para cambiar la función de pérdida en la clasificación
conversión de datos a distribución normal
ción, 233
y, 72
pesos de los componentes principales (ver carga‐
en estandarización de datos para KNN, 243
ings)
usar para escalar variables, 319
bigotes (en diagramas de caja), 21
gana 132
suma de cuadrados dentro del conglomerado (SS), 295

342 | Índice
Sobre los autores
Peter Bruce fundó y creció el Instituto de Educación en Estadística en Statistics.com, que ahora ofrece
alrededor de cien cursos en estadística, aproximadamente un tercio de los cuales están dirigidos al
científico de datos. Al contratar a los mejores autores como instructores y forjar una estrategia de
marketing para llegar a científicos de datos profesionales, Peter ha desarrollado tanto una visión
amplia del mercado objetivo como su propia experiencia para alcanzarlo.

Andrew Bruce tiene más de 30 años de experiencia en estadística y ciencia de datos en la academia,
el gobierno y las empresas. Tiene un doctorado en estadística de la Universidad de Washington y ha
publicado numerosos artículos en revistas especializadas. Ha desarrollado soluciones basadas en
estadísticas para una amplia gama de problemas que enfrentan una variedad de industrias, desde
firmas financieras establecidas hasta nuevas empresas de Internet, y ofrece una comprensión
profunda de la práctica de la ciencia de datos.

Peter Gedeck tiene más de 30 años de experiencia en informática científica y ciencia de datos.
Después de 20 años como químico computacional en Novartis, ahora trabaja como científico de
datos senior en Collaborative Drug Discovery. Se especializa en el desarrollo de algoritmos de
aprendizaje automático para predecir propiedades biológicas y fisicoquímicas de candidatos a
fármacos. Coautor deMinería de datos para análisis empresarial, obtuvo un doctorado en
química de la Universidad de Erlangen-Nürnberg en Alemania y estudió matemáticas en la
Fernuniversität Hagen, Alemania.
Colofón
El animal en la portada de Estadísticas prácticas para científicos de datos es un cangrejo de orilla
rayadoPachygrapsus crassipes), también conocido como cangrejo de orilla rayado. Se encuentra a lo
largo de las costas y playas del Océano Pacífico en América del Norte, América Central, Corea y Japón.
Estos crustáceos viven debajo de rocas, en charcas de marea y dentro de grietas. Pasan
aproximadamente la mitad de su tiempo en tierra y periódicamente regresan al agua para mojar sus
branquias.

El cangrejo de orilla rayado recibe su nombre de las rayas verdes de su caparazón marrón-negro. Tiene
garras rojas y patas moradas, que también tienen un patrón de rayas o moteado. El cangrejo generalmente
crece hasta alcanzar un tamaño de 3-5 centímetros; las hembras son un poco más pequeñas. Sus ojos están
en tallos flexibles que pueden rotar para darles un campo de visión completo mientras caminan.

Los cangrejos son omnívoros, se alimentan principalmente de algas, pero también de moluscos,
gusanos, hongos, animales muertos y otros crustáceos (según lo que esté disponible). Mudan muchas
veces a medida que crecen hasta la edad adulta, tomando agua para expandirse y romper su vieja
cáscara. Una vez logrado esto, pasan varias horas difíciles liberándose y luego deben esconderse
hasta que la nueva cáscara se endurezca.

Muchos de los animales de las portadas de O'Reilly están en peligro; todos ellos son importantes para el
mundo.

La ilustración de la portada es de Karen Montgomery, basada en un grabado en blanco y negro


de Museo pictórico de la naturaleza animada. Las fuentes de portada son Gilroy Semibold y
Guardian Sans. La fuente del texto es Adobe Minion Pro; la fuente del título es Adobe Myriad
Condensed; y la fuente del código es Ubuntu Mono de Dalton Maag.
Hay mucho mas
de donde vino esto.
Experimente libros, videos, cursos de capacitación
en línea en vivo y más de O'Reilly y nuestros más
de 200 socios, todo en un solo lugar.

Obtenga más información en oreilly.com/online-learning

© 2019 O'Reilly Media, Inc. O'Reilly es una marca comercial registrada de O'Reilly Media, Inc. | 175

También podría gustarte