Книга: Думай как аналитик. Статистика и данные с примерами на Python. 3-е изд.
Назад: От издательства
Дальше: Благодарности

Предисловие

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

«Думай как аналитик» — это введение в практические методы исследования и визуализации данных, выявления взаимосвязей и тенденций, а также представления полученных результатов. Структура книги соответствует той процедуре, которой я следую, когда начинаю работать с новым датасетом.

Импортирование и очистка данных

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

Разведочный анализ одной переменной

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

Разведочный анализ пар переменных

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

Многомерный анализ

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

Оценка и проверка гипотез

Перед тем как представлять результаты статистического анализа, важно ответить на следующие три вопроса. Насколько велик эффект? Какую изменчивость можно ожидать при повторных измерениях? Может ли быть так, что наблюдаемый эффект вызван случайностью?

Визуализация

Визуализация — важный инструмент для выявления возможных взаимосвязей и эффектов в ходе исследований. Далее, если наблюдаемый эффект успешно проходит тщательную проверку, визуализация становится эффективным способом представления полученных результатов.

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

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

• Каждая глава завершается блоком упражнений, выполняя которые читатель может проверить и закрепить полученные знания. Когда вы пишете программу, то воплощаете свое понимание в коде, а во время отладки программы проверяете, что ваше понимание верно.

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

• Некоторые идеи, которые трудно усвоить на языке математики, легко понять в процессе моделирования. Например, получая аппроксимацию p-значения с помощью случайного моделирования, мы закрепляем понимание концепции проверки гипотез.

• Поскольку в книге использован язык программирования общего назначения (Python), данные можно импортировать практически из любого источника и не ограничиваться датасетами, очищенными и отформатированными под конкретный статистический инструмент.

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

• Национальное исследование роста семьи (National Survey of Family Growth, NSFG) (https://oreil.ly/6V82p), проведенное Центрами по контролю и профилактике заболеваний (Centers for Disease Control and Prevention, CDC) США с целью сбора «информации о семейной жизни, вступлении в брак и расторжении брака, беременности, бесплодии, использовании средств контрацепции, а также здоровье мужчин и женщин».

• Исследование в рамках Системы наблюдения за поведенческими факторами риска (Behavioral Risk Factor Surveillance System, BRFSS) (http://cdc.gov/BRFSS), проводимое Национальным центром профилактики хронических заболеваний и укрепления здоровья (National Center for Chronic Disease Prevention and Health Promotion) США для «наблюдения за состоянием здоровья и рискованным поведением в США».

• Датасет «пингвины станции Палмер» (The Palmer Penguins, https://oreil.ly/kl2BD), который включает в себя результаты измерений выборки пингвинов в районе антарктической станции Палмер.

• Данные Управления энергетической информации США (Energy Information Administration, EIA) о производстве электроэнергии из возобновляемых источников в США.

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

Новое в этом издании

Подготовку третьего издания я начал с перевода книги в формат Jupyter-блок­нотов, поскольку это дало очевидное преимущество: теперь можно читать текст, запускать код и работать над упражнениями в одной среде. Кроме того, блокноты предназначены для работы в Google Colab, поэтому, чтобы приступить к делу, не потребуется ничего устанавливать.

Переход на формат Jupyter-блокнотов имеет еще одно преимущество — код становится более удобочитаемым. В первых двух изданиях часть кода была в самой книге, а часть — в дополнительных файлах, доступных для скачивания в интернете. По прошествии времени стало ясно, что такое деление материала было не лучшим решением и неоправданно усложняло код. В третьем издании мне удалось упростить код и сделать его понятнее.

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

Когда я начинал этот проект, библиотеки NumPy и SciPy еще не получили широкого распространения, а библиотека Pandas была известна еще меньше. Поэтому в оригинальном коде использовались такие структуры данных языка Python, как списки и словари. В этом издании активно используются NumPy-массивы, структуры Pandas, а также функции, реализованные в этих библиотеках.

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

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

В целом я считаю, что все эти изменения сделали книгу «Думай как аналитик» лучше. Надеюсь, она вам понравится!

Использование исходного кода примеров

Вспомогательные материалы (код, данные и т.д.) доступны для загрузки из Git-репозитория на GitHub по адресу https://oreil.ly/ThinkStatsCode. Git — это система контроля версий, которая помогает следить за изменениями в файлах проекта. Коллекция файлов, находящихся под управлением Git, называется репозиторием. GitHub предоставляет услуги хостинга, в частности хранилище для Git-репозиториев и удобный веб-интерфейс.

Для каждой главы этой книги в репозитории имеется свой Jupyter-блокнот — документ, содержащий текст, код и результаты исполнения кода. Вы можете использовать файлы блокнотов, чтобы исполнять код и работать над упражнениями.

Существует два способа запустить код из Jupyter-блокнота. Самый простой — использовать Colab, сервис Google, позволяющий исполнять код в веб-браузере без необходимости устанавливать что-либо на компьютер. На домашней странице книги (https://allendowney.github.io/ThinkStats) вы найдете ссылки на Jupyter-блокноты, в том числе на вводный блокнот, который знакомит с сервисом Colab и Jupyter-блокнотами.

Если вы не хотите использовать Colab, то можете загрузить файлы блокнотов и исполнять их на своем компьютере, но в этом случае вам придется установить Python, Jupyter и библиотеки, используемые в книге, в частности NumPy, SciPy и StatsModels. Если у вас есть опыт установки программного обеспечения, настройка среды для запуска Jupyter-блокнотов не составит большого труда. Но если такого опыта нет, все это может показаться вам сложным и изнурительным и помешать получить максимальную пользу от этой книги. Если хотите научиться разведочному анализу данных на Python, не тратьте свое время и силы на установку программ! Я настоятельно рекомендую вам прочитать хотя бы первые несколько глав в среде Colab. Затем, если захотите настроить среду на собственном компьютере, то можете сделать это, не прерывая изучение книги. И последний совет: если у вас возникают какие-либо проблемы с установкой программ, воспользуйтесь такими инструментами, как ChatGPT, — они обычно хорошо помогают в этих вопросах.

При написании этой книги я исходил из того, что вы знакомы с основами языка Python, в том числе объектно-ориентированным программированием. Знакомство с библиотеками NumPy и Pandas будет полезно, но необязательно: я дам все необходимые пояснения. Я также предполагаю, что вы знакомы с основными понятиями математики, например логарифмами и суммированием. От вас не требуется знание линейной алгебры или математического анализа. Один раз я буду говорить о производных и интегралах, но если вы не знакомы с этими понятиями, ничего страшного. И наконец, знаний статистики для чтения книги не требуется.

Если у вас возникнут вопросы технического характера по использованию примеров кода, направляйте их по электронной почте на адрес [email protected].

В общем случае все примеры кода из книги вы можете использовать в своих программах и в документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Если вы разрабатываете программу и используете в ней несколько фрагментов кода из книги, вам не нужно обращаться за разрешением. Но для продажи или распространения примеров из книги вам потребуется разрешение от издательства O’Reilly. Вы можете отвечать на вопросы, цитируя данную книгу или примеры из нее, но для включения существенных объемов программного кода из книги в документацию вашего продукта потребуется разрешение.

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

За разрешением на использование значительных объемов программного кода из книги обращайтесь по адресу [email protected].

Условные обозначения

В этой книге используются следующие условные обозначения:

Жирный шрифт

Показывает новые термины, каждому из которых дано определение в глоссарии.

Курсив

Курсивом выделены важные понятия.

Моноширинный шрифт

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

Жирный моноширинный шрифт

Показывает команды или другой текст, который пользователь должен ввести самостоятельно.

Курсивный моноширинный шрифт

Показывает текст, который должен быть заменен значениями, введенными пользователем, или значениями, определяемыми контекстом.

Шрифт без засечек

Используется для обозначения URL и адресов электронной почты.

Назад: От издательства
Дальше: Благодарности