Начало работы, изучение и визуализация. Практическое руководство, разработанное специально для тех, кто знаком или знаком со Stata.

Единое руководство, состоящее из трех частей, обзор

Это руководство предназначено для пользователей Stata, которые хотят начать изучение Pandas. Он был написан с использованием примеров и рабочих процессов, которые хорошо известны пользователям Stata. Кроме того, эта статья ссылается на данные, которые узнают многие пользователи Stata.

В части 1.1 этого руководства я рассматриваю ряд причин, по которым пользователи Stata могут захотеть начать изучение возможности работы с Python и Pandas.

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

Наконец, в части 1.3 я проиллюстрирую множество простых визуализаций, которые помогут вам продолжить процесс исследования данных.

Часть 1.1: Итак, вы установили Python и Pandas, но не знаете, что делать дальше.

И Stata, и Pandas предоставляют полные (или почти полные) платформы для обработки данных, визуализации, статистики и т. Д. Stata претендует на то, чтобы быть…

Полный интегрированный пакет программного обеспечения, который обеспечивает все ваши потребности в области науки о данных - манипулирование данными, визуализацию, статистику и воспроизводимые отчеты. (Stata.com)

Панды претендуют на то, чтобы быть…

Библиотека с открытым исходным кодом под лицензией BSD, обеспечивающая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python. (Pandas.pydata.org)

Причины, по которым пользователи Stata могут захотеть изучить Pandas

Соавтор использует Pandas. Вы являетесь пользователем Stata, а исследовательская группа, с которой вы сотрудничаете, - нет. Они используют панд. Чтобы оказаться в одной песочнице, вы решаете изучить Pandas.

Вы решили, что хотите расширить свои навыки. Готовы к новому испытанию? Возможно, вы читали несколько книг из книжного магазина Статы. Вы создали и опубликовали программы, написанные пользователями (известные пользователям Stata как пакеты). Возможно, вы даже опубликовали одну или несколько программ в предпочитаемом сообществом пользователей репозитории в Архиве компонентов статистического программного обеспечения Бостонского колледжа (SSC). Ясно, что вы готовы расширить свой набор навыков.

Вы потеряли доступ к Stata. Или вы ожидаете потери доступа к Stata. Stata является частной собственностью, и ее лицензионные сборы дороги. Если вы потеряли или ожидаете потери доступа к Stata, и вы не заинтересованы в покупке лицензии для себя (несмотря на хорошую стоимость), Pandas - хороший вариант.

Другие причины. На самом деле не имеет значения, почему пользователь Stata может захотеть изучить Pandas. Это руководство представляет собой практическое руководство, в котором признается, что у обоих языков есть свои сильные и слабые стороны. В своей работе я часто обнаруживаю, что одно начинается там, где заканчивается другое.

В этом руководстве предполагается, что вы установили Python и Pandas.

Чтобы не изобретать колесо, в этом руководстве не обсуждается установка Python или Pandas, кроме того, предлагается рекомендация пользователям Stata рассмотреть возможность установки предназначенного для науки дистрибутива Anaconda.

Примеры и пояснения, приведенные в этом руководстве, были протестированы с использованием дистрибутива Anaconda. В частности, приведенные здесь примеры были созданы в Jupyter Notebooks, который является программным обеспечением, включенным в дистрибутив Python для Anaconda.

Использование известного набора данных Stata об автомобилях. Я ранее обсуждал этот набор данных как тот, который полезен для целей тестирования или обучения. Вот как обычно выглядит загрузка этого набора данных в Jupyter Notebook:

В следующей части 1.2 я продемонстрирую кросс-таблицы и сводную статистику, которые помогут вам начать процесс исследования данных. В последнем разделе, части 1.3, я проиллюстрирую простые визуализации, которые позволят вам продолжить процесс исследования данных.

Часть 1.2: После установки Python и Pandas вот ваши следующие шаги.

Загрузка автоматического набора данных

Загрузить набор данных об автомобилях в Stata очень просто: sysuse auto. В Python процесс можно выполнить в две строки. Но чтобы сделать код более читабельным, я разбил его на три строки:

import pandas as pd
auto = 'http://www.stata-press.com/data/r15/auto2.dta'
df = pd.read_stata(auto)

Вот и все! Легкий. Если вы новый пользователь Pandas, поздравляем! Вы загрузили свой первый набор данных в память.

Первое, что вы заметите, - это то, что при работе в Python меньше выходных данных. Выходные данные - это информация, которую язык предоставляет, чтобы подтвердить, что команда сделала для вас то, что вы для нее собирались. Подробнее об этом читайте в моей связанной статье Слияние данных: у Pandas отсутствует вывод.

В Python эта обратная связь гораздо менее обширна. Чтобы убедиться, что вы правильно загрузили набор данных об автомобилях. Попробуйте использовать код df.head(), который примерно эквивалентен list in 1/5 Статы. Вот что вы должны увидеть:

Кросстабуляция

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

Ограничение Stata состоит в том, что перекрестные таблицы, включающие более двух или трех категориальных переменных, ограничены. В пандах три и более категорий не проблема.

Двусторонняя таблица с набором данных об автомобилях:

pd.crosstab(df['rep78'], df['foreign'])

Если присмотреться, в этой таблице отсутствуют недостающие данные. Чтобы Stata включила недостающие данные в свои перекрестные таблицы, опция mi, следующая за командойtab, предоставит более полное представление данных. Собирая все вместе в Stata, получится tab foreign rep78, mi.

В Pandas необходимы две строки для отображения более полного представления данных:

# Specify a new category among the repair records.
df['rep78'].cat.add_categories('No Record', inplace=True)
# Generate a tabulation using the fillna() method.
pd.crosstab(df['foreign'], df['rep78'].fillna('No Record'))

Сводные статистические данные

Сводная статистика в Stata не сложна. Один из самых быстрых способов взглянуть на непрерывные переменные - это ввести sum. С набором данных об автомобиле это дает вам:

В Pandas команда, которая наиболее точно имитирует этот вывод, - это df.describe().transpose(), которая выдаст:

Большинство пользователей Pandas будут использовать df.describe(), который отображает имена переменных в верхней части вывода и статистику в каждой строке. Как пользователь Stata, я добавляю метод transpose(), который поворачивает вывод, чтобы он более точно соответствовал соглашению, к которому я привык со Stata.

Бонус: в Pandas вывод по умолчанию также дает 25-й, 50-й и 75-й процентили. Конечно, 50-й процентиль - это медиана, которую всегда полезно знать. Эти дополнительные статистические данные не предлагаются в выводе Stata по умолчанию.

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

df[['price','mpg','foreign']].groupby('foreign').describe()

Посмотрите, сможете ли вы правильно предвидеть, каким будет результат. Кроме того, поработайте над корректировкой кода, чтобы настроить его так, чтобы вы могли исследовать другие переменные, помимо цены (цены) или пробега (миль на галлон).

Следующая часть 1.3 иллюстрирует множество простых визуализаций, которые позволят вам продолжить процесс исследования данных.

Часть 1.3: После сопоставления данных и обобщения данных переходите к простой визуализации.

Гистограммы и точечные диаграммы обновляются

Одна из моих любимых частей при проведении исследования данных в Pandas вместо Stata - это сочетание диаграмм рассеяния и гистограмм на одном графике.

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

Pandas обеспечивает быстрый доступ к объединенному графику, который объединяет в себе лучшее из диаграмм рассеяния и гистограмм. Снова работаем с набором данных Stata по автомобилям:

import pandas as pd
import seaborn as sns
%matplotlib inline
auto = 'http://www.stata-press.com/data/r15/auto2.dta'
df = pd.read_stata(auto)
sns.jointplot(x='weight',y='mpg',data=df, kind='scatter')

Эта визуализация исследует взаимосвязь между пробегом (в милях на галлон по вертикальной оси y) и массой автомобиля (в фунтах по оси x). Визуализация показывает, в соответствии с интуицией и общим пониманием, что с увеличением веса транспортного средства его пробег уменьшается.

Этот совместный график показывает взаимосвязь между этими двумя переменными (вес и миль на галлон) в дополнение к визуализации их распределения по переменным. В качестве дополнительного бонуса эта визуализация указывает коэффициент корреляции Пирсона для этих двух переменных вместе с его значением p.

Парный сюжет

Кроме того, для сравнения многих переменных в наборе данных удобен парный график. Парный график представляет собой матрицу диаграмм рассеяния, аналогичную типичной корреляционной матрице. Ниже приводится сравнение пробега (миль на галлон), веса (веса), длины (длины) и цены (цены):

sns.pairplot(df[['mpg','weight','length','price']])

Бонус за добавление категориального сравнения, здесь мы сравним зарубежное производство с отечественным, мы можем скорректировать код, включив пару дополнительных аргументов:

sns.pairplot(df[['mpg','weight','length','price','foreign']],
             kind='scatter', plot_kws={'alpha': 0.5}, 
             hue='foreign')

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

Вывод

Эта статья состоит из трех частей, чтобы помочь пользователям Stata подумать о переходе на Python и Pandas. Если цель не заключается в переходе, это руководство поможет пользователям Stata начать изучение нового инструмента, который может дополнить вашу текущую работу в Stata. И у Статы, и у Панды есть свои сильные и слабые стороны.

На самом базовом уровне, когда вы достигнете среднего или более высокого уровня владения Stata, стоит расширить свой набор навыков, также изучив Python и Pandas. В этой статье демонстрируются методы, которые помогут вам начать процесс исследования данных.

В части 1.1 были рассмотрены различные причины, по которым пользователи Stata могут захотеть начать изучение возможности работы с Python и Pandas. В частях 1.2 и 1.3 представлены простейшие примеры исследования, анализа и визуализации данных с использованием популярного набора данных Stata об автомобилях.

Спасибо за чтение

Спасибо за чтение. Присылайте мне свои мысли и идеи. Вы можете написать, просто чтобы поздороваться. И если вам действительно нужно рассказать мне, как я ошибся, я с нетерпением жду встречи в ближайшее время. Twitter: @adamrossnelson LinkedIn: Адам Росс Нельсон.