我想出了一个可能的解决方案,所以我将尝试回答我自己的问题。不过,我希望社区提供一些重要的反馈。
我知道这两种现象是相关的,所以我假设我可以将一个刻度校准到另一个刻度。然后,我将比较一种方法的预测值与另一种方法的实验值之间的一致性。 这种方法仍然无法找到均值偏差(正如@Jeremy 指出的那样,这在这种情况下没有意义),但它仍然可能允许比较 95% 的限制。
一些代码(在 R 中)进行比较:
library(ggplot2)
set.seed(2063) #Dr. Cochrane
bland <- function(x, y, titl=''){
gg.data <- data.frame(x=x, y=y, avg=(x+y)/2, diff=(x-y))
g <- ggplot(gg.data, aes(x=avg, y=diff)) + geom_point(size=4) + theme_bw()
g <- g + theme(text=element_text(size=24), axis.text=element_text(colour='black'))
g <- g + labs(x='Average', y='Difference') + ggtitle(titl)
g <- g + geom_hline(yintercept=mean(gg.data$diff), colour='chocolate', size=1)
g <- g + geom_hline(yintercept=mean(gg.data$diff) + 1.96*sd(gg.data$diff), colour='dodgerblue3', size=1,
linetype='dashed')
g <- g + geom_hline(yintercept=mean(gg.data$diff) - 1.96*sd(gg.data$diff), colour='dodgerblue3', size=1,
linetype='dashed')
plot(g)
}
#Make some data
x <- seq(1,40)
y <- 2*x + rnorm(n=length(x), mean=0, sd=10)
qplot(x,y)
lm.data <- data.frame(x=x, y=y)
lm(data=lm.data, y~x)
#Bland-Altman of raw data
bland(x,y,'Raw Data')
#Bland-Altman of calibrated data
orig.df <- data.frame(x=x)
y.p <- predict(lm(data=lm.data, y~x), newdata=orig.df)
bland(y.p,y, 'Calib Data')
qplot(y.p,y)
如果我尝试直接比较和,正如预期的那样,我会得到非常差的协议:
xy
值“校准”刻度,则一致性似乎要好得多:
xy
一些关键的想法:
- 我不必使用线性模型。任何将一个比例校准到另一个比例的模型都会做得很好。
- 这在功能上等同于根据的平均值和值绘制模型残差。yy^ 这是我最大的担忧。我想比较方法之间的一致性,但我可以简单地评估模型的质量。 我目前的想法是这两者是等价的。
- 给定#2,通过比较模型的残差作为一致性度量,我的比较值强烈依赖于用于校准的模型是正确的假设。
综上所述,如果我选择了一个合理的模型(#1)来校准一个尺度到另一个尺度(#3),那么我可以合理地比较该模型的残差(#2)作为一致性的衡量标准。在上面的第二个示例图中,我将其解释为 95% 的偏差在尺度上的 ~20 点内。然后,我可以评估这些限制对于我正在尝试研究的两种方法是否合理。y
正如我上面所说,欢迎批评。