簡體   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