Skip to main content

库存流量一致 (SFC) 模型生成

项目描述

介绍

库存流量一致 (SFC) 模型的创建和解决方案。目前正在建设中。

该框架基于 Sector 和 Model 对象之间的连接以算法方式生成方程。然后使用迭代解来求解这些方程。目标是可以使用几行高级代码生成具有数十个方程的复杂模型。然后,用户可以看到方程是如何从行业行为中产生的。

有关 Python 中 SFC 模型的另一种看法,请参见:https ://github.com/kennt/monetary-economics

在 Python 3.4 下开发,兼容 Python 2.7。

在“InstallationNotes.rst”中有一些安装说明

状态版本 1.0.0

此版本的sfc_models与即将发布的指南相关联(预计发布日期为 2017 年 10 月)。该框架几乎不完整,但可以使用它来创建一些相对复杂的模型。进一步的扩展可能必须旨在扩展到感兴趣的研究主题。现有的一组示例(和指南)应该为其他研究人员提供一个坚实的起点。

与 0.5.0 版本相比,变化很少。代码清理可能会出现在次要版本 1.0.x 中。

状态:版本 0.5.0

(部分添加于 2017-08-03。)

在 1.0 版之前,预计不会添加任何主要的新功能。唯一计划中的更改是加强示例代码,以及需要实施的任何修复。

介绍性文字即将完成。本文档旨在成为用户文档;代码库中嵌入的代码文档只是参考和实现细节。

版本 0.5.0 描述 语法更改

在 0.5 版中,Country 和 Sector 对象的构造函数顺序已更改。long_name(或描述)变量被降级为可选。现在可以只用两个参数创建对象

ca = Country(model_object, 'CA')

而不是(旧语法)

ca = Country(model_object, 'Canada', 'CA')

在我看来,这是对未来用户生活质量的重大改进,但代价是打破了我认为仍然是外部用户代码的一小部分基础。

1.0 版之路

另一个文本文件“RoadToVersion1.rst”描述了旨在合并到sfc_models版本 1.0 中的功能。

0.4.0 版本于 2017-03-06 发布。此版本涉及代码的重大重构,并改变了行为。

  • 该框架现在在扇区 FullCode 和局部变量名称之间注入双下划线 ('__') 而不是单下划线 ('_')。例如,家庭金融资产现在是“HH__F”而不是“HH_F”。此外,使用“__”创建局部变量被阻止。这意味着变量名中存在'__'意味着它是变量的全名;否则它是一个局部变量。(或者可能是一个像't'这样的全局变量。)

  • 创建了一个方程式类。它已经替换了 Sector 类的 Equations 成员中的字符串。它允许我们在方程中添加项,以便金融资产和收入方程(见下文)总是明确定义的。这个 Equation 类应该由求解器使用,但尚未合并;无法保证在 1.0 版发布之前会进行此类更改。

  • 创建了一个税前收入变量('INC')。它通常等于现金流入减去流出,但也有一些例外。(家庭消费、企业红利等)框架中的部门尽最大努力将现金流分类为是否影响收入,但用户可能需要手动创建例外(或添加)。(以前,收入是临时的。)

  • 创建了一个新模块 - sfc_models.sector;它将 Sector 类从模型模块中拉出。现有的部门.py被重命名为部门定义.py我从sfc_models.models 执行“import *”的旧示例代码不再有效。(?)

现在预计不会在 1.0 版发布之前进行 重大重构。(更新:之前的声明被证明是完全错误的;请参阅上面对描述更改的讨论。)因此,项目状态将在 0.4 版中更改为“测试版”。不希望创建新类的人不会使用的方法将在其名称前添加“_”(因此它们从 help() 中消失),但这被认为是可以接受的。否则,变量和方法只有在明显不遵循标准模式时才会被重命名。

子包:gl_book

子包 sfc_models.gl_book 包含从 Wynne Godley 和 Marc Lavoie 的文本“货币经济学”生成模型的代码。测试过程使用在别处计算的目标输出来验证sfc_models 是否有效地生成了相同的结果。应该注意的是, sfc_models必须以与人类不同的方式建立方程,因此有更多的方程(并且标记非常不同)。需要将“货币经济学”中的变量映射到sfc_models生成的变量,以验证它们是否获得相同的输出。

“kennt”前面提到的 GitHub 包包含 IPython 笔记本中这些模型的详细记录的解决方案。

实现的模型(这里的对象通常使用与货币经济学相同的名称):

  • 第 3 章SIM 模型、SIMEX

  • 第 4 章模型 PC

  • 第 6 章REG 模型(这里有两个版本;REG 和 REG2)。(我也有模型 OPENG 的变体。)

解决方法

SFC模型的单期解依赖于市场出清(不一定依赖价格调整,不像主流模型)。市场出清依赖于求解许多联立方程。

目前,机器生成的代码使用迭代的方法来求解x = f(x)(其中x是一个向量)。我们只是通过f(x)传递一个初始猜测向量并希望它收敛。

这适用于迄今为止测试的简单模型。目标是通过依靠经济直觉来减少搜索空间维度的蛮力搜索技术来增强这一点。这将需要灵活的货币模型。

依赖项

  • matplotlib:用于示例中的绘图。(基本上是可选的,如果求解器算法需要加强,以后可能需要。)

文档将放置在“docs”目录中。

示例在示例子包中。目前,在examples.scripts中以脚本的形式;稍后将开发部署功能。

“master”分支的测试覆盖率为 100%,目标是保持该标准。有些部分实际上是不可测试的,并且某些行似乎存在问题,这些行无疑被标记为未达到;他们已经被淘汰了:: # pragma: no cover

更改日志

  • 1.0.3修复 Python 3.7 的方程解析。

  • 1.0.0锁定与指南相关的版本。

  • 0.5.0更改扇区构造器顺序,示例开发。

  • 添加了0.4.3 install_examples() GUI。Python 2.7 修复。

  • 0.4.2小改动,支持从sfc_models.objects导入。

  • 0.4.1修复了 0.4.0 版的打包问题。

  • 0.4.0 打包不正确多文件记录器、初始(恒定)均衡计算、具有多个供应源的市场、自定义功能。模型创建中使用的方程对象。 更改了变量命名约定,消除了 Sector.Equations 成员。相当多的重构,开发人员使用的方法已用前导下划线隐藏。示例代码清理。

  • 0.3.0重建求解器,大量重构,示例安装,Godley & Lavoie 示例框架。

  • 0.2.1清理示例布局。

  • 版本 0.2 (应该是 0.2.0 - 哎呀)第一次将包部署到 PyPi。基本功能可操作,文档很少。

  • 早期版本:仅在 Github 上作为源提供。

许可/免责声明

版权所有 2016-2017 布赖恩·罗曼丘克

根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可,否则您不得使用此文件。您可以在以下网址获取许可证的副本

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可分发的软件将按“原样”分发,没有任何明示或暗示的保证或条件。有关许可下的特定语言管理权限和限制,请参阅许可。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

sfc_models-1.0.3.tar.gz (92.6 kB 查看哈希

已上传 source

内置分布

sfc_models-1.0.3-py2.py3-none-any.whl (120.4 kB 查看哈希

已上传 py2 py3