Логистическая регрессия для временных рядов

21

Я хотел бы использовать бинарную модель логистической регрессии в контексте потоковых данных (многомерных временных рядов), чтобы предсказать значение зависимой переменной данных (то есть строки), которые только что прибыли, учитывая прошлые наблюдения. Насколько я знаю, логистическая регрессия традиционно используется для посмертного анализа, где каждая зависимая переменная уже установлена ​​(либо путем проверки, либо по характеру исследования).

Что происходит в случае временных рядов, хотя мы хотим сделать прогноз (на лету) о зависимой переменной в терминах исторических данных (например, во временном окне последних секунд) и, конечно, в предыдущем оценки зависимой переменной?T

И если вы видите вышеупомянутую систему с течением времени, как она должна быть построена, чтобы регрессия работала? Должны ли мы обучать его сначала, помечая, скажем, первые 50 строк наших данных (т.е. устанавливая зависимую переменную в 0 или 1), а затем используем текущую оценку вектора для оценки новой вероятности Зависимая переменная, равная 0 или 1, для данных, которые только что поступили (т.е. новая строка, которая была только что добавлена ​​в систему)?β

Чтобы сделать мою проблему более ясной, я пытаюсь построить систему, которая анализирует набор данных строка за строкой и пытается сделать прогноз двоичного результата (зависимой переменной), учитывая знания (наблюдение или оценку) всех предыдущих зависимых или объяснительных переменные, которые поступили в фиксированное временное окно. Моя система находится в Rerl и использует R для вывода.

REGRESSOR
источник
5
Можете ли вы предположить структуру корреляции ваших данных? Ваш случай является частным случаем GLMM со ссылкой логита, но структура корреляции в данных временного ряда должна быть смоделирована правильно, чтобы получить разумный ответ.
Suncoolsu
1
yTyt1
2
не могли бы вы дать краткое описание ваших данных для меня, чтобы дать конкретное решение? Ваша проблема может быть решена примерно так: stat.ethz.ch/pipermail/r-sig-mixed-models/2010q4/004530.html
suncoolsu
2
У меня есть временные ряды сетевого трафика следующей формы: Протокол, SrcIP, SrcPort, DestIP, DestPort, TimeSec, Timeusec, PackLength TCP, 200.80.199.105,3523,207.216.233.144,9658,11223344,941818,62 UDP, 142.144.155.120 , 1751,244.72.151.2,1935, 11223344,941843,60 Я хочу оценить, является ли пакет (или группа пакетов) вредоносным, используя знания из помеченных наборов данных для построения самообучаемой модели. Усреднение, о котором я говорил, применяется в вышеупомянутых метриках, чтобы дать уровень агрегации и сделать систему более практичной для трафика большого объема.
Регрессор
2
Это действительно похоже на работу для машины опорных векторов. Я что-то пропустил? Если вы действительно обеспокоены автокорреляцией или структурой временных рядов ваших данных, вы можете попробовать ARIMA и / или многоуровневую продольную модель. На продольных моделях я рекомендую Прикладной продольный анализ данных Вилле и Сингера , для которого на сайте UCLA ATS есть примеры кода R.
Ашоу

Ответы:

6

Есть два метода для рассмотрения:

  1. Используйте только последние N входных выборок. Предполагая, что ваш входной сигнал имеет размерность D, у вас есть N * D выборок на метку истинности заземления. Таким образом, вы можете тренироваться, используя любой понравившийся вам классификатор, включая логистическую регрессию. Таким образом, каждый выход считается независимым от всех других выходов.

  2. Используйте последние N входных выборок и последние N выходов, которые вы сгенерировали. Проблема тогда похожа на декодирование Витерби . Вы можете генерировать недвоичные оценки на основе входных выборок и комбинировать оценки нескольких выборок, используя декодер Витерби. Это лучше, чем метод 1. Если вы сейчас что-то о временном отношении между выходами.

Мистер Уайт
источник