Segunda edición original publicada en inglés por O’Reilly con el título Practical Statistics for Data Scientists, ISBN 978-1-492-07294-2 © Peter Bruce, Andrew Bruce y Peter Gedeck, 2020. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.
Título de la edición en español:
Estadística práctica para ciencia de datos con R y Python
Segunda edición en español, 2022
© 2022 MARCOMBO, S.L.
www.marcombo.com
Diseño de portada: Karen Montgomery
Ilustración: Rebecca Demarest
Traducción: Francisco Martínez Carreno
Corrección: Nuria Barroso
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. La presente publicación contiene la opinión del autor y tiene el objetivo de informar de forma precisa y concisa. La elaboración del contenido, aunque se ha trabajado de forma escrupulosa, no puede comportar una responsabilidad específica para el autor ni el editor de los posibles errores o imprecisiones que pudiera contener la presente obra.»
ISBN: 978-84-267-3454-9
Producción del ePub: booqlab
Nos gustaría dedicar este libro al recuerdo de nuestros padres, Victor G. Bruce y Nancy C. Bruce, que cultivaron la pasión por las matemáticas y la ciencia. También a nuestros primeros tutores John W. Tukey, Julian Simon y a nuestro amigo de toda la vida Geoff Watson, que nos animaron a seguir la carrera de estadística.
Peter Bruce y Andrew Bruce
Me gustaría dedicar este libro a Tim Clark y Christian Kramer, a los que agradezco profundamente su investigación científica y su amistad.
Peter Gedeck
Prefacio
1. Análisis exploratorio de datos
Elementos de datos estructurados
Lecturas complementarias
Datos rectangulares
Marcos de datos e índices
Estructuras de datos no rectangulares
Lecturas complementarias
Estimación de la localización
Media
Estimación de medianas robustas
Ejemplo: estimaciones de localización de la población y tasas de homicidios
Lecturas complementarias
Estimación de la variabilidad
Desviación estándar y estimaciones relacionadas
Estimación basada en percentiles
Ejemplo: estimaciones de variabilidad de la población estatal
Lecturas complementarias
Exploración de la distribución de datos
Percentiles y diagramas de caja
Tablas de frecuencias e histogramas
Diagrama y estimación de la curva de densidad
Lecturas complementarias
Exploración de datos binarios y categóricos
Moda
Valor esperado
Probabilidad
Lecturas complementarias
Correlación
Diagramas de dispersión
Lecturas complementarias
Exploración de dos o más variables
Agrupación hexagonal y contornos (representación numérica frente a datos numéricos)
Dos variables categóricas
Datos categóricos y numéricos
Visualización de varias variables
Lecturas complementarias
Resumen
2. Distribuciones de datos y muestreo
Muestreo aleatorio y sesgo de la muestra
Sesgo
Selección aleatoria
Tamaño frente a calidad: ¿cuándo importa el tamaño?
Media muestral frente a media poblacional
Lecturas complementarias
Sesgo de selección
Regresión a la media
Lecturas complementarias
Distribución muestral del estadístico
Teorema del límite central
Error estándar
Lecturas complementarias
Bootstrap
Remuestreo frente a bootstrapping
Lecturas complementarias
Intervalos de confianza
Lecturas complementarias
Distribución normal
Normal estándar y diagramas QQ
Distribuciones de cola larga
Lecturas complementarias
Distribución t de Student
Lecturas complementarias
Distribución binomial
Lecturas complementarias
Distribución chi cuadrado
Lecturas complementarias
Distribución F
Lecturas complementarias
La distribución de Poisson y distribuciones relacionadas
Distribución de Poisson
Distribución exponencial
Estimación de la tasa de fallos
Distribución de Weibull
Lecturas complementarias
Resumen
3. Experimentos estadísticos y pruebas significativas
Prueba A/B
¿Por qué tener un grupo de control?
¿Por qué solo A/B? ¿Por qué no C, D, …?
Lecturas complementarias
Pruebas de hipótesis
La hipótesis nula
Hipótesis alternativa
Pruebas de hipótesis unidireccionales o bidireccionales
Lecturas complementarias
Remuestreo
Prueba de permutación
Ejemplo: adherencia de la web
Pruebas de permutación exhaustiva y de bootstrap
Pruebas de permutación: el resultado final de la ciencia de datos
Lecturas complementarias
Significación estadística y valores p
Valor p
Alfa
Errores de tipo 1 y 2
Ciencia de datos y valores p
Lecturas complementarias
Pruebas t
Lecturas complementarias
Pruebas múltiples
Lecturas complementarias
Grados de libertad
Lecturas complementarias
ANOVA
Estadístico F
ANOVA bidireccional
Lecturas complementarias
Prueba de chi cuadrado
Prueba de chi cuadrado: enfoque de remuestreo
Prueba de chi cuadrado: teoría estadística
Prueba exacta de Fisher
Relevancia para la ciencia de datos
Lecturas complementarias
Algoritmo Multi-Arm Bandit
Lecturas complementarias
Potencia y tamaño de la muestra
Tamaño de la muestra
Lecturas complementarias
Resumen
4. Regresión y pronóstico
Regresión lineal simple
La ecuación de regresión
Valores ajustados y residuos
Mínimos cuadrados
Pronóstico frente a explicación (elaboración de perfiles)
Lecturas complementarias
Regresión lineal múltiple
Ejemplo: datos de las viviendas del condado de King
Evaluación del modelo
Validación cruzada
Selección del modelo y regresión escalonada
Regresión ponderada
Lecturas complementarias
Pronóstico mediante la regresión
Los peligros de la extrapolación
Intervalos de confianza y de pronóstico
Variables de tipo factor en la regresión
Representación de variables ficticias
Variables de tipo factor con muchos niveles
Variables de tipo factor ordenadas
Interpretación de la ecuación de regresión
Predictoras correlacionadas
Multicolinealidad
Variables de confusión
Interacciones y efectos principales
Diagnósticos de regresión
Valores atípicos
Valores influyentes
Heterocedasticidad, anormalidad y errores correlacionados
Diagramas de residuos parciales y falta de linealidad
Regresión polinomial y por spline
Polinomial
Splines
Modelos aditivos generalizados
Lecturas complementarias
Resumen
5. Clasificación
Bayes ingenuo
Por qué la clasificación bayesiana exacta no es práctica
La solución ingenua
Variables predictoras numéricas
Lecturas complementarias
Análisis discriminante
Matriz de covarianza
Discriminante lineal de Fisher
Un ejemplo sencillo
Lecturas complementarias
Regresión logística
Función de respuesta logística y logit
Regresión logística y GLM
Modelos lineales generalizados
Valores pronosticados de regresión logística
Interpretación de los coeficientes y de la razón de oportunidades
Regresión lineal y logística: similitudes y diferencias
Evaluación del modelo
Lecturas complementarias
Evaluación de modelos de clasificación
Matriz de confusión
El problema de las clases raras
Precisión, exhaustividad y especificidad
Curva ROC
AUC
Sustentación
Lecturas complementarias
Estrategias para datos que no están equilibrados
Submuestreo
Sobremuestreo y aumento/disminución de la ponderación
Generación de datos
Clasificación basada en los costes
Exploración de pronósticos
Lecturas complementarias
Resumen
6. Aprendizaje automático estadístico
K-vecinos más cercanos
Un pequeño ejemplo: pronóstico del incumplimiento de préstamos
Métricas de distancia
Codificador One-Hot
Estandarización (normalización, puntuación z)
Elección de K
KNN como motor de características
Modelos de árbol
Un ejemplo sencillo
Algoritmo de partición recursiva
Medición de la homogeneidad o la impureza
Detención del crecimiento del árbol
Pronóstico de un valor continuo
Cómo se utilizan los árboles
Lecturas complementarias
Métodos de bagging y bosque aleatorio
Bagging
Bosque aleatorio
Importancia de la variable
Hiperparámetros
Boosting
El algoritmo boosting
XGBoost
Regularización: evitación del sobreajuste
Hiperparámetros y validación cruzada
Resumen
7. Aprendizaje no supervisado
Análisis de componentes principales
Un ejemplo sencillo
Cálculo de los componentes principales
Interpretación de componentes principales
Análisis de correspondencias
Lecturas complementarias
Agrupación K-means
Un ejemplo sencillo
Algoritmo K-means
Interpretación de los grupos
Selección del número de grupos
Agrupación jerárquica
Un ejemplo sencillo
El dendrograma
El algoritmo de aglomeración
Medidas de disimilitud
Agrupación basada en el modelo
Distribución normal multivariante
Mezclas de distribuciones normales
Selección del número de grupos
Lecturas complementarias
Variables categóricas y escalado
Escalado de variables
Variables dominantes
Datos categóricos y distancia de Gower
Problemas con la agrupación de datos mixtos
Resumen
Bibliografía
Este libro está dirigido a científicos de datos familiarizados de algún modo con los lenguajes de programación R y/o Python, y con una formación básica (quizás irregular o efímera) a la estadística. Dos de los autores de este libro llegamos al mundo de la ciencia de datos desde el mundo de la estadística y apreciamos en cierta medida la contribución que la estadística puede 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 de vida, 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 es el caso de las redes neuronales.
El libro tiene dos objetivos:
• Presentar, en forma digerible, navegable y de fácil referencia, conceptos clave de estadística que son relevantes para la ciencia de datos.
• Explicar qué conceptos son importantes y útiles desde la perspectiva de la ciencia de datos, cuáles lo son menos y por qué.
Términos clave
La ciencia de datos es la fusión de varias disciplinas, entre las que se incluyen la estadística, la informática, las tecnologías de la información y campos específicos de este ámbito. Como consecuencia, se pueden utilizar varios términos diferentes para referirse a un concepto dado. Los términos clave y sus sinónimos se destacarán a lo largo del libro en un recuadro como este.
Este elemento indica un consejo o una sugerencia. |
|
Este elemento indica una nota general. |
|
Este elemento indica una advertencia o precaución. |
En todos los casos, el libro proporciona ejemplos de código, en primer lugar en R y a continuación en Python. Para evitar repeticiones innecesarias, generalmente solo se muestran los resultados y gráficos que genera el código R. También omitimos el código necesario para cargar tanto los paquetes como los conjuntos de datos requeridos. Se puede acceder al código completo y los conjuntos de datos para su descarga en www.marcombo.info con el código DATOS22.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si en el libro se facilitan códigos de ejemplo, puedes usarlos en tus programas y documentación. No necesitas ponerte en contacto con nosotros para pedir permiso a menos que vayas a reproducir una parte importante del código. Por ejemplo, escribir un programa que use varios fragmentos de código del libro no requiere permiso. Vender o distribuir ejemplos de los libros de O’Reilly y de Marcombo requiere permiso. Responder a una pregunta proporcionando la referencia del libro y citar el código de un ejemplo no requiere permiso. La incorporación de una cantidad importante del código de los ejemplos del libro en la documentación de tu producto requiere permiso.
Generalmente no pedimos que se incluya una atribución, pero apreciamos que se haga. Una atribución contiene el título, autor, editor e ISBN. Por ejemplo: "Estadística práctica para ciencia de datos con R y Python de Peter Bruce, Andrew Bruce y Peter Gedeck (Marcombo y O’Reilly). Copyright 2022 Peter Bruce, Andrew Bruce y Peter Gedeck, 978-84-267-3443-3".
Si crees que el uso por tu parte de los ejemplos de código no está justificado o no respeta el permiso otorgado más arriba, no dudes en ponerte en contacto con nosotros en info@marcombo.com.
Los autores queremos expresar nuestro agradecimiento al numeroso grupo de personas que han contribuido a hacer realidad este libro.
Gerhard Pilcher, director ejecutivo de la empresa de minería de datos Elder Research, revisó los primeros borradores del libro y nos facilitó sus correcciones, así como detallados y útiles comentarios. Del mismo modo, Anya McGuirk y Wei Xiao, estadísticos de SAS, y Jay Hilfiger, autor de O'Reilly, proporcionaron comentarios útiles sobre los borradores iniciales del libro. Toshiaki Kurokawa, que tradujo la primera edición al japonés, realizó un completo trabajo de revisión y corrección durante la traducción. Aaron Schumacher y Walter Paczkowski revisaron minuciosamente la segunda edición del libro y aportaron numerosas sugerencias útiles y valiosas por las cuales les estamos muy agradecidos. No hace falta decir que cualquier error que exista es solo nuestro.
En O'Reilly, Shannon Cutt nos orientó con buen ánimo y la adecuada dosis de insistencia en el proceso de publicación. Por otra parte, Kristen Brown dirigió con éxito la fase de producción del libro. Rachel Monaghan y Eliahu Sussman, cuidadosa y pacientemente, corrigieron y mejoraron la redacción, mientras que Ellen Troutman-Zaig preparó el índice. Nicole Tache tomó las riendas de la segunda edición y dirigió el proceso de manera eficaz, proporcionando muchas y buenas sugerencias editoriales para mejorar la legibilidad del libro para una amplia audiencia. También agradecemos a Marie Beaugureau, que inició nuestro proyecto en O’Reilly, así como a Ben Bengfort, autor de O’Reilly e instructor de Statistics.com, que nos presentó a O’Reilly.
Nosotros, y los contenidos de 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 editoriales.
Finalmente, nos gustaría agradecer especialmente a Elizabeth Bruce y Deborah Donnell su paciencia y apoyo para hacer posible este proyecto.
Este capítulo se centra en el primer paso de cualquier proyecto de ciencia de datos: la exploración de los datos.
La estadística clásica se ocupó casi exclusivamente de la inferencia, un conjunto de procedimientos, a veces complejo, para sacar conclusiones sobre grandes poblaciones a partir de muestras de pequeño tamaño. En 1962, John W. Tukey (figura 1.1) propugnó una reforma de la estadística en su trabajo académico de investigación "The Future of Data Analysis" [Tukey, 1962]. Propuso una nueva disciplina científica llamada análisis de datos (data analysis) que incluía la inferencia estadística como un componente más. Tukey forjó vínculos con los colectivos profesionales de ingeniería e informática (acuñó los términos bit, abreviatura de dígito binario, y software), y sus principios originales son sorprendentemente duraderos y forman parte de los fundamentos de la ciencia de datos. El campo del análisis exploratorio de datos se estableció con el que es ahora un libro clásico de Tukey publicado en 1977: Exploratory Data Analysis [Tukey, 1977]. Tukey presentó diagramas sencillos (por ejemplo, diagramas de caja, diagramas de dispersión) que, junto con resúmenes estadísticos (media, mediana, cuantiles, etc.), ayudan a dibujar la imagen de un conjunto de datos.
Con la disponibilidad de forma inmediata de la capacidad de cálculo y el potente software de análisis de datos, el análisis exploratorio de datos ha evolucionado mucho más allá de lo que fue su alcance original. Los impulsores clave de esta disciplina han sido el rápido desarrollo de nuevas tecnologías, el acceso a una mayor cantidad de datos y más importantes, así como la mayor utilización del análisis cuantitativo en numerosas disciplinas. David Donoho, profesor de estadística de la Universidad de Stanford y exalumno de Tukey, es autor de un excelente artículo inspirado en su exposición para el taller del centenario del nacimiento de Tukey (Tukey Centennial) en Princeton, Nueva Jersey [Donoho, 2015]. Donoho localiza la génesis de la ciencia de datos en el trabajo pionero de Tukey sobre el análisis de datos.
Figura 1.1 John Tukey, el eminente estadístico cuyas ideas, que desarrolló hace más de 50 años, constituyen la base de la ciencia de datos.
Los datos proceden de muchas fuentes: mediciones de sensores, eventos, texto, imágenes y vídeos. Internet de las cosas (Internet of Things [IoT]) vomita caudales 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 sobre el color RGB (rojo, verde, azul). Los textos son secuencias de palabras y caracteres que no son palabras, y a menudo están organizados por secciones, subsecciones, etc. Los flujos de clics son secuencias de acciones de un usuario que interactúa con una aplicación o una página web. De hecho, un desafío importante de la ciencia de datos es convertir este torrente de datos sin procesar en información útil. Para aplicar los conceptos estadísticos tratados en el libro, los datos en bruto, no estructurados, deben procesarse y manejarse en un formato estructurado. Una de las formas más habituales en la que se presentan los datos estructurados es una tabla con filas y columnas, bien porque los datos pueden proceder de una base de datos relacional o porque los recopilamos así para su estudio.
Hay dos tipos básicos de datos estructurados: numéricos y categóricos. Los datos numéricos se presentan en dos modalidades: datos de carácter continuo (continuous), como es el caso de la velocidad del viento o la duración del tiempo, y discreto (discrete), como el recuento de las veces que ocurre un evento. Los datos categóricos (categorical) adoptan solo un conjunto fijo de valores, como pueden ser los tipos de pantallas de TV (plasma, LCD, led, etc.) o los nombres de los estados (Alabama, Alaska, etc.). Los datos binarios (binary) son un importante caso especial de datos categóricos que adoptan solo uno de dos valores, como 0/1, sí/no o verdadero/falso. Otro tipo muy útil de datos categóricos son los datos ordinales (ordinal), con los que se ordenan las categorías. Un ejemplo de estos datos es una clasificación numérica (1, 2, 3, 4 o 5).
¿Por qué nos molestamos en analizar la taxonomía de los tipos de datos? Pues porque resulta que a los efectos del análisis de datos y del modelado predictivo, el tipo de datos es importante para ayudar a determinar qué tipo de presentación visual utilizar, si la de análisis de datos o la de modelos estadísticos. De hecho, el software de la ciencia de datos, como R y Python, utiliza los tipos de datos para mejorar el rendimiento computacional. Y lo que es más importante, el tipo de datos de una variable determina cómo realizará el software los cálculos para esa variable.
Términos clave de los tipos de datos
Numéricos
Datos que se expresan en una escala numérica.
Continuos
Datos que pueden adoptar cualquier valor dentro de un intervalo. (Sinónimos: intervalo, flotante, numérico)
Discretos
Datos que solo pueden adoptar valores enteros, como los valores contables. (Sinónimos: entero, contable)
Categóricos
Datos que solo pueden adoptar un conjunto específico de valores que representan un conjunto de categorías posibles. (Sinónimos: enumeraciones, enumerado, factores, nominal)
Binarios
Son 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)
Ordinales
Datos categóricos que tienen un orden explícito. (Sinónimos: factor ordenado)
Los ingenieros de software y los programadores de bases de datos pueden preguntarse por qué incluso necesitamos la noción de datos categóricos (categorical) y ordinales (ordinal) para el 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, como algo diferente al 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 crear un gráfico o ajustar un modelo. En particular, los datos ordinales se pueden representar mediante ordered.factor en R, conservando el orden especificado por el usuario en gráficos, tablas y modelos. En Python, scikit-learn admite datos ordinales con sklearn.preprocessing.OrdinalEncoder.
• El almacenamiento y la indexación se pueden optimizar (como en una base de datos relacional).
• Los posibles valores que puede adoptar una variable categórica dada se aplican al software (como puede ser una enumeración).
El tercer "beneficio" puede conducir a un comportamiento no deseado o inesperado: el comportamiento predeterminado de las funciones de importación de datos en R (por ejemplo, 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 la columna son los que se importaron originalmente, y la asignación de un nuevo valor de texto introducirá una advertencia y producirá un NA (valor ausente). El paquete pandas de Python no realizará dicha conversión automáticamente. Sin embargo, podemos especificar una columna como categórica explícitamente con la función read_csv.
Ideas clave
• Los datos se clasifican en el software generalmente por tipos.
• En los tipos de datos están incluidos los numéricos (continuos, discretos) y categóricos (binarios, ordinales).
• La tipificación de datos en el software actúa como una señal que le indica al software cómo debe procesarlos.
• Los tipos de datos pueden crear confusión, ya que estos pueden superponerse, y la taxonomía de un tipo de software puede diferir de la de otro. El sitio web de RTutorial (www.r-tutor.com/) incluye la taxonomía de R. La documentación de pandas (https://pandas.pydata.org/docs/user_guide/) describe los diferentes tipos de datos y cómo se pueden manejar en Python.
• La clasificación de tipos de datos de las bases de datos es más detallada al incorporar consideraciones de niveles de precisión, campos de longitud fija o variable, entre otras cosas. Consultar la guía de W3Schools para SQL (www.w3schools.com/sql/).
El marco de referencia típico para un análisis en ciencia de datos es el objeto de datos rectangulares (rectangular data), como puede ser una hoja de cálculo o una tabla de base de datos.
Datos rectangulares (rectangular data) es el término general asociado a una matriz bidimensional con filas que indican registros (casos) y columnas que indican características (variables). El marco de datos (data frame) es el formato específico en R y Python. Los datos no siempre tienen esta apariencia al principio: los datos no estructurados (por ejemplo, texto) deben procesarse y manipularse para que se puedan representar como un conjunto de características en la matriz de datos rectangulares (consultar "Elementos de datos estructurados" en la página 2). Para la mayor parte de las tareas de análisis y modelado de datos, los datos de las bases de datos relacionales deben extraerse y colocarse en una sola tabla.
Términos clave de los datos rectangulares
Marco de datos
Los datos rectangulares (como puede ser una hoja de cálculo) son la estructura básica de datos para los modelos estadísticos y de aprendizaje automático.
Característica
Una columna de una tabla se denomina generalmente característica (feature).
Sinónimos
atributo, entrada, predictor, variable
Resultado
Muchos proyectos de ciencia de datos implican pronosticar un resultado (outcome), a menudo un resultado de sí/no (en la tabla 1.1, es si "la subasta ha sido competitiva o no"). A veces, las características (features) se utilizan para pronosticar el resultado (outcome) de un estudio.
Sinónimos
variable dependiente, respuesta, objetivo, salida
Registros
A una fila dentro de una tabla se le denomina generalmente registro (register).
Sinónimos
caso, ejemplo, instancia, observación, patrón, muestra
Tabla 1.1 Típico formato del marco de datos
En la tabla 1.1, hay una combinación de datos medidos o contabilizados (por ejemplo, duración y precio) y datos categóricos (por ejemplo, categoría y divisa). Como se ha mencionado anteriormente, una forma especial de variable categórica es una variable binaria (sí/no o 0/1), como se ve en la columna de la derecha en la tabla 1.1, una variable indicadora que muestra si una subasta ha sido competitiva (si ha tenido varios postores) o no. Esta variable indicadora también resulta ser una variable de resultado (outcome), cuando el escenario es pronosticar si una subasta es competitiva o no.
Las tablas de bases de datos tradicionales tienen una o más columnas designadas como índice, esencialmente un número de fila. Esta funcionalidad puede mejorar enormemente la eficiencia de determinadas consultas a bases de datos. En Python, con la biblioteca de pandas, la estructura básica de datos rectangulares es el objeto DataFrame. Por defecto, se crea un índice de enteros automático para un DataFrame basado en el orden de las filas. En pandas, también es posible establecer índices jerárquicos/multinivel para mejorar la eficiencia de ciertas operaciones.
En R, la estructura básica de datos rectangulares es el objeto data.frame. data.frame también tiene un índice implícito de enteros basado en el orden de las filas. El data.frame nativo de R no admite índices especificados por el usuario o multinivel, aunque se puede crear una clave personalizada mediante el atributo row.names. Para superar esta deficiencia, hay dos nuevos paquetes que se están utilizando de forma generalizada: data.table y dplyr. Ambos admiten índices multinivel y ofrecen importantes aumentos de velocidad cuando se trabaja con data.frame.
La terminología de datos rectangulares puede resultar confusa. Los estadísticos y los científicos de datos usan términos diferentes para referirse al mismo concepto. Para un estadístico, las variables predictoras (predictor variables) se utilizan en un modelo para pronosticar una respuesta (response) o variable dependiente (dependent variable). Para un científico de datos, las características (features) se utilizan para pronosticar un objetivo (target). Los sinónimos resultan particularmente confusos: los informáticos usarán el término muestra (sample) para una única fila. Una muestra (sample) para un estadístico es una colección de filas.
Existen otras estructuras de datos además de los datos rectangulares.
Los datos de serie 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 generados por los dispositivos del Internet de las cosas.
Las estructuras de datos espaciales, que se utilizan en cartografía y análisis de la localización, son más complejas y variadas que las estructuras de datos rectangulares. En la representación del objeto (object), el foco de los datos es un objeto (por ejemplo, una casa) y sus coordenadas espaciales. La vista de campo (field), por el contrario, se centra en pequeñas unidades de espacio y el valor de la métrica correspondiente (brillo de píxeles, por ejemplo).
Las estructuras de datos en forma 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 de gráficos son útiles para ciertos tipos de problemas, como la optimización de redes o 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 se centra en los datos rectangulares, el bloque de construcción fundamental del modelado predictivo.
En informática y tecnologías de la información, el término gráfico (graph) hace referencia normalmente a la descripción de las conexiones entre entidades y a la estructura de datos subyacente. En estadística, gráfico (graph) se utiliza para referirse a una variedad de diagramas y visualizaciones (visualizations), no solo de conexiones entre entidades, aunque el término se aplica solo a la visualización, no a la estructura de datos.
Ideas clave
• La estructura de datos básica en ciencia de datos es una matriz rectangular en la que las filas están formadas por registros y las columnas son las variables (características).
• La terminología puede resultar confusa. Existe una serie de sinónimos, procedentes de diferentes disciplinas, que contribuyen a la ciencia de datos (estadística, informática y tecnologías de la información).
• Documentación sobre marcos de datos en R (https://stat.ethz.ch/R-manual/R-devel/library/base/html/data.frame.html).
• Documentación sobre marcos de datos en Python (https://pandas.pydata.org/pandas-docs/stable/user_guide/dsintro.html).
Las variables, con los datos medidos o procedentes de recuentos, pueden tener miles de valores distintos. Un paso fundamental para explorar los 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).
Términos clave de la estimación de la localización
Media
Suma de todos los valores dividida por el número de valores.
Sinónimos
promedio
Media ponderada
Suma de todos los valores multiplicados por cada ponderación y dividida por la suma de las ponderaciones.
Sinónimo
promedio ponderado
Mediana
Valor tal que la mitad del número de datos se encuentra por encima y la otra mitad por debajo de dicho valor.
Sinónimo
Percentil 50
Percentil
Valor tal que el P por ciento de los datos se encuentra por debajo del mismo.
Sinónimo
cuantil
Mediana ponderada
Valor tal que la mitad de la suma de las ponderaciones se encuentra por encima y la otra mitad 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
Insensible a valores extremos.
Sinónimo
resistente
Atípico
Valor de un dato que es muy diferente de la mayoría de los valores de datos.
Sinónimo
valor extremo
A primera vista, resumir los datos puede parecer bastante trivial: simplemente hay que extraer la media (mean) de los datos. De hecho, si bien la media es fácil de calcular y conveniente de usar, es posible que no siempre sea la mejor medida para representar 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 a menudo utilizan el término estimación (estimate) para referirse a 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 verdadero estado teórico o exacto de las cosas. Es más probable que los científicos de datos y los analistas de negocios se refieran a este valor como métrica (metric). La diferencia refleja el enfoque de la estadística frente al de la ciencia de datos. Hay que tener en cuenta que la explicación de la incertidumbre se encuentra en el corazón de la disciplina de la estadística, mientras que el foco de la ciencia de datos son los objetivos concretos de las organizaciones o de las empresas. Por lo tanto, los estadísticos estiman y los científicos de datos miden.
La estimación más elemental para la localización es el valor medio o promedio (average). La media es la suma de todos los valores dividida por el número de valores. Consideremos el siguiente conjunto de números: {3 5 1 2}. La media es (3 + 5 + 1 +2) / 4 = 11/4 = 2.75. Nos encontraremos el símbolo x (pronunciado "barra x") que se utiliza para representar la media de la muestra de una población. La fórmula para calcular la media de un conjunto de n valores x1, x2, ..., xn es:
N (o n) 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úscula si se refiere a una muestra de una población. En la ciencia de datos, esa distinción no es vital, por lo que se puede ver de las dos formas.
La variación de la media se conoce como media truncada (trimmed mean), que se calcula ignorando un número fijo, en cada extremo, de valores ordenados y a continuación se calcula el promedio de los valores restantes. Al representar los valores ordenados por x(1), x(2), ..., x(n) donde x(1) es el valor más pequeño y x(n) el valor más grande, la fórmula para calcular la media recortada con los p valores más pequeños y más grandes omitidos es:
La media truncada elimina la influencia de valores extremos. Por ejemplo, en el buceo internacional, se eliminan las puntuaciones máxima y mínima de cinco jueces, y la puntuación final es el promedio de las puntuaciones de los tres jueces restantes (https://en.wikipedia.org/wiki/Diving_(sport)#Scoring_the_dive). Esto hace que sea difícil para un solo juez manipular la puntuación, tal vez para favorecer al concursante de su país. Las medias truncadas se utilizan habitualmente y, en muchos casos, son preferibles a la media ordinaria. En el apartado "Estimación de medianas robustas" de la página 10 se amplía esta información.
Otro tipo de media es la media ponderada (weighted mean), que se calcula multiplicando cada valor de datos xi por el peso wi especificado por el usuario y dividiendo su suma por la suma de las ponderaciones. La fórmula para una media ponderada es:
Hay dos motivos fundamentales 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 la ponderación 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 la que se ha realizado 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 datos de los usuarios. Para corregir eso, podemos dar un mayor peso a los valores de los grupos que tengan una menor representación.
La mediana (median) es el valor central de una lista de datos ordenados de menor a mayor. 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 situados 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 localización. Supongamos que queremos analizar los ingresos familiares típicos en los vecindarios de los alrededores del lago Washington en Seattle. Al comparar el vecindario de Medina con el de Windermere, la utilización de la media produciría resultados muy diferentes porque Bill Gates vive en Medina. Si usamos la mediana, no importará lo rico que sea Bill Gates, porque la posición de la observación intermedia seguirá siendo la misma.
Por las mismas razones por las que se usa una media ponderada, también es posible calcular una mediana ponderada (weighted median). Al igual que con la mediana, primero ordenamos los datos, aunque cada valor de los datos tiene una ponderación asociada. 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.
A la mediana se le conoce como una estimación robusta (robust) de la localización, ya que no está influenciada por valores atípicos (outliers) (casos extremos) que podrían sesgar los resultados. Un valor atípico es cualquier valor que está muy lejos de los otros valores en el conjunto de datos. La definición exacta de valor atípico es algo subjetiva, a pesar de que se utilizan ciertas convenciones en distintos resúmenes de datos y diagramas (consultar "Percentiles y diagramas de caja" en la página 20). Ser un valor atípico en sí mismo no hace que un valor de los datos no sea válido o sea erróneo (como en el ejemplo anterior con Bill Gates). Aun así, los valores atípicos son a menudo el resultado de errores de datos, como la combinación de datos de diferentes unidades (kilómetros en lugar de metros) o las 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 localización, mientras que la mediana seguirá siendo válida. Los valores atípicos deben identificarse y, por lo general, merecen una investigación más profunda.
En contraste con el análisis normal de datos, donde los valores atípicos son a veces informativos y a veces molestos, en la detección de anomalías (anomaly detection) los puntos que nos interesan son los valores atípicos, y la mayor masa de datos sirve principalmente para definir la "normalidad" con la que se miden las anomalías.
La mediana no es la única estimación robusta de la localización. De hecho, la media truncada se usa habitualmente para evitar la influencia de valores atípicos. Por ejemplo, truncar el 10% inferior y superior (una opción frecuente) 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 truncada se puede considerar un compromiso entre la mediana y la media: es robusta a los valores extremos de los datos, pero utiliza más datos para calcular la estimación de la localización.
Los estadísticos han desarrollado una plétora de otros estimadores de localizació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 localización entre conjuntos de datos). Si bien estos métodos son potencialmente útiles para conjuntos de datos pequeños, no es probable que proporcionen algún beneficio adicional para conjuntos con cantidades grandes de datos o incluso de tamaño moderado.
La tabla 1.2 muestra las primeras filas del conjunto de datos que contienen la población y las tasas de homicidios (en unidades de homicidios por cada 100 000 habitantes y por año) para cada estado de EE. UU. (censo de 2010).
Tabla 1.2 Algunas filas de data.frame de la situación de la población y la tasa de homicidios por estados
Utilizamos R para calcular la media, la media truncada y la mediana de la población:
Para calcular la media y la mediana con Python, podemos emplear los métodos pandas del marco de datos. La media truncada requiere la función trim_mean de scipy.stats:
La media es mayor que la media truncada, que es mayor que la mediana.
Esto se debe a que la media truncada excluye los cinco estados más grandes y más pequeños (trim=0.1 ignora el 10% de cada extremo). Si queremos calcular la tasa de homicidios promedio para el país, necesitamos usar una media o mediana ponderadas para dar cuenta de las diferentes poblaciones de los estados. Dado que el software básico de R no tiene una función para la mediana truncada, necesitamos instalar el paquete matrixStats:
Con NumPy podemos disponer de la media ponderada. Para la mediana ponderada, podemos usar el paquete especializado wquantiles (https://pypi.org/project/wquantiles/):
En este caso, la media ponderada y la mediana ponderada son aproximadamente iguales.
Ideas clave
• La métrica básica para la localización es la media, pero puede ser sensible a valores extremos (valores atípicos).
• Otras métricas (mediana, media truncada) son menos sensibles a valores atípicos y a distribuciones inusuales y, por lo tanto, son más robustas.
• El artículo de Wikipedia sobre tendencia central contiene un amplio debate sobre varias medidas de localización.
• El clásico Exploratory Data Analysis (Pearson) de John Tukey de 1977 todavía se lee bastante.
La localización es solo una dimensión para extraer el resumen de una característica. Una segunda dimensión, la variabilidad (variability), también conocida como dispersión (dispersion), mide el grado de agrupación o dispersión de los valores de los datos. En el corazón de la estadística se encuentra la variabilidad: hay que medirla, reducirla, distinguir la variabilidad aleatoria de la real, identificar las diversas fuentes de variabilidad real y tomar decisiones teniéndola en cuenta.
Términos clave de métricas de variabilidad
Desviaciones
Diferencias entre los valores observados y la estimación de la localización.
Sinónimos
errores, residuales
Varianza
Suma de los cuadrados de las desviaciones de la media al cuadrado y dividida por n – 1, donde n es el número de valores de datos.
Sinónimo
error cuadrático medio
Desviación estándar
Raíz cuadrada de la varianza.
Desviación media absoluta
Media de los valores absolutos de las desviaciones de la media.
Sinónimos
norma L1, norma Manhattan
Desviación absoluta mediana de la mediana
Mediana de los valores absolutos de las desviaciones de la mediana.
Rango
La diferencia entre el mayor y el menor valor de un conjunto de datos.
Estadísticos ordinales
Métricas basadas en los valores de datos ordenados de menor a mayor.
Sinónimo
rangos
Percentil
Valor tal que el P por ciento de los valores toma este valor o un valor inferior y para (100 – P) el porcentaje toma este valor o un valor superior.
Sinónimo
cuantil
Rango intercuartil
Diferencia entre el percentil 75 y el percentil 25.
Sinónimo
IQR
Así como existen diferentes formas de medir la localización (media, mediana, etc.), también existen diferentes formas de medir la variabilidad.
Las estimaciones de la variación más utilizadas se basan en las diferencias o desviaciones (deviations) entre la estimación de la localizació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 lo dispersos están los datos en torno al valor central.
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 precisamente cero. En cambio, un enfoque sencillo consiste en extraer 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. A esta medida se conoce como desviación media absoluta (mean absolute deviation) y se calcula con la fórmula:
donde x es la media muestral.
Las estimaciones de variabilidad más conocidas son la varianza (variance) y la desviación estándar (standard deviation), que se calculan a partir del cuadrado de las desviaciones. La varianza es un promedio del cuadrado de las desviaciones y la desviación estándar es la raíz cuadrada de la varianza:
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. Aun así, con su fórmula más complicada y menos intuitiva, podría parecer peculiar que en estadística se prefiera la desviación estándar a la desviación media absoluta. Debe su supremacía a la teoría estadística, ya que trabajar matemáticamente con valores al cuadrado es mucho más conveniente que con valores absolutos, especialmente en el caso de modelos estadísticos.
Grados de libertad, y ¿n o n – 1?
En los libros de estadística, siempre se discute por qué tenemos n – 1 en el denominador en la fórmula de la varianza, en lugar de n, lo que conduce al concepto de grados de libertad (degrees of freedom). Esta distinción no es importante ya que n es generalmente lo suficientemente grande como para que no haya mucha diferencia si dividimos entre n o n – 1. Pero en caso de que sea de interés, lo explicamos a continuación. Se fundamenta en la premisa de que deseamos hacer estimaciones sobre una población, basándonos en una muestra.
Si usamos el denominador intuitivo de n en la fórmula de la varianza, subestimaremos el valor real de la varianza y la desviación estándar en la población. Esto se conoce como estimación sesgada (biased). Sin embargo, si dividimos por n – 1 en lugar de n, la varianza se convierte en una estimación no sesgada (unbiased).
Explicar completamente por qué el uso de n conduce a una estimación sesgada implica la noción de grados de libertad, que tiene en cuenta el número de restricciones al calcular una estimación. En este caso, hay n – 1 grados 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.
La varianza, la desviación estándar y la desviación absoluta mediana son robustas a valores atípicos y extremos (consultar "Estimación de medianas robustas" en la página 10, donde se desarrolla un debate sobre estimaciones robustas para la localizació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 (median absolute deviation from the median) o MAD:
donde m es la mediana. Al igual que la mediana, la MAD no se ve influenciada por valores extremos. También es posible calcular la desviación estándar truncada análoga a la media truncada (consultar "Media" en la página 9).
La varianza, la desviación estándar, la desviación media absoluta y la desviación absoluta 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 mediana. A veces, la desviación absoluta mediana se multiplica por un factor de escala constante para adaptarla a la misma escala que la desviación estándar en el caso de una distribución normal. El factor que se utiliza normalmente de 1.4826 significa que el 50% de la distribución normal cae dentro del rango ± MAD.
Un enfoque diferente para estimar la dispersión se centra en observar la distribución de los datos ordenados. Los estadísticos que tienen como base los datos ordenados (clasificados) se denominan estadísticos de orden (order statistics). La medida más elemental es el rango (range): la diferencia entre los números de mayor y menor valor. Es de utilidad conocer los valores mínimos y máximos en sí, además de práctico, 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 la dispersión de datos.
Para evitar la sensibilidad a los valores atípicos, podemos observar el rango de los datos después de eliminar valores de cada extremo. Formalmente, este tipo de estimaciones se basan en diferencias entre percentiles (percentiles). En un conjunto de datos, el percentil P es un valor tal que al menos el P por ciento de los valores toman este valor o un valor inferior y al menos (100 - Pcuantilquantile