Schreiben Sie die Beta-Distribution in Python

Ich habe das Gefühl, dass ich die DBDA-Welle verpasst habe, also habe ich alles in letzter Zeit selbst gelesen. DBDA verwendet R als Beispiel, aber ich habe es in Python geschrieben. Ich werde die Erklärung der Gefühle der Zeremonie weglassen, weil ich denke, dass es Informationen im Lehrbuch und im Internet gibt.

β-Verteilung

figure_1.png

Code

beta.py


#!/usr/bin/python
#-*- coding:utf8 -*-
"""
DBDA FIGURE 5.1
"""
import math
import numpy as np
from pylab import *

def beta(theta, a, b):
    """
    beta distribution

    theta^{alpha-1} * (1-theta)^{beta-1}
    ------------------------------------
               B(alpha, beta)

    B(alpha, beta)
      gamma(a) * gamma(b)
    = -------------------
        gamma(a + b)
    """
    B = math.gamma(a) * math.gamma(b) / math.gamma(a + b)
    return (theta ** (a - 1)) * ((1 - theta) ** (b - 1)) / B

if __name__ == '__main__':
    thetas = np.arange(0, 1, 0.01)
    params = [(0.5, 0.5), (1., 0.5), (2., 0.5), (3., 0.5), (4., 0.5),
              (0.5, 1.), (1., 1.), (2., 1.), (3., 1.), (4., 1.),
              (0.5, 2.), (1., 2.), (2., 2.), (3., 2.), (4., 2.),
              (0.5, 3.), (1., 3.), (2., 3.), (3., 3.), (4., 3.),
              (0.5, 4.), (1., 4.), (3., 4.), (3., 4.), (4., 4.)
             ]

    axisnum = 0
    for (a, b) in params:
        axisnum += 1
        subplot(5, 5, axisnum)
        betas = [beta(theta, a, b) for theta in thetas]
        plot(thetas, betas)
        xlim(0, 1.)
        ylim(0, 3.)
        text(0.5, 2.7, 'a=%.1f b=%.1f' % (a, b),
                horizontalalignment='center', verticalalignment='center')
        xlabel('theta')
        ylabel('p(theta)')
    show()

Recommended Posts

Schreiben Sie die Beta-Distribution in Python
Logistische Verteilung in Python
Schreiben Sie Python in MySQL
Schreiben Sie Pandec-Filter in Python
Schreiben Sie Python in Rstudio (reticulate)
Generieren Sie eine U-Verteilung in Python
Schreiben Sie eine Dichotomie in Python
Schreiben Sie ein JSON-Schema mit Python DSL
LightGBM-Score in Beta-Distribution eingepasst
Implementierung einer gemischten Normalverteilung in Python
Schreiben Sie einen HTTP / 2-Server in Python
Schreiben Sie die AWS Lambda-Funktion in Python
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Schreiben Sie Selentestcode in Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Schreiben Sie einen C-Sprach-Unit-Test in Python
Quadtree in Python --2
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Epoche in Python
Zwietracht in Python
Schreiben Sie eine kurze Eigenschaftsdefinition in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
Schreiben Sie die O_SYNC-Datei in C und Python
N-Gramm in Python
Programmieren mit Python
Schreiben Sie ein Caesar-Verschlüsselungsprogramm in Python
Plink in Python
Konstante in Python
Lesen und schreiben Sie JSON-Dateien mit Python
Schreiben Sie eine einfache Giermethode in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
Schreiben Sie mit f2py ein Python-Modul in fortran
Schreiben Sie ein einfaches Vim-Plugin in Python 3
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python