Я сделал график для представления коэффициента ИЛИ. Однако OR для log(PTH) имеет большой 95CI. Могу ли я сделать разрыв по оси x между 20 и 30, чтобы сделать другие переменные более заметными? В некоторых примерах предлагается gap_plot(), но я не знаю, как совместить его с этим типом графика. Я уже преобразовываю значение PTH, поэтому будет сложно изменить его в отношении интерпретации. Если у вас есть другой способ сделать это, не стесняйтесь предлагать. Я хотел бы сделать значения всех переменных видимыми. Однако эти значения lof(PTH) затрудняют интерпретацию Пола по сюжету, несмотря на его значимость.
Лучший, А.
library(gridExtra)
library(ggplot2)
Nezavisna<-c("Pol","Starost","Ca","P","log(PTH)","log(mg)","BrojZlezda","MIBI","Iskustvo","Pridruzena")
OR<-c(0.399,1.023,0.814,0.568,14.14,0.417,2.193,0.709,1.468,1.445)
LL<-c(0.174,0.996,0.277,0.122,4.969,0.197,1.019,0.339,0.754,0.702)
UL<-c(0.917,1.052,2.396,2.649,40.238,0.882,4.722,1.483,2.859,2.976)
istrazivanje<-data.frame(Nezavisna,OR,LL,UL)
istrazivanje
ggplot(istrazivanje, aes(y = Nezavisna, x = OR)) +geom_point(shape = 18, size = 5) + geom_errorbarh(aes(xmin = LL, xmax = UL), height = 0.25) + geom_vline(xintercept = 1, color = "red", linetype = "dashed", cex = 1, alpha = 0.5)
Стефан, спасибо за ваше предложение. Я думала об этом. Однако было бы трудно интерпретировать логарифм отношения шансов. ОШ около 1 является общепринятым стандартом, особенно среди клиницистов. Если я сейчас найду какую-нибудь душу, я бы использовал log.
Стефан, я пробовал, и это выглядит великолепно. Большое спасибо. Но как это интерпретировать.
Интерпретация остается прежней. Мы по-прежнему отображаем ИЛИ на шкале. Но мы больше не отображаем значения в равноудаленной шкале, то есть в случае шкалы log2 (которую я или, по крайней мере, мой мозг предпочитает :D) расстояние между 2 и 4 такое же, как между 4 и 8 и так далее.
Если я правильно понимаю ваш вопрос, одним из решений может быть ggforce facet zoom function
Образец кода:
library(gridExtra)
library(ggplot2)
library(ggforce)
ggplot(istrazivanje, aes(y = Nezavisna, x = OR)) +
geom_point(shape = 18, size = 5) +
geom_errorbarh(aes(xmin = LL, xmax = UL), height = 0.25) +
geom_vline(xintercept = 1,
color = "red",
linetype = "dashed",
cex = 1,
alpha = 0.5)+
facet_zoom(xlim = c(20, 30)) # use facet_zoom to zoom on x axis
Сюжет:
Пример данных:
Nezavisna<-c("Pol","Starost","Ca","P","log(PTH)","log(mg)","BrojZlezda","MIBI","Iskustvo","Pridruzena")
OR<-c(0.399,1.023,0.814,0.568,14.14,0.417,2.193,0.709,1.468,1.445)
LL<-c(0.174,0.996,0.277,0.122,4.969,0.197,1.019,0.339,0.754,0.702)
UL<-c(0.917,1.052,2.396,2.649,40.238,0.882,4.722,1.483,2.859,2.976)
istrazivanje<-data.frame(Nezavisna,OR,LL,UL)
istrazivanje
Спасибо за вашу помощь. Бест, А.
Как упоминал Стефан в комментариях, вы можете преобразовать свои данные, но чтобы сделать их читабельными, установите метки и разрывы на нормальные значения.
ggplot(istrazivanje, aes(y = Nezavisna, x = log2(OR))) +
geom_point(shape = 18, size = 5) +
geom_errorbarh(aes(xmin = log2(LL), xmax = log2(UL)), height = 0.25) +
geom_vline(xintercept = log2(1), color = "red", linetype = "dashed", cex = 1, alpha = 0.5) +
scale_x_continuous(breaks = log2(c(1, 10, 20, 30, 40)), labels =c(1, 10, 20, 30, 40))
Обновлено: или, поскольку вы уже берете log (PTH), вы можете сделать log10 (PTH), что примерно приведет ваше значение OR примерно с 14 до 6, и, возможно, тогда вам даже не придется преобразовывать шкалы графика.
Спасибо Мерейн. Это замечательно. Стефан, и ты мне очень помогаешь.
Возможен ли переход на логарифмическую шкалу? Хотя есть варианты добавления пробелов или разрывов, в целом это не рекомендуется. Поэтому я бы хотя бы попробовал
+ scale_x_log10()
илиscale_x_continuous(trans = "log2")
.