{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Taller de Python - Estadística en Física Experimental - 2do día\n", "\n", "![taller_python](logos_python_fifa.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## _NumPy_: vectores, matrices y tablas de datos\n", "\n", "NumPy es LA biblioteca para cálculo vectorial. Además de contener un nuevo [tipo de dato](http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html) que nos va a ser muy útil para representar vectores y matrices, nos provee de un arsenal de [funciones de todo tipo](https://docs.scipy.org/doc/numpy/reference/routines.html).\n", "\n", "Vamos a empezar por importar la bliblioteca _numpy_. La sintaxis típica de eso era *import biblio as nombre*:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "El numero e = 2.72\n", "O el numero Pi = 3.141592653589793\n", "1.2246467991473532e-16\n" ] } ], "source": [ "import numpy as np # con eso voy a poder acceder a las funciones de numpy a través de np.función()\n", "\n", "# en ejemplo\n", "print('El numero e = {:.3}'.format(np.e))\n", "print('O el numero Pi = ', np.pi)\n", "\n", "# y podemos calcular senos y cosenos entre otras cosas\n", "print(np.sin(np.pi)) # casi cero! guarda con los floats!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Todo eso está muy bien, pero lo importante de numpy son los _arrays numéricos_. Los arrays numéricos nos van a servir para representar vectores (el objeto matemático) o columnas/tablas de datos (el objeto oriyinezco o de laboratorio).\n", "\n", "La idea es que es parecido a una lista: son muchos números juntos en la misma variable y están indexados (los puedo llamar de a uno dando la posición dentro de la variable). La gran diferencia con las listas de Python es que los arrays de numpy operan de la forma que todos queremos:\n", "1. Si sumamos o restamos dos arrays, se suman componente a componente.\n", "2. Si multiplicamos o dividimos dos arrays, se multiplican o dividen componente a componente.\n", "\n", "Veamos ejemplos usando la función *array* para crear arrays básicos." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "[ 6 8 10 12]\n", "[ 5 12 21 32]\n", "[1, 2, 3, 4, 5, 6, 7, 8]\n" ] } ], "source": [ "a = np.array([1, 2, 3, 4]) # array toma como argumento un vector_like (lista, tupla, otro array...vector_like)\n", "b = np.array([5, 6, 7, 8])\n", "\n", "print(type(a)) #Tipos de dato de a\n", "\n", "print(a + b) # vector suma\n", "print(a * b) # acá multiplicó\n", "\n", "# en el caso de las listas esto era muy molesto\n", "l1 = [1, 2, 3, 4]\n", "l2 = [5, 6, 7, 8]\n", "\n", "print(l1 + l2) # sumar concatena\n", "# print(l1 * l2) # esto ni siquiera se puede hacer!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y al igual que con las listas, uno puede acceder a elementos específicos de un array:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 2 3 4\n", "8\n", "[6 7 8]\n" ] } ], "source": [ "print(a[0], a[1], a[2], a[3]) # son 4 elementos, los indices van del 0 al 3\n", "# y más o menos vale todo lo que valía con listas\n", "print(b[-1]) # agarro al último elemento de b\n", "print(b[1:]) # desde el primero hasta el 3 (no incluido el final, nunca se incluye)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para facilitar la vida del usuario _numpy_ viene con un montón de rutinas de creación de arrays típicos. En particular, matrices típicas como las identidades o de todos elementos iguales a 1 o 0 y arrays con cierta cantidad de elementos entre dos números (muy útil para crear dominios para gráficos).\n", "\n", "Veamos ejemplos de esos:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Equiespaciado lineal: [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556\n", " 0.66666667 0.77777778 0.88888889 1. ]\n", "Como el range de las listas: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n", "Identidad de 3x3: [[1. 0. 0.]\n", " [0. 1. 0.]\n", " [0. 0. 1.]]\n", "\n", "[[0. 0. 0. 0.]\n", " [0. 0. 0. 0.]\n", " [0. 0. 0. 0.]\n", " [0. 0. 0. 0.]]\n", "\n", "[[1. 1. 1.]\n", " [1. 1. 1.]]\n", "\n", "[[1. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0.]\n", " [0. 0. 1. 0. 0.]\n", " [0. 0. 0. 1. 0.]\n", " [0. 0. 0. 0. 1.]]\n", "\n", "[[0. 0. 1. 0. 0.]\n", " [0. 0. 0. 1. 0.]\n", " [0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]]\n" ] } ], "source": [ "# equiespaciados\n", "equilin = np.linspace(0, 1, 10) # 10 número equiespaciados linealmente entre 0 y 1\n", "print('Equiespaciado lineal:', equilin)\n", "\n", "arange = np.arange(0, 1, 1./10) # como el range de Python pero puede venir con un paso en coma flotante\n", "print('Como el range de las listas:', arange)\n", "\n", "identidad = np.identity(3)\n", "print('Identidad de 3x3:', identidad)\n", "print()\n", "\n", "#otros para que prueben ustedes\n", "ceros = np.zeros((4, 4)) # todos ceros, matriz de 4x4\n", "unos = np.ones((2,3)) # todos unos, matriz de 2x3\n", "ojos = np.eye(5, k=0) # unos en la diagonal, como identidad\n", "ojos2 = np.eye(5, k=2) # qué pasó acá?\n", "\n", "print(ceros)\n", "print() \n", "print(unos)\n", "print()\n", "print(ojos)\n", "print()\n", "print(ojos2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y antes de seguir, algo que siempre puede ser útil: los arrays tienen ciertas propiedades como su _shape_ (de cuánto por cuánto) y el _dtype_ (qué tipo de cosas tiene adentro). Podemos acceder a estos datos de la siguiente manera:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "float64\n", "(100, 100)\n" ] } ], "source": [ "x = np.linspace(0, 10, 1000) # ese array tiene 1000 elementos, andar printeando es poco práctico!\n", "print(x.dtype) # array.dtype nos dice que tipo de elementos tiene el array\n", "ceros = np.zeros((100, 100)) # matriz de 100x100\n", "print(ceros.shape) # array.shape nos dice cuántas filas y columnas tiene el array\n", "\n", "\n", "# prueben que pasa cuando le piden el shape a un array con una sola fila o columna como el x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para construir un vector (o array) más complejo podemos usar las funciones `r_` y `c_` (busquen la documentación de `c_`, pero `r_` mostramos un ejemplo)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector concatenado: [-1. -0.7 -0.4 -0.1 0.2 0.5\n", " 0.8 2. 3. 4. 5. 5.11111111\n", " 5.22222222 5.33333333 5.44444444 5.55555556 5.66666667 5.77777778\n", " 5.88888889 6. ]\n", "Matriz concatenada: [[ 0. 6. 12. ]\n", " [ 1.25 7.25 13.25]\n", " [ 2.5 8.5 14.5 ]\n", " [ 3.75 9.75 15.75]\n", " [ 5. 11. 17. ]]\n" ] } ], "source": [ "print(\"Vector concatenado: \", np.r_[np.arange(-1, 1, 0.3), 2, 3, 4, np.linspace(5, 6, 10)])\n", "\n", "#Para concatenar tres vectores podemos usarlo\n", "a = np.linspace(0, 5, 5)\n", "b = np.linspace(6, 11, 5)\n", "c = np.linspace(12, 17, 5)\n", "print(\"Matriz concatenada: \", np.r_['0,2', a, b, c].T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "### Ejercicio 1\n", "\n", "Creen un vector \"dominio\" con 20 valores entre -5 y 5, y un vector \"imagen\" donde la imagen sea la de la función $x^2$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Realicen el ejercicio 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "### Ejercicio 2\n", "\n", "Creen una matriz de 15x15 con los números del 1 al 255.\n", "\n", "*Ayuda*: siempre que puedan utilicen las funciones de creación de arrays de numpy. \n", "\n", "*Ayuda* bis: la función _reshape_ hace lo que promete (reshapear) y puede tomar tuplas como argumento. (Si, hay que *googlear*. ¿Nunca les pasó?)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Realicen el ejercicio 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`numpy` es además la librería encargada de las operaciones de álgebra lineal. Ya de por si la suma y producto por escalar de arrays de dos dimensiones son operaciones matriciales. Leanse la documentación de `numpy.linalg` (o revisen nuestro apartado de álgebra lineal del taller numérico); la idea es que está hecho para ser MATLAB compatible." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gráficos, datos y ajustes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hacer gráficos es lo primero que aprendimos a hacer en *Origin*, así que es lo primero que vamos a aprender para reemplazarlo. Van a ver que no es nada complicado.\n", "\n", "Primero, debemos importar las bibliotecas necesarias para graficar, *numpy* por si no la teníamos, y de la biblioteca *matplotlib* (que tiene infinitas funciones y posibilidades), solamente *pyplot* de donde sacaremos las funciones que necesitaremos para graficar." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", "# muestra los gráficos en el mismo notebook\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importemos los datos que tenemos en el archivo datos.csv. Este archivo tiene tres columnas, x, y, errores en y. Separemoslos en tres variables" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Con esto cargamos los datos\n", "# Si vemos los archivos son dos columnas\n", "# que vamos a guardar como x, y\n", "data = np.loadtxt(\"doble_exp.dat\") \n", "\n", "x = data[:,0]\n", "y = data[:,1]\n", "error_y = data[:,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para tener un poco de intuición de los datos, sin el error en y, primeros grafiquemoslos con `plt.plot`" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Ploteamos. Los datos como puntos de color rojo\n", "plt.plot(x, y, 'ro', label = 'Datos')\n", "\n", "# Detalles del gráfico\n", "plt.grid(True) # Para que quede en hoja cuadriculada\n", "plt.title('Grafico ejemplo')\n", "plt.xlabel('Valores en x')\n", "plt.ylabel('Valores en y')\n", "plt.legend(loc = 'best') \n", "\n", "plt.show() # si no usaron %matplotlib inline, esto abre una ventanita con el gráfico\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notemos que dentro de la función *plot* pusimos como parámetros *ro* que significa que el color que queremos para la curva sea azul, y que el trazo sea una línea continua. Esto es customizable, pueden probar letras de otros colores (*g, r, y, k*) o bien otros trazos. \n", "\n", "Alteremos los ejes para que sean logaritmicos (_porque podemos_, aunque es un proceso standard cuando tenés datos \"exponenciales\") y los puntos de color verde" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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mdl4quc45Pz587njjjsAWLJkCQsXLtz2s7Vr13LyySdz8MEH85rXvIaVK1cCMDg4yPHHH8+BBx7IOeecQ3F17RtvvJEjjzySQw89lPe9731s2bJlu9e89NJLOeiggzjooIO47LLLxvweSrVUguia3UXPgh462jsQoqO9g54FPZ7FZNYi6jkOefrpp3PzzTezadMmVq5cyVFHHbXtZxdccAGHHXYYK1eu5OKLL+Zd73oXABdddBGve93rePjhhznllFNYsybX3f3II4/wrW99i5///Oc88MADTJ48md7e4UlsxYoVXHfddfz617/mV7/6Fd/4xjf47W9/O+b3Uazlprl2ze5yQjBrUfUchzz44INZvXo1S5YsYf78+cN+ds8993DrrbcC8IY3vIHBwUGeffZZ7rrrLr773e8CcOKJJ7LrrrsCsHz5clasWMERRxwBwMaNG9ljjz22u+cpp5yyrRjfqaeeyt13381hhx025vdS0JQJQtICYMF+++2XdShm1kRmtc+if2j7OnW1God8y1vewic+8Qn6+voYHBys+j4RwZlnnskXv/jFmsRVrabsYnKpDTOrRr3HIc866ywuuOACZs+ePez461//+m1dRH19fcycOZNddtmFY489lptuugmAO++8k7/+9a8AzJs3j1tuuYWnn34ayI1h9Pf3b3fP733ve2zYsIH169dz22238frXv74m76OgKVsQZmbVKHQv16uawt57781555233fELL7yQs846i4MPPpipU6dyww03ALmxiYULF3LggQdy9NFHM2tWriVzwAEH8IUvfIHjjz+erVu30tbWxpVXXklHR8e2ex5++OG8+93v5sgjjwTgnHPOqWn3EjT5ntRz5swJ7wdh48n7QTSeRx55hFe96lVZh9GQnnvuOQYGBrb7+5G0IiLmjHZ9U3YxmZlZ/TlBmJlZIicIMzNL1JQJwjvKmVmxZh5Lraex/r00ZYLwNFczK9hpp50YHBx0kigREQwNDbHTTjtVfQ9PczWzprb33nszMDDAX/7yl6xDaTjr16/nkEMOqfp6Jwgza2ptbW1V75g20fX19VW93Sg0aReTmZnVnxOEmZklcoIwM7NEThBNrh67Y5mZQZMOUrvcd05hd6zCBiiF3bEA73lhZmPWlC0Ir4PIqefuWGZmTZkgLKeeu2OZmTlBNLFyu2DVancsM2tt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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Ploteamos\n", "plt.plot(x, y, 'go', label = 'Modelo')\n", "\n", "# Detalles del gráfico\n", "plt.grid(True) # Para que quede en hoja cuadriculada\n", "plt.yscale('log')\n", "plt.xscale('log')\n", "plt.title('Grafico ejemplo')\n", "plt.xlabel('Valores en x')\n", "plt.ylabel('Valores en y')\n", "plt.legend(loc = 'best') \n", "\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Así aparece una recta a ajustar, con el proceso de linealizado. Esto ya lo deberían tener más o menos claro de cursar laboratorios, pero es algo muy importante; los algoritmos lineales de cuadrados mínimo (sea por la formula normal o por descendiente del gradiente) _siempre_ convergen. No les voy a contar toda la historia porque ya lo van a ver, pero por ahora creame\n", "\n", "Volviendo sobre la cosas para customizar los gráficos, pasense por el repositorio nuestro pero especialmente por la [*documentation* de *matplotlib*](http://matplotlib.org/)\n", "\n", "Finalmente, para graficar los errores además de los datos tenemos la función `plt.errorbar` (vean la documentación y entiendan por qué se usa como la usamos acá)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.errorbar(x, y, yerr=error_y, fmt='go', label=\"Datos\")\n", "\n", "# Detalles del gráfico\n", "plt.grid(True) # Para que quede en hoja cuadriculada\n", "plt.yscale('log')\n", "plt.xscale('log')\n", "plt.title('Grafico ejemplo')\n", "plt.xlabel('Valores en x')\n", "plt.ylabel('Valores en y')\n", "plt.legend(loc = 'best') \n", "\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Si necesitamos guardar cambios de los datos, por ejemplo con el logaritmo aplicado, podemos usar la función `np.savetxt`(que gaurdar en formato `csv`)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Guardamos y cargamos, a modo de ejemplo\n", "\n", "#vean que crea un archivo Datos_taller.txt\n", "np.savetxt('Datos_taller.txt', np.log(data[:,:-1]), delimiter = '\\t')\n", "\n", "Data = np.loadtxt('Datos_taller.txt', delimiter = '\\t') \n", "\n", "#plt.plot(Data[:,0],Data[:,1], 'r.') # Veamos que son los mismos datos, pero linealizados!\n", "plt.errorbar(Data[:,0],Data[:,1], yerr=1/y*error_y, fmt='ro')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obtenidos los datos y con un poco de inteligencia adquirida de ellos, queremos efectuar un ajuste. Para eso importamos la biblioteca con la función que usaremos, que aplica cuadrados mínimos para obtener los coeficientes." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from scipy.optimize import curve_fit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El algoritmo de cuadrados mínimos necesita la función con la que queremos ajustar (que como ya linealizamos, es lineal), que vamos a definir como como función lambda, dominio, los datos, un vector con los valores iniciales de los parámetros desde donde debe comenzar a iterar. Los parámetros iniciales son importantes para el ajuste correcto (aún para el caso lineal, aunque acá el método hace un guess correcto).\n", "\n", "La función nos devolverá 2 cosas. Primero, los parámetros optimizados por este algoritmo, ordenados como los pusimos en la función lambda cuando la definimos, que lo guardamos en el vector *popt*. Por otro lado nos dará la *matriz de covarianza* (recuerden, que tiene en su diagonal los $\\sigma^2$ de cada parámetro)." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.18030384 10.20836531]\n", "[[ 1.88619767e-05 -1.10627982e-04]\n", " [-1.10627982e-04 6.51123342e-04]]\n" ] } ], "source": [ "f = lambda x, A, B: A * x + B\n", "\n", "# Ajustamos, pero con las funciónes logaritmicas. Usamos propagación de errores\n", "popt, pcov = curve_fit(f, np.log(x), np.log(y), sigma = 1/y * error_y, \n", " absolute_sigma=True)\n", "\n", "print(popt)\n", "print(pcov)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Listo, ahora chequeamos con un gráfico que haya ajustado" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t = np.linspace(min(x), max(x), 1000) #Las funciones \"viejas\" de python siguen funcionando!\n", "t = np.log(t) #Aplico logaritmo\n", "plt.plot(np.log(x), np.log(y), 'ro', label = 'Datos')\n", "plt.plot(t, f(t, *popt), 'g-', label = 'Ajuste') #grafico la función\n", "\n", "# Detalles del gráfico\n", "plt.grid(True)\n", "plt.title('Grafico ejemplo')\n", "plt.xlabel('Valores en x')\n", "plt.ylabel('Valores en y')\n", "plt.legend(loc = 'best')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "¿Se les ocurre otra forma de obtener el ajuste que no sea por curve_fit? Revisen la librería `optimize`, ahí pueden encontrar la respuesta (y con lo que van a ver en las clases)\n", "\n", "### Ejercicio 3\n", "1. Hagan un ajuste sobre la función $f(x) = Acos(\\omega x)$ con $A = 2$ y $\\omega = 3$ para 40 valores en $Dom = [-\\pi, \\pi]$ con valores que varían el 15% del valor dado por el modelo, y compare los parámetros obtenidos con los dados.\n", "2. **Bonus track**: Se puede escribir en LaTeX sobre los gráficos. Averiguen qué biblioteca hace falta importar y presenten los parámetros ajustados en el título." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# Realicen el ejercicio 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Datos aleatorios. Histogramas\n", "\n", "Hasta ahora hicimos un análisis de datos adquiridos en el laboratorio, pero no hablamos de datos aleatorios (lo que manejamos cuando hablamos de estadísticas!)\n", "\n", "La computadora tiene internamente un mecanismo de creación de números _pseudoaleatorios_ (usando un algoritmo bastante elegante) que permite obtener muestras de una variable con distribución uniforme \"continua\" (¿me explican por qué las comillas?). Sobre eso, Python crea un montón de librerías para muestrear variables en otras distibuciones\n", "\n", "Y luego, vamos a crear histogramas, es decir un gráfico donde dividimos una serie de datos en rangos y contamos cuántos de nuestros datos caen en cada rango. A esos rangos se los llama _bins_. \n", "\n", "La función que vamos a usar es `plt.hist` toma como argumentos un array de números, en cuántos _bins_ queremos dividir a nuestro eje x y algunas otras opciones de color como constante de normalización y color de las barras.\n", "\n", "Hagamos un histograma simple de un set gaussiano. Para eso, creemos datos alrededor de algún valor medio usando _randn_ de _NumPy_:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/sheb/.pyenv/versions/3.7.2/envs/talleres_fifa/lib/python3.7/site-packages/matplotlib/axes/_axes.py:6521: MatplotlibDeprecationWarning: \n", "The 'normed' kwarg was deprecated in Matplotlib 2.1 and will be removed in 3.1. Use 'density' instead.\n", " alternative=\"'density'\", removal=\"3.1\")\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mu, sigma = 100, 15 # mu es mi valor medio, sigma la desviación\n", "x = mu + sigma * np.random.randn(10000) # Ya deben saber, que z = (x - mu)/s es una N(0,1)\n", "\n", "n, bins, patches = plt.hist(x, bins=50, normed=1, facecolor='green', \n", " edgecolor='black', alpha=0.75)\n", "# en la variable n se encuentran los datos del histograma\n", "# bins es un vector con los bordes de los rangos de datos\n", "# patches no nos interesa en general" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y ya que estamos, para mostrar cómo afecta la elección de _bins_, graficamos dos histogramas uno arriba del otro." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n, bins, patches = plt.hist(x, bins=100, normed=1, facecolor='green', alpha=0.75)\n", "n, bins, patches = plt.hist(x, bins=10, normed=1, facecolor='red', alpha=0.75)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Los bins los podemos construir como un array, con `linspace`, pero tenemos que recordar que estamos dando el borde derecho de los bins" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bins = np.arange(0, 200, 5)\n", "plt.hist(x, bins = bins, normed=1, facecolor='green', \n", " edgecolor='black', alpha=0.75);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "No solo podemos muestrear variables aleatorias con distribución normal, `numpy.random` tiene una gran selección de distribuciones. Aún así en la librería `scipy.stats` tenemos aún más distribuciones y funciones estadísticas, pero requieren otra forma de uso. Veamos como muestrar una distribución $\\chi^2$ con 3 grados de libertad" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import scipy as sp\n", "from scipy import stats #Tengo que importar la sublibrería\n", "\n", "X = sp.stats.chi2(df=3)\n", "\n", "t = np.linspace(0, 10, 1000)\n", "plt.plot(t, X.pdf(t), 'r-') #Puedo usar la PDF de la distribución así" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La variable `X` que construimos con `scipy.stats` tiene propiedades útiles para la inferencia estadística. Es más veamos su tipo y además usemos la función `help` para ver que contiene" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(type(X))\n", "#print(help(X)) #Hagan esto si están en un entorno no tan cool como Jupyter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El tipo `rv_frozen` se llama así porque es una distribución congelada en sus parámetros. Podríamos construir una distribución para un caso puntual a partir de la función `scipy.stats.chi2`, variando `df` en cada caso. Pero para mejorar la lectura, podemos considerar a `X` como una variable aleatoria, donde tenemos conocimiento de su distribución, de sus momentos y podemos muestrar de ella. \n", "\n", "Veamos primero los primeros momentos y la capacidad de integrar funciones arbitrarias" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.0 3\n", "6.0 15\n", "105.00000000000011 105.0\n" ] } ], "source": [ "print(X.mean(), X.moment(1))\n", "print(X.var(), X.moment(2)) #Calculen si está bien la varianza y el momento no centrado\n", "print(X.expect(lambda x: x**3), X.moment(3)) #Integral entre 0 e infinito de x**3. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mientras si queremos muestrar de la distribución tenemos la función `rvs`" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = X.rvs(10000)\n", "plt.hist(A, bins=50, normed=1, facecolor='green', \n", " edgecolor='black', alpha=0.75);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejercicio 4\n", "Muestren de la distribución exponencial con `scipy.stats` (que pueden ver [acá](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.expon.html#scipy.stats.expon)) y tomen 10000 muestras de esta distribución. ¿Se les ocurre una forma de encontrar una exponencial desde una uniforme? Verifiquen muestreando 1000 datos de la uniforme y aplicando la transformación que realmente es una exponencial" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# Realicen el ejercicio 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Con esto último ya tienen todas las herramientas para lidiar con las guías y el parcial, pero antes de terminar vamos a ver como agregarle barras de error a los histogramas.\n", "\n", "### Herramientas de ploteo estadístico\n", "Para hacer un gráfico de histograma con errores tenemos un par de opciones. La más intuitiva es usar las herramientas `pandas`, que permiten crear a partir de un histograma computado con `numpy.histogram` un gráfico de barras. La función, que pueden usar y adaptar para esto es" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_histogram(data, bins, ticks=5, xlabel='X', ylabel='Histograma', density=True, ecolor='', ax = None):\n", " N = len(data)\n", " num_bins = len(bins)\n", " xmin = min(bins)\n", " xmax = max(bins)\n", " \n", " \n", " if ax is None:\n", " ax = plt.gca()\n", " \n", " hist, _ = np.histogram(data, bins=bins, density=density)\n", " \n", " normed = N if density else 1\n", " error = np.sqrt(hist / normed) # por qué es así el error?\n", " \n", " # Se le puede pasar un yerr y xerr, como a errorbar\n", " # ecolor es el color de los errores y capsize es el tamaño del fin de barra de error\n", " plt.bar(x=bins[:-1], height=hist, width=np.diff(bins), yerr=error, edgecolor='black', ecolor=\"red\", capsize=2)\n", "\n", " plt.xticks(np.linspace(0, num_bins - 2, ticks), np.linspace(xmin, xmax, ticks), rotation='horizontal');\n", " plt.xlabel(xlabel);\n", " return ax\n", "\n", "plt.figure(figsize=(7 * 1.78, 7))\n", "ax = plot_histogram(A, np.linspace(0, 25, 50))\n", "plt.grid(True, axis='y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Yapa: Monte Carlo para estimación de parámetros\n", "\n", "El método de Monte Carlo en estadística pertenece a una familia de métodos de _remuestro_, que permite obtener, de muestras pequeñas de datos, estimadores con sus valor estimado y varianza. Veamos en qué consiste este método. \n", "\n", "Primero volvamos a cargar los datos de `double_exp.dat`" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "# Volvemos a cargar los datos y los guardamos en x, y\n", "data = np.loadtxt(\"doble_exp.dat\") \n", "\n", "x = data[:,0]\n", "y = data[:,1]\n", "error_y = data[:,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El método consiste en simular un nuevo conjunto de mediciones usando las propiedades del error, que en este caso asumimos gaussiano (podría ser de otra propiedad, pero por el teorema central del límite casi siempre será una distribución normal)." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Creo al azar datos dentro del error de y con distribución gaussiana\n", "yp = y + np.random.randn(y.shape[0]) * error_y\n", "plt.plot(x, yp, 'ro')\n", "plt.yscale('log')\n", "plt.grid()\n", "plt.errorbar(x, y, yerr=error_y, fmt='b*');" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/sheb/.pyenv/versions/3.7.2/envs/talleres_fifa/lib/python3.7/site-packages/ipykernel_launcher.py:10: RuntimeWarning: invalid value encountered in log\n", " # Remove the CWD from sys.path while we load stuff.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[-1.10647112 9.98056068]\n", "[[ 0.00089716 -0.00518763]\n", " [-0.00518763 0.03097218]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Creo al azar datos dentro del error de y con distribución gaussiana\n", "M = []\n", "logx = np.log(x)\n", "\n", "f = lambda x, A, B: A * x + B\n", "for i in range(10000):\n", " \n", " #Vuelvo a computar y\n", " yp = y + np.random.randn(y.shape[0]) * error_y\n", " logy = np.log(yp)\n", " \n", " #Dado que calculo el logaritmo, debo sacarme los valores NaN (que son logaritmos negativos)\n", " valid_idx = ~np.isnan(logy)\n", " \n", " p, cov = sp.optimize.curve_fit(f, logx[valid_idx], logy[valid_idx])\n", " \n", " M.append(p)\n", "\n", "M = np.array(M)\n", "\n", "#Valor medio y covarianza\n", "p = np.mean(M, axis=0)\n", "cov = np.cov(M.T)\n", "\n", "#Imprimamos\n", "print(p)\n", "print(cov)\n", "\n", "t = np.linspace(min(x), max(y), 1000)\n", "plt.grid()\n", "plt.errorbar(np.log(x), np.log(y), yerr=1/y * error_y, fmt='go')\n", "plt.plot(np.log(t), f(np.log(t), *p), 'r-');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Si revisan las cuentas de `curve_fit` les da un resultado sumamente parecido, lo que nos da un poco más de confianza en el método (o `curve_fit` hace algo parecido, fijense que `scipy` tiene a disposición el [código fuente](https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.curve_fit.html) de forma bastante a mano).\n", "\n", "Finalmente hagamos el histograma de ambos estimadores en 2D. Para eso usamos `numpy.histogram2d` que nos devuelve las cuentas, las coordenadas en `x`, `y`. Lean lo que dice histogram2d para entenderlo (y por qué usamos los bordes `xedges` e `yedges` con un elemento menos)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "counts, xedges, yedges = np.histogram2d(M[:,0], M[:,1], bins=100, normed=True);\n", "\n", "plt.xlim((min(M[:,0]), max(M[:,0])))\n", "plt.ylim((min(M[:,1]), max(M[:,1])))\n", "plt.xlabel(\"A\")\n", "plt.ylabel(\"B\")\n", "plt.contour(xedges[:-1], yedges[:-1], counts);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora la pregunta que deben hacerse, ¿están o no correlacionado los parámetros? ¿Tiene sentido?. \n", "\n", "### Ejercicio 5 (de yapa)\n", "Prueben ejecutar el ajuste no linealizado con Monte Carlo. Es decir en vez de ajustar una lineal, deben ajustar $$f(x|A,B,C,D, E) = A + B \\exp(C x) + D \\exp(E x)$$\n", "Elija como parámetros iniciales $A=10$, $B=130$, $C=-0.001$, $D=960$ y $E=-0.02$" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "#Ejercicio 5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bueno, con esto terminamos las sesiones del taller de Python. Esperemos que les haya servido, y que les sirva para avanzar en la materia (y en la vida profesional). A nosotros nos sirve y trabajamos con esto todo el tiempo\n", "\n", "Como siempre, tenemos en el reposotorio de Github (https://github.com/fifabsas/talleresfifabsas) este material y más cosas que vamos subiendo con el tiempo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Algunas referencias\n", "\n", "Páginas para leer \n", "http://pybonacci.org/2012/06/07/algebra-lineal-en-python-con-numpy-i-operaciones-basicas/\n", "http://relopezbriega.github.io/blog/2015/06/14/algebra-lineal-con-python/\n", "http://pendientedemigracion.ucm.es/info/aocg/python/modulos_cientificos/numpy/index.html\n", "\n", "\n", "Documentación \n", "https://docs.python.org/2/library/math.html\n", "http://docs.scipy.org/doc/numpy/reference/routines.linalg.html\n", "http://matplotlib.org/api/pyplot_api.html \n", "http://pandas.pydata.org/pandas-docs/stable/ (no la vimos, pero estos son los _dataframes_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Agradecimientos\n", "Todo esto es posible gracias al aporte de mucha gente.\n", "* A Ricardo Piegaia, Darío Rodrigues, Edgar Altszyler y Mauro Silberberg, los docentes de la materia, por darnos el espacio para ayudar y que se lleve a cabo este taller.\n", "* Gente muy copada del DF como Hernán Grecco, Guillermo Frank y Agustín Corbat por hacer aportes a estos talleres de diferentes maneras, desde poner su apellido para que nos presten un labo hasta venir como invitado a un taller.\n", "* El Departamento de Computación que cuatrimestre a cuatrimestre nos presta los labos desinteresadamente.\n", "* Pibes de la FIFA que prestan su tiempo a organizar el material y llevan a cabo el taller.\n", "* Todos los que se acercan y piden que estos talleres se sigan dando y nos siguen llenando los Labos. Sí ¡Gracias a todos ustedes!" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 1 }