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

Исследование данных

Резюме

В Части I этого курса мы представили названия нескольких распространенных алгоритмов машинного обучения, таких как деревья решений, k-ближайшие соседи и нейронные сети, и обсудили, как они сочетаются друг с другом. Мы приступили к настройке нашего проекта, загрузив общедоступный набор данных 500 городов и настроив библиотеку машинного обучения JavaScript под названием DRESS Kit. Затем мы прошли процесс подготовки данных, чтобы извлечь полезные точки данных из набора данных, используя несколько основных функций из DRESS Kit, включая DRESS.local (для загрузки локального файла), DRESS.save (для сохранения файла на локальном компьютере), DRESS.fromCSV ( для преобразования файла CSV в собственные объекты JavaScript), DRESS.print (для печати текста в HTML) и DRESS.async (для асинхронного выполнения функции). В конце части I мы создали файл JSON data.json, содержащий только приблизительные данные о распространенности на уровне переписных участков из набора данных 500 городов из этих треков переписи с численностью населения не менее 50. Мы также создаем файл JSON measures.json, который группирует MeasureId by Category и сопоставляет каждый MeasureId из исходного набора данных с его определением.

В качестве ориентира вот содержание measures.json.

ПЛАТЬЕ Обновление комплекта

Прежде чем продолжить этот курс, обновите DRESS Kit до версии 1.1.0. Эта версия содержит несколько улучшений производительности, а также несколько новых функций, включая создание гистограмм и тепловых карт, которые мы собираемся изучить в этой части курса.

Гистограмма

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

И снова мы создаем шаблонный HTML-файл с именем part2_1.htm, который загружает DRESS Kit, а также наш пользовательский файл JavaScript part2_1.js.

Мы загружаем набор данных, созданный во время части I курса, с помощью функции DRESS.local. Обратите внимание, что третий параметр больше не установлен на FALSE, потому что набор данных теперь хранится в формате JSON, который может быть проанализирован изначально с помощью JavaScript. Мы помещаем все 27 показателей хронического заболевания в массив, чтобы нам не приходилось вводить их снова и снова. Одним из самых популярных и простых методов исследования данных, используемых специалистами по данным, является гистограмма. Он описывает распределение значений в наборе данных кратко и интуитивно. Хотя существует множество пакетов статистического программного обеспечения, которые могут генерировать высококачественные многоцветные гистограммы, в этом нет необходимости, потому что вся идея гистограммы заключается в том, что она представляет приближение базового набора данных. Мы можем собрать всю необходимую информацию из грубого наброска гистограммы, которую мы можем сгенерировать с помощью функции DRESS.histograms.

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

Каждая гистограмма предоставляет несколько ключевых фрагментов информации. Во-первых, он отображает количество (и процент) точек данных, содержащих ненулевое значение. Мы видим, что для показателей CANCER и BPMED нет нулевых значений, но небольшая часть (0,4%) точек данных отсутствует в измерении COREW. Затем он вычисляет диапазоны значений (первая полоса представляет минимум, разница между полосками представляет интервал, а последняя полоса представляет максимум - интервал). Например, мы можем видеть, что диапазон для меры CANCER составляет от 0,7 до 22,9. Что наиболее важно, мы можем видеть приблизительное распределение значений на гистограммах. Мы видим, что мера CANCER сильно смещена влево, а мера BPMED сильно смещена вправо. Для сравнения, показатель COREW почти равномерно распределен вокруг среднего.

Функция DRESS.histograms также может генерировать гистограммы по категориальным признакам. Просто передайте имена категориальной функции в качестве третьего параметра, как показано ниже:

Мы видим, что точки данных из Калифорнии, Нью-Йорка и Техаса составили большую часть набора данных, что не совсем неожиданно, учитывая распределение населения США. Важно помнить, что каждый subject в этом наборе данных относится к переписному участку, а не к отдельному человеку. Также стоит отметить, что в некоторых штатах, таких как Делавэр, Мэн, Вермонт, Западная Вирджиния и Вайоминг, очень мало переписных участков, и это может создать некоторые проблемы, когда мы фактически используем набор данных для построения наших моделей машинного обучения. Нам нужно иметь это в виду.

Вменение

Обратите внимание, что некоторые функции, такие как мера COREW в наборе данных, содержат недостающие точки данных. Отсутствие данных - довольно частая проблема во время клинических исследований; участники могут прекратить участие в середине исследования, данные могут быть введены неправильно или формы сбора данных могут быть потеряны. Это тот момент в большинстве учебников по статистике, где упоминаются понятия случайно пропавших без вести (MAR), полностью случайно не пропавших (MCAR) и отсутствующих не случайно (MNAR). Мы не собираемся тратить время на обсуждение скучных теоретических вопросов, стоящих за этими определениями. Достаточно сказать, что MCAR не влияет на анализ данных, но на самом деле практически невозможно доказать, что данные отсутствуют полностью на 100% случайным образом. MNAR - это прямо противоположная ситуация, в которой причина отсутствия данных связана со значением отсутствующих данных. Единственный способ надежно восстановить недостающие данные - это устранить основную причину, изменив этап сбора данных или этап анализа данных. Например, в онлайн-опросе, который спрашивает о количестве часов, проведенных за компьютером, вполне вероятно, что те, у кого нет доступа к компьютеру (или, по крайней мере, доступа к Интернету), не будут представлены в наборе данных. Исследователь должен либо попытаться собрать данные лично, либо признать во время анализа, что исследование ограничено только теми, кто может получить доступ к опросу онлайн. Никакие универсальные статистические манипуляции не могут разрешить MNAR. В большинстве хорошо продуманных клинических исследований мы имеем дело с MAR, которую можно решить с помощью какого-либо статистического метода. Одна из стратегий - игнорировать эти недостающие точки данных. Мы можем либо отбросить всю тему, либо только недостающую точку данных, в зависимости от того, как мы хотим анализировать данные. Вторая стратегия - заменить недостающие данные разумной оценкой, этот процесс известен как условное исчисление. Такая оценка может быть вычислена путем случайного выбора точки данных из других точек данных, не являющихся пропущенными (например, последующее наблюдение, перенесенное вперед или базовое наблюдение, перенесенное вперед), путем вычисления среднего арифметического или режима или с помощью какого-либо статистического регрессионного анализа.

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

Среднее значение, медиана и мода

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

Естественно, DRESS Kit имеет несколько встроенных функций для вычисления центральной тенденции и дисперсии набора данных.

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

Функция DRESS.means вычисляет среднее значение, 95% доверительный интервал для среднего, асимметрии (на основе третьего стандартизованного момента) и избыточного эксцесса (на основе четвертого стандартизованного момента). Функция DRESS.medians вычисляет медиану, межквартильный размах, асимметрию (основание на квартиле) и избыточный эксцесс (на основе процентиля). Наконец, функция DRESS.frequencies перечисляет все возможные значения категориального признака, отсортированные по частоте их появления (первое из них - режим).

Некоторые очень проницательные читатели могут указать, что значения большинства характеристик в наборе данных не строго нормально распределены, о чем свидетельствуют формы гистограмм, а также наличие значительной асимметрии и избыточного эксцесса. Однако важно отметить, что, когда мы работаем с размером выборки в тысячи или десятки тысяч, вопрос о том, нормально ли распределяются значения или нет, не имеет большого значения. Если бы мы применили формальные алгоритмы проверки нормальности, такие как тест Шапиро-Уилка (который можно легко выполнить с помощью функции DRESS.normalities), мы бы обнаружили, что все функции в наборе данных на самом деле НЕ являются обычными. распределены. Однако тот факт, что результат теста является статистически значимым, не обязательно означает, что он имеет практическое значение. Вот отличный обзорный документ, который объясняет стоящую за этим статистику. Достаточно сказать, что мы можем безопасно применять большинство параметрических статистических операций к этому набору данных, не беспокоясь о лежащем в основе предположении о нормальности.

Корреляция

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

Конечно, DRESS KIT поставляется с функцией под названием DRESS.correlations, которая автоматически вычисляет коэффициент корреляции Пирсона (или коэффициент ранговой корреляции Спирмена). К сожалению, текст, выводимый функцией, может быть довольно длинным и трудным для интерпретации. К счастью, мы можем легко преобразовать вывод текста в тепловую карту с помощью функции DRESS.heatmap.

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

Заворачивать

Давайте рассмотрим то, что мы узнали во второй части. Мы прошли основные этапы процесса исследования данных. Мы начали с создания серии гистограмм с использованием функции DRESS.histograms, позволяющей нам определять диапазоны и распределения значений в наборе данных. Мы вкратце рассказали о различных подходах к работе с недостающими данными. Затем мы сосредоточились на центральной тенденции и дисперсии каждой функции в наборе данных, вычислив среднее значение, медиана и режим с использованием DRESS.means, DRESS.medians и DRESS.frequencies. Мы коснулись концепций асимметрии и эксцесса и обсудили, как часто нет необходимости беспокоиться о нормальном распределении при работе с большим набором данных. Наконец, мы продемонстрировали способ оценки степени корреляции между различными функциями в наборе данных с помощью функций DRESS.correlations и DRESS.heatmap.

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