# Вычисление доверительных интервалов в группах
#===============================================================
upCont <- meanCont+2*sdCont # Верхняя граница доверительного интервала в
# контрольной группе
downCont <- meanCont-2*sdCont # Нижняя граница доверительного интервала в # контрольной группе #===============================================================
upCBT <- meanCBT+2*sdCBT # Верхняя граница доверительного интервала в
# группе с когнитивно-поведенческой терапией
downCBT <- meanCBT-2*sdCBT # Нижняя граница доверительного интервала в # группе с когнитивно-поведенческой терапией
#===============================================================
upFT <- meanFT+2*sdFT # Верхняя граница доверительного интервала в
# группе с семейной терапией
downFT <- meanFT-2*sdFT # Нижняя граница доверительного интервала в
# группе с семейной терапией
#===============================================================
# Построение графика средних значений и доверительных интервалов
#===============================================================
dataAn <- data.frame(Type = c("Cont", "CBT", "FT"), Mean=c(meanCont, meanCBT, meanFT), Sd = c(sdCont, sdCBT, sdFT))
#===============================================================
grPP <- ggplot(data = dataAn, mapping = aes(Type, Mean))
grPP <- grPP + geom_point(mapping = aes(Type, Mean),colour="blue",size=5)
grPP <- grPP + geom_errorbar(mapping = aes(ymin=Mean-2*Sd, ymax=Mean+2*Sd), colour="red",linewidth=1.5,width = 0.5)
grPP <- grPP + theme_light()
grPP <- grPP + theme(panel.border = element_rect(linewidth = 6, colour = "black"),
axis.title = element_text(size = 20, face = "bold",colour = "black"),
axis.text.x = element_text(size = 20, face = "bold",colour = "black"),
axis.text.y = element_text(size = 20, face = "bold",colour = "black"),
axis.ticks = element_line(linewidth = 3, colour = "black"),
legend.title = element_text(size = 20, face = "bold", color = "black"),
legend.text = element_text(size = 20, face = "bold", color = "black"))
grPP <- grPP + labs(x="Therapy type", y="Weight, kg") print(grPP)
#===============================================================
# Вывод графика
#===============================================================
На рисунке 7 изображено графическое представление средних значений веса с доверительными интервалами трех исследуемых групп пациентов до проведения терапии.
&hide_Cookie=yes)
Рисунок 7 – Средние значения (синие кружочки) и доверительный интервал для доверительной вероятности 95,5 % (красные линии, нижние и верхние горизонтальные линии обозначают границы доверительных интервалов) веса пациентов в трех группах (Cont – контрольной группе; CBT – группе с назначенной когнитивно-поведенческой терапией; FT – с назначенной семейной терапией) до проведения терапии
На примере того же набора данных продемонстрируем вычисление вероятности нахождения пациента с определенным весом в определенной группе и вычислим доверительный интервал для этой вероятности.
Листинг 6
# Вычисляем количество пациентов до прохождения лечения
#==============================================================
lenPrewt <- length(anorexia$Prewt) #Общее количество данных
lenContPrew <- length(anorexia[anorexia$Treat=="Cont",]$Prewt) # Количество
# данных в контрольной группе
lenCBTPrewt <- length(anorexia[anorexia$Treat=="CBT",]$Prewt) # Количество
# данных в группе с когнитивно-поведенческой терапией
lenBTPrew <- length(anorexia[anorexia$Treat=="FT",]$Prewt) # Количество
# данных в группе с семейной терапией
#==============================================================
# Вычисляем доли пациентов в каждой группе
#==============================================================
pCP <- lenContPrew/ lenPrewt # Доля в контрольной группе
pCBTP <- lenCBTPrewt/ lenPrewt # Доля в когнитивно-поведенческой группе
pBTP <- lenBTPrew/lenPrewt # Доля в семейной группе
#==============================================================
sdCP <- sqrt (pCP*(1-pCP)) # Среднее квадратичное отклонение долей в
# контрольной группе
sdCBT <- sqrt(pCBTP*(1- pCBTP))
sdBT <- sqrt(pBTP*(1- pBTP))
#==============================================================
# Результаты вычисления
#==============================================================
dataAn <- data.frame(Type = c("Cont", "CBT", "FT"), Mean=c(pCP, pCBTP, pBTP), Sd = c(sdCP, sdCBT, sdBT))
#==============================================================