Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 210
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Alexey Burnakov:
Я начал получать ответы на свой вопрос в R.
Продолжение переписки с этим же человеком...
No. The value of a density at any particular point is irrelevant.
Duncan Murdoch
Про ответчика: http://www.stats.uwo.ca/faculty/murdoch/other.shtml
В частности:
I am a member of the R core development group; see www.r-project.org for details about the R project. I maintain the Windows version of R and have a web page of tips for people writing DLLs for R.
М-да, Вам виднее
Да, виднее и честнее.
Причем я не имею политической возможности набрасывать как сторонний участник форума.
Даже не постеснялись Матлаб, Вольфрам и Математику назвать "я не знаю кто это"
Дайте ссылку на рейтинги статистических пакетов, в которых был бы пакет Математика (Вольфрам). Матлаб был, да почил в бозе. Я вот приводил в своем блоге на вашем сайте и много кратно выкладывал на форуме
Вы умалчиваете, что:
Матлаб никуда не почил, как и остальные пакеты. Да, платные, но качественные. Да, популярность будет падать, но точность и качество никуда не денутся.
Про Вольфрам Альфа почитайте и исследуйте его сайт - это фундаментальные инвестиции в аналитику, на которые мало кто способен. И точность у Wolfram Alpha в 30 знаков, что доказывает их маниакальное внимание к качеству вычислений.
К сожалению, вы неполно сформулировали вопрос и получили непроработанный и краткий вежливый ответ "это не имеет значения".
Вы хотели получить ответ "так договорились/convention", сформулировав его в самом вопросе. Но Дункан ушел от ответа "что есть правильно" в первый раз, а во второй раз повторил его.
Вы не получили подтверждения точности в R и не получили ответа, почему в других пакетах результат другой. Разбор вопроса "почему в других пакетах ответ другой" более важен и способен раскрыть тему.
Наша позиция:
выражение для dgamma
(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)
for x ≥ 0, a > 0 and s > 0в точке 0 является неопределенным.
В R считают, что можно включать эту точку в расчет, но при этом взять предельные значения, даже если они равны бесконечности как в случае dgamma(0,0.5,1).
Однако, если рассчитывать вероятности с учетом бесконечности в нулевой точке, все интегралы от dgamma формально становятся бесконечными и по этой логике pgamma должна быть равна бесконечности для всех значений x.
Однако это противоречит результатам pgamma, где все значения оказываются конечными. Они правильные, будто в точке x=0 считается что плотность =0.Для @СанСаныч Фоменко - MQL4/MQL5 поднялся на 41 место в мировом рейтинге языков программирования TIOBE: http://www.tiobe.com/tiobe-index/
R на 19 месте, Mathlab на 15 месте.
Это чтобы развеять ваши заявления про "не авторитет" и "не мировой топ".
Чтобы не потерялась нить обсуждений, вот найденная в процессе тестирования R ошибка расчета квантилей нецентрального t-распределения.
Например:
Для расчета вероятности нецентрального T-распределения Стьюдента в языке R используется алгоритм AS 243, предложенный Lenth [6]. Достоинством этого метода является быстрый рекуррентный расчет членов бесконечного ряда с неполной бета-функций. Но в статье [7] было показано, что из-за ошибки оценки точности при суммировании членов ряда данный алгоритм приводит к ошибкам (таблица 2 в статье [7]), особенно для больших значений параметра нецентральности delta. Авторы статьи [7] предложили скорректированный алгоритм рекуррентного расчета вероятности нецентрального T-распределения.
У нас в статистической библиотеке MQL5 используется правильный алгоритм для расчета вероятностей из статьи [7] , что дает точные результаты.
Кроме того, в языке R способ определения плотностей для распределений Gamma, ChiSquare и Noncentral ChiSquare в точке x=0 приводит к бесконечным выражениям:
Таким образом, получается, точка x=0 в R включена в область определения выражения для плотности и решением являются предельные значения.
В данном случае предельным значением в точке x=0 является бесконечность. При таком подходе в результате интегрирования от 0 до x>0 из-за расходимости в точке x=0 вероятности должны быть бесконечными.
Однако результатом расчета вероятностей (например, для x=0.1) являются конечные выражения:
Несмотря на то, что в точке x=0 плотность считается бесконечной, результаты расчета вероятностей в R не являются бесконечными, они совпадают со значениями Wolfram Alpha (Gamma, ChiSquare, NoncentralChiSquare).
Для избежания проблем с интегрированием функций, обращающихся в бесконечность в при x=0, в Wolfram Alpha (Mathematica) и Matlab плотность в точке x=0 равна 0 по определению:
Рис. 3. Определение плотности вероятности распределения Gamma в Wolfram Alpha
Рис. 4. Определение плотности вероятности распределения ChiSquare в Wolfram Alpha
Рис. 5. Определение плотности вероятности распределения Noncentral ChiSquare в Wolfram Alpha
Мы считаем такой поход правильным. Он позволяет избежать неопределенностей в определении плотности вероятности и решить проблему с бесконечными значениями, которые могут возникнуть при интегрировании плотности вероятности.
По этой причине в точке x=0 плотности данных распределений считаются равными нулю по определению, а не бесконечности, как в R.
Чтобы быть уверенными в точности расчетов и дать возможность сторонним разработчикам проверить качество библиотеки, мы включили несколько unit test скриптов в поставку.
Литература
Для @СанСаныч Фоменко - MQL4/MQL5 поднялся на 41 место в мировом рейтинге языков программирования TIOBE: http://www.tiobe.com/tiobe-index/
R на 19 месте, Mathlab на 15 месте.
Это чтобы развеять ваши заявления про "не авторитет" и "не мировой топ".
Я обсуждаю статистику. И мои рейтинги по статистическим пакетам.
Более того. В приведенной Вами цитате R стоит выше MQL4/5 в этой статистике по алгоритмическим языкам. Но для меня это вообще НЕ является основанием, например, для перехода с МКЛ на R. Я вообще не обсуждаю алгоритмические возможности R.
Для меня главная сила R - это его пакеты, это поддержка всей этой системы, это авторитет людей их разработавших, это огромная тусовка на R, в конце концов огромное количество публикаций, привязанных к R.
Кроме этого, как человек просидевший 15 лет в ученых советах. Если пишут "аналог R" , то это аналог без всяких исключений. И иначе НЕ БЫВАЕТ. В противном - это НЕ аналог R, вполне может быть намного правильнее, но не аналог
Я обсуждаю статистику. И мои рейтинги по статистическим пакетам.
Более того. В приведенной Вами цитате R стоит выше MQL4/5 в этой статистике по алгоритмическим языкам. Но для меня это вообще НЕ является основанием, например, для перехода с МКЛ на R. Я вообще не обсуждаю алгоритмические возможности R.
А мы обсуждаем конкретную ошибку в R.
Так что не лезьте со своими рейтингами, раз не в курсе математики и конкретного разбираемого случая.
СанСаныч Фоменко:
...
Для меня главная сила R - это его пакеты, это поддержка всей этой системы, это авторитет людей их разработавших, это огромная тусовка на R, в конце концов огромное количество публикаций, привязанных к R.
...
Гнильё какое-то этот R - велосипед с квадратными колёсами. Что говорить о каких-то его пакетах, когда сама основа, т.е. ЯП в R кривой и нуждается в серьёзной доработке "драчевым напильником"? Какой может быть авторитет у тех, кто даже не удосужился за столько лет проверить корректность базовых функций в R? Какая может быть "сила" в слабом месте R - некорректности расчётов через него?
Хорошо, что MetaQuotes открыли глаза некоторым пользователям на то, что на самом деле представляет этот самый R, на фактах и тестах с открытыми исходниками, чтобы каждый мог самостоятельно перепроверить и убедиться, а не голословно. Не всем конечно открыли, т.к. отдельные религиозные фанатики из деструктивной секты R будут продолжать слепо верить в "непогрешимость" расчётов в их кривом языке и пакетах, вместо того, чтобы обратиться к представленным тестам и перепроверить их самостоятельно, а не фанатично гнать пургу, выгораживая кривизну R в качестве "общепринятого стандарта".
Теперь вполне очевидно, что лучше пользоваться функционалом MQL для создания торговых стратегий, поскольку результат будет более корректным, а пытаться делать это через кривой и косой R.
За конструктивный подход, тесты и их исходники, а также за выявление "голого короля - R", разработчикам MetaQuotes надо сказать отдельное спасибо!
Ширина 0 нас не интересует, нам нужно понять как ведет себя такой интеграл, т.е. cdf(x). Что за функция получается? будет ли она совпадать с pgamma(x)?
> dgamma_05_1 <- function(x)dgamma(x,0.5,1) #всего 1 параметр, чтоб удобней работать
> pgamma_05_1 <- function(x)pgamma(x,0.5,1) #всего 1 параметр, чтоб удобней работать
> pgamma_05_1_integralform <- function(x)integrate(dgamma_05_1, 0, x)$value #вычисление pgamma путём интегрирования dgamma>
> pgamma_05_1(0.00001)
[1] 0.003568236
> pgamma_05_1_integralform(0.00001)
[1] 0.003568236
> pgamma_05_1(0.00001) - pgamma_05_1_integralform(0.00001)
[1] -6.938894e-18
>
> pgamma_05_1(0.0001)
[1] 0.01128342
> pgamma_05_1_integralform(0.0001)
[1] 0.01128342
> pgamma_05_1(0.0001) - pgamma_05_1_integralform(0.0001)
[1] 3.295975e-17
>
> pgamma_05_1(0.001)
[1] 0.03567059
> pgamma_05_1_integralform(0.001)
[1] 0.03567059
> pgamma_05_1(0.001) - pgamma_05_1_integralform(0.001)
[1] 1.595946e-16
>
> pgamma_05_1(0.01)
[1] 0.1124629
> pgamma_05_1_integralform(0.01)
[1] 0.1124629
> pgamma_05_1(0.01) - pgamma_05_1_integralform(0.01)
[1] 1.096345e-15
>
> pgamma_05_1(0.1)
[1] 0.3452792
> pgamma_05_1_integralform(0.1)
[1] 0.3452792
> pgamma_05_1(0.1) - pgamma_05_1_integralform(0.1)
[1] 1.126876e-13
>
> pgamma_05_1(1)
[1] 0.8427008
> pgamma_05_1_integralform(1)
[1] 0.8427008
> pgamma_05_1(1) - pgamma_05_1_integralform(1)
[1] 3.460265e-11
pgamma() найденная стандартным образом и через integrate(dgamma()) почти совпадают, видно что погрешность доходит всего до 3.460265e-11 при x=1. Но такая погрешность вполне ожидаема, интегрирование тут идёт суммой через маленькие шажки, без всяких предварительных анализов и упрощений. Сама функция pgamma() написана на c++ и должна быть точнее чем интегрирование с помощью integrate(). Поэтому стоит использовать именно pgamma(x,0.5,1), а не integrate(dgamma(x,0.5,1),0,x)
Что говорить о каких-то его пакетах, когда сама основа, т.е. ЯП в R кривой и нуждается в серьёзной доработке "драчевым напильником"?
ЯП R - кривоватый и медленный.
Если разделить обсуждение на чисто классическую статистику, которая есть и в базовой поставке и в дополнительных пакетах, думаю проблем никаких здесь нет. Если вы проводите миллионы стат.тестов, то производительность других языков (в т.ч., MQL) окажется плюсом.
Если говорить про то, как в R вообще программируется, то скажу вам, Юрий, люди используют опять-таки пакеты для быстрой обработки данных (dplyr, data.table, а для графиков - ggplot2). Сам R опять-таки скриптовый язык, древний, не предназначен для массивных данных.
Но даже не смотря на все это, поток грязи с вашей стороны все-таки не оправдано высок. Мы тут обсуждали статистику, и даже не рефакторинг кода и прочие технические вещи. Разговор шел за математические концепции.