Статистическая обработка экспериментальных данных. Дисперсионный и ковариационный анализы в языке R. Учебное пособие
.pdf
Реализация двухфакторного дисперсионного анализа для повторных измерений на языке R.
Для выполнения этого кода предварительно надо загрузить пакет doBy (выбрать в главном меню пункт «Пакеты» - «Установить пакет(ы)», в открывшемся окне выбрать любое зеркало для скачивания, можно оставить по умолчанию, в следующем окне выбрать название пакета).
mem3=read.table("memory3.txt",header=TRUE)
require(doBy)
summaryBy(res~method+time, data=mem3, FUN=c(mean, sd,
length))
attach(mem3)
fit1<-aov(res~method*time+Error(person/time),
data=mem3)
summary(fit1)
Рассмотрим код. Функция require аналогична функции library и выполняет загрузки и добавление пакета в пути поиска.
Далее используется функция summaryBy из добавленного пакета. Она выводит сводную таблицу, в которой представлена зависимость результата от двух факторов – метода и времени, рассчитывая среднее значение, стандартное отклонение и количество значений для каждого сочетания факторов. Результат вывода этой функции представлен на рисунке 14.
21
Рисунок 14 – Результат вывода функции summaryBy
Здесь первая строка соответствует тем значениям res из исходных данных, которые соответствуют комбинации первого метода запоминания и времени в 5 недель. Остальные строки трактуются аналогично. Видно, что результаты теста для разных комбинаций факторов значительно варьируют – например, для первого метода через 5 недель результат составляет 76%, а для второго метода через 5 недель – 92%. В результате двухфакторного дисперсионного анализа можно выяснить, связана ли наблюдаемая разница с рассматриваемыми факторами, или обусловлена случайными по отношению к методу и времени воздействиями.
На рисунке 15 представлен результат вывода информации о модели с помощью команды summary.
22
Рисунок 15– Информация о двухфакторной модели дисперсионного анализа для повторных измерений
Подробное описание структуры вывода было приведено в примере 1. В данном случае из столбца Pr(>F) можно сделать вывод, что взаимодействие между методом и временем не оказывают статистически значимого влияния на результат теста (для него вероятность составляет 0.76528, что превышает уровень значимости 0.05). Однако между временем и результатом теста существует статистически значимая связь (P=0.00469<0.05). Также связь существует между методом и результатом (P=0.04408<0.05).
В данном случае дизайн эксперимента сбалансирован, потому что для каждой комбинации факторов число участников одинаково (см. столбец res.length в выводе команды summaryBy). Если бы набор данных был несбалансированным, то использование функции aov дало бы некорректные результаты. В таком случае необходимо применять функцию lm. Подробнее об этом можно прочитать в статье [2].
23
1.2. Ковариационный анализ
Перейдем к рассмотрению ковариационного анализа. Его отличие от дисперсионного анализа заключается в том, что рассматривается влияние качественных и количественных
независимых величин на одну или несколько зависимых величин. Под качественными величинами понимаются рассмотренные выше факторы. Количественная независимая величина, которая относится к интервальной или метрической шкале, называется ковариатой. В качестве ковариаты должна использоваться либо непрерывная переменная, либо дискретная с большим числом значений. Если степени изменчивости зависимой переменной от воздействия ковариат велика, можно сделать вывод о статистически значимом воздействии ковариат на нее.
Рассмотрим пример реализации однофакторного ковариационного анализа на языке R.
Пример 4
Предположим, что в рассмотренный выше эксперимент с методами запоминания добавили независимую переменную – степень выраженности у человека визуальной памяти (значения от 0 до 1, при этом 1 – максимальная степень выраженности), предварительно определенную с помощью теста, которая будет являться ковариатой. Исходные данные для этого примера будут иметь вид, представленный на рисунке 16. res5weeks – результат через пять недель, зависимая переменная; method и vis_mem – независимые переменные, при этом vis_mem – ковариата.
24
Рисунок 16 – Исходные данные для однофакторного ковариационного анализа
Реализация однофакторного ковариационного анализа на языке R.
mem=read.table("memory4.txt",header=TRUE)
attach(mem)
fit<-aov(res5weeks~vis_mem+method)
summary(fit)
Для однофакторного ковариационного анализа также применяется функция aov, отличие состоит в синтаксисе записи зависимых и независимых переменных.
На рисунке 17 представлен результат вывода команды summary(fit).
Рисунок 17 – Результат выполнения однофакторного ковариационного анализа
25
Из результата видно, что ни степень развития визуальной памяти, ни метод запоминания не оказывают статистически значимого воздействия на результат.
Следует отметить, что описанные методы не являются полностью информативными. Например, если в однофакторном дисперсионном и ковариационном анализе F-тест показывает, что какой-то фактор оказывает статистически значимое воздействие на результат, то есть различные уровни этого фактора (в нашем примере – методы запоминания) по-разному влияют на результат, то может возникнуть необходимость узнать, какие именно уровни отличаются между собой. В рассмотренных примерах у фактора «метод» всего два уровня, но в реальных задачах их может быть гораздо больше. Для этого применяются множественные сравнения. В языке R применяются, например, функция TukeyHSD(). Также часто следует проводить проверку допущений, лежащих в основе теста. Эти аспекты не рассматриваются в рамках данной работы. Подробно ознакомиться
сними на примерах можно в книге [3].
Втаблице 2 представлены формулы для распространенных дизайнов эксперимента. Некоторые из них были использованы в описанных примерах. Здесь большие буквы – это количественные переменные, маленькие – группирующие факторы, объект – это переменная, в которой содержится уникальный идентификатор для объектов таблицы. Так, в примерах это была переменная person, содержащая id участника эксперимента. Порядок переменных в формулах имеет значение.
26
Таблица 2 – Формулы для распространенных дизайнов экспериментов.
Дизайн |
Формула |
|
|
|
|
Однофакторный |
y~A |
|
дисперсионный анализ |
||
|
||
|
|
|
Однофакторный |
|
|
ковариационный анализ с одной |
y~x+A |
|
ковариатой |
|
|
|
|
|
Двухфакторный дисперсионный |
y~A*B |
|
анализ |
||
|
||
|
|
|
Двухфакторный |
|
|
ковариационный анализ с двумя |
y~x1+x2+A*B |
|
ковариатами |
|
|
|
|
|
Однофакторный |
|
|
дисперсионный анализ для |
y~A+Error(объект/A) |
|
зависимых переменных |
|
|
|
|
|
Дисперсионный анализ с |
|
|
повторными изменениями с |
|
|
одним внутригрупповым |
y~B*W+Error(Объект/W) |
|
фактором W и одним |
|
|
межгрупповым фактором B |
|
|
|
|
27
2.Практическая часть
1.Изучить теоретическую часть и реализовать примеры с 1 по 4.
2.Выполнить самостоятельно задания 2.1, 2.2. Подготовить отчет (программный код, результат выполнения и выводы). Варианты заданий отличаются используемым набором данных. Для всех заданий считать, что уровень значимости составляет 5%.
Загрузка данных выполняется с помощью приведённого ниже кода, где name – имя набора данных, pname – имя пакета, в котором содержится набор данных:
data(“name”, package=“pname”)
name # вывод набора данных
help(name) # вызов справки
2.1. Построение моделей дисперсионного анализа. Выполнить следующие пункты для своего варианта.
2.1.1.Рассчитать средние значения и стандартные отклонения для каждой группы.
2.1.2.Выяснить, сбалансирован ли дизайн эксперимента
(table(независимая_переменная_1,
независимая_переменная_2)).
2.1.3.Построить модель однофакторного дисперсионного анализа для каждой независимой переменной.
2.1.4.Построить модель многофакторного дисперсионного анализа.
2.1.5.Сделать научно обоснованные выводы.
28
Варианты для задания 2.1
Вариант 1.
Вкачестве исходных данных использовать набор данных ToothGrowth из пакета datasets, описывающий зависимость длины зубов морских свинок от дозы и типа аскорбиновой кислоты, который они получали. len – длина зубов, зависимая переменная; supp (источник аскорбинки, VC – витамин C, OJ – апельсиновый сок) и dose (доза, мг/день) – независимые переменные. Пакет загрузить, используя код из п. 2.
Вариант 2.
Вкачестве исходных данных использовать набор данных CO2 из пакета datasets, описывающий исследование холодоустойчивости двух разновидностей злака ежовника, где: uptake – уровень потребления углекислого газа, зависимая переменная; Type (штат, Квебек или Миссисипи, где вырос образец) и conc (концентрация углекислого газа
вокружающей среде, семь уровней) – независимые переменные. Внимание! В этом наборе данных Type является межгрупповым фактором, а conc – внутригрупповым. Это следует учитывать при выполнении пунктов 2.1.3, 2.1.4 – в первом случае для переменной conc нужно использовать однофакторный анализ для повторных измерений. Двухфакторный анализ в задании 2.1.4 также выполняется для повторных измерений. Объект – переменная Plant. Также перед началом работы нужно выполнить следующую команду, чтобы отобрать в отдельный набор данных те записи, которые соответствуют только охлажденным (chilled) растениям.
CO2_chilled<-subset(CO2, Treatment==’chilled’)
29
Вариант 3.
В качестве исходных данных использовать набор данных waste из пакета multcomp, описывающий зависимость количества отходов на заводе от температуры и типа окружающей среды, где: waste – количество отходов, зависимая переменная; envir (тип окружающей среды, 5 уровней: env1…env5) и temp (температура, 3 уровня: low, medium, high) – независимые переменные.
2.2. Построение модели ковариационного анализа.
В качестве исходных данных использовать приведенные ниже данные. Они описывают эксперимент с выращиванием растений в неблагоприятных внешних условиях. В одинаковые емкости было посажено одинаковое количество семян (порядка 1000). Экземпляры разделили на 2 группы, и к каждой применяли определенный тип удобрения (fert). После того, как семена проросли, причем в разных емкостях проросло разное количество семян (count), был измерен вес каждого растения и рассчитано среднее значение (weigth). Для этих данных выполнить однофакторный ковариационный анализ с одной ковариатой. Зависимую переменную, независимую переменную и ковариату определить самостоятельно.
30
