簡體   English   中英

R pnorm function 與稀疏矩陣

[英]R pnorm function with sparse matrix

我想找到一個大型稀疏矩陣的 pvalues。 該矩陣中的所有元素都是標准的正態 z 分數。 我想用pnorm function,但是遇到了pnorm不支持稀疏矩陣的問題。 除了將稀疏矩陣轉換為全矩陣之外,還有其他更有效的方法嗎?

任何建議表示贊賞!

如果它是一個稀疏矩陣,您可以輕松地將 0 值替換為 pnorm(0..)。 剩下的就是計算非零值,您可以這樣做。 例如一個稀疏矩陣:

data <- rnorm(1e5)
zero_index <- sample(1e5)[1:9e4]
data[zero_index] <- 0
mat <- matrix(data, ncol=100)
mat_sparse <- Matrix(mat, sparse=TRUE)

創建一個 pnorm 為 0 的矩陣:

mat_pnorm <- matrix(pnorm(rep(0,length(mat_sparse))),ncol=ncol(mat_sparse))
nzData <- summary(mat_sparse)
mat_pnorm[as.matrix(nzData[,1:2])] <- pnorm(nzData$x)
all.equal(mat_pnorm,pnorm(mat))
[1] TRUE

您沒有指定您希望 p 值的方式,但您可以輕松地將其轉換為向量而不是上面使用的矩陣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM