Продольные данные: временные ряды, повторные измерения или что-то еще?

10

Проще говоря, у меня есть модель множественной регрессии или ANOVA, но переменная отклика для каждого человека является криволинейной функцией времени.

  • Как я могу сказать, какие из переменных правой стороны ответственны за существенные различия в формах или вертикальных смещениях кривых?
  • Это проблема временного ряда, проблема повторных измерений или что-то еще?
  • Каковы лучшие практики для анализа таких данных (желательно R, но я открыт для использования другого программного обеспечения)?

В более точном выражении: допустим, у меня есть модель но на самом деле представляет собой серию точек данных, собранных из один и тот же человек во многих временных точках , которые были записаны в виде числовой переменной. График данных показывает, что для каждого отдельного является квадратичной или циклической функцией времени, вертикальное смещение, форма или частота которого (в циклическом случае) могут существенно зависеть от ковариат. Ковариаты не меняются с течением времени, т. Е. Индивидуум имеет постоянную массу тела или группу лечения на протяжении периода сбора данных.YяJКзнак равноβ0+β1Икся+β2ИксJ+β3ИксяИксJ+εКYяJККTYяJКT

До сих пор я пробовал следующие Rподходы:

  1. Manova

    Anova(lm(YT~A*B,mydata),idata=data.frame(TIME=factor(c(1:10))),idesign=~TIME); 
    

    ... где YTматрица, столбцы которой представляют собой временные точки, 10 из них в этом примере, но гораздо больше в реальных данных.

    Проблема: это рассматривает время как фактор, но моменты времени не совсем совпадают для каждого человека. Кроме того, их много относительно размера выборки, поэтому модель насыщается. Кажется, что форма переменной отклика со временем игнорируется.

  2. Смешанная модель (как в Pinheiro и Bates, модели со смешанным эффектом в S и S-Plus )

    lme(fixed=Y~ A*B*TIME + sin(2*pi*TIME) + cos(2*pi*TIME), data=mydata, 
        random=~(TIME + sin(2*pi*TIME) + cos(2*pi*TIME))|ID), method='ML')
    

    ... где IDэто фактор, который группирует данные по отдельным людям. В этом примере ответ является циклическим во времени, но вместо этого могут быть квадратные члены или другие функции времени.

    Проблема: я не уверен, нужен ли каждый временной термин (особенно для квадратичных) и какие из них зависят от ковариат.

    • Это stepAIC()хороший метод для их выбора?
    • Если он удаляет зависящий от времени термин, он также удалит его из randomаргумента?
    • Что, если я также использую автокорреляционную функцию (например, corEXP()), которая принимает формулу в correlationаргументе - я должен сделать эту формулу corEXP()такой же, как в randomили просто ~1|ID?
    • nlmeПакет редко упоминаются в контексте временных рядов вне Пиньейра и Бейтса ... это не считаются хорошо подходят к этой проблеме?
  3. Подгонка квадратичной или тригонометрической модели к каждому человеку, а затем использование каждого коэффициента в качестве переменной отклика для множественной регрессии или ANOVA.

    Проблема: необходима множественная коррекция сравнения. Не могу думать ни о каких других проблемах, которые заставляют меня подозревать, что я что-то упускаю.

  4. Как ранее предлагалось на этом сайте ( что такое термин для регрессии временного ряда, имеющего более одного предиктора? ), Существуют модели ARIMAX и передаточной функции / динамической регрессии .

    Проблема: модели на основе ARMA предполагают дискретное время, не так ли? Что касается динамической регрессии, я впервые услышал об этом сегодня, но прежде чем углубиться в еще один новый метод, который может не сработать, я подумал, что было бы разумно попросить людей, которые делали это раньше, за советом.

f1r3br4nd
источник
5
@ f1r3br4and Это может помочь, если вы добавите некоторые детали о том, что именно ваши данные? Т.е. сколько случаев измеряется в сколько временных точек? Находятся ли случаи в разных условиях? или что-то другое?
Jeromy Anglim
Вы потеряли свой аккаунт? Если это так, пожалуйста, зарегистрируйте новый, возможно, с вашим адресом Gmail, чтобы я мог легко найти, что объединить.
1
@ f-tussel и @ jeromy-anglim: данные представляют собой различные неинвазивные измерения, собранные у лабораторных животных в течение их естественной продолжительности жизни, часто в сочетании со статической информацией, такой как генотип, пол или тип рациона, которым они питаются. Под «многими» точками я имею в виду от 20 до нескольких сотен. Я пытаюсь проанализировать не один набор данных, а научиться анализировать тип данных, который становится очень распространенным в моей группе. Смешанные модели с внутригрупповыми коэффициентами рекомендуются только для небольших выборок?
f1r3br4nd

Ответы:

5

Как сказал Jeromy Anglim, это поможет узнать количество временных точек, которые у вас есть для каждого человека; как вы сказали «многие», я бы рискнул, что функциональный анализ может быть жизнеспособной альтернативой. Возможно, вы захотите проверить пакет R FDA и посмотреть на книгу Рамсей и Сильверман .

Ф. Туселл
источник
Функциональный анализ звучит многообещающе в долгосрочной перспективе, но похоже, что будет довольно крутой курс обучения, прежде чем я буду уверен, что я не получу бессмысленных или предвзятых результатов. Так что, пока я быстро осваиваю этот вопрос, являются ли более знакомые nlmeподходы (пункты 2 и 3 в ОП) по меньшей мере допустимыми для использования на данных в настоящее время?
f1r3br4nd
2

С самого начала постановки этого вопроса я пришел к выводу, что модели смешанного эффекта с субъектами в качестве фактора случайной блокировки являются практическим решением этой проблемы, т. Е. Вариант № 2 в моем первоначальном посте. Если randomаргумент to lmeустановлен в ~1|ID(где IDидентифицирует наблюдения, поступающие от одного и того же испытуемого), то выбирается модель случайного перехвата. Если он установлен, ~TIME|IDто устанавливается случайная модель наклона и пересечения. Любая правосторонняя формула, содержащая переменные, которые варьируются в пределах одного и того же индивида, может быть помещена между ~и |ID, но слишком сложные формулы приведут к насыщенной модели и / или различным численным ошибкам. Поэтому можно использовать критерий отношения правдоподобия (anova(myModel, update(myModel,random=~TIME|ID))) сравнить модель случайного перехвата с моделью случайного наклона и перехвата или другими кандидатами на модели случайного эффекта. Если разница в подгонке незначительна, придерживайтесь более простой модели. Для меня было излишним переходить к случайным функциям триггера в моем первоначальном посте.

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

Таким образом, в итоге, для повторных измерений это lmeмодели, за которыми следует обрезка с помощью MASS:::stepAICили MuMIn:::dredgeи / или nlme:::anova.lmeдо тех пор, пока у кого-то нет лучшей идеи.

Я оставлю этот ответ на некоторое время, прежде чем принять его, чтобы посмотреть, есть ли у кого-нибудь опровержения. Спасибо за ваше время, и если вы читаете это, потому что у вас такой же вопрос, как у меня, удачи и добро пожаловать на полуисследованную территорию.

f1r3br4nd
источник