gpt4 book ai didi

python - 如何在pymc中实现简单的蒙特卡洛函数

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:20 25 4
gpt4 key购买 nike

我正试图了解如何使用 pymc 在 python 中实现蒙特卡罗函数,以复制 Douglas Hubbard 在他的书中 How to Measure Anything 中的电子表格

我的尝试是:

import numpy as np
import pandas as pd
from pymc import DiscreteUniform, Exponential, deterministic, Poisson, Uniform, Normal, Stochastic, MCMC, Model


maintenance_saving_range = DiscreteUniform('maintenance_saving_range', lower=10, upper=21)
labour_saving_range = DiscreteUniform('labour_saving_range', lower=-2, upper=9)
raw_material_range = DiscreteUniform('maintenance_saving_range', lower=3, upper=10)
production_level_range = DiscreteUniform('maintenance_saving_range', lower=15000, upper=35000)



@deterministic(plot=False)
def rate(m = maintenance_saving_range, l = labour_saving_range, r=raw_material_range, p=production_level_range):
return (m + l + r) * p

model = Model([rate, maintenance_saving_range, labour_saving_range, raw_material_range, production_level_range])
mc = MCMC(model)

不幸的是,我收到一个错误:ValueError:一个名为 maintenance_saving_range 的可计数 PyMC 对象已经存在。这会导致某些数据库后端出现问题。

我做错了什么?

最佳答案

啊,这是一个复制和粘贴错误。

我用相同的名称调用了三个发行版。

这是有效的代码。

import numpy as np
import pandas as pd
from pymc import DiscreteUniform, Exponential, deterministic, Poisson, Uniform, Normal, Stochastic, MCMC, Model
%matplotlib inline
import matplotlib.pyplot as plt

maintenance_saving_range = DiscreteUniform('maintenance_saving_range', lower=10, upper=21)
labour_saving_range = DiscreteUniform('labour_saving_range', lower=-2, upper=9)
raw_material_range = DiscreteUniform('raw_material_range', lower=3, upper=10)
production_level_range = DiscreteUniform('production_level_range', lower=15000, upper=35000)


@deterministic(plot=False, name="rate")
def rate(m = maintenance_saving_range, l = labour_saving_range, r=raw_material_range, p=production_level_range):
#out = np.empty(10000)
out = (m + l + r) * p
return out
model = Model([rate, maintenance_saving_range, labour_saving_range, raw_material_range])
mc = MCMC(model)
mc.sample(iter=10000)

关于python - 如何在pymc中实现简单的蒙特卡洛函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com