Использование Bambi для определения модели переменных перехватов для данных повторных измерений - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть данные из эксперимента внутри субъекта (N = 17 участников) с 3 условиями: исходное состояние, лечение 1 и лечение 2. Для каждого состояния измеряли время реакции. Это дало набор данных с 51 временем реакции (3 условия * 17 участников).

Рисунок: Stripplot, показывающий данные

Я хотел бы понять влияние условия на время реакции: различается ли время реакции для 1) исходного уровня и обработки 1, 2) исходное состояние и лечение 2 и 3) лечение 1 и лечение 2?

До сих пор я установил следующую модель (байесовская линейная смешанная модель с различным перехватом для объектов) с пакетом python Bambi. Я определил модель как:

from bambi import Model
model = Model(data)
results = model.fit('reaction_time ~ 1 + condition', random=['1|subject_id']) 

Примечание: «данные» - это pandas фрейм данных со столбцами: «response_time», включая 51 время реакции, «условие», включая «базовый уровень», «лечение1», «лечение2» зависит от состояния и «subject_id», включая число для каждого субъекта (например, субъект 1 = 1, субъект 2 = 2 и т. д. c.).

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

pm_trace = model.backend.trace
pm_trace.add_values({'Treatment1_minus_Baseline':(pm_trace['condition'][:, 0])})
pm_trace.add_values({'Treatment2_minus_Baseline':(pm_trace['condition'][:, 1])})
pm_trace.add_values({'Treatment1_minus_Treatment2':(pm_trace['condition'][:, 0] - pm_trace['condition'][:, 1])})
pm.plot_posterior(pm_trace, var_names=['Treatment1_minus_Baseline', 'Treatment2_minus_Baseline', 'Treatment1_minus_Treatment2'], ref_val = 0, credible_interval = 0.95)

Буду признателен за некоторые рекомендации по следующим вопросам:

1) Является ли модель приемлемой для данных, которые у меня есть (т.е. имеет ли смысл использовать переменную модель перехвата)? Модель указана правильно? Насколько я понял, переменный перехват необходим, чтобы учесть план повторных измерений - правильно?

2) Переменная отклика (время реакции) слегка искажена вправо, и я хотел бы смоделировать ее как «Логнормальная». Однако я не могу заставить это работать, используя семейный аргумент в .fit (). Какие-либо предложения?

Надеюсь, я ясно дал понять!

...