{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Statistik\n", "\n", "Dieses Kapitel umfasst die grafische Darstellung und Analyse von empirischen Daten." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zufallszahlen\n", "\n", "Obwohl streng gesprochen keine Statistik,\n", "sind Zufallszahlen in Computerprogrammen immer wieder notwendig\n", "und ein praktisches Hilfsmittel um diverse Statistiken zu illustrieren.\n", "\n", "Python's internes `random` modul hat einige praktische Funktionen:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import random" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fließkommazahl in [0, 1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.36461328514232505" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.random()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "zufällige Ganzzahl" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.randint(-10, 10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "mischen einer Liste (hier, die Zahlen von 0 bis 9)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 5, 1, 4, 9, 3, 8, 2, 6, 7]\n" ] } ], "source": [ "x = list(range(10))\n", "random.shuffle(x)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gauß'sche Normalverteilung, wobei `mu` der Mittelwert und `sigma` die Standardabweichung ist." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.790115275319303" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.normalvariate(mu = 1, sigma = 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Da Zufallszahlen in Programmen unvorhersebar sind,\n", "jedoch mit einer deterministischen Methode berechnet werden,\n", "gibt es die Möglichkeit den internen Status des Zufallszahlengenerators zu setzen.\n", "Dies passiert mit der `seed` Funktion und ist für Tests oder das reproduzieren bestimmter Ergebnisse nützlich." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6394267984578837 -1.2479729469788396\n", "0.6394267984578837 -1.2479729469788396\n" ] } ], "source": [ "# zweimal genau dieselbe Zufallszahl!\n", "random.seed(42)\n", "print(random.random(), random.normalvariate(mu = 1, sigma = 2))\n", "random.seed(42)\n", "print(random.random(), random.normalvariate(mu = 1, sigma = 2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Abzählstatistiken\n", "\n", "Mittels der Klasse [`Counter` in den `collections`](https://docs.python.org/2/library/collections.html#collections.Counter)\n", "([Counter in Python 3](https://docs.python.org/3/library/collections.html#collections.Counter)) können Listen abgezählt werden." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from collections import Counter\n", "from random import randint" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Multipliziere 10000 mal zwei zufällig von 1 bis 4 gewählte Ganze Zahlen.\n", "Welche Häufigkeiten gibt es und was sind die drei häufigsten Zahlen?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Counter({1: 638,\n", " 2: 1264,\n", " 3: 1227,\n", " 4: 1901,\n", " 6: 1224,\n", " 8: 1261,\n", " 9: 599,\n", " 12: 1240,\n", " 16: 646})" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numbers = [randint(1, 4) * randint(1, 4) for i in range(10000)]\n", "c = Counter(numbers)\n", "c" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(4, 1901), (2, 1264), (8, 1261)]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c.most_common(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Einfaches Balkendiagramm, mit Skalierung.\n", "Beachte, dass einige Zahlen überhaupt nicht vorkommen.\n", "\n", "**Frage**: warum kommt die 4 am häufigsten vor?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "ename": "TypeError", "evalue": "can't multiply sequence by non-int of type 'float'", "output_type": "error", "traceback": [ "\u001b[1;31m\u001b[0m", "\u001b[1;31mTypeError\u001b[0mTraceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m17\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"%2d: \"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mi\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m\"-\"\u001b[0m \u001b[1;33m*\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m30\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mTypeError\u001b[0m: can't multiply sequence by non-int of type 'float'" ] } ], "source": [ "for i in range(1, 17):\n", " print(\"%2d: \" % i + \"-\" * (c[i]/30))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Normal-/Exponential verteilter Punkte" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nGD/77DNCQkKIjY3VKkm7M5i9KSgymUxafcCd5L3L9D7Jvc6IklyUmxN3Fi5cSENDA+3t7R1+r8ol\no0ePxsvLi7lz57J8+XKmTp1KcHAwPj4+moxw+vRpramXOpMU4Oc//zlVVVVYWVnR1tbGc889x7vv\nvsvu3bt57LHHsLW1Rdzsh37q1ClaWlr4+OOPaW9vx9HRscMcTl9fX+rq6njqqafw8PDQeqebywHm\nRkiv17Ns2TL+8z//k6NHj2qDopOSksjOzsZoNLJgwYLbZmgIIbRZn6rUEhYWhslkIiEhgc2bN2tB\n37lz51os11fT+iy1BeiNXNETecM8FlJTU3NPlLffa+0DJPcOI8qgGwwGvvjiC65du6Y121Lzvp2d\nnamtrWXMmDE4ODjg7OyM0WgkKSmJrKwsysvL+d3vfofJZOL1118HICAggBkzZvCb3/yGTz/9lKKi\nIs6fPw9AXV0d586dY+7cucTExLB27VouXrzI888/j5eXF8XFxQQHB2Nra6sZvMbGRs0YqumAs2fP\nprKyktWrV5OUlHSL96nepB599FFmzpzJQw89xNNPP01KSor2mjMzM5k8eTI6nY7i4mICAwO1Pjad\njYrabGvu3Lmkp6ezfft2hBCsW7eOAwcO4Ovri7W1NW+//ba2FtWb3rFjh+bZq2mN4eHhVFRUdMip\n7++/qdp/vqCgoMuhIEOFvvSakUh6yogy6I6OjkRGRmreM4C1tTVtbW3Y29vj7u7O9evXeeaZZzh8\n+DA6nQ5bW1vN0AK8//77nD17lpKSEn7yk58wZcoU7O3t+eijjygtLaW2thZXV1cMBgNGo5HKyko+\n//xzzpw5Q3V1NRcvXtSMc1xcXAeD5+DgQGJiIhs3bkRRFN59910iIiKwsrK6xRNX16PX69m7dy8X\nLlygqqqK+vp69Hq9Vnik3BwsUV5ezqpVqzSZZ+XKlaxfv/4Wo1JdXU1OTg7e3t7k5uZqXq86Yamo\nqIg5c+Zo2TIqqmHPysqyOJVooMr/1V4yY8eOJTY2ltjY2CGtf/dHsyzp4Uu6YsRp6G1tbbi6uqLT\n6aitraWtrQ1ra2uMRiOlpaVERETw3Xff4eTkRGhoKCUlJbS3t/PSSy/h6OioleabTCb+/Oc/09LS\nQllZGZMmTSI4OFgr7QctqKE1/ho3bhy///3v8fLy0n5nPsjB/MOelZXFT37yEzIzMxk/fjwZGRlE\n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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 1000 # Anzahl der Punkte\n", "xx = [ random.expovariate(.5) for _ in range(N)]\n", "yy = [ random.normalvariate(10, 2) for _ in range(N)]\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.scatter(xx, yy, marker=\".\", color=\"black\", alpha=.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## NumPy/SciPy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es lassen sich leicht einfache Statistiken über Arrays or Matrizen berechnen:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data = np.array([\n", "[ 3.1, 3.3, 3.2, 3.0 ],\n", "[ 0.1, 11, 9999, 0],\n", "[ 31, -33, 11, 51],\n", "[-5.1, -.6, 1, 9.1]\n", "])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "630.44375000000002" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.mean()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 7.275, -4.825, 2503.55 , 15.775])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Spaltenweise\n", "data.mean(axis=0)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 3.15000000e+00, 2.50252500e+03, 1.50000000e+01,\n", " 1.10000000e+00])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Zeilenweise\n", "data.mean(axis=1)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "9999.0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.max()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 3.15, 5.55, 21. , 0.2 ])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Zeilenweiser Median\n", "np.median(data, axis=1)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 36.1, 44. , 9998. , 51. ])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Spaltenweise die range von Minimum bis Maximum\n", "np.ptp(data, axis=0)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.11803399e-01, 4.32809417e+03, 3.11126984e+01,\n", " 5.13176383e+00])" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Standardabweichung\n", "np.std(data, axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zufallszahlenarrays\n", "\n", "NumPy liefert in [numpy.random](http://docs.scipy.org/doc/numpy/reference/routines.random.html) eine Fülle von Funktionen für das effiziente Sampeln verschiedener Verteilungen in Arrays." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die vorhergehenden `xx` und `yy` listen lassen sich viel effizienter als NumPy Vektoren erzeugen:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xx = np.random.exponential(scale = 5, size = N)\n", "yy = 10 + 2 * np.random.randn(N)\n", "plt.scatter(xx, yy, color=\"black\", marker=\".\", alpha=.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SciPy beinhaltet in [scipy.stats](http://docs.scipy.org/doc/scipy-dev/reference/stats.html) eine Sammlung von statistischen Verteilungen, Methoden und Tests.\n", "Viele alltägliche Anwendungen sind damit abgedeckt.\n", "\n", "Das allgemeine Schema ist hierbei so,\n", "dass für jede der diskreten oder kontinuierlichen Verteilungen jeweils eine Liste bestimmter Funktionen implementiert sind.\n", "\n", "* `pdf` und `cdf` sind beispielsweise die Dichte- und kumulierten Dichteverteilungen,\n", "* `rvs` zum Sampeln zufälliger Werte,\n", "* und schließlich `fit` zum Anpassen an gegebene Daten und\n", "* `stats` für generelle Daten über die Verteilung." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import scipy.stats as sps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "10 Bernulli-verteilte Zahlen, mit Wahrscheinlichkeitsparameter `p = 0.2`:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 0, 0, 0, 0, 0, 1, 0, 1])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sps.bernoulli.rvs(.2, size = 10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rekonstruktion unserer Parameter der Normalverteilung (siehe `yy` oben)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(10.04454503926571, 2.0309183722908273)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sps.norm.fit(yy)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es gibt in `scipy.stats` auch eine Reihe von statistischen Funktionen und Tests.\n", "Beispielsweise gibt es den berühmten [T-Test](http://en.wikipedia.org/wiki/Student's_t-test),\n", "um herauszufinden ob zwei unterschiedliche Samples den gleichen Mittelwert haben." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sierpinsky Dreieck\n", "\n", "Als visuelles Ergebnis eines Zufallsprozesses." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "N = 2000\n", "edges = np.array([[0, 0], [2, 0], [1, 2]], dtype=np.float)\n", "sierp = np.empty((N, 2))\n", "point = edges[0]\n", "\n", "for i in range(3, N):\n", " edge = edges[random.randint(0, 2)]\n", " point = (point + edge) / 2\n", " sierp[i] = point\n", "\n", "plt.scatter(*sierp.T, s=1, marker=\".\", c=\"b\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (Welch's) T-Test\n", "\n", "`male` und `female` sind (halbwegs normalverteilte) Prüfungsergebnisse.\n", "Gibt es einen signifikanten Unterschied?\n", "Die $H_0$ [Nullhypothese](http://en.wikipedia.org/wiki/Null_hypothesis) wäre, dass die Mittelwerte gleich sind.\n", "Die Ergebnisse des Tests liegen aber über der 1% bzw. 5% Schranke ($\\sim 55.2\\%$)\n", "und daher kann die Nullhypothese nicht verworfen werden.\n", "In der Tat sind die Mittelwerte jedoch nicht gleich,\n", "jedoch kann der Test dies aufgrund der kleinen Datenmenge bzw. großen Streuung dies nicht erkennen." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [], "source": [ "male = [3, 4, 1, 2, 2, 1, 3, 4, 2, 3, 2, 3, 3, 4, 4, 3, 3, 5, 1, 4,\n", " 2, 3, 3, 2, 1, 5, 3, 3, 1, 2]\n", "female = [3, 3, 2, 3, 4, 3, 1, 4, 1, 2, 1, 3, 2, 3, 4, 1, 3, 3, 3, 2]" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(2.7333333333333334, 1.1234866364235143, 3.0)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(male), np.std(male), np.median(male)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(2.5499999999999998, 0.97339611669658921, 3.0)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(female), np.std(female), np.median(female)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Ttest_indResult(statistic=0.59990642797746641, pvalue=0.55161451342571177)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sps.ttest_ind(male, female, equal_var = False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Statsmodels\n", "\n", "Eine mächtigere Bibliothek für statistische Modellierung und Rechnung ist [Statsmodels](http://statsmodels.sourceforge.net/)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Anaconda (Python 3)", "language": "python", "name": "anaconda3" }, "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }