Академический Документы
Профессиональный Документы
Культура Документы
Программирование в среде R
Лекция 1
•• Развитие общества–>
Развитиеобщества –>Развитие IT-технологий–>
РазвитиеIT-технологий –>Рост
Ростэффективности
эффективностилюбой
любой
деятельности
деятельностипри
приее автоматизации–>
ееавтоматизации –>Рост
Ростколичества
количествазадач
задачдля автоматизации–>
дляавтоматизации –>
Спрос
Спросна
наспециалистов
специалистовпо
поавтоматизации
автоматизациирешения
решениязадач
задач
•• Разновидности
Разновидностизадач:
задач:
•• Простые,
Простые,повторяющиеся
повторяющиеся
•• Сложные,
Сложные,ресурсоемкие
ресурсоемкие
•• Локальные
Локальные
•• Распределенные
Распределенные
•• Оптимизационные
Оптимизационные
•• Решаемые
Решаемыеввреальном
реальномвремени
времени
•• ……
•• ВВзависимости
зависимостиот
отпостановки,
постановки,от
отособенностей
особенностейзадачи
задачидля
дляее
еерешения
решениятребуются
требуются
различные
различныеинструменты
инструменты--Средства
Средстваавтоматизации
автоматизации(компьютерные
(компьютерныепрограммы)
программы)
•• Если
Еслиготового
готовогосредства
средстваавтоматизации
автоматизациинет,
нет,используют
используютязыки
языкипрограммирования
программированиядля
для
создания
созданиянеобходимых
необходимыхпрограмм
программ
•• Т.о.,
Т.о.,любой
любойязык
языкпрограммирования
программирования––всего
всеголишь
лишьинструмент
инструментдля
длярешения
решения
определенных
определенныхзадач
задачсспомощью
помощьюкомпьютера
компьютера
Обзор современных языков программирования 4
Языки
Языкипрограммирования
программирования
Универсальные
Универсальные Специализированные
Специализированные
•• HTML
HTML(HyperText
(HyperTextMarkup
MarkupLanguage)
Language)––разметка
разметкастраниц
страницввинтернете
интернете
•• PHP
PHP(HyperText
(HyperTextPreprocessor)
Preprocessor)––создание
созданиединамических
динамическихweb-сайтов
web-сайтов
•• JavaScript
JavaScript––поддержка
поддержкаинтерактивности
интерактивностиввбраузерах
браузерах
•• Assembler
Assembler––машинные
машинныекоманды
командыЭВМ,
ЭВМ,управление
управлениепроцессором
процессоромвнутри
внутриЭВМ
ЭВМ
•• 1С
1С––программирование
программированиеввпродуктах
продуктах«1С»
«1С»
•• Fortran
Fortran––выполнение
выполнениенаучных
научныхрасчетов
расчетов
•• RR––анализ
анализданных,
данных,расчеты,
расчеты,подготовка
подготовкаотчетов
отчетовииграфиков,
графиков,статистические
статистическиеисследования
исследования
Visual
VisualBasic
Basic––изначально
изначальнопростой
простойязык
языкдля
дляне-программистов
не-программистов
CC––сложный
сложныйязык
языкдля
дляразработки
разработкиоперационных
операционныхсистем,
систем,больших
большихпрограмм,
программ,замена
заменаAssembler
Assembler
C++
C++––развитие
развитиеязыка
языкаССссдобавлением
добавлениемобъектно-ориентированного
объектно-ориентированногоподхода
подхода
Java
Java––упрощение
упрощениеС++,
С++,независимость
независимостьот
отархитектуры
архитектурыкомпьютеров
компьютеров
C#
C#––конкурент
конкурентJava,
Java,скопирован
скопированссJava
Javaфирмой
фирмойMicrosoft,
Microsoft,работает
работаетна
наOS
OSWindows
Windows
Pascal
Pascal––язык
языкдля
дляобучения
обученияпрограммированию
программированию
Python
Python––современный
современныйбыстроразвивающийся
быстроразвивающийсяязык:
язык:web-разработка,
web-разработка,системное
системноеадминистрирование,
администрирование,
прикладное
прикладноеПО,
ПО,игры
игрыиит.д.
т.д.
Решения всегда принимаются на основе анализа данных 6
33уровень
уровень
ЛПР
ЛПР––Лицо,
Лицо,Принимающее
ПринимающееРешение
Решение(начальник,
(начальник, Управленческое
директор,
директор,руководитель,
руководитель,…)
…) решение
Анализ данных,
обзоры, выводы
Анализ данных,
Аналитик,
Аналитик,эксперт,
эксперт, Анализ данных, обзоры, выводы
обзоры, выводы
22уровень
уровень консультант
консультант
Аналитик,
Аналитик,эксперт,
эксперт,
Аналитик,
Аналитик,эксперт,
эксперт, консультант
консультант
консультант
консультант
Данные Данные
Данные Данные
Данные
11уровень
уровень Данные Данные
Данные Данные
Исполнитель
Исполнитель Данные
Исполнитель
Исполнитель
Исполнитель
Исполнитель
Исполнитель
Исполнитель
Исполнитель
Исполнитель
Профессиональный рост: Выпускник ВУЗа –> Исполнитель –> Аналитик –> ЛПР
Типовой алгоритм решения задачи по обработке данных 7
ВВнекоторой
некоторойпредметной
предметнойобласти
областинакоплено
накопленомного
много«сырых»
«сырых»данных
данных
•• Данные
Данныекопятся
копятсяпо
покаждой
каждойоперации,
операции,каждому
каждомудействию
действиюмиллионов
миллионовлюдей
людей
•• Стоимость
Стоимостьполучения
полученияиихранения
храненияданных
данныхпостоянно
постояннодешевеет
дешевеет
•• Данные
Данныесодержат
содержатошибки,
ошибки,пропуски,
пропуски,выбросы,
выбросы,дубликаты
дубликатыиит.д.
т.д.
•• ВВмассивах
массивахданных
данныхскрыты
скрытынекоторые
некоторыеважные
важныезависимости,
зависимости,взаимосвязи
взаимосвязи
Ставится
Ставитсязадача
задачапо
поочистке
очисткеданных
данныхиинахождению
нахождениюзависимостей
зависимостейиивзаимосвязей
взаимосвязей
•• Понимание
Пониманиепредметной
предметнойобласти,
области,главных
главныхиивторостепенных
второстепенныхфакторов
факторов
•• Знание
Знаниеметодов
методовочистки
очисткиданных
данных
•• Владение
Владениеметодами
методамиобработки
обработкиданных,
данных,их
иханализа
анализа
•• Знание
Знаниеалгоритмов
алгоритмовпоиска
поискарешений,
решений,оптимизации
оптимизацииуправленческих
управленческихрешений
решений
•• Модификация
Модификацияалгоритмов
алгоритмовиитиповых
типовыхрешений
решенийпод
подзадачу
задачу
Нужны
Нужныинструментальные
инструментальныесредства
средствадля
дляавтоматизации
автоматизациирешения
решениязадачи
задачи
•• Стандартные
Стандартныерешения:
решения:готовые
готовыепрограммы,
программы,пакеты,
пакеты,сервисы
сервисы
•• Доработка
Доработкастандартных
стандартныхрешений
решенийпод
подпоставленную
поставленнуюзадачу
задачу
•• Разработка
Разработкаинструментального
инструментальногосредства
средствадля
длярешения
решениязадачи
задачи
Практическая
Практическаяреализация
реализацияалгоритмов,
алгоритмов,обработка
обработкаданных
данных
Анализ
Анализполученных
полученныхрезультатов
результатов
Тиражирование
Тиражированиерешения
решения
Влияние данных различной природы на принятие оптимального решения 8
Решения
Решенияформируются
формируютсяЛПР
ЛПРна
наоснове
основеданных
данныхразличной
различнойприроды
природы
Что
Чтоучитывает
учитываетЛПР?
ЛПР?Например:
Например:
•• Объемы
Объемывыпуска
выпускаиипродаж
продаж
•• Цены
Ценыиипредложения
предложенияконкурентов
конкурентов
•• Логистика
Логистикаиисроки
срокидоставки
доставки
•• Надежность
НадежностьПоставщиков
ПоставщиковииКлиентов
Клиентов
•• Качество
Качествоиистоимость
стоимостьсырья
сырья
•• Налоги,
Налоги,кредиты
кредиты
•• Сезонность
Сезонностьпотребления
потребления
•• Текущий
Текущийиипрогнозируемый
прогнозируемыйкурсы
курсывалют
валют
•• Обязательства
Обязательствапопоранее
ранеезаключенным
заключеннымдоговорам
договорамиит.д.
т.д.
Требуется
Требуетсяоптимальное
оптимальноерешение
решение
•• Среди
Средидесятков
десятковиисотен
сотенвариантов
вариантовуправленческих
управленческихрешений
решенийсуществуют
существуютоптимальные
оптимальные
решения
решения
•• Решение
Решениебудет
будеттем
темболее
болееоптимальным,
оптимальным,чем
чембольшее
большееколичество
количествозависимостей
зависимостейиисвязей
связей
между
междувсеми
всемиданными
даннымионо
оноучитывает
учитывает
•• Необходимо
Необходимопрограммное
программноеобеспечение
обеспечение(ПО)
(ПО)для
длявыявления
выявленияиианализа
анализазависимостей
зависимостейии
связей
связеймежду
междуданными
данными
Выбор программного обеспечения (ПО) Пользователем 9
Программное
Программноеобеспечение
обеспечение––
инструмент
инструментдля
длярешения
решениязадач
задач
сспомощью
помощьюкомпьютера
компьютера Стандартное ПО
•• Калькуляторы,
Калькуляторы,электронные
электронныетаблицы
таблицы
Какое
КакоеПО
ПОвыбрать?
выбрать?
? Специализированное ПО
•• Современные
Современныеязыки
языкипрограммирования
программирования
•• Сложные
Сложныепрограммные
программныекомплексы
комплексыии
системы
системы
•• Среда
Среда(язык)
(язык)RR
Решение
Решениефундаментальных
фундаментальныхзадач
задач Решение
Решениеприкладных
прикладныхзадач
задач
Получение
Получениеновых
новыхзнаний
знанийоб
об Вычисления,
Вычисления,выявление
выявлениеиипредставление
представление
окружающем
окружающеммире
мире зависимостей,
зависимостей,анализ,
анализ,оптимизация
оптимизациядеятельности
деятельности
Стандартное ПО для обработки, анализа и расчетов 1
0
Стандартное
Стандартноепрограммное
программноеобеспечение
обеспечение
+ Калькулятор:
Калькулятор:четыре
четыреарифметических
арифметическихдействия,
действия,квадратные
квадратныекорни
корнииистепени,
степени,
логарифмы.
логарифмы.Достаточно
Достаточнодля
дляпростейшей
простейшейобработки
обработкиданных.
данных.
- Недостаток:
Недостаток:сложность
сериями
сложностьработы
сериями(колонками,
работысссериями
(колонками,векторами).
сериямичисел;
векторами).
чисел;обычно
обычноданные
данные идут
идут
Электронные
Электронныетаблицы:
таблицы:наглядность,
наглядность,развитый
развитыйинструментарий
инструментарийдля
дляввода
вводаии
+ преобразования
преобразованияданных
данных——автодополнение,
автодополнение,автокопирование,
автокопирование,
сортировка,
сортировка,наличие
наличиематематических
математическихфункций,
функций,графики
графики
- Недостатки:
Недостатки:
•• Ориентация
Ориентацияна натиповые
типовыезадачи
задачиофисного
офисногоприменения,
применения,недостаточно
недостаточно
инструментов
инструментовдля
длявсестороннего
всестороннегоанализа
анализа
•• Отсутствуют
Отсутствуютметоды
методыдля
дляобработки
обработкимногомерных
многомерныхданных
данных
•• Скрытая
Скрытаяреализация
реализацияалгоритмов
алгоритмовииограничения
ограничения
•• Отсутствие
Отсутствиегибкости
гибкостиввформировании
формированиисложных
сложныхграфиков
графиковииотчетов
отчетов
•• Трудности
Трудностипри
приобработки
обработкиданных
данныхразной
разнойприроды
природы
Примеры:
Примеры:MS
MSExcel,
Excel,Gnumeric,
Gnumeric,OpenOffice.org
OpenOffice.org Calc
Calc
Виды специализированного ПО 11
Специализированное
Специализированное программное
программное
обеспечение
обеспечение
Оконно-кнопочные
Оконно-кнопочныесистемы
системы
Среды
Средыииязыки
языкипрограммирования
программирования
ПО
ПОдля
длярешения
решенияконкретных
конкретныхспециализированных
специализированныхзадач
задач
Специализированное ПО: оконно-кнопочные системы 12
Специализированное
Специализированноепрограммное
программноеобеспечение
обеспечение
Оконно-кнопочные
Оконно-кнопочныесистемы
системы
•• STATISTICA
STATISTICAплатная,
платная,алгоритмы
алгоритмывычислений
вычисленийзакрыты,
закрыты,необходимость
необходимость
писать
писатьмакросы
макросы
•• STADIA
STADIAплатная,
платная,закрытая
закрытая
•• PAST
PASTбесплатная
бесплатная
•• SPSS
SPSSплатная
платная
•• MiniTab
MiniTabплатная
платная
•• StatGraphics
StatGraphicsплатная
платная
+ Достоинства
Достоинства
•• Готовые
Готовыесценарии
сценарииииалгоритмы
алгоритмыобработки
обработкиданных
данных
•• Возможность
Возможностьконструирования
конструированиясвоих
своихсценариев
сценариевобработки
обработкиданных
данных
Недостатки
Недостатки
- •• Отсутствие
Отсутствиегибкости
•• Закрытость
гибкостипри
Закрытостьалгоритмов
приобработке
алгоритмов
обработкеданных
данных
Специализированное ПО: среды и языки программирования
13
Специализированное
Специализированноепрограммное
программноеобеспечение
обеспечение
Среды
Средыииязыки
языкипрограммирования
программирования
Особенности
Особенности
+ •• Использование
Использованиеинтерфейса
команду,
команду,система
интерфейсакомандной
системаотвечает.
команднойстроки:
отвечает.Четкость
строки:Пользователь
Четкостьработы,
Пользовательвводит
работы,минимализм
минимализм
вводит
•• Поддержка
Поддержкаграфического
графическогоинтерфейса:
интерфейса:система
системаменю,
меню,работа
работасснесколькими
несколькими
окнами
окнами
•• Возможность
Возможностьреализации
реализациисложных
сложныхтехнологий
технологийобработки
обработкиданных
данных
•• Полный
Полныйконтроль
контрольнад
надсистемой:
системой:
•• объединение
объединениелюбых
любыхвидов
видованализа
анализа
•• работа
работасо
соскриптами
скриптами
•• интерактивные
интерактивныеграфики
графики
•• вывод
выводввлюбые
любыеграфические
графическиеформаты
форматыиит.д.
т.д.
•• Возможность
Возможностьрасширения
расширениясистемы
системы
•• Модификация
Модификациясамой
самойсистемы
системыввслучае
случаеее
ееоткрытого
открытогокода
кода
•• Прозрачность
Прозрачностьработы
работыалгоритмов
алгоритмов
- ••
••
Требуются
Требуютсянавыки
навыкинаписания
Необходимость
написанияалгоритмов
Необходимостьзнания
знанияязыка
алгоритмов
языкапрограммирования
программирования
•• Знание
Знаниеособенностей
особенностейсреды
средыразработки
разработки
•• Высокий
Высокийпорог
порогвхождения
вхождения
Специализированное ПО: среды и языки программирования 14
Специализированные
Специализированныестатистические
статистическиепрограммы
программы
Среды
Средыииязыки
языкипрограммирования
программирования
SAS
SAS––коммерческая
коммерческаясистема,
система,лидер,
лидер,существует
существуетсс70-х
70-хгодов
годов20
20века
века
Stata,
Stata,SYSTAT
SYSTAT--конкуренты
конкуренты
S-Plus
S-Plus––язык
языкSSиисреда
средадля
длявыполнения
выполнениярасчетов,
расчетов,платная
платная
RR––развитие
развитиеязыка
языкаS,S,появился
появилсявв90-х
90-хгодах.
годах.Два
Дваразработчика:
разработчика:Robert
RobertGentleman
Gentlemanии
Ross
RossIhaka.
Ihaka.
Применяется
Применяетсявововсех
всехобластях,
областях,где
гденужна
нужнаобработка
обработкаданных:
данных:
•• первичный
первичныйанализ
анализ
•• статистический
статистическийанализ
анализ
•• математическое
математическоемоделирование
моделирование
Преимущества
ПреимуществаR:
R:гибкость
гибкостьииоткрытый
открытыйкод,
код,бурное
бурноеразвитие,
развитие,поддержка
поддержка
независимых
независимыхразработчиков
разработчиковвововсем
всеммире
мире(создают
(создаютпакеты)
пакеты)
Среда
СредаRRна
насегодня
сегодня––фактический
фактическийстандарт
стандартввсообществе
сообществеученых
ученыхиианалитиков
аналитиковво
во
всех
всехобластях
областяхчеловеческой
человеческойдеятельности,
деятельности,ввтом
томчисле
числеииввэкономике
экономике
Возможности языка R 15
RRдля
длярешения
решенияфундаментальных
фундаментальныхзадач
задач RRдля
длярешения
решенияприкладных
прикладныхзадач
задач
Получение
Получениеновых
новыхзнаний
знаний Вычисления,
Вычисления,анализ,
анализ,представление
представление
•• Выявление
Выявлениеииисследование
исследование •• Сложные
Сложныестатистические
статистическиерасчеты
расчеты
зависимостей
зависимостей •• Проверка,
Проверка,структурирование
структурирование
•• Изучение
Изучениезакономерностей
закономерностей информации
информации
•• Построение
Построениемоделей
моделейповедения
поведения •• Анализ
Анализданных
данныхразличной
различной
процессов
процессовиисистем
систем природы
природы
•• Проверка
Проверкагипотез
гипотез •• Выявление
Выявлениеиипредставление
представление
зависимостей
зависимостей
•• Прогнозирование
Прогнозирование
•• Поддержка
Поддержкапринятия
принятиярешений
решений
•• Оценка
Оценкаиианализ
анализсостояния
состояния
объектов,
объектов,систем,
систем,процессов
процессов
Повышение
Повышениеэффективности
эффективностидеятельности
деятельностиввразличных
различныхобластях
областях
Определение и особенности языка R 16
Определение
Определение
RR--язык
языкпрограммирования
программированиядля
длястатистической
статистическойобработки
обработкиданных
данныхииработы
работыссграфикой,
графикой,аа
также
такжесвободная
свободнаяпрограммная среда вычислений
программная среда вычисленийссоткрытым
открытымисходным
исходнымкодом
кодом
Особенности
Особенности
•• Бесплатность
Бесплатность
Официальное
Официальноесообщество
сообщество––TheTheComprehensive
ComprehensiveRRArchive
ArchiveNetwork
Network(CRAN)
(CRAN)
Официальный
Официальныйсайт
сайт––https://cran.r-project.org/
https://cran.r-project.org/++сотни
сотнизеркал
зеркалпо
повсему
всемумиру
миру
•• Кроссплатформенность:
Кроссплатформенность:возможность
возможностьисходному
исходномукоду
кодубыть
бытьзапущенным
запущеннымииотработать
отработатьсс
одинаковым
одинаковымпредсказуемым
предсказуемымрезультатом
результатомна
накомпьютерах
компьютерахссразными
разнымиОСОС
•• R доступен
R доступендля
длявсех
всехосновных
основныхоперационных
операционныхсистем:
систем:FreeBSD,
FreeBSD,Solaris,
Solaris,Unix,
Unix,Linux,
Linux,
Microsoft
MicrosoftWindows,
Windows,Mac
MacOS
OSX,
X,см.
см.https://cran.r-project.org/
https://cran.r-project.org/
•• Открытый
Открытыйисходный
исходныйкод.код.RR––свободное
свободноепрограммное
программноеобеспечение
обеспечение
Доступен
Доступенисходный
исходныйкод кодкак
каксамого
самогоязыка
языкаR,
R,так
такиивсех
всехалгоритмов,
алгоритмов,функций
функцийна
наRR
https://cran.r-project.org/
https://cran.r-project.org/
•• Постоянное
Постоянноеразвитие
развитиеязыка
языка
Периодически
Периодическивыходят
выходятновые
новыеверсии,
версии,исправляются
исправляютсяошибки,
ошибки,появляются
появляютсяновые
новые
функции
функцииhttps://cran.r-project.org/
https://cran.r-project.org/
•• Постоянное
Постоянноерасширение
расширениевозможностей
возможностейязыка
языка
Сотни
Сотнитысяч
тысячразработчиков
разработчиковииученых
ученыхсоздают
создаютпакеты
пакетынанаRRна
навсе
всеслучаи
случаижизни
жизниии
выкладывают
выкладываютихихввобщий
общийдоступ
доступhttps://cran.r-project.org/
https://cran.r-project.org/
Особенности языка R 17
Особенности
Особенности
•• Интерфейс
Интерфейскомандной
команднойстроки
строки
Изначально
Изначальновсе
всекоманды
командыииоператоры
операторынабираются
набираютсявручную,
вручную,вводятся
вводятсяввконсоль.
консоль.
Пользователь
Пользовательперед
передвводом
вводомкаждой
каждойкоманды
командыпонимает,
понимает,зачем
зачемононэто
этоделает.
делает.
•• Графический
Графическийинтерфейс
интерфейсПользователя
Пользователя
RCommander,
RCommander,RKWard,
RKWard,RStudio,
RStudio,Weka,
Weka,Rapid
RapidMiner,
Miner,KNIME
KNIMEиидр.
др.
•• Режим
Режиминтерпретатора
интерпретатора
Код
КодRRвыполняется
выполняетсяпоследовательно,
последовательно,строчка
строчказа
застрочкой
строчкой––так,
так,как
какнаписал
написал
программист
программист
•• Компиляция
Компиляцияввбайт-код
байт-код
ВВпоследних
последнихверсиях
версияхRRпоставляется
поставляетсякомпилятор
компиляторбайт-кода
байт-кодаииJIT-компилятор
JIT-компилятор
•• Объектно-ориентированный
Объектно-ориентированныйподход
подход
Любая
Любаяпеременная
переменнаяявляется
являетсяобъектом.
объектом.Объект
Объектможет
можетсам
самманипулировать
манипулироватьсо
со
своими
своимиданными
данными
Порядок выполнения программ на компьютере. Кроссплатформенность 18
Виртуальная машина
Программа
Программа
Компьютер,
Компьютер,
телефон,
телефон,часы,
часы,
R-программы холодильник…
холодильник…
Программа
Нативная прикладная
программа
Режим
Режиминтерпретатора
интерпретатора
Интерфейс
Интерфейскомандной
команднойстроки
строки
Интерфейс командной строки. (англ. Command line interface, CLI) — способ общения
Пользователя с программой, при котором используется только текстовый интерфейс для
передачи команд программе и для просмотра результатов работы программы.
Также используется синоним для обозначения этого режима – «работа с консолью».
ПО
Платное
Платное
Бесплатное
Бесплатное(free
(freesoftware)
software)
•• Разработчик
Разработчикосуществляет
осуществляет
поддержку:
поддержку:консультации
консультацииии •• Никаких
Никакихобязательств
обязательствразработчика
разработчика
обучение
обучение •• Возможные
Возможныеошибки
ошибкине неисправляются
исправляются
•• Исправление
Исправлениеошибок
ошибок •• Развитие
РазвитиеПОПОне
негарантируется
гарантируется
•• Периодическое
Периодическоеобновление
обновлениеПОПО •• Поддержки
Поддержкинетнет
•• Выход
Выходновых
новыхверсий
версий •• ПО
ПОпоставляется
поставляется«как
«какесть»
есть»
•• Развитие
Развитиефункционала
функционала
•• Учет
Учетпожеланий
пожеланийпользователей
пользователей
Условно-бесплатное
Условно-бесплатное
•• Ограничение
Ограничениепо
повремени
временииспользования
использования
•• Ограничение
Ограничениепо
поколичеству
количествузапусков
запусков
•• Ограничение
Ограничениепо
пофункционалу
функционалу
•• Платная
Платнаяподдержка
поддержка
•• Платная
Платнаянастройка
настройка
•• Наличие
Наличиенавязчивой
навязчивойрекламы
рекламы
•• ......
Свободное и открытое программное обеспечение 25
Определение
Определение
Свободное
Свободноепрограммное
программноеобеспечение
обеспечение(free
(freesoftware,
software,software
softwarelibre,
libre,libre
libresoftware)
software)—
—
это
этоПО,
ПО,Пользователи
Пользователикоторого
которогоимеют
имеютследующие
следующиеправа
права(четыре
(четыресвободы):
свободы):
1.
1. Программу
Программуможно
можно использовать
использоватьдля
длялюбых
любыхцелей
целей
2.
2. Можно
Можноизучать
изучатьработу
работупрограммы
программыииадаптировать
адаптироватьеё
еёдля
длясвоих
своихцелей
целей
3.
3. Можно
Можнораспространять
распространятькопии
копиипрограммы
программы
4.
4. Программу
Программуможно
можноулучшать
улучшатьиипубликовать
публиковатьсвою
своюулучшенную
улучшеннуюверсию
версию
Для
Дляреализации
реализации22ии44свобод
свободнеобходима
необходимадоступность
доступностьисходного
исходноготекста
текстапрограммы
программыии
возможность
возможностьвнесения
внесенияввнего
негомодификаций
модификацийииисправлений
исправлений
Если
Если на
на ПО
ПО есть
есть исключительные
исключительные права,
права, то
то свободы
свободы объявляются
объявляются при
при помощи
помощи
свободных
свободныхлицензий
лицензий(GNU
(GNUGeneral
GeneralPublic
PublicLicense)
License)
Определение
Определение
Открытое
Открытоепрограммное
программноеобеспечение
обеспечение(open-source
(open-sourcesoftware)—
software)—программное
программноеобеспечение
обеспечение
ссоткрытым
открытымисходным
исходнымкодом.
кодом.Код
Коддоступен
доступендля
дляпросмотра,
просмотра,изучения
изученияииизменения.
изменения.
Открытое
ОткрытоеПО
ПО––ключевой
ключевойпризнак
признакСвободного
СвободногоПО.
ПО.
Проприетарное программное обеспечение 26
Определение
Определение
Проприетарное
Проприетарноепрограммное
программноеобеспечение,
обеспечение,
несвободное
несвободноепрограммное
программноеобеспечение
обеспечение
(proprietary
(proprietarysoftware)—
software)—программное
программноеобеспечение,
обеспечение,являющееся
являющеесячастной
частной
собственностью
собственностьюавторов
авторовили
илиправообладателей
правообладателейиине
неудовлетворяющее
удовлетворяющеекритериям
критериям
свободного
свободногоПО.ПО.
Правообладатель
Правообладательпроприетарного
проприетарногоПО
ПОсохраняет
сохраняетза
засобой
собоймонополию
монополиюна
на
•• его
егоиспользование
использование
•• тиражирование
тиражирование
•• модификацию
модификацию
Поддержка Пользователей ПО 27
Проприетарное
ПроприетарноеПО
ПО
Собственник
СобственникПО
ПОможет
можетпредоставлять
предоставлятьнекоторые
некоторыегарантии
гарантиииисервисы
сервисы
•• Служба
Службаконтроля
контролякачества
качестваПО
ПО
•• Подробная
Подробнаядокументация
документация
•• Служба
Службаподдержки
поддержки
•• Консультации
Консультациипопотелефону,
телефону,почте,
почте,ответы
ответына
нафорумах
форумах
•• Обновления,
Обновления,исправление
исправлениеошибок
ошибок
•• Развитие
Развитиепрограммы,
программы,выход
выходновых
новыхверсий
версий
Свободное
СвободноеПО
ПО
Программа
Программапоставляется
поставляется«как
«какесть»
есть»
•• Автор
Авторне
ненесет
несетникаких
никакихобязательств
обязательствперед
передПользователем:
Пользователем:
не
необязан
обязанобъяснять,
объяснять,как
какработает
работаетпрограмма,
программа,
не
необязан
обязанотвечать
отвечатьна
навопросы
вопросы
•• Пользователь
Пользовательработает
работаетсспрограммой
программойна
насвой
свойстрах
страхиириск
риск
Программирование в среде R
Лекция 2
Векторы. Контейнеры.
Управляющие конструкции языка.
Получение Представление
Обработка данных
исходных данных результатов
Организация доступа к
данным: Управляющие
• Множество форматов конструкции языка
• Различные источники • Отчеты
(условия, циклы):
• Ошибки, выбросы, NA • Таблицы
• Формулы
• Сбои • Графики
• Функции
• Дублирование и т.д. • Диаграммы
• Алгоритмы
• Модели
Библиотеки
• Параметры
• Коэффициенты и
т.д.
Использование данных в программе
Функции анализа и
• Хранение данных в программе:
представления
контейнеры, специальные структуры
данных
• Обработка данных: специальные функции
Таблицы
Информация регистрируется и сохраняется как последовательность
однотипных данных
Деревья
Информация задается как множество узлов и связей между ними
Специальные Специальные
Пообработки
каким признакам анализа
функции функции
Массив (array)
Матрица (matrix)
Вектор (vector)
Таблица данных
(data frame)
Список
(list)
Другие списки
Объект Матрица (matrix)
m1 <- cbind(a,b,c) (сolum bind – связывать столбцы) Создаем матрицу из различных векторов
m2 <- rbind(a,b,c) (row bind – связывать строки)
t(m) – транспонирование матрицы (transpose)
m3 <- matrix(вектор, число_строк, число_столбцов) Создаем матрицу из одного вектора
Результат
Объект Список (list)
Таблицы данных
Список позволяет хранить разнородную информацию в одном
Другие списки
объекте.
Как правило, результаты наблюдений, экспериментов хранятся в
объектах-списках, которые содержат текстовые значения, числа,
факторы и т.д.
Работа со списком
Списки создаются одноименной функцией list()
Одномерный анализ
Определение
Разветвляющийся алгоритм – алгоритм, в котором в зависимости от выполнения
или не выполнения некоторого условия совершается выбор:
• выполняется последовательность действий № 1
• выполняется последовательность действий № 2
Синтаксис ветвления на языке R
TRUE or FALSE
TRUE
TRUE or FALSE
TRUE
FALSE
Вложенные конструкции if … else
Пример ifelse()
Циклы
Цикл - управляющая конструкция, предназначенная для выполнения
многократного исполнения набора инструкций
Оператор break может использоваться внутри цикла (repeat, for, while), чтобы
остановить итерации и передать управление операторам, выполняющимся после
цикла
В ситуации с вложенными циклами, где есть цикл внутри другого цикла, по
оператору break выполняется выход из внутреннего цикла во внешний
x <- 1:5
for (val in x) {
if (val == 3){
break
}
print(val)
}
Циклы в R. Алгоритм работы break
Циклы в R. Использование оператора next
x <- 1:5
for (val in x) {
if (val == 3){
next
}
print(val)
}
Циклы в R. Цикл repeat
repeat {
statement
}
Дополнительная гибкость алгоритма – выбор из нескольких значений
• Во многих языках программирования предусмотрены конструкции выбора из
нескольких значений
• Выбор осуществляется в зависимости от значения целочисленного выражения
• Такие конструкции в языках реализуются с помощью ключевых слов case, switch
e<- '6qTR'
w<- switch(e, '6qTR' = '55-65-12.4', '6qTR' = 2:13, 't' = -7.7, 'T'=T)
e<- ‘T'
w<- switch(e, '6qTR' = '55-65-12.4', '6qTR' = 2:13, '45-fgx0')
Лукьянов Павел Борисович
профессор департамента Анализа данных, принятия решений
и финансовых технологий
Программирование в среде R
Лекция 3
Сложные задачи :
• Многообразие взаимосвязанных параметров
• Сложность обработки данных
• Алгоритмическая сложность
• Вычислительная сложность
• Сложность поиска и оптимизации решений
• Многообразие видов анализа и т.д.
Требуется
Работа с консолью
• Работа со скриптами
• Пакетная обработка команд
Современные средства разработки
• Ядро R
• Базовые библиотеки
• Транслятор команд
Развитие функционала
Развитие GUI
Клиент-серверная технология
Коллективная работа
GUI – Graphics User Interface
Graphical User Interface для R
RKWard Удобный графический интерфейс к R
R Сommander или Rcmdr https://rkward.kde.org/
RStudio
Современный GUI с реализацией клиент-серверной технологии
https://www.rstudio.com/
RStudio
/https://rstudio.com/products/rstudio/download https://resources.rstudio.com/
Сложные задачи :
• Многообразие взаимосвязанных параметров
• Сложность обработки данных
• Алгоритмическая сложность
• Вычислительная сложность
• Сложность поиска и оптимизации решений
• Многообразие видов анализа и т.д.
Другие области
Базы
данных
Мобильные Распределенные
приложения вычисления
Web-технологии
Шифрование и
безопасность
Работа с
графикой
Рост количества
пакетов
Развитие функционала
Стандартный дистрибутив,
базовые пакеты
Ядро R
Интерпретатор языка
Как вызвать функцию из базового пакета?
Базовые пакеты,
стандартный дистрибутив
В скрипте Программист выполняет
прямой вызов функции из базового пакета
Сложные задачи :
• Многообразие взаимосвязанных параметров
• Сложность обработки данных
• Алгоритмическая сложность
• Вычислительная сложность
• Сложность поиска и оптимизации решений
• Многообразие видов анализа и т.д.
Когда нужна своя функция? • Если часть кода в программе выполняется более одного раза
• Если код решает некоторую частную задачу
• Если в дальнейшем предполагается использовать код повторно
• Как правило, функция объявляется в отдельном скрипте
Как написать
• Программист задает функцию, пишет ее код:
свою функцию?
• придумывает имя, перечисляет параметры функции
• задает правила обработки параметров функции
• определяет результат выполнения функции
• Сначала идет объявление функции, затем ее использование (вызов функции)
• Программист может делать вызовы одной функции в разных программах
Развитие функционала
Стандартный дистрибутив,
Ядро R базовые пакеты
Интерпретатор языка
Порядок выполнения программ с использованием функций
Программа
Компьютер
R-программы
Программа
Нативная прикладная
программа
Оптимизация кода – реализация компиляции: код перед
исполнением обрабатывается компилятором
Операционная система
В этом случае код с описанием функции может быть в любом
месте программы, до или после вызова самой функции
Использование функции Пользователя в программе
....
source(“x.R”)
.... код
код .... ...
... код X(…)
.... функции
код
X(…) ...
... ....
определения код
функции Код Скрипт x.R с вызов X()
вызов X() определением ....
.... функции
Важно Описание X() должно идти Сначала вызывается source(“x.R”), затем идет
раньше вызова X() обращение к функции X()
Почему? Почему?
Создание функции Пользователем
Зачем в программировании нужны свои функции?
Функции используются для логического разбиения кода на более простые части, что
позволяет легко их понимать и развивать
Правила в программировании
• код, который используется более одного раза, надо помещать в отдельную функцию
• код, который не виден полностью на одном экране, надо разбивать на функции
pow(3) # 9
pow(3, 1) # 3
Новые данные,
Оперативная память новая информация
Исходные
данные
Новые данные
Исходные данные
Программа
Обработка данных
Алгоритмы: циклы, проверки, ветвления
Исходные данные -> Обработка данных -> Итоговые данные -> Новая информация -> Новое знание
Лукьянов Павел Борисович
профессор департамента Анализа данных, принятия решений
и финансовых технологий
Программирование в среде R
Лекция 4
Графика в R
Основные
Вспомогательные
Не работают без основных
Связь основных и вспомогательных графических функций
• Шрифт
заголовок, пояснения, разметка,
• Вектор подписи под осями
• Выравнивание (adj)
Расположение чисел, значения по осям
cex =
Параметр Результат применения
type =
"p" (points) отображаем точки
"l" (lines) рисуем линии, проходящие через точки, точки не
отображаются
"b" (both) отображаем точки, рисуем линии между ними
"c" рисуем линии, вместо точек - пробелы
"o" аналог “b”
"h" (high density) рисуем вертикальные линии до точек
"s" (steps) рисуем ступеньки между точками, вариант 1
"S" (steps) рисуем ступеньки между точками, вариант 2
"n" (no) вообще ничего не рисуем
Настройки отображения. Символы для отображения точек на графике
pch =
plot(x,y, pch=15)
plot(20:-5, (20:-5)^2, pch = 17)
lty = , lwd =
Параметр lwd= задает толщину линии
lwd= 2.5 – линия в два с половиной раза толще, чем по умолчанию
plot(x,y, pch=15)
plot(20:-5, (20:-5)^2, pch = 17, lty=5, lwd= 2, type = ‘b’)
Настройки отображения. Параметры задания цвета элементов
col.* = , fg = , bg =
Параметр Результат применения
fg Цвет графика
bg Цвет фона
ГРАФИК
topleft top topright
left
ГРАФИК center right
ГРАФИК •
•
Можно сместить панель от края к центру
диаграммы
Параметр inset = 0.1, 0.01, 0.4, …
dev
• В процессе работы программы может быть создано большое
количество графиков и диаграмм
• По умолчанию каждый новый график затирает ранее созданный
• Необходимо иметь доступ ко всем построенным графикам
• Решение:
Создать и открыть новое устройство (device) для вывода
графики, для этого
перед вызовом каждого нового графика использовать
вызов функции dev.new()
Функции для работы с графическими устройствами
Действие Функция
Программирование в среде R
Лекция 5
R и интервальные данные.
Интервальная арифметика
Прогнозы, Планирование
оценки бизнес-деятельности
4 5
Реализация планов:
Коррекция 3 реальные действия,
прогнозов и планов получение результата
2 1
Анализ результатов Учет результатов
Показатель
Значение интересующего показателя может быть любым
• Курс акций внутри некоторого интервала
• Урожайность
• Рыночная цена товара
Макс
• Объем продаж
• Индекс активности
• евро / доллар
• и т.д.
Мин
Дано
Компьютерная фирма разрабатывает и реализует сложные комплексы защиты
корпоративных данных. Есть несколько заказов, есть оценка затрат, известна примерная
цена реализации.
• Себестоимость одного комплекса C = 5 млн. руб
• Планируемый выпуск Q_prod = 10 шт.
• Цена реализации комплекса P = 7 млн. руб / шт.
• Объем реализации Q_sale = 9 шт.
Pr = Выручка – Затраты
Выручка = Цена * Объем реализации
Затраты = Себестоимость * Объем выпуска
Pr = Выручка – Затраты
Выручка = Цена * Объем реализации
Затраты = Себестоимость * Объем выпуска
[Себестоимость]
[Объем выпуска]
[Объем реализации]
[Цена]
Pr_min Pr_max
[Прибыль ]
Возможный вклад неопределенности исходных данных
в неопределенность решения
R_min R_max
[Рентабельность]
Вклад неопределенности исходных данных в неопределенность решения
Формулы интервальной арифметики
Вводится новое понятие - интервал
[a, b] + [c, d] = [ a + c, b + d ]
[a, b] – [c, d] = [ a – d, b – c ]
[a, b] * [c, d] = [ min( a*c, a*d, b*c, b*d), max(a*c, a*d, b*c, b*d) ]
[a, b] / [c, d] = [a, b] * [1/d, 1/c], причем интервал [ c, d] не содержит 0
Свойства операций
[a, b] = [2, 5]
[c, d] = [1, 4]
[a, b] * [c, d] = [ min( a*c, a*d, b*c, b*d), max(a*c, a*d, b*c, b*d) ] =
= [min (2*1, 2*4, 5*1, 5*4), max (2*1, 2*4, 5*1, 5*4)] =
= [min (2, 8, 5, 20), max (2, 8, 5, 20)] = [2, 20]
[a, b] / [c, d] = [a, b] * [1/d, 1/c] = [2, 5] * [1/4, 1/1] = [2, 5] * [1/4, 1] =
= [min (1/2, 2, 5/4, 5), max (1/2, 2, 5/4, 5)] = [1/2, 5]
Примеры расчетов по формулам интервальной арифметики
[a, b] = [-2, 5]
[c, d] = [-1, 4]
[a, b] * [c, d] = [min (–2*(– 1), –2*4, 5*(–1), 5*4), max (–2*(– 1), –2*4, 5*(–1), 5*4)] =
= [min (2, – 8, – 5, 20), max (2, – 8, – 5, 20)] = [– 8, 20]
[a, b] = [2, 5]
[c, d] = [1, 4]
Ширина исходного интервала [a, b] = 5 – 2 = 3
Ширина исходного интервала [c, d] = 4 – 1 = 3
Ширина [a, b] + [c, d] = 9 – 3 = 6
Ширина [a, b] – [c, d] = 4 – (– 2) = 6
Ширина [a, b] * [c, d] = 20 – 2 = 18
Ширина [a, b] / [c, d] = 5 – 1/2 = 4.5
Пример задачи с интервальными данными. Постановка
Дано
Компьютерная фирма разрабатывает и реализует сложные комплексы
защиты корпоративных данных. Есть несколько заказов, есть оценка
затрат, известна примерная цена реализации.
• Себестоимость 1 комплекса C = [5, 6] млн. руб
• Планируемый выпуск Q_prod = [8, 12] шт.
• Цена реализации комплекса P = [7, 10] млн. руб / шт.
• Объем реализации Q_sale = [8, 12] шт.
Pr = Выручка – Затраты
Выручка = Цена * Объем реализации
Затраты = Себестоимость * Объем выпуска
[Выручка] = [7, 10] * [8,12] = [min(56, 84, 80, 120), max(56, 84, 80, 120)]
[Выручка] = [56, 120] млн. руб
[Затраты] = [5, 6] * [8, 12] = [min(40, 48, 60, 72), max(40, 48, 60, 72)]
[Затраты] = [40, 72] млн. руб
[Прибыль] = [56, 120] – [40, 72] = [56 – 72, 120 – 40] = [-16, 80] млн. руб
[R] - ?
Сравнение результатов
Функция Описание
is.interval(x) проверка, может ли переданный вектор x
быть интервалом
as.interval(x) преобразование вектора x в интервал
plus.i (x, y) сложение интервала x с интервалом y
minus.i (x, y) вычитание интервала y из интервала x
mult.i (x,y) умножение интервала x на интервал y
div.i (x,y) деление интервала x на интервал y
Лукьянов Павел Борисович
профессор департамента Анализа данных, принятия решений
и финансовых технологий
Программирование в среде R
Лекция 6
Показатели
Принятие управленческого решения 4
3 уровень
ЛПР – Лицо, Принимающее Управленческое
Решение решение
Аналитика
2 уровень
Анализ того, что
Аналитик, эксперт,
консультант уже произошло
Исполнитель Моделирование
Принятие решений в петле управления бизнесом
Новые бизнес-идеи
Моделирование
Моделирование: лучший и худший сценарии
на языке R
Прогнозы, Планирование
оценки бизнес-деятельности
Инвестор:
Инвестор:
принятие
Инвестор: принятие
• На рынке действуютрешения
акцийрешения
принятие экономические законы
Инвестор: (спроса и предложения)
решения Рынок ценных бумаг характеризуется:
принятие • Постоянное изменение цены актива
решения
• Динамика цены бумаг: (волатильность)
акции может быть описана
Рынок ценных • В изменении цены присутствует случайная
математическими зависимостями
покупка и продажа составляющая
акций инвесторами • Влияние на цену актива поведения и
• Решения о покупке-продаженастроения
Инвестор:
акций
Инвестор:
принимаются
инвесторов (покупка или продажа)
инвестором на основе формализуемых
принятие
решения
принятие
решения
и не
Инвестор:
формализуемых
Инвестор: принятие параметров (человеческий фактор)
Инвестор:
принятие
принятие решения Инвестор: решения
решения
принятие
решения
Цель:
• Получать прибыль от игры на бирже
Задачи:
• Предугадывать поведение цены акции
• Принимать решения о покупке или продаже акций в нужные
периоды времени
Решение
Медвежий ГЭП
3.2. ГЭП – разрыв цены акции между торговыми сессиями
3.3. ГЭП. Разрыв цены при непрерывной торговле
4. Плавный рост или снижение цены акции
Что такое японская свеча на графике
Реальные котировки акций. Представления в виде японских свечей
• Цена акции меняется один раз в день, в течение дня цена постоянна
• Цена акции на текущий день price1(today) зависит от цены акции днем ранее
price1(today-1)
price1(today) [H],
price1(today) [H],
price1(today) [H],
Акции компании А
• Купил дешево -> продал дорого
• Продал дорого -> купил дешево
Акции компании B
• Купил дешево -> продал дорого
• Продал дорого -> купил дешево
Акции компании С
• Купил дешево -> продал дорого
• Продал дорого -> купил дешево
Постановка задачи
Как учитывать
• Осторожность – ничего делать не буду, подожду
• Азарт игрока – что-нибудь куплю, сразу продам, потом что-
параметр
нибудь куплю опять… Сегодня мне tone?
повезет!
• Оптимизм – надо покупать то, что растет
• Пессимизм – нужно продавать то, что падает
• Расчет – мои графики мне говорят покупать (продавать)
• Авось – что-то надо купить и продать, или продать и купить..
• «цвет настроения синий…» - параметр настроения в песне
• …
Данные, используемые для анализа, моделирования, принятия решений
Получение данных
Типы данных в R
Вторичные данные
Числовые данные
R: тип double
Первичные данные: нечисловые данные, порядковые
Нечисловые данные
Категориальные данные
• Примеры
Состояние больного (тяжелое, средней тяжести, легкое недомогание, здоров)
Погода (ясно, облачно, пасмурно, дождь, буря, ураган)
Посещаемость занятий (всегда, часто, средне, редко, никогда)
• Можно ввести отношение порядка (холодно -> прохладно -> тепло -> жарко), но значения
нельзя оценить количественно
• Общая задача: уходить от шкальных данных к интервальным, т.к. для интервальных данных
разработано гораздо больше различных методов обработки данных, качество анализа выше.
Характеристика глубины моря около пляжа – от «Мелко», «Глубоко», «Опасно», «Безопасно»
к точным измерениям глубины
Первичные данные: нечисловые данные, номинальные
Нечисловые данные
Категориальные данные
• Примеры
Цвета: красный, белый, синий, черный
Пол: мужской, женский
Времена года: лето, осень, зима, весна
Дни недели: понедельник, вторник, …
Программирование в среде R
Лекция 7
Характеристики выборки.
Специальные графические функции
Вторичные данные
Числовые данные
R: тип double
Неопределенность будущего как свойство реального мира
Показатель
Значение интересующего показателя может быть любым
• Курс акций внутри некоторого интервала
• Как принимать решения в
Урожайность
• Рыночная цена товара
• Объем продаж условиях
Макс
• Индекс активности
• неопределенности?
евро / доллар
• и т.д.
Как Мин
риски?
Прошлое Текущий момент Будущее
Первичные данные: нечисловые данные, порядковые
Нечисловые данные
Категориальные данные
• Примеры
Состояние больного (тяжелое, средней тяжести, легкое недомогание, здоров)
Погода (ясно, облачно, пасмурно, дождь, буря, ураган)
Посещаемость занятий (всегда, часто, средне, редко, никогда)
• Можно ввести отношение порядка (холодно -> прохладно -> тепло -> жарко), но значения
нельзя оценить количественно
• Общая задача: уходить от шкальных данных к интервальным, т.к. для интервальных данных
разработано гораздо больше различных методов обработки данных, качество анализа выше.
Характеристика глубины моря около пляжа – от «Мелко», «Глубоко», «Опасно», «Безопасно»
к точным измерениям глубины
Первичные данные: нечисловые данные, номинальные
Нечисловые данные
Категориальные данные
• Примеры
Цвета: красный, белый, синий, черный
Пол: мужской, женский
Времена года: лето, осень, зима, весна
Дни недели: понедельник, вторник, …
Постановка задачи
Получена выборка: 2, 14, 5, 7, -3, 7, 11, 6, 0.
Рассчитать следующие показатели: медиану, первый и третий квартили, IQR.
Определить выбросы. Отметить рассчитанные значения на графике boxplot.
1. Получение данных
2. Обработка данных Откуда получить исходные данные?
3. Анализ данных • Наблюдение
• Эксперимент
Поэтому
• исследуют лишь часть объектов (создают выборку)
• по результатам анализа выборки делаются выводы
• полученные выводы переносят на всю ГС
Но можно ли так делать?
• При выполнении определенных условий - МОЖНО
• В разделе математики, занимающемся анализом выборок и условиями применимости выводов на ГС,
разработана теория выборочных исследований. Занимается этим математическая статистика
• Выборка или выборочная совокупность — часть генеральной совокупности элементов, которая
охватывается экспериментом или наблюдением
Что такое правильная выборка?
Характеристики выборки
• Способ формирования: по каким правилам из ГС извлекаются элементы для выборки
• Репрезентативность
• Повторность
• Рандомизация
Повторность
• В выборке должно быть относительно много объектов из ГС
• Повторности должны быть независимы друг от друга. (Телефоны с конвейера должны быть из
разных партий)
Рандомизация
• Каждый объект генеральной совокупности должен иметь равные шансы попасть в выборку
Что такое правильная выборка?
Объем
Выборки можно условно разделить на большие и малые.
В математической статистике используются различные методы анализа данных в зависимости от
объёма выборки.
Выборки объёмом больше 30 элементов относят к большим
2. Случайный выбор 100 деревьев в лесу с целью измерения степени накопления тяжелых металлов
в листьях. Внесение нового порядка в правило выбора деревьев.
Вывод. Задача получения данных не тривиальна. В каких случаях исследованием данных вообще стоит
заниматься?
• Когда результат неочевиден – выявление закономерностей и зависимостей. Звонки пот. клиентам.
• Когда результат кажется очевидным – проверка и подтверждение (опровержение) результата
Характеристики выборки
Выборка
среднее
арифметическое
максимальное
минимальное
значение
значение
медиана
третий квартиль
первый квартиль
Примеры выборок с разными характеристиками
Задание имен значениям выборки
Создание таблицы
Медиана и среднее арифметическое выборки
Общие показатели по таблице
медиана и среднее
отличаются значительно
Свойства медианы
Склад № 1
Склад № 2
Расчет в R: var(вектор)
Характеристики разброса данных: квартили, процентили, IQR
Определение квартиля
Квартили (кварта, четверть) – значения, которые делят отсортированную выборку на четыре группы,
содержащие приблизительно равное количество наблюдений.
Общий объем выборки делится на четыре равные части: 25%, 50%, 75% 100%.
• Первый (нижний) квартиль Q1 отсекает слева 25 % выборки
• Второй (средний) квартиль Q2 отсекает слева 50 % выборки
• Третий (верхний) квартиль Q3 отсекает слева 75 % выборки
Определение процентиля
n-й процентиль - это значение, ниже которого расположено n процентов элементов выборки
Первый процентиль – значение, ниже которого располагается 1 процент элементов выборки
25-й процентиль совпадает с первым квартилем Q1
90-й процентиль – значение, ниже которого расположено 90 процентов всей выборки
Определение IQR
Пример 1. y <- c ( 1, 7, 4, 3)
Поиск Q3
Для нахождения точки пересечения отрезка с координатами [(x = 0,6; y = 11), (x=0,8; y = 16)]
с прямой x=0,75 используем формулу линейной интерполяции
Ответ Q3 = 14.75
Q1 = 8.25
IQR = 6.5
Пример 3
Ответы Q1 = 9.5
Q2 = 19
Q3 = 38
IQR = 28.5
Правильное решение примера 1
Ящик с усами (боксплот) для выборки h Ящик с усами (боксплот) для выборки salary
Обычная ось OY
Логарифмическая ось OY
Варианты размещения боксплотов
Представление данных, имеющих разный масштаб и ед. измерения
Q3 = 4.75
Q1 = 2.5
Min Max
Q1 Q3
Незначительный выброс
Значительный выброс
Внутренние границы выборки – усы у boxplot
Min Max
Q1 Q3
Min Max
Q1 Q3
Значительный
Внутренние границы выборки выброс
L1 L2
• Уточнение зависимостей
История о летающих рыбах
• Новые закономерности и понимания
• Открытия
• Раскрытие преступлений
Принятие решения о покупке или продаже акции. Функция vote()
Функция vote( )
Программирование в среде R
Лекция 8
1. Файлы со скриптами
• библиотека trade.lib.R со всеми функциями
• Основной скрипт trader.R, в нем
генерация данных, графики, торговый алгоритм, расчеты, формирование
итоговой таблицы, комментарии по алгоритму
2. Файлы с графиками
Шесть графиков по торговле акциями с отмеченными точками покупки-
продажи
9
Метод скользящей средней – фильтрация случайных колебаний
Задача – на основании анализа динамики цены принимать решения о покупке или
продаже актива
Суть метода
Метод скользящей средней – один из методов сглаживания и
прогнозирования временных рядов.
Абсолютные значения Y(X) меняются на средние арифметические значения
Y(X), взятые на определенном временном интервале T (Окно Т).
Окно Т скользит: начальные значения Y(X) постепенно убираются,
последующие Y(X) подключаются.
В результате формируется ряд сглаженных значений Z(X) = g(Y, X).
Вид Z(X) позволяет проследить общую тенденцию изменений Y(X)
Примеры сглаживания временных рядов методом скользящей средней
1. Для временного ряда Y1, Y2, ..., YN определяется интервал сглаживания M (M < N)
• Если нужно сгладить мелкие колебания, интервал сглаживания берут
большим
• Если нужно сохранить мелкие колебания, интервал сглаживания уменьшают
2. Для первых M значений временного ряда вычисляется их средняя
арифметическая;
это первое сглаженное значение ряда
3. Затем интервал сглаживания сдвигается на один уровень вправо, вычисление
средней арифметической повторяется и т.д.
Расчетная формула
Программирование в среде R
Лекция 8
СУБД
Данные недоступны Пользователям
Сторонние программы
Пользователи Разработчики ПО
Службы и сервисы
Интерфейс к СУБД. Использование языка запросов
ПРОГРАММА,
ПРИЛОЖЕНИЕ
SQL NoSQL
СУБД
Graph DBMS
Search Engine
Key-value store
Реляционные базы
данных Wide column store
Нереляционные
базы данных
Document store
Использование языка запросов для доступа к СУБД
Драйвер
для соединения с интерфейсом СУБД
Задачи
Данные, хранящиеся в БД
Простой путь
• Каждая строка файла — одна строка таблицы, одна запись (в терминах БД)
• Запись состоит из полей – значений столбцов
• Все поля записи, расположенные в одной строке, выводятся друг за другом
• В качестве разделителя полей (столбцов) используется символ «запятая»
• В качестве разделителя полей (столбцов) может использоваться пробел, символ табуляции,
точка с запятой и т.д.
• Если в полях таблицы содержатся зарезервированные символы (двойная кавычка, запятая,
точка с запятой и т.д.), то эти символы помещают в двойные кавычки.
• Если в значении поля встречаются кавычки, в файле они будут представлены в виде двух
кавычек подряд.
Разделитель
Два способа доступа к данным БД
Разделитель целой и
дробной частей числа
Файлы CSV – активное использование в прикладных программах
Файлы CSV – активное использование в торговых программах
Файлы CSV – получение котировок акций
Файлы CSV – файл котировок
https://www.finam.ru/profile/moex-akcii/sberbank/export/