gpt4 book ai didi

r - 转移矩阵

转载 作者:行者123 更新时间:2023-12-04 19:07:15 24 4
gpt4 key购买 nike

考虑以下数据框:

 df = data.frame(cusip = paste("A", 1:10, sep = ""), xt = c(1,2,3,2,3,5,2,4,5,1), xt1 = c(1,4,2,1,1,4,2,2,2,5))

数据分为 五州 , 分别是 分位数实际上:1、2、3、4、5。
数据帧的第一列表示时间 t 的状态,第二列表示时间 t+1 的状态。

我想为五种状态计算一种转换矩阵。矩阵的含义如下:
  • (Row, Col) = (1,1) :在时间 t 处于分位数 1 的 cusips 的百分比,
    并在 t+1 时间停留在 1
  • (Row, Col) = (1,2) :在 t 分位数 1 中的尖点百分比,以及
    在 t+1
  • 成为分位数 2
  • 等等...

  • 我真的不知道如何以有效的方式做到这一点。我觉得答案很简单,但我无法理解它。

    有人可以帮忙吗?

    最佳答案

    res <- with(df, table(xt, xt1)) ## table() to form transition matrix
    res/rowSums(res) ## /rowSums() to normalize by row
    # xt1
    # xt 1 2 4 5
    # 1 0.5000000 0.0000000 0.0000000 0.5000000
    # 2 0.3333333 0.3333333 0.3333333 0.0000000
    # 3 0.5000000 0.5000000 0.0000000 0.0000000
    # 4 0.0000000 1.0000000 0.0000000 0.0000000
    # 5 0.0000000 0.5000000 0.5000000 0.0000000

    ## As an alternative to 2nd line above, use sweep(), which won't rely on
    ## implicit recycling of vector returned by rowSums(res)
    sweep(res, MARGIN = 1, STATS = rowSums(res), FUN = `/`)

    关于r - 转移矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391984/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com