exponenta event banner

прогноз

Класс: dssm

Прогнозные состояния и наблюдения моделей диффузного состояния и пространства

Описание

пример

[Y,YMSE] = forecast(Mdl,numPeriods,Y0) возвращает прогнозируемые наблюдения (Y) и их соответствующие отклонения (YMSE) от прогнозирования модели диффузного состояния-пространства Mdl использование numPeriods прогнозный горизонт и выборочные наблюдения Y0.

пример

[Y,YMSE] = forecast(Mdl,numPeriods,Y0,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары. Например, для моделей пространства состояний, которые включают компонент линейной регрессии в модель наблюдения, включают данные предсказателя в выборке, данные предсказателя для горизонта прогноза и коэффициент регрессии.

пример

[Y,YMSE,X,XMSE] = forecast(___) использует любой из входных аргументов в предыдущих синтаксисах для дополнительного возврата прогнозов состояния (X) и их соответствующие отклонения (XMSE).

Входные аргументы

развернуть все

Модель диффузного состояния-пространства, заданная как dssm объект модели, возвращенный dssm или estimate.

Если Mdl не полностью указан (то есть Mdl содержит неизвестные параметры), затем задайте значения для неизвестных параметров с помощью 'Params' аргумент пары имя-значение. В противном случае программа выдает ошибку. estimate возвращает полностью заданные модели пространства состояний.

Mdl не хранит наблюдаемые ответы или данные предиктора. При необходимости введите данные с помощью соответствующих аргументов пары «ввод-значение».

Горизонт прогноза, заданный как положительное целое число. То есть программное обеспечение возвращает 1,..,numPeriods прогнозы.

Типы данных: double

In-sample, наблюдаемые ответы, определенные как клеточный вектор числовых векторов или матрица.

  • Если Mdl является ли время инвариантным, то Y0 представляет собой числовую матрицу T-на-n, где каждая строка соответствует периоду, а каждый столбец соответствует конкретному наблюдению в модели. Поэтому T - размер выборки, а m - количество наблюдений за период. Последняя строка Y содержит последние наблюдения.

  • Если Mdl является временем, изменяющимся по отношению к уравнению наблюдения, то Y является вектором T-by-1 клеток. Каждый элемент клеточного вектора соответствует периоду и содержит nt-мерный вектор наблюдений за этим периодом. Соответствующие размеры матриц коэффициентов в Mdl.C{t} и Mdl.D{t} должны согласовываться с матрицей в Y{t} для всех периодов. Последняя ячейка Y содержит последние наблюдения.

Если Mdl является оценочной моделью состояния-пространства (то есть возвращается estimate), то лучше всего установить Y0 к тому же набору данных, который использовался для подгонки Mdl.

NaN элементы указывают на отсутствие наблюдений. Дополнительные сведения о том, как фильтр Калмана учитывает отсутствующие наблюдения, см. в разделе Алгоритмы.

Типы данных: double | cell

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Beta',beta,'Predictors',Z определяет дефляцию наблюдений компонентом регрессии, состоящим из данных предиктора Z и матрица коэффициентов beta.

Матрица «прогноз-горизонт», «состояние-переход», коэффициент, заданная как пара, разделенная запятыми, состоящая из 'A' и вектор ячейки числовых матриц.

  • A должен содержать не менее numPeriods клетки. Каждая ячейка должна содержать матрицу, определяющую способ перехода состояний в горизонте прогноза. Если длина A больше, чем numPeriods, то программное обеспечение использует первый numPeriods клетки. Последняя ячейка указывает последний период в горизонте прогноза.

  • Если Mdl является инвариантным по времени относительно состояний, то каждая ячейка A должен содержать матрицу m-by-m, где m - количество состояний в выборке за период. По умолчанию используется программное обеспечение Mdl.A на протяжении всего горизонта прогноза.

  • Если Mdl является временем, изменяющимся по отношению к состояниям, то размеры матриц в ячейках A могут изменяться, но размеры каждой матрицы должны соответствовать матрицам в B и C в соответствующих периодах. По умолчанию используется программное обеспечение Mdl.A{end} на протяжении всего горизонта прогноза.

Примечание

Матрицы в A не может содержать NaN значения.

Типы данных: cell

Прогноз-горизонт, состояние-возмущение-нагрузка, матрицы коэффициентов, указанные как пара, разделенная запятыми, состоящая из 'B' и вектор ячеек матриц.

  • B должен содержать не менее numPeriods клетки. Каждая ячейка должна содержать матрицу, определяющую способ перехода состояний в горизонте прогноза. Если длина B больше, чем numPeriods, то программное обеспечение использует первый numPeriods клетки. Последняя ячейка указывает последний период в горизонте прогноза.

  • Если Mdl является инвариантным по времени в отношении состояний и нарушений состояния, то каждая ячейка B должна содержать матрицу m-на-k, где m - количество состояний in-sample за период, а k - количество нарушений in-sample, состояний за период. По умолчанию используется программное обеспечение Mdl.B на протяжении всего горизонта прогноза.

  • Если Mdl изменяется во времени, то размеры матриц в ячейках B могут изменяться, но размеры каждой матрицы должны соответствовать матрицам в A в соответствующих периодах. По умолчанию используется программное обеспечение Mdl.B{end} на протяжении всего горизонта прогноза.

Примечание

Матрицы в B не может содержать NaN значения.

Типы данных: cell

Прогноз-горизонт, измерение-чувствительность, матрицы коэффициентов, определяемые как разделенная запятыми пара, состоящая из 'C' и вектор ячеек матриц.

  • C должен содержать не менее numPeriods клетки. Каждая ячейка должна содержать матрицу, определяющую способ перехода состояний в горизонте прогноза. Если длина C больше, чем numPeriods, то программное обеспечение использует первый numPeriods клетки. Последняя ячейка указывает последний период в горизонте прогноза.

  • Если Mdl является инвариантным по времени в отношении состояний и наблюдений, то каждая ячейка C должен содержать матрицу n-by-m, где n - количество наблюдений в выборке за период, а m - количество состояний в выборке за период. По умолчанию используется программное обеспечение Mdl.C на протяжении всего горизонта прогноза.

  • Если Mdl - это время, изменяющееся по отношению к состояниям или наблюдениям, затем размеры матриц в ячейках C могут изменяться, но размеры каждой матрицы должны соответствовать матрицам в A и D в соответствующих периодах. По умолчанию используется программное обеспечение Mdl.C{end} на протяжении всего горизонта прогноза.

Примечание

Матрицы в C не может содержать NaN значения.

Типы данных: cell

Прогноз-горизонт, наблюдение-инновация, матрицы коэффициентов, определяемые как разделенная запятыми пара, состоящая из 'D' и вектор ячеек матриц.

  • D должен содержать не менее numPeriods клетки. Каждая ячейка должна содержать матрицу, определяющую способ перехода состояний в горизонте прогноза. Если длина D больше, чем numPeriods, то программное обеспечение использует первый numPeriods клетки. Последняя ячейка указывает последний период в горизонте прогноза.

  • Если Mdl является инвариантным по времени в отношении наблюдений и инноваций наблюдения, то каждая ячейка D должна содержать матрицу n-на-ч, где n - количество наблюдений в выборке за период, а h - количество инноваций в выборке за период. По умолчанию используется программное обеспечение Mdl.D на протяжении всего горизонта прогноза.

  • Если Mdl - это время, изменяющееся по отношению к наблюдениям или наблюдениям, затем размеры матриц в ячейках D могут изменяться, но размеры каждой матрицы должны соответствовать матрицам в C в соответствующих периодах. По умолчанию используется программное обеспечение Mdl.D{end} на протяжении всего горизонта прогноза.

Примечание

Матрицы в D не может содержать NaN значения.

Типы данных: cell

Коэффициенты регрессии, соответствующие переменным предиктора, указанным как пара, разделенная запятыми, состоящая из 'Beta' и цифровую матрицу d-на-n. d - число переменных предиктора (см. Predictors0 и PredictorsF) и n - количество наблюдаемых рядов ответов (см. Y0).

  • При указании Beta, то необходимо также указать Predictors0 и PredictorsF.

  • Если Mdl является оценочной моделью состояния-пространства, затем укажите оценочные коэффициенты регрессии, сохраненные в Mdl.estParams.

По умолчанию программа исключает компонент регрессии из модели состояния-пространства.

Переменные предиктора в выборке в уравнении наблюдения модели состояния-пространства, определенные как пара, разделенная запятыми, состоящая из 'Predictors0' и матрица. Столбцы Predictors0 соответствуют отдельным переменным предиктора. Predictors0 должен иметь T строк, где строка t соответствует наблюдаемым предикторам в периоде t (Zt). Расширенное уравнение наблюдения

yt Ztβ = Cxt + Dut.

Другими словами, программное обеспечение сдувает результаты наблюдений с использованием регрессионного компонента. β - инвариантный по времени вектор коэффициентов регрессии, который программное обеспечение оценивает со всеми остальными параметрами.

  • Если есть n наблюдений за период, то программное обеспечение регрессирует все серии предикторов на каждое наблюдение.

  • При указании Predictors0, то Mdl должно быть инвариантным по времени. В противном случае программа возвращает ошибку.

  • При указании Predictors0, то необходимо также указать Beta и PredictorsF.

  • Если Mdl является оценочной моделью состояния-пространства (то есть возвращается estimate), то лучше всего установить Predictors0 к тому же набору данных предиктора, который использовался для подгонки Mdl.

По умолчанию программа исключает компонент регрессии из модели состояния-пространства.

Типы данных: double

Переменные предиктора в выборке в уравнении наблюдения модели состояния-пространства, определенные как пара, разделенная запятыми, состоящая из 'Predictors0' и цифровую матрицу T-за-d. T - количество периодов в выборке, а d - число предикторных переменных. Строка t соответствует наблюдаемым предикторам в периоде t (Zt). Расширенное уравнение наблюдения

yt Ztβ = Cxt + Dut.

Другими словами, программное обеспечение сдувает результаты наблюдений с использованием регрессионного компонента. β - инвариантный по времени вектор коэффициентов регрессии, который программное обеспечение оценивает со всеми остальными параметрами.

  • Если есть n наблюдений за период, то программное обеспечение регрессирует все серии предикторов на каждое наблюдение.

  • При указании Predictors0, то Mdl должно быть инвариантным по времени. В противном случае программа возвращает ошибку.

  • При указании Predictors0, то необходимо также указать Beta и PredictorsF.

  • Если Mdl является оценочной моделью состояния-пространства (то есть возвращается estimate), то лучше всего установить Predictors0 к тому же набору данных предиктора, который использовался для подгонки Mdl.

По умолчанию программа исключает компонент регрессии из модели состояния-пространства.

Типы данных: double

Выходные аргументы

развернуть все

Прогнозируемые наблюдения, возвращаемые как матрица или клеточный вектор числовых векторов.

Если Mdl является инвариантной во времени, пространственно-государственной моделью относительно наблюдений, то Y является numPeriods-by-n матрица.

Если Mdl является изменяющейся во времени пространственно-государственной моделью в отношении наблюдений, то Y является numPeriods-by-1 вектор ячейки числовых векторов. Ячейка t из Y содержит n-на-1 числовой вектор прогнозируемых наблюдений за период t.

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

Если Mdl является инвариантной во времени, пространственно-государственной моделью относительно наблюдений, то YMSE является numPeriods-by-n матрица.

Если Mdl является изменяющейся во времени пространственно-государственной моделью в отношении наблюдений, то YMSE является numPeriods-by-1 вектор ячейки числовых векторов. Ячейка t из YMSE содержит n-на-1 числовой вектор отклонений ошибок для соответствующих прогнозируемых наблюдений за период t.

Прогнозы состояния, возвращаемые в виде матрицы или вектора ячейки числовых векторов.

Если Mdl является инвариантной во времени моделью состояния-пространства относительно состояний, то X является numPeriods- по m-матрице.

Если Mdl - изменяющаяся во времени модель состояния-пространства относительно состояний, X является numPeriods-by-1 вектор ячейки числовых векторов. Ячейка t из X содержит числовой вектор mt-by-1 прогнозируемых наблюдений за период t.

Отклонения ошибок прогнозов состояния, возвращаемые в виде матрицы или вектора ячейки числовых векторов.

Если Mdl является инвариантной во времени моделью состояния-пространства относительно состояний, то XMSE является numPeriods- по m-матрице.

Если Mdl - изменяющаяся во времени модель состояния-пространства относительно состояний, XMSE является numPeriods-by-1 вектор ячейки числовых векторов. Ячейка t из XMSE содержит числовой вектор отклонений ошибок mt-by-1 для соответствующих прогнозируемых наблюдений за период t.

Примеры

развернуть все

Предположим, что скрытый процесс - это случайная прогулка. Уравнение состояния

xt = xt-1 + ut,

где ut - гауссов со средним значением 0 и стандартным отклонением 1.

Создайте случайную серию из 100 наблюдений из xt, предполагая, что серия начинается с 1.5.

T = 100;
x0 = 1.5;
rng(1); % For reproducibility
u = randn(T,1);
x = cumsum([x0;u]);
x = x(2:end);

Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения

yt = xt + αt,

где αt - гауссов со средним значением 0 и стандартным отклонением 0,75. В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства.

Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.

y = x + 0.75*randn(T,1);

Укажите четыре матрицы коэффициентов.

A = 1;
B = 1;
C = 1;
D = 0.75;

Создайте модель диффузного состояния-пространства, используя матрицы коэффициентов. Укажите, что начальное распределение состояний является диффузным.

Mdl = dssm(A,B,C,D,'StateType',2)
Mdl = 
State-space model type: dssm

State vector length: 1
Observation vector length: 1
State disturbance vector length: 1
Observation innovation vector length: 1
Sample size supported by model: Unlimited

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...

State equation:
x1(t) = x1(t-1) + u1(t)

Observation equation:
y1(t) = x1(t) + (0.75)e1(t)

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1  
 x1  Inf 

State types
    x1   
 Diffuse 

Mdl является dssm модель. Убедитесь, что модель правильно задана с помощью отображения в окне команд.

Прогнозирование наблюдений на 10 периодов в будущем и оценка среднеквадратических ошибок прогнозов.

numPeriods = 10;
[ForecastedY,YMSE] = forecast(Mdl,numPeriods,y);

Постройте график прогнозов с ответами в выборке и 95% интервалами прогноза типа Wald.

ForecastIntervals(:,1) = ForecastedY - 1.96*sqrt(YMSE);
ForecastIntervals(:,2) = ForecastedY + 1.96*sqrt(YMSE);

figure
plot(T-20:T,y(T-20:T),'-k',T+1:T+numPeriods,ForecastedY,'-.r',...
    T+1:T+numPeriods,ForecastIntervals,'-.b',...
    T:T+1,[y(end)*ones(3,1),[ForecastedY(1);ForecastIntervals(1,:)']],':k',...
    'LineWidth',2)
hold on
title({'Observed Responses and Their Forecasts'})
xlabel('Period')
ylabel('Responses')
legend({'Observations','Forecasted observations','95% forecast intervals'},...
    'Location','Best')
hold off

Figure contains an axes. The axes with title Observed Responses and Their Forecasts contains 7 objects of type line. These objects represent Observations, Forecasted observations, 95% forecast intervals.

Интервалы прогноза расширяются, поскольку процесс не является статическим.

Предположим, что интерес представляет линейная зависимость между уровнем безработицы и номинальным валовым национальным продуктом (нВНП). Предположим далее, что уровень безработицы является серией AR (1). Символично и в форме state-space модель

xt =ϕxt-1 +σutyt-βZt=xt,

где:

  • xt - уровень безработицы в момент времени t.

  • yt - наблюдаемое изменение уровня безработицы, дефлируемое возвратом nGNP (Zt).

  • ut - гауссова серия возмущений состояния, имеющих среднее значение 0 и неизвестное стандартное отклонение λ.

Загрузите набор данных Нельсона-Плоссера, который содержит, среди прочего, уровень безработицы и ряды nGNP.

load Data_NelsonPlosser

Выполните предварительную обработку данных, взяв натуральный логарифм ряда nGNP и удалив начальный NaN значения из каждой серии.

isNaN = any(ismissing(DataTable),2);       % Flag periods containing NaNs
gnpn = DataTable.GNPN(~isNaN);
y = diff(DataTable.UR(~isNaN));
T = size(gnpn,1);                          % The sample size
Z = price2ret(gnpn);

В этом примере используется серия без NaN значения. Однако, используя структуру фильтра Калмана, программное обеспечение может разместить серии, содержащие отсутствующие значения.

Определите, насколько хорошо модель прогнозирует наблюдения, удалив последние 10 наблюдений для сравнения.

numPeriods = 10;                   % Forecast horizon
isY = y(1:end-numPeriods);         % In-sample observations
oosY = y(end-numPeriods+1:end);    % Out-of-sample observations
ISZ = Z(1:end-numPeriods);         % In-sample predictors
OOSZ = Z(end-numPeriods+1:end);  % Out-of-sample predictors

Укажите матрицы коэффициентов.

A = NaN;
B = NaN;
C = 1;

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

StateType = 2;
Mdl = dssm(A,B,C,'StateType',StateType);

Оцените параметры. Укажите компонент регрессии и его начальное значение для оптимизации с помощью 'Predictors' и 'Beta0' аргументы пары имя-значение соответственно. Просмотрите оценки и всю диагностическую информацию по оптимизации. Ограничьте оценку λ всеми положительными, вещественными числами.

params0 = [0.3 0.2]; % Initial values chosen arbitrarily
Beta0 = 0.1;
[EstMdl,estParams] = estimate(Mdl,y,params0,'Predictors',Z,'Beta0',Beta0,...
    'lb',[-Inf 0 -Inf]);
Method: Maximum likelihood (fmincon)
Effective Sample size:             60
Logarithmic  likelihood:     -110.477
Akaike   info criterion:      226.954
Bayesian info criterion:      233.287
           |      Coeff       Std Err    t Stat    Prob 
--------------------------------------------------------
 c(1)      |   0.59436       0.09408     6.31738  0     
 c(2)      |   1.52554       0.10758    14.17991  0     
 y <- z(1) | -24.26161       1.55730   -15.57930  0     
           |                                            
           |    Final State   Std Dev     t Stat   Prob 
 x(1)      |   2.54764        0           Inf     0     

EstMdl является dssm и доступ к его свойствам можно получить с помощью точечной нотации.

Прогнозные наблюдения на горизонте прогноза. EstMdl не сохраняет набор данных, поэтому необходимо передать его в соответствующие аргументы пары имя-значение.

[fY,yMSE] = forecast(EstMdl,numPeriods,isY,'Predictors0',ISZ,...
    'PredictorsF',OOSZ,'Beta',estParams(end));

fY является вектором 10 на 1, содержащим прогнозируемые наблюдения, и yMSE - вектор 10 на 1, содержащий дисперсии прогнозируемых наблюдений.

Получение 95% интервалов прогноза типа Wald. Постройте график прогнозируемых наблюдений с их истинными значениями и интервалами прогноза.

ForecastIntervals(:,1) = fY - 1.96*sqrt(yMSE);
ForecastIntervals(:,2) = fY + 1.96*sqrt(yMSE);

figure
h = plot(dates(end-numPeriods-9:end-numPeriods),isY(end-9:end),'-k',...
    dates(end-numPeriods+1:end),oosY,'-k',...
    dates(end-numPeriods+1:end),fY,'--r',...
    dates(end-numPeriods+1:end),ForecastIntervals,':b',...
    dates(end-numPeriods:end-numPeriods+1),...
    [isY(end)*ones(4,1),[oosY(1);ForecastIntervals(1,:)';fY(1)]],':k',...
    'LineWidth',2);
xlabel('Period')
ylabel('Change in unemployment rate')
legend(h([1,3,4]),{'Observations','Forecasted responses',...
    '95% forecast intervals'})
title('Observed and Forecasted Changes in the Unemployment Rate')

Figure contains an axes. The axes with title Observed and Forecasted Changes in the Unemployment Rate contains 9 objects of type line. These objects represent Observations, Forecasted responses, 95% forecast intervals.

Предположим, что скрытый процесс - это случайная прогулка. Уравнение состояния

xt = xt-1 + ut,

где ut - гауссов со средним значением 0 и стандартным отклонением 1.

Создайте случайную серию из 100 наблюдений из xt, предполагая, что серия начинается с 1.5.

T = 100;
x0 = 1.5;
rng(1); % For reproducibility
u = randn(T,1);
x = cumsum([x0;u]);
x = x(2:end);

Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения

yt = xt + αt,

где αt - гауссов со средним значением 0 и стандартным отклонением 0,75. В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства.

Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.

y = x + 0.75*randn(T,1);

Укажите четыре матрицы коэффициентов.

A = 1;
B = 1;
C = 1;
D = 0.75;

Создайте модель диффузного состояния-пространства, используя матрицы коэффициентов. Укажите, что начальное распределение состояний является диффузным.

Mdl = dssm(A,B,C,D,'StateType',2)
Mdl = 
State-space model type: dssm

State vector length: 1
Observation vector length: 1
State disturbance vector length: 1
Observation innovation vector length: 1
Sample size supported by model: Unlimited

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...

State equation:
x1(t) = x1(t-1) + u1(t)

Observation equation:
y1(t) = x1(t) + (0.75)e1(t)

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1  
 x1  Inf 

State types
    x1   
 Diffuse 

Mdl является dssm модель. Убедитесь, что модель правильно задана с помощью отображения в окне команд.

Прогноз указывает 10 периодов в будущем и оценивает среднеквадратичные ошибки прогнозов.

numPeriods = 10;
[~,~,ForecastedX,XMSE] = forecast(Mdl,numPeriods,y);

Постройте график прогнозов с состояниями в выборке и 95% интервалами прогноза типа Wald.

ForecastIntervals(:,1) = ForecastedX - 1.96*sqrt(XMSE);
ForecastIntervals(:,2) = ForecastedX + 1.96*sqrt(XMSE);

figure
plot(T-20:T,x(T-20:T),'-k',T+1:T+numPeriods,ForecastedX,'-.r',...
    T+1:T+numPeriods,ForecastIntervals,'-.b',...
    T:T+1,[x(end)*ones(3,1),[ForecastedX(1);ForecastIntervals(1,:)']],':k',...
    'LineWidth',2)
hold on
title({'State Values and Their Forecasts'})
xlabel('Period')
ylabel('State value')
legend({'State Values','Forecasted states','95% forecast intervals'},...
    'Location','Best')
hold off

Figure contains an axes. The axes with title State Values and Their Forecasts contains 7 objects of type line. These objects represent State Values, Forecasted states, 95% forecast intervals.

Интервалы прогноза расширяются, поскольку процесс не является статическим.

Совет

Mdl не сохраняет данные ответа, данные предиктора и коэффициенты регрессии. При необходимости введите их с помощью соответствующих аргументов пары «ввод-значение».

Алгоритмы

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

Ссылки

[1] Дурбин Дж., и С. Дж. Копман. Анализ временных рядов по методам пространства состояний. 2-й ред. Оксфорд: Oxford University Press, 2012.

Представлен в R2015b