БлогNot. MathCAD: intercept, slope и линейная регрессия

MathCAD: intercept, slope и линейная регрессия

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

Между тем, в MathCAD по заданным векторам значений X и Y как раз и можно непосредственно найти коэффициенты регрессионной прямой y=a+b*x функциями intercept ("отрезок, отсекаемый с оси") и slope ("наклон").

Просто у них принято изучать intercept equation of a line x/a + y/b = 1, уравнение прямой в отрезках, отсекаемых на координатных осях.

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

M:=csort(augment(X,Y),0) (X Y):=(M<0> M<1>)

Вместе с вводом начальных данных эта часть расчёта будет выглядеть так:

Определение данных и сортировка по возрастанию значений X
Определение данных и сортировка по возрастанию значений X

Непосредственный поиск коэффициентов регрессионной прямой функциями intercept и slope будет следующим шагом:

Линейная аппроксимация через функции "отсечка" и "наклон", непосредственно возвращающие коэффициенты регрессионной прямой (то же, что МНК первого порядка)
Линейная аппроксимация через функции "отсечка" и "наклон", непосредственно возвращающие коэффициенты регрессионной прямой (то же, что МНК первого порядка)

Конечно, вы понимаете, что тот же результат будет и при использовании алгоритма МНК 1 порядка.

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

Найдём номер точки с максимальным отклонением от прямой
Найдём номер точки с максимальным отклонением от прямой

Строго говоря, код выше работает только если искомый номер элемента - единственный. В общем случае (максимальных расстояний несколько) следует пользоваться примерно таким решением. Оно не программистски красивое, зато надёжное.

Наконец, построим график. Заметим, что не следует путать прямую регрессии, она же прямая МНК 1 порядка, с кусочно-линейной интерполяцией, которую мы могли бы выполнить просто строкой кода

linterp(X,Y,X)

Добавил её четвёртым рядом данных на график.

Построение графика с отметкой отдельной категорией самой дальней точки
Построение графика с отметкой отдельной категорией самой дальней точки

 Скачать этот пример в архиве .zip с документом MathCAD 15 (22 Кб)

16.09.2015, 15:38 [19493 просмотра]


теги: учебное числа mathcad english

показать комментарии (1)