我使用Bland-Altman图将几种诊断方法与金标准进行了比较。现在,我将以图形方式表示每个方法与单个图中的黄金标准之间的一致性差异。我试图绘制来自各种Bland-Altman图的平均值,置信区间和方差作为水平箱图,但我不知道我这样做。 我有这样的数据框:
Method LCL mean UCL var
A -5 4 15 27
B -9 2 13 33
C -8 4 16 36
非常感谢你的帮助!
的Corrado
答案 0 :(得分:1)
您需要意识到“真正的”箱图是基于非参数统计的特定类型的绘图,您没有提供这些统计数据。如果您想将其称为其他内容,您可以自由地使用它,并且可以使用bxp
功能进行绘图。您需要创建一个包含5行和3列的矩阵,其中包含whisker和box参数的值。您可能认为方差可用于构建标准差?
dat <- read.table(text="Method LCL mean UCL var
A -5 4 15 27
B -9 2 13 33
C -8 4 16 36
", header=TRUE)
dat$sdpd <- dat$mean + dat$var^0.5
dat$sdmd <- dat$mean - dat$var^0.5
dat
#------
Method LCL mean UCL var sdpd sdmd
1 A -5 4 15 27 9.196152 -1.196152
2 B -9 2 13 33 7.744563 -3.744563
3 C -8 4 16 36 10.000000 -2.000000
#----------
bxpm <- with(dat, t(matrix(c(LCL, sdmd, mean, sdpd, UCL), 3,5)))
bxpm
#----------
[,1] [,2] [,3]
[1,] -5.000000 -9.000000 -8
[2,] -1.196152 -3.744563 -2
[3,] 4.000000 2.000000 4
[4,] 9.196152 7.744563 10
[5,] 15.000000 13.000000 16
bxp(list(stats=bxpm, names=dat$Method ), main="Not a real boxplot\n
Perhaps a double dynamite plot?")
答案 1 :(得分:1)
由于您没有提供原始数据(箱形图所需),因此我无法为您提供正常工作的R代码,并且不清楚您想要显示什么,因为没有任何内容表明您的黄金标准在哪里发挥作用给定的汇总数据(这些是用不同仪器重复测量的吗?),除非报告的方法代表第i种方法和参考方法之间的差异(在这种情况下我看不出你如何使用箱图)。您的数据的基本图可能看起来像
dfrm <- data.frame(method=LETTERS[1:3], lcl=c(-5,-9,-8),
mean=c(4,2,4), ucl=c(15,13,16), var=c(27,33,36))
# I use stripchart to avoid axis relabeling and casting of factor to numeric
# with default plot function
stripchart(mean ~ seq(1,3), data=dfrm, vertical=TRUE, ylim=c(-10,20),
group.names=levels(dfrm$method), pch=19)
with(dfrm, arrows(1:3, mean-lcl, 1:3, mean+lcl, angle=90, code=3, length=.1))
abline(h=0, lty=2)
但是,我可以建议您查看MethComp包,它将特别帮助您将几种方法与黄金标准进行比较,有或没有重复,以及显示结果。配套教科书是
Carstensen,B。Comparing Clinical Measurement Methods。约翰威利 &安培; Sons Ltd 2010
答案 2 :(得分:0)
您是否尝试过使用R的boxplot()命令?
我认为默认情况下,它假定您提供原始数据,并指定用于分割数据的因子。它将计算它自己的盒子边界,这可能与你正在使用的对应或不对应。如果你想能够轻松地微调r-graphics,并且你有一点时间学习,那就结束了wikham的ggplot2。它功能强大,灵活,漂亮!
祝你好运!