Смекни!
smekni.com

Тема 15. Регрессия регрессия, это инструмент статистики, на субъективность которого информатики могут сваливать все свои ошибки (стр. 1 из 2)

ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ

Digital signals processing

Тема 15. РЕГРЕССИЯ

Регрессия, это инструмент статистики, на субъективность которого информатики могут сваливать все свои ошибки.

Фарид Бадрутдинов. Татарин, Уральский геофизик.

Электронные мозги могут ошибаться гораздо точнее.

Габриэль Лауб. Немец, афорист.

Содержание

Введение.

1. Постановка задачи регрессии.

2. Линейная регрессия. Общий принцип. Реализация в Mathcad.

3. Полиномиальная регрессия. Одномерная регрессия. Зональная регрессия.

4. Нелинейная регрессия. Линейное суммирование произвольных функций. Регрессия общего типа. Типовые функции регрессии Mathcad.

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

6. Предсказание зависимостей.

ВВЕДЕНИЕ

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

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

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

15.1. постановка задачи регрессии

Математическая постановка задачи регрессии заключается в следующем. Зависимость величины (числового значения) определенного свойства случайного процесса или физического явления Y от другого переменного свойства или параметра Х, которое в общем случае также может относиться к случайной величине, зарегистрирована на множестве точек xk множеством значений yk, при этом в каждой точке зарегистрированные значения yk и xk отображают действительные значения Y(xk) со случайной погрешностью sk, распределенной, как правило, по нормальному закону. По совокупности значений yk требуется подобрать такую функцию f(xk, a0, a1, … , an), которой зависимость Y(x) отображалась бы с минимальной погрешностью. Отсюда следует условие приближения:

yk = f(xk, a0, a1, … , an) + sk.

Функцию f(xk, a0, a1, … , an) называют регрессией величины y на величину х. Регрессионный анализ предусматривает задание вида функции f(xk, a0, a1, … , an) и определение численных значений ее параметров a0, a1, … , an, обеспечивающих наименьшую погрешность приближения к множеству значений yk. Как правило, при регрессионном анализе погрешность приближения вычисляется методом наименьших квадратов (МНК). Для этого выполняется минимизация функции квадратов остаточных ошибок:

s(a0, a1, … , an) =

[f(xk, a0, a1, … , an) - yk]2.

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

15.2. линейная регрессия [25]

Общий принцип. Простейший способ аппроксимации по МНК произвольных данных sk - с помощью полинома первой степени, т.е. функции вида y(t) = a+bt, которую обычно называют линией регрессии. С учетом дискретности данных по точкам tk, для функции остаточных ошибок имеем:

s(a, b) =

[(a+b tk) - sk]2.

Для вычисления оценок коэффициентов дифференцируем функцию остаточных ошибок по аргументам a и b, приравниваем полученные уравнения нулю и формируем два нормальных уравнения системы:

2((a+b tk)-sk) º a
1 + b
tk
sk = 0,

2((a+b tk)-sk) tk º a
tk + b
tk2
sk tk = 0,

Решение данной системы уравнений в явной форме для К-отсчетов:

b = [K

tk sk
tk
sk] / [K
tk2 – (
tk)2] = (
-
) / (
-
).

a = [

sk – b
tk] /K =
- b

Полученные значения коэффициентов используем в уравнении регрессии y(t) = a+bt. Прямая (s –

) = b (t -
) называется линией регрессии s по t. Для получения линии регрессии t по s, (t -
) = b (s –
), аргумент b в этой формуле заменяется на значение b = (
-
) / (
-
).

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

Реализация в Mathcad. Линейная регрессия в системе Mathcad выполняется по векторам аргумента Х и отсчетов Y функциями:

- intercept(X,Y) – вычисляет параметр а, смещение линии регрессии по вертикали;

- slope(X,Y) – вычисляет параметр b, угловой коэффициент линии регрессии.

Расположение отсчетов по аргументу Х произвольное. Функцией corr(X,Y) дополнительно можно вычислить коэффициент корреляции Пирсона. Чем он ближе к 1, тем точнее обрабатываемые данные соответствуют линейной зависимости.

Пример выполнения линейной регрессии приведен на рис. 15.2.1.

Рис. 15.2.1.

15.3. полиномиальная регрессия [25]

Одномерная полиномиальная регрессия с произвольной степенью n полинома и с произвольными координатами отсчетов в Mathcad выполняется функциями:

- regress(X,Y,n) – вычисляет вектор S для функции interp(…), в составе которого находятся коэффициенты ki полинома n-й степени;

- interp(S,X,Y,x) – возвращает значения функции аппроксимации по координатам х.

Функция interp(…) реализует вычисления по формуле:

f(x) = k0 + k1 x1 + k2 x2 + … + kn xn

ki xi.

Значения коэффициентов ki могут быть извлечены из вектора S функцией

submatrix(S, 3, length(S), 0, 0).

На рис. 15.3.1 приведен пример полиномиальной регрессии с использованием полиномов 2, 3 и 8-й степени. Степень полинома обычно устанавливают не более 4-6 с последовательным повышением степени, контролируя среднеквадратическое отклонение функции аппроксимации от фактических данных. Нетрудно заметить, что по мере повышения степени полинома функция аппроксимации приближается к фактическим данным, а при степени полинома, равной количеству отсчетов минус 1, вообще превращается в функцию интерполяции данных, что не соответствует задачам регрессии.

Рис. 15.3.1. Одномерная полиномиальная регрессия.

Зональная регрессия. Функция regress по всей совокупности точек создает один аппроксимирующий полином. При больших координатных интервалах с большим количеством отсчетов и достаточно сложной динамике изменения данных рекомендуется применять последовательную локальную регрессию отрезками полиномов малых степеней. В Mathcad это выполняется отрезками полиномов второй степени функцией