多维列联表R中的错误率

时间:2013-03-05 23:39:43

标签: r cross-validation contingency

晚上好,

我在R中找到了来自classAgreement包中的e1071函数非常有用且在使用列联表时非常有用。

它适用于二维。 但如果我有3个或更多维度则不起作用。

我已经查看过几本书籍,论文和网页,但仍然找不到一个内置函数,它可以作为classAgreement()使用2个以上的维度。

有人知道R中的功能/包可以做到吗?

如果它不存在,有人可以指出我在正确的方向上构建一个在交叉验证中使用3维的函数吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用apply,第三个边距索引。例如:

g1 <- sample(1:5, size=1000, replace=TRUE) 
g2 <- sample(1:5, size=1000, replace=TRUE)
g3 <- sample(1:5, size=1000, replace=TRUE)
tab <- table(g1, g2,g3)
apply(tab,3,classAgreement)

编辑以获取对角元素

res <- apply(tab,3,classAgreement)
sapply(res, '[[','diag')
        1         2         3         4         5 
0.2146341 0.2029703 0.2227488 0.1513761 0.2073171 
sum(sapply(res, '[[','diag'))
[1] 0.9990465