Écrire une distribution bêta en Python

J'ai l'impression d'avoir raté la vague DBDA, alors je l'ai lu tout seul récemment. DBDA utilise R comme exemple, mais je l'ai écrit en Python. J'omettrai l'explication des sentiments de la cérémonie parce que je pense qu'il y a des informations sur le manuel et sur le Web.

Distribution β

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

Écrire une distribution bêta en Python
Distribution logistique en Python
Ecrire Python dans MySQL
Ecrire des filtres Pandec en Python
Ecrire python dans Rstudio (réticulé)
Générer une distribution U en Python
Ecrire une dichotomie en Python
Ecrire un schéma JSON avec Python DSL
Score LightGBM ajusté dans la distribution bêta
Implémentation de distribution normale mixte en python
Ecrire un serveur HTTP / 2 en Python
Ecrire une fonction AWS Lambda en Python
Ecrire des algorithmes A * (A-star) en Python
Ecrire le code de test du sélénium en python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Ecrire un test unitaire de langage C en Python
Écrire de la documentation dans Sphinx avec Python Livereload
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Ecrire le test dans la docstring python
Époque en Python
Discord en Python
Ecrire une courte définition de propriété en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
Ecrire le fichier O_SYNC en C et Python
N-Gram en Python
Programmation avec Python
Ecrire un programme de chiffrement Caesar en Python
Plink en Python
Constante en Python
Lire et écrire des fichiers JSON avec Python
Ecrire une méthode de cupidité simple en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
Ecrire un module python dans fortran en utilisant f2py
Ecrire un plugin Vim simple en Python 3
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python