Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 初始能量不好:inf。该模型可能与pymc3中的基本线性回归模型指定错误_Python 3.x_Pymc3 - Fatal编程技术网

Python 3.x 初始能量不好:inf。该模型可能与pymc3中的基本线性回归模型指定错误

Python 3.x 初始能量不好:inf。该模型可能与pymc3中的基本线性回归模型指定错误,python-3.x,pymc3,Python 3.x,Pymc3,我试图在pymc3中建立一个贝叶斯推理模型,我得到以下错误: data = [[24, 38.7], [25, 38.6], [26, 38.9], [27, 41.4], [28, 39.7], [29, 41.1], [30, 38.7], [31, 37.6], [32, 36.3], [33, 36.9], [34, 35.7], [35, 33.8], [36, 33.2], [37, 30.1], [38, 27.8], [39, 22.8], [40

我试图在pymc3中建立一个贝叶斯推理模型,我得到以下错误:

data = [[24, 38.7], [25, 38.6], [26, 38.9], [27, 41.4], [28, 39.7], [29, 41.1], [30, 38.7], [31, 37.6],
        [32, 36.3], [33, 36.9], [34, 35.7], [35, 33.8], [36, 33.2], [37, 30.1], [38, 27.8], [39, 22.8],
        [40, 21.4], [41, 15.4], [42, 11.2], [43, 9.2], [44, 5.4], [45, 3.0], [46, 1.6]]


data = np.array(data)

x = data[:, 0]
y = data[:, 1]
plt.scatter(x, y, color="red")

with pm.Model() as change_point_model:

    switchpoint = pm.DiscreteUniform('switchpoint', lower=x.min(), upper=x.max())

    beta0 = pm.Normal('beta0', mu=40, sd=10)
    beta1 = pm.Normal('beta1', mu=90, sd=10)

    gamma0 = pm.Normal('gamma0', mu=0, sd=5)
    gamma1 = pm.Normal('gamma1', mu=0, sd=5)

    epsilon = pm.Normal('epsilon', mu=0, sd=1)

    intercept = pm.math.switch(switchpoint <= x, beta0, gamma0)
    x_coeff = pm.math.switch(switchpoint <= x, beta1, gamma1)

    y_pred = pm.Normal('y_pred', mu=intercept + x_coeff * x, sd=epsilon, observed=y)

    step1 = pm.NUTS([beta0, beta1, gamma0, gamma1])
    step2 = pm.Metropolis([switchpoint])

    # In this example we are deliberativelly choosing the metropolis sampler
    trace = pm.sample(2000, step=[step1, step2], progressbar=True)

pm.traceplot(trace[100:])

因此,在完成一些阅读之后,我发现
model.logp(model.test\u point)
返回了
-inf
。因此,如何解决此错误。非常感谢您的帮助

您正在用正态分布对正态分布的标准偏差进行建模。测试点为0.0,发生概率为0

如果您将
epsilon
更改为
Gamma('epsilon',alpha=2.0,beta=0.5)
或类似值,您应该没事

ValueError: Bad initial energy: inf. The model might be misspecified.