gpt4 book ai didi

r - 使用 R 查找反转分数

转载 作者:行者123 更新时间:2023-12-02 06:59:38 26 4
gpt4 key购买 nike

如果“反转分数”不是正确的术语,请提前道歉。这是一个 wiki条目。

例如,考虑一个值列表

1 2 3 4 7 6 9 10 8

会受到三个惩罚(得分为 3)

  • 6 在 7 之后
  • 8 在 9 之后
  • 8 在 10 之后

如何计算 R 中给定数字向量的倒置?请注意,某些值将为 NA,我只想跳过这些。

最佳答案

您的“反转分数”是 Kendall's tau statistic 的核心组成部分.根据维基百科(参见链接),tau 统计量是 (# concordant pairs-#discordant pairs)/(n*(n-1)/2)。我相信 R 报告为T 的是一致对的数量。因此,我们应该能够通过 n*(n-1)/2-T 重建不一致对的数量(我想这就是你想要的),如下所示

x <- c(1,2,3,4,7,6,9,10,8)
(cc <- cor.test(sort(x),x,method="kendall"))

## Kendall's rank correlation tau
## data: sort(x) and x
## T = 33, p-value = 0.0008543
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.8333333

所以这个函数应该可以工作:

ff <- function(x) {
cc <- cor.test(sort(x),x,method="kendall")
n <- length(x)
n*(n-1)/2-unname(cc$statistic["T"])
}

ff(x) 是请求的 3(如果你提供更多所需输出的示例会很好......)尚未检查速度,但这具有在中实现的优势底层 C 代码。

关于r - 使用 R 查找反转分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525663/

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