Кто-нибудь пытался прогнозировать временные ряды, используя регрессию опорных векторов?
Я понимаю машины опорных векторов и частично понимаю регрессию опорных векторов, но не понимаю, как их можно использовать для моделирования временных рядов, особенно многомерных временных рядов.
Я пытался прочитать несколько статей, но они слишком высокого уровня. Может ли кто-нибудь объяснить в простом выражении, как они будут работать, особенно в отношении многомерных временных рядов?
РЕДАКТИРОВАТЬ: Чтобы уточнить немного, позвольте мне попытаться объяснить с примером цены акций.
Скажем, у нас есть цены на акции в течение N дней. Затем для каждого дня можно построить вектор признаков, который в простом случае может быть ценой предыдущего дня и ценой текущего дня. Ответом для каждого векторного признака будет цена следующего дня. Таким образом, учитывая вчерашнюю цену и сегодняшнюю цену, цель будет заключаться в прогнозировании цены на следующие дни. Что я не понимаю, скажем, у нас есть данные за шесть месяцев обучения, как бы вы сделали больший акцент на более поздние векторы функций?
источник
Ответы:
В контексте регрессии опорных векторов тот факт, что ваши данные представляют собой временные ряды, в основном важен с методологической точки зрения - например, вы не можете выполнить перекрестную проверку в k раз, и вам необходимо соблюдать меры предосторожности при проведении обратных тестов / моделирования.
По существу, регрессионный опорный вектор представляет собой метод дискриминационной регрессии, очень похожий на любой другой метод дискриминационной регрессии. Вы даете ему набор входных векторов и связанных ответов, и он соответствует модели, чтобы попытаться предсказать ответ на основе нового входного вектора. Ядро SVR, с другой стороны, применяет одно из многих преобразований к вашему набору данных до этапа обучения. Это позволяет ему улавливать нелинейные тренды в наборе данных, в отличие, например, от линейной регрессии. Хорошим ядром, с которого можно начать, вероятно, будет Gaussian RBF - у него будет гиперпараметр, который вы можете настроить, поэтому попробуйте пару значений. И затем, когда вы почувствуете, что происходит, вы можете попробовать другие ядра.
Если документы, которые вы читали, были слишком сложными, вы, вероятно, не хотите пытаться внедрить SVM самостоятельно, поскольку это может быть сложно. Во IIRC есть пакет "kernlab" для R, в котором реализована SVM-реализация Kernel с несколькими ядрами, что обеспечит быстрый способ запуска и запуска.
источник
Мой личный ответ на заданный вопрос - «да». Вы можете рассматривать это как «за» или «против», что существует бесконечное множество возможностей для описания прошлого. Попробуйте выбрать функции, которые соответствуют тому, как вы можете кратко описать кому-то, что рынок только что сделал [например, «цена». на 1.4 "ничего вам не говорит, если это не связано с каким-то другим числом]. Что касается цели SVM, то самыми простыми являются разница в ценах и соотношение цен в течение двух дней подряд. Поскольку они напрямую связаны с судьбой гипотетической торговли, они кажутся хорошим выбором.
Я должен педантично не согласиться с первым утверждением Джейсона: вы можете сделать перекрестную проверку в k-кратном порядке в ситуациях, подобных описанным raconteur, и это полезно (с оговоркой, которую я объясню). Причина, по которой он является статистически достоверным, заключается в том, что экземпляры цели в этом случае не имеют внутренних отношений: они представляют собой непересекающиеся различия или соотношения. Если вместо этого вы решите использовать данные с более высоким разрешением, чем масштаб цели, у вас будет повод для беспокойства о том, что коррелированные экземпляры могут появиться в обучающем наборе и проверочном наборе, что может поставить под угрозу перекрестную проверку (в отличие от этого при применении SVM у вас не будет доступных экземпляров, цели которых перекрывают ту, которая вас интересует).
Снижение эффективности перекрестной проверки заключается в том, что поведение рынка со временем меняется. Есть два возможных способа справиться с этим. Во-первых, включить время как функцию (я не нашел это очень полезным, возможно, потому что значения этой функции в будущем все новые). Хорошей мотивированной альтернативой является использование проверки на шаг вперед (что означает тестирование вашей методологии на скользящем окне времени и тестирование на период сразу после этого окна. Если поведение меняется со временем, высказывание приписывается Нильсу Бору " Прогнозирование очень сложно, особенно в отношении будущего », особенно уместно. В литературе есть некоторые свидетельства того, что поведение финансовых рынков со временем меняется, как правило, становится более эффективным,
Удачи!
источник
На Quantum Financier приведен пример использования SVM для прогнозирования финансовых рядов. Его можно легко преобразовать из системы классификации (Long / Short) в систему регрессии.
источник