Bayesian regression - Делал ли кто советник по этому алгоритму? - страница 28

 

По теме ветки: Байес, mql

Формула Байеса

 

Линейная зависимость y=ax+b;

Формула для нормального распределения.( В принципе можно взять и другое распределение.)

 

Перепишем формулу

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y);   (1)

 Далее, насколько я понимаю, нужно перебрать все возможные комбинации a и b. Те a и b которые дадут максимальную вероятность по формуле (1) и будут искомыми коэффициентами.

 
Yuri Evseenkov:

По теме ветки: Байес, mql

Формула Байеса

 

Линейная зависимость y=ax+b;

Формула для нормального распределения.( В принципе можно взять и другое распределение.)

 

Перепишем формулу

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y);   (1)

 Далее, насколько я понимаю, нужно перебрать все возможные комбинации a и b. Те a и b которые дадут максимальную вероятность по формуле (1) и будут искомыми коэффициентами.

Есть некоторое подозрение, что все совсем не так.
 
Dmitry Fedoseev:
Есть некоторое подозрение, что все совсем не так.
Поделитесь подозрением, плиз.
 
Yuri Evseenkov:
Поделитесь подозрением, плиз.
Не. Если бы точно знал, изобразил бы в коде, а балаболить можно бесконечно. Вон тут такие мегаладоны в теме, пусть они на практике блеснут своими красноречием.
 
Dmitry Fedoseev:
Не. Если бы точно знал, изобразил бы в коде, а балаболить можно бесконечно. Вон тут такие мегаладоны в теме, пусть они на практике блеснут своими красноречием.
Жаль. От Вас по теме больше всех конкретики. А оффтоп компетентных товарищей мне очень интересен, но боюсь заблудится в "лесах".  
 
Yuri Evseenkov:

По теме ветки: Байес, mql

Формула Байеса

 

Линейная зависимость y=ax+b;

Формула для нормального распределения.( В принципе можно взять и другое распределение.)

 

Перепишем формулу

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y);   (1)

 Далее, насколько я понимаю, нужно перебрать все возможные комбинации a и b. Те a и b которые дадут максимальную вероятность по формуле (1) и будут искомыми коэффициентами.

Вроде в правильном направлении мыслите. Я стал это уже подзабывать, но объяснение такое.

Допустим имеем временной ряд (цен если хотите), Y = {y[1], y[2], ..., y[n]}. Имеем также неизвестные параметры модели W={w[1], w[2], ... , w[m]}. Допустим эта модель регрессионная, то есть

y[i] = SUM_j w[j]*f(X) + e[i]

где f() это аппроксимурующая функция (полином например), X - входные данные, e[] ошибка.

Используем теорему максимального правдоподобия чтобы найти параметры модели W:

W = argmax ln(P(W|Y))

Теперь применяем теорему Байеса:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Деление на P(Y) это нормализация, которой можно пренебречь. Получаем

(1) W =  argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), вероятность X при заданных параметрах W, можно рассчитать таким образом:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Если ошибки имеют нормальное распределение и независимы друг от друга, то

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Подставляем (2) в (1) и получаем

W ~  argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) обычно 1, а можно выбарать лаплассовское распределение:

P(W) ~ exp(-lambda*||W||_1)

Получим

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMЧe[i]^2 + lambda*||W||_1

В итоге, применение максимального правдободобия и Теоремы Байеса к регрессии нашего ряда с Гауссовскими ошибками приводит к методу наименьших квадратов с регулирующим слагаемым lambda*... или без такового. Математика замудрённая, а результат простой. Если нормальное распределение ошибок не нравится, то заменяйте на другое, например лаплассовское, получите:

W ~ argmin SUM|e[i]| + lambda*||W||_1

Можете также заменить на супер-гауссовское, получите

W ~ argmin SUM|e[i]|^p + lambda*||W||_1

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

 
Vladimir:

Вроде в правильном направлении мыслите. Я стал это уже подзабывать, но объяснение такое.

Допустим имеем временной ряд (цен если хотите), Y = {y[1], y[2], ..., y[n]}. Имеем также неизвестные параметры модели W={w[1], w[2], ... , w[m]}. Допустим эта модель регрессионная, то есть

y[i] = SUM_j w[j]*f(X) + e[i]

где f() это аппроксимурующая функция (полином например), X - входные данные, e[] ошибка.

Используем теорему максимального правдоподобия чтобы найти параметры модели W:

W = argmax ln(P(W|Y))

Теперь применяем теорему Байеса:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Деление на P(Y) это нормализация, которой можно пренебречь. Получаем

(1) W =  argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), вероятность X при заданных параметрах W, можно рассчитать таким образом:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Если ошибки имеют нормальное распределение и независимы друг от друга, то

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Подставляем (2) в (1) и получаем

W ~  argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) обычно 1, а можно выбарать лаплассовское распределение:

P(W) ~ exp(-lambda*||W||_1)

Получим

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMЧe[i]^2 + lambda*||W||_1

В итоге, применение максимального правдободобия и Теоремы Байеса к регрессии нашего ряда с Гауссовскими ошибками приводит к методу наименьших квадратов с регулирующим слагаемым lambda*... или без такового. Математика замудрённая, а результат простой. Если нормальное распределение ошибок не нравится, то заменяйте на другое, например лаплассовское, получите:

W ~ argmin SUM|e[i]| + lambda*||W||_1

Можете также заменить на супер-гауссовское, получите

W ~ argmin SUM|e[i]|^p + lambda*||W||_1

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

Спасибо!
 
Vladimir:

Вроде в правильном направлении мыслите. Я стал это уже подзабывать, но объяснение такое.

Допустим имеем временной ряд (цен если хотите), Y = {y[1], y[2], ..., y[n]}. Имеем также неизвестные параметры модели W={w[1], w[2], ... , w[m]}. Допустим эта модель регрессионная, то есть

y[i] = SUM_j w[j]*f(X) + e[i]

где f() это аппроксимурующая функция (полином например), X - входные данные, e[] ошибка.

Используем теорему максимального правдоподобия чтобы найти параметры модели W:

W = argmax ln(P(W|Y))

Теперь применяем теорему Байеса:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Деление на P(Y) это нормализация, которой можно пренебречь. Получаем

(1) W =  argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), вероятность X при заданных параметрах W, можно рассчитать таким образом:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Если ошибки имеют нормальное распределение и независимы друг от друга, то

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Подставляем (2) в (1) и получаем

W ~  argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) обычно 1, а можно выбарать лаплассовское распределение:

P(W) ~ exp(-lambda*||W||_1)

Получим

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMЧe[i]^2 + lambda*||W||_1

В итоге, применение максимального правдободобия и Теоремы Байеса к регрессии нашего ряда с Гауссовскими ошибками приводит к методу наименьших квадратов с регулирующим слагаемым lambda*... или без такового. Математика замудрённая, а результат простой. Если нормальное распределение ошибок не нравится, то заменяйте на другое, например лаплассовское, получите:

W ~ argmin SUM|e[i]| + lambda*||W||_1

Можете также заменить на супер-гауссовское, получите

W ~ argmin SUM|e[i]|^p + lambda*||W||_1

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

Благодарю за подробный комментарий. Ключевые слова и формулы даны.  Буду разбираться.

  "В итоге, применение максимального правдободобия и Теоремы Байеса к регрессии нашего ряда с Гауссовскими ошибками приводит к методу наименьших квадратов с регулирующим слагаемым lambda*... или без такового. Математика замудрённая, а результат простой. " 

 Убедили. Почти. Осталась тень сомнения что коэффициенты a и b линий y=ax+b  при подсчёте разными методами будут численно или приблизительно равны.  Тут нужно либо кропотливо сравнить формулы двух методов либо написать программу.  Главное что бы формулы, алгоритм и сам код был адекватен теории. Программа должна:

-посчитать коэффициенты a и b линейной регрессии y=ax+b методом наименьших квадратов 

-получить коэффициенты a и b при которых вероятность по теореме Байеса максимальна при применении нормального распределения с мат. ожиданием равным ах+b

Далее нужно сравнить коэффициенты, и в случае существенной разницы, посмотреть на поведение двух прямых, построенных на этих a и b в динамике. Например в тестере стратегий в режиме визуализации.

Программу можно будет использовать и далее используя другие модели, регрессии, распределения в формуле Байеса. Может быть что то действительно хорошо выстрелит.

P.S Вспомнился мой любимый пример:

"Скорее всего вы уже использовали байесовское мышление, хоть и не знали об этом. Обсудим
пример, который я взял у Нэйла Мэнсона: Вы солдат в битве, который прячется в окопе. Вы точно
знаете, что на поле боя остался только один вражеский солдат, на расстоянии примерно в 400
ярдов. Вы также знаете, что если это обычный солдат, то он не сможет попасть в вас с такого
расстояния. Однако если этот солдат - снайпер, то вполне возможно, что он сможет в вас
попасть. Но снайперов в армии врага мало, так что скорее всего это обычный солдат. Вы
приподнимаете голову из окопа, стараясь оглядеться получше. Бам! Пуля чиркает по вашей каске
и вы падаете обратно в окоп.
Хорошо, думаете вы. Я знаю, что снайперы редки, однако этот парень попал в меня с четыреста
ярдов. Все еще велик шанс, что это обычный солдат, однако шанс того, что это снайпер, уже
выше, ведь он попал в меня с такого большого расстояния. Спустя несколько минут вы
осмеливаетесь выглянуть еще раз и приподнимаете голову над окопом. Бам! Вторая пуля
чиркает по вашей каске! Вы падаете обратно. Вот черт, думаете вы. Это определенно снайпер. Не имеет значения, насколько они редки,
однако обычный солдат не может два раза подряд попасть с такого расстояния
. Это определенно
снайпер. Лучше мне вызвать подмогу. Если это грубое приближение того, как бы вы думали в
подобной ситуации, тогда мои поздравления! Вы уже размышляете как байесианец, по крайней
мере иногда."
(Автор не указан).

 
Yuri Evseenkov:


-посчитать коэффициенты a и b линейной регрессии y=ax+b методом наименьших квадратов 

-получить коэффициенты a и b при которых вероятность по теореме Байеса максимальна при применении нормального распределения с мат. ожиданием равным ах+b


Они и будут равны, очень близко. Вопрос в том, есть ли смысл пытаться задавать априорное распределение для коэффициентов в применении к финансовым рынкам.

Я часто видел, что применяют регуляризацию в регрессии (L1, L2). Может работать лучше, чем ординарная линейная регрессия.

 
Alexey Burnakov:

Они и будут равны, очень близко. Вопрос в том, есть ли смысл пытаться задавать априорное распределение для коэффициентов в применении к финансовым рынкам.

Я часто видел, что применяют регуляризацию в регрессии (L1, L2). Может работать лучше, чем ординарная линейная регрессия.

Коэффициенты a и b , как я понимаю , нужно перебирать что бы определить комбинацию дающую максимальную вероятность по формуле Байеса P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y);   (1)  Вероятности P(a) и P(b) будут равны шагам циклов переборок и являться постоянной величиной. Их распределение будет равномерное.

P.S. Я  придерживаюсь мнения что характеры  реальных финансовых рынков и форекса различаются существенно. Форекс это больше игорный бизнес что ли. Этакий многопользовательский , компьютерный онлайн симулятор . Стало быть для форекса возможно применение  законов актуальных в этих сферах. Закон нормального распределения , например.

Причина обращения: