Что такое предиктивная модель
Предиктивная аналитика: нефтегазовая промышленность, энергетика, далее – везде
Привет, Хабр! Сегодня хотелось бы обсудить такую интересную тему, как предиктивная аналитика. За последние несколько лет предиктивная аналитика стала весьма востребованным направлением в промышленности. Это вполне логично, ведь она дает возможность предсказать выход из строя оборудования или элементов этого оборудования задолго до самой поломки.
Все это тесно связано с устойчивым развитием – одним из определяющим фактором конкурентоспособности компаний, причем не только промышленных. Устойчивость важна для любого бизнеса, будь то добыча и переработка, энергетика или машиностроение. Технологии развиваются и дают возможность компаниям просчитывать риски, планировать ремонты, улучшать логистику. Но как это работает?
Цифровые модели и предиктивная аналитика
Для того, чтобы понимать, о чем идет речь, приведем несколько подробностей о работе системы. Сначала о цифровых моделях.
Статистическая математическая модель – это, если так можно выразиться, «цифровой портрет» оборудования, которое работает правильно. Создается «портрет» на базе данных о функционировании всей системы и отдельных ее компонентов в разных режимов. Разработка такой модели основана на принципе многомерных контрольных карт Хотеллинга. Исходные данные – максимальное, минимальное и медианное значения работы исправного оборудования. На их основе и формируется модель.
Можно сказать, что статистическая модель – эталон, с которым сравниваются данные работающего реального оборудования. При сравнении формируется специальный интегральный показатель, отражающий изменения технического состояния системы в режиме реального времени.
Графическое представление результатов работы статистической модели в виде интегрального критерия состояния
Превышение показателя на определенную величину – индикатор потенциальной поломки. В большинстве цифровых моделей система автоматически выделяет ключевые параметры, влияющие на зарождающийся дефект и ранжирует их по степени влияния. Это облегчает поиск и локализацию неисправности.
Физическая математическая модель. Это уже чисто математическое описание определенного технологического процесса. Описание создается на базе информации о работе идеального оборудования, по его конструкторской документации. Физическая модель применяется в режиме имитационного моделирования, когда технологи рассчитывают параметры процесса в разных узлах оборудования.
Эквивалентная схема технологической установки описывает поведение технической системы с точки зрения базовых физических закономерностей
Результаты расчета – показания виртуальных датчиков, которые генерируются моделью в определенных режимах работы. Они сравниваются с показаниями реальных датчиков. Ну а разница между показаниями используется для предсказания поломки, на ее основе строится индекс деградации, который и отражает изменения в состоянии оборудования. Как и в предыдущем случае, чем выше значение, тем вероятнее выход оборудования из строя.
Физическая модель дает возможность быстро локализовать причину дефекта с добавлением рекомендаций по исправлению ситуации. Физическая модель позволяет моделировать режимы работы оборудования при выходе из строя разных компонентов.
Зачем все это?
В предиктивной аналитике используются как отдельные модели, так и их комплекс в виде гибридной цифровой модели. В России одна из наиболее известных систем предиктивной аналитики и удаленного мониторинга – «Прана».
Корреляционная матрица. Выявление коррелирующих сигналов – первый шаг к созданию статистической модели
Сегодня она используется компаниями энергетической отрасли – от добычи и транспортировки нефти и газа до электроэнергетики. В каждом из секторов есть свои отличия. Так, в энергетике агрегаты работают большую часть времени в стационарных режимах, а вот работа турбин и других агрегатов, используемых в нефтегазовой отрасли, характеризуется крайне большим количеством переходных режимов с быстрыми пусками и остановами, что делает условия их эксплуатации практически экстремальными.
Именно поэтому и были разработаны гибридные модели. Одна из них уже была опробована – это кейс компании «Ротек» и одного из ведущих предприятий газотранспортной отрасли в РФ. Прототип разработан на базе описанных выше двух моделей.
В ходе тестирования оказалось, что статистические модели дают отличную сходимость на стационарных режимах работы. Это означает высокую степень точности прогноза состояния оборудования на долгосрочной перспективе, благодаря чему регистрируются более общие тренды развития дефектов. А вот физические модели показали более высокую степень сходимости в краткосрочной временном интервале (в десятках минут). Методика физического моделирования дает дополнительный инструмент анализа, незаменимый при контроле состояния оборудования, занятого в нефтегазовой и нефтегазотранспортной системах.
Представление результатов физического моделирования в интерфейсе системы для пользователя
Таким образом, гибридная модель позволяет охватить большинство режимов работы, встречающихся на контролируемом оборудовании, в том числе и переходные. Обеспечивая взаимное дополнение друг друга, методы значительно повышают достоверность прогнозирования.
В результате отрасль в целом получает новый эффективный инструмент, который дает возможность избежать повторения технологических аварий, снизить риск ущерба, заранее предупреждая о состоянии того или иного агрегата. Благодаря предиктивной аналитике компании могут существенно расширить горизонт планирования ремонтных работ и всей сопутствующей логистики. Причем энергетика и нефтегазовая промышленность – это только вершина айсберга. В ближайшие годы мы станем свидетелями активного проникновения предиктивной аналитики в другие отрасли.
Предикативная (предиктивная) аналитика
Predictive Analytics
Дальнейшее развитие мирового рынка бизнес-анализа пойдет по пути активного освоения advanced (продвинутой) аналитики, в том числе предикативного (предиктивного) анализа, построения симуляторов и вариативных моделей.
Содержание
Что такое предикативная (предиктивная) аналитика?
Наиболее известный способ использования прогностической аналитики – это применение скоринговых моделей для оценки платежеспособности клиента при выдаче кредитов в банке. Любая скоринговая модель строится на исторических данных, и если в прошлом, какая-либо группа клиентов была уличена в несвоевременном гашении кредитов, а вы по каким-либо характеристикам схожи с этой группой, то скорее всего в выдаче кредитов вам откажут.
Однако это не все области, где применяется предикативная аналитика, ее можно применять для разработки продуктов, для выбора потенциальной аудитории, для выбора следующего продукта, который вы можете предложить клиенту (Next Best Offer) и множестве других.
Родственным по отношению к предикативной аналитике является понятие data mining, так как предикативная аналитика использует частично подобные методы. Центральной же сущностью предиктивной аналитики является задача определение предиктора или нескольких предикторов (параметров или сущностей, которые влияют на прогнозируемое событие). Например, страховые компании выделяю такие предикторы, как возраст, стаж вождения при определении страховой премии. Множество этих предикторов образует модель предиктивной аналитики, которая предсказывает определенное событие в будущем с какой-то степенью вероятности.
Аналитики Gartner полагают, что дальнейшее развитие мирового рынка бизнес-анализа пойдет по пути активного освоения advanced (продвинутой) аналитики, в том числе предикативного анализа, построения симуляторов и вариативных моделей. Возможность к построению таких моделей в 2013 году в Gartner назвали 15 обязательным блоком корпоративных BI-платформ.
Аналитика класса advanced использует статистику, описательные и предикативные инструменты data mining (разведки данных), симуляторы и оптимизационные средства. Конечная цель применения всех этих инструментов – принятие решений, решение бизнес-задач и идентификация возможностей для составления наилучших прогнозов, выявления процессов, паттернов и прочих закономерностей.
Чтобы предикативный анализ был успешным, в Forrester рекомендуют четко следовать следующим стадиям: постановка цели, получение данных из различных источников, подготовка данных, создание предикативной модели, оценка модели, внедрение модели, мониторинг эффективности модели.
Схема внедрения инструментов предикативного анализа
Forrester Research, 2013
Области применения
В отличии от data discovery средства предикативной аналитики адресованы специалистам, поэтому не применяются столь широко. По данным Gartner за 2012 год, только 13% пользователей BI широко задействуют средства предикативного анализа. Менее 3% используют такие методы как математическое моделирование, симуляторы и оптимизацию.
Эксперты считают, что не стоит ждать массовых внедрений в этой области, но тренд будет постепенно меняться. Причина тому – появление феномена больших данных, который подталкивает организации к поиску новых средств обработки информации. В Gartner считают, что те компании, которые будут применять продвинутую аналитику к большим данным, будут расти на 20% быстрее конкурентов.
Торговля
Прогнозирование потребительского спроса и планирование акций [2]
Выведение значимых товарных позиций для покупателей (Key Value Item Analysis)
Оптимизация регулярной и акционной цены
Выделение групп покупателей со схожими поведенческими характеристиками путем многомерного анализа данных
Customer Segmentation, Behavioral Targeting, Churn Prevention
Предиктивная аналитика на производстве
Данные о протекании технологического процесса не всегда используются эффективно, в то время как их можно использовать для оптимизации операционных процессов и повышения технико-экономических показателей производства. Оптимизацию можно выполнить на любом типе производства с серьезным уровнем автоматизации, организованным сбором и длительным хранением информации. Для этого успешно применяются интеллектуальные системы, которые могут проанализировать состояние технологического процесса в реальном времени, спрогнозировать дальнейшее протекание процесса, определить уровень оптимальности и, при необходимости, изменить управляющие параметры или дать рекомендации диспетчеру. Для решения данных задач с помощью средств машинного обучения создается предиктивная математическая модель технологического процесса. Она анализирует входные параметры, в реальном времени выдает прогноз протекания процесса и предложения по его оптимизации. Эта модель объединяется с АСУТП, MES и ERP-системами предприятия.
Еще одна задача для предиктивных алгоритмов – это техническое обслуживание и ремонт оборудования. В основном, предприятия используют базовые механизмы контроля, предоставленные производителями оборудования. Но потенциал этих средств ограничен, поскольку они не позволяют проанализировать дополнительные факторы, влияющие на состояние оборудования, и заранее спрогнозировать критическую ситуацию. Таким образом, сотрудники отдела технического обслуживания получают множество данных, но не знают, как эти данные связаны между собой. В итоге реакция от ремонтных служб следует только после отказа оборудования, что ведет за собой простои, и, следовательно, дополнительные расходы. Прогнозная аналитика средствами машинного обучения и искусственного интеллекта проводит непрерывный анализ больших данных, выполняет визуализацию данных о состоянии оборудования на текущий момент и прогнозирует сценарии возникновения отказов оборудования. В результате сокращаются внеплановые простои, оптимизируются работы по ТОРО, уменьшается время техобслуживания, а управляющий персонал получает углубленный анализ причин отказов оборудования.
Мировой рынок
Прогноз Transparency Market Research 2017 года в 2019й
Наиболее востребована предикативная аналитика в отраслях, работающих с конечными потребителями, таких как банковские и финансовые сервисы, страхование, госсектор, фармацевтика, телеком и ИТ, ритейл. На эти сегменты пришлось 71,8% объема внедрений в 2012 году. На протяжении прогнозного периода максимальная доза проектов придется на банковский сектор, финансовые сервисы, страхование. Впрочем, наиболее быстро число проектов будет расти в рознице и на производстве.
Аналитики отмечают, что рост случаев мошенничества, неплатежей, угрозы несоответствия многочисленным правилам и регламентам вынуждают бизнес все чаще обращаться к предикативному анализу с целью построения футуристических моделей, позволяющих принимать превентивные меры по отношению к неблагоприятным событиям.
Такие разные типы программного обеспечения как системы пользовательской аналитики, аналитики информационной безопасности и управлениям кампаниями составили около 50% рынка предикативной аналитики в 2012 году. Эти решения используются для оптимизации организационных процессов в продажах и маркетинге, управления клиентами и каналами продаж, финансового и риск менеджмента и так далее.
Среди региональных рынков крупнейшим рынком систем предикативного анализа будет Северная Америка, причем здесь спрос на прогнозные решения придет со стороны компаний, активно решающих вопросы работы с большими данными (big data). Именно поэтому в скором времени на аренду предикативной аналитики выйдет все ключевые вендоры решений для big data, включая SAS Institute, SAP, Oracle, IBM, Microsoft, Teradata и Tableau Software.
Рынок при этом остается во многом поделен между крупнейшими игроками: на первую пятерку поставщиков пришлось 80% объема рынка в 2012 году. Среди других заметных игроков отмечаются Fair Isaac, Tibco, Information Builders, Alteryx, Qlik (QlikTech) и MicroStrategy.
Предиктивная аналитика на пальцах
Я занимаюсь Data Science и Machine Learning в компании Redmadrobot. Нас знают в основном как разработчика мобильных приложений, но практика DS и ML в роботах тоже развита.
Например, мы делаем предиктивную аналитику: это такой класс методов Data Science, с помощью которого можно предсказать какие-то важные для клиента показатели в будущем. В этой статье я на пальцах объясню, как работает предиктивная аналитика и как именно она помогает, например, просчитать выручку и сэкономить деньги.
К нам приходит, скажем, владелец большой розничной сети с вполне конкретным запросом: хочу знать, где открыть новую точку и сколько выручки я с нее получу. Реально ли это? Вполне.
Сначала мы смотрим, какие данные уже есть у заказчика. Их еще называют внутренними данными.
У магазина обычно уже есть какие-то данные по существующим точкам: ассортимент, товарооборот, площадь торгового зала и так далее. Используя только эти данные, мы можем обучить модель и попытаться предсказать, например, выручку для каждой точки: для этого мы делим существующие данные в пропорции 70/30, обучаем модель на 70% данных, а на оставшихся 30% проверяем, насколько точно наша модель научилась предсказывать выручку для точки.
Проблема в том, что точность такой модели может быть невысокой: ей просто не хватает данных для обучения. Другими словами, если у нас есть только внутренние данные от магазинов, этого может быть недостаточно, чтобы с приличной точностью предсказать, сколько магазин будет выручать за месяц.
Что делать в этом случае? Обогащать данные, то есть дополнять то, что уже есть у клиента, внешними данными.
Внешних данных бывает огромное множество.
Погода, курсы валют, график запуска ракет SpaceX — все это внешние данные по отношению к нашему клиенту.
Понятно, что не все внешние данные нам нужны, и не все из них мы можем достать. На этом этапе к нам подключается аналитик: он хорошо разбирается в типах и источниках внешних данных, и может дать экспертную оценку, какие из них будут релевантны. Перед разработкой модели проводится исследование, которое помогает понять, какие данные нам будут полезны, а какие нет.
В случае с магазином нам могут быть полезны, например, такие данные, как проходимость конкретной точки, какие конкуренты стоят рядом, сколько денег выручают торговые точки в этом районе.
На основе этих гипотез мы можем подтянуть внешние данные и обучить модель, уже используя их. Предсказательная сила в этом случае обычно улучшается. Мы можем обучать модель несколько раз, добавляя и убирая какие-то наборы данных, добиваясь все большей точности.
Некоторые сервисы-агрегаторы данных отдают их свободно, иногда даже в удобном формате xml или json — как, например, сервис OpenStreetMap, где можно получить географические данные об объекте. Бывают публичные базы данных, например от Google — это уже собранные большие наборы данных по различным тематикам, которые можно найти в открытом доступе и свободно использовать для обучения своей модели.
Некоторые данные находятся в открытом доступе, но их неудобно использовать. Тогда приходится парсить сайты, то есть вытаскивать данные в автоматическом режиме (до тех пор, пока это законно, конечно — но в большинстве случаев это законно).
А некоторые данные приходится покупать или договариваться об их использовании — например, если работать с операторами фискальных данных, которые могут разрешить использовать некоторую информацию о чеках.
В каждом случае мы решаем, насколько нам нужны эти данные, насколько они повысят точность модели и насколько это важно для заказчика. Предположим, какой-то набор данных позволит нам сделать модель на 10% точнее. Насколько это хорошо для заказчика? Сколько денег он сэкономит или получит, если предсказания нашей модели будут на 10% точнее? Стоит ли это того, чтобы покупать этот набор данных? Чтобы понимать это, нам нужно действительно много знать про клиента — поэтому на этапе понимания задачи мы задаем много вопросов про его бизнес, источники прибыли и особенности работы.
Как проверить (и доказать клиенту), что наша модель действительно имеет смысл? Что она предсказывает результат с нужной нам вероятностью?
Делим все данные, которые у нас есть, случайным образом в пропорции 80/20. С 80% мы будем работать и обучать на них модель, это наша тренировочная выборка. 20% пока отложим — они нам понадобятся позже, чтобы проверить на них модель и убедиться, что все работает. Это валидационная выборка.
Тренировочную выборку делим на обучающую и тестовую выборки (70/30). На 70% обучаем модель. На 30% проверяем. Когда точность нас устраивает — проверяем модель теперь уже окончательно, на валидационной выборке, то есть на тех данных, которые модель никогда не видела. Это позволяет нам убедиться, что модель действительно предсказывает с заданной точностью.
Как правило, точность модели на тестовой и валидационной выборке почти совпадает. Если они сильно отличаются — скорее всего, дело в данных: возможно, они были поделены на обучающую и валидационную выборки не случайным образом, либо данные неоднородны.
Когда мы обсуждаем с клиентом задачу, мы среди прочего определяем с ним критерии успешности проекта. Как понять, что мы выполнили задачу? Какая точность должна быть у получившейся модели и почему именно такая?
Проект мы всегда начинаем с MVP — это относительно дешевая проверка наших гипотез, это модель, которая уже может приносить ценность. Пробуем обучать модель на имеющихся данных и находим некий baseline — минимальную точность модели (например, 75%). Эту точность мы будем все время стараться повышать — до тех пор, пока это рентабельно и имеет смысл.
Когда точность модели нас наконец устраивает, мы упаковываем получившуюся модель в веб-сервис или мобильное приложение с удобным интерфейсом. В нашем примере с открытием магазина и прогнозированием его выручки веб-сервис мог бы выглядеть как интерактивная карта, где разные районы подсвечивались бы разными цветами в зависимости от перспективности открытия магазина здесь, а для каждой выбранной точки отрисовывалась бы плашка с прогнозом выручки магазина, поставленного в этой точке.
Отличие MVP от промышленного решения в том, что модель MVP не может дообучаться. А точность любой модели со временем деградирует, и ее надо дообучать. Поэтому для промышленного решения мы реализуем один из двух вариантов поддержки: либо мы поддерживаем ее самостоятельно, постоянно дообучая модель (и увеличивая ее точность), либо реализуем цикл переобучения модели непосредственно внутри самого софта.
Поддержка со стороны живой команды, конечно, дороже. Но минус автоматического переобучения в том, что оно не может учесть внезапных изменений характера данных. Оно не учтет, например, что в результате каких-нибудь санкций магазин перестал продавать определенные типы товаров и его выручка снизилась. Тогда точность модели сильно упадет, и ее надо будет переобучать вручную, добавляя недостающие данные.
1. Веб-сервис или мобильное приложение с удобным интерфейсом, которое наглядно показывает клиенту ответ на его вопрос (например, где открывать магазин и сколько у него будет выручки).
2. Под капотом — модель, которая с заданной (и оговоренной) точностью выдает предсказания на основе имеющихся данных — внутренних данных клиента и внешних данных, которые мы приняли решение собирать и использовать в этой модели.
3. Поддержку модели, реализованную либо как постоянные доработки модели со стороны живой DS-команды, либо как встроенная функция периодического переобучения внутри самой программы. Модель поддержки выбирается в зависимости от характера данных и бизнес-задач, которую решает модель.
4. Наглядное подтверждение тому, что Data Science и Machine Learning — не просто модные технологии, а инструменты, которые помогают быстро и точно решать реальные задачи бизнеса.
Предиктивная аналитика данных — моделирование и валидация
Представляю вашему вниманию перевод главы из книги Hands-On Data Science with Anaconda
«Предиктивная аналитика данных — моделирование и валидация»
Наша основная цель в проведении различных анализов данных — это поиск шаблонов, чтобы предсказать, что может произойти в будущем. Для фондового рынка исследователи и специалисты проводят различные тесты, чтобы понять рыночные механизмы. В этом случае можно задать много вопросов. Каким будет уровень рыночного индекса в ближайшие пять лет? Каков будет следующий ценовой диапазон IBM? Будет ли волатильность рынка увеличиваться или уменьшаться в будущем? Каким может быть влияние, если правительства изменят свою налоговую политику? Какова потенциальная прибыль и убытки, если одна страна начнет торговую войну с другой? Как мы прогнозируем поведение потребителя, анализируя некоторые связанные переменные? Можем ли мы предсказать вероятность того, что студент-выпускник успешно закончит учебу? Можем ли мы найти связь между определенным поведением одного конкретного заболевания?
Поэтому мы рассмотрим следующие темы:
Понимание предиктивного анализа данных
У людей может быть много вопросов касательно будущих событий.
Полезные наборы данных
Одним из лучших источников данных является UCI Machine Learning Repository. Зайдя на сайт мы увидим следующий список:
Например, если выбрать первый набор данных (Abalone), мы увидим следующее. Для экономии места отображается только верхняя часть:
Отсюда пользователи могут загрузить набор данных и найти определения переменных. Следующий код может быть использован для загрузки набора данных:
Соответствующий вывод показан здесь:
Из предыдущего вывода мы знаем, что в наборе данных имеется 427 наблюдения (набора данных). Для каждого из них у нас есть 7 связанных функций, таких как Name, Data_Types, Default_Task, Attribute_Types, N_Instances (количество экземпляров), N_Attributes (количество атрибутов) и Year. Переменная, называемая Default_Task, может быть интерпретирована как основное использование каждого набора данных. Например, первый набор данных, называемый Abalone, может быть использован для Classification. Функция unique() может быть использована для поиска всех возможных Default_Task, показанных здесь:
R пакет AppliedPredictiveModeling
Этот пакет включает в себя множество полезных наборов данных, которые могут использоваться для этой главы и других. Самый простой способ найти эти наборы данных — с помощью функции help(), показанной здесь:
Здесь мы покажем несколько примеров загрузки этих наборов данных. Чтобы загрузить один набор данных, мы используем функцию data(). Для первого набора данных, называемого abalone, у нас есть следующий код:
Вывод выглядит следующим образом:
Иногда, большой набор данных включает в себя несколько суб-наборов данных:
Для загрузки каждого набора данных, мы могли бы использовать функции dim(), head(), tail() и summary().
Аналитика временных рядов
Временные ряды можно определить как набор значений, полученных в последовательные моменты времени, часто с равными интервалами между ними. Существуют разные периоды, такие как годовой, ежеквартальный, ежемесячный, еженедельный и ежедневный. Для временных рядов ВВП (валовой внутренний продукт) мы обычно используем квартальные или годовые. Для котировок — годовые, ежемесячные и суточные частоты. Используя следующий код, мы можем получить данные ВВП США как ежеквартально, так и за годовой период:
Однако у нас есть много вопросов для анализа временных рядов. Например, с точки зрения макроэкономики мы имеем деловые или экономические циклы. Отрасли или компании могут иметь сезонность. Например, используя сельскохозяйственную промышленность, фермеры будут тратить больше в весенние и осенние сезоны и меньше на зиму. Для розничной торговли у них был бы огромный приток денег в конце года.
Чтобы манипулировать временными рядами, мы могли бы использовать множество полезных функций, включенных в пакет R, называемый timeSeries. В примере мы возьмем среднесуточные данные с еженедельной частотой:
Мы могли бы также использовать функцию head(), чтобы увидеть несколько наблюдений:
Прогнозирование будущих событий
Есть много методов, которые мы могли бы использовать при попытке предсказать будущее, таких как скользящее среднее, регрессия, авторегрессия и т. п. Во-первых, давайте начнем с простейшего для скользящего среднего:
В предыдущем коде значение по умолчанию для количества периодов равно 10. Мы могли бы использовать набор данных, называемый MSFT, включенный в пакет R, называемый timeSeries (см. Следующий код):
В ручном режиме мы находим, что среднее из первых трех значений x совпадает с третьим значением y. В каком-то смысле мы могли бы использовать скользящее среднее для прогнозирования будущего.
В следующем примере мы покажем, как оценить ожидаемую доходность рынка в следующем году. Здесь мы используем индекс S&P500 и историческое среднегодовое значение в качестве наших ожидаемых значений. Первые несколько команд используются для загрузки связанного набора данных под названием .sp500monthly. Целью программы является оценка среднегодового среднего и 90-процентного доверительного интервала:
Как видно из результатов, историческая среднегодовая доходность для S&P500 составляет 9%. Но мы не можем заявить, что доходность индекса в следующем году будет равна 9%, т.к. она может быть от 5% до 13%, а это огромные колебания.
Сезонность
В следующем примере мы покажем использование автокорреляции. Во-первых, мы загружаем R пакет под названием astsa, который выступает для прикладного статистического анализа временных рядов. Затем мы загружаем ВВП США с ежеквартальной частотой:
В вышеуказанном коде — функция diff() принимает разницу, например текущее значение минус предыдущее значение. Второе значение ввода указывает на задержку. Функция, называемая acf2(), используется для построения и печати ACF и PACF временного ряда. ACF обозначает функцию автоковариации, а PACF обозначает функцию частичной автокорреляции. Соответствующие графики показаны здесь:
Визуализация компонентов
Понятно, что концепции и наборы данных были бы намного более понятными, если бы мы могли использовать графики. Первый пример показывает колебания ВВП США за последние пять десятилетий:
Соответствующий график показан здесь:
Если бы мы использовали логарифмическую шкалу для ВВП, у нас был бы следующий код и график:
Следующий график близок к прямой линии:
R пакет – LiblineaR
Этот пакет представляет собой линейные прогностические модели, основанные на LIBLINEAR C/C++ Library. Вот один из примеров использования набора данных iris. Программа пытается предсказать, к какой категории относится растение, используя данные обучения:
Вывод следующий. BCR — это сбалансированная классификационная ставка. Для этой ставки, чем выше, тем лучше:
R пакет – eclust
Этот пакет представляет собой средо-ориентированную кластеризацию для интерпретируемых прогнозных моделей в высокоразмерных данных. Сначала давайте рассмотрим набор данных с именем simdata, который содержит смоделированные данные для пакета:
Предыдущий вывод показывает, что размерность данных равна 100 на 502. Y — это вектор непрерывного отклика, а E — двоичная переменная среды для метода ECLUST. E = 0 для неэкспонированных (n = 50) и E = 1 для экспонированных (n = 50).
Следующая программа R оценивает z-преобразование Фишера:
Определим z-преобразование Фишера. Предполагая, что у нас есть набор из n пар xi и yi, мы могли бы оценить их корреляцию, применяя следующую формулу:
Здесь p — корреляция между двумя переменными, а и
являются выборочные средние для случайных величин х и у. Значение z определяется как:
ln — функция натурального логарифма, а arctanh() — обратная гиперболическая касательная функция.
Выбор модели
В следующей программе мы пытаемся использовать линейные и полиномиальные модели для аппроксимации уравнения. Слегка измененный код показан здесь. Программа иллюстрирует влияние нехватки/переизбытка данных на модель:
Полученные графики показаны здесь:
Python пакет – model-catwalk
Пример можно найти здесь.
Первые несколько строк кода показаны здесь:
Соответствующий вывод показан здесь. Для экономии места представлена только верхняя часть:
Python пакет – sklearn
Поскольку sklearn — очень полезный пакет, стоит показать больше примеров использования этого пакета. Приведенный здесь пример показывает, как использовать пакет для классификации документов по темам с использованием подхода «bag-of-words».
В этом примере используется матрица scipy.sparse для хранения объектов и демонстрируются различные классификаторы, которые могут эффективно обрабатывать разреженные матрицы. В этом примере используется набор данных из 20 групп новостей. Он будет автоматически загружен, а затем кэширован. ZIP-файл содержит входные файлы и может быть загружен здесь. Код доступен здесь. Для экономии места показаны только первые несколько строк:
Соответствующий вывод показан здесь:
Для каждого метода есть три показателя: оценка, время обучения и время тестирования.
Julia пакет – QuantEcon
Возьмем для примера использование Марковских цепей:
Цель примера состоит в том, чтобы увидеть, как человек из одного экономического статуса в будущем трансформируется в другого. Во-первых, давайте посмотрим на следующий график:
Давайте посмотрим на крайний левый овал со статусом «poor». 0.9 означает, что человек с таким статусом имеет 90% шансов остаться бедным, а 10% переходит в средний класс. Он может быть представлен следующей матрицей, нули находятся там, где нет ребра между узлами:
Говорят, что два состояния, x и y, связаны друг с другом, если существуют положительные целые числа j и k, такие как:
Цепь Маркова P называется неприводимой, если все состояния связываются; то есть, если x и y сообщаются для каждого (x, y). Следующий код подтвердит это:
Следующий график представляет экстремальный случай, так как будущий статус для бедного человека будет на 100% бедным:
Следующий код также подтвердит это, так как результат будет false:
Тест Грэнджера на причинность
Тест Грэнджера на причинность используется для определения того, является ли один временной ряд фактором, и предоставляет полезную информацию для прогнозирования второго. В следующем коде набор данных с именем ChickEgg используется в качестве иллюстрации. Набор данных имеет две колонки, число цыплят и количество яиц, с отметкой времени:
Вопрос в том, можем ли мы использовать число яиц в этом году, чтобы предсказать число цыплят в следующем году?
Если это так, то количество цыплят будет причиной по Грэнджеру для количества яиц. Если это не так, мы говорим, что количество цыплят не является причиной по Грэнджеру для количества яиц. Вот соответствующий код:
В модели 1 мы пытаемся использовать лаги цыплят плюс лаги яиц, чтобы объяснить количество цыплят.
Т.к. значение P довольно мало (оно значимо при 0,01) мы говорим, что количество яиц является причиной по Грэнджеру для количества цыплят.
Следующий тест показывает, что данные о цыплятах не могут быть использованы для прогнозирования следующего периода:
В следующем примере мы проверяем доходность IBM и S&P500 с целью выяснить, что их них является причиной по Грэнджеру для другого.
Сначала мы определим функцию доходности:
Теперь функция может быть вызвана с входными значениями. Цель программы — проверить, можем ли мы использовать отставания на рынке для объяснения доходности IBM. Точно так же мы проверяем, объяснить отставания IBM доходами рынка:
Результаты показывают, что индекс S&P500 можно использовать для объяснения доходности IBM за следующий период, поскольку он статистически значим на уровне 0,1%. Следующий код будет проверять, объясняет ли отставание IBM изменение S&P500:
Результат предполагает, что в течение этого периода доходность IBM может быть использованы для объяснения индекса S&P500 следующего периода.