Недавно я начал работать в туберкулезной клинике. Мы периодически встречаемся, чтобы обсудить количество случаев туберкулеза, которые мы сейчас лечим, количество проведенных тестов и т. Д. Я хотел бы начать моделировать эти показатели, чтобы мы не просто угадали, является ли что-то необычным или нет. К сожалению, у меня было очень мало тренировок во временных рядах, и большая часть моего знакомства была с моделями для очень непрерывных данных (цены акций) или очень большого количества подсчетов (грипп). Но мы имеем дело с 0-18 случаями в месяц (в среднем 6,68, медиана 7, вар 12,3), которые распределяются следующим образом:
[изображение потеряно в глубине веков]
[изображение съедено grue]
Я нашел несколько статей, в которых рассматриваются подобные модели, но я был бы очень признателен за ваши предложения - как для подходов, так и для пакетов R, которые я мог бы использовать для реализации этих подходов.
РЕДАКТИРОВАТЬ: Ответ mbq заставил меня задуматься о том, что я здесь спрашиваю; Я слишком зациклился на ежемесячных счетах и потерял фактическую направленность вопроса. Что я хотел бы знать: отражает ли (довольно заметное) снижение, скажем, начиная с 2008 года, тенденцию к снижению общего числа случаев? Мне кажется, что число случаев в месяц в период с 2001 по 2007 год отражает стабильный процесс; возможно, некоторая сезонность, но в целом стабильная. С 2008 года по настоящее время похоже, что этот процесс меняется: общее количество случаев уменьшается, хотя ежемесячные подсчеты могут колебаться вверх и вниз из-за случайности и сезонности. Как я могу проверить, есть ли реальные изменения в процессе? И если я могу определить снижение,
источник
Ответы:
Чтобы оценить историческую тенденцию, я бы использовал игру с трендовыми и сезонными компонентами. Например
Затем
summary(fit)
вам дадут тест значимости изменения тренда, а сюжет даст вам некоторые доверительные интервалы. Здесь предположения заключаются в том, что наблюдения независимы, а условное распределение является пуассоновским. Поскольку среднее значение может изменяться плавно с течением времени, это не особенно сильные предположения.Прогнозировать сложнее, так как нужно прогнозировать тенденцию на будущее. Если вы готовы согласиться с линейной экстраполяцией тренда в конце данных (что, конечно, довольно сложно, но, вероятно, нормально в течение нескольких месяцев), используйте
Чтобы увидеть прогнозы на том же графике:
Вы можете определить необычные месяцы, ища выбросы в (отклонениях) остатков подгонки.
источник
Возможно, вы захотите взглянуть на Strucchange :
PS. Приятная графика;)
источник
Это действительно нуждается в некоторой продвинутой модели? Исходя из того, что я знаю о туберкулезе, в случае отсутствия эпидемии инфекции представляют собой стохастические акты, и поэтому счетная форма по месяцу N не должна коррелировать со счетом по месяцу N-1. (Вы можете проверить это предположение с автокорреляцией). Если это так, анализ только распределения ежемесячных подсчетов может быть достаточным, чтобы решить, является ли некоторое подсчет значительно выше, чем обычно.
С другой стороны, вы можете искать корреляции с некоторыми другими переменными, такими как сезон, дорожное движение или что-либо, что вы можете себе представить, что может быть коррелировано. Если вы нашли что-то подобное, это можно было бы использовать для нормализации данных.
источник
Зачастую такие данные о заболеваниях выполняются с помощью обобщенной линейной модели, поскольку это не обязательно является отличным приложением анализа временных рядов - месяцы часто не всегда связаны между собой.
Если бы мне дали эти данные, вот что я сделал бы (и действительно, сделал бы с данными, подобными этому):
Создайте переменную «время», которая более точно описывается как «Месяцы с 1 января 2000 года», если я правильно проверяю ваши данные. Затем я запустил бы общую линейную модель в R, используя распределение Пуассона (или отрицательный бином) и лог-ссылку примерно следующего вида:
log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)
Где t - время, описанное выше, и w - 1/365 для ежегодного заболевания, такого как грипп. Обычно его 1 / n, где n - длина цикла вашей болезни. Я не знаю, что это за туберкулез.
Две временные тенденции покажут вам - за пределами нормальных сезонных колебаний - если у вас есть значимые изменения во времени.
источник
Возможно, вы захотите применить диаграмму Tukey Control к данным.
источник
Вы можете попытаться смоделировать ваши данные с использованием динамической обобщенной линейной модели (DGLM). В R вы можете приспособить этот тип моделей, используя пакеты sspir и KFAS. В некотором смысле это похоже на гам-подход, предложенный Робом, за исключением того, что вместо того, чтобы предполагать, что логарифм пуассоновских наблюдений является гладкой функцией времени, он предполагает, что он следует стохастической динамике.
источник
dlm
пакет. DLM не так просты в использовании, как другие решения, ноdlm
делают его как можно более легким и с приятной виньеткой, которая проведет вас через весь процесс.Я собираюсь оставить основной вопрос в покое, потому что я думаю, что я пойму его неправильно (хотя я слишком анализирую данные для поставщика медицинских услуг, и, если честно, если бы у меня были эти данные, я бы просто проанализировал их, используя стандартные методы и надеюсь на лучшее, они выглядят довольно хорошо для меня).
Что касается пакетов R, я обнаружил, что библиотека TSA и ее книга очень полезны. Команда
armasubsets
, в частности, я думаю, отлично экономит время.источник
Избавьтесь от традиционной перечислительной статистики, как предложил бы Деминг, и углубитесь в традиционную аналитическую статистику - в данном случае, контрольные диаграммы. См. Любые книги доктора Дональда Уилера, особенно его "Расширенные темы в SPC" для получения дополнительной информации.
источник
В ответ на ваш прямой вопрос: «Как я могу проверить, есть ли реальные изменения в процессе? И если я могу определить снижение, как я мог бы использовать эту тенденцию и какую бы то ни было сезонность, чтобы оценить количество случаев, которые мы можем видеть в ближайшие месяцы? Разработайте модель передаточной функции (ARMAX), которая легко объясняет зависимость от периода к периоду, включая сезонную структуру ARIMA. Включите любые идентифицируемые сдвиги уровней, сезонные импульсы, тренды местного времени и PUlses, которые могли быть предложены эмпирическими / аналитическими методами, такими как обнаружение вмешательства. ЕСЛИ В ЭТОЙ НАДЕЖНОЙ МОДЕЛИ ВКЛЮЧАЕТСЯ ФАКТОР / СЕРИЯ, совпадающая с «отклонениями», то ваши молитвы получили ответ В альтернативе просто добавьте гипотетическую структуру, например, чтобы проверить изменение временного тренда в точке T1, построить два манекена X1 = 1,1,2,3 ,,,,,, Т и Х2 = 0,0,0,0,0,0,0,1,2,3,4,5, .... ГДЕ НУЛИ ЗАКОНЧИВАЮТСЯ В ПЕРИОД Т1-1. Проверка гипотезы о значительном изменении тренда в период времени T1 будет оцениваться с использованием «значения t» для X2.
Отредактировано 22.09.11
Зачастую такие данные о заболевании имеют ежемесячные последствия, поскольку погода / температура часто являются неопределенной причиной. В опущении истинных каудальных рядов модели ARIMA используют память или сезонные манекены в качестве суррогата. Кроме того, подобные серии могут иметь сдвиги уровней и / или тенденции местного времени, отражающие структурные изменения во времени. Было обнаружено, что использование авторегрессионной структуры в данных, а не навязывание различных артефактов, таких как время и квадрат времени, кубическое время и т. Д., Является весьма полезным и менее предполагаемым и специальным. Следует также позаботиться о том, чтобы выявить «необычные значения», поскольку они часто могут быть полезны при предложении дополнительных переменных причин и, как минимум, приводят к надежным оценкам других параметров модели. Наконец, мы обнаружили, что изменчивость / параметры могут меняться со временем, поэтому эти уточнения модели могут быть в порядке.
источник