Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
La premisa de este libro, y de los demás libros de la serie Piensa X, es que si sabes programar, puedes utilizar esa habilidad para aprender otros temas.
La mayoría de los libros sobre estadística bayesiana utilizan notación matemática y presentan las ideas utilizando conceptos matemáticos como el cálculo. Este libro utiliza código Python y aproximaciones discretas en lugar de matemáticas continuas. Como resultado, lo que sería una integral en un libro de matemáticas se convierte en una suma, y la mayoría de las operaciones sobre distribuciones de probabilidad son bucles u operaciones con matrices.
Creo que esta presentación es más fácil de entender, al menos para las personas con conocimientos de programación. También es más general, porque cuando tomamos decisiones de modelización, podemos elegir el modelo más adecuado sin preocuparnos demasiado de si el modelo se presta al análisis matemático.
Además, proporciona un camino fluido desde los ejemplos sencillos a los problemas del mundo real.
¿A quién va dirigido este libro?
Para empezar este libro, debes sentirte cómodo con Python. Si estás familiarizado con NumPy y pandas, eso te ayudará, pero te explicaré lo que necesitas a medida que avancemos. No necesitas saber cálculo ni álgebra lineal. No necesitas conocimientos previos de estadística.
En el Capítulo 1, defino la probabilidad e introduzco la probabilidad condicional, que es el fundamento del teorema de Bayes. El Capítulo 3 introduce la distribución de probabilidad, que es el fundamento de la estadística bayesiana.
En capítulos posteriores, utilizaremos diversas distribuciones discretas y continuas, como la binomial, la exponencial, la de Poisson, la beta, la gamma y la normal. Explicaré cada distribución cuando se presente, y utilizaremos SciPy para calcularlas, por lo que no es necesario que conozcas sus propiedades matemáticas.
Modelado
La mayoría de los capítulos de este libro están motivados por un problema del mundo real, por lo que implican cierto grado de modelización. Antes de poder aplicar los métodos bayesianos (o cualquier otro análisis), tenemos que tomar decisiones sobre qué partes del sistema del mundo real incluir en el modelo y qué detalles podemos abstraer.
Por ejemplo, en el Capítulo 8, el problema motivador es predecir el ganador de un partido de fútbol. Modelizo los goles como un proceso de Poisson, lo que implica que un gol es igual de probable en cualquier momento del partido. Esto no es exactamente cierto, pero probablemente sea un modelo suficientemente bueno para la mayoría de los propósitos.
Creo que es importante incluir la modelización como parte explícita de la resolución de problemas porque nos recuerda que debemos pensar en sobre los errores de modelización (es decir, los errores debidos a las simplificaciones y suposiciones del modelo).
Muchos de los métodos de este libro se basan en distribuciones discretas, lo que hace que algunas personas se preocupen por los errores numéricos. Pero para los problemas del mundo real, los errores numéricos son casi siempre menores que los errores de modelización.
Además, el enfoque discreto a menudo permite tomar mejores decisiones de modelado, y prefiero tener una solución aproximada a un buen modelo que una solución exacta a un mal modelo.
Trabajar con el Código
Leer este libro sólo te llevará hasta cierto punto; para entenderlo de verdad, tienes que trabajar con el código. La forma original de este libro es una serie de cuadernos Jupyter. Después de leer cada capítulo, te animo a que ejecutes el cuaderno y trabajes en los ejercicios. Si necesitas ayuda, mis soluciones están disponibles.
Hay varias formas de ejecutar los cuadernos:
-
Si tienes Python y Jupyter instalados, puedes descargar los cuadernos y ejecutarlos en tu ordenador.
-
Si no tienes un entorno de programación en el que puedas ejecutar cuadernos Jupyter, puedes utilizar Colab, que te permite ejecutar cuadernos Jupyter en un navegador sin instalar nada.
Para ejecutar los cuadernos en Colab, empieza desde esta página de inicio, que tiene enlaces a todos los cuadernos.
Si ya tienes Python y Jupyter, puedes descargar los cuadernos como archivo ZIP.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Piensa en Bayes, Segunda Edición, por Allen B. Downey (O'Reilly). Copyright 2021 Allen B. Downey, 978-1-492-08946-9".
Si crees que el uso que haces de los ejemplos de código queda fuera del uso justo o del permiso dado anteriormente, no dudes en ponerte en contacto con O'Reilly Media en permissions@oreilly.com.
Instalar Jupyter
Si aún no tienes Python y Jupyter, te recomiendo que instales Anaconda, que es una distribución gratuita de Python que incluye todos los paquetes que necesitarás. Anaconda me resultó fácil de instalar. Por defecto instala los archivos en tu directorio personal, por lo que no necesitas privilegios de administrador. Puedes descargar Anaconda desde este sitio.
Anaconda incluye la mayoría de los paquetes que necesitas para ejecutar el código de este libro. Pero hay algunos paquetes adicionales que debes instalar.
Para asegurarte de que tienes todo lo que necesitas (y las versiones adecuadas), la mejor opción es crear un entorno Conda. Descarga este archivo de entorno Conda y ejecuta los siguientes comandos para crear y activar un entorno llamado ThinkBayes2
:
conda env create -f environment.yml conda activate ThinkBayes2
Si no quieres crear un entorno sólo para este libro, puedes instalar lo que necesites utilizando Conda. Los siguientes comandos deberían conseguir todo lo que necesitas:
conda install python jupyter pandas scipy matplotlib pip install empiricaldist
Si no quieres utilizar Anaconda, necesitarás los siguientes paquetes:
-
Jupyter para ejecutar los cuadernos, https://jupyter.org;
-
NumPy para cálculo numérico básico, https://numpy.org;
-
SciPy para la computación científica, https://scipy.org;
-
pandas para trabajar con datos, https://pandas.pydata.org;
-
matplotlib para visualización, https://matplotlib.org;
-
empiricaldist para representar distribuciones, https://pypi.org/project/empiricaldist.
Aunque se trata de paquetes de uso común, no se incluyen en todas las instalaciones de Python, y pueden ser difíciles de instalar en algunos entornos. Si tienes problemas para instalarlos, te recomiendo que utilices Anaconda o alguna de las otras distribuciones de Python que incluyen estos paquetes.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
- Negrita
-
Indica los términos nuevos y clave.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/thinkBayes2e.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para obtener noticias e información sobre nuestros libros y cursos, visita http://oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://youtube.com/oreillymedia
Lista de colaboradores
Si tienes alguna sugerencia o corrección, envía un correo electrónico a downey@allendowney.com. Si realizo algún cambio basándome en tus comentarios, te añadiré a la lista de colaboradores (a menos que pidas que se te omita).
Si incluyes al menos parte de la frase en la que aparece el error, eso me facilita la búsqueda. Los números de página y de sección también están bien, pero no es tan fácil trabajar con ellos. Gracias.
-
En primer lugar, debo reconocer el excelente libro de David MacKay, Teoría de la Información, Inferencia y Algoritmos de Aprendizaje, , que es donde empecé a comprender los métodos bayesianos. Con su permiso, utilizo varios problemas de su libro como ejemplos.
-
Varios ejemplos y ejercicios de la segunda edición están tomados, con permiso, de Cameron Davidson-Pilon y un ejercicio de Rasmus Bååth.
-
Este libro también se ha beneficiado de mis interacciones con Sanjoy Mahajan, especialmente en otoño de 2012, cuando asistí a su clase sobre Inferencia Bayesiana en el Olin College.
-
Muchos ejemplos de este libro se desarrollaron en colaboración con alumnos de mis clases de Estadística Bayesiana en el Olin College. En particular, el ejemplo de la Línea Roja comenzó como un proyecto de clase de Brendan Ritter y Kai Austin.
-
Escribí partes de este libro durante noches de proyecto con el Grupo de Usuarios de Python de Boston, por lo que me gustaría agradecerles su compañía y su pizza.
-
Jasmine Kwityn y Dan Fauxsmith de O'Reilly Media corrigieron la primera edición y encontraron muchas oportunidades de mejora.
-
Linda Pescatore encontró una errata e hizo algunas sugerencias útiles.
-
Tomasz Miasko envió muchas correcciones y sugerencias excelentes.
-
Para la segunda edición, quiero dar las gracias a Michele Cronin y Kristen Brown de O'Reilly Media y a los revisores técnicos Ravin Kumar, Thomas Nield, Josh Starmer y Junpeng Lao.
-
Doy las gracias a los desarrolladores y colaboradores de las bibliotecas de software en las que se basa este libro, especialmente Jupyter, NumPy, SciPy, pandas, PyMC, ArviZ y Matplotlib.
Otras personas que detectaron erratas y errores son Greg Marra, Matt Aasted, Marcus Ogren, Tom Pollard, Paul A. Giannaros, Jonathan Edwards, George Purkins, Robert Marcus, Ram Limbu, James Lawry, Ben Kahle, Jeffrey Law, Álvaro Sánchez, Olivier Yiptong, Yuriy Pasichnyk, Kristopher Overholt, Max Hailperin, Markus Dobler, Brad Minch, Allen Minch, Nathan Yee, Michael Mera, Chris Krenn y Daniel Vianna.
Get Piensa en Bayes, 2ª Edición now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.