Метод наименьших квадратов (мнк).
Пример.
Экспериментальные
данные о значениях переменных х
и у
приведены
в таблице.

В
результате их выравнивания получена
функция
![]()
Используя
метод
наименьших квадратов ,
аппроксимировать эти данные линейной
зависимостью y=ax+b
(найти параметры а
и b).
Выяснить, какая из двух линий лучше (в
смысле метода наименьших квадратов)
выравнивает экспериментальные данные.
Сделать чертеж.
Суть метода наименьших квадратов (мнк).
Задача
заключается в нахождении коэффициентов
линейной зависимости, при которых
функция двух переменных а
и b
принимает
наименьшее значение. То есть, при данныха
и b
сумма квадратов отклонений экспериментальных
данных от найденной прямой будет
наименьшей. В этом вся суть метода
наименьших квадратов.
Таким
образом, решение примера сводится к
нахождению экстремума функции двух
переменных.
Вывод формул для нахождения коэффициентов.
Составляется
и решается система из двух уравнений с
двумя неизвестными. Находим частные
производные функции
по
переменныма
и b,
приравниваем эти производные к нулю.

Решаем
полученную систему уравнений любым
методом (например методом
подстановки
или методом
Крамера)
и получаем формулы для нахождения
коэффициентов по методу наименьших
квадратов (МНК).

При
данных а и
b функция
принимает
наименьшее значение. Доказательство
этого факта приведенониже
по тексту в конце страницы .
Вот
и весь метод наименьших квадратов.
Формула для нахождения параметра a
содержит суммы
,
,
,
и
параметрn
— количество экспериментальных данных.
Значения этих сумм рекомендуем вычислять
отдельно. Коэффициент b
находится после вычисления a.
Пришло
время вспомнить про исходый пример.
Решение.
В
нашем примере n=5
. Заполняем
таблицу для удобства вычисления сумм,
которые входят в формулы искомых
коэффициентов.

Значения
в четвертой строке таблицы получены
умножением значений 2-ой строки на
значения 3-ей строки для каждого номера
i .
Значения
в пятой строке таблицы получены
возведением в квадрат значений 2-ой
строки для каждого номера i
.
Значения
последнего столбца таблицы – это суммы
значений по строкам.
Используем
формулы метода наименьших квадратов
для нахождения коэффициентов а
и b.
Подставляем в них соответствующие
значения из последнего столбца таблицы:

Следовательно,
y = 0.165x+2.184
— искомая аппроксимирующая прямая.
Осталось
выяснить какая из линий y
= 0.165x+2.184 или
лучше
аппроксимирует исходные данные, то есть
произвести оценку методом наименьших
квадратов.
Оценка погрешности метода наименьших квадратов.
Для
этого требуется вычислить суммы квадратов
отклонений исходных данных от этих
линий
и
,
меньшее значение соответствует линии,
которая лучше в смысле метода наименьших
квадратов аппроксимирует исходные
данные.
Так
как
,
то прямаяy
= 0.165x+2.184
лучше приближает исходные данные.
Графическая иллюстрация метода наименьших квадратов (мнк).
На
графиках все прекрасно видно. Красная
линия – это найденная прямая y
= 0.165x+2.184,
синяя линия – это
,
розовые точки – это исходные данные.

На
практике при моделировании различных
процессов — в частности, экономических,
физических, технических, социальных —
широко используются те или иные способы
вычисления приближенных значений
функций по известным их значениям в
некоторых фиксированных точках.
Такого
рода задачи приближения функций часто
возникают:
-
при построении
приближенных формул для вычисления
значений характерных величин исследуемого
процесса по табличным данным, полученным
в результате эксперимента; -
при численном
интегрировании, дифференцировании,
решении дифференциальных уравнений и
т. д.; -
при необходимости
вычисления значений функций в
промежуточных точках рассматриваемого
интервала; -
при определении
значений характерных величин процесса
за пределами рассматриваемого интервала,
в частности при прогнозировании.
Если
для моделирования некоторого процесса,
заданного таблицей, построить функцию,
приближенно описывающую данный процесс
на основе метода наименьших квадратов,
она будет называться аппроксимирующей
функцией (регрессией), а сама задача
построения аппроксимирующих функций
— задачей аппроксимации.
В
данной статье рассмотрены возможности
пакета MS Excel для решения такого рода
задач, кроме того, приведены методы и
приемы построения (создания) регрессий
для таблично заданных функций (что
является основой регрессионного
анализа).
В
Excel для построения регрессий имеются
две возможности.
-
Добавление
выбранных регрессий (линий тренда —
trendlines) в диаграмму, построенную на
основе таблицы данных для исследуемой
характеристики процесса (доступно лишь
при наличии построенной диаграммы); -
Использование
встроенных статистических функций
рабочего листа Excel, позволяющих получать
регрессии (линии тренда) непосредственно
на основе таблицы исходных данных.
Добавление
линий тренда в диаграмму
Для
таблицы данных, описывающих некоторый
процесс и представленных диаграммой,
в Excel имеется эффективный инструмент
регрессионного анализа, позволяющий:
-
строить на основе
метода наименьших квадратов и добавлять
в диаграмму пять типов регрессий,
которые с той или иной степенью точности
моделируют исследуемый процесс; -
добавлять к
диаграмме уравнение построенной
регрессии; -
определять степень
соответствия выбранной регрессии
отображаемым на диаграмме данным.
На
основе данных диаграммы Excel позволяет
получать линейный, полиномиальный,
логарифмический, степенной, экспоненциальный
типы регрессий, которые задаются
уравнением:
y
= y(x)
где
x — независимая переменная, которая часто
принимает значения последовательности
натурального ряда чисел (1; 2; 3; …) и
производит, например, отсчет времени
протекания исследуемого процесса
(характеристики).
1.
Линейная регрессия хороша при моделировании
характеристик, значения которых
увеличиваются или убывают с постоянной
скоростью. Это наиболее простая в
построении модель исследуемого процесса.
Она строится в соответствии с уравнением:
y
= mx + b
где
m — тангенс угла наклона линейной регрессии
к оси абсцисс; b — координата точки
пересечения линейной регрессии с осью
ординат.
2.
Полиномиальная линия тренда полезна
для описания характеристик, имеющих
несколько ярко выраженных экстремумов
(максимумов и минимумов). Выбор степени
полинома определяется количеством
экстремумов исследуемой характеристики.
Так, полином второй степени может хорошо
описать процесс, имеющий только один
максимум или минимум; полином третьей
степени — не более двух экстремумов;
полином четвертой степени — не более
трех экстремумов и т. д.
В
этом случае линия тренда строится в
соответствии с уравнением:
y
= c0 + c1x + c2x2 + c3x3 + c4x4 + c5x5 + c6x6
где
коэффициенты c0, c1, c2,… c6 — константы,
значения которых определяются в ходе
построения.
3.
Логарифмическая линия тренда с успехом
применяется при моделировании
характеристик, значения которых вначале
быстро меняются, а затем постепенно
стабилизируются.
Строится
в соответствии с уравнением:
y
= c ln(x) + b
где
коэффициенты b, с — константы.
4.
Степенная линия тренда дает хорошие
результаты, если значения исследуемой
зависимости характеризуются постоянным
изменением скорости роста. Примером
такой зависимости может служить график
равноускоренного движения автомобиля.
Если среди данных встречаются нулевые
или отрицательные значения, использовать
степенную линию тренда нельзя.
Строится
в соответствии с уравнением:
y
= c xb
где
коэффициенты b, с — константы.
5.
Экспоненциальную линию тренда следует
использовать в том случае, если скорость
изменения данных непрерывно возрастает.
Для данных, содержащих нулевые или
отрицательные значения, этот вид
приближения также неприменим.
Строится
в соответствии с уравнением:
y
= c ebx
где
коэффициенты b, с — константы.
При
подборе линии тренда Excel автоматически
рассчитывает значение величины R2,
которая характеризует достоверность
аппроксимации: чем ближе значение R2 к
единице, тем надежнее линия тренда
аппроксимирует исследуемый процесс.
При необходимости значение R2 всегда
можно отобразить на диаграмме.
Определяется
по формуле:

Для
добавления линии тренда к ряду данных
следует:
-
активизировать
построенную на основе ряда данных
диаграмму, т. е. щелкнуть в пределах
области диаграммы. В главном меню
появится пункт Диаграмма; -
после щелчка на
этом пункте на экране появится меню, в
котором следует выбрать команду Добавить
линию тренда.
Эти
же действия легко реализуются, если
навести указатель мыши на график,
соответствующий одному из рядов данных,
и щелкнуть правой кнопкой мыши; в
появившемся контекстном меню выбрать
команду Добавить линию тренда. На экране
появится диалоговое окно Линия тренда
с раскрытой вкладкой Тип (рис. 1).

После
этого необходимо:
Выбрать
на вкладке Тип необходимый тип линии
тренда (по умолчанию выбирается тип
Линейный). Для типа Полиномиальная в
поле Степень следует задать степень
выбранного полинома.
1.
В поле Построен на ряде перечислены все
ряды данных рассматриваемой диаграммы.
Для добавления линии тренда к конкретному
ряду данных следует в поле Построен на
ряде выбрать его имя.

При
необходимости, перейдя на вкладку
Параметры (рис. 2), можно для линии тренда
задать следующие параметры:
-
изменить название
линии тренда в поле Название
аппроксимирующей (сглаженной) кривой. -
задать количество
периодов (вперед или назад) для прогноза
в поле Прогноз; -
вывести в область
диаграммы уравнение линии тренда, для
чего следует включить флажок показать
уравнение на диаграмме; -
вывести в область
диаграммы значение достоверности
аппроксимации R2, для чего следует
включить флажок поместить на диаграмму
величину достоверности аппроксимации
(R^2); -
задать точку
пересечения линии тренда с осью Y, для
чего следует включить флажок пересечение
кривой с осью Y в точке; -
щелкнуть на кнопке
OK, чтобы закрыть диалоговое окно.
Для
того, чтобы начать редактирование уже
построенной линии тренда, существует
три способа:
-
воспользоваться
командой Выделенная линия тренда из
меню Формат, предварительно выбрав
линию тренда; -
выбрать команду
Формат линии тренда из контекстного
меню, которое вызывается щелчком правой
кнопки мыши по линии тренда; -
двойным щелчком
по линии тренда.
На
экране появится диалоговое окно Формат
линии тренда (рис. 3), содержащее три
вкладки: Вид, Тип, Параметры, причем
содержимое последних двух полностью
совпадает с аналогичными вкладками
диалогового окна Линия тренда (рис.1-2).
На вкладке Вид, можно задать тип линии,
ее цвет и толщину.

Для
удаления уже построенной линии тренда
следует выбрать удаляемую линию тренда
и нажать клавишу Delete.
Достоинствами
рассмотренного инструмента регрессионного
анализа являются:
-
относительная
легкость построения на диаграммах
линии тренда без создания для нее
таблицы данных; -
достаточно широкий
перечень типов предложенных линий
трендов, причем в этот перечень входят
наиболее часто используемые типы
регрессии; -
возможность
прогнозирования поведения исследуемого
процесса на произвольное (в пределах
здравого смысла) количество шагов
вперед, а также назад; -
возможность
получения уравнения линии тренда в
аналитическом виде; -
возможность, при
необходимости, получения оценки
достоверности проведенной аппроксимации.
К
недостаткам можно отнести следующие
моменты:
-
построение линии
тренда осуществляется лишь при наличии
диаграммы, построенной на ряде данных; -
процесс формирования
рядов данных для исследуемой характеристики
на основе полученных для нее уравнений
линий тренда несколько загроможден:
искомые уравнения регрессий обновляются
при каждом изменении значений исходного
ряда данных, но только в пределах области
диаграммы, в то время как ряд данных,
сформированный на основе старого
уравнения линии тренда, остается без
изменения; -
в отчетах сводных
диаграмм при изменении представления
диаграммы или связанного отчета сводной
таблицы имеющиеся линии тренда не
сохраняются, то есть до проведения
линий тренда или другого форматирования
отчета сводных диаграмм следует
убедиться, что макет отчета удовлетворяет
необходимым требованиям.
Линиями
тренда можно дополнить ряды данных,
представленные на диаграммах типа
график, гистограмма, плоские ненормированные
диаграммы с областями, линейчатые,
точечные, пузырьковые и биржевые.
Нельзя
дополнить линиями тренда ряды данных
на объемных, нормированных, лепестковых,
круговых и кольцевых диаграммах.
Использование
встроенных функций Excel
В
Excel имеется также инструмент регрессионного
анализа для построения линий тренда
вне области диаграммы. Для этой цели
можно использовать ряд статистических
функций рабочего листа, однако все они
позволяют строить лишь линейные или
экспоненциальные регрессии.
В
Excel имеется несколько функций для
построения линейной регрессии, в
частности:
-
ТЕНДЕНЦИЯ;
-
ЛИНЕЙН;
-
НАКЛОН и ОТРЕЗОК.
А
также несколько функций для построения
экспоненциальной линии тренда, в
частности:
-
РОСТ;
-
ЛГРФПРИБЛ.
Следует
отметить, что приемы построения регрессий
с помощью функций ТЕНДЕНЦИЯ и РОСТ
практически совпадают. То же самое можно
сказать и о паре функций ЛИНЕЙН и
ЛГРФПРИБЛ. Для четырех этих функций при
создании таблицы значений используются
такие возможности Excel, как формулы
массивов, что несколько загромождает
процесс построения регрессий. Заметим
также, что построение линейной регрессии,
на наш взгляд, легче всего осуществить
с помощью функций НАКЛОН и ОТРЕЗОК, где
первая из них определяет угловой
коэффициент линейной регрессии, а вторая
— отрезок, отсекаемый регрессией на оси
ординат.
Достоинствами
инструмента встроенных функций для
регрессионного анализа являются:
-
достаточно простой
однотипный процесс формирования рядов
данных исследуемой характеристики для
всех встроенных статистических функций,
задающих линии тренда; -
стандартная
методика построения линий тренда на
основе сформированных рядов данных; -
возможность
прогнозирования поведения исследуемого
процесса на необходимое количество
шагов вперед или назад.
А
к недостаткам относится то, что в Excel
нет встроенных функций для создания
других (кроме линейного и экспоненциального)
типов линий тренда. Это обстоятельство
часто не позволяет подобрать достаточно
точную модель исследуемого процесса,
а также получить близкие к реальности
прогнозы. Кроме того, при использовании
функций ТЕНДЕНЦИЯ и РОСТ не известны
уравнения линий тренда.
Следует
отметить, что авторы не ставили целью
статьи изложение курса регрессионного
анализа с той или иной степенью полноты.
Основная ее задача — на конкретных
примерах показать возможности пакета
Excel при решении задач аппроксимации;
продемонстрировать, какими эффективными
инструментами для построения регрессий
и прогнозирования обладает Excel;
проиллюстрировать, как относительно
легко такие задачи могут быть решены
даже пользователем, не владеющим
глубокими знаниями регрессионного
анализа.
Примеры решения
конкретных задач
Рассмотрим
решение конкретных задач с помощью
перечисленных инструментов пакета
Excel.
Задача
1
С
таблицей данных о прибыли автотранспортного
предприятия за 1995-2002 гг. необходимо
выполнить следующие действия.
-
Построить диаграмму.
-
В диаграмму
добавить линейную и полиномиальную
(квадратичную и кубическую) линии
тренда. -
Вывести уравнения
полученных линий тренда, а также величины
достоверности аппроксимации R2 для
каждой из них. -
Используя уравнения
линий тренда, получить табличные данные
по прибыли предприятия для каждой линии
тренда за 1995-2004 г.г. -
Составить прогноз
по прибыли предприятия на 2003 и 2004 гг.
Решение
задачи

-
В диапазон ячеек
A4:C11 рабочего листа Excel вводим рабочую
таблицу, представленную на рис. 4. -
Выделив диапазон
ячеек В4:С11, строим диаграмму. -
Активизируем
построенную диаграмму и по описанной
выше методике после выбора типа линии
тренда в диалоговом окне Линия тренда
(см. рис. 1) поочередно добавляем в
диаграмму линейную, квадратичную и
кубическую линии тренда. В этом же
диалоговом окне открываем вкладку
Параметры (см. рис. 2), в поле Название
аппроксимирующей (сглаженной) кривой
вводим наименование добавляемого
тренда, а в поле Прогноз вперед на:
периодов задаем значение 2, так как
планируется сделать прогноз по прибыли
на два года вперед. Для вывода в области
диаграммы уравнения регрессии и значения
достоверности аппроксимации R2 включаем
флажки показывать уравнение на экране
и поместить на диаграмму величину
достоверности аппроксимации (R^2). Для
лучшего визуального восприятия изменяем
тип, цвет и толщину построенных линий
тренда, для чего воспользуемся вкладкой
Вид диалогового окна Формат линии
тренда (см. рис. 3). Полученная диаграмма
с добавленными линиями тренда представлена
на рис. 5. -
Для получения
табличных данных по прибыли предприятия
для каждой линии тренда за 1995-2004 гг.
воспользуемся уравнениями линий тренда,
представленными на рис. 5. Для этого в
ячейки диапазона D3:F3 вводим текстовую
информацию о типе выбранной линии
тренда: Линейный тренд, Квадратичный
тренд, Кубический тренд. Далее вводим
в ячейку D4 формулу линейной регрессии
и, используя маркер заполнения, копируем
эту формулу c относительными ссылками
в диапазон ячеек D5:D13. Следует отметить,
что каждой ячейке с формулой линейной
регрессии из диапазона ячеек D4:D13 в
качестве аргумента стоит соответствующая
ячейка из диапазона A4:A13. Аналогично
для квадратичной регрессии заполняется
диапазон ячеек E4:E13, а для кубической
регрессии — диапазон ячеек F4:F13. Таким
образом, составлен прогноз по прибыли
предприятия на 2003 и 2004 гг. с помощью
трех трендов. Полученная таблица
значений представлена на рис. 6.


Задача
2
С
таблицей данных о прибыли автотранспортного
предприятия за 1995-2002 гг., приведенной в
задаче 1, необходимо выполнить следующие
действия.
-
Построить диаграмму.
-
В диаграмму
добавить логарифмическую, степенную
и экспоненциальную линии тренда. -
Вывести уравнения
полученных линий тренда, а также величины
достоверности аппроксимации R2 для
каждой из них. -
Используя уравнения
линий тренда, получить табличные данные
о прибыли предприятия для каждой линии
тренда за 1995-2002 гг. -
Составить прогноз
о прибыли предприятия на 2003 и 2004 гг.,
используя эти линии тренда.
Решение
задачи
Следуя
методике, приведенной при решении задачи
1, получаем диаграмму с добавленными в
нее логарифмической, степенной и
экспоненциальной линиями тренда (рис.
7). Далее, используя полученные уравнения
линий тренда, заполняем таблицу значений
по прибыли предприятия, включая
прогнозируемые значения на 2003 и 2004 гг.
(рис. 8).


На
рис. 5 и рис. видно, что модели с
логарифмическим трендом, соответствует
наименьшее значение достоверности
аппроксимации
R2
= 0,8659
Наибольшие
же значения R2 соответствуют моделям с
полиномиальным трендом: квадратичным
(R2 = 0,9263) и кубическим (R2 = 0,933).
Задача
3
С
таблицей данных о прибыли автотранспортного
предприятия за 1995-2002 гг., приведенной в
задаче 1, необходимо выполнить следующие
действия.
-
Получить ряды
данных для линейной и экспоненциальной
линии тренда с использованием функций
ТЕНДЕНЦИЯ и РОСТ. -
Используя функции
ТЕНДЕНЦИЯ и РОСТ, составить прогноз о
прибыли предприятия на 2003 и 2004 гг. -
Для исходных
данных и полученных рядов данных
построить диаграмму.
Решение
задачи
Воспользуемся
рабочей таблицей задачи 1 (см. рис. 4).
Начнем с функции ТЕНДЕНЦИЯ:
-
выделяем диапазон
ячеек D4:D11, который следует заполнить
значениями функции ТЕНДЕНЦИЯ,
соответствующими известным данным о
прибыли предприятия; -
вызываем команду
Функция из меню Вставка. В появившемся
диалоговом окне Мастер функций выделяем
функцию ТЕНДЕНЦИЯ из категории
Статистические, после чего щелкаем по
кнопке ОК. Эту же операцию можно
осуществить нажатием кнопки (Вставка
функции) стандартной панели инструментов. -
В появившемся
диалоговом окне Аргументы функции
вводим в поле Известные_значения_y
диапазон ячеек C4:C11; в поле Известные_значения_х
— диапазон ячеек B4:B11; -
чтобы вводимая
формула стала формулой массива,
используем комбинацию клавиш + + .
Введенная
нами формула в строке формул будет иметь
вид: ={ТЕНДЕНЦИЯ(C4:C11;B4:B11)}.
В
результате диапазон ячеек D4:D11 заполняется
соответствующими значениями функции
ТЕНДЕНЦИЯ (рис. 9).

Для
составления прогноза о прибыли предприятия
на 2003 и 2004 гг. необходимо:
-
выделить диапазон
ячеек D12:D13, куда будут заноситься
значения, прогнозируемые функцией
ТЕНДЕНЦИЯ. -
вызвать функцию
ТЕНДЕНЦИЯ и в появившемся диалоговом
окне Аргументы функции ввести в поле
Известные_значения_y — диапазон ячеек
C4:C11; в поле Известные_значения_х —
диапазон ячеек B4:B11; а в поле Новые_значения_х
— диапазон ячеек B12:B13. -
превратить эту
формулу в формулу массива, используя
комбинацию клавиш Ctrl + Shift + Enter. -
Введенная формула
будет иметь вид: ={ТЕНДЕНЦИЯ(C4:C11;B4:B11;B12:B13
)}, а диапазон ячеек D12:D13 заполнится
прогнозируемыми значениями функции
ТЕНДЕНЦИЯ (см. рис. 9).
Аналогично
заполняется ряд данных с помощью функции
РОСТ, которая используется при анализе
нелинейных зависимостей и работает
точно так же, как ее линейный аналог
ТЕНДЕНЦИЯ.
На
рис.10 представлена таблица в режиме
показа формул.


Для
исходных данных и полученных рядов
данных построена диаграмма, изображенная
на рис. 11.
Задача
4
С
таблицей данных о поступлении в
диспетчерскую службу автотранспортного
предприятия заявок на услуги за период
с 1 по 11 число текущего месяца необходимо
выполнить следующие действия.
-
Получить ряды
данных для линейной регрессии: используя
функции НАКЛОН и ОТРЕЗОК; используя
функцию ЛИНЕЙН. -
Получить ряд
данных для экспоненциальной регрессии
с использованием функции ЛГРФПРИБЛ. -
Используя
вышеназванные функции, составить
прогноз о поступлении заявок в
диспетчерскую службу на период с 12 по
14 число текущего месяца. -
Для исходных и
полученных рядов данных построить
диаграмму.
Решение
задачи
Отметим,
что, в отличие от функций ТЕНДЕНЦИЯ и
РОСТ, ни одна из перечисленных выше
функций (НАКЛОН, ОТРЕЗОК, ЛИНЕЙН, ЛГРФПРИБ)
не является регрессией. Эти функции
играют лишь вспомогательную роль,
определяя необходимые параметры
регрессии.
Для
линейной и экспоненциальной регрессий,
построенных с помощью функций НАКЛОН,
ОТРЕЗОК, ЛИНЕЙН, ЛГРФПРИБ, внешний вид
их уравнений всегда известен, в отличие
от линейной и экспоненциальной регрессий,
соответствующих функциям ТЕНДЕНЦИЯ и
РОСТ.
1.
Построим линейную регрессию, имеющую
уравнение:
y
= mx+b
с
помощью функций НАКЛОН и ОТРЕЗОК, причем
угловой коэффициент регрессии m
определяется функцией НАКЛОН, а свободный
член b — функцией ОТРЕЗОК.
Для
этого осуществляем следующие действия:
-
заносим исходную
таблицу в диапазон ячеек A4:B14; -
значение параметра
m будет определяться в ячейке С19. Выбираем
из категории Статистические функцию
Наклон; заносим диапазон ячеек B4:B14 в
поле известные_значения_y и диапазон
ячеек А4:А14 в поле известные_значения_х.
В ячейку С19 будет введена формула:
=НАКЛОН(B4:B14;A4:A14); -
по аналогичной
методике определяется значение параметра
b в ячейке D19. И ее содержимое будет иметь
вид: =ОТРЕЗОК(B4:B14;A4:A14). Таким образом,
необходимые для построения линейной
регрессии значения параметров m и b
будут сохраняться соответственно в
ячейках C19, D19; -
далее заносим в
ячейку С4 формулу линейной регрессии
в виде: =$C*A4+$D. В этой формуле ячейки С19
и D19 записаны с абсолютными ссылками
(адрес ячейки не должен меняться при
возможном копировании). Знак абсолютной
ссылки $ можно набить либо с клавиатуры,
либо с помощью клавиши F4, предварительно
установив курсор на адресе ячейки.
Воспользовавшись маркером заполнения,
копируем эту формулу в диапазон ячеек
С4:С17. Получаем искомый ряд данных (рис.
12). В связи с тем, что количество заявок
— целое число, следует установить на
вкладке Число окна Формат ячеек числовой
формат с числом десятичных знаков 0.
2.
Теперь построим линейную регрессию,
заданную уравнением:
y
= mx+b
с
помощью функции ЛИНЕЙН.
Для
этого:
-
вводим в диапазон
ячеек C20:D20 функцию ЛИНЕЙН как формулу
массива: ={ЛИНЕЙН(B4:B14;A4:A14)}. В результате
получаем в ячейке C20 значение параметра
m, а в ячейке D20 — значение параметра b; -
вводим в ячейку
D4 формулу: =$C*A4+$D; -
копируем эту
формулу с помощью маркера заполнения
в диапазон ячеек D4:D17 и получаем искомый
ряд данных.
3.
Строим экспоненциальную регрессию,
имеющую уравнение:
y
= bmx
с
помощью функции ЛГРФПРИБЛ оно выполняется
аналогично:
-
в диапазон ячеек
C21:D21 вводим функцию ЛГРФПРИБЛ как
формулу массива: ={ ЛГРФПРИБЛ
(B4:B14;A4:A14)}. При этом в ячейке C21 будет
определено значение параметра m, а в
ячейке D21 — значение параметра b; -
в ячейку E4 вводится
формула: =$D*$C^A4; -
с помощью маркера
заполнения эта формула копируется в
диапазон ячеек E4:E17, где и расположится
ряд данных для экспоненциальной
регрессии (см. рис. 12).

На
рис. 13 приведена таблица, где видны
используемые нами функции с необходимыми
диапазонами ячеек, а также формулы.
Величина R2 называется
коэффициентом
детерминации.
Задачей построения
регрессионной зависимости является
нахождение вектора коэффициентов m
модели (1) при котором коэффициент R
принимает максимальное значение.
Для оценки значимости
R применяется F-критерий Фишера, вычисляемый
по формуле

где n
— размер выборки (количество экспериментов);
k — число коэффициентов
модели.
Если F превышает
некоторое критическое значение для
данных n
и k
и принятой доверительной вероятности,
то величина R считается существенной.
Таблицы критических значений F приводятся
в справочниках по математической
статистике.
Таким образом,
значимость R определяется не только его
величиной, но и соотношением между
количеством экспериментов и количеством
коэффициентов (параметров) модели.
Действительно, корреляционное отношение
для n=2 для простой линейной модели равно
1 (через 2 точки на плоскости можно всегда
провести единственную прямую). Однако
если экспериментальные данные являются
случайными величинами, доверять такому
значению R следует с большой осторожностью.
Обычно для получения значимого R и
достоверной регрессии стремятся к тому,
чтобы количество экспериментов
существенно превышало количество
коэффициентов модели (n>k).
Для построения
линейной регрессионной модели необходимо:
1) подготовить
список из n строк и m столбцов, содержащий
экспериментальные данные (столбец,
содержащий выходную величину Y
должен быть
либо первым, либо последним в списке);
для примера возьмем данные предыдущего
задания, добавив столбец с названием
«№ периода», пронумеруем номера
периодов от 1 до 12. (это будут значения
Х)
2) обратиться к
меню Данные/Анализ
данных/Регрессия

Если пункт «Анализ
данных» в
меню «Сервис» отсутствует,
то следует обратиться к пункту
«Надстройки» того
же меню и установить флажок «Пакет
анализа».
3) в диалоговом
окне «Регрессия» задать:
·
входной интервал Y;
·
входной интервал X;
·
выходной интервал — верхняя левая ячейка
интервала, в который будут помещаться
результаты вычислений (рекомендуется
разместить на новом рабочем листе);

4) нажать «Ok»
и проанализировать результаты.
Метод наименьших квадратов: формулы, код и применение
Традиционно в машинном обучении, при анализе данных, перед разработчиком ставится проблема построения объясняющей эти данные модели, которая должна сделать жизнь проще и понятней тому, кто этой моделью начинает пользоваться. Обычно это модель некоторого объекта/процесса, данные о котором собираются при регистрации ряда его параметров. Полученные данные, после выполнения различных подготовительных процедур, представляются в виде таблицы с числовыми данными (где строка – объект, а столбец – параметр), которые необходимо обработать, подставив их в те или иные формулы и посчитать по ним, используя какой-нибудь язык программирования.

Одним из часто встречающихся на практике методе, используемый в самых различных его модификациях, является метод наименьших квадратов (МНК). Этот метод был опубликован в современном виде более двухсот лет назад, именно поэтому особенное удивление вызывает то, что этот хрестоматийным метод не описан максимально подробно на самых популярных ресурсах, просвещённых анализу данных. Поэтому разработчик в попытках самостоятельно разобраться с МНК обращается к чтению самых различных бумажных и электронных изданий. После чего желание разобраться быстро улетучивается по причине того, что авторы этих ресурсов особо не «заморачиваются» над объяснениями выполняемых ими преобразований и допущений.
Обычно объяснение метода представляется в виде:
-
перегруженного математическими абстракциями «классического описания»;
-
«готовой процедурки», в которой выполняется программная реализация неких конечных выражений, полученных при каких-то начальных условиях.

Первый вид объяснения вызывает полное отторжение у новичка в виду отсутствия должного уровня математической подготовки и представляется непонятным нагромождением формул. А второй вид представляется неким черным ящиком, из которого чудесным образом извлекаются правильные значения. Из чего делается вывод, что все эти «математические изыскания» лишние, а нужно лишь найти на просторах интернета правильную процедуру и «прикрутить» её в проект, где она начинает выдавать значения «похожие на правильные». Подобный ситуативный путь решения проблемы разработчиком приводит к тому, что корректно проверить, модифицировать найденный код не представляется возможным и, соответственно, верифицировать получаемый результат тоже.
Триада
Данные проблемы возникают из-за того, что при описании МНК не описывается путь перехода от математического описания метода к его программной реализации. Данная проблема была давно преодолена одним из отцов-основателей математического моделирования в нашей стране академиком Самарским А.А., который предложил универсальную методологию вычислительного эксперимента в виде триады «модель-алгоритм-программа».

Из предложенной схемы становится видно, что путь от модели объекта к программе лежит через её алгоритмическое описание. Таким образом, в представленной парадигме для детального объяснения МНК нужно:
-
описать математическую модель объекта/процесса, анализируемые параметры которой формализуются в виде некой функциональной зависимости;
-
синтезировать алгоритм оценки искомых параметров модели на основе МНК;
-
выполнить программную реализацию полученного алгоритма.
Попробуем абстракции последних абзацев пояснить на примере. Пусть в качестве моделируемого объекта будем рассматривать процесс измерения термометром температуры печи, которая линейно зависит от времени и флуктуирует в области истинного значения по нормальному закону. Необходимо по выполненным измерениям определить зависимость, по которой изменяется температура в печи. При этом ошибка найденной зависимости должна быть минимальной.
В качестве анализируемых данных будем рассматривать n значений температуры, измеренной в градусах, получаемые с использованием термометра и зависящие от времени. Эти данные представим в виде таблицы, где строки – это объекты, первый столбец – набор параметров (j=1), второй столбец – набор измеренных ответов:

т.е. случайная величина, распределённая по закону Гаусса с фиксированным значением среднеквадратического отклонения (СКО), нулевым математическим ожиданием (МО) и с автокорреляционной функцией в виде дельта-функции.
Ниже приведен код, генерирующий набор данных на python. Для реализации приведенного в статье кода потребуется импортировать несколько библиотек.
import random
import matplotlib.pyplot as plt
import numpy as np

def datasets_make_regression(coef, data_size, noise_sigma, random_state):
x = np.arange(0, data_size, 1.)
mu = 0.0
random.seed(random_state)
noise = np.empty((data_size, 1))
y = np.empty((data_size, 1))
for i in range(data_size):
noise[i] = random.gauss(mu, noise_sigma)
y[i] = coef[0] + coef[1]*x[i] + noise[i]
return x, y
coef_true = [34.2, 2.] # весовые коэффициенты
data_size = 200 # размер генерируемого набора данных
noise_sigma = 10 # СКО шума в данных
random_state = 42
x_scale, y_estimate = datasets_make_regression(coef_true, data_size, noise_sigma, random_state)
plt.plot(x_scale, y_estimate, 'o')
plt.xlabel('x (порядковый номер измерения)', fontsize=14)
plt.ylabel('y (оценка температуры)', fontsize=14)
Сгенерированный набор данных будет иметь вид

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

Второе описание математической модели. Общее описание линейной модели.
Поскольку по условию задачи мы рассматриваем линейную зависимость, на которую влияет шум, имеющий нормальное распределение с нулевым средним значением, то используем линейную относительно параметров модель, а метрикой выберем расчёт СКО ошибки

Третье описание математической модели. Модель конкретизирована под условия примера.
Поскольку по условию задачи мы рассматриваем линейную зависимость одного параметра (поскольку j=1, то далее эту зависимость при описании опустим), на оценку которого влияет шум, имеющий нормальное распределение, то используем линейную модель с двумя коэффициентами

Обсуждение моделей
Было рассмотрено три модели, описывающих процесс изменения температуры в печи. Первая модель описана в наиболее общем виде, а третья приведена в виде, наиболее соответствующем начальным условиям задачи. В третьей модели учтен линейный закон изменения температуры (используется линейная модель) и нормальный закон распределения шума в измерениях (используется квадратичная функция ошибки).
Хочется отметить, что параметры математической модели процесса изменения температуры, описанной в выражении (2), в принципе, могут находиться не только методом наименьших квадратов, поскольку метрика с квадратичной функцией ошибки в явном виде не прописана. Такая общая форма записи приведена, поскольку не представляется возможным в кратком виде привести все возможные модификации МНК, у которого минимизация для различных условий может выполняться также различно.
В выражениях (3) и (4) линейные модели отличаются только количеством учитываемых параметров, причем третья модель – это редуцированная вторая модель, у которой только два коэффициента (один свободный и один весовой коэффициенты).
Далее с использованием выражения (4) и МНК, синтезируем алгоритмы, оценивающие параметры модели.
Алгоритмы и реализующие их программы
Далее будут выведены три алгоритма, результат работы которых позволит определить зависимость изменения температуры печи от времени. Последовательно сложность конечных выражений, используемых в алгоритмах, будет понижаться. Эти алгоритмы приведены для того, чтобы полученные выражения, можно было соотнести с классическими изданиями.

Начнем с применения правила дифференцирования функции представленной в виде суммы

применим правило дифференцирования сложной функции

применим правило дифференцирования функции представленной в виде суммы


применим правило дифференцирования функции представленной в виде суммы

Приравняем полученные производные к нулю и решим полученную систему уравнений

Раскроем скобки

Вынесем постоянные множители за скобки

Вынесем слагаемые с множителем «y» в правую часть уравнений

Поставим слагаемые с множителем «x» в левой части в порядке убывания степеней

Для решения полученной системы алгебраических уравнения представим её в матричной форме

Выразим вектор w* с искомыми весами выполнив умножение обеих частей равенства на обратную матрицу y

Полученное выражение (5) является решением системы уравнений и его можно уже использовать в качестве первого алгоритма оценки параметров модели. Ниже приведен код реализующий этот алгоритм.
def coefficient_reg_inv(x, y):
size = len(x)
# формируем и заполняем матрицу размерностью 2x2
A = np.empty((2, 2))
A[[0], [0]] = sum((x[i])**2 for i in range(0,size))
A[[0], [1]] = sum(x)
A[[1], [0]] = sum(x)
A[[1], [1]] = size
# находим обратную матрицу
A = np.linalg.inv(A)
# формируем и заполняем матрицу размерностью 2x1
C = np.empty((2, 1))
C[0] = sum((x[i]*y[i]) for i in range(0,size))
C[1] = sum((y[i]) for i in range(0,size))
# умножаем матрицу на вектор
ww = np.dot(A, C)
return ww[1], ww[0]
[w0_1, w1_1] = coefficient_reg_analit(x_scale, y_estimate)
print(w0_1, w1_1)
Результат работы алгоритма:
[33.93193341] [2.01436546]
Выражение (5) можно упростить, выполнив аналитический расчет обратной матрицы.
Найти обратную матрицу можно с использованием, например, алгебраических дополнений. Для пояснения поиска обратной матрицы введем новую переменную A. Пусть

Перепишем выражение (5) в виде

Упростим выражение раскрыв скобки, чтобы получить более компактную форму записи

Теперь решение системы уравнений имеет вид

Полученное выражение (6) можно использовать в качестве второго алгоритма оценки параметров модели. Ниже приведен код, реализующий этот алгоритм.
def coefficient_reg_inv_analit(x, y):
size = len(x)
# выполним расчет числителя первого элемента вектора
numerator_w1 = size*sum(x[i]*y[i] for i in range(0,size)) - sum(x)*sum(y)
# выполним расчет знаменателя (одинаковый для обоих элементов вектора)
denominator = size*sum((x[i])**2 for i in range(0,size)) - (sum(x))**2
# выполним расчет числителя второго элемента вектора
numerator_w0 = -sum(x)*sum(x[i]*y[i] for i in range(0,size)) + sum((x[i])**2 for i in range(0,size))*sum(y)
# расчет искомых коэффициентов
w1 = numerator_w1/denominator
w0 = numerator_w0/denominator
return w0, w1
[w0_2, w1_2] = coefficient_reg_inv_analit(x_scale, y_estimate)
print(w0_2, w1_2)
Результат работы алгоритма:
[33.93193341] [2.01436546]
Видно, что полученный результат совпадает с результатом, полученным с использованием выражения (5).
Выполним дальнейшее упрощение полученного выражения (6), чтобы получить более компактную форму записи.

раскроем скобки:

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

С учётом введённых переменных искомый вектор w* примет вид


Таким образом итоговое выражение представим в виде:

Полученное выражение (7) можно использовать в качестве третьего алгоритмаоценки параметров модели. Ниже приведен код, реализующий этот алгоритм.
def coefficient_reg_stat(x, y):
size = len(x)
avg_x = sum(x)/len(x) # оценка МО величины x
avg_y = sum(y)/len(y) # оценка МО величины y
# оценка МО величины x*y
avg_xy = sum(x[i]*y[i] for i in range(0,size))/size
# оценка СКО величины x
std_x = (sum((x[i] - avg_x)**2 for i in range(0,size))/size)**0.5
# оценка СКО величины y
std_y = (sum((y[i] - avg_y)**2 for i in range(0,size))/size)**0.5
# оценка коэффициента корреляции величин x и y
corr_xy = (avg_xy - avg_x*avg_y)/(std_x*std_y)
# расчет искомых коэффициентов
w1 = corr_xy*std_y/std_x
w0 = avg_y - avg_x*w1
return w0, w1
[w0_3, w1_3] = coefficient_reg_stat(x_scale, y_estimate)
print(w0_3, w1_3)
Результат работы алгоритма:
[33.93193341] [2.01436546]
Сравним полученные значения с результатом работы процедуры библиотеки sklearn.
from sklearn.linear_model import LinearRegression
# преобразование размерности массива x_scale для корректной работы model.fit
x_scale = x_scale.reshape((-1,1))
model = LinearRegression()
model.fit(x_scale, y_estimate)
print(model.intercept_, model.coef_)
Результат работы алгоритма:
[33.93193341] [2.01436546]
Видно, что полученный результат полностью совпадает с результатами, полученными ранее.
Итак, визуализируем полученный результат, построив прямую с использованием рассчитанных коэффициентов и сопоставим их с исходными данными (рисунок 2).
def predict(w0, w1, x_scale):
y_pred = [w0 + val*w1 for val in x_scale]
return y_pred
y_predict = predict(w0_1, w1_1, x_scale)
plt.plot(x_scale, y_estimate, 'o', label = 'Истинные значения')
plt.plot(x_scale, y_predict, '*', label = 'Расчетные значения')
plt.legend(loc = 'best', fontsize=12)
plt.xlabel('x (порядковый номер измерения)', fontsize=14)
plt.ylabel('y (оценка температуры)', fontsize=14)

Обсуждение алгоритмов
Таким образом удалось выполнить оценку параметров модели, которая описывает процесс изменения температуры в печи с минимальной ошибкой. Выведенные выражения (5) – (7) и запрограммированные по ним три алгоритма, реализующие МНК при обработке одного набора измеренных температур, хотя и отличаются видом конечных выражений, дают одинаковые оценки. Последовательный вывод выражений, выполненный в статье, показывает, что эти выражения по сути «делают» одно и тоже, однако, позволяют давать различные интерпретации. При этом хочется отметить, что в алгоритмах (6) – (7) удалось уйти от процедуры обращения матрицы, которая при обработке реальных данных может выполняться нестабильно.
Ещё один пример. Анализируем остатки.

-
количество выбросов в выборке равно 10;
-
длительность импульса равна 1-му измерению;
-
амплитуда импульса равна 256;
-
позиция первого импульса соответствует 10-му измерению;
-
период следования импульсов – каждые 20 измерений.
ni = 10 # количество выбросов
ind_impuls = np.arange(ni, data_size, 20) # индексы выбросов
y_estimate_imp = y_estimate.copy() # выборка с выбросами
for i in range(0, ni):
y_estimate_imp[ind_impuls[i]] += 256
[w0_imp, w1_imp] = coefficient_reg_stat(x_scale, y_estimate_imp)
y_pred_imp = predict(w0_imp, w1_imp, x_scale)
plt.plot(x_scale, y_estimate_imp, 'o', label = 'Истинные значения')
plt.plot(x_scale, y_pred_imp, '*', label = 'Расчетные значения')
plt.legend(loc = 'best', fontsize=12)
plt.xlabel('x (порядковый номер измерения)', fontsize=14)
plt.ylabel('y (оценка температуры)', fontsize=14)

На рисунке 3 видно, что появление выбросов сместило, рассчитанную по выражению (7) прямую в вверх. Модифицируем алгоритм оценки параметров модели за счет новой метрики, а именно оценки квадратов разности между измеренными и модельными данными, которая выполняется по выражению

Ниже приведен код, который выполняет этот расчет (8) и визуализирует полученный результат (рисунок 4).
SqErr = (y_pred_imp - y_estimate_imp)**2
plt.plot(x_scale, SqErr, 'o')
plt.xlabel('x (порядковый номер измерения)', fontsize=14)
plt.ylabel('Квадрат ошибки', fontsize=14)

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

def censor_data(SqErr, nCensor):
# индексы отсортированного во возрастанию массива с квадратами ошибок
I = np.argsort(SqErr[:,0])
ind_imp = I[-nCensor:]
ind_imp = ind_imp[::-1] # разворот индексов массива
w0 = np.empty((nCensor, 1))
w1 = np.empty((nCensor, 1))
for i in range(0,nCensor):
# цензурирование данных
x_scale_cens = np.delete(x_scale, ind_imp[0:i], 0)
y_estimate_imp_cens = np.delete(y_estimate_imp, ind_imp[0:i], 0)
# расчёт параметров модельной прямой
w0[i], w1[i] = coefficient_reg_stat(x_scale_cens, y_estimate_imp_cens)
y_pred2_cens = predict(w0[i], w1[i], x_scale_cens)
return w0, w1
nCensor = 20 # количество отбрасываемых выбросов
[w0_с, w1_с] = censor_data(SqErr, nCensor)
plt.plot(coef_true[0], coef_true[1], 'o', label = 'Истинные значения')
plt.plot(w0_с, w1_с, '-*', label = 'Расчетные значения')
plt.legend(loc = 'best', fontsize=12)
plt.xlim((30, 50))
plt.ylim((1.85, 2.15))
plt.xlabel('w0', fontsize=18)
plt.ylabel('w1', fontsize=18)
По итогам работы алгоритма построим полученные оценки параметров модели (рисунок 5) по мере цензурирования данных.

В результате работы рассматриваемого алгоритма видно (рисунок 5), что по мере цензурирования помеховых данных параметры модели приближаются к истинным (точка с оценкой параметров возле i=1 получена после удаления первой точки, точка с оценкой параметров возле i=20 получена после удаления двадцатой точки).
Ниже приведен код, который рассчитывает и строит на графике прямую (рисунок 6) с использованием параметров модели, полученной на последнем шаге алгоритма c цензурированием. На этом рисунке видно, что использование дополнительной процедуры цензурирования данных на основе анализа остаточной суммы квадратов, позволяет улучшить согласование оцениваемых параметров с истинными.
y_pred_censor = predict(w0_с[nCensor-1], w1_с[nCensor-1], x_scale)
plt.plot(x_scale, y_estimate_imp, 'o', label = 'Истинные значения')
plt.plot(x_scale, y_pred_censor, '*', label = 'Расчетные значения')
plt.legend(loc = 'best', fontsize=12)
plt.xlabel('X (порядковый номер измерения)', fontsize=14)
plt.ylabel('Y (оценка температуры)', fontsize=14)

Обсуждение алгоритма
Был рассмотрен алгоритм оценки параметров модели, которая описывает процесс изменения температуры в печи при наличии помех в измерениях. Показано, как зная логику построения алгоритма его можно модифицировать под изменившиеся условия и получить необходимый результат (оценку параметров модели).
Безусловно, что приведенный в статье алгоритм оценки параметров модели с использованием процедуры цензурирования импульсных помеховых сигналов (в том виде, в котором он приведен в статье) не является оптимальным и универсальным. Он приведен здесь для иллюстрации возможностей модификации алгоритма, реализующего классический МНК. А также для демонстрации ещё одной важной метрики при использовании МНК – оценка квадратов разности между измеренными и модельными данными (8), которая является источником множества различных модификаций метода.
Заключение
В статье делается попытка «расколдовать» классический МНК, а также продемонстрировать удобство методологической интерпретации решения задачи в виде триады «модель-алгоритм-программа», которая позволяет осуществить бесшовный переход от модельной постановки задачи и задания начальных условий до её программной реализации. Ставилась задача в максимально доступной для читателя форме продемонстрировать последовательность математической мысли при решении задачи с применением МНК. Показать, как начальные условия влияют на полученные конечные выражения. Автор надеется, что статья будет полезной для всех тех, кто при решении различных задач анализа данных попытается применить или модифицировать классические методы и для этого попробует также с «карандашом в руках» выполнить вывод конечных выражений. Этот подход позволит разработчику применять на практике понятные для него алгоритмы, а не код, который работает «по неведомым» правилам.
Метод наименьших квадратов регрессия
Метод наименьших квадратов (МНК) заключается в том, что сумма квадратов отклонений значений y от полученного уравнения регрессии — минимальное. Уравнение линейной регрессии имеет вид
y=ax+b
a, b – коэффициенты линейного уравнения регрессии;
x – независимая переменная;
y – зависимая переменная.
Нахождения коэффициентов уравнения линейной регрессии через метод наименьших квадратов:

частные производные функции приравниваем к нулю

отсюда получаем систему линейных уравнений

Формулы определения коэффициентов уравнения линейной регрессии:

Также запишем уравнение регрессии для квадратной нелинейной функции:

Система линейных уравнений регрессии полинома n-ого порядка:

Формула коэффициента детерминации R 2 :

Формула средней ошибки аппроксимации для уравнения линейной регрессии (оценка качества модели):

Чем меньше ε, тем лучше. Рекомендованный показатель ε
Формула среднеквадратической погрешности: 
Для примера, проведём расчет для получения линейного уравнения регрессии аппроксимации функции, заданной в табличном виде:
| x | y |
| 3 | 4 |
| 4 | 7 |
| 6 | 11 |
| 7 | 16 |
| 9 | 18 |
| 11 | 22 |
| 13 | 24 |
| 15 | 27 |
| 16 | 30 |
| 19 | 33 |
Решение
Расчеты значений суммы, произведения x и у приведены в таблицы.

Расчет коэффициентов линейной регрессии:

при этом средняя ошибка аппроксимации равна:
ε=11,168%
Получаем уравнение линейной регрессии с помощью метода наименьших квадратов:
y=1,7871x+0,79
График функции линейной зависимости y=1,7871x+0,79 и табличные значения, в виде точек

Коэффициент корреляции равен 0,988
Коэффициента детерминации равен 0,976
Решения задач: метод наименьших квадратов
Метод наименьших квадратов применяется для решения различных математических задач и основан на минимизации суммы квадратов отклонений функций от исходных переменных. Мы рассмотриваем его приложение к математической статистике в простейшем случае, когда нужно найти зависимость (парную линейную регрессию) между двумя переменными, заданными выборочными данным. В этом случае речь идет об отклонениях теоретических значений от экспериментальных.
Краткая инструкция по методу наименьших квадратов для чайников: определяем вид предполагаемой зависимости (чаще всего берется линейная регрессия вида $y(x)=ax+b$), выписываем систему уравнений для нахождения параметров $a, b$. По экспериментальным данным проводим вычисления и подставляем значения в систему, решаем систему любым удобным методом (для размерности 2-3 можно и вручную). Получается искомое уравнение.
Иногда дополнительно к нахождению уравнения регрессии требуется: найти остаточную дисперсию, сделать прогноз значений, найти значение коэффициента корреляции, проверить качество аппроксимации и значимость модели. Примеры решений вы найдете ниже. Удачи в изучении!
Примеры решений МНК
Пример 1. Методом наименьших квадратов для данных, представленных в таблице, найти линейную зависимость
Пример 2. Прибыль фирмы за некоторый период деятельности по годам приведена ниже:
Год 1 2 3 4 5
Прибыль 3,9 4,9 3,4 1,4 1,9
1) Составьте линейную зависимость прибыли по годам деятельности фирмы.
2) Определите ожидаемую прибыль для 6-го года деятельности. Сделайте чертеж.
Пример 3. Экспериментальные данные о значениях переменных х и y приведены в таблице:
1 2 4 6 8
3 2 1 0,5 0
В результате их выравнивания получена функция Используя метод наименьших квадратов, аппроксимировать эти данные линейной зависимостью (найти параметры а и b). Выяснить, какая из двух линий лучше (в смысле метода наименьших квадратов) выравнивает экспериментальные данные. Сделать чертеж.
Пример 4. Данные наблюдений над случайной двумерной величиной (Х, Y) представлены в корреляционной таблице. Методом наименьших квадратов найти выборочное уравнение прямой регрессии Y на X.
Пример 5. Считая, что зависимость между переменными x и y имеет вид $y=ax^2+bx+c$, найти оценки параметров a, b и c методом наименьших квадратов по выборке:
x 7 31 61 99 129 178 209
y 13 10 9 10 12 20 26
Пример 6. Проводится анализ взаимосвязи количества населения (X) и количества практикующих врачей (Y) в регионе.
Годы 81 82 83 84 85 86 87 88 89 90
X, млн. чел. 10 10,3 10,4 10,55 10,6 10,7 10,75 10,9 10,9 11
Y, тыс. чел. 12,1 12,6 13 13,8 14,9 16 18 20 21 22
Оцените по МНК коэффициенты линейного уравнения регрессии $y=b_0+b_1x$.
Существенно ли отличаются от нуля найденные коэффициенты?
Проверьте значимость полученного уравнения при $alpha = 0,01$.
Если количество населения в 1995 году составит 11,5 млн. чел., каково ожидаемое количество врачей? Рассчитайте 99%-й доверительный интервал для данного прогноза.
Рассчитайте коэффициент детерминации
Основы линейной регрессии
Что такое регрессия?
Разместим точки на двумерном графике рассеяния и скажем, что мы имеем линейное соотношение, если данные аппроксимируются прямой линией.
Если мы полагаем, что y зависит от x, причём изменения в y вызываются именно изменениями в x, мы можем определить линию регрессии (регрессия y на x), которая лучше всего описывает прямолинейное соотношение между этими двумя переменными.
Статистическое использование слова «регрессия» исходит из явления, известного как регрессия к среднему, приписываемого сэру Френсису Гальтону (1889).
Он показал, что, хотя высокие отцы имеют тенденцию иметь высоких сыновей, средний рост сыновей меньше, чем у их высоких отцов. Средний рост сыновей «регрессировал» и «двигался вспять» к среднему росту всех отцов в популяции. Таким образом, в среднем высокие отцы имеют более низких (но всё-таки высоких) сыновей, а низкие отцы имеют сыновей более высоких (но всё-таки довольно низких).
Линия регрессии
Математическое уравнение, которое оценивает линию простой (парной) линейной регрессии:
x называется независимой переменной или предиктором.
Y – зависимая переменная или переменная отклика. Это значение, которое мы ожидаем для y (в среднем), если мы знаем величину x, т.е. это «предсказанное значение y»
- a – свободный член (пересечение) линии оценки; это значение Y, когда x=0 (Рис.1).
- b – угловой коэффициент или градиент оценённой линии; она представляет собой величину, на которую Y увеличивается в среднем, если мы увеличиваем x на одну единицу.
- a и b называют коэффициентами регрессии оценённой линии, хотя этот термин часто используют только для b.
Парную линейную регрессию можно расширить, включив в нее более одной независимой переменной; в этом случае она известна как множественная регрессия.
Рис.1. Линия линейной регрессии, показывающая пересечение a и угловой коэффициент b (величину возрастания Y при увеличении x на одну единицу)
Метод наименьших квадратов
Мы выполняем регрессионный анализ, используя выборку наблюдений, где a и b – выборочные оценки истинных (генеральных) параметров, α и β , которые определяют линию линейной регрессии в популяции (генеральной совокупности).
Наиболее простым методом определения коэффициентов a и b является метод наименьших квадратов (МНК).
Подгонка оценивается, рассматривая остатки (вертикальное расстояние каждой точки от линии, например, остаток = наблюдаемому y – предсказанный y, Рис. 2).
Линию лучшей подгонки выбирают так, чтобы сумма квадратов остатков была минимальной.
Рис. 2. Линия линейной регрессии с изображенными остатками (вертикальные пунктирные линии) для каждой точки.
Предположения линейной регрессии
Итак, для каждой наблюдаемой величины остаток равен разнице
и соответствующего предсказанного
Каждый остаток может быть положительным или отрицательным.
Можно использовать остатки для проверки следующих предположений, лежащих в основе линейной регрессии:
- Остатки нормально распределены с нулевым средним значением;
Если допущения линейности, нормальности и/или постоянной дисперсии сомнительны, мы можем преобразовать или
и рассчитать новую линию регрессии, для которой эти допущения удовлетворяются (например, использовать логарифмическое преобразование или др.).
Аномальные значения (выбросы) и точки влияния
«Влиятельное» наблюдение, если оно опущено, изменяет одну или больше оценок параметров модели (т.е. угловой коэффициент или свободный член).
Выброс (наблюдение, которое противоречит большинству значений в наборе данных) может быть «влиятельным» наблюдением и может хорошо обнаруживаться визуально, при осмотре двумерной диаграммы рассеяния или графика остатков.
И для выбросов, и для «влиятельных» наблюдений (точек) используют модели, как с их включением, так и без них, обращают внимание на изменение оценки (коэффициентов регрессии).
При проведении анализа не стоит отбрасывать выбросы или точки влияния автоматически, поскольку простое игнорирование может повлиять на полученные результаты. Всегда изучайте причины появления этих выбросов и анализируйте их.
Гипотеза линейной регрессии
При построении линейной регрессии проверяется нулевая гипотеза о том, что генеральный угловой коэффициент линии регрессии β равен нулю.
Если угловой коэффициент линии равен нулю, между и
нет линейного соотношения: изменение
не влияет на
Для тестирования нулевой гипотезы о том, что истинный угловой коэффициент равен нулю можно воспользоваться следующим алгоритмом:
Вычислить статистику критерия, равную отношению , которая подчиняется
распределению с
степенями свободы, где
стандартная ошибка коэффициента
,
— оценка дисперсии остатков.
Обычно если достигнутый уровень значимости нулевая гипотеза отклоняется.
Можно рассчитать 95% доверительный интервал для генерального углового коэффициента :
где процентная точка
распределения со степенями свободы
что дает вероятность двустороннего критерия
Это тот интервал, который содержит генеральный угловой коэффициент с вероятностью 95%.
Для больших выборок, скажем, мы можем аппроксимировать
значением 1,96 (то есть статистика критерия будет стремиться к нормальному распределению)
Оценка качества линейной регрессии: коэффициент детерминации R 2
Из-за линейного соотношения и
мы ожидаем, что
изменяется, по мере того как изменяется
, и называем это вариацией, которая обусловлена или объясняется регрессией. Остаточная вариация должна быть как можно меньше.
Если это так, то большая часть вариации будет объясняться регрессией, а точки будут лежать близко к линии регрессии, т.е. линия хорошо соответствует данным.
Долю общей дисперсии , которая объясняется регрессией называют коэффициентом детерминации, обычно выражают через процентное соотношение и обозначают R 2 (в парной линейной регрессии это величина r 2 , квадрат коэффициента корреляции), позволяет субъективно оценить качество уравнения регрессии.
Разность представляет собой процент дисперсии который нельзя объяснить регрессией.
Нет формального теста для оценки мы вынуждены положиться на субъективное суждение, чтобы определить качество подгонки линии регрессии.
Применение линии регрессии для прогноза
Можно применять регрессионную линию для прогнозирования значения по значению
в пределе наблюдаемого диапазона (никогда не экстраполируйте вне этих пределов).
Мы предсказываем среднюю величину для наблюдаемых, которые имеют определенное значение
путем подстановки этого значения
в уравнение линии регрессии.
Итак, если прогнозируем
как
Используем эту предсказанную величину и ее стандартную ошибку, чтобы оценить доверительный интервал для истинной средней величины
в популяции.
Повторение этой процедуры для различных величин позволяет построить доверительные границы для этой линии. Это полоса или область, которая содержит истинную линию, например, с 95% доверительной вероятностью.
Подобным образом можно рассчитать более широкую область, внутри которой, как мы ожидаем, лежит наибольшее число (обычно 95%) наблюдений.
Простые регрессионные планы
Простые регрессионные планы содержат один непрерывный предиктор. Если существует 3 наблюдения со значениями предиктора P , например, 7, 4 и 9, а план включает эффект первого порядка P , то матрица плана X будет иметь вид
а регрессионное уравнение с использованием P для X1 выглядит как
Если простой регрессионный план содержит эффект высшего порядка для P , например квадратичный эффект, то значения в столбце X1 в матрице плана будут возведены во вторую степень:
а уравнение примет вид
Y = b 0 + b 1 P 2
Сигма -ограниченные и сверхпараметризованные методы кодирования не применяются по отношению к простым регрессионным планам и другим планам, содержащим только непрерывные предикторы (поскольку, просто не существует категориальных предикторов). Независимо от выбранного метода кодирования, значения непрерывных переменных увеличиваются в соответствующей степени и используются как значения для переменных X . При этом перекодировка не выполняется. Кроме того, при описании регрессионных планов можно опустить рассмотрение матрицы плана X , а работать только с регрессионным уравнением.
Пример: простой регрессионный анализ
Этот пример использует данные, представленные в таблице:

Рис. 3. Таблица исходных данных.
Данные составлены на основе сравнения переписей 1960 и 1970 в произвольно выбранных 30 округах. Названия округов представлены в виде имен наблюдений. Информация относительно каждой переменной представлена ниже:

Рис. 4. Таблица спецификаций переменных.
Задача исследования
Для этого примера будут анализироваться корреляция уровня бедности и степень, которая предсказывает процент семей, которые находятся за чертой бедности. Следовательно мы будем трактовать переменную 3 ( Pt_Poor ) как зависимую переменную.
Можно выдвинуть гипотезу: изменение численности населения и процент семей, которые находятся за чертой бедности, связаны между собой. Кажется разумным ожидать, что бедность ведет к оттоку населения, следовательно, здесь будет отрицательная корреляция между процентом людей за чертой бедности и изменением численности населения. Следовательно мы будем трактовать переменную 1 ( Pop_Chng ) как переменную-предиктор.
Просмотр результатов
Коэффициенты регрессии

Рис. 5. Коэффициенты регрессии Pt_Poor на Pop_Chng.
На пересечении строки Pop_Chng и столбца Парам. не стандартизованный коэффициент для регрессии Pt_Poor на Pop_Chng равен -0.40374 . Это означает, что для каждого уменьшения численности населения на единицу, имеется увеличение уровня бедности на .40374. Верхний и нижний (по умолчанию) 95% доверительные пределы для этого не стандартизованного коэффициента не включают ноль, так что коэффициент регрессии значим на уровне p . Обратите внимание на не стандартизованный коэффициент, который также является коэффициентом корреляции Пирсона для простых регрессионных планов, равен -.65, который означает, что для каждого уменьшения стандартного отклонения численности населения происходит увеличение стандартного отклонения уровня бедности на .65.
Распределение переменных
Коэффициенты корреляции могут стать существенно завышены или занижены, если в данных присутствуют большие выбросы. Изучим распределение зависимой переменной Pt_Poor по округам. Для этого построим гистограмму переменной Pt_Poor .

Рис. 6. Гистограмма переменной Pt_Poor.
Как вы можете заметить, распределение этой переменной заметно отличается от нормального распределения. Тем не менее, хотя даже два округа (два правых столбца) имеют высокий процент семей, которые находятся за чертой бедности, чем ожидалось в случае нормального распределения, кажется, что они находятся «внутри диапазона.»

Рис. 7. Гистограмма переменной Pt_Poor.
Это суждение в некоторой степени субъективно. Эмпирическое правило гласит, что выбросы необходимо учитывать, если наблюдение (или наблюдения) не попадают в интервал (среднее ± 3 умноженное на стандартное отклонение). В этом случае стоит повторить анализ с выбросами и без, чтобы убедиться, что они не оказывают серьезного эффекта на корреляцию между членами совокупности.
Диаграмма рассеяния
Если одна из гипотез априори о взаимосвязи между заданными переменными, то ее полезно проверить на графике соответствующей диаграммы рассеяния.

Рис. 8. Диаграмма рассеяния.
Диаграмма рассеяния показывает явную отрицательную корреляцию ( -.65 ) между двумя переменными. На ней также показан 95% доверительный интервал для линии регрессии, т.е., с 95% вероятностью линия регрессии проходит между двумя пунктирными кривыми.
Критерии значимости

Рис. 9. Таблица, содержащая критерии значимости.
Критерий для коэффициента регрессии Pop_Chng подтверждает, что Pop_Chng сильно связано с Pt_Poor , p .
На этом примере было показано, как проанализировать простой регрессионный план. Была также представлена интерпретация не стандартизованных и стандартизованных коэффициентов регрессии. Обсуждена важность изучения распределения откликов зависимой переменной, продемонстрирована техника определения направления и силы взаимосвязи между предиктором и зависимой переменной.
источники:
http://www.matburo.ru/ex_ms.php?p1=msmnk
http://statistica.ru/theory/osnovy-lineynoy-regressii/