Параметрическая идентификация

Материал из Wiki
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 37 промежуточных версий 1 участника)
Строка 21: Строка 21:
  
 
ВАЖНОЕ НАПОМИНАНИЕ: каждая серия параллельных опытов рассматривается как один независимый (в принципе, если каждый опыт выполняется в одном и том же количестве повторностей, то это не важно, но в нашем случае, когда один опыт повторяется 6 раз, а остальные - по одному - это существенно), т.е. если все 49+6=55 опытов рассматривать как независимые, то во-первых модель будет более точно соответствовать имеющимся данным в окрестностях точки где были проведены параллельные опыты, а во-вторых - адекватность модели будет завышена, т.к. разброс параллельных опытов будет частью общего разброса. Поэтому, ДЛЯ РАСЧЁТА параметров модели мы заменяем опыты 50.1, ..., 50.6 на один опыт 50, где <math>y</math> будет равен среднему значению в опытах  50.1, 50.2, ..., 50.6. Итого: у нас всего 50 НЕЗАВИСИМЫХ опытов.  
 
ВАЖНОЕ НАПОМИНАНИЕ: каждая серия параллельных опытов рассматривается как один независимый (в принципе, если каждый опыт выполняется в одном и том же количестве повторностей, то это не важно, но в нашем случае, когда один опыт повторяется 6 раз, а остальные - по одному - это существенно), т.е. если все 49+6=55 опытов рассматривать как независимые, то во-первых модель будет более точно соответствовать имеющимся данным в окрестностях точки где были проведены параллельные опыты, а во-вторых - адекватность модели будет завышена, т.к. разброс параллельных опытов будет частью общего разброса. Поэтому, ДЛЯ РАСЧЁТА параметров модели мы заменяем опыты 50.1, ..., 50.6 на один опыт 50, где <math>y</math> будет равен среднему значению в опытах  50.1, 50.2, ..., 50.6. Итого: у нас всего 50 НЕЗАВИСИМЫХ опытов.  
На самом деле, хорошо было бы убедится, что <math>x_1</math> и <math>x_2</math> - линейно независимые (собственно, в том числе и для того чтобы они были линейно независимыми и составляются план- не являются ли  <math>x_1</math> и <math>x_2</math>  линейно зависимыми - нужно вычислить коэффициент корреляции между ними (коэффициент взаимной корреляции) и (по-хорошему) определить его значимость.  
+
На самом деле, хорошо было бы убедится, что <math>x_1</math> и <math>x_2</math> - линейно независимые (собственно, в том числе и для того чтобы они были линейно независимыми и составляются план - не являются ли  <math>x_1</math> и <math>x_2</math>  линейно зависимыми - нужно вычислить коэффициент корреляции между ними (коэффициент взаимной корреляции) и (по-хорошему) определить его значимость.  
  
<math>r_{x_1,x_2}=\frac { \cov (x_1,x_2)}{xx}</math>
+
Линейный коэффициент корреляции (или коэффициент корреляции Пирсона) - поскольку мы говорим сейчас только о линейной модели, то просто будем писать "коэффициент корреляции" вычисляется как
  
 +
<math>r_{x_1,x_2}=\frac {cov (X_1,X_2)}{\sigma_{X_1} \sigma_{X_2} }</math>
  
 +
<math>cov (X_1,X_2)</math> - это ковариация или корреляционный момент, на всякий случай напомним, что  это - размерная величина, т.е. она может принимать разные значения, а <math>r_{x_1,x_2}</math> - это безразмерная величина, она лежит в диапазоне [-1;1].
 +
 +
Ковариация вычисляется как  <math>cov (x_1,x_2)=M{(X_1-M{X_1})(X_2-M{X_2})}=\frac{\sum_{i=1}^{N}((x_{1,i}-M{X_1})(x_{2,i}-M{X_2})) }{N} = \frac{\sum_{i=1}^{N} (x_{1,i} x_{2,i} )}{N} -M{X_1}M{X_2} </math>
 +
 +
<math>M{X_1}</math> - это математическое ожидание <math>X_1</math>, т.е.  <math>M{X_1}= \frac{ \sum_{i=1}^{N} {x_1,i}}{N}</math>
 +
 +
N в нашем случае равно 50.
 +
 +
<math>\sigma_{X_1} = \sqrt {D[X_1]}= \sqrt {  \frac{\sum_{i=1}^{N} (x_{i,1}-M{X_1})^2}{N-1}}</math>
  
 
Если вдруг окажется, что <math>x_1</math> и <math>x_2</math>  линейно зависимы - то нужно или учесть это в формулах (они станут сложнее) или выкинуть часть исходных опытов (попробовать удалить один опыт, посмотреть что станет с коэффициентом корреляции и добиться того что они или станет незначимым, либо придём к выводу что <math>x_1</math> и <math>x_2</math>  линейно зависимы и нужно дальше это просто учитывать.  
 
Если вдруг окажется, что <math>x_1</math> и <math>x_2</math>  линейно зависимы - то нужно или учесть это в формулах (они станут сложнее) или выкинуть часть исходных опытов (попробовать удалить один опыт, посмотреть что станет с коэффициентом корреляции и добиться того что они или станет незначимым, либо придём к выводу что <math>x_1</math> и <math>x_2</math>  линейно зависимы и нужно дальше это просто учитывать.  
  
 
С практической точки зрения, в этом задании - просто посчитать коэффициент взаимной корреляции между <math>x_1</math> и <math>x_2</math> и сделать вывод что он мал (он по идее меньше 0,1).
 
С практической точки зрения, в этом задании - просто посчитать коэффициент взаимной корреляции между <math>x_1</math> и <math>x_2</math> и сделать вывод что он мал (он по идее меньше 0,1).
 +
 +
Для того, чтобы подобрать параметры модели нужно выбрать соответствующую метрику - функцию, по которой можно рассчитать разницу между экспериментальными точками и нашей моделью. Как правило мы выбираем квадратичную метрику - сумму квадратов отклонений. Для суммы квадратов отклонений хорошо известно много способов расчёта параметров, которые эту метрику минимизируют.
 +
 +
Одним из способов является следующий:
 +
представляем экспериментальные данные в виде матрицы <math>X</math>, причём число строк - это количество независимых опытов, а число столбцов - количество определяемых параметров.
 +
 +
Если нужно определить  <math>b_0</math> - то один из столбцов (как правило - самый левый, хотя это и не обязательно) заполняется 1. Если НЕ нужно определить  <math>b_0</math> - т.е. в модели нет  <math>b_0</math>, то и не вставляем этот столбец вообще.
 +
 +
Матрица (вектор) параметров модели может быть получена по формуле:
 +
 +
<math>B=(X^T X)^{-1} {X}^T Y</math>
 +
 +
Недостатком данного способа является то, что получаем числа, а не расчётные формулы (обычно расчётные формулы из выражений с обратными матрицами очень громоздки), поэтому при необходимости можно вывести и аналитические выражения,  [[http://msu.mguie.ru/ см.]], в частности - http://msu.mguie.ru/mnk.doc  http://msu.mguie.ru/mnk3.doc
 +
 +
 +
 +
Если нет параллельных опытов, то нужно сравнить полный разброс и объяснённый разброс:
 +
 +
<math>F=\frac{ D_y}{\sum_{i=1}^{N} (y_i-yt_i)^2 / (N-m)} </math>

Текущая версия на 16:20, 9 января 2024

Параметрическая идентификация - это определение параметров математической модели, если структура модели известна. В рамках данного материала мы будем использовать символ x как обозначение ИЗВЕСТНОЙ входной величины, т.е. x не надо искать, в наших рассуждениях он известен, дан заранее, а символ y как обозначение ИЗВЕСТНОЙ выходной величины, т.е. y не надо вычислять, в наших рассуждениях он известен, дан заранее, измерен и т.д.

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

y(x_1, x_2)=\sin (x_1) + (x_2)^2 - модель аддитивная, но не линейная.

Впрочем, есть ряд приёмов, как привести нелинейную модель к линейному виду, там есть много методов, со своими достоинствами и недостатками.

Мы предполагаем, что модель у нас линейная, в частности, имеет вид:

y(x_1, x_2)=b_0 + b_1 x_1 + b_2 x_2 - это частый случай, особенно когда диапазон изменения x_1 и x_2 невелик.

В некоторых случаях заранее известно что b_0=0, т.е. y(x_1, x_2)=y(0, 0)=0, т.е. это точка имеет намного больший вес и точность чем остальные, например - если подача напряжения на резистор прекращена, то он не выделяет тепло от прохождения тока.

У нас есть ряд опытов, который делится на независимые опыты (входные переменные не совпадают) - по ним можно определить параметры модели b_0, b_1, b_2 и несколько параллельных опытов (входные переменные полностью совпадают) по ним можно определить адекватность модели эксперименту. На практике может быть несколько серий параллельных опытов, или может быть что каждый опыт повторяется несколько раз с одними и теми же входными значениями, эти случаи тоже хорошо рассмотрены в литературе.

Независимые опыты пронумерованы 1, 2, 3, ..., 49.

Параллельные опыты пронумерованы как 50.1, 50.2, ..., 50.6.


ВАЖНОЕ НАПОМИНАНИЕ: каждая серия параллельных опытов рассматривается как один независимый (в принципе, если каждый опыт выполняется в одном и том же количестве повторностей, то это не важно, но в нашем случае, когда один опыт повторяется 6 раз, а остальные - по одному - это существенно), т.е. если все 49+6=55 опытов рассматривать как независимые, то во-первых модель будет более точно соответствовать имеющимся данным в окрестностях точки где были проведены параллельные опыты, а во-вторых - адекватность модели будет завышена, т.к. разброс параллельных опытов будет частью общего разброса. Поэтому, ДЛЯ РАСЧЁТА параметров модели мы заменяем опыты 50.1, ..., 50.6 на один опыт 50, где y будет равен среднему значению в опытах 50.1, 50.2, ..., 50.6. Итого: у нас всего 50 НЕЗАВИСИМЫХ опытов. На самом деле, хорошо было бы убедится, что x_1 и x_2 - линейно независимые (собственно, в том числе и для того чтобы они были линейно независимыми и составляются план - не являются ли x_1 и x_2 линейно зависимыми - нужно вычислить коэффициент корреляции между ними (коэффициент взаимной корреляции) и (по-хорошему) определить его значимость.

Линейный коэффициент корреляции (или коэффициент корреляции Пирсона) - поскольку мы говорим сейчас только о линейной модели, то просто будем писать "коэффициент корреляции" вычисляется как

r_{x_1,x_2}=\frac {cov (X_1,X_2)}{\sigma_{X_1} \sigma_{X_2} }

cov (X_1,X_2) - это ковариация или корреляционный момент, на всякий случай напомним, что это - размерная величина, т.е. она может принимать разные значения, а r_{x_1,x_2} - это безразмерная величина, она лежит в диапазоне [-1;1].

Ковариация вычисляется как cov (x_1,x_2)=M{(X_1-M{X_1})(X_2-M{X_2})}=\frac{\sum_{i=1}^{N}((x_{1,i}-M{X_1})(x_{2,i}-M{X_2})) }{N} = \frac{\sum_{i=1}^{N} (x_{1,i} x_{2,i} )}{N} -M{X_1}M{X_2}

M{X_1} - это математическое ожидание X_1, т.е. M{X_1}= \frac{ \sum_{i=1}^{N} {x_1,i}}{N}

N в нашем случае равно 50.

\sigma_{X_1} = \sqrt {D[X_1]}= \sqrt {  \frac{\sum_{i=1}^{N} (x_{i,1}-M{X_1})^2}{N-1}}

Если вдруг окажется, что x_1 и x_2 линейно зависимы - то нужно или учесть это в формулах (они станут сложнее) или выкинуть часть исходных опытов (попробовать удалить один опыт, посмотреть что станет с коэффициентом корреляции и добиться того что они или станет незначимым, либо придём к выводу что x_1 и x_2 линейно зависимы и нужно дальше это просто учитывать.

С практической точки зрения, в этом задании - просто посчитать коэффициент взаимной корреляции между x_1 и x_2 и сделать вывод что он мал (он по идее меньше 0,1).

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

Одним из способов является следующий: представляем экспериментальные данные в виде матрицы X, причём число строк - это количество независимых опытов, а число столбцов - количество определяемых параметров.

Если нужно определить b_0 - то один из столбцов (как правило - самый левый, хотя это и не обязательно) заполняется 1. Если НЕ нужно определить b_0 - т.е. в модели нет b_0, то и не вставляем этот столбец вообще.

Матрица (вектор) параметров модели может быть получена по формуле:

B=(X^T X)^{-1} {X}^T Y

Недостатком данного способа является то, что получаем числа, а не расчётные формулы (обычно расчётные формулы из выражений с обратными матрицами очень громоздки), поэтому при необходимости можно вывести и аналитические выражения, [см.], в частности - http://msu.mguie.ru/mnk.doc http://msu.mguie.ru/mnk3.doc


Если нет параллельных опытов, то нужно сравнить полный разброс и объяснённый разброс:

F=\frac{ D_y}{\sum_{i=1}^{N} (y_i-yt_i)^2 / (N-m)}

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты