Реализация одномерной и многомерной полиномиальной регрессии
Рис. 3 |
В Mathcad введена и функция для обеспечения полиномиальной регрессии при произвольной степени полинома регрессии. Регрессия осуществляется функцией rеgrеss(VX, VY, п), которая возвращает вектор VS, запрашиваемый функцией interp (VS, VX, VY, x) и содержащий коэффициенты многочлена n-й степени, который наилучшим образом приближает «облако» точек с координатами, хранящимися в векторах VX и VY. На рис.3 показан фрагмент документа Mathcad с примером выполнения полиномиальной регрессии. Для вычисления коэффициентов полинома регрессии используется функция submatrix(А, ir, jr, ic, jc) – блок матрицы А, состоящий из всех элементов, содержащихся в строках от ir до jr и столбцах от ic до jc (ir ³ jr и ic ³ jc).
На практике не рекомендуется делать степень аппроксимирующего полинома выше 4-6, поскольку погрешности реализации регрессии сильно возрастают.
Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек. Здесь использованы операции:
Рис.4 |
• rows(A) – число строк матрицы А;
• mean(v) – среднее значение элементов вектора v.
Иногда полезна другая функция полиномиальной регрессии, дающая локальные приближения отрезками полиномов второй степени loess(VX, VY, span), которая возвращает вектор VS, используемый функцией interp(VS, VX, VY, x) для наилучшего приближения данных векторов VX и VY отрезками полиномов второй степени. Аргумент span > 0 (можно использовать любое другое обозначение) указывает размер локальной области приближаемых данных (рекомендуемое начальное значение — 0,75). Чем больше span, тем сильнее сказывается сглаживание данных. При больших значениях span эта функция приближается к функции regress(VX, VY, 2).
На следующем рисунке 4 показан фрагмент документа Mathcad с примером приближения сложной функции со случайным разбросом ее значений с помощью совокупности отрезков полиномов второй степени (функция loess) для двух значений параметра span; функция rnd(х) – генерирует случайные числа с равномерным распределением в интервале [0, x].
Из рисунка 4 нетрудно заметить, что при значении span = 0.05 отслеживаются характерные случайные колебания значений функции, тогда как уже при span = 0.5 кривая регрессии становится практически гладкой.
Теоретические вопросы, выносимые на обсуждение
1. Перечислите, какие классы задач решаются с использованием приближений функций, интерполирования, обработки статистических данных.
2. Что дает интерполяция.
3. Что дает экстраполяция.
4. Дайте определение аппроксимации.
5. Какие возможности предоставляет система Mathcad для аппроксимации.
6. Дайте определение кусочно-линейной интерполяции.
7. Как графически выглядит линейная аппроксимация.
8. С помощью какой функции задается линейная аппроксимация.
9. Определить, что представляют собой аргументы в записи следующей функции: linterp(VX, VY, x).
10. Где находятся точки линейной экстраполяции.
11. При каком числе узловых точек линейная интерполяция оказывается неприменимой.
12. Какой результат дает применение функции linterp за пределами области определения.
13. Дайте определение сплайновой интерполяции.
14. Какой порядок полиномов используется для сплайновой интерполяции.
15. Сколько смежных узлов используется для кубической сплайн интерполяции.
16. Как выбираются коэффициенты полиномов при сплайновой интерполяции.
17. Какие возможности предоставляет система Mathcad сплайновой интерполяции.
18. Охарактеризуйте каждую функцию: cspline(VX, VY), pspline(VX, VY), lspline(VX, VY), interp(VS, VX, VY, x).
19. Для осуществления сплайн – интерполяции, какие действия необходимо провести.
20. С помощью каких команд отыскивается вектор вторых производных функции у(х).
21. С помощью какой команды для каждой искомой точки вычисляется значение у(х).
22. Определить какую операцию выполняют команды: csort(A, n), length(v).
23. Дать понятие регрессии.
24. Какой вид погрешности используется при сравнении построенной регрессивной функции с «облаком» исходных точек.
25. Дать определение линейной регрессии.
26. Какие команды необходимо использовать для проведения линейной регрессии.
27. Охарактеризуйте каждую функцию: corr(VX, VY), intercrpt(VX, VY), slope(VX, VY).
28. Как вычисляется коэффициент корреляции.
29. Каким должен быть коэффициент корреляции, чтобы зависимость, представленная исходными точками, точнее приближалась к линейной.
30. Как в Mathcad реализована возможность выполнения линейной регрессии общего вида.
31. С помощью какой команды реализуется линейная регрессия общего вида.
32. Определить какую операцию выполняет команда linfit(VX, VY, F).
33. Какая специфика записи исходного массива должна быть учтена при использовании команды linfit(VX, VY, F).
34. С помощью каких команд реализуется в Mathcad функция полиномиальной регрессии при произвольной степени полинома регрессии.
35. Охарактеризуйте каждую функцию: rеgrеss(VX, VY, п), interp(VS, VX, VY, x).
36. Определить, что представляют собой аргументы в записи следующей функции: submatrix(А, ir, jr, ic, jc).
37. Почему не рекомендуется делать степень аппроксимирующего полинома выше 4-6.
38. Определить какую операцию выполняют команды: rows(A), mean(v), loess(VX, VY, span).
39. Для чего используется команда loess(VX, VY, span).
40. Какой смысл имеет аргумент span в команде loess(VX, VY, span).
41. Что происходит при увеличении аргумента span.
42. Какую операцию выполняет функция rnd(х).
Задания к вариантам для самостоятельных работ
IЗадать вектор исходных данных – координат Х и У, состоящих из 15 пар значений. Применить линейную и сплайновую интерполяции.
IIЗадать вектор исходных данных – координат Х и У, состоящих из 25 пар значений. Реализовать линейную регрессию и линейную регрессию общего вида.
IIIЗадать вектор исходных данных – координат Х и У, состоящих из 30 пар значений. Реализовать полиномиальную регрессию для полиномов второго, третьего и четвертого порядков. Провести сравнительную характеристику. Найти коэффициенты регрессии.
IVДля построенияприближения к сложной функции со случайным разбросом ее значений использовать регрессию отрезками полиномов второй степени:
1. , | 2. , |
3. , | 4. , |
5. , | 6. , |
7. , | 8. , |
9. , | 10. , |
11. , | 12. , |
13. , | 14. , |
Практическое занятие № 7