异构代理资源和工具包
econ-ark的Python项目详细描述
异构代理资源和工具包(hark)
预发布0.10.1
目录:
一、介绍
欢迎收听!这份文件将告诉你如何振作起来 在你的机器上运行,如何开始使用它,并给你一个 工具包主要元素概述。
如果您对代码或文档有任何评论,或者(甚至更好)如果您想 贡献新的内容给哈克,我们很高兴听到你的消息! 我们的电子邮件地址是:
- 克里斯·卡罗尔:ccarroll@llorracc.org
- 马修·怀特:mnwhite@gmail.com
github存储库:https://github.com/econ-ark/hark rel="nofollow">https://github.com/econ ark/hark
在线文档:https://econ-ark.github.io/hark" rel="nofollow">https://econ ark.github.io/hark
用户指南:documentation/harkmanual.pdf(在hark存储库中)
hark功能演示:demark
使用ark进行的复制和探索:备注
Ⅱ。快速入门指南
安装hark
hark是一个用python编写的开源项目。它与两种python都兼容 2和3,以及python 2和3的anaconda发行版。但我们建议 使用Python3;最终将结束对Python2的支持。
用pip安装hark
安装hark的最简单方法是使用pip。
要使用pip安装hark,请在命令行中键入pip install econ ark
如果您是通过PIP安装的,我们建议您使用虚拟环境,如virtualenv。创建虚拟环境将econ ark的安装与任何其他python工具和包的安装隔离开来。
安装virtualenv,然后创建名为econ ark的环境,最后激活该环境:
cd [directory where you want to store the econ-ark virtual environment]
pip install virtualenv
virtualenv econ-ark
source activate econ-ark
对水蟒使用hark
使用pip安装hark并不能让您完全访问hark的许多图形功能。访问这些功能的一种方法是使用anaconda,它是python的一个发行版,以及许多在科学计算中经常使用的包。
为您的操作系统下载anaconda,并按照anaconda.com上的安装说明进行操作。
水蟒包括它自己的虚拟环境系统,称为conda,它将环境存储在一个预设的位置(所以你不需要必须选择)。因此,为了创建和激活Econ Ark虚拟环境:
< > >open spyder,一个用于python(特别是ipython)的交互式开发环境(ide)。您可以通过anaconda的图形界面执行此操作,也可以通过命令行/提示符执行此操作。为此,只需打开命令行/提示符并键入
spyder
要验证Spyder是否有权访问hark,请在Spyder中的ipython shell中键入
pip install econ ark
。如果您成功地安装了如上所述的hark,您应该会看到许多消息说"需求已满足"。如果这不起作用,则需要手动将hark添加到spyder环境中。为此,您需要从github获取代码并将其导入spyder。要从github获取代码,您可以克隆它或下载压缩文件。
如果您已经在命令行上安装了git,请在您选择的目录中键入
git clone git@github.com:econ ark/hark.git
(此处有详细信息)。- 如果您的计算机上没有可用的git,则可以下载github桌面应用程序并使用它制作本地克隆。
如果您不想克隆hark,只想下载它,请转到github上的hark存储库。在右上角有一个按钮,上面写着"克隆或下载"。单击"下载zip"选项,然后将内容解压缩到所选目录中。
在目录中找到hark的副本后,返回到spyder并导航到放置hark的目录。这可以在Spyder中通过执行
import os
然后使用os.chdir()
更改目录来完成。chdir
在大多数操作系统上的工作方式与cd在命令提示符下的工作方式类似,只是它接受一个字符串作为输入:os.chdir('music')
移动到当前工作目录的music子目录。 < > >- hark中的大多数模块只是工具的集合。有一些示范 使用安装hark时自动获得的工具的应用程序--它们在下面的应用程序模块中列出。hark的一组更大的用法可以在两个存储库中找到: < > >
完全复制了解决离散连续退休储蓄问题的论文
- 对所涉及问题的非正式讨论是在这里
来自经验mpcs的结构估计是在一篇著名论文的讨论中使用工具包的一个例子。(是的,使用起来非常简单,您可以在可用于编写讨论的有限时间内根据其他人的数据估计结构模型)
先从一个温和的hark介绍开始,让你的脚湿润。
按照Gourinchas和Parker的2002年经济计量论文或Cagetti的2003年论文的思路,一种简单的间接推断/模拟矩结构估计方法由solvingmi执行。crodsops备注;此代码实现了这些课堂讲稿中相应章节中描述的解决方案方法
- 我们的Workhorse模块是consindshockmodel.py
- 这一点在本Jupyter笔记本中进行了探讨和解释
导航到要放置存储库的位置,然后键入
git clone git@github.com:econ ark/hark.git
(此处有更多详细信息)。如果遇到权限被拒绝的错误,您可能需要为github设置ssh,或者可以使用https:'git clonehttps://github.com/econ ark/hark.git'。然后,创建并激活虚拟环境
< > >激活virtualenv后,您可以在命令提示符中看到
(econ ark)
(取决于您的机器的配置方式)确保更改为hark目录,并使用
pip install-r requirements.txt将hark的需求安装到虚拟环境中。
要检查所有设置是否正确,请使用
python-m unittest运行hark的测试
< > >- readme.md:您当前正在读取的文件。
- documentation/harkdoc.pdf:为2015年12月hark研讨会制作的迷你用户指南,非正式地代表alpha版本。(基本过时)。
- documentation/harkmanual.pdf:hark的用户指南,为波尔多CEF 2016测试版编写。相对于harkdoc.pdf,应该少包含90%的谎言。
- 文档/harkmanual.tex:用户指南的乳胶源。开源代码可能也需要开源手册。
- documentation/consumptionsavingmodels.pdf:hark中各种消费节省模型的数学描述,以及它们如何映射到代码中。
- 文档/consumptionsavingmodels.tex:用于"models"写入的乳胶源。
- 文档/nark.pdf:变量命名con哈克的通风,加上与乳胶变量定义的一致性。仍在开发中。
- hark/core.py: 哈克的"微观经济"和"宏观经济"模型框架。 我们有点滥用这些术语作为速记;有关 描述我们的意思。hark中的每个模型都扩展了类 此模块中的代理类型和市场。运行时不执行任何操作。
- hark/utilities.py: 通用工具和实用工具。包含文字实用函数 (在经济意义上),用于进行离散近似的函数 为了便于连续分布,基本绘图函数, 还有一些无法归类的东西。运行时不执行任何操作。
- hark/estimation.py: 估计模型的函数。实际上,它只有一些包装纸 用于scipy.optimize优化例程的函数。将扩大 在未来有更多有趣的事情。运行时不执行任何操作。
- hark/simulation.py: 生成模拟数据的函数。此模块中的函数具有 像drawUniform这样的名称,从 各种分配。运行时不执行任何操作。
- hark/interpolation.py: 表示插值函数逼近的类。有 1d-4d插值方法,主要基于线性或三次样条 插值。将来会有新的方法。运行时不执行任何操作。
- hark/parallel.py: hark中并行处理的早期版本。使用的实例 agentType类(或其子类),分发命令(如 方法)在代理类型列表上运行。仅适用于本地CPU。 该模块还包含nelder mead的并行实现。 单纯形算法,从Wiswall和Lee那里挖来的(2011)。什么也不做 运行时。
- 消耗保存/tractablebufferstockmodel.py:
- 一种"可处理"的消费和储蓄模式 概率不变的简单风险:它们将成为永久性的 失业,没有更多的收入。不像哈克的其他模特, 这个问题不是通过迭代一个周期问题序列来解决的。 相反,它使用了一个"反拍"程序 agentType.solve框架。求解运行时的模型示例, 然后使用markovconsumertype再次求解同一模型。
- 消耗保存/consindshockmodel.py:
- 对收入具有特殊冲击的消费储蓄模型。冲击 完全暂时的或完全永久的。解决了完美的预见模型, 具有特殊收入冲击的模型和具有特殊收入冲击的模型 收入冲击和借贷与储蓄利率不同。什么时候? 运行,求解这些模型的几个示例,包括 地平线问题,十个周期的生命周期模型,四个周期的"周期" 模型,以及具有完美远见和"扭结R"的版本。
- 消费保存/consumprefshockmodel.py:
- 收入冲击与多重冲击的消费储蓄模型- 对效用的复杂冲击。目前有两种模式:一种是扩展的 特殊冲击模型,以及另一个扩展了"扭结的R" 模型。第二个模型几乎没有新代码,只是创建了 通过多重继承合并两个"父模型"。运行时, 解决了偏好冲击模型的示例。
- 消费保存/consmarkovmodel.py:
- 具有离散状态的消费节约模型 马尔可夫规则。离散国家的收入分配会有所不同, 利率因素和/或预期的永久收入增长率。运行时, 求解四个实例模型:(1)一个序列相关失业模型 有繁荣和萧条周期(4个州)。(2)"失业豁免"模式 在这种情况下,消费者偶尔会了解到自己不受失业的影响 在接下来的n个时期内的冲击。(3)具有时变永久变量的模型 连续相关的收入增长率。(4)有时间的模型- 连续相关的可变利息系数。
- 消耗保存/consugagshockmodel.py:
- 具有特殊和总收入冲击的消费储蓄模型。 目前有一个带有基本解算器的微观模型(线性样条曲线消耗 只有功能,没有价值功能)和科布道格拉斯经济 "生活"在(作为"宏观经济")中的代理人。运行时,解决了 部分平衡的微观模型,然后求解一般平衡 寻找资本劳动比的演化规律的问题 以消费者的集体行为为理由。
- 时尚受害者/fashionvictimmodel.py:
- 一个非常严肃的模特,选择穿成骑师或朋克。用于 演示harkcore的微观和宏观框架概念。可能是 最简单的模型,或者接近它。运行时, 该模块解决了"时尚受害者"的微观经济问题。 示例参数集,然后求解 整个"时尚市场"由许多类型的代理商组成,寻找规则 因为人口中的风格分布的演变- 被时尚受害者的集体行为所证实。
- 解决微操作/code/structEstimation.py:
- 使用特殊冲击进行非常简单的结构估计 模型在consindshocksmodel中。估计年龄变化的调整系数 贴现因子序列(摘自Cagetti(2003))和系数 使模拟代理人的财富状况最佳的相对风险规避 匹配2004年消费金融调查的数据。也证明了 用bootstrap计算标准误差并能构造轮廓线 目标函数图。根据克里斯卡罗尔的第9节 讲义"解决微观经济动态随机优化问题"
- cstwmpc/cstwmpc.py:
- 对论文"财富分配和 Carroll、Slakalek、Tokuoka和White的"边际消费倾向"(2016)。 运行时选项在setupparamscstw.py中设置,指定如下选项: 永葆青春vs生命周期,贝塔分布vs贝塔点,流动资产vs净值 价值、总冲击与特殊冲击等使用consisndshockmodel和 consaggshockmodel;可以在真实模型上演示hark的"宏"框架。
- cstwmpc/makecstwfigs.py:
- 为cstwmpc
- cstwmpc/makecstwfigsforslides.py:
- 为幻灯片制作各种图形对于cstwmpc文件。需要很多 由cstwmpc.py根据各种规范生成的输出文件 和哈克一起分发。已经很长一段时间没有测试了。
- 消耗节省/consumptionsaving/consumperparameters.py:
- 定义字典,其中包含求解 consindshockmodel、consaggshockmodel、consprefshockmodel和 ConsmarkovModel公司。这些词典用来举例说明 模块正在运行。自行运行时不执行任何操作。
- 解决微操作/setupscfdata.py:
- 导入2004 SCF数据以供solvingMicroDSOps/structEstimation.py使用。
- cstwmpc/setupparamscstw.py:
- 加载cstwmpc.py的校准模型参数,选择规格。
- 时尚受害者/fashionvictimparams.py:
- fashionVictimmodel.py的示例参数,在该模块运行时加载。
- 测试/比较/u unittests.py:
- hark的早期单元测试版本,仍在开发中。比较 特殊冲击模型的完美预见模型解 关闭冲击的解决方案;还比较了可处理的缓冲库存 使用"马尔可夫"描述求解同一模型的模型解。
- 测试/modeltesting.py:
- hark的早期单元测试版本,仍在开发中。定义一个 在agenttype的子类上运行单元测试的包装类很少。
- 测试/tractablebufferstockmodel\u unittests.py
- hark的早期单元测试版本,仍在开发中。运行测试 关于tractablebufferstockmodel。
- 测试/multithreaddemo.py:
- 演示harkparallel.py中的多线程功能。什么时候? 运行,解决了一个具有特殊性的消费节约模型。 对收入的冲击,然后依次解决许多这样的模型,改变 Rho=1和Rho=8之间的相对风险规避系数,显示 以图形方式显示结果并显示时间。然后它解决了 同一组在本地CPU上使用多线程的多个模型,显示 结果以图形方式与计时一起显示。
- 解决微操作/校准/scfdata.csv:
- 用于solvingMicroDSOps/structEstimation.py的SCF 2004数据,由加载 solvingmicrodsops/estimationparameters.py.
- cstwmpc/scfHealthDataReduced.txt:
- scf 2004数据,仅包含净值和数据权重,供cstwmpc.py使用
- cstwmpc/usactuarial.txt:
- 美国社会保障局的死亡率数据,供 运行生命周期规范时使用cstwmpc.py。
- cstwmpc/educmortaj.txt:
- 按教育程度和年龄分列的死亡率调整器(按性别和种族分列),供使用 运行生命周期规范时使用cstwmpc.py。取自 文件附录。
- /索引.py:
- sphinx为ha生成html文档时使用的文件RK。用户 不用担心。在整个hark中可以找到几个副本。
- .gitignore:
- 告诉git哪些文件(或文件类型)可以在中找到的文件 存储库目录树,但应忽略(不跟踪) 回购协议。当前忽略已编译的python代码、乳胶辅助文件等。
- 许可证:
- hark的许可证文本,apache 2.0。如果你是律师,就读吧!
- 解决microdsops/figures/smmcontour.png:
- 用于SolvingMicroDSOps/StructEstimation.py的目标函数的等高线图。 在运行该模块时生成,并附带PDF版本。
- cstwmpc/figures/placeholder.txt:
- 一个占位符文件,因为git不喜欢空文件夹,但是cstwmpc.py 运行时需要/figures目录。
- 文档/conf.py:
- 使用sphinx生成html文档的配置文件,生成 斯芬克斯快速启动。
- 文档/includeme.rst:
- 斯芬克斯用来制作文档的非常小的文件。
- 文档/index.rst:
- hark的sphinx文档中包含的模块列表。这应该 如果HARK中添加了新的工具或模型模块,则进行编辑。
- 文档/说明.md:
- 带有如何设置和运行sphinx的说明的标记文件。你 无需阅读。
- 文档/简单步骤getting sphinx working.md:
- 另一个标记文件,包含如何设置和运行Sphinx的说明。
- 文档/make.bat:
- 用于生成Sphinx文档的批处理文件,由Sphinx Quickstart生成。
- 文档/makefile:
- 由Sphinx快速启动生成的另一个Sphinx辅助文件。
- 文档/econtex.sty:
- 带有符号定义的乳胶样式文件。
- 文档/econtex.cls:
- 用户手册中带有文档布局的LaTex类文件。
- 文档/econtexsetup.sty:
- 带有符号定义的乳胶样式文件。
- 文档/econtexShortcuts.sty:
- 带有符号定义的乳胶样式文件。
- 文档/userguidepic.pdf:
- 用户指南封面的图片,显示了 kinkypref型号的功能。
conda create -n econ-ark anaconda
source activate econ-ark
您将希望使用:
git clone https://github.com/econ-ark/DemARK.git
同样的,对于评论回购。下载后,您会发现每个回购协议都包含一个笔记本
目录,其中包含许多笔记本。如果您安装了jupyter笔记本工具(它是作为anaconda的一部分安装的),您应该能够启动
来自命令行的jupyter笔记本应用程序,命令为:
jupyter notebook
从那里你可以打开笔记本并执行它们。
学习hark
我们有一套30秒的描述该项目的" rel="nofollow">电梯间谍"的"胶囊式概述",专门为具有不同背景的人量身定制。
最广泛适用的建议是转到econ ark并单击"笔记本",然后选择温和的介绍o hark它将作为一个jupyter笔记本启动
对于具有技术/科学/计算背景但经济背景很少的人
对于做过一些结构建模的经济学家
(demark
repo的一部分)
其他计算经济学软件开发人员
对hark进行更改
如果你想做出改变或贡献(耶!)要获得hark,您需要访问源文件。通过pip(在命令行或spyder内部)安装hark会使访问这些文件变得困难(无论如何,处理原始代码是个坏主意,因为您可能会忘记所做的更改)。如果您精通github,您可以fork回购协议。如果经验不足,则应使用g再次下载hark的个人副本它克隆了
(见上文)或github桌面应用程序。
对于Mac或Linux:
如果需要,请安装virtualenv,然后键入:
virtualenv econ-ark
source econ-ark/bin/activate
对于Windows:
virtualenv econ-ark
econ-ark\\Scripts\\activate.bat
安装有问题吗?
我们已经尽了最大的努力给出了正确的,彻底的说明如何安装hark,但我们知道这些信息可能是不准确或不完整的。如果您遇到麻烦,请告诉我们,以便我们更新本指南!以下是已验证此指南的平台和版本列表:
<表><广告>安装类型
平台 Python版本
测试日期 测试者
< /广告><正文>基本PIP安装 Linux(16.04) 3 2019年4月24日
@shaunagm 水蟒 Linux(16.04) 3 2019年4月24日
@shaunagm 基本PIP安装 MacOS 10.13.2"High Sierra" 2.7 2019年4月26日
@llorracc 下一步
要了解有关如何使用hark的更多信息,请参阅我们的用户手册。
有关对hark进行更改的帮助,请查看我们的《贡献指南》。
iii.存储库中的文件列表
本节包含对回购协议中主要文件的说明。
文档文件:
工具模块:
模型模块:
纸张的文本制作各种图形。需要大量输出
由cstwmpc.py生成的文件,来自各种规范,而不是
和哈克一起分发。已经很长一段时间没有测试了。
对hark进行更改
如果你想做出改变或贡献(耶!)要获得hark,您需要访问源文件。通过pip(在命令行或spyder内部)安装hark会使访问这些文件变得困难(无论如何,处理原始代码是个坏主意,因为您可能会忘记所做的更改)。如果您精通github,您可以fork回购协议。如果经验不足,则应使用g再次下载hark的个人副本它克隆了
(见上文)或github桌面应用程序。
对于Mac或Linux:
如果需要,请安装virtualenv,然后键入:
virtualenv econ-ark
source econ-ark/bin/activate
对于Windows:
virtualenv econ-ark
econ-ark\\Scripts\\activate.bat
安装有问题吗?
我们已经尽了最大的努力给出了正确的,彻底的说明如何安装hark,但我们知道这些信息可能是不准确或不完整的。如果您遇到麻烦,请告诉我们,以便我们更新本指南!以下是已验证此指南的平台和版本列表:
<表><广告>下一步
要了解有关如何使用hark的更多信息,请参阅我们的用户手册。
有关对hark进行更改的帮助,请查看我们的《贡献指南》。
iii.存储库中的文件列表
本节包含对回购协议中主要文件的说明。
文档文件:
工具模块:
模型模块:
参数和数据模块:
测试模块:
数据文件:
其他不需要担心的文件:
四、警告和免责声明
这是哈克的测试版。这段代码并没有得到应有的广泛测试。我们希望它是有用的,但绝对没有任何保证(明示或暗示)它能起作用或将做你想做的事。使用风险自负。如果您在github页面上发布了一个问题来发现bug,请通知我们!
v.许可证
所有hark都是在apache许可2.0版(alv2)下获得许可的。请看 许可证文本的许可证文件。M有关矿石信息,请访问: http://www.apache.org/dev/apply license.html