Другой метод помимо использования среднего, медианы и модуса данных

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

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

Другой подход - использование техники регрессии. Мы пытаемся предсказать ценность отсутствующих данных на основе окружающих данных. Об этом мы и поговорим в этом посте. В этом посте мы будем использовать обычную линейную регрессию (OLR), линейную регрессию гребня (RLR), линейную регрессию лассо (LLR), байесовскую линейную регрессию (BLR), случайный лес (RF), и поддержка векторной регрессии (SVR), повышения градиента (GB) и Ada Boost (AB). В качестве эталонного метода мы будем использовать среднее и медианное значение данных.

Мы будем использовать данные о скорости ветра в коде METAR на метеостанции Ломбок. Вы можете запросить любые данные METAR метеорологической станции в Индонезии с помощью http://aviation.bmkg.go.id/latest/metar.php?i= ‹IATA_code› & y = ‹year› & m =‹ месяц›. Итак, если я хочу получить данные METAR по Ломбоку за январь 2020 года, ссылка будет http://aviation.bmkg.go.id/latest/metar.php?i=WADL&y=2020&m=1

Наши данные о скорости ветра по-прежнему закодированы в коде METAR, поэтому мы должны сначала декодировать METAR, чтобы извлечь данные о скорости ветра. Вот мой код для извлечения данных о скорости ветра.

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

Наши данные готовы. Теперь, в качестве первого шага к анализу данных, давайте посмотрим на распределение наших данных здесь. Вот код

И это результат

Как видите, наши данные имеют ненормальное распределение. Чтобы проверить нашу теорию о том, кто в каком состоянии лучше всех, давайте проверим среднее значение, медианное значение и режим этих данных и сверим их среднюю абсолютную ошибку (MAE) с нашими «недостающими данными» (метка).

Это 0 для режима, 3,53 для среднего и 2 для режима. Посмотрим, какой из них имеет наименьшее значение MAE против «недостающих данных».

Как показано на изображении выше, MAE для среднего составляет 3,23, медиана - 3,13 и модус - 3,52. Итак, наилучшим заполнителем недостающих данных является медиана. MAE медианы будет использоваться в качестве ориентира для будущей регрессионной модели.

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

и результат

Все модели превосходят наш тестовый MAE. Как видите, обычно все линейные модели (OLR, RLR, LLR, BLR) дают лучшие результаты, чем нелинейные модели (RF, SVR, GB, AB). А лучшая модель - OLR. Колебания скорости ветра в данных METAR, которые мы извлекаем, кажутся линейными и предсказуемыми.

Хорошо, это реальный пример того, как использовать регрессионные модели для заполнения недостающих данных в вашем наборе данных. Итак, метод, который вы выбрали для создания данных-заполнителей, был основан на характеристиках ваших данных.