Поведение параметра распределения Вейбулла с 3 параметрами - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь сгенерировать 3-х параметрическое распределение вероятностей Сигмоида Вейбулла в Python. Я хочу иметь возможность изменять параметр местоположения, сохраняя все остальное постоянным. Я думал, что это будет довольно легко, но я не могу понять, почему это не работает. Я определяю свой Вейбулл как:

alpha = 1 (location)
beta = 2 (slope)
gamma = 0 (lower asymptote of y-axis)    

y(alpha, beta, gamma) =  1 - (1 - gamma) * exp(-((xx/alpha)**beta)) 

Поскольку я изменяю альфа [.5, 1, 1.5], я ожидал получить 3 функции с одинаковым наклоном, но с разными начальными точками. Моя шкала 0> 1 по y.

Но я получаю:

Weibuls a = (.5, 1 , 1.5)

(строки альфа [.5, 1 , 1.5] L> R)

Подводя итог: я хочу иметь возможность установить параметр местоположения кривой без изменения наклона функции. Может кто-нибудь мне помочь? Я немного новичок в этом, поэтому извиняюсь за наивность.

1 Ответ

0 голосов
/ 13 апреля 2020

Вы не можете. И местоположение, и наклон зависят от альфы и беты.

Вы можете увидеть это, решив, например, для y = 0,5 и дифференцировать, чтобы найти наклон.

Stackoverflow не может отображать математические формулы (латекс ), поэтому формулы приведены в виде изображений.

значение x для y = 0,5: x value for y=0.5

Наклон при x = 1: slope at x=1

РЕДАКТИРОВАТЬ: для полноты, вот код, чтобы показать графики:

import matplotlib.pyplot as plt
import numpy as np

def f(a,b,g,x):
   return  1 - (1 - g) * np.exp(-((x/a)**b)) 

x = np.linspace(0, 3, 100)
plt.figure(figsize=[4,3])
for a in [0.5,1,1.5]:
   y = f(a,2,0,x)
   plt.plot(x,y)
plt.show()
...