Molbiol.ru | О проекте | Справочник | Методы | Растворы | Расчёты | Литература | Орг.вопросы Web | Фирмы | Coffee break | Картинки | Работы и услуги | Биржа труда | Zbio-wiki NG SEQUENCING · ЖИЗНЬ РАСТЕНИЙ · БИОХИМИЯ · ГОРОДСКИЕ КОМАРЫ · А.А.ЛЮБИЩЕВ · ЗООМУЗЕЙ Темы за 24 часа [ Вход* | Регистрация* ] Форум: | |
nattali80 Участник |
Являюсь новичком в R и статистике, мне необходимо выбрать и применить тесты для реализации моего MSc проекта. Хотелось бы всё делать в R, чтобы так продвигаться в его освоении. Немного опишу научный проект, поскольку вопросы к данным могут быть сформулированы не совсем правильно.. и, изложив базу, мне будет проще. Проект посвящен изучению зависимости распределения одного вида птиц (Black Vultures) от параметров поверхности и метео-параметров вблизи аэропортов с практической целью – поиска способов уменьшения риска столкновений этих птиц с самолетами. Помимо практики – набираются и новые сведения об этом виде, то есть – реализуются и научные задачи. Поиск пищи эти птицы ведут в парящем полете в дневные часы суток, кружа часами над земной поверхностью и этим создавая опасность столкновений с самолетами. Выбран для изучения именно этот вид по той причине, что он является и наиболее частой причиной столкновений, и, при этом, на него не действуют обычные меры отпугивания птиц. Территория изучения – Бразилия. Данные по птицам – это учеты птиц в парящем полете в активные для них часы суток (8-18ч) на территории окружения двух аэропортов (с радиусом 13 км от аэропорта) в 26 точках наблюдений (Pob) в течении 12 месяцев. Наблюдения (обзоры неба) проводились каждые 15 мин (за исключением неравномерных перерывов) . Для каждой птицы (или группы близко летящих птиц) регистрировалось: расстояние до наблюдателя, вертикальный угол и направление по компасу, что дало возможность для каждой птицы или группы птиц – вычислить их географ. координаты (широту, долготу) – т.е. привязать ее к местности и переместить в ГИС софт в виде точек. Одновременно с учетами проводились наблюдения за метео-параметрами через переносную метеостанцию (также каждые 15 мин регистрировалась макс. температура, макс. скорость ветра, относит. влажность, направление ветра, атм. давление и еще ряд покзателей, ). Данные поверхности – были взяты посредством технологий ДЗЗ и ГИС из космо-снимков поверхности. Эти параметры поверхности : температура поверхности, градиент температуры поверхности, параметры рельефа (высота, экспозиция, угол склона) и параметры ландшафта (по простой типизации посредством оцифровки снимка высокого разрешения). Для приведения этих данных к таблицам, пригодным для стат. анализов, – я разработала многоходовый метод, основанный на ГИС и ДЗЗ технологиях. И вот сейчас я работаю с этими обработанными и приведенными к табличному виду, пригодными для стат. анализа, данными. Для задач проекта – я сформулировала простые «вопросы к стат. анализам» , я выделила так несколько однотипных вопросов , по которым мне надо провести однотипные анализы по данным. И, поскольку опыт в статистике и R у меня еще очень низок, - я ищу помощи специалистов в том, чтобы разобраться – какие тесты при таких сформулированных вопросах необходимо применять. И как их применить в R. Не знаю, насколько необходимым было это описание.. Ниже – вопрос по одной задаче. Задача 1. Есть данные активности птиц по часам дня. При осреднении наблюдения за каждый месяц – можно построить график, где по оси OX время - 8.00, 8.15, 8.30, 8.45…. 18.00 А по оси OY – нормированный показатель числа учтенных птиц (число птиц в 1 обзор неба в данный 15-мин интервал в данный месяц). То есть, каждый график – это график активности птиц в дневные часы за каждый месяц. См. пример рисунка: графики дневной активности за май, июнь, июль и август (не смогла почему-то вставить картинкой, по ссылке - рисунок) И я хочу понять, есть ли различие в графике суточной активности птиц за разные месяцы (или же просто – есть ли различие в суточной активности между самым теплым и самым холодным месяцем). Вот, например, как сравнить при помощи стат. анализов - графики в примере? Имея в виду, чтобы статистически достоверно показать, есть различие в графиках активности или нет. Применительно к проекту эта задача имеет несколько приложений: - определить, есть ли различие в графике суточной активности по месяцам (т.е. есть ли влияние сезонности) - определить, есть ли различие в графике суточной активности на разных типах ландшафта (над городским и сельским например). Здесь опять надо также сравнивать графики активности, рассчитанные для территорий с разными типами ландшафта Какой тест я могу использовать для сравнения графиков суточной активности за разные месяцы? Так понимаю, что ANOVA – не могу? Сообщение было отредактировано nattali80 - 20.12.2014 13:31 |
plantago Постоянный участник |
Тут есть еще варианты
|
nattali80 Участник |
В данной задаче – я добиваюсь простого теста, по аналогией с тестем ANOVA. То есть я хочу сравнить 2 (или несколько) графиков активности птиц (где ось OX – время суток, а ось OY – число птиц, зафиксированных в это время), и получить ответ – они различаются статистически достоверно, или нет? Рассуждаю по аналогии с работой ANOVA или t-test Для примера мои данные – в приложенном txt файле. Мой вопрос – какой тест использовать, чтобы сравнить график A, B и C в таблице (графа Hours – время дня, графа R(vult) – число птиц за 1 обзор). Т.е. мне нужно получить ответ, различаются ли графики статистически значимо. Делает ли это пакет «Dynamic Time Warp project»? Не поняла это из описания. А где смотреть в описании про это (или как выйти в описании на понимание того, как сделать скрипт в R)? Сообщение было отредактировано nattali80 - 14.11.2014 21:37 Файл/ы:
|
nattali80 Участник |
Ну вот, я задала этот же вопрос в stack exchange. И мне дали пример решения (тест с кодом в R). Может быть, вы могли бы его прокомментировать (ваше мнение о способе) и коротко его объяснить? Последний ответ там. Или где читать. Говорится о linear modelling или anova, но это очень широкие темы. И не похоже на то, что я делала, например, когда делала тест anova по другой задаче. ..попробую разобраться по хелпу к aov и lm. lm (Fitting Linear Models) там называют более подходящим. Хотя пока я не понимаю, что делают эти тесты с данными моего примера. Сообщение было отредактировано nattali80 - 15.11.2014 07:21 |
plantago Постоянный участник |
Если ответ на Stack Overflow непонятен, то, вероятно, надо спрашивать там.
|
PS2004R Постоянный участник |
поскольку хочется рассмотреть модель которая связывает некие предикторы одновременно и с пространством и временем. Экспериментальные данные в первом приближении являются Point patterns. Во втором приближении траекториями Moving objects, trajectories. В обоих разделах масса пакетов. Посмотрите что из этого подходит. PS Рассматривать первую пришедшую в голову модель крайне бы не хотелось, но в принципе и время и пространство достаточно просто "вкорячить" в любую полученную nlm() модель
|
nattali80 Участник |
Раздел Поскольку "Moving objects, trajectories" - нацелен на анализ именно animal movement. Но не могу понять, что там можно выбрать. И пакетов много и по их описанию мне не ясно, подходит ли это для данного случая. Может быть - вообще не подходят принципиально (ведь время суток, как кажется, не имеет частоты и периодичности, мб. условия задачи не соответствуют этим тестам) Если бы найти аналогичный разобранный пример, как мне кажется, это довольно общая зоологическая задача... Сообщение было отредактировано nattali80 - 24.11.2014 06:37 |
PS2004R Постоянный участник |
(nattali80 @ 23.11.2014 22:57) Поскольку "Moving objects, trajectories" - нацелен на анализ именно animal movement. Но не могу понять, что там можно выбрать. И пакетов много и по их описанию мне не ясно, подходит ли это для данного случая. Может быть - вообще не подходят принципиально (ведь время суток, как кажется, не имеет частоты и периодичности, мб. условия задачи не соответствуют этим тестам) Если бы найти аналогичный разобранный пример, как мне кажется, это довольно общая зоологическая задача... 1) время суток просто учитывает что "вечер переходит в ночь, ночь переходит в утро и т.п" например 2) там у каждого пакета (имя кликабельное) есть pdf с мануалом и в нём есть короткие, не всегда искуственные примеры к каждой команде. Часто также имеется vignets с практическим примером использования (обычно переработанная статья авторов метода).
|
nattali80 Участник |
Читая книгу Michael J. Crawley где он разбирает временные ряды на примере, пришла мысль, что, возможно, к моей задаче сравнить 12 кривых дневной активности (каждая кривая - усредненные данные дневной активности за один месяц), можно подойти таким образом: расположить все 12 кривых друг за другом, а временную шкалу сделать одной. Тогда получится.. временной ряд (цикл), который уже можно анализировать - какими-то, вероятно, стандартными (для таких задач) приемами. Пока очень общая идея, поскольку не знакома с такими стандартными приемами. Возможно, вы тоже говорили об этом, давая ссылку на circular statistic? Но мне пока наводки необходимы более точные, чтобы доходило до понимания ) Сообщение было отредактировано nattali80 - 25.11.2014 04:11 |
PS2004R Постоянный участник |
(nattali80 @ 25.11.2014 01:48) Пришла интересная идея по преобразованию данных. Читая книгу Michael J. Crawley где он разбирает временные ряды на примере, пришла мысль, что, возможно, к моей задаче сравнить 12 кривых дневной активности (каждая кривая - усредненные данные дневной активности за один месяц), можно подойти таким образом: расположить все 12 кривых друг за другом, а временную шкалу сделать одной. Тогда получится.. временной ряд (цикл), который уже можно анализировать - какими-то, вероятно, стандартными (для таких задач) приемами. Пока очень общая идея, поскольку не знакома с такими стандартными приемами. Возможно, вы тоже говорили об этом, давая ссылку на circular statistic? Но мне пока наводки необходимы более точные, чтобы доходило до понимания ) Да, это и есть circular statistic (метрика на окружности) Ключевой пакет library(circular) . А ссылка, которую я давал, как раз ведет на примеры кода из книги об этом пакете. Каждый пример снабжен строкой комментарием из которой собственно понятна цель написания (дополнительно полезно читать описания конкретной используемой команды из пдв-мануала самого пакета). PS тут важно сразу понять, что R пишут волонтеры-добровольцы и это ни в коей мере не коммерческое "блоатваре", причем и в вопросе документации тоже. Ни один доброволец не напишет ни строчки лишней документации )) Надо читать _всё_, ничего ненужного (какой нибудь инструкции что "в зеркале вы видите то что сзади вас") просто нет.
|
nattali80 Участник |
(PS2004R @ 25.11.2014 09:45) Да, это и есть circular statistic (метрика на окружности) Ключевой пакет library(circular) . А ссылка, которую я давал, как раз ведет на примеры кода из книги об этом пакете. Каждый пример снабжен строкой комментарием из которой собственно понятна цель написания (дополнительно полезно читать описания конкретной используемой команды из пдв-мануала самого пакета). В предисловии к книге сказано, что "Circular Statistics in R provides the most comprehensive guide to the analysis of circular data in over a decade. Circular data arise in many scientific contexts, both from angular obsevations, and from daily or seasonal activity patterns. То есть, по идее, может подходить (хотя основное для метода - это анализ угловых данных). Но при просмотре приложенных описаний скриптов (в 8-ми txt файлах) - по названию (в комментариях к скриптам) похожего я не нашла. То есть, думаю, там это может быть, но названо непонятно для неспециалистов.. Вообще, изначально думала, что этот вопрос - из рода простых в стат. подходе. Но сейчас уже вижу, что нет. Выделилось 2 основных подхода к решению: (1)временные ряды (time series) и (2) сравнение кривых по их форме (comparing trajectories or curves by its shape). И каждый из них имеет множество путей реализации.. что ссылками отражено в этой теме. Но чтобы мне это хоть в каком-то виде сделать, нужно выбирать то, что понятно описано. Если ничего не получится, ограничусь дисперсионным анализом (что мне предлагали на Stack Exchange) и устным описанием различий в графиках. Хотя - хотелось бы разобраться и сделать лучше. Сообщение было отредактировано nattali80 - 25.11.2014 17:55 |
nattali80 Участник |
Analysing Ecological Data/ A.F.Zuur, E.N. leno, Gr. M. Smith et al 2007. Time series analysis - 265, 615 И об этом же The R Book 2ed/M.Crawle. Time Series Analysis (785...) Они анализируют целиком временной ряд, используя: auto-correlation cross-correlation Сообщение было отредактировано nattali80 - 25.11.2014 19:31 |
PS2004R Постоянный участник |
(nattali80 @ 25.11.2014 18:39) Автокорреляция входа системы и кроссковариация входа-выхода позволяет (решив соответсвующее интегральное уравнение (уравнение Винера-Хопфа), получить импульсную переходную характеристику системы. Для нелинейных систем соответвующие ряды Вольтера вместо одного уравнения подгоняют. Но загнать в такой времянной ряд, как параметр, текущую точку траектории я лично не знаю как. С удовольствием бы посмотрел. |
nattali80 Участник |
(PS2004R @ 27.11.2014 18:38) Автокорреляция входа системы и кроссковариация входа-выхода позволяет (решив соответсвующее интегральное уравнение (уравнение Винера-Хопфа), получить импульсную переходную характеристику системы. Для нелинейных систем соответвующие ряды Вольтера вместо одного уравнения подгоняют. Но загнать в такой времянной ряд, как параметр, текущую точку траектории я лично не знаю как. С удовольствием бы посмотрел. Как мне кажется, именно моя задача описана в книге “Analysing Ecological Data” (A.F. Zuur, et all), с. 265, 618 (с.618: “To obtain insight into the strength of the relationships over time for individual time series, auto-correlation functions were calculated”). У меня идея использовать функцию acf {stats} для этого. Но по хелпу - не могу понять, как нужно подготовить для нее мои данные. И вообще, правилен ли мой выбор. Сообщение было отредактировано nattali80 - 30.11.2014 13:12 |
PS2004R Постоянный участник |
(nattali80 @ 30.11.2014 13:11) Как мне кажется, именно моя задача описана в книге “Analysing Ecological Data” (A.F. Zuur, et all), с. 265, 618 (с.618: “To obtain insight into the strength of the relationships over time for individual time series, auto-correlation functions were calculated”). У меня идея использовать функцию acf {stats} для этого. Но по хелпу - не могу понять, как нужно подготовить для нее мои данные. И вообще, правилен ли мой выбор. Поскольку данные у Вас "точки на карте", то и коэффициент (авто|кросс)корреляции должен быть тоже "между точками на карте". Соответствующие методы в Некий аналог автокорреляции пространственной это varigram. Сообщение было отредактировано PS2004R - 30.11.2014 14:32 |
nattali80 Участник |
(PS2004R @ 30.11.2014 15:31) Поскольку данные у Вас "точки на карте", то и коэффициент (авто|кросс)корреляции должен быть тоже "между точками на карте". Почему данные точки на карте? Нет, именно это - просто график активности (где по оси Х - время суток, а по оси Y - среднее число птиц за 15 мин обзор неба в данное время). И каждая точка - это усредненное значение 13 удаленных друг от друга точек обзора изучаемой территории. То есть - анализ этих графика не идет в привязке к карте. Хотя (если вы судите по описанию проекта выше) - подобные задачи в пространственном рассмотрении - могут быть, но это уже другая задача (намного более сложная, как понимаю). Потому - ваши советы также очень в тему! Но мне бы сейчас с этим до конца разобраться. Так (если данные не привязаны к местности) я могу использовать функцию acf, как вы считаете ? Сообщение было отредактировано nattali80 - 30.11.2014 22:17 |
PS2004R Постоянный участник |
(nattali80 @ 30.11.2014 22:16) Почему данные точки на карте? Нет, именно это - просто график активности (где по оси Х - время суток, а по оси Y - среднее число птиц за 15 мин обзор неба в данное время). И каждая точка - это усредненное значение 13 удаленных друг от друга точек обзора изучаемой территории. То есть - анализ этих графика не идет в привязке к карте. Хотя (если вы судите по описанию проекта выше) - подобные задачи в пространственном рассмотрении - могут быть, но это уже другая задача (намного более сложная, как понимаю). Потому - ваши советы также очень в тему! Но мне бы сейчас с этим до конца разобраться. Так (если данные не привязаны к местности) я могу использовать функцию acf, как вы считаете ? Это не настоящее "время" как я понимаю, а "накопленные случаи по времени суток"? Дело в том, что для таких данных в циркулярной статистике модифицирован коэффициент корреляции cor.circular() из известного вам пакета. Имеет смысл понятие автокорреляции основанное на такой форме его расчета. В пакете циркулярной статистике есть возможность тестировать модели, почему им не воспользоваться? |
nattali80 Участник |
(PS2004R @ 30.11.2014 23:36) Это не настоящее "время" как я понимаю, а "накопленные случаи по времени суток"? Дело в том, что для таких данных в циркулярной статистике модифицирован коэффициент корреляции cor.circular() из известного вам пакета. Имеет смысл понятие автокорреляции основанное на такой форме его расчета. В пакете циркулярной статистике есть возможность тестировать модели, почему им не воспользоваться? Да, это накопленные (осреднение) случаи в течении суток. Значит, как поняла, вы советуете искать функцию автокорреляции внутри пакета circular statistics? Или, наоборот, искать в пакете acf{stats} (или близком) то, что связано с модифицированным коэффициентом корреляции cor.circular? Что означает "тестировать модель"? Это какая-то ее проверка на точность? Сообщение было отредактировано nattali80 - 01.12.2014 07:48 |
nattali80 Участник |
(полный скрипт с данными - в приложении) С таким скриптом (использовала по аналогии то, что советовали раньше для похожей задачи, но, вроде бы, все понимаю. Сначала идет тест Anova, по моим данным он дает статистически значимое различие между месяцами. Потом (для уточнения где именно есть различие) - тест TukeyHSD. И график boxplot. amar_b2<-read.csv("C:\\...\\amarais_b2.csv",sep=";") amar_b2 month2 = as.factor(amar_b2$month2) r_vult = as.numeric(amar_b2$r_vult) aov1<-aov(r_vult ~ month2) summary(aov1) boxplot (r_vult ~ month2) TukeyHSD(aov1, "month2", ordered = TRUE) В результатах вроде бы всё понятно. Но вот такие вопросы. На StackExchange (где мне и советовали 3 раза только разные формы такого простого анализа) в отношении anova был приведен другой ход действий. Я его не поняла, почему-то он был в 2 действия. Хотелось бы понять – тот скрипт, и правильно ли я сейчас сделала по своему вааринут? Тот срипт следующий: > summary(aov(value~month+Hours, data=ddf)) Df Sum Sq Mean Sq F value Pr(>F) month 2 51.75 25.87 7.527 0.00233 Hours 1 114.10 114.10 33.191 3.07e-06 Residuals 29 99.69 3.44 > > summary(aov(value~month*Hours, data=ddf)) Df Sum Sq Mean Sq F value Pr(>F) month 2 51.75 25.87 7.155 0.00321 Hours 1 114.10 114.10 31.554 5.83e-06 month:Hours 2 2.06 1.03 0.285 0.75442 Residuals 27 97.63 3.62 Ссылка на пост (ответ выше последнего комментария) И еще вопрос по результату моего варианта. При расположении на оси Х сравниваемых групп (factor) программа выстраивает их а алфавитном порядке или порядке нумерации. Мне нужно было отложить месяцы, и когда графа «month» было в буквенном выражении месяцев – график построился неправильно (месяцы оказались перепутанными). Итогом я нашла выход задать месяцы арабскими числа (1-12), и тогда он выстроил график верно. Но есть ли возможность в скрипте указать желаемый ход нумерации? Пример графика с буквенными месяцами (с неправильным их расположением на оси) в приложении. И вот интересно, по тесту. Раньше при тесте anova графики boxplot показывали разброс данных от квантилей, но были без точек (пустые точки на графике). Почему тест какие-то значения счел такими (круглыми точками), а другое записал в разброс данных (отраженных горизонтальной и верт. линией? Что вообще (в смысле интерпретации графика) означают эти круглые точки? Какие-то выбросы, которые не учитываются в анализе (но на каком основании он так делает)? Сообщение было отредактировано nattali80 - 01.12.2014 08:03 Картинки: pict1.jpeg — (61.75к) correct_result1.jpeg — (59.02к) |
PS2004R Постоянный участник |
Порядок уровней в факторе задан, если мы задалм его как ?ordered с указанием levels и если нужно их названий как labels. Про boxplot прочитать его страницы помощи ?boxplot.stats и ?bxp |
nattali80 Участник |
(PS2004R @ 01.12.2014 11:17) Поскольку занят отвечу коротко: Порядок уровней в факторе задан, если мы задалм его как ?ordered с указанием levels и если нужно их названий как labels. month1 = as.factor(amar_b2$month1) is.factor (month1) month1 <- factor(month1,levels=c("dec","jan","fev","mar","apr","may","june","july","aug","sep","oct","nov" )) Получилось, спасибо! Про boxplot почитаю А по основной части вопроса не могли бы ответить? Про непонятный скрипт, который мне дали на St-ex)? Или хотя бы скажите - он имеет смысл? Или я там что-то глобально не понимаю? Я ведь делаю сейчас совсем иначе. Понимаю, тут много вариантов. Но мне такие ответы -наводки очень важны, чтобы лучше продвигаться с пониманием. |
PS2004R Постоянный участник |
(nattali80 @ 01.12.2014 23:41) А по основной части вопроса не могли бы ответить? Про непонятный скрипт, который мне дали на St-ex)? Или хотя бы скажите - он имеет смысл? Или я там что-то глобально не понимаю? Я ведь делаю сейчас совсем иначе. Понимаю, тут много вариантов. Но мне такие ответы -наводки очень важны, чтобы лучше продвигаться с пониманием. 1) почему не хотите читать R book? Там весь подход к статистике через фит моделей, и соответственно подробно описан процесс фита. 2) почитайте ?aov может проще сразу lm() или glm() использовать? Ключевые операции анализа фита: AIC(модель1) AIC(модель2) anova(модель1, модель2) ... или можно даже step(модель) делать для автоматического отбора по AIC
|
nattali80 Участник |
(PS2004R @ 03.12.2014 14:29) 1) почему не хотите читать R book? Там весь подход к статистике через фит моделей, и соответственно подробно описан процесс фита. Сейчас читаю, выбрала книгу M. Crawley "The R book", поскольку к нему есть материалы для тренировки. Но тот вопрос - я просто не поняла скрипт на St Exch. Но, возможно, разберусь позже сама, "что это было" ) почитайте ?aov может проще сразу lm() или glm() использовать? Ключевые операции анализа фита: AIC(модель1) AIC(модель2) anova(модель1, модель2) Но уже вынесла полезный совет из книги - анализ не нужно выбирать сложнее, чем требуется. В общем, я немного в растерянности, что по данной задаче с каждым новым ответом от разных людей - число возможных решений и ходов увеличивается... Потому, пока концентрируюсь на идее анализа time series. А Anova - вроде бы провела, может быть, не идеально, но потом разберусь с этим лучше, доделаю.. Сообщение было отредактировано nattali80 - 03.12.2014 14:18 |
PS2004R Постоянный участник |
(nattali80 @ 03.12.2014 14:14) да именно об этом, почитайте ?aov |
guest: great IP-штамп: frj5GEfdEWR5M гость |
|
Odimexy IP-штамп: frLGKWQibeaPw гость |
|
Guest IP-штамп: frLGKWQibeaPw гость |
|
27trends |
|
Odimexy IP-штамп: frLGKWQibeaPw гость |
|
IGslot128 IP-штамп: fr6lSw6jG2w6Y гость |
|
ampersand2912 |
<a href="https://amapianosa.com/">amapiano 2020 mp3</a> |
ampersand2912 |
|
IGslot123 IP-штамп: fr6lSw6jG2w6Y гость |
|
IGslot303 IP-штамп: fr6lSw6jG2w6Y гость |
|
lyx90152 Участник |
|
guest: 123 IP-штамп: frAWeMdOsBSXM гость |
|
« Предыдущая тема · Биофизика и матметоды в биологии · Следующая тема » |