Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-将转移矩阵拟合到马尔可夫模型_Python_Excel_Matrix_Markov Chains - Fatal编程技术网

Python-将转移矩阵拟合到马尔可夫模型

Python-将转移矩阵拟合到马尔可夫模型,python,excel,matrix,markov-chains,Python,Excel,Matrix,Markov Chains,一点背景知识——我是一名精算师,正在努力学习Python。在这样做的过程中,我试图将我通常在Excel中制作的一些模型移到Python中 我被困在一个特别的问题上,Excel让我很容易解决。我正在寻找在Python中实现这一点的方法。问题如下: 我知道在不同期限(第1年至第30年-离散)不同评级(AAA至CCC)的违约概率。我不知道生成此表的基础转换矩阵,任务是拟合转换矩阵 它基本上是一个离散的马尔可夫模型 在excel中,我将执行以下操作: 我知道不同到期日的违约概率如下: 定义一个矩阵T,

一点背景知识——我是一名精算师,正在努力学习Python。在这样做的过程中,我试图将我通常在Excel中制作的一些模型移到Python中

我被困在一个特别的问题上,Excel让我很容易解决。我正在寻找在Python中实现这一点的方法。问题如下:

我知道在不同期限(第1年至第30年-离散)不同评级(AAA至CCC)的违约概率。我不知道生成此表的基础转换矩阵,任务是拟合转换矩阵

它基本上是一个离散的马尔可夫模型

在excel中,我将执行以下操作:

  • 我知道不同到期日的违约概率如下:
  • 定义一个矩阵T,它给出各种状态的转换率:AAA、AA、a、BBB、BB、B、CCC和default。其中AAA至CCC为各种评级,最后一列为默认状态
  • 违约列现在已知,等于第1年的违约概率。 矩阵的对角项设置为行中的“1-其他项之和”

  • 初始化这个矩阵,比如说,除了对角线条目(公式)和默认列(已知)之外,所有地方都设置零

  • 进行多次矩阵乘法以获得不同年份的违约概率。例如,最后一列T^2=第2年的违约概率

  • 计算所有年份的实际违约概率(由1给出)和4计算的平方距离

  • 运行excel解算器以最小化平方差之和


  • 我不确定是否有一种简单的方法可以在Python中进行设置。如果有人能给我指出一个我应该查看的包,我可以进行实验。

    如果您需要解算器,请查看SciPy和SymPyok,谢谢,我会查看的。是否有一种简单的方法可以使用矩阵来指定方程组,而不是单独编写每年/评级的方程。是的,Symphy支持矩阵方程组,包括求解线性方程组。如果你想用数字来解它们(Symphy用符号来解一切),你可以使用。谢谢,让我看看这些库。