ベータ分布のプロット続き
http://d.hatena.ne.jp/showyou/20100524/1274686691
↑ではガンマ関数を自然数の範囲で使えるように定義してたけど、そもそもscipy.special.gamma使えばガンマ関数が普通に使えるんだった。
> import matplotlib > import pylab > import scipy > scipy.pkgload("special") > x = [ 0.01*i for i in range(100)] > gamma = scipy.special.gamma > def dbeta(x, a, b): return gamma(a+b)/(gamma(a)*gamma(b)) * x **(a-1) * (1-x)**(b-1) >matplotlib.pyplot.plot([ dbeta(xi , 3, 2) for xi in x])
そもそもscipy.stats.betaにベータ分布あるし。
import matplotlib import pylab import scipy scipy.pkgload("stats") x = [ 0.01*i for i in range(100)] a = [scipy.stats.beta.pdf(xi , 3, 2) for xi in x] matplotlib.pyplot.plot(a) matplotlib.pyplot.show()
http://docs.scipy.org/doc/scipy/reference/generated/scipy.special.gamma.html#scipy.special.gamma
http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.beta.html#scipy.stats.beta