Удаление отсутствующих значений

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

Отсутствующие значения обозначаются как "Не число" или сокращенно "NaN". В Excel NaN обозначается как пустая ячейка или специальное представление "#N/A". Существует несколько встроенных функций, которые можно использовать для определения #N/A, например, NA (), ISNA (.) и IFERROR(.).

Размер набора данных

Наблюдение в наборе данных может быть определено либо парой значений двух переменных (x, y), либо несколькими значениями трех или более переменных (например, (x, y, z, w)). Точка данных в одномерном временном ряду может быть выражена как (t, x_t).

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

В двумерном наборе данных каждая строка представляет собой точку данных, а каждый столбец - входную переменную. Если одна или несколько ячеек в строке имеют пустое значение или значение #N/A, точка данных (т. е. строка) считается точкой данных с отсутствующим значением и, таким образом, исключается.

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

Почему меня это должно волновать?

Работа с набором данных с отсутствующими значениями в Excel представляет собой сложную задачу. Хотя в Excel есть несколько встроенных функций (например, MIN(), MAX(.) COUNT(.)), которые принимают такие наборы данных и молча игнорируют наблюдения с отсутствующими значениями, большинство функций (например, STDEV(.), CORREL(.)) не поддерживают их и возвращают ошибки (например, #VALUE), если такие наборы данных передаются в качестве входных данных.

RMNA(.) Функция

Во многих мастерах NumXL есть отдельная вкладка для работы с точками данных с отсутствующими значениями. На этой вкладке пользователю предлагаются различные политики: не принимать, удалить обс., заменить, интерполировать, подгонка данных и т. д. Если пользователь выбирает политику обработки пропущенных значений "удалить obs.", то входные наборы данных сначала подвергаются предварительной обработке с помощью RMNA(.) в генерируемых формулах.

Что такое RMNA(.)? RMNA - это простая, но мощная служебная функция в NumXL, единственной задачей которой является обнаружение и удаление наблюдений с одним или несколькими отсутствующими значениями.

Функция RMNA принимает два аргумента: X и Y. X и Y состоят из одного или нескольких столбцов, но если задан Y, то количество строк в X должно быть равно Y.

В нотации RMNA(.) точкой данных является (X, Y), но RMNA(X, Y) возвращает обработанный X. Если мы хотим вернуть обработанный Y, то изменим порядок следования пар X и Y (т. е. (Y, X)).

Пример 1: Рассмотрим следующий сценарий: в наборе данных с одним столбцом есть две точки данных с пропущенными значениями. Пропущенные значения представлены в виде #N/A и пустой/неполной ячейки.
Входной набор данных с отсутствующими значениями, представленными в виде #N/A и пустых/непустых ячеек.

Использование встроенных функций Excel: AVERAGE(.), STDEV(.), SKEW(.) и KURT(.) возвращает ошибку #N/A, но функция COUNT(.) молча отбрасывает точки данных с отсутствующими значениями и возвращает подсчет оставшихся точек данных (т.е. 18).

Теперь давайте предварительно обработаем набор данных с помощью RMNA(.), сохраним его в отдельном столбце и передадим новый столбец тем же функциям:
Исходный набор данных с отсутствующими значениями преобразован в набор данных без отсутствующих значений с помощью функции RMNA в NumXL.

Примечание:

В качестве альтернативы мы могли бы просто поместить формулу RMNA(.) непосредственно (в качестве аргумента) в функцию.

Использование функции RMNA в качестве аргумента внутри функции AVERAGE.

Пример 2: Рассмотрим набор данных из двух переменных (X, Y), для которых мы хотим рассчитать кросс-корреляцию (XCF или встроенная в Excel программа CORREL).
Набор данных из двух переменных, обе из которых содержат отсутствующие значения. Функции выводят #NUM или #N/A, когда ссылаются на наборы данных с отсутствующими значениями.

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

Мы можем использовать RMNA(.) двумя разными способами:

Метод 1: Передайте весь набор данных (столбцы B и C) в качестве одного аргумента.
При использовании функции RMNA для наборов данных, содержащих более одной переменной, строки с одним или несколькими отсутствующими значениями удаляются.

Функция RMNA(.) возвращает исходный набор данных, отбросив все строки, содержащие одно или несколько отсутствующих значений.

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

Используя другой столбец в качестве необязательного аргумента ссылки (например, Y), RMNA(.) также проверяет точки данных на наличие отсутствующих значений, но функция возвращает только набор данных, указанный в первом аргументе (например, X).
Использование функции RMNA на наборе данных при использовании другого набора данных в качестве необязательного аргумента ссылки.

Обратите внимание, что, поменяв местами X и Y в RMNA(.), мы можем получить набор данных X2 после отбрасывания недостающих значений, найденных в X2 или в матрице X1.

Заметным преимуществом метода 2 перед методом 1 является то, что функция не требует, чтобы столбцы X1 и X2 были смежными.

Пример 3: Давайте настроим модель электронной таблицы на автоматическое обновление по мере поступления новых данных.
Использование функции RMNA для будущих значений для автоматического обновления данных при появлении новых исходных данных.

Обратите внимание, что при добавлении значения в B21, RMNA(.) будет включать это новое значение, заставляя AVG и другие функции обновить свои вычисления.

Резюме

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

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

Примеры файлов

Комментарии

Войдите в службу, чтобы оставить комментарий.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0