Урок 1. Погрешности обработки данных

Текст урока с работающими фрагментами расчетов в файле uroki-approksimacii.xls

 

 

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

 

Y=a+b1*X1+b2*X2+...bn*Xn,

 

где требуется определить свободный член a и коэффициенты b1, b2,...bn при переменных X1, X2,...Xn. Если бы не было погрешностей, то достаточно было бы сделать n+1 замеров Y при разных значениях указанных переменных и, решив систему уравнений, найти значения свободного члена и коэффициентов. Hо каждое значение переменной содержит погрешность и замеров приходится делать намного больше, чем n+1. А при наличии такого большого количества замеров возникает проблема как сгруппировать данные таким образом, чтобы ошибки в них взаимно уничтожались. Первое, что мы можем сделать - это сложить все значения по группам переменных и перейти к средним величинам, которые в целях различия с исходными переменными обозначим и выделим курсивом.

 

Y=a+b1*X1+b2*X2+...bn*Xn

 

Далее мы можем перемножить левую и правую части исходного уравнения

 

Y=a+b1*X1+b2*X2+...bn*Xn

 

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

 

Y=a+b1*X1+b2*X2+...bn*Xn

 

Y*X1=a*X1+b1*X1*X1+b2*X2*X1+...bn*Xn*X1

 

Y*X2=a*X2+b1*X1*X2+b2*X2*X2+...bn*Xn*X2

 

Y*X3=a*X3+b1*X1*X3+b2*X2*X3+...bn*Xn*X3

 

............................

 

Y*Xn=a*Xn+b1*X1*Xn+b2*X2*Xn+...bn*Xn*Xn

 

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

 

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

 

Что мы можем понимать под переменными X1, X2,...Xn? Они могут быть и функционально различными переменными как, например, температура, давление и паровая нагрузка котла, и варианты одной переменной: X2=X1*X1; X3=X2*X1... и т.д. В последнем случае мы будем иметь так называемый полином:

 

Y=a+b1*X1+b2*X1^2+b3*X1^3+...bn*X1^n.

 

Кроме того, переменные Y и Xi могут быть и самыми разными комбинациями других переменных. Чтобы мы ни задали программе МHК, она в большинстве случаев справляется со своей задачей. Главное, чтобы мы сами знали смысл того, что задаем программе, и чего мы от нее хотим.

 

Hо сложное начинается с понимания простого. С этого и мы начнем. Пусть мы имеем простое уравнение вида Y=a+b*X, скажем Y=3+2*X, и соответствующую ему таблицу данных: X; Y

 


X	1	2	3	5	6	7	8	9
Y	3	9	21	45	93	189	381	765

Заложим это в программу с МHК и посмотрим, как она справится с этой задачей.

 

 

 

Чтобы не быть слишком абстрактным в апелляции к программе с МНК, постараемся несколько конкретизировать этот момент. Практически на каждом компьютере есть оффисное приложение Excel и в этом приложении есть несколько программ, использующих МНК.

 

Hа листе Excel (см. Уроки аппроксимации.xls, Лист Stat) это можно сделать примерно так. Создаем колонки независимых переменных или X-ов и колонку зависимых переменных или колонку Y-ов. В данном случае у нас будет одна колонка X и также одна колонка Y.

 

 

Hа листе Excel проделываем следующие операции:

 

- набираем символы "=Линейн(" - кавычки набирать не нужно;

 

- курсором выделяем колонку Y (без символа "Y"), затем, после нажатия и удерживания в утопленном положении клавиши Ctrl, выделяем колонку X (выделение осуществляется мышкой при утопленном положении левой кнопки);

 

- набираем символы ";1;1)" и нажимаем Enter. После этого в ячейке, где мы ввели функцию Линейн, появится только одно число - в данном случае цифра 2.

 

Далее нам надо выделить достаточное количество ячеек для многозначной функции Линейн. Делается это так:

 

- курсор помещается в ячейку с функцией Линейн;

 

- выделяется нужное количество ячеек справа и снизу (в данном случае достаточно выделить два столбца и три строки);

 

- нажимаем клавишу F2, затем, удерживая комбинацию клавиш Ctrl и Shift в утопленном положении нажимаем Enter.

 

Весь этот текст и примеры вам гораздо удобнее будет смотреть непосредственно на листе (Уроки аппроксимации.xls, Лист Stat), который рекомендуется вам загрузить.

 

Программа выдала a=3, b=2, стандартная погрешность dY=0. Для удобства мы скопировали эти значения под символами a, b и dY. Другие детали вы можете узнать из описания функции Линейн, имеющегося в Excel. Однако вернемся к нашей теме.

 

В нашем примере мы использовали точные значения переменных. Hо в реальности мы во многих случаях не знаем точных значений X и Y. Попробуем смоделировать ситуацию, хотя бы в части неточности значений X, и посмотреть какой получится результат. Для этого "размоем" значения X простейшим из доступных нам способов:

 

 

 

     X: 1,1 1,9 3,1 4,9 6,1 6,9 8,1 8,9  - для Y сохраним прежние значения.
   Программа выдала a=2.926, b=2.0145, dY=0.227.

    Размоем еще на столько же: X 1,2 1,8 3,2 4,8 6,2 6,8 8,2 8,8
   Программа выдала a=2.878, b=2.024, dY=0.456.

    И еще на столько же: X 1,3 1,7 3,3 4,7 6,3 6,7 8,3 8,7
   Программа выдала a=2.859, b=2.028, dY=0.688.

Из этого небольшого эксперимента следует, что даже если мы проведем бесконечное количество замеров, мы все равно не определим по МHК истинные значения a и b. Hо зная погрешности замеров, мы можем смоделировать ситуацию, вычислить смещение и определить несмещенные и более вероятные оценки значений a и b. Соответствующую иллюстрацию смотри в Excel.

 

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

 

Анонсы уроков аппроксимации

Copyright © 2009 - 2024 Алгоритмист | Правовая информация
Карта сайта
Яндекс.Метрика