5 курс / ОЗИЗО Общественное здоровье и здравоохранение / Статистический_анализ_данных_в_медицинских_исследованиях_в_2_ч_Красько
.pdfDmitrienko A., Molenberghs G., Chuang-Stein C., Offen W., Analysis of Clinical Trials Using SAS®: A Practical Guide, — Cary, NC: SAS Institute Inc. , — 2005. — 420p.
Раздел 16.
Н. Дрейпер, Г. Смит. Прикладной регрессионный анализ. В 2-х кн. – М. : Финансы и статистика, — 1986.
Regression methods in biostatistics: linear, logistic, survival, and repeated measures models / Eric Vittinghoff ... [et al.], — NY: Springer, — 2005. — 338p.
Раздел 17.
Agresti A. Categorical Data Analysis, — NY: John Wiley & Sons, — 2002. — 734p.
Regression methods in biostatistics: linear, logistic, survival, and repeated measures models / Eric Vittinghoff ... [et al.], — NY: Springer, — 2005. — 338p.
Breslow N. E., Day N. E. Statistical Methods in Cancer Research. Volume II. The Design and Analysis of Cohort Studies, — IARC Scientific Publications No. 82, — 1987. — 406p.
Hosmer D.W., Lemeshow S. Applied logistic regression. 2nd ed., — NY: John Wiley & Sons, — 2000. — 376p.
Раздел 18.
Estève, J., Benhamou, E., Raymond, L., Statistical methods in cancer research, Volome IV. Descriptive epidemiology, — Lyon: IARC Scientific Publications, — 1994. —302p.
Hosmer, D. W., and Lemeshow, S., Applied Survival Analysis, NY: John Wiley & Sons,
— 1999. —386p.
Cox, D. R., and Oakes, D., Analysis of Survival Data, — NY: Chapman & Hall,— 1985.
— 208p.
Selvin S., Survival Analysis for Epidemiologic and Medical Research, — Cambridge University Press, — 2008. — 282p.
Разделы 19 – 20.
Harrell F.E. Regression modeling strategies: with applications to linear models, logistic regression, and survival analysis. — NY: Springer , — 2001. — 568 p.
Ewout W. Steyerberg Clinical Prediction Models. A Practical Approach to Development, Validation and Updating, — NY: Springer, — 2009. — 498p.
Раздел 21.
Монтгомери Д. К. Планирование эксперимента и анализ данных: Пер.—Л.: Судостроение, 1980.—384 с.
Regression methods in biostatistics: linear, logistic, survival, and repeated measures models / Eric Vittinghoff ... [et al.], — NY: Springer, — 2005. — 338p.
Раздел 22.
Монтгомери Д. К. Планирование эксперимента и анализ данных: Пер.—Л.: Судостроение, 1980.—384 с.
Gart, J.J., Krewski, D., Lee, P.N., Tarone, R.E. and Wahrendorf, J., 1985. Statistical methods in cancer research. Volume III-The design and analysis of long-term animal experiments. IARC scientific publications, (79), pp.1-219.
241
Festing, M.F. and Altman, D.G., 2002. Guidelines for the design and statistical analysis of experiments using laboratory animals. ILAR journal, 43(4), pp.244-258.
Раздел 23.
Флетчер Р., Флетчер С., Вагнер Э. Клиническая эпидемиология. Основы доказательной медицины. — М.: Медиа Сфера, —1998. — 352 с.
Рекомендации по подготовке научных публикаций в медико-биологических исследованиях хорошо представлены в книге:
Ланг Т.А., Сесик М., Как описывать статистику в медицине. Руководство для авторов, редакторов и рецензентов. —М.: Практическая Медицина, 2011. - 480 с.
242
Приложение R. Почему R?
R – это специфический проект информационного сообщества для статистического и интеллектуального анализа данных.
Основные преимущества R:
1.Вам не нужно знать весь проект, чтобы начать его использовать. Гибкая система библиотек (package) позволит работать только с той частью проекта, которая нужна для анализа ваших данных.
2.Использование R допускается в высокорейтинговых международных журналах, которые ранее разрешали только использование программного обеспечения SAS (Statistical Analysis System) для статистических расчетов. Также R популярен в академической среде.
3.R – бесплатен и доступен. Скачать его можно с очень большого количества серверов, расположенных по всему миру.
4.Главное – R помогает сосредоточиться на исследовании и системе доказательств. Обращаясь к определенной функции R, вы получаете ответ ровно на тот "вопрос", который вы задали. Это позволяет гибко составлять свое исследование, избегая множества характеристик, которые не нужны в вашем исследовании и могут вас запутать. Тем самым, он заставляет продумывать ваши "вопросы" и логически систематизировать именно ваше исследование.
5.Все этапы анализа мы можете описывать для себя вместе со скриптами, как комментарии. Вся последовательность анализа и система доказательств будет записана. Вы получите цельный взгляд на свое исследование. Если вы что-то пропустили, вы всегда можете добавить пропущенную часть анализа в нужное место.
Если вы начинающий исследователь – скачайте ядро R (http://cran.r- project.org/), установите у себя на компьютере. Запустив программу, вы получите следующее окно:
243
Установите библиотеку Rcmdr (Rcmdr-package, он автоматически установит и другие библиотеки). Введите команду library(Rcmdr) на консоли. Вы получите следующее окно.
Его достаточно, чтобы начать работу с R.
Ваши данные можно импортировать из файла (текстового, файла EXCEL, буфера обмена и др.).
Попробуйте, возможно, вам понравится строгость и лаконичность R?
Скрипты R, данные в настоящем пособии не оптимизированы с точки зрения программиста. Но задача была – показать простоту R с точки зрения исследователя.
Пока нет русскоязычного руководства по R. Но, если русскоязычных пользователей R станет больше, оно обязательно появится.
Пользователям желаю интересных исследований!
О.К.
244
Приложение R-1
library(abind)
library(e1071)
#####################################
# формирование набора данных
#####################################
Univar <- data.frame(cbind( sample.А=c(114,119,117,121,115,116), sample.Б=c(99.4, 104.0, 102.0, 106.0,100.0,101.0), sample.В=c(94.0, 100.4, 97.0, 102.0, 95.0, 96.0), sample.Г=c(94, 99, 97, 101, 95, 96), sample.Д=c(101.8, 104.0, 102.0, 107.0, 100.0, 101.0)
))
######################################################
# расчет среднего и среднеквадратичного отклонения
######################################################
numSummary(Univar[,c("sample.А", "sample.Б", "sample.В", "sample.Г", "sample.Д")], statistics=c("mean", "sd"))
######################################################
#одновыборочный t-тест с различными гипотезами
######################################################
#Выборка А
t.test(Univar$sample.А, alternative='two.sided', mu=100.0, conf.level=.95) t.test(Univar$sample.А, alternative='greater', mu=100.0, conf.level=.95) t.test(Univar$sample.А, alternative='less', mu=100.0, conf.level=.95)
# Выборка Б
t.test(Univar$sample.Б, alternative='two.sided', mu=100.0, conf.level=.95) t.test(Univar$sample.Б, alternative='greater', mu=100.0, conf.level=.95) t.test(Univar$sample.Б, alternative='less', mu=100.0, conf.level=.95)
# Выборка В
t.test(Univar$sample.В, alternative='two.sided', mu=100.0, conf.level=.95) t.test(Univar$sample.В, alternative='greater', mu=100.0, conf.level=.95) t.test(Univar$sample.В, alternative='less', mu=100.0, conf.level=.95)
# Выборка Г
t.test(Univar$sample.Г, alternative='two.sided', mu=100.0, conf.level=.95) t.test(Univar$sample.Г, alternative='greater', mu=100.0, conf.level=.95) t.test(Univar$sample.Г, alternative='less', mu=100.0, conf.level=.95)
# Выборка Д
t.test(Univar$sample.Д, alternative='two.sided', mu=100.0, conf.level=.95) t.test(Univar$sample.Д, alternative='greater', mu=100.0, conf.level=.95) t.test(Univar$sample.Д, alternative='less', mu=100.0, conf.level=.95)
245
Приложение R-2
Перед выполнением скрипта необходимо скопировать данные, приведенные в таблице ниже, двумя столбцами (Age, Size), сохранить в текстовом файле или файле EXCEL, затем импортировать их в набор данных R под именем Proportions.
Age |
Size |
Age |
Size |
Age |
Size |
Age |
Size |
Age |
Size |
Age |
Size |
Age |
Size |
6 |
3.23 |
7 |
18.32 |
8 |
20.12 |
9 |
12.21 |
10 |
2.6 |
11 |
8.31 |
12 |
8.62 |
6 |
4.07 |
7 |
3.5 |
8 |
6 |
9 |
25.15 |
10 |
12.45 |
11 |
11.86 |
12 |
7.47 |
|
|
|
|
8 |
2.63 |
9 |
31.61 |
10 |
5.48 |
11 |
3.81 |
12 |
5.71 |
|
|
|
|
8 |
3.56 |
9 |
5.27 |
10 |
10.3 |
11 |
8.21 |
12 |
5.22 |
|
|
|
|
8 |
5.18 |
9 |
7.66 |
10 |
2.99 |
11 |
7.44 |
12 |
6.47 |
|
|
|
|
8 |
20.84 |
9 |
6.71 |
10 |
8.29 |
11 |
3.59 |
12 |
7.79 |
|
|
|
|
8 |
9.58 |
9 |
12.42 |
10 |
3.56 |
11 |
7.78 |
12 |
21.56 |
|
|
|
|
8 |
6.13 |
9 |
4.32 |
10 |
3.51 |
11 |
5.69 |
12 |
5.29 |
|
|
|
|
|
|
|
|
10 |
9.1 |
11 |
8.13 |
12 |
8.62 |
|
|
|
|
|
|
|
|
10 |
5.21 |
11 |
4.74 |
12 |
5.99 |
|
|
|
|
|
|
|
|
10 |
9.77 |
11 |
1.98 |
12 |
9.66 |
|
|
|
|
|
|
|
|
10 |
6.37 |
11 |
10.01 |
12 |
9.52 |
|
|
|
|
|
|
|
|
10 |
7.24 |
11 |
2.74 |
12 |
4.42 |
|
|
|
|
|
|
|
|
10 |
3.6 |
11 |
5.27 |
12 |
16.19 |
|
|
|
|
|
|
|
|
10 |
9.9 |
11 |
10.96 |
12 |
5.14 |
|
|
|
|
|
|
|
|
|
|
11 |
2.62 |
12 |
5.93 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
1.37 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
45.62 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
7.9 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
13.95 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
4.65 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
4.01 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
5.92 |
###########################################
#одновыборочный биноминальный тест
###########################################
#расчет для группы возраста 6 лет
m6 <- nrow(subset(Proportions, Age==6 & Size >4.8))
n6 <- nrow(subset(Proportions, Age==6))
#точный биноминальный тест с расчетом доверительных интервалов binom.test(m6, n6, alternative='two.sided', p=.03, conf.level=.95)
#тест пропорций - нормальная аппроксимация
prop.test(m6, n6, alternative='two.sided', p=.03, conf.level=.95, correct=FALSE)
# тест пропорций - нормальная аппроксимация с поправкой на непрерывность prop.test(m6, n6, alternative='two.sided', p=.03, conf.level=.95, correct=TRUE)
###############################################################
# расчет для группы возраста 7-12 лет (только точный биноминальный тест)
m7 <- nrow(subset(Proportions, Age==7 & Size >5.41))
n7 <- nrow(subset(Proportions, Age==7))
binom.test(m7, n7, alternative='two.sided', p=.03, conf.level=.95)
m8 <- nrow(subset(Proportions, Age==8 & Size >6.44))
n8 <- nrow(subset(Proportions, Age==8))
246
binom.test(m8, n8, alternative='two.sided', p=.03, conf.level=.95)
m7 <- nrow(subset(Proportions, Age==7 & Size >5.41))
n7 <- nrow(subset(Proportions, Age==7))
binom.test(m7, n7, alternative='two.sided', p=.03, conf.level=.95)
m8 <- nrow(subset(Proportions, Age==8 & Size >6.44))
n8 <- nrow(subset(Proportions, Age==8))
binom.test(m8, n8, alternative='two.sided', p=.03, conf.level=.95)
m9 <- nrow(subset(Proportions, Age==9 & Size >7.13))
n9 <- nrow(subset(Proportions, Age==9))
binom.test(m9, n9, alternative='two.sided', p=.03, conf.level=.95)
m10 <- nrow(subset(Proportions, Age==10 & Size >7.65))
n10 <- nrow(subset(Proportions, Age==10))
binom.test(m10, n10, alternative='two.sided', p=.03, conf.level=.95)
m11 <- nrow(subset(Proportions, Age==11 & Size >9.0))
n11 <- nrow(subset(Proportions, Age==11))
binom.test(m11, n11, alternative='two.sided', p=.03, conf.level=.95)
m12 <- nrow(subset(Proportions, Age==12 & Size >10.4))
n12 <- nrow(subset(Proportions, Age==12))
binom.test(m12, n12, alternative='two.sided', p=.03, conf.level=.95)
247
Приложение R-3
#Тест Мак-Нимара, пропорция, доверительные интервалы
#для анализа пар (matched pairs)
library(PropCIs) # библиотека для расчетов доверительных интервалов для таблиц 2 х 2 Performance <- matrix(c(28, 13, 7, 27),
nrow = 2, dimnames = list("До мероприятий" = c("ЧБД", "УР"),"После мероприятий" = c("ЧБД", "УР"))) Performance # печать таблицы 2 х 2
mcnemar.test(Performance) # тест Мак-Нимара
diffpropci.Wald.mp(b=7, c=13, n=75, 0.95) # ДИ Вальда для пар(Wald interval for a difference of proportions with matched pairs)
diffpropci.mp(b=7, c=13, n=75, 0.95) # Уточненные ДИ по Вальду для пар (Adjusted Wald interval for a difference of proportions with matched pairs)
scoreci.mp(b=7, c=13, n=75, 0.95) # Расчет ДИ по Вилсону (Wilson's confidence interval for a single proportion)
oddsratioci.mp(b=7,c=13, 0.95) # ДИ для отношения шансов в парном дизайне (Adapted binomial score confidence interval for the subject-specific odds ratio with matched pairs)
248
Приложение R-4
library(vcd)
Agreement <- as.table(matrix(c(23,2,1,0,2,14,5,0,0,2,36,0,0,0,3,12), 4, 4, byrow=TRUE))
rownames(Agreement) <- c('Нет заболевания', '1 степень ', '2 степень ', '3 степень ') colnames(Agreement) <- c('Нет заболевания', '1 степень ', '2 степень ', '3 степень ')
Agreement # Печать таблицы
Kappa(Agreement) # расчет Каппы Коэна
confint(Kappa(Agreement)) # расчет доверительных интервалов agreementplot(Agreement , main="Диагностика") # визуализация
249
Приложение R-5
#Сравнение сдвига в среднем до и после лечения
HG <- data.frame(cbind( before=c(100,95,73,98,110,101), after=c(130, 110, 120, 115, 105, 125) ))
t.test(HG$after, HG$before, alternative='two.sided', conf.level=.95, paired=TRUE) t.test(HG$after, HG$before, alternative='greater', conf.level=.95, paired=TRUE)
250