python - Python - 将转换矩阵拟合到马尔可夫模型
问题描述
一点背景知识——我是一名精算师,正在努力学习 Python。在这样做时,我试图将一些我通常在 Excel 中制作的模型移动到 Python。
我被困在一个特殊的问题上,Excel 对我来说很容易。我正在寻找在 Python 中做同样事情的方法。问题如下:
我知道各种评级(AAA 到 CCC)在不同期限(第 1 年到第 30 年 - 离散)的违约概率。我不知道生成此表的基础转换矩阵,任务是拟合转换矩阵。
它基本上是一个离散马尔可夫模型。
在 excel 中,我会执行以下操作:
- 我知道各种到期日的违约概率,如下所示:
- 定义一个矩阵 T,它给出各种状态的转换率:AAA、AA、A、BBB、BB、B、CCC 和默认值。其中 AAA 到 CCC 是各种评级,最后一列是默认状态。
默认列现在已知并且等于第 1 年的违约概率。矩阵的对角线条目设置为等于行中的“1 - 其他条目的总和”。
初始化此矩阵,例如通过在除对角线条目(公式)和默认列(已知)之外的所有位置设置零
进行多次矩阵乘法以获得不同年份的违约概率。例如,最后一列 T^2 = 第 2 年的违约概率。
计算实际违约概率(由 1 给出)与所有年份的 4 之间的平方距离。
运行 excel 求解器以最小化平方差之和。
我不确定是否有一种简单的方法可以在 Python 中进行设置。我可以试验是否有人可以指出我应该查看的包裹。
解决方案
推荐阅读
- python-3.x - 在 RHEL6 上安装 pandas 时出现 SSL 模块问题
- google-apps-script - Google Sheets onEdit 没有通过复制和粘贴触发
- python - 将类的实例创建为静态变量
- connection - PyODBC 访问
- combobox - SAPUI5:根据另一个 ComboBox 的 Change/selectionChange 重置 ComboBox
- dbt - 运行 dbt run 命令时出现错误
- c++ - 将 std::set 与基于键的比较器一起使用
- javascript - 如何发出重置命令来重新启动我的 discord.js 机器人?
- reactjs - Apollo 3 分页与现场策略
- python - 如何在出生日期的日期字段中提取年份并在 django views.py 中计算人的年龄?