У меня есть фрейм данных, состоящий из шести переменных - одной двухуровневой группирующей переменной, указывающей статус лечения, и четырех двоичных (0/1) переменных. Я хотел бы изобразить долю успехов с 95% доверительным интервалом в виде столбцов ошибок для каждой двоичной переменной, включая отдельные точки и цвета для каждой группы лечения.
В настоящее время я рисую их, как показано ниже.
df2 <-
df %>%
select(., c(q1_active, # select variables
q2_appt,
q2_trmt,
q2_img,
q2_tele,
q2_trav))
df3 <-
df2 %>%
pivot_longer(cols = starts_with("q2"),
names_to = "variable",
names_prefix = "q2",
values_to = "values")
se <- function(x) sqrt(var(x)/length(x)) #creates function to calculate standard error of the mean
df4 <-
df3 %>%
group_by(variable, q1_active) %>% # group by both binom variable and treatment status
mutate(means=mean(values)) %>% # calculate proportions for binomial variables
mutate(se=se(values)) %>% # calculates std error
distinct(means, .keep_all=TRUE)
ungroup() %>%
drop_na() # there is one "NA" group in the treatment variable I do not need
pos <- position_dodge(.5)
p2 <-
df5 %>%
ggplot(., aes(x=variable, y=means)) +
geom_point(aes(colour=as.factor(q1_active)),position=pos) +
geom_errorbar(aes(ymin=means-(1.96*se), ymax=means+(1.96*se),
colour=as.factor(q1_active),
group=as.factor(q1_active)),
width=.2, position=pos) +
labs(title="Title Here",
subtitle="Subtitle Here",
x="",
y="")
Сюжет выглядит нормально. Я знаю, что пропорции правильные, потому что я дважды проверил переменную «означает».
Однако я не уверен, что правильно рассчитываю стандартную ошибку для этих пропорций. Вдобавок (и, как вы, вероятно, видите), когда я запускаю график, у меня есть одна пропорция с нулевой частотой. Вместо этого я хотел бы рассчитать и построить интервал Вильсона для этих пропорций вместо стандартной ошибки, как это сделал я.
Может ли кто-нибудь помочь мне в том, как правильно рассчитать для этих биномиальных пропорций Вильсона (или «точный») доверительный интервал - либо до, либо после того, как я разверну свой фрейм данных - и как построить его график с помощью ggplot? недоразумения. И, пожалуйста, дайте мне знать, если вам нужны какие-либо разъяснения. Заранее спасибо.