Pull to refresh

Comments 48

Главная особенность системы: ее выводы будут статистически обоснованы (в рамках имеющейся информации) и, в соответствии с математической статистикой, будут асимптотически сходится к истинно верному значению при увеличении количества независимых данных.
Статистически обоснованные выводы != истинно верное значение, ибо статистика собирается по поставленному эксперименту, с которым можно налажать
>Статистически обоснованные выводы != истинно верное значение…

Статистически обоснованные выводы будут асимпотически стремиться к истинно верному значению. Главное, чтобы был источник новой независимой информации.

>… ибо статистика собирается по поставленному эксперименту, с которым можно налажать

Можете чуть уточнить, что вы имели тут ввиду?

Грубые ошибки, в которые, в том числе, входят ошибки модели как таковой, если будут в очень большом количестве, тоже будут иметь нормальное распределение.
Грубые ошибки, в которые, в том числе, входят ошибки модели как таковой, если будут в очень большом количестве, тоже будут иметь нормальное распределение.
Не факт.
Автор
призывает научить его пользоваться поиском в интернете
или
предлагает задачу для изучения
или
что-то ещё?
скорее:
1) автор описал задачу, которая возникает практически в любом исследовании, целью которого является статистически корректный вывод на множестве известных данных
2) из постановки задачи понятно как эту задачу решить (статистически корректным способом).
Как оптимальным образом технически решить эту задачу автор не знает, но он обязательно попросит за это прощения в прощенное воскресенье.
UFO just landed and posted this here
Самое ценное, что дает математическая статистика — это гарантию сходимости оценок в асимптотическом пределе к истинному значению. Поэтому можно назвать все оценки, которые обладают этим свойством, «статистически корректными» :).
«Cтатистически корректные» оценки дают предел наших знаний для текущих данных.
Как правило, если есть «статистически корректная» оценка для нужной величины, то:

А) дальнейшее улучшение метода оценки (для тех же данных) становится бессмысленным

Б) единственный способ улучшения точности оценки — это добавление в оценку новых независимых данных (новой информации)
UFO just landed and posted this here
А где вы увидели признаки того, что в предлагаемой системе будут обязательно зависимые и гетерогенные случайные величины?
UFO just landed and posted this here
Да, спасибо за идеи. В целом я ваш аргумент понял.
Но все же, у меня тоже есть некоторые аргументы:
>… Я, вроде, уже писал. Все ваши модели обучаются на одних и тех же данных. Поэтому их результат скоррелирован…
Да, модели могут быть обучены на тех же данных. Но, сравнивать модели предлагается на тестовой выборке, в которой нет данных, которые участвовали в обучении моделей. На вскидку, если параметры модели уже достаточно хорошо сошлись к истинным значениям, то вклад в корреляцию от этого фактора будет небольшой.
Принципиально, остается только проблема с тем, что функционалы качества вычислены на одних и тех же данных и тут действительно нужно понимать, где границы знания.
>Но, к сожалению, так как цены сами по себе не независимы, то как бы Вы их не делили, они все равно будут влиять друг на друга, и таким образом мы снова приходим к зависимости результатов каждой модели.
Тут я не согласен. Из моего опыта окна данных размером в 3-7 дней можно считать попарно независимыми кусками данных.
UFO just landed and posted this here
По-умному По научному задачу можно назвать «анализ и прогнозирование временных рядов с целью оптимального управления запасами».
Тема уже старая, частично хорошо изученная. Этим занимаются в инвестфондах и прочих финкомпаниях. Возьмите какое-нибудь ПО для статистики — там это будет в каком-то виде.
«Корректность» в математике имеет вполне определённый смысл. Для статистики лучше подходят слова «статистически значимый».
Спасибо, интересно.
Правда, по своему опыту, я вижу прорыв в том, чтобы научиться сравнивать любые модели на заданном объеме данных (объем которых будет увеличиваться со временем).
Под «статистической корректностью оценки» в данном контексте я имел ввиду гарантированность асимптотической сходимости оценки к истинному значению.
Под «статистической корректностью оценки» в данном контексте я имел ввиду гарантированность асимптотической сходимости оценки к истинному значению.
Это называется «несмещённость оценки». Без изучения теории — здесь это «ТВ и МС» — постоянно будете делать детские ошибки.
Это называется сходимость по вероятности и закон больших чисел.
1. Может сойтись, не не к тому.
2. Может не сойтись.
1) по закону больших чисел (теоремам Хинчина и Чебышева), для выборки из любого количества разных распределений с конечными матожиданиями и дисперсиями — среднее значение выборки сходится к среднему значению матожиданий
2) по центральной предельной теореме, для выборки из одного любого распределения с конечной дисперсией — среднее значение, при большом размере выборки, будет нормальной случайной величиной
3) по закону больших чисел, теореме Чебышева, для выборки из любого количества разных распределений с конечными матожиданиями и дисперсиями и дополнительным условием на сходимость дисперсий — среднее значение, при большом размере выборки, будет нормальной случайной величиной
UFO just landed and posted this here
Эти же теоремы будут выполняться, если данные можно разбить на независимые куски. Тогда зависимость внутри кусков будет влиять только на то, что нужно больше данных (и это нужно учитывать в значениях уровня значимости). Другими словами, зависимость внутри кусков влияет только на то, что количество фактической информации меньше N, где N — размер выборки (и будет пропорционально количеству независимых кусков, с фактором порядка единицы).
Есть пакеты статистического вывода (Байесовского). Pymc3, Pyro, Tensorflow Probability — это для python (и то это не все), Stan для С++, python, R, для JavaScript есть webppl.org…

Если я правильно понял запрос, конечно. Тутберидзе проблема не в наличии или отсутствии инструмента. Проблема в том, что зная среднее, разброс может сводить какие-то (все в общем-то) усилия на нет.

Торговые временные ряды же вообще случайные процессы, и даже если извлечь их характеристики из истории — это мало что даёт, кроме как покатать стратегии на модельных траекториях (и выяснится если снос нулевой, то в среднем ноль и будет, а с комиссиями — минус).

«Извлечь характеристики из истории» — поверьте, это весьма непростые приседания. И того не стоят. Одномерные временные ряды вообще зло, будь в них сезонность даже, тренд и праздники. Многомерные ряды ещё как-то работают, и нейросетки с ними тоже ещё хоть как-то работают.

Вероятностный вывод годен для классических задач data science — регрессии, классификации, когда надо проинтерпретировать коэффициенты модели, покатать несуществующие ситуации (посэмплить), и другая аналитика.

Но не этот теплонагревательный биток.
> Торговые временные ряды же вообще случайные процессы, и даже если извлечь их характеристики из истории — это мало что даёт, кроме как покатать стратегии на модельных траекториях (и выяснится если снос нулевой, то в среднем ноль и будет, а с комиссиями — минус).

Вопрос состоит в получении статистически корректного вывода на множестве имеющихся данных.

Ну так упомянутые пакеты Байесовского (который при размерности задачи много меньше числа наблюдений — частотный) вывода, этот самый вывод и делают.


Проблема только в том, что далёкий от реальности приор (форма зависимости) будет долго вести к постериору. А хороший приор кто в Сочи живет знает.


Биток сильно волатилен. Поэтому думаю не сильно ошибусь, статистический вывод от фич времени даст среднее звено период, а если примешать прошлые цены, матожиданием будет последняя цена (распространённый случай для случайных процессов). Это максимум что можно выжать без дополнительных признаков. "Статистически корректный вывод" не будет противоречить этому.

>… матожиданием будет последняя цена (распространённый случай для случайных процессов). Это максимум что можно выжать без дополнительных признаков. «Статистически корректный вывод» не будет противоречить этому.

Возможно, что так и получится. Это означает, что если добавить в систему модель предсказания по последней цене, то она будет «статистически значимо» лучше любой другой модели.

Хотя, из своего практического опыта могу сказать, что:

А) цена действительно иногда прыгает к предсказанию самой себя, но это происходит лишь время от времени;
Б) в поведении цены есть тренды. И, очевидно, что в ситуации тренда оценка по последней цене будет плохой.

ну да, даже линейный тренд уже приор. по вашей второй ссылке из постскриптума, идут дальше, и смотрят паттерны. это все так называемый тех анализ, который считает что "в цене заложено все прошлое".


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


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


Уже ковыряли и 10 и 20 лет назад, и раньше, матстатом и Монте-Карлой вот это все.


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


И пока система будет драйвиться входящими признаками (время, прошлая цена, температура тела президента Северной Кореи), модель будет работать. Жопа в том что рынки реагируют на каждый чих перемещениями капитала из одних активов в другой, причём портфельными порциями.


И да. Книжка есть, сигнал против шума. Там есть вопрос, кто лучше предсказывает, лисы (много секретов, но мелкие), или ёжики (один секрет, но главный). tldr лисы. у них модели гибче. то же самое нам и Талеб вещает в анти хрупкости все яйца в одной корзине не хранить, и страховать сделки так, чтобы при потерях терять мало, а при выигрыше выигрывать много. богатым и здоровым короче быть хорошо.


а это ж только управление портфельным риском позволяет. на один актив всегда слишком много факторов. с портфелем же ниже рынка упасть можно, но уже сложнее, а вырасти можно и повыше. тренд у рынка расти. был до пандемии)

Да, все логично и я почти со всем согласен. Тем более, что я все это прочувствовал на своей шкуре, когда зарабатывал на бирже ставок на спорт. Точнее именно прочувствовал, когда терял :). А «уверовал» в статистику, когда после этого восстанавливал свой баланс.

Однако, рассматривается задача более простая: дать предсказание из имеющихся данных, такое, чтобы оно выжимало максимум из имеющихся данных (т.е., на самом деле, корректно решить задачу «технического анализа»). И при этом понимать, что это действительно максимум.
И оказалось, что эта задача сводится к задаче сравнения моделей.
А ну вот, в упомянутой книге ниже, как раз вот было про что-то подобное по вашему запросу. Я же помню что было что-то)
nbviewer.jupyter.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter5_LossFunctions/Ch5_LossFunctions_PyMC3.ipynb#Example:-Financial-prediction
>ну да, даже линейный тренд уже приор. по вашей второй ссылке из постскриптума, идут дальше, и смотрят паттерны.

Ну это я иду и смотрю дальше, так как модель и ресурс cdata-miner мои :).

по ссылке ваш ресурс? недурно :)


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


база паттернов это один вариант модели. не скажу что не рабочий, рабочий пока на рынке не действуют внешние шоки. Предупреждающих индикаторов пандемии в ценах нет, тех самых лебедей.


А найти оптимум какой-либо из локальных (если модель простая, то и глобальный), можно градиентным спуском, ну или если нужно распределение на параметры — stan, pymc3, pyro, infer.net, tensorflow probability, Edward, webppl...


я всерьез советую посмотреть скажем pymc3, как самый user friendly. хорошая книга про него — bayesian methods for hackers.


по крайней мере, с помощью этих фреймворков можно фитнуть к данным произвольную модель, хоть на тех анализе, хоть нет.

Проблемы фитнуть данные к модели — нет. Моя текущая лучшая модель на cdata-miner-ui, это результат фита, понятное дело :).
Есть проблема с пониманием пределов, в которых мы можем сравнивать разные модели.

Для задач классификации, например, есть такая вещь как Bayes Error Rate. Для регрессия аналога не знаю.


Что значит предел, в котором можно сравнивать модели — не очень ясно (мне до сих пор). Сравнивать можно хоть до посинения. Пока бизнес-метрика (см. ссылку выше) осмысленные значения даёт или поддаётся оптимизации.

Допустим есть много моделей m(1), m(2), ..., m(N).
Каждую модель можно обучить на некоторой выборке и после на остальных данных вычислить оценку функционала качества.
Или, чтобы было симметрично по всем данным, через метод кросс-валидации, перебирая все независимые комбинации обучающихся и тестовых выборок, получить среднее значение оценок функционала качества (итоговая оценка функционала качества).
Вопросов несколько:
1) как сравнивать значения итоговых оценок функционала качества, когда моделей всего 2 (N=2)? Эти значения нельзя просто сравнивать как независимые случайные величины т.к. они построены на одних и тех же данных.
Вариант тут на вскидку: это делать кросс-валидацию разницы функционалов качества (и видимо для сохранения степеней свободы — еще и среднее от них), вычисленных на разных выборках :).
Притом, что обучаться модели могут на тех же самых данных.
2) Какое оптимальное N нужно иметь? Как понять, что добавлять новую модель в рассмотрение уже нельзя, из-за того, что это уже не добавит новой «выходной» полезной информации :).

таких коробочных фреймворков нет, если не считать bayes_opt и гауссовские процессы.


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


примерно как нейросеть, которые универсальные аппроксиматоры. то есть решение в вашем случае такое: взять сетку с двумя скрытыми слоями размером в размерность данных и регуляризовывать ее уменьшением размера.


то есть задача эквивалентна нахождению нейросети минимальной ёмкости с лучшей метрикой (решения на данный момент нет, насколько мне известно).


загляните также в архитектуры neural architecture search. я не расскажу как они работают на пальцах, но смысл там в поиске архитектуры.


но насколько мне известно, лёгких путей в пространстве моделей нет: ландшафт функции ошибки у моделей слишком рваный, в нем много перестановочных симметрий и других проблем.


идея, впрочем, хорошая. Широко известный в узких кругах Ветров (из Samsung Research он вроде) не так давно (я слышал это в феврале) анонсировал попытку обойти все проблемы, связанные со сложным ландшафтом, но результатов я не знаю.


А вообще, Монте-Карло на то и нужен, чтобы исследовать подобные проблемы, которые хренушки в лоб вычислишь. Так что поставьте эксперимент даже через простой randomized search, в том числе с размером датасета, и посмотрите на распределение метрики.

Спасибо, интересно, посмотрю.
С точки зрения системного подхода тут очевидно следующее:
мы не можем сравнивать несколько моделей через кросс-валидацию (и аналогичные методы) => мы должны проверять кросс-валидацией только одну модель. НО эта модель может быть комбо-моделью от остальных моделей (которые мы хотим сравнить и выбрать из них лучшую).
И таким образом исходная задача будет сводиться к следующей задаче:
какая архитектура у комбо-модели должна быть, для того, чтобы из результата кросс-валидации комбо-модели можно было сравнить исходные модели (и крайне желательно, чтобы сравнить их можно было в терминах исходного функционала качества отдельной модели).
  • Про то, насколько верны оценки на тестовой выборке: есть теорема (за пруфами в книгу http://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/) о том, насколько отличаются разницы оценок на трэйн/тест и трэйн/все_данные _в_мире. Там эта штука быстро сходится, чтобы иметь 99% уверенности, что точность бинарной классификации будет отличаться не более чем на тысячные, хватит порядка 10000 наблюдений в тесте.
  • Есть контр-пример (очень искусственный, но все же), который показывает, что кросс валидация может "сломаться"). Пруфы в той же книге, там по оглавление легко найти.
  • Вообще для сравнения моделей в целом есть лучшие показатели — например, VC размерность. Ну и используя размерности такого типа можно, вообще говоря, сравнивать не качество двух моделей на трейне, а обобщающую способность.
  • В общем случае теория пока умеет доказывать лишь то, что качество модели от данных связано с размерностью VC. Когда данных становится больше, чем VC-размерность, то качество вообще и качество на трэйне начинают сходиться, скорость определяется опять же через VC, но там все оч сложно и за один комментарий такое не распишешь…
>Есть контр-пример (очень искусственный, но все же), который показывает, что кросс валидация может «сломаться»…

Кросс валидация не может сломаться для однородных независимых данных. А для неоднородных данных нет смысла строить предсказания. Зависимость данных в целом не критична, поскольку она лишь уменьшает фактическое количество информации.

Кросс-валидация фактически показывает следующее: допустим у нас количество информации равно N, где N — это размер выборки. Вот такой результат будет, если применить модель для N/2 данных (остальные N/2 использовались для обучения).
И теперь мы примерно знаем, что будет если применить данные ко всем N данным, а тестовая выборка у нас будет из будущего.

Нюанс только в том, как параметризирована кросс-валидация и какой уровень ложно-положительных выводов мы можем себе позволить.
Предельный частный случай кросс-валидации это Leave One Out, когда мы обучаемся на всех примерах, кроме одного и на последнем валидируемся; повторяем для каждого имеющегося примера и оцениваем среднюю ошибку.

«Классический» контр-пример тогда такой. Пусть имеется случайное распределение меток 1 или 0. Пусть у нас есть обучающая выборка. И мы «обучаем» следующий классификатор: классификатор предсказывает 1, если в обучающей выборке четное число примеров с меткой 1 и 0 в противном случае. Понятно, что ошибка на всех данных будет всегда 1/2, а вот оценка Leave One Out будет либо ровно 0, либо ровно 1, это нетрудно показать. Т.е. LOO — кросс-валидация «ломается» на таком примере. Хотя как я писал, пример явно искусственный, он не позволят делать какие-либо интересные выводы о кросс-валидации вообще.

P.S. Вообще тема с перестановками и разбиениями выборок максимально развита в диссертации К.В. Воронцова, но я лично не осилил(( Можете почитать, если интересно: www.machinelearning.ru/wiki/index.php?title=%D0%A1%D0%BB%D0%B0%D0%B1%D0%B0%D1%8F_%D0%B2%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%81%D0%B8%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0. Кажется что это строгое развитие Ваших идей.

если речь про перебор гиперпараметров, лучше гауссовских процессов и bayes_opt пока лучше ничего не придумали.

UFO just landed and posted this here
>… Вы можете утверждать, будто цены на биткоины имеют подобные приросты?
Тут есть много моментов:
1) то, что цена биткоина в некоторый момент совпадает с «ожидаемым предсказанием» цены биткоина — я действительно наблюдаю. Это обычно такие «пробои» на графике в момент тренда. Это действительно неприятный момент, но он не является определяющим. В текущем подходе, я надеюсь, что этот эффект тоже можно будет изучить и «вычесть», но это уже можно будет сделать на следующем этапе по точности.
2) статистические критерии предлагается применять не к ценам на биткоин, а к утверждениями относительно цен на биткоин.

>… Вы снова вводите в эксперимент зависимости, так как все модели обучались на одних и тех же данных.

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

UFO just landed and posted this here
>То, что цена пересекает среднее — это не удивительно, иначе б это было не среднее. Это во-первых.

А это ответ на какой вопрос? :)

>А, во-вторых, чтобы использовать статистику, Ваши наблюдения должны быть «хорошими» не изредка, а все время.

Все случайные ошибки, в том числе и грубые, в большом объеме дадут случайность с нормальным распределением. Самое главное, чтобы была новая (независимая) информация.
UFO just landed and posted this here
независимость гарантирует одновременно новизна данных и истинная грубость ошибок (чтобы они были истинно грубые).
А ограниченность дисперсии гарантирует реальность :).
В реальной жизни, обычно, сразу видно ограниченна ли дисперсия (и если она на каком-то временном интервале — ограничена, то она всегда будет ограниченной).
все статистические тесты и вероятностные неравенства применимы только к независимым или слабозависимым экспериментам
— все, о которых вы осведомлены.
UFO just landed and posted this here
Sign up to leave a comment.

Articles