异构代理资源和工具包

econ-ark的Python项目详细描述


异构代理资源和工具包(hark)

预发布0.10.1

单击引文信息的徽章。 doi

目录:

一、介绍

欢迎收听!这份文件将告诉你如何振作起来 在你的机器上运行,如何开始使用它,并给你一个 工具包主要元素概述。

如果您对代码或文档有任何评论,或者(甚至更好)如果您想 贡献新的内容给哈克,我们很高兴听到你的消息! 我们的电子邮件地址是:

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的一个发行版,以及许多在科学计算中经常使用的包。

  1. 为您的操作系统下载anaconda,并按照anaconda.com上的安装说明进行操作。

  2. 水蟒包括它自己的虚拟环境系统,称为conda,它将环境存储在一个预设的位置(所以你不需要必须选择)。因此,为了创建和激活Econ Ark虚拟环境:

  3. < > >
    conda create -n econ-ark anaconda
    source activate econ-ark
    
    1. open spyder,一个用于python(特别是ipython)的交互式开发环境(ide)。您可以通过anaconda的图形界面执行此操作,也可以通过命令行/提示符执行此操作。为此,只需打开命令行/提示符并键入spyder

    2. 要验证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子目录。

    3. < > >
      1. hark中的大多数模块只是工具的集合。有一些示范 使用安装hark时自动获得的工具的应用程序--它们在下面的应用程序模块中列出。hark的一组更大的用法可以在两个存储库中找到:
        • demark:hark使用演示
        • 备注:使用hark制作的现有论文的副本
      2. < > >

        您将希望使用:

        git clone https://github.com/econ-ark/DemARK.git
        

        同样的,对于评论回购。下载后,您会发现每个回购协议都包含一个笔记本目录,其中包含许多笔记本。如果您安装了jupyter笔记本工具(它是作为anaconda的一部分安装的),您应该能够启动 来自命令行的jupyter笔记本应用程序,命令为:

        jupyter notebook
        

        从那里你可以打开笔记本并执行它们。

        学习hark

        我们有一套30秒的描述该项目的" rel="nofollow">电梯间谍"的"胶囊式概述",专门为具有不同背景的人量身定制。

        最广泛适用的建议是转到econ ark并单击"笔记本",然后选择温和的介绍o hark它将作为一个jupyter笔记本启动

        对于具有技术/科学/计算背景但经济背景很少的人
        对于做过一些结构建模的经济学家
        • 先从一个温和的hark介绍开始,让你的脚湿润。

        • 按照Gourinchas和Parker的2002年经济计量论文或Cagetti的2003年论文的思路,一种简单的间接推断/模拟矩结构估计方法由solvingmi执行。crodsops备注;此代码实现了这些课堂讲稿中相应章节中描述的解决方案方法

        其他计算经济学软件开发人员

        对hark进行更改

        如果你想做出改变或贡献(耶!)要获得hark,您需要访问源文件。通过pip(在命令行或spyder内部)安装hark会使访问这些文件变得困难(无论如何,处理原始代码是个坏主意,因为您可能会忘记所做的更改)。如果您精通github,您可以fork回购协议。如果经验不足,则应使用g再次下载hark的个人副本它克隆了(见上文)或github桌面应用程序。

        1. 导航到要放置存储库的位置,然后键入git clone git@github.com:econ ark/hark.git此处有更多详细信息)。如果遇到权限被拒绝的错误,您可能需要为github设置ssh,或者可以使用https:'git clonehttps://github.com/econ ark/hark.git'。

        2. 然后,创建并激活虚拟环境

        3. < > >

          对于Mac或Linux:

          如果需要,请安装virtualenv,然后键入:

          virtualenv econ-ark
          source econ-ark/bin/activate
          

          对于Windows:

          virtualenv econ-ark
          econ-ark\\Scripts\\activate.bat
          
          1. 激活virtualenv后,您可以在命令提示符中看到(econ ark)(取决于您的机器的配置方式)

          2. 确保更改为hark目录,并使用pip install-r requirements.txt将hark的需求安装到虚拟环境中。

          3. 要检查所有设置是否正确,请使用python-m unittest运行hark的测试

          4. < > >

            安装有问题吗?

            我们已经尽了最大的努力给出了正确的,彻底的说明如何安装hark,但我们知道这些信息可能是不准确或不完整的。如果您遇到麻烦,请告诉我们,以便我们更新本指南!以下是已验证此指南的平台和版本列表:

            <表><广告>安装类型 平台Python版本 测试日期测试者 < /广告><正文>基本PIP安装Linux(16.04)32019年4月24日 @shaunagm水蟒Linux(16.04)32019年4月24日 @shaunagm基本PIP安装MacOS 10.13.2"High Sierra"2.72019年4月26日 @llorracc

            下一步

            要了解有关如何使用hark的更多信息,请参阅我们的用户手册。

            有关对hark进行更改的帮助,请查看我们的《贡献指南》。

            iii.存储库中的文件列表

            本节包含对回购协议中主要文件的说明。

            文档文件:

            工具模块:

            • 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.py生成的文件,来自各种规范,而不是 和哈克一起分发。已经很长一段时间没有测试了。
            • cstwmpc/makecstwfigsforslides.py
              • 为幻灯片制作各种图形对于cstwmpc文件。需要很多 由cstwmpc.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型号的功能。

            四、警告和免责声明

            这是哈克的测试版。这段代码并没有得到应有的广泛测试。我们希望它是有用的,但绝对没有任何保证(明示或暗示)它能起作用或将做你想做的事。使用风险自负。如果您在github页面上发布了一个问题来发现bug,请通知我们!

            v.许可证

            所有hark都是在apache许可2.0版(alv2)下获得许可的。请看 许可证文本的许可证文件。M有关矿石信息,请访问: http://www.apache.org/dev/apply license.html

            欢迎加入QQ群-->: 979659372 Python中文网_新手群

            推荐PyPI第三方库


热门话题
如何下载多个。java中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar