MetaTrader 5 R User Group - как использовать R в Метатрейдере - страница 8

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
СанСаныч Фоменко
7353
СанСаныч Фоменко  
Renat Fatkhullin:

Еще материалы по обучению в R.

Забиваем на YouTube "Борис Демешев" получаем подборку лекций преподавателя ВШЭ по  применению R в статистики и МО.


Например, Запуск R в первый раз

или

Основы эконометрики в R.

Большое число лекций.


MetaQuotes
Админ
26773
Renat Fatkhullin  

Запуск R в первый раз. Консольный режим в R

  • Запускаем R и Rstudio в первый раз
  • Консольный или диалоговый режим работы
  • Калькулятор в R. Факториал
  • Как Создать переменные в R
  • Как создать вектор чисел в R Вектор последовательных чисел (последовательность)



Написание первого скрипта в R

При работе со скриптами в R в отличие от консольного режима команда не исполняется сразу при нажатии кнопки Enter. Для запуска команды нужно нажать комбинацию клавиш Ctrl + Enter под Windows или cmd + Enter под Mac.

  • Работа в режиме скрипта
  • Сохраняем скрипт для дальнейшего использования. Выбираем кодировку (UTF-8)



Как найти нужную функцию в R

В существует множество дополнительных расширений и дополнений (пакеты). Для их установки нужно подключение у интернету.

  • Tools - Install Packages
  • CRAN
  • dplyr, ggplot2, GGally, psych
  • неофициальные репозитории, GitHub
  • devtools
  • Как узнать какой пакет R нужен для решения задачи
  • Загрузка пакетов в R
  • Справка по командам в R
  • Специальный поисковик по R rseek.org
  • stackexchange.com
  • stackoverflow.com



Первый анализ набора данных в R

  • Загрузка нужных пакетов
  • Просмотр встроенных в R наборов данных. Набор cars
  • Команда glimpse. Просмотр данных. Начало и конец таблички (head и tail)
  • Описательные статистики в R - функция describe
  • трансформируем данные. команда mutate
  • Строим график распределения переменной в R



МНК в R. Пример с машинами

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

Это выполняется в R одной командой, то есть мы так и напишем, что наша модель равняется lm, lm – это специальная команда для метода наименьших квадратов, «linear model», данные мы возьмем из набора данных и дальше надо написать формулу зависимости.

У R, у команды lm, точнее, есть свой специальный формат описания моделей. Зависимую переменную пишут сначала, то есть в данном случае зависимая переменная dist, длина тормозного пути, после этого пишут значок тильды (~), после этого через плюс надо написать все объясняющие переменные, все регрессоры.



Работа со случайными величинами в R

В этом видео ответим на следующие вопросы: Как в R генерировать случайные величины, как считать вероятности, как зная вероятность, находить точку, которая соответствует данной вероятности, квантили распределения. Поехали, задача один: «как генерить генерировать случайные величины».

Генерируем случайные величины. Допустим, мы хотим сгенерировать 100 нормально распределенных случайных величин. То есть наша задача сгенерировать x_1 ..., x_{100}, давайте лучше z напишем, чтобы не путать с регрессорами. z_2, ..., z_{100}, так, чтобы каждая из z была нормальна с математическим ожиданием, скажем, 5 и дисперсией, скажем, 9.

Это сделать очень просто. Мы создаем вектор z. Любая генерация случайных величин, там много разных распределений бывает, да, начинается с буквы r — сокращение от слова random. Нормальные случайные величины генерятся командой rnorm, а какое-нибудь другое распределение генерится r и какое-нибудь другое сокращение.



Проверка гипотез о коэффициентах в R

Перейдём к оценке модели множественной регрессии и проверке гипотез о коэффициентах, и построению доверительных интервалов в R. Множественная регрессия. Проверка гипотез.



Стандартизированные коэффициенты и эксперимент с ложно значимыми регрессорами

Мы говорили о том, что коэффициенты бывают значимыми, но несущественными, и существенными, но не значимыми.

Один из способов почувствовать существенный коэффициент или нет, — это посчитать стандартизированные коэффициенты β с крышкой, то есть привести все объясняющие переменные и объясняемую переменную к неким универсальным единицам измерения, чтобы они были сравнимы, а именно: вычесть из каждой переменной её среднее и поделит на оценённое стандартное отклонение.

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



Как загрузить и сохранить данные в R

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

Соответственно, давайте сначала начнём с того, как сохранить результаты нашего исследования. Во-первых, в R есть такое понятие как рабочая папка, то есть папка, к которой R будет обращаться, в которой он будет сохранять файлы или из которой он будет читать файлы по умолчанию.

Соответственно, можно установить эту папку, выбрав Session, Set Working Directory, и, соответственно, либо можно её просто выбрать руками, Choose Directory, либо выбрать такую опцию, например, To Source File Location, то есть в ту же папку, где хранится файл R, с которым вы работаете.

Cохранение результатов работы, загрузка данных из текстового файла или файла Excel.



Дополнительные материалы:

Vladimir Perervenko
4948
Vladimir Perervenko  

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

Спасибо.

СанСаныч Фоменко
7353
СанСаныч Фоменко  
Vladimir Perervenko:

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

Спасибо.

Там очень большой набор лекций, из которого следуют  очевидные выводы:

1. На роликах НЕ любитель в преподавании, а профессиональный преподаватель, который умеет учить.

2. Этот преподаватель работает на кафедре ведущего ВУЗа страны, а значит R используется на кафедре и в ВУЗе на смежных кафедрах, а значит там много таких людей.

3. Лекции НЕ учат программированию на R - лекции учат эконометрике, положения которой излагаются на R! Еще 10 лет назад, я как бывший доцент, выполняющий решения кафедры, использовал для этого в основном Эксель и EViews. И это было правилом, про R речи не было.

В системе подготовки кадров уже в нашей стране произошли радикальные изменения.

Vladimir Perervenko
4948
Vladimir Perervenko  
СанСаныч Фоменко:

Там очень большой набор лекций, из которого следуют  очевидные выводы:

1. На роликах НЕ любитель в преподавании, а профессиональный преподаватель, который умеет учить.

2. Это преподаватель работает на кафедре ведущего ВУЗа страны, а значит R используется на кафедре, а значит там много таких людей.

3. Лекции НЕ учат программированию на R - лекции учат эконометрике, положения которой излагаются на R! Еще 10 лет назад, я как бывший доцент, выполняющий решения кафедры, использовал для этого в основном Эксель и EViews. И это было правилом, про R речи не было.

В системе подготовки кадров уже в нашей стране произошли радикальные изменения.

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

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

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

Удачи

Vladimir Perervenko
4948
Vladimir Perervenko  

От "R или Python"  к  "R и Python"

В интернете да и у нас на форуме велись длительные споры, какой язык лучше R или Python? Однако в последнее время все большее количество аналитиков приходят к мнению, что вместо противопоставления двух языков нужно использовать оба. Каждый из этих языков имеет свои сильные и слабые стороны, нужно использовать лучшее из обеих. Ниже совсем свободный пересказ статьи.

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

Python

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

  • объектно-ориентированный язык
  • универсальный
  • имеет множество расширений и невероятную поддержку сообщества
  • простой и легкий в изучении
  • такие пакеты как pandas, numpy и scikit-learn делают Python отличным выбором для машинного обучения
  • однако Python не имеет специализированных пакетов для статистических вычислений, в отличии от R

R

Первый релиз языка вышел в 1995 году и с тех пор стал де факто стандартным языком для науки о данных. Состоит из пакетов для применения во многих областях науки о данных. Приведу только перечень задач которые решаются пакетами R:

Topics

  • Bayesian - Bayesian Inference
  • ChemPhys - Chemometrics and Computational Physics
  • ClinicalTrials - Clinical Trial Design, Monitoring, and Analysis
  • Cluster - Cluster Analysis & Finite Mixture Models
  • Databases - Databases with R
  • DifferentialEquations - Differential Equations
  • Distributions - Probability Distributions
  • Econometrics - Econometrics
  • Environmetrics - Analysis of Ecological and Environmental Data
  • ExperimentalDesign - Design of Experiments (DoE) & Analysis of Experimental Data
  • ExtremeValue - Extreme Value Analysis
  • Finance - Empirical Finance
  • FunctionalData - Functional Data Analysis
  • Genetics - Statistical Genetics
  • Graphics - Graphic Displays & Dynamic Graphics & Graphic Devices & Visualization
  • HighPerformanceComputing - High-Performance and Parallel Computing with R
  • Hydrology - Hydrological Data and Modeling
  • MachineLearning - Machine Learning & Statistical Learning
  • MedicalImaging - Medical Image Analysis
  • MetaAnalysis - Meta-Analysis
  • MissingData - Missing Data
  • ModelDeployment - Model Deployment with R
  • Multivariate - Multivariate Statistics
  • NaturalLanguageProcessing - Natural Language Processing
  • NumericalMathematics - Numerical Mathematics
  • OfficialStatistics - Official Statistics & Survey Methodology
  • Optimization - Optimization and Mathematical Programming
  • Pharmacokinetics - Analysis of Pharmacokinetic Data
  • Phylogenetics - Phylogenetics, Especially Comparative Methods
  • Psychometrics - Psychometric Models and Methods
  • ReproducibleResearch - Reproducible Research
  • Robust - Robust Statistical Methods
  • SocialSciences - Statistics for the Social Sciences
  • Spatial - Analysis of Spatial Data
  • SpatioTemporal - Handling and Analyzing Spatio-Temporal Data
  • Survival - Survival Analysis
  • TimeSeries - Time Series Analysis
  • WebTechnologies - Web Technologies and Services
  • gR - gRaphical Models in R

Поставляется с отличными библиотеками визуализации ( ggplot2, Shiny ). Возможность автономного анализа ( Rstudio). R не самый быстрый язык и иногда съедает много памяти при работе с большими данными.

Это беглый и совсем поверхностный взгляд на два языка. Почему бы не использовать совместно Python и  R?   


From ‘R vs Python’ to ‘R and Python’
From ‘R vs Python’ to ‘R and Python’
  • 2019.03.07
  • Parul Pandey
  • towardsdatascience.com
Choosing Programming language based on your needs rather than popularity.
Vladimir Perervenko
4948
Vladimir Perervenko  
Существуют два подхода с помощью которых мы можем использовать R  и Python  бок о бок в одном проекте:

R в Python

PipeR  - предоставляет простой способ доступа к R из Python через каналы . PypeR также включен в индекс пакетов Python, который обеспечивает более удобный способ установки. PypeR особенно полезен, когда нет необходимости в частых интерактивных передачах данных между Python и R. Запустив R через pipe, программа Python получает гибкость в управлении подпроцессами, управлении памятью и переносимостью на популярных платформах операционной системы, включая Windows, GNU Linux и Mac OS

pyRserve - использует Rserve в качестве шлюза подключения RPC. Через такое соединение переменные могут быть установлены в R из Python, а также R-функции могут вызываться удаленно. R-объекты представлены как экземпляры классов, реализованных в Python, с R-функциями в качестве методов, привязанных к этим объектам, в ряде случаев.

rpy2  - выполняет встроенный R процесс в Python. Он создает платформу, которая может преобразовывать объекты Python в объекты R, передавать их в функции R и преобразовывать выходные данные R обратно в объекты Python. rpy2 используется чаще, так как он активно развивается.

Python в R

rJython - этот пакет реализует интерфейс к Python через Jython. Он предназначен для других пакетов, чтобы иметь возможность вставлять код python вместе с R.

rPython - снова является пакетом, позволяющим R вызывать Python. Он позволяет запускать код Python, выполнять вызовы функций, назначать и извлекать переменные из него (нет в репозитории для R 3.5.2).

SnakeCharmR - это современная переработанная версия rPython. Это rPython, который использует "jsonlite" и имеет много улучшений по сравнению с rPython. (нет в репозитории для R 3.5.2)

PythonInR - делает доступ к Python из R очень легким, предоставляя функции для взаимодействия с Python изнутри R.

reticulate - пакет предоставляет полный набор инструментов для взаимодействия между Python и R. Из всех вышеперечисленных альтернатив, этот наиболее широко используется, тем более, что он активно разрабатывается Rstudio. Reticulate встраивает сеанс Python в сеанс R, обеспечивая бесшовную, высокопроизводительную совместимость. Пакет позволяет ретикулировать код Python в R, создавая новую породу проекта, который объединяет два языка.

Вывод
И R, и Python являются достаточно надежными языками, и одного из них на самом деле достаточно для выполнения задачи анализа данных. Тем не менее, есть определенно некоторые высокие и низкие точки для обоих из них, и если мы могли бы использовать сильные стороны обоих, мы могли бы в конечном итоге сделать гораздо лучшую работу. В любом случае, знание того и другого сделает нас более гибкими, тем самым увеличивая наши шансы на работу в различных средах.

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

Удачи





Mqlstudent
100
Mqlstudent  

Добрый день!

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


Vladimir Perervenko
4948
Vladimir Perervenko  
Mqlstudent:

Добрый день!

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


Вы неправильно строите предложение. Нужно: "Решил поделиться ссылкой на видео, где рассматриваются принципиальные отличия возможностей R и Python в практическом применении." 

Не нужно заводить дискуссию по сравнению языков. Это видео лишнее. 

Принципиальных отличий, которые нужно помнить, всего два: в R отсчет векторов/массивов начинается с 1, в Python c 0; в R массивы colmajor, в Python - rowmajor. И все это учтено пакетом reticulate. Не нужно заботиться об отличиях.

Не засоряйте ветку пожалуйста

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий