logo search
учебники и задачи по числ методам / Дьяконов_В

2.9.10. Сглаживание данных

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

Обычно сглаживание данных выполняется путем обработки каждой точки по данным нескольких узловых точек, ближайших к точке x, для которой вычисляется f(x). Таким образом, сглаживание, в отличии от регрессии, не ведет к сокращению числа точек, которыми представляется аппроксимирующая зависимость. Сглаживание меняет значение в каждой точке, и результирующая зависимость просто становится более или менее гладкой. Но она не имеет аналитического представления и просто представляет новый набор точек.

В системе Mathcad есть специальные функции для сглаживания данных. В их названии имеется слово smooth (гладкий):

medsmooth(VY,n)

- для вектора с m действительными числами возвращает m-мерный вектор сглаженных данных по методу скользящей медианы, параметр n задает ширину окна сглаживания (n должно быть нечетным числом, меньшим m);

ksmooth(VX,VY,b)

- возвращает n-мерный вектор сглаженных VY, вычисленных на основе распределения Гаусса. VX и VY - n-мерные векторы действительных чисел. Параметр b (полоса пропускания) задает ширину окна сглаживания (b должно в несколько раз превышать интервал между точками по оси x);

supsmooth(VX,VY)

- возвращает n-мерный вектор сглаженных VY, вычисленных на основе использования процедуры линейного сглаживания методом наименьших квадратов по правилу k-ближайших соседей с адаптивным выбором k. Гаусса. VX и VY - n-мерные векторы действительных чисел. Элементы вектора VX должны идти в порядке возрастания.

Пример 2.47. С помощью функции subsmooth(X,Y), выполнить сглаживание зависимости, представленной 100 значениями зашумленной (случайными числами с равномерным распределением) синусоиды. Представить исходную зависимость в виде точек и сглаженную кривую на графике. Решение задачи представлено на рис.2.19.

Рис. 2.19. Сглаживание данных зашумленной функции

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

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

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