首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kappa统计量极大/稀疏矩阵

Kappa统计量极大/稀疏矩阵
EN

Stack Overflow用户
提问于 2015-11-01 21:39:21
回答 1查看 213关注 0票数 0

我有一个大的sparseMatrix (垫子):

代码语言:javascript
复制
138493 x 17694 sparse Matrix of class "dgCMatrix", with 10000132 entries 

我想使用kappa统计来调查内部评级协议,但当我运行Fleiss时:

代码语言:javascript
复制
kappam.fleiss(mat)

我看到了以下错误

代码语言:javascript
复制
Error in asMethod(object) : 
  Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 105

这是因为我的矩阵太大了吗?

在这么大的矩阵上,有没有其他方法可以用来计算IRR的kappa统计量?

EN

回答 1

Stack Overflow用户

发布于 2015-11-02 01:46:45

我能提供的最好的答案是,由于矩阵中的极端稀疏性,这是不可能的。问题:对于138,493 * 17694 = 2,450,495,142个单元矩阵,有10,000,132个条目,大多数(99.59%)缺少值。irr包允许这样做,但在这里,您对系统提出了一些极端的要求,要求它比较电影不重叠的用户的评分。

irr包中的方法a)需要密集矩阵作为输入,b) (至少在列上的kripp.alpha()循环中)使它们非常慢的问题使这一问题变得更加复杂。

这是一个构建一个性质与你相似的矩阵的插图(但没有模式-在现实中,你的情况会更好,因为观众倾向于对相似的电影集进行评分)。

请注意,我在这里使用了Krippendorff的alpha,因为它允许顺序或区间评级(如您的数据所示),并且通常可以很好地处理丢失的数据。

代码语言:javascript
复制
require(Matrix)
require(irr)
seed <- 100
(sparseness <- 1 - 10000132 / (138493 * 17694))
## [1] 0.9959191
138493 / 17694 # multiple of movies to users
## [1] 7.827117
# nraters <- 17694
# nusers <- 138493
nmovies <- 100
nusers <- 783
raterMatrix <- 
    Matrix(sample(c(NA, seq(0, 5, by = .5)), nmovies * nusers, replace = TRUE,
                  prob = c(sparseness, rep((1-sparseness)/11, 11))),
           nrow = nmovies, ncol = nusers)
kripp.alpha(t(as.matrix(raterMatrix)), method = "interval")
## Krippendorff's alpha
##
## Subjects = 100 
##   Raters = 783 
##    alpha = -0.0237 

这对该大小的矩阵有效,但如果我将其增加100倍(每个维度增加10倍),保持与您报告的数据集中相同的比例,那么即使在30分钟后它也无法产生答案,因此我终止了该过程。

结论:你并没有真正问对这个数据的问题。这不是有多少用户同意的问题,而是这些数据在观看集群和偏好集群方面存在什么样的维度。您可能希望使用关联规则或一些降维方法,这些方法不会因为数据集中的稀疏性而犹豫不决。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33462739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档