计算r中二元变量的相关系数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算r中二元变量的相关系数相关的知识,希望对你有一定的参考价值。

Dataframe1: group "N"
ID  A   B   score
1   pos pos AB
1   neg pos B
2   neg neg Neg
3   neg pos B
4   neg neg Neg
5   neg neg Neg
5   pos neg A
5   neg pos B


Combined dataframe
    AB  A   B   Neg
N   440 54  67  345
O   3   6   56  543
P   23  25  3   765
R   4   5   67  243

我有4个群组(NOPR),其中有成对的测试(A和B)。所有人都经过了A和B测试。有些对两项测试(AB)均为阳性,有些仅对一项测试(A或B)阳性。我想回答两个问题:1.对于每个队列,测试A会增加多少潜在的阳性结果?2.每个队列中A和B多久关联一次?

为了分析测试之间的相关性(AB),我尝试了计算Phi系数。我已按照@akrun在另一篇文章中的建议进行操作,但无法使其正常工作。

R loop for Phi coefficient

combn(df, 2, FUN = function(x) Phi(x[,1], x[,2]))

关于如何计算此值的任何建议?

答案

这不起作用,因为您的数据的组织方式不同。数据的每一行都是一个完整的2x2表。使用dput将您的数据以易于阅读的格式存储。然后我们可以将其剪切/粘贴:

dta <- structure(list(AB = c(440L, 3L, 23L, 4L), A = c(54L, 6L, 25L, 
5L), B = c(67L, 56L, 3L, 67L), Neg = c(345L, 543L, 765L, 243L
)), class = "data.frame", row.names = c("N", "O", "P", "R"))
dfa
#    AB  A  B Neg
# N 440 54 67 345
# O   3  6 56 543
# P  23 25  3 765
# R   4  5 67 243

dfa的第一行是一个表,因此对于N:

N <- matrix(unlist(dfa[1, ]), 2, 2, byrow=TRUE, dimnames=list(A=c("Pos", "Neg"), B=c("Pos", "Neg")))
N
#      B
# A     Pos Neg
#   Pos 440  54
#   Neg  67 345

我们可以使用apply获得所有的Phi系数:

apply(dfa, 1, function(x) Phi(matrix(x, 2)))
#          N          O          P          R 
# 0.73028594 0.09784794 0.63669678 0.09088293 

以上是关于计算r中二元变量的相关系数的主要内容,如果未能解决你的问题,请参考以下文章

如何计算两变量的相关系数r?

相关系数r的计算公式是啥?

R语言计算两组数据变量之间相关系数和P值的简单小例子

R语言 | PearsonSpearmanKendallPolychoricPolyserial相关系数简介及R计算

相关系数r的计算公式是啥?

SPSS中pearson(皮尔逊相关系数)看r值还是P值,确定相关性