【发布时间】:2017-09-18 23:38:24
【问题描述】:
给定一个依赖于多个变量的函数,每个变量都有一定的概率分布,我如何进行蒙特卡罗分析以获得函数的概率分布。理想情况下,随着参数数量或迭代次数的增加,我希望该解决方案具有高性能。
例如,我为total_time 提供了一个等式,它取决于许多其他参数。
import numpy as np
import matplotlib.pyplot as plt
size = 1000
gym = [30, 30, 35, 35, 35, 35, 35, 35, 40, 40, 40, 45, 45]
left = 5
right = 10
mode = 9
shower = np.random.triangular(left, mode, right, size)
argument = np.random.choice([0, 45], size, p=[0.9, 0.1])
mu = 15
sigma = 5 / 3
dinner = np.random.normal(mu, sigma, size)
mu = 45
sigma = 15/3
work = np.random.normal(mu, sigma, size)
brush_my_teeth = 2
variables = gym, shower, dinner, argument, work, brush_my_teeth
for variable in variables:
plt.figure()
plt.hist(variable)
plt.show()
def total_time(variables):
return np.sum(variables)
【问题讨论】:
-
你试过pymc包吗?
标签: python montecarlo