Метод наименьших квадратов (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)2→min⁡ (1) \sum_{i=1}^n (f(t_i) - y_i)^2 \rarr \min

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

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

∑i=1n(a∗ti+b−yi)2→min⁡ \sum_{i=1}^n(a*t_i + b - y_i)^2 \rarr \min

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

∑i=1n((a∗ti+b−yi)∗ti)=0 \sum_{i=1}^n((a*t_i + b - y_i)*t_i) = 0

∑i=1n(a∗ti+b−yi)=0 \sum_{i=1}^n(a*t_i + b - y_i) = 0

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

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

∑i=1n(yi∗ti)=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=b∗N, \sum_{i=1}^nb = b*N,

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

a∗stt+b∗st−syt=0 a*stt + b*st - syt = 0

a∗st+b∗N−sy=0 a*st +b*N - sy = 0

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

a=(syt∗N−sy∗st)/(N∗stt−st∗st) a = (syt*N - sy*st)/(N*stt - st*st)

b=(stt∗sy−syt∗st)/(N∗stt−st∗st) b = (stt*sy - syt*st)/(N*stt - st*st)