Метод наименьших квадратов (least squares)

Пусть имеется набор значений yiy_i, каждое из которых соответствует некоторому моменту времени ti(i=1,2,,N)t_i (i = 1, 2,…, N). Требуется найти зависимость y=f(t)y = f(t), которая наилучшим образом описывала бы поведение таких дискретных данных.

Метод наименьших квадратов утверждает, что в некотором классе функций таким “наилучшим” описанием является функция (кривая), сумма квадратов отклонений которой от заданных (известных, скажем, в результате проведения эксперимента) точек yiy_i является минимальной. Т.е.

(1)i=1n(f(ti)yi)2min (1) \sum_{i=1}^n (f(t_i) - y_i)^2 \rarr \min

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

Здесь мы будем искать решение в классе линейных функций (прямая): y=at+by = at + b. Тогда условие (1) можно записать в следующем виде

i=1n(ati+byi)2min \sum_{i=1}^n(a*t_i + b - y_i)^2 \rarr \min

Необходимым условием существования минимума является равенство нулю двух частных производных по aa и bb соответственно:

i=1n((ati+byi)ti)=0 \sum_{i=1}^n((a*t_i + b - y_i)*t_i) = 0

i=1n(ati+byi)=0 \sum_{i=1}^n(a*t_i + b - y_i) = 0

В обозначениях

i=1nti2=stt \sum_{i=1}^nt_i^2 = stt

i=1n(yiti)=syt \sum_{i=1}^n(y_i*t_i) = syt

i=1n(ti)=st \sum_{i=1}^n(t_i) = st

i=1n(yi)=sy \sum_{i=1}^n(y_i) = sy

и замечая, что

i=1nb=bN, \sum_{i=1}^nb = b*N,

систему двух уравнений можно переписать в виде

astt+bstsyt=0 a*stt + b*st - syt = 0

ast+bNsy=0 a*st +b*N - sy = 0

Решая эту систему двух линейных уравнений относительно aa и bb, получим

a=(sytNsyst)/(Nsttstst) a = (syt*N - sy*st)/(N*stt - st*st)

b=(sttsysytst)/(Nsttstst) b = (stt*sy - syt*st)/(N*stt - st*st)