繁体   English   中英

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

[英]calculating a correlation coefficient for a binary variable in 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 在另一篇文章中的建议,但无法让它发挥作用。

Phi 系数的 R 循环

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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM