Построение НепараметрическОЙ Оценки
Регрессии
Цель работы: в визуальной среде Simulink научиться создавать блок, реализующий заданный пользователем алгоритм; используя этот прием, реализовать в пользовательском блоке алгоритм построения непараметрической регрессионной модели статического объекта с одним входом.
Краткие теоретические сведения
Рассмотрим статический объект с одним входным и одним выходным параметрами. Математическое описание статической модели входа-выхода такого объекта представляет собой условное математическое ожидание, или функцию регрессии:
.
Предположим, что нам известна случайная выборка измерений входной и выходной величин объекта: . Заменяя плотности вероятностей их непараметрическими оценками
,
,
получим оценку регрессии:
Выражение в квадратных скобках представляет собой выборочную величину в силу свойств ядерных (колоколообразных) функций.
В качестве ядерных могут быть использованы следующие функции:
– экспоненциальная функция (функция Гаусса):
;
– параболическая функция:
– прямоугольная функция:
Окончательно модель объекта, т. е. оценка регрессии, имеет вид
Эта оценка была выведена E. Надарая и Дж. Ватсоном в 1964 г. Нетрудно доказать, что полученная оценка является несмещенной и сходится в среднеквадратическом.
Оценка Надарая–Ватсона нашла применение в областях, где элементы выборки расположены достаточно густо. Параметр выбирается оптимальным в соответствии с критерием, минимизирующим средний квадрат ошибки с применением скользящего экзамена:
,
где .
Таким образом, идея скользящего экзамена заключается в последовательном исключении из рассмотрения элементов выборки при вычислении критериальной функции.
Указания к выполнению
Непараметрическая оценка регрессии создается в среде Simulink по приведенному на рис. 12 образцу.
Генерация выборки осуществляется блоком Sample, представляющим собой источник сигнала Constant, в котором вместо константы задан вектор входных значений
Рис. 12. Непараметрическая оценка регрессии в среде Simulink
Вектор выборочных значений выходной величины вычисляется по формуле синусоидальной функции с добавлением аддитивной помехи. Векторная помеха задается блоком Random Vector, переименованным блоком Random Number со специальными свойствами (рис. 13).
Рис. 13. Свойства блока Random Vector
Вектор помех состоит из случайных величин, распределенных по нормальному закону со следующими параметрами: ,
Блок Cs задает параметр размытости. Блок S-function – пользовательский блок, написанный на языке MATLAB в соответствии с шаблоном из справочной системы.
Код пользовательского блока содержится в файле block.m:
% S-function
function [sys,x0,str,ts]=block(t,x,u,flag,n)
switch flag
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0
[sys,x0,str,ts] = mdlInitializeSizes(x,n);
case 1
sys = [1];
case {2,4,9}
sys = [];
%%%%%%%%%%
% Output %
%%%%%%%%%%
case 3
sys = mdlOutputs(t,x,u,n);
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
function [sys,x0,str,ts] = mdlInitializeSizes(x,n)
sizes = simsizes;
sizes.NumContStates = 0; % количество непрерывных переменных % состояния
sizes.NumDiscStates = 1; % количество дискретных
% переменных состояния
sizes.NumOutputs = 2; % количество выходных переменных
sizes.NumInputs = 1+n+n; % количество входных переменных
sizes.DirFeedthrough = 1; % есть проход входного сигнала на % выход
sizes.NumSampleTimes = 1; % размерность вектора шагов
% модельного времени
sys = simsizes(sizes);
str = [];
x0 = [0];
ts = [0 0]; % sample time: [period, offset]
global xx;
global yy;
% end mdlInitializeSizes
%=============================================================================
% mdlOutputs
% Return the output vector for the S-function
%=============================================================================
function sys = mdlOutputs(t,x,u,n)
global xx;
global yy;
tt = t; % time
cn = u(1); % bandwidth
% n - размерность векторов входа
n2 = n + 1; % граница с учетом сдвига
if t == 0
xx = [];
yy = [];
for i=2:n2
xx = [ xx u(i) ];
yy = [ yy u(i+n) ];
end
end
sumzn = 0;
sumch = 0;
for i=1:n
if abs(tt-xx(i)) < cn
sumch = sumch + 0.75*( 1-(tt-xx(i))*(tt-xx(i))/(cn*cn)) *yy(i);
sumzn = sumzn + 0.75*( 1-(tt-xx(i))*(tt-xx(i))/(cn*cn));
end
end
if sumzn == 0
p = 0;
else
p = sumch/sumzn;
end
sys(1) = p;
sys(2) = x(1);
for i=1:n % отображаем выборку на графике
if abs(tt - xx(i))<=0.005;
sys(2) = yy(i);
break;
end
end
% end mdlOutputs
В параметрах модели, доступных в меню File → Model Properties→→ Callbacks → InitFcn, объявляются и инициализируются три переменные, задающие объем выборки, левую границу и шаг выборочных значений U:
N = 91; % Sample size
st = 2; % Initial time
dt = 0.1; % Time increment
Имя переменной N используется в качестве параметра, указываемого в окне свойств блока S-function. Результат работы модели отображается блоком Scope на графике (рис. 14).
Рис. 14. Выборочные значения и оценка регрессии
Выборочные значения представлены в виде импульсов. Оценка регрессии отражена кривой, усредняющей выборочные значения в локаль-ных областях.
Порядок выполнения работы
1. Сгенерировать случайную выборку значений входной и выходной величин, задав истинную характеристику объекта и добавив случайную аддитивную помеху, распределенную по нормальному закону.
2. Задать параметр размытости для непараметрической оценки регрессии, реализовать его в виде блока.
3. Создать пользовательский блок, вычисляющий непараметрическую модель регрессии Надарая–Ватсона.
4. Скомбинировать входные параметры пользовательского блока (параметр размытости и выборочные значения), используя блокMux.
5. Отобразить выборочные значения и оценку регрессии на одном графике.
6. Сделать выводы и оформить отчет о выполнении работы
Задания для самоподготовки
1. Используя построенную модель, изучите поведение оценки в зависимости от изменяющегося значения параметра размытости. Выделите интервалы значений параметра, для которых оценка имеет различные сглаживающие свойства.
2. Добавьте в модель возможность вычисления среднеквадратической ошибки. Исследуйте зависимость ошибки от параметра размытости и дисперсии случайной помехи.
3. Докажите асимптотическую несмещенность и сходимость в среднеквадратическом непараметрической оценки регрессии.
4. Изучите средства MATLAB, позволяющие проводить оптимизацию по параметру размытости в соответствии со среднеквадратическим критерием.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Агафонов, Е. Д. Математическое моделирование линейных динамических систем : учеб. пособие / Е. Д. Агафонов, О. В. Шестернёва ; Сиб. гос. аэрокосмич. ун-т. – Красноярск, 2010. – 92 с.
2. Васильев, В. В. Математическое и компьютерное моделирование процессов и систем в среде MATLAB/Simulink : учеб. пособие для студентов и аспирантов / В. В. Васильев, Л. А. Симак, А. М. Рыбникова. – Киев : Изд-во Нац. акад. наук, 2008. – 91 с.
3. Гантмахер, Ф. Р. Теория матриц / Ф. Р. Гантмахер. – 5-е изд. – М. : Физматлит, 2004. – 560 с.
4. Дьяконов, В. П. MATLAB R2006/2007/2008 + Simulink 5/6/7. Основы применения / В. П. Дьяконов. – М. : Солон-Пресс, 2008. – 800 с.
5. Исследование операций в экономике : учеб. пособие для вузов / Н. Ш. Кремер, Б. А. Путко, И. М. Тришин, М. Н. Фридман ; под ред. проф. Н. Ш. Кремера. – М. : Банки и биржи : ЮНИТИ, 1997. – 407 с.
6. Перегудов, Ф. И. Основы системного анализа : учебник / Ф. И. Перегудов, Ф. П. Тарасенко. – 2-е изд., доп. – Томск : НТЛ, 1997. – 396 с.
7. Самарский, А. А. Математическое моделирование: Идеи. Методы. Примеры / А. А. Самарский, А. П. Михайлов. – 2-е изд., испр. – М. : Физматлит, 2001. – 320 с.
8. Хардле, В. Прикладная непараметрическая регрессия : пер. с англ. / В. Хардле. – М. : Мир, 1993. – 349 с.
9. Шампайн, Л. Ф. Решение обыкновенных дифференциальных уравнений с использованием MATLAB : учеб. пособие / Л. Ф. Шампайн, И. Гладвел, С. Томпсон. – СПб. : Лань, 2009. – 304 с.
Учебно-методическое издание
Компьютерное моделирование
В пакете MATLAB/Simulink
Методические указания к выполнению лабораторных работ
для студентов направления 230100.62 «Информатика и вычислительная техника» очной формы обучения
Составитель
Агафонов Евгений Дмитриевич
Редактор О. Ф. Александрова
Корректор Т. Е. Бастрыгина
Подписано в печать ...10.11. Печать плоская.
Формат 60х84/16. Бумага офсетная.
Усл.-печ. л. ... Тираж 50 экз. Заказ ...
Редакционно-издательский отдел
Библиотечно-издательского комплекса
Сибирского федерального университета
660041, г. Красноярск, пр. Свободный, 79.
Тел./факс (391) 244-82-31, e-mail: rio@lan.krasu.ru
Отпечатано Полиграфическим центром
Библиотечно-издательского комплекса
Сибирского федерального университета
660041, г. Красноярск, пр. Свободный, 82а.
|