1
#-*-encoding:latin-1-*1
2
# Fun��es de log verossimilhan�a
3
# copyright 2007 by Fl�vio Code�o Coelho
7
from scipy.special import gammaln
15
hist: tupla (prob,classes) classes contem L.S. da classe
16
>>> Categor([1],([.3,.7],[0,1]))
23
ind = searchsorted(sup,x)
24
like += sum(log(prob[ind]))
37
like = sum(-0.5 * tau * (x-mu)**2)
38
like += n*0.5*log(0.5*tau/pi)
41
def Lognormal(x,mu,tau):
46
>>> Lognormal([0.5,1,1.2],0,0.5)
51
like = n * 0.5 * (log(tau) - log(2.0*pi)) + sum(0.5*tau*(log(x)-mu)**2 - log(x))
61
sumx = sum(x*log(mu)-mu)
62
sumfact = sum(log(scipy.factorial(x)))
68
Log-Like negative Binomial
69
>>> Negbin([2,3],6,0.3)
73
like = sum(r*log(p)+x*log(1-p)+log(scipy.factorial(x+r-1))-log(scipy.factorial(x))-log(scipy.factorial(r-1)))
79
>>> Binomial([2,3],6,0.3)
83
like = sum(x*log(p)+ (n-x)*log(1.-p)+log(scipy.factorial(n))-log(scipy.factorial(x))-log(scipy.factorial(n-x)))
86
def Weibull(x,alpha,beta):
89
>>> Weibull([2,1,0.3,.5,1.7],1.5,3)
96
like = n * (log(alpha) - alpha*log(beta))
97
# Kernel of the distribution
98
like += sum((alpha-1) * log(x) - (x/beta)**alpha)
104
>>> Bernoulli([0,1,1,1,0,0,1,1],0.5)
108
like = sum(x*log(p) + (1-x)*log(1.-p))
111
def Gamma(x,alpha,beta):
114
>>> Gamma([2,3,7,6,4],2,2)
120
#Normalizing constant
121
like = -n * (gammaln(alpha) + alpha*log(beta))
122
# Kernel of the distribution
123
like += sum((alpha - 1.0)*log(x) - x/beta)
129
>>> Beta([.2,.3,.7,.6,.4],2,5)
134
#Normalizing constant
135
like = n * (gammaln(a+b) - gammaln(a) - gammaln(b))
136
# Kernel of the distribution
137
like += sum((a-1.0)*log(x) + (b-1.0)*log(1.0-x))
140
def Simple(x,w,a,start=0):
149
if __name__=="__main__":
151
doctest.testmod(verbose=True)