- •Python для науки о данных: перезагрузка Ремикс популярной книги Генри Гарнера "Clojure для науки о данных", 2015
- •Об авторе оригинала книги
- •Содержание
- •Предисловие автора к оригиналу книги на Clojure
- •Статистика
- •Скачивание исходного кода примеров
- •Обследование данных
- •Исправление данных
- •Описательные статистики
- •Среднее значение
- •Интерпретация математических обозначений
- •Медиана
- •Дисперсия
- •Квантили
- •Дискретизация данных
- •Гистограммы
- •Нормальное распределение
- •Центральная предельная теорема
- •Булочник господина Пуанкаре
- •Генерирование распределений
- •Асимметрия
- •Графики нормального распределения
- •Способы сопоставительной визуализации
- •Коробчатые диаграммы
- •Интегральные функции распределения
- •Важность визуализации
- •Визуализация данных об электорате
- •Обработка столбцов
- •Добавление производных столбцов
- •Сопоставительная визуализация электоральных данных
- •Визуализация электоральных данных рф
- •Сравнительная визуализация
- •Функции массы вероятности
- •Точечные графики
- •Настройка прозрачности разброса
Настройка прозрачности разброса
В ситуациях, аналогичных приведенной выше, когда диаграмма рассеяния переполнена точками, можно улучшить визуализацию внутренней структуры данных путем настройки уровня прозрачности. Поскольку наложение полупрозрачных точек будет менее прозрачным, а области с меньшим количеством точек будут более прозрачными, то точечный график с полупрозрачными точками может изобразить плотность данных намного лучше, чем сплошные точки.
Выполнить настройку альфа-канала, регулирующего прозрачность изображаемых на графике Pandas точек можно при помощи именованного аргумента alpha в функции scatter в виде числа между 0 и 1, где 1 означает полную непрозрачность, 0 — полную прозрачность.
def ex_1_35():
'''Показать диаграмму рассеяния (с прозрачностью) выборов в РФ'''
df = load_ru_victors()[ ['Явка', 'Доля победителя'] ]
rows = sp.random.choice(df.index.values, 10000)
df.ix[rows].plot.scatter(0, 1, s=3, alpha=0.1)
plt.xlabel('Явка')
plt.ylabel('Доля победителя')
plt.axis([0, 1.05, 0, 1.05])
plt.show()
Приведенный выше пример сгенерирует следующую диаграмму:
Приведенный выше точечный график показывает общую направленность совместного изменения доли победителя и явки на выборы. Мы видим корреляцию между двумя значениями и "горячую точку" в правом верхнем углу графика, которая соответствует явке близкой к 100% и 100%-ому голосованию в пользу побеждающей стороны. Как раз эта особенность в частности является признаком того, что исследователи из Венского медицинского университета обозначили как сигнатура фальсификации выборов. Этот факт также подтверждается результатами других спорных выборов по всему миру, например, таких как президентские выборы 2011 г. в Уганде.
Результаты многих других выборов по всему миру на уровне округов доступны по адресу http://www.complex-systems.meduniwien. ac.at/elections/election.html. На веб-сайте можно получить ссылку на научно-исследовательскую работу и скачать другие наборы данных, на которых можно попрактиковать то, что Вы узнали в этой главе об исправлении и преобразовании реальных данных.
Мы рассмотрим корреляцию более подробно в Главе 3, Корреляция, где узнаем, каким образом количественно определять силу связи между двумя значениями и создавать основанную на ней прогнозную модель. Мы вернемся к этим данным в Главе 10, Визуализация, где реализуем собственную двумерную гистограмму, чтобы еще четче визуализировать связь между явкой на выборах и долей голосов, отданных за победителя.
Резюме
В этой первой главе мы узнали о сводных статистиках и значении статистических распределений. Мы увидели, каким образом даже простой анализ может предъявить свидетельства о потенциальной фальсификационной деятельности.
В частности, мы познакомились с центральной предельной теоремой и увидели, почему она играет такую важную роль в объяснении широкого применения нормального распределения в науке о данных. Подходящее статистическое распределение способно всего в нескольких статистиках выразить сущность большой последовательности чисел, некоторые из которых мы реализовали в этой главе на основе встроенных функций языка Python и функций библиотки SciPy. Мы также представили пакет библиотеку Pandas и использовали ее для загрузки, преобразования и визуального сопоставления нескольких наборов данных. Впрочем, на данном этапе мы не были в состоянии добиться большего, кроме как обнаружить любопытное расхождение между двумя статистическими распределениями.
В следующей главе мы расширим то, что мы узнали об описательных статистиках, познаниями из области инференциальной статистики, которые позволят нам давать количественное оценку измеренному расхождению между двумя или несколькими статистическими распределениями и принимать решение о том, является ли это расхождение статистически значимым. Мы также узнаем о методах проверки статистических гипотез, которые лежат в основе проведения робастных статистических экспериментов, позволяющих делать выводы, исходя из данных.
