Дьяконов Владимир Павлович
Шрифт:
5.12.2. Линейная и полиномиальная регрессия с помощью функции fit
На приведенных ниже примерах показано проведение регрессии с помощью функции fit для зависимостей вида у(х):
В первом примере функция регрессии не задана, поэтому реализуется простейшая линейная регрессия, а функция fit возвращает полученное уравнение регрессии для исходных данных, представленных списками координат узловых точек. Это уравнение аппроксимирует данные с наименьшей среднеквадратичной погрешностью. Во втором примере задано приближение исходных данных степенным многочленом второго порядка. Вообще говоря, функция fit обеспечивает приближение любой функцией в виде полинома, осуществляя полиномиальную регрессию.
Рисунок 5.29 показывает регрессию для одних и тех же данных полиномами первой, второй и третьей степени с построением их графиков и точек исходных данных.
Рис. 5.29. Примеры регрессии полиномами первой, второй и третьей степени
Нетрудно заметить, что лишь для полинома третьей степени точки исходных данных точно укладываются на кривую полинома, поскольку в этом случае (4 точки) регрессия превращается в полиномиальную аппроксимацию. В других случаях точного попадания точек на линии регрессии нет, но обеспечивается минимум среднеквадратической погрешности для всех точек — следствие реализации метода наименьших квадратов.
Применение регрессии обычно оправдано при достаточно большом числе точек исходных данных. При этом регрессия может использоваться для сглаживания данных.
5.12.3. Регрессия для функции ряда переменных
Функция fit может обеспечивать регрессию и для функций нескольких переменных. При этом надо просто увеличить размерность массивов исходных данных. В качестве примера ниже приведен пример регрессии для функции двух переменных
В данном случае уравнение регрессии задано в виде z = а + bх + су. Обратите внимание на важный момент в конце этого примера — применение полученной функции регрессии для вычислений или построения ее графика. Прямое применение функции f в данном случае невозможно, так как она представлена в невычисляемом формате. Для получения вычисляемого выражения она преобразуется в функцию двух переменных fa(x,y) путем отделения правой части выражения для функции f. После этого возможно вычисление значений функции fa(x,y) для любых заданных значений х и у.
5.12.4. Линейная регрессия общего вида
Функция fit может использоваться и для выполнения линейной регрессии общего вида:
Функция такой регрессии является линейной комбинацией ряда функций f1(х), f2(х), f3(х), причем каждая их них может быть и нелинейной, например экспоненциальной, логарифмической, тригонометрической и т.д. Пример линейной регрессии общего вида представлен на рис. 5.30.
Рис. 5.30. Пример выполнения линейной регрессии общего вида
В литературе и даже в документах системы Maple линейная регрессия общего вида часто называется нелинейной регрессий. Однако это неверно, поскольку нелинейной является регрессия, функция которой не может быть представлена линейной комбинацией функций.
5.12.5. О нелинейной регрессии с помощью функции fit
К сожалению, функция fit неприменима для нелинейной регрессии. При попытке ее проведения возвращается структура процедуры, но не результат регрессии — см. пример ниже:
Однако, большинство нелинейных зависимостей удается свести к линейным с помощью простых линеаризирующих преобразований [1, 2, 4]. На рис. 5.31 показан пример экспоненциальной регрессии f(x)=аеbх, которая (благодаря логарифмированию точек y) сводится к линейной регрессии. Детали преобразований даны в документе рис. 5.31. Используя другие преобразования этот документ легко приспособить для выполнения других видов нелинейной регрессии, например степенной или логарифмической.