【问题标题】:Markov chain transition matrix from vector of probabilities来自概率向量的马尔可夫链转移矩阵
【发布时间】:2013-01-02 10:30:10
【问题描述】:

完整的data.frame概述:

'data.frame':   29 obs. of  3 variables:
$ FirmDatum : Date, format: "1982-12-31" "1983-03-31" "1983-06-30" ...
$ fittedSurv: num  0.884 0.839 0.779 0.746 0.817 ...
$ Rating    : chr  "Aa" "Aaa" "B" "Bb" ...

fittedSurv 列包含概率,Rating 列对应于该时间点的概率 (fittedSurv)。

对于马尔可夫链转移矩阵,我需要额外的列。仅仅对概率的单列(向量)进行纯粹的重新采样是无法单独完成的。

就推理而言,最有效的方法是什么?
关于正确的 R 包的可能指示就足够了 - 一个例子将是一个奖励。

@乔纳森。很可能是这样。然而,我怀疑随时间变化的概率可以被引导或重新采样概率向量,以便创建有意义的概率列。类似的东西:

A <- data.frame(X=FrameTs$Rating)
B <- data.frame(replicate(20, sample(as.character(A$X), size=100, replace = TRUE)))

【问题讨论】:

  • 我怀疑你在这个data.frame 中没有足够的信息来创建一个真正的马尔可夫链转换矩阵。你能解释一下为什么你认为你应该能够使用所提供的信息吗?
  • @Jonathan。请参阅上面的编辑。复制一定是错误的,因为我相信它还必须包含概率随时间的演变。当然,我没有足够的经验和知识来评估如何有意义地做到这一点。
  • 你能解释一下你的数据到底是什么吗?
  • fittedSurv=公司违约的概率(过去数据),Rating= 给定概率区间的仅分配字母(评级),即从 0.884 到 0.839 的概率 = Aa。
  • 那么我看不到数据如何包含有关“概率随时间的演变”的任何信息。

标签: r markov-chains


【解决方案1】:

可能的解决方案(我不相信)是:

A <- data.frame(X=FrameTs$Rating)
w <- FrameTs$fittedSurv/sum(FrameTs$fittedSurv)
B <- data.frame(replicate(10, sample(as.character(A$X), size=10, replace = TRUE, prob=w)))

在给定概率的情况下产生等权矩阵:

   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1   A  A  A  A  A  A  B  A  B   B
2   B  A  A  A  A  A  A  A  A   A
3   A  A  A  B  C  A  A  B  B   A
4   A  A  A  A  A  A  A  A  A   A
5   B  A  A  A  B  A  A  A  A   B
6   A  A  B  B  B  A  A  B  A   A
......and so on...

Of course the matrix B size can be extended via replicate(1000, sample(...

基于这个“概率”(评级)矩阵,可以得到马尔可夫转移矩阵。 (包 ms​​m 等)。输出数字似乎直观且正确,但我不相信这种方法

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 2023-03-14
    • 2016-03-29
    • 1970-01-01
    • 2019-02-08
    • 2015-12-20
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多