2013-11-26 3 views
0

Я хочу сравнить все вероятности distributions от numpy.random. В идеале я бы хотел увидеть набор графиков, сравнивающих их, но я открыт для других идей.Как сравнить функции распределения вероятности Numpy.random

Я могу представить, как проходить через каждую функцию и строить с использованием matplotlib. Возможно, кто-то это сделал раньше?

+0

«Я прошу от лени/на будущее каждого.» kinda говорит все это? (отсюда -1) – usethedeathstar

+0

Удалено ... Не хотелось никого отбрасывать! – atomh33ls

+0

Да, но в stackoverflow вы должны показать, что у вас есть базовое представление о том, как это сделать, и что вы пытались, но не смогли (и, в частности, где вы потерпели неудачу, так как именно здесь сообщество пытается вам помочь, мотивация не может быть излечена нами) – usethedeathstar

ответ

2

Я не уверен, что все функции напрямую сопоставимы. Тем не менее, те функции, которые я мог сравнить приведены ниже: numpy.random pdfs

код:

loc, scale = 0., 1 
    x=np.arange(-8., 8., .01) 
    laplace = np.exp(-abs(x-loc/scale))/(2.*scale) 
    gumbel = (1/scale)*np.exp(-(x - scale)/scale)* np.exp(-np.exp(-(x - scale) /scale)) 
    logistic = np.exp((loc-x)/scale)/(scale*(1+np.exp((loc-x)/scale))**2) 
    normal = 1/(scale * np.sqrt(2 * np.pi))*np.exp(- (x - loc)**2/(2 * scale**2)) 
    lognormal = (np.exp(-(np.log(x) - loc)**2/(2 * scale**2))/ (x * scale * np.sqrt(2 * np.pi))) 
    rayleigh = (x/(scale*scale))*(np.exp((-x*x)/(2*scale*scale))) 
    standard_cauchy = 1/(np.pi*(1+(x*x))) 


    plt.plot(x,gumbel,label='gumbel scale=1') 
    plt.plot(x,laplace,label='laplace scale=1, loc = 0') 
    plt.plot(x,normal,label='normal scale=1, loc = 0') 
    plt.plot(x,logistic,label='logistic scale=1, loc = 0') 
    plt.plot(x,lognormal,label='lognormal scale=1, loc = 0') 
    plt.plot(x,rayleigh,label='rayleigh scale=1') 
    plt.plot(x,standard_cauchy,label='standard_cauchy') 
Смежные вопросы