Исследования в мат. пакетах - страница 3

 
Alexey Volchanskiy:

Отлично, я первый день потихоньку изучаю R, ответьте на вопросы плз, хочется сравнить возможности R и Matlab. Только без холиваров, взвешенно и спокойно :).

  1. Является ли  R языком с возможностями ООП?
  2. Могу ли я на R сделать 32-битовую и 64-битовую dll для непосредственого использования из MQL4/5? Если да, какого размера пакет надо устанавливать для использования таких dll на компьютере пользователя?
  3. Могу ли я подключить распространенные БД для прямого доступа из R?
  4. Есть ли в R аналог Simulink?
  5. Почему во всех обзорах делается упор на то, что R - программа для статистики? Меня интересует DSP, есть ли в R пакеты для цифровой обработки сигналов?
  6. Есть ли в R встроенный компактный формат для хранения данных, подобный .mat файлам в Матлабе?

1. Да. Сравнение разных языков программирования дело не благодарное, так как использование одних инструментов и не использование других зачастую вопрос вкуса программиста.

Я не являюсь специалистом по R, но отмечу: 

В R отсутствует понятие "скаляр". Это вектор длины 1. Т.е. в основе арифметики лежат матричные операции. строка кода С= А+В может вызвать матричную операцию

в R понятие "объект" доведено до логического завершения: может быть вектор, матрица, матрица программ и вообще среда, в которой исполняется программа пользователя.

в R довольно просто писать программы, которые не только загружают процессоры и ядра компьютера исполнения, но и соседние компьютеры локальной сети  

... 

2. Для ответа моих знаний не хватает. Похоже нельзя. Это вытекает из специфики построения самого R, который при первой знакомстве является интерпретатором. Но это поверхностный взгляд. Дело в том, что Rпредставляет собой симбиоз с хорошо документированным интерфейсом с С. Основная мощь R это пакеты (свыше 7000 тысяч, содержащие около 120 000 функций), а эти пакеты обычно являются обращениями к программам на C  или Фортране. Дело в том, что Rдля всех вычислительно емких операций использует библиотеки С и Фортрана.

Большое внимание R уделяется API, но за гранью моей квалификации

3. Да

4. Вроде нет. Имеется ряд инструментов (кроме готовых) по построению GUI, хотя это не то. В этом пункте хочу  упомянуть широко развитые в R инструменты, которые в обычных языках программирования отсутствуют: это методы статистического испытания моделей. Очень развиты и развиты средства по обработке результатов статистических испытаний. В Rможно запросто ответить на вопрос: "На сколько средняя отличается от математического ожидания при выборке в 100 наблюдений?"

5. Статистика, причем в широком понимании этого, является фишкой R. Не надо забывать про средства графики, что является принципиальным при работе со статистикой. Чтобы получить обзор по средствам R откройте сайт, там имеются тематические подборки пакетов. 

6. Не могу сравнить. Но есть "байт-код". Но дело в другом. Программа на R, которая содержит несколько тысяч строк кода - это экзотика. Обычная программа на R- это обращения к функциям пакетов.  

 
Alexey Volchanskiy:
Надо попробовать перевести на R какую-нибудь из моих программ на Матлабе, сравнить скорость. Если на выходные успею разобраться, сделаю и отпишусь. Матлаб довольно тормознутый, я многие вещи делаю на C# или С++ и подключаю в виде DLL для скорости.

сам R трижды тормознутый. Это интерпретатор. Проблем с отладкой вообще никаких, сначала начал пользоваться отладчиком, а потом выяснилось, что это ни к чему.

Если говорить о скорости R, то здесь несколько соображений.

1. можно перевести в байт-код, но это припарка

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

3. для матричных операция используется библиотека

4. Для матричных операций операторы цикла не нужны

5. Загрузка всех ядер. Стандартно и очень просто везде, где позволяет алгоритм.

Вообще, сравнивать программы просто переписав с языка на язык - это работает, если Ваши знания обоих языков одинаковы. 

 
Alexey Volchanskiy:
Надо попробовать перевести на R какую-нибудь из моих программ на Матлабе, сравнить скорость. Если на выходные успею разобраться, сделаю и отпишусь. Матлаб довольно тормознутый, я многие вещи делаю на C# или С++ и подключаю в виде DLL для скорости.

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

Проверено на собственном опыте: если попробовать перебрать элементы data.frame (это массив, в котором может быть сместь типов данных) в цикле и что-то посчитать на них, то это может быть Экстремально долго. R оооочень медленно делает расчеты на больших массивах, если не пользовать спец.пакеты.

Но всегда есть какая-то библиотека, где нужный мне расчет уже реализован, и я могу вызвать, например, rollapply(x$V1, mean) и посчитать скользящее среднее на всех элементах, вместо утомительно долгого прохода по элементам массива по-обычному.

 
СанСаныч Фоменко:


5. Загрузка всех ядер. Стандартно и очень просто везде, где позволяет алгоритм.


СанСаныч, не могли бы это пояснить? Мы щупали параллелизм в R и четко пришли к выводу, что грузит он Одно ядро (выглядит это как 25% загрузки на всех 4 ядрах), если иное не предусмотрено в спец.пакете.
 
СанСаныч Фоменко:

сам R трижды тормознутый...


Тогда какова же сфера применения данного программного обеспечения? Для анализа эффективного ассортимента для бутика торгующего китайским ширпотребом? 
 
СанСаныч Фоменко:

... Основная мощь R это пакеты (свыше 7000 тысяч, содержащие около 120 000 функций)...

А сколько пакетов и функций необходимо и достаточно для получения стабильного профита?

Какой софт будем осваивать дальше, если R не потянет?

 
Alexey Burnakov:
СанСаныч, не могли бы это пояснить? Мы щупали параллелизм в R и четко пришли к выводу, что грузит он Одно ядро (выглядит это как 25% загрузки на всех 4 ядрах), если иное не предусмотрено в спец.пакете.
Параллельные вычисления очень развитая штука, имеет кучу публикаций, например аттач.
Файлы:
parallel.zip  387 kb
 
Dmitry Fedoseev:

Тогда какова же сфера применения данного программного обеспечения? Для анализа эффективного ассортимента для бутика торгующего китайским ширпотребом? 

Прошу Вас прочесть мой пост целиком.

Если добавить.

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

Простейший пример.

Пересылка: А=В

Если А и В  скаляры, то скорее всего код на МКЛ будет работать быстрее.

Но в R не бывает скаляров: А и В как минимум векторы. В МКЛ это циклы, в R это записывается без всяких циклов и реализовано в рамках пакета, на сегодня матричных вычислений, который по эффективности является топовым. А если сравнивать R и МКЛ по матричным вычислениям, то R будет принципиально эффективнее.

Это общий принцип R - использовать куски готового эффективного кода, который был написан не на R - обычно на С, если не имелось готовых специализированных библиотек.

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

 
Event:

А сколько пакетов и функций необходимо и достаточно для получения стабильного профита?

Какой софт будем осваивать дальше, если R не потянет?

Для нужд отдельного трейдера мы имеем избыточный софт.

На сегодня R - это топовый софт в области статистики в широком понимании. Например, методы машинного обучения, которые традиционно относили к искусственному интеллекту, широчайше представлены в R.

Есть еще один нюанс.

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

К этому следует добавить, что все, что связано с R - это мировая тусовка. Размещение пакета в хранилищах R делает автора пакета в рамках R мировой знаменитостью. R - бесплатная система с открытым кодом без ограничений на использование. Именно это свойство R позволяет Rзахватить мировой лидерство у предыдущих платных лидеров - SAS, SPSS, ну еще путается язык питон.

Не даром же примерно год назад майкрософт залезла в R, приобретя платный вариант R - революшен аналитикс, в собственность и сейчас активно продвигает.  

 
СанСаныч Фоменко:
Параллельные вычисления очень развитая штука, имеет кучу публикаций, например аттач.
Гранд мерси.
Причина обращения: