python - symfit 上的 Scipy 分布?
问题描述
我认为标题是自我解释的。
我真的想使用已经在 scipy.stats 上实现的几个 pdf 作为 symfit 模型的模型,例如CrystalBall或Johnson函数。我尝试过使用以下代码的高斯分布:
x = Variable('x')
mu = Parameter('mu')
sigma = Parameter('sigma')
model_sci = stats.norm.pdf(y, mean, sigma)
但我得到以下TypeError
TypeError:无法确定关系的真值
我相信这是因为 scipy 分发需要数字(或带有数字的可迭代对象)而不是 sympy 产生的符号。是否有可能使用此发行版而不是手动实现它们?
解决方案
可以使用 a 来做到这一点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}})
推荐阅读
- apache-nifi - 当多个 nifi 应用程序正在运行时,如何从特定于我的应用程序的 nifi 日志中捕获错误
- asynchronous - 超过承诺的渠道。为什么以及如何使用?
- reactjs - Redux-Saga 在 componentDidMount() 上未定义
- php - 覆盖 JMS 序列化器全局 camelCase
- excel - 使用 vba 在网页文本框中添加值
- node.js - 托管 Node.js 机器人(express 和 botkit)
- json - 将 Curl 的 JSON 结果流式传输到 Curl 的数据参数中
- google-apps-script - Clasp 无法创建新的 Apps 脚本
- angularjs - 是否可以使用 AngularJS 动态构建 HTML 模板?
- css - 从全局 SCSS 导入 SCSS 文件夹