有关该项目
PySD于2014年由 James P Houghton 将Vensim模型转换为Python。将SD模型转换成Python的最初目标是能够利用Python中可用的所有工具,从而扩大使用Vensim的可能性。
自该库创建以来,许多人通过报告和修复错误以及添加新功能为该项目做出了贡献。这些贡献列在 contributions section of the GitHub repository .
使PySD达到当前状态的一些重大变化是2017年开发了XMILE到Python的转换器, Alex Prey 并通过抽象绘图对转换和模型构建进行重组 Eneko Martin-Martinez 2022年
3.0.0版之前的一些其他贡献包括:
Julien Malard-Adam 为Vensim解析器添加了unicode支持。
sdCloud.io 开发团队为改善XMILE支持并将PySD集成到其基于云的模型模拟环境中做出了巨大贡献。
Eneko Martin-Martinez 推进了Vensim和XMILE的订阅功能,并包括对多个Vensim功能的支持,并提高了性能。
Roger Samsó 包括Vensim草图的解析器,并添加了根据草图信息按视图拆分Vensim模型的选项。
自3.0.0版本以来所做的更改在 有什么新 科.
动机:大数据时代(即将到来)
过去几年,社交和商业数据收集量大幅增长,人们对使用这些数据了解社交和商业系统行为的兴趣也相应高涨。“数据科学”领域正在开发一系列处理和分析数据的新技术,以应对对见解的需求的增长和计算资源能力的增强。
然而,到目前为止,这些新技术在很大程度上仅限于统计总结、分类和推理的变体;如果使用因果模型,它们通常本质上是静态的,忽略了相关系统的动态复杂性和反馈结构。随着数据科学领域的成熟,对超越通过因果理解非结构化的分析的见解的需求将会越来越大。那时,数据科学家可能会寻求将系统结构的动态模型添加到他们的工具箱中。
系统动力学领域一直对学习社会系统感兴趣,并专注于理解动态复杂性。同样,将各种形式的数据纳入系统动力学模型也有着悠久的传统。虽然系统动力学实践可以从大量新的社会数据中获益,但社区尚未从数据科学革命中充分受益。
造成这种情况的原因有多种,最大的可能是两个社区尚未在很大程度上融合。另一个也是最终更容易处理的原因是,系统动力学工具和数据分析工具没有紧密集成,使得联合方法分析变得笨拙。存在丰富的问题空间,取决于这些领域相互支持的能力,因此需要帮助这两种方法学协同工作的工具。PySD旨在满足这一需求。
集成系统动态模型和数据分析的一般方法
在考虑如何在数据科学应用中使用系统动力学技术之前,我们应该考虑系统动力学界传统上处理数据和模型集成的各种方式。
使用数值数据支持建模工作的第一个范例是将数据导入系统动力学建模软件。用于比较模型与数据的算法内置于工具本身,并且可以通过图形前端界面(如Vensim中的模型拟合)或通过工具特有的编程环境使用。当马尔可夫链蒙特卡罗分析等新技术与系统动力学社区相关时,它们通常被纳入SD工具。
这种方法适当地迎合了希望利用成熟的数据科学技术而无需学习编程语言的系统动态建模人员,并将系统动态的功能扩展到集成模型分析的基础。
第二类工具使用标准系统动力学工具作为在编码环境中执行分析的计算引擎。这是探索性建模分析(EMA)收件箱或行为分析和测试软件(BATS)所采用的方法。这是将系统动态引入更具包容性的分析环境的第一步,可以理解许多新型模型,但对与模型的交互深度以及扩展模拟以支持大型分析的能力施加了限制。
第三类工具导入传统工具创建的模型,以独立于原始建模工具执行分析。其中一个例子是SDM-Doc,一种模型文档工具,或Abdel-Gawad et.阿尔。'的特征向量分析工具。PySD属于这第三类。
PySD的中心范式是,将系统动态学的成熟功能带入数据科学积极开发的环境中比试图将推理和机器学习的每一项新开发带入系统动态飞地更有效。
PySD读取一个模型文件(Vensim或Stella/iThink等建模程序的产品),并将其交叉编译为Python,提供一个可以在Python环境中本地运行这些模型的模拟引擎。它不是这些工具的替代品,也不能用来取代可视化模型构造环境。