我正在尝试用Python生成一个3参数的Sigmoid威布尔概率分布。我希望能够在保持其他参数不变的情况下更改位置参数。我认为这会很容易,但我不明白为什么这不起作用。我把我的威布尔定义为:
alpha = 1 (location)
beta = 2 (slope)
gamma = 0 (lower asymptote of y-axis)
y(alpha, beta, gamma) = 1 - (1 - gamma) * exp(-((xx/alpha)**beta)) 当我改变alpha .5,1,1.5时,我希望得到3个斜率相同的函数,但起点不同。我的标度是y上的0>1。
但我得到了:

(线条为alpha .5,1,1.5L> R)
总结:我希望能够在不改变函数斜率的情况下设置曲线位置参数。有人能帮我吗?我对这类事情有点陌生,所以很抱歉我太天真了。
发布于 2020-04-13 20:31:36
你不能。位置和斜率都取决于alpha和beta。
例如,你可以通过求解y=0.5来了解这一点,并通过微分来找到斜率。
Stackoverflow无法显示数学公式(Latex),因此公式以图像形式给出。
Y=0.5的X值:

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()https://stackoverflow.com/questions/61186440
复制相似问题