一个用于生命精算计算的python库,简单、强大且易于使用。

pyliferisk的Python项目详细描述


幽门病

pyliferisk是一个用于生命精算的python库,简单、强大且易于使用。

日期:2018-12-27
版本:1.10
作者:francisco garate-fgaratesantiago(at)gmail(dot)com

Picture

文件

文档:documentation.pdf

简介

Pyliferisk是一个用Python编写的用于寿险和精算合同的开放库,基于精算师之间常用的方法(国际精算符号)

该库能够覆盖所有人寿意外险(因为精算公式遵循国际精算符号),并支持主要保险产品。

这个库是作为单个文件模块分发的,除了Python标准库之外没有其他依赖项,因此速度惊人它与Python3.x和2.7版本都兼容。

此外,该软件包还包括几个主要从学术教科书中提取的生命死亡率表(pyliferisk.mortalitytables)表是以列表格式添加的即:scot_dlt_00_02_m=[0,0.006205,0.000328,0.00026….] 第一项表示表开始的时间

快速启动

这些公式的名称遵循国际精算符号,并且很容易猜测(qx、lx、px、w、dx、ex、ax、axn…),但特殊字符除外。

保留变量(除python语言外)如下:

对于MortalityTable()中的死亡率假设:

  • nt=用于计算不可预见费的精算表。语法:nt=gkm95
  • i=利率实际利率,即一年内的总利息。语法:i=0.02
  • perc=表示要应用的死亡率百分比的可选变量。语法:perc=85 变量perc可以省略,在本例中,默认为100。

所有精算公式必须至少包含两个变量:mt(死亡率表)和x(年龄) 如有必要,应按以下顺序包括其他变量: n(水平年数),m(月付款),t(n年延期期)

变量m可以省略,在这种情况下,默认为1(年度付款)。

此外,还有两个智能公式:annuity()和a(),其中变量的数目不是固定的:

annuity(nt, x, n, p, m, ['a/g', c], -d)

  • mt=死亡率表
  • x=年龄为整数。
  • n=整数(保险期限以年为单位)或‘w’=整个寿命。
  • P=付款时间。句法:0=每个周期的起始(预付),1=每个周期的结束(后付费), 可选变量:
  • M=每年应付的“M”(兄弟会付款)。默认值=1(每年)
  • “a”或“g”=算术/几何
  • Q=增长率。语法:[g',q]或['a',q]。例如,['g',0.03] 延迟期:
  • -d=n年延期期为负数

Picture

示例1: 打印50岁时死亡率表和qx的omega(极限年龄):

frompyliferiskimportMortalityTablefrompyliferisk.mortalitytablesimportSPAININE2004,GKM95tariff=MortalityTable(nt=SPAININE2004)experience=MortalityTable(nt=GKM95,perc=85)# Print the omega (limiting age) of the both tables:print(tariff.w)print(experience.w)# Print the qx at 50 years old:print(tariff.qx[50]/1000)print(experience.qx[50]/1000)

示例2: 绘制幸存图形:

importmatplotlib.pyplotaspltfrompyliferiskimport*frompyliferisk.mortalitytablesimportSPAININE2004,GKM95tariff=MortalityTable(nt=SPAININE2004)experience=MortalityTable(nt=GKM95,perc=75)x=range(0,tariff.w)y=tariff.lx[:tariff.w]z=experience.lx[:tariff.w]plt.plot(x,y,color='blue')plt.plot(x,z,color='red')plt.ylabel('lx')plt.xlabel('age')

Picture

示例3:: 男性30岁10年期定期人寿保险(GKM95,利息6%):

frompyliferiskimport*frompyliferisk.mortalitytablesimportGKM95nt=Actuarial(nt=GKM95,i=0.06)x=30n=10C=1000print(C*(Axn(nt,x,n)/annuity(nt,x,n,0)))

安装

运行Pyhon之后,只需使用pip install pyliferisk安装这个库

再查询

它兼容Python的两个版本:2.7和3.6 Pyliferisk除了Python标准库之外没有其他依赖项与其他库(如pandas)下的实现相比,这减少了计算运行时。

许可证

这个程序是免费软件:你可以重新分配它和/或mod根据自由软件基金会发布的GNU通用公共许可条款,或者许可的第3版,或者任何更高版本,通知它。

这个程序被分发,希望它是有用的,但没有任何保证;甚至没有对适销性或适合某一特定目的的默示保证。有关更多详细信息,请参阅GNU通用公共许可证。作者不承担任何法律责任的准确性,完整性,或在此信息的有用性

贡献

我们非常感谢您的贡献、反馈和改进建议。

讨论在我们的邮件列表上进行

http://groups.google.com/group/openactuarial(主题:pyliferisk)

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

推荐PyPI第三方库


热门话题
orm如何在Java中实现规范化映射?   java以编程方式修改Xtext生成的Mwe2工作流   java正在覆盖外部文件中的现有数据,如何停止?   java在ANTLR BNF语法符号中epsilon的等价物是什么?   java如何使用Hibernate@Anyrelated注释?   代码生成生成java类并在运行时加载它   java Maven无法在本地jar文件中收集依赖项   java NetBeans IDE 8.2不显示错误消息   java Selenium web驱动程序找不到元素   java如何修复“拒绝访问属性”invoke“”的权限?   JavaApacheJClouds,从比日期更早的blob中删除blob的最佳方法   java如何比较和排序树集中的项目?   使用JavaSpring和无头/解耦CMS   java使用swagercodegen在不同的类中生成端点   Java外部Keylistener没有响应