Спасибо за интересный пример и правильные выбор инструментов.
Этот результат Монте-Карло моделирования можно показать инвесторам, и, возможно, что этот пример их вдохновит.
Но, с точки зрения методов предсказаний и получения нового знания из полученных результатов, это моделирование достаточно бессмысленное. Точнее, использовать результаты этого моделирования (генерация выборки по известной модели и вычисление статистик от полученных данных) можно только так: полученную выборку можно сравнивать с реальной, с целью подтверждения или опровержения, для заданного уровня значимости, гипотезы о том, что реальная выборка имеет модельное распределение.
Методологически тут есть следующая ошибка: предсказание — это построение неслучайной модели. Введение в модель любой комбинации случайных моделей не даст никакого предсказания, так как в статистическом контексте эти модели не дадут нового знания.
>Есть контр-пример (очень искусственный, но все же), который показывает, что кросс валидация может «сломаться»…
Кросс валидация не может сломаться для однородных независимых данных. А для неоднородных данных нет смысла строить предсказания. Зависимость данных в целом не критична, поскольку она лишь уменьшает фактическое количество информации.
Кросс-валидация фактически показывает следующее: допустим у нас количество информации равно N, где N — это размер выборки. Вот такой результат будет, если применить модель для N/2 данных (остальные N/2 использовались для обучения).
И теперь мы примерно знаем, что будет если применить данные ко всем N данным, а тестовая выборка у нас будет из будущего.
Нюанс только в том, как параметризирована кросс-валидация и какой уровень ложно-положительных выводов мы можем себе позволить.
Спасибо, интересно, посмотрю.
С точки зрения системного подхода тут очевидно следующее:
мы не можем сравнивать несколько моделей через кросс-валидацию (и аналогичные методы) => мы должны проверять кросс-валидацией только одну модель. НО эта модель может быть комбо-моделью от остальных моделей (которые мы хотим сравнить и выбрать из них лучшую).
И таким образом исходная задача будет сводиться к следующей задаче:
какая архитектура у комбо-модели должна быть, для того, чтобы из результата кросс-валидации комбо-модели можно было сравнить исходные модели (и крайне желательно, чтобы сравнить их можно было в терминах исходного функционала качества отдельной модели).
Допустим есть много моделей m(1), m(2), ..., m(N).
Каждую модель можно обучить на некоторой выборке и после на остальных данных вычислить оценку функционала качества.
Или, чтобы было симметрично по всем данным, через метод кросс-валидации, перебирая все независимые комбинации обучающихся и тестовых выборок, получить среднее значение оценок функционала качества (итоговая оценка функционала качества).
Вопросов несколько:
1) как сравнивать значения итоговых оценок функционала качества, когда моделей всего 2 (N=2)? Эти значения нельзя просто сравнивать как независимые случайные величины т.к. они построены на одних и тех же данных.
Вариант тут на вскидку: это делать кросс-валидацию разницы функционалов качества (и видимо для сохранения степеней свободы — еще и среднее от них), вычисленных на разных выборках :).
Притом, что обучаться модели могут на тех же самых данных.
2) Какое оптимальное N нужно иметь? Как понять, что добавлять новую модель в рассмотрение уже нельзя, из-за того, что это уже не добавит новой «выходной» полезной информации :).
Статистически обоснованные выводы будут асимпотически стремиться к истинно верному значению. Главное, чтобы был источник новой независимой информации.
>… ибо статистика собирается по поставленному эксперименту, с которым можно налажать
Можете чуть уточнить, что вы имели тут ввиду?
Грубые ошибки, в которые, в том числе, входят ошибки модели как таковой, если будут в очень большом количестве, тоже будут иметь нормальное распределение.
Проблемы фитнуть данные к модели — нет. Моя текущая лучшая модель на cdata-miner-ui, это результат фита, понятное дело :).
Есть проблема с пониманием пределов, в которых мы можем сравнивать разные модели.
независимость гарантирует одновременно новизна данных и истинная грубость ошибок (чтобы они были истинно грубые).
А ограниченность дисперсии гарантирует реальность :).
В реальной жизни, обычно, сразу видно ограниченна ли дисперсия (и если она на каком-то временном интервале — ограничена, то она всегда будет ограниченной).
>То, что цена пересекает среднее — это не удивительно, иначе б это было не среднее. Это во-первых.
А это ответ на какой вопрос? :)
>А, во-вторых, чтобы использовать статистику, Ваши наблюдения должны быть «хорошими» не изредка, а все время.
Все случайные ошибки, в том числе и грубые, в большом объеме дадут случайность с нормальным распределением. Самое главное, чтобы была новая (независимая) информация.
Да, все логично и я почти со всем согласен. Тем более, что я все это прочувствовал на своей шкуре, когда зарабатывал на бирже ставок на спорт. Точнее именно прочувствовал, когда терял :). А «уверовал» в статистику, когда после этого восстанавливал свой баланс.
Однако, рассматривается задача более простая: дать предсказание из имеющихся данных, такое, чтобы оно выжимало максимум из имеющихся данных (т.е., на самом деле, корректно решить задачу «технического анализа»). И при этом понимать, что это действительно максимум.
И оказалось, что эта задача сводится к задаче сравнения моделей.
Да, спасибо за идеи. В целом я ваш аргумент понял.
Но все же, у меня тоже есть некоторые аргументы:
>… Я, вроде, уже писал. Все ваши модели обучаются на одних и тех же данных. Поэтому их результат скоррелирован…
Да, модели могут быть обучены на тех же данных. Но, сравнивать модели предлагается на тестовой выборке, в которой нет данных, которые участвовали в обучении моделей. На вскидку, если параметры модели уже достаточно хорошо сошлись к истинным значениям, то вклад в корреляцию от этого фактора будет небольшой.
Принципиально, остается только проблема с тем, что функционалы качества вычислены на одних и тех же данных и тут действительно нужно понимать, где границы знания.
>Но, к сожалению, так как цены сами по себе не независимы, то как бы Вы их не делили, они все равно будут влиять друг на друга, и таким образом мы снова приходим к зависимости результатов каждой модели.
Тут я не согласен. Из моего опыта окна данных размером в 3-7 дней можно считать попарно независимыми кусками данных.
Спасибо, интересно.
Правда, по своему опыту, я вижу прорыв в том, чтобы научиться сравнивать любые модели на заданном объеме данных (объем которых будет увеличиваться со временем).
Под «статистической корректностью оценки» в данном контексте я имел ввиду гарантированность асимптотической сходимости оценки к истинному значению.
>… матожиданием будет последняя цена (распространённый случай для случайных процессов). Это максимум что можно выжать без дополнительных признаков. «Статистически корректный вывод» не будет противоречить этому.
Возможно, что так и получится. Это означает, что если добавить в систему модель предсказания по последней цене, то она будет «статистически значимо» лучше любой другой модели.
Хотя, из своего практического опыта могу сказать, что:
А) цена действительно иногда прыгает к предсказанию самой себя, но это происходит лишь время от времени;
Б) в поведении цены есть тренды. И, очевидно, что в ситуации тренда оценка по последней цене будет плохой.
Самое ценное, что дает математическая статистика — это гарантию сходимости оценок в асимптотическом пределе к истинному значению. Поэтому можно назвать все оценки, которые обладают этим свойством, «статистически корректными» :).
«Cтатистически корректные» оценки дают предел наших знаний для текущих данных.
Как правило, если есть «статистически корректная» оценка для нужной величины, то:
А) дальнейшее улучшение метода оценки (для тех же данных) становится бессмысленным
Б) единственный способ улучшения точности оценки — это добавление в оценку новых независимых данных (новой информации)
>… Вы можете утверждать, будто цены на биткоины имеют подобные приросты?
Тут есть много моментов:
1) то, что цена биткоина в некоторый момент совпадает с «ожидаемым предсказанием» цены биткоина — я действительно наблюдаю. Это обычно такие «пробои» на графике в момент тренда. Это действительно неприятный момент, но он не является определяющим. В текущем подходе, я надеюсь, что этот эффект тоже можно будет изучить и «вычесть», но это уже можно будет сделать на следующем этапе по точности.
2) статистические критерии предлагается применять не к ценам на биткоин, а к утверждениями относительно цен на биткоин.
>… Вы снова вводите в эксперимент зависимости, так как все модели обучались на одних и тех же данных.
Каждый функционал качества модели действительно предлагается вычислять на одних и тех же данных. Часть проблемы как раз и заключается в том, чтобы после вычисления корректно сравнивать эти величины.
> Торговые временные ряды же вообще случайные процессы, и даже если извлечь их характеристики из истории — это мало что даёт, кроме как покатать стратегии на модельных траекториях (и выяснится если снос нулевой, то в среднем ноль и будет, а с комиссиями — минус).
Вопрос состоит в получении статистически корректного вывода на множестве имеющихся данных.
скорее:
1) автор описал задачу, которая возникает практически в любом исследовании, целью которого является статистически корректный вывод на множестве известных данных
2) из постановки задачи понятно как эту задачу решить (статистически корректным способом).
Как оптимальным образом технически решить эту задачу автор не знает, но он обязательно попросит за это прощения в прощенное воскресенье.
А не подскажите, пользуетесь ли вы справочником по математической статистике в работе и если да, то каким?
Этот результат Монте-Карло моделирования можно показать инвесторам, и, возможно, что этот пример их вдохновит.
Но, с точки зрения методов предсказаний и получения нового знания из полученных результатов, это моделирование достаточно бессмысленное. Точнее, использовать результаты этого моделирования (генерация выборки по известной модели и вычисление статистик от полученных данных) можно только так: полученную выборку можно сравнивать с реальной, с целью подтверждения или опровержения, для заданного уровня значимости, гипотезы о том, что реальная выборка имеет модельное распределение.
Методологически тут есть следующая ошибка: предсказание — это построение неслучайной модели. Введение в модель любой комбинации случайных моделей не даст никакого предсказания, так как в статистическом контексте эти модели не дадут нового знания.
Кросс валидация не может сломаться для однородных независимых данных. А для неоднородных данных нет смысла строить предсказания. Зависимость данных в целом не критична, поскольку она лишь уменьшает фактическое количество информации.
Кросс-валидация фактически показывает следующее: допустим у нас количество информации равно N, где N — это размер выборки. Вот такой результат будет, если применить модель для N/2 данных (остальные N/2 использовались для обучения).
И теперь мы примерно знаем, что будет если применить данные ко всем N данным, а тестовая выборка у нас будет из будущего.
Нюанс только в том, как параметризирована кросс-валидация и какой уровень ложно-положительных выводов мы можем себе позволить.
С точки зрения системного подхода тут очевидно следующее:
мы не можем сравнивать несколько моделей через кросс-валидацию (и аналогичные методы) => мы должны проверять кросс-валидацией только одну модель. НО эта модель может быть комбо-моделью от остальных моделей (которые мы хотим сравнить и выбрать из них лучшую).
И таким образом исходная задача будет сводиться к следующей задаче:
какая архитектура у комбо-модели должна быть, для того, чтобы из результата кросс-валидации комбо-модели можно было сравнить исходные модели (и крайне желательно, чтобы сравнить их можно было в терминах исходного функционала качества отдельной модели).
Каждую модель можно обучить на некоторой выборке и после на остальных данных вычислить оценку функционала качества.
Или, чтобы было симметрично по всем данным, через метод кросс-валидации, перебирая все независимые комбинации обучающихся и тестовых выборок, получить среднее значение оценок функционала качества (итоговая оценка функционала качества).
Вопросов несколько:
1) как сравнивать значения итоговых оценок функционала качества, когда моделей всего 2 (N=2)? Эти значения нельзя просто сравнивать как независимые случайные величины т.к. они построены на одних и тех же данных.
Вариант тут на вскидку: это делать кросс-валидацию разницы функционалов качества (и видимо для сохранения степеней свободы — еще и среднее от них), вычисленных на разных выборках :).
Притом, что обучаться модели могут на тех же самых данных.
2) Какое оптимальное N нужно иметь? Как понять, что добавлять новую модель в рассмотрение уже нельзя, из-за того, что это уже не добавит новой «выходной» полезной информации :).
Статистически обоснованные выводы будут асимпотически стремиться к истинно верному значению. Главное, чтобы был источник новой независимой информации.
>… ибо статистика собирается по поставленному эксперименту, с которым можно налажать
Можете чуть уточнить, что вы имели тут ввиду?
Грубые ошибки, в которые, в том числе, входят ошибки модели как таковой, если будут в очень большом количестве, тоже будут иметь нормальное распределение.
Есть проблема с пониманием пределов, в которых мы можем сравнивать разные модели.
А ограниченность дисперсии гарантирует реальность :).
В реальной жизни, обычно, сразу видно ограниченна ли дисперсия (и если она на каком-то временном интервале — ограничена, то она всегда будет ограниченной).
А это ответ на какой вопрос? :)
>А, во-вторых, чтобы использовать статистику, Ваши наблюдения должны быть «хорошими» не изредка, а все время.
Все случайные ошибки, в том числе и грубые, в большом объеме дадут случайность с нормальным распределением. Самое главное, чтобы была новая (независимая) информация.
Ну это я иду и смотрю дальше, так как модель и ресурс cdata-miner мои :).
Однако, рассматривается задача более простая: дать предсказание из имеющихся данных, такое, чтобы оно выжимало максимум из имеющихся данных (т.е., на самом деле, корректно решить задачу «технического анализа»). И при этом понимать, что это действительно максимум.
И оказалось, что эта задача сводится к задаче сравнения моделей.
Но все же, у меня тоже есть некоторые аргументы:
>… Я, вроде, уже писал. Все ваши модели обучаются на одних и тех же данных. Поэтому их результат скоррелирован…
Да, модели могут быть обучены на тех же данных. Но, сравнивать модели предлагается на тестовой выборке, в которой нет данных, которые участвовали в обучении моделей. На вскидку, если параметры модели уже достаточно хорошо сошлись к истинным значениям, то вклад в корреляцию от этого фактора будет небольшой.
Принципиально, остается только проблема с тем, что функционалы качества вычислены на одних и тех же данных и тут действительно нужно понимать, где границы знания.
>Но, к сожалению, так как цены сами по себе не независимы, то как бы Вы их не делили, они все равно будут влиять друг на друга, и таким образом мы снова приходим к зависимости результатов каждой модели.
Тут я не согласен. Из моего опыта окна данных размером в 3-7 дней можно считать попарно независимыми кусками данных.
Правда, по своему опыту, я вижу прорыв в том, чтобы научиться сравнивать любые модели на заданном объеме данных (объем которых будет увеличиваться со временем).
Под «статистической корректностью оценки» в данном контексте я имел ввиду гарантированность асимптотической сходимости оценки к истинному значению.
Возможно, что так и получится. Это означает, что если добавить в систему модель предсказания по последней цене, то она будет «статистически значимо» лучше любой другой модели.
Хотя, из своего практического опыта могу сказать, что:
А) цена действительно иногда прыгает к предсказанию самой себя, но это происходит лишь время от времени;
Б) в поведении цены есть тренды. И, очевидно, что в ситуации тренда оценка по последней цене будет плохой.
«Cтатистически корректные» оценки дают предел наших знаний для текущих данных.
Как правило, если есть «статистически корректная» оценка для нужной величины, то:
А) дальнейшее улучшение метода оценки (для тех же данных) становится бессмысленным
Б) единственный способ улучшения точности оценки — это добавление в оценку новых независимых данных (новой информации)
Тут есть много моментов:
1) то, что цена биткоина в некоторый момент совпадает с «ожидаемым предсказанием» цены биткоина — я действительно наблюдаю. Это обычно такие «пробои» на графике в момент тренда. Это действительно неприятный момент, но он не является определяющим. В текущем подходе, я надеюсь, что этот эффект тоже можно будет изучить и «вычесть», но это уже можно будет сделать на следующем этапе по точности.
2) статистические критерии предлагается применять не к ценам на биткоин, а к утверждениями относительно цен на биткоин.
>… Вы снова вводите в эксперимент зависимости, так как все модели обучались на одних и тех же данных.
Каждый функционал качества модели действительно предлагается вычислять на одних и тех же данных. Часть проблемы как раз и заключается в том, чтобы после вычисления корректно сравнивать эти величины.
Вопрос состоит в получении статистически корректного вывода на множестве имеющихся данных.
1) автор описал задачу, которая возникает практически в любом исследовании, целью которого является статистически корректный вывод на множестве известных данных
2) из постановки задачи понятно как эту задачу решить (статистически корректным способом).
Как оптимальным образом технически решить эту задачу автор не знает, но он обязательно попросит за это прощения в прощенное воскресенье.