Перейти к содержимому

8. Статистика

Определение выбросов

Выбросы — точки, сильно выбивающиеся из последовательности, не вписывающиеся в модель по какой-либо причине. Люди озаботились выбросами, желая избавиться от них. Выбросы оттягивают на себя средние значения и сдвигают распределение данных. [1] Иногда выбросы – просто ошибка ввода. Поэтому первая причина обращать внимание на выбросы — это обеспечение чистоты анализа данных и моделирования. Но есть и другая – определение выбросов интересно само по себе!

Рис. 1. Вероятность 349-дневной беременности

Рис. 1. Вероятность 349-дневной беременности

Подробнее »Определение выбросов

Прогнозирование на основе экспоненциального сглаживания

Задачи прогнозирования построены на изменении неких данных во времени (продаж, спроса, поставок, ВВП, выбросов углерода, численности населения…) и проецировании этих изменений на будущее. К сожалению, выявленные на исторических данных, тренды могут нарушаться множеством непредвиденных обстоятельств. Так что данные в будущем могут существенно отличаться от произошедшего в прошлом. [1] В этом и состоит проблема прогнозирования.

Однако, существуют методики (под названием экспоненциальное сглаживание), позволяющие не только попытаться предсказать будущее, но и выразить численно неопределенность всего, что связано с прогнозом. Численное выражение неопределенности с помощью создания интервалов прогнозирования поистине неоценимо, но часто игнорируется в прогностическом мире.

Рис. 1. Временной ряд данных

Рис. 1. Временной ряд данных

Подробнее »Прогнозирование на основе экспоненциального сглаживания

Интерактивная кольцевая диаграмма, созданная с помощью Protovis

Большинство пользователей обратятся к Excel, если нужно построить кольцевую диаграмму. Я тоже в 2012 г. написал на эту тему заметку – Excel. Круговая диаграмма с двумя наборами данных. Однако, около месяца назад я начал читать книгу Нейтана Яу Искусство визуализации в бизнесе. Автор работает в области инфографики, для которой стандартные средства Excel являются недостаточно выразительными. На страницах книги автор знакомит читателей с различными программами, которые расширяют возможности (см., например, Создание столбчатой диаграммы в R).

В настоящей заметке интерактивная кольцевая диаграмма будет построена с помощью программы Protovis. Protovis — бесплатный инструмент для визуализации с открытым исходным кодом. Protovis — это JavaScript-библиотека, позволяющая использовать возможности современных браузеров для работы с масштабируемой векторной графикой. Поскольку графические объекты генерируются динамически, это дает возможность делать их анимированными и интерактивными. А потому Protovis — отличный выбор для создания онлайн-графики. [1]

На рис. 1 показано, к чему вы будете стремиться. Когда указатель мыши оказывается поверх того или иного сектора, вы видите, сколько именно человек проголосовало за данную категорию. Интерактив может быть и более продвинутым, но прежде чем давать волю фантазии, необходимо освоить азы.

Рис. 1. Интерактивная кольцевая диаграмма, созданная с помощью библиотеки Protovis

Рис. 1. Интерактивная кольцевая диаграмма, созданная с помощью библиотеки Protovis.js

Подробнее »Интерактивная кольцевая диаграмма, созданная с помощью Protovis

Создание столбчатой диаграммы в R

Большинство пользователей (и я в том числе) применяют Excel для построения диаграмм. Однако, возможности Excel относительно ограничены, и в какой-то момент вам вполне вероятно захочется большего. Рассмотрим пример создания столбчатой диаграммы в статистическом пакете R и последующей обработки диаграммы в Adobe Illustrator для придания издательского качества вашей работе. [1] Если вы никогда не сталкивались с R, рекомендую начать с книги Алексея Шипунова Наглядная статистика. Используем R!

В качестве исходных данных возьмем результаты Нейтановского турнира по поеданию хот-догов за последние три десятилетия (рис. 1).

Рис. 1. Окончательный вариант диаграммы, которую вы будете стараться построить

Рис. 1. Окончательный вариант диаграммы, которую вы будете стараться построить; чтобы увеличить картинку, кликните на ней правой кнопкой мыши и выберите опцию Открыть картинку в новой вкладке

Подробнее »Создание столбчатой диаграммы в R

Форматирование данных с помощью кода на языке Python

Excel и другие программы, работающие по методу «указал и щелкнул», относительно просты в освоении и покрывают большинство потребностей. Однако, если вы хотите создавать выдающиеся диаграммы и инфографику, вам не обойтись без написания кода для форматирования данных. [1] Посмотрите, как можно легко переключаться с одного формата данных на другой с помощью всего нескольких строчек кода Python.

В качестве исходных данных возьмем файл, полученный путем скрапинга сайта Weather Underground (подробнее см. Извлечение данных с web-страниц с помощью кода на языке Python). Файл wunder-data.txt содержит данные о максимальных ежедневных температурах в Москве за 2015 год (рис. 1).

Рис. 5. Извлеченные данные в файле с разделителем табуляцией

Рис. 1. Максимальные ежедневные температуры в Москве за 2015 год

Подробнее »Форматирование данных с помощью кода на языке Python

Извлечение данных с web-страниц с помощью кода на языке Python

Если необходимые вам данные разбросаны по разным HTML-страницам для их извлечения применяется скрапинг. Вы создаете код для автоматического посещения определенного перечня страниц, получения конкретного контента с этих страниц и сохранения его в базе данных или в текстовом файле. [1]

Скажем, вы хотите скачать данные по температуре за прошедший год, но у вас не получается найти источник, который предоставил бы вам все сведения за нужный отрезок времени или по нужному городу. К счастью, сайт Weather Underground предоставляет исторические данные о погоде. И плохая новость: на одной странице сведения можно получить только за один день (рис. 1).

Рис. 1. Температура в Москве по данным Weather Underground

Рис. 1. Температура в Москве по данным Weather Underground; чтобы увеличить картинку, кликните на ней правой кнопкой мыши и выберите опцию Открыть картинку в новой вкладке

Подробнее »Извлечение данных с web-страниц с помощью кода на языке Python

Комплексное моделирование или бэггинг (bagging)

Ранее мы построили весьма точную регрессионную модель для определения беременных покупателей супермаркета на основе данных об их покупках. А что, если построить несколько заведомо неказистых моделей и затем устроить голосование по поводу беременности покупательницы — а процент голосов использовать как единичный прогноз? Такой подход называется комплексным моделированием. Мы рассмотрим бэггинговые (bagging) одноуровневые деревья принятия решений. [1]

Excel-файл содержит обучающие данные из предыдущей заметки (это позволит сравнить модели). Фиктивными переменными (пол покупателей) уже настроенными. Отличительные признаки пронумерованы от 0 до 18 в строке 2 (рис. 1).

Рис. 1. Исходный набор обучающих данных

Рис. 1. Исходный набор обучающих данных; чтобы увеличить картинку, кликните на ней правой кнопкой мыши и выберите опцию Открыть картинку в новой вкладке

Подробнее »Комплексное моделирование или бэггинг (bagging)

Регрессия, как инструмент контролируемого искусственного интеллекта

В одной из статей Forbes рассказывается о том, что компания Target создала модель искусственного интеллекта (ИИ). Модель способна определить, является ли покупательница беременной, чтобы затем использовать эту информацию для целевого маркетинга товаров и предложений, связанных с ожиданием и рождением ребенка. [1] ИИ способен найти применение практически в любой современной отрасли. Компания, выпустившая вашу кредитку, использует его, чтобы определить несвойственные вам операции. Враг в вашей любимой «стрелялке» на Xbox работает на ИИ. Фильтрация спама, обнаружение налогового мошенничества, автокоррекция орфографии и рекомендации друзей в социальных сетях — все это тоже ИИ.

Рис. 1. Исходные данные для обучения

Рис. 1. Исходные данные для обучения (чтобы увеличить изображение, кликните на нем правой кнопкой мыши, и выберите Открыть картинку в новой вкладке)

Подробнее »Регрессия, как инструмент контролируемого искусственного интеллекта

Кластерный анализ: сетевые графы и определение сообществ

Кластерный анализ используется для многих целей, но в этой заметке основное внимание будет уделено сегментации рынка. Ранее был рассмотрен кластерный анализ с использованием метода k-средних. Одна из проблем метода заключалась в выборе «правильного» k. Теперь задачу определения заинтересованных групп покупателей, основываясь на их заказах, мы будем решать с помощью сетевого графа, и значение k появится само собой. [1]

Сетевой граф — это набор предметов, называемых вершинами графа, которые соединены друг с другом ребрами (или связями). Социальные сети, такие как Facebook, содержат много данных, которые легко можно объединить в сетевой граф. Чтобы лицезреть классический сетевой граф, достаточно зайти на сайт любой авиакомпании (рис. 1). Удобный интерфейс для построения графов предоставляют, например, бесплатные сервисы DocGraph и NodeXL.

Рис. 1. Авиамаршруты компании Delta

Рис. 1. Авиамаршруты компании Delta

Подробнее »Кластерный анализ: сетевые графы и определение сообществ

Линейное программирование в Excel

Оптимизационные модели используются, чтобы найти ответы на вопросы типа:

  • как составить расписание для сотрудников колл-центра, чтобы оно соответствовало их отпускным запросам, сбалансировало переработки и исключало круглосуточные дежурства?
  • какие возможности бурения нефтяных скважин использовать для получения максимального дохода, держа при этом под контролем все риски?
  • когда следует делать новые заказы в Китае и как их доставлять, чтобы минимизировать стоимость и соответствовать ожидаемому спросу?

Рис. 1. Бюджетное ограничение делает область допустимых значений треугольной

Рис. 1. Бюджетное ограничение делает область допустимых значений треугольной

Подробнее »Линейное программирование в Excel