在 R 中,我有一个看起来像这样的数据框(2000 多行):
Sample AlgoA AlgoB
A FP TP
B TN TN
C TP TP
D FN TP
E FP FP
F TN TN
G TP TP
TN/TP 等是通过将算法与真值集进行比较而得出的。
我通过进行常规计算生成了规格/感知值,并且还生成了 95% CI。
我现在只需要看看两组之间是否存在统计差异。这种情况我该怎么办? AlgoA 和 AlgoB 完全无关,只是两种不同的实验室方法。
Trajman & Luiz (2008) 提倡使用对照的 McNemar 检验来比较特异性。
library(dplyr)
set.seed(42)
P <- c("TP", "FN")
N <- c("TN", "FP")
data <- tibble(
sample = 1:100,
truth = sample(0:1, 100, TRUE),
algo_a = if_else(truth == 0, sample(N, 100, TRUE), sample(P, 100, TRUE)),
algo_b = if_else(truth == 0, sample(N, 100, TRUE), sample(P, 100, TRUE))
) %>%
select(sample, algo_a, algo_b)
data %>%
filter(algo_a %in% N) %>% # controls only: same as `algo_b %in% N` or `truth == 0`
count(algo_a, algo_b) %>%
pull(n) %>%
matrix(nrow = 2) %>%
mcnemar.test()
#>
#> McNemar's Chi-squared test with continuity correction
#>
#> data: .
#> McNemar's chi-squared = 2.7222, df = 1, p-value = 0.09896
创建于 2024-04-12,使用 reprex v2.1.0