Scipy symfit 上的分布?
Scipy distributions on symfit?
我认为标题不言自明。
我真的很想使用已经在 scipy.stats 上实现的几个 pdf 作为 symfit 模型的模型,例如 CrystalBall or Johnson 函数。我尝试使用以下代码进行高斯分布:
x = Variable('x')
mu = Parameter('mu')
sigma = Parameter('sigma')
model_sci = stats.norm.pdf(y, mean, sigma)
但我得到以下 TypeError
TypeError: cannot determine truth value of Relational
我相信这是因为 scipy 分布需要数字(或带有数字的迭代器)而不是 sympy 生成的符号。
是否有可能破解使用此发行版而不是手动实施它们?
可以使用 CallableNumericalModel
:
x = Variable('x')
y = Variable('y')
mu = Parameter('mu')
sigma = Parameter('sigma')
model_sci = lambda x, mu, sigma: stats.norm.pdf(x, mu, sigma)
model = CallableNumericalModel({y: model_sci}, connectivity_mapping={y: {x, mu, sigma}})
我认为标题不言自明。
我真的很想使用已经在 scipy.stats 上实现的几个 pdf 作为 symfit 模型的模型,例如 CrystalBall or Johnson 函数。我尝试使用以下代码进行高斯分布:
x = Variable('x')
mu = Parameter('mu')
sigma = Parameter('sigma')
model_sci = stats.norm.pdf(y, mean, sigma)
但我得到以下 TypeError
TypeError: cannot determine truth value of Relational
我相信这是因为 scipy 分布需要数字(或带有数字的迭代器)而不是 sympy 生成的符号。 是否有可能破解使用此发行版而不是手动实施它们?
可以使用 CallableNumericalModel
:
x = Variable('x')
y = Variable('y')
mu = Parameter('mu')
sigma = Parameter('sigma')
model_sci = lambda x, mu, sigma: stats.norm.pdf(x, mu, sigma)
model = CallableNumericalModel({y: model_sci}, connectivity_mapping={y: {x, mu, sigma}})