Анализ данных в среде R. Медицинская статистика и биостатистика.

О проекте -  Оглавление обучающего курса - Примеры расчета / обработки данных - R Скрипты  - Библиотека - Дополнение - Мои достижения

Ютуб / ФБ LJ / ВК <- Задать вопрос, узнать новости, критиковать проект

R Скрипты


Скрипты - анализ взаимосвязи двух выборок.
-----------------------------------------------------
Править раздел буду позже
-----------------------------------------------------


Пример. 1 Данные, которые показывают действие двух снотворных препаратов (увеличение часов сна по сравнению с контролем) на 10 пациентов.

 

 

# Записываем в новую таблицу
help (sleep)
str (sleep)
ddd <- sleep
# Создаем отдельные группы.
ddd_1 <- subset(ddd, group == 1) #1
ddd_2 <- subset(ddd, group == 2) #1

 

#Боксплот
boxplot(ddd$extra[ddd$group == 1], main="1")
quantile(ddd$extra[ddd$group == 1])

boxplot(ddd$extra[ddd$group == 2], main="2")
quantile(ddd$extra[ddd$group == 2])

 

#Граффики
hist(ddd$extra[ddd$group == 1], breaks=10, main="")
hist(ddd$extra[ddd$group == 2], breaks=10, main="")

plot(density(ddd$extra[ddd$group == 1], adjust=2), main="")
plot(density(ddd$extra[ddd$group == 2], adjust=2), main="")

 

# Тест на нормальность
shapiro.test(ddd$extra[ddd$group == 1])
shapiro.test(ddd$extra[ddd$group == 2])

 

 

qqnorm(ddd$extra[ddd$group == 1], main="")
qqnorm(ddd$extra[ddd$group == 2], main="")

 

 

qqline(ddd$extra[ddd$group == 1], col=2)
ks.test(ddd$extra[ddd$group == 1], "pnorm")
qqline(ddd$extra[ddd$group == 2], col=2)
ks.test(ddd$extra[ddd$group == 2], "pnorm")

 

# Описательные статистики
summary(ddd$extra[ddd$group == 1])
summary(ddd$extra[ddd$group == 2])

 

descr  <- describe(x = ddd$extra[ddd$group == 2])
descr  <- describe(x = ddd$extra[ddd$group == 2])

describeBy(ddd$extra, group = list(ddd$group == 1, ddd$group == 2), digits = 1,   fast = T) #5

100*sd(ddd$extra[ddd$group == 1])/mean(ddd$extra[ddd$group == 1]) # Коэффициент вариации.

100*sd(ddd$extra[ddd$group == 2])/mean(ddd$extra[ddd$group == 2]) 

# Сравнение с генеральной совокупностью.

t.test(ddd$extra[ddd$group == 2], mu=mean(ddd$extra[ddd$group == 2]))
wilcox.test(ddd$extra[ddd$group == 2], mu=median(ddd$extra[ddd$group == 2]), conf.int=TRUE)

# Сравнение групп
t.test(ddd$extra[ddd$group == 2], ddd$extra[ddd$group == 1]) #независимых

t.test(ddd$extra[ddd$group == 2], ddd$extra[ddd$group == 1], paired=TRUE) #зависимых

wilcox.test(ddd$extra[ddd$group == 2], ddd$extra[ddd$group == 1]).
wilcox.test(ddd$extra[ddd$group == 2], ddd$extra[ddd$group == 1], paired=TRUE).

 

# Записываем в новую таблицу

 

# Создаем отдельные группы.

 

# boxplot
- Вариант boxplot(ddd$extra[ddd$group == 1], log="y")
quantile(ddd_1$extra)
log="y", - Логарифмирование позволяет ужать данные, так что бы лучше видеть заметные выбросы.

- Quantile - выдаёт табличку с данными по 4 квантилям.
- Как создать боксплоты с логическим условием для трех вариантов выбросов?

#Граффики

Hist, breaks=10 (на то количество частей, которое разделяет график)

 

Plot, adjust=2 - тип сглаживания.
# Тесты на нормальность
Plot, adjust=2 - тип сглаживания.
Строим график распределения

- shapiro.test Альтернативная гипотеза, распределение  не соответствует нормальномуест Шапиро-Уилкса всем хорош, но не векторизован, как и многие другие тесты в R, поэтому применить его сразу к нескольким колонкам таблицы данных не получится. Можно сделать пользовательскую функцию, см 1_87.
- qqnorm -графическая проверка нормальности.
Для каждого элемента вычисляется, какое место он занимает в сортированных данных (так называемый «выборочный квантиль») и какое место он должен был бы занять, если распределение нормальное (теоретический квантиль). Прямая проводится через квартили. Если точки лежат на прямой, то распределение нормальное.
Qqline?
ks.test тест Колмогорова—Смирнова, который сравнивает любые два распределения, поэтому для сравнения с нормальным распределением ему надо прямо указать «pnorm», то есть так называемую накопленную функцию нормального распределения (она встроена в R).

 

 

# Описательные статистики
Summary:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 -0.100   0.875   1.750   2.330   4.150   5.500 

Describe из библиотеки psych:

vars  n mean sd median trimmed  mad  min max range skew kurtosis   se
X1    1 10 2.33  2   1.75    2.24 2.45 -0.1 5.5   5.6 0.28    -1.66 0.63

describeBy, сразу две группы с описательной статистикой.

Коэффициент вариации. Если данные в виде таблицы, то считает для каждой колонки. Это просто отношение стандартного отклонения к среднему, взятое в процентах. Вектор должен быть минимум таблицей м двумя измерениями.

# Сравнение с генеральной совокупностью. вариант теста Стьюдента для одномерных данных. В нашем случае нулевая гипотеза состоит в том, что истинное среднее (то есть среднее генеральной совокупности) равно вычисленному нами среднему (то есть 32.28571). + непараметрический вариант, связанный с медианой.

# Сравнение групп

 

 

.


 
->

июнь 2017