exponenta event banner

armax

Оценка параметров моделей ARMAX, ARIMAX, ARMA или ARIMA с использованием данных временной области

Описание

Оценка модели ARMAX

пример

sys = armax(data,[na nb nc nk]) оценивает параметры ARMA модели ARMAX или idpoly sys используя метод предсказания-ошибки и полиномиальные порядки, указанные в [na nb nc nk]. Свойства модели включают ковариации оценки (неопределенности параметров) и достоверность соответствия между оцененными и измеренными данными.

пример

sys = armax(data,[na nb nc nk],Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, использование аргумента пара имя-значение 'IntegrateNoise',1 оценивает модель ARIMAX или ARIMA, которая полезна для систем с нестационарными нарушениями.

Настройка начальных параметров

пример

sys = armax(data,init_sys) использует дискретно-временную линейную модель init_sys для конфигурирования начальной параметризации.

Указать дополнительные параметры

пример

sys = armax(data,___,opt) включает набор опций opt который определяет такие опции, как цель оценки, обработка начальных условий, регуляризация и метод численного поиска, используемый для оценки. Определить opt после любой из предыдущих комбинаций входных аргументов.

Вернуть предполагаемые начальные условия

пример

[sys,ic] = armax(___) возвращает оцененные начальные условия в виде initialCondition объект. Используйте этот синтаксис, если планируется смоделировать или спрогнозировать отклик модели с использованием тех же входных данных оценки, а затем сравнить отклик с теми же выходными данными оценки. Включение начальных условий дает лучшее совпадение во время первой части моделирования.

Примеры

свернуть все

Оцените модель ARMAX и просмотрите соответствие выходных данных модели данным оценки.

Загрузить данные измерений в iddata объект z2.

load iddata2 z2

Оцените модель ARMAX с многочленами второго порядка A, B и C и задержкой переноса одного периода выборки.

na = 2;
nb = 2;
nc = 2;
nk = 1;
sys = armax(z2,[na nb nc nk])
sys =
Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)
  A(z) = 1 - 1.512 z^-1 + 0.7006 z^-2                    
                                                         
  B(z) = -0.2606 z^-1 + 1.664 z^-2                       
                                                         
  C(z) = 1 - 1.604 z^-1 + 0.7504 z^-2                    
                                                         
Sample time: 0.1 seconds
  
Parameterization:
   Polynomial orders:   na=2   nb=2   nc=2   nk=1
   Number of free coefficients: 6
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using ARMAX on time domain data "z2".  
Fit to estimation data: 85.89% (prediction focus)
FPE: 1.086, MSE: 1.054                           

Выходные данные отображают полином, содержащий оцененные параметры вместе с деталями оценки. Под Status, Fit to estimation data показывает, что оценочная модель имеет точность прогнозирования на 1 шаг вперед выше 80%.

Сравните моделируемые выходные данные модели с измеренными данными.

compare(z2,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z2 (y1), sys: 85.69%.

Подгонка моделируемой модели к измеренным данным почти такая же, как и подгонка оценки.

Оцените модель ARMA и сравните ее отклик как с измеренным выходом, так и с моделью AR.

Загрузите данные, содержащие временные ряды. z9 с шумом.

load iddata9 z9

Оцените модель ARMA четвертого порядка с полиномом C первого порядка.

na = 4;
nc = 1;
sys = armax(z9,[na nc]);

Оцените модель AR четвертого порядка.

sys_ar = ar(z9,na);

Сравните выходные данные модели с измеренными данными.

compare(z9,sys,sys_ar)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z9 (y1), sys: 84.99%, sys\_ar: 61.17%.

Модель ARMA лучше подходит к данным.

Оцените модель ARMAX на основе измеренных данных и укажите параметры оценки.

Загрузка данных и создание iddata объект. Инициализация набора параметров optи задайте опции для Focus, SearchMethod, MaxIterations, и Display. Затем оцените модель ARMAX с помощью обновленного набора опций.

load twotankdata;
z = iddata(y,u,0.2);
opt = armaxOptions;
opt.Focus = 'simulation';
opt.SearchMethod = 'lm';
opt.SearchOptions.MaxIterations = 10;
opt.Display = 'on';
sys = armax(z,[2 2 2 1],opt);

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

Чтобы улучшить результаты, повторно оцените модель, используя большее значение для MaxIterationsили продолжить итерации в ранее оцененной модели следующим образом:

sys2 = armax(z,sys);
compare(z,sys,sys2)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z (y1), sys: 65.52%, sys2: 64.71%.

где sys2 уточняет параметры sys для улучшения соответствия данным.

Оценка регуляризованной модели ARMAX путем преобразования регуляризованной модели ARX.

Загрузить данные.

load regularizationExampleData.mat m0simdata;

Оцените нерегулируемую модель ARMAX порядка 30.

m1 = armax(m0simdata(1:150),[30 30 30 1]);

Оцените регуляризованную модель ARMAX, определив значение Лямбда методом проб и ошибок.

opt = armaxOptions;
opt.Regularization.Lambda = 1;
m2 = armax(m0simdata(1:150),[30 30 30 1],opt);

Получение модели ARMAX более низкого порядка путем преобразования регуляризованной модели ARX и последующего сокращения заказа.

opt1 = arxOptions;
[L,R] = arxRegul(m0simdata(1:150),[30 30 1]);
opt1.Regularization.Lambda = L;
opt1.Regularization.R = R;
m0 = arx(m0simdata(1:150),[30 30 1],opt1);
mr = idpoly(balred(idss(m0),7));

Сравните выходные данные модели с данными.

opt2 = compareOptions('InitialCondition','z');
compare(m0simdata(150:end),m1,m2,mr,opt2);

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Validation data (y1), m1: 41.22%, m2: 52.13%, mr: 64.91%.

Оценка модели ARIMA четвертого порядка для одномерных данных временных рядов.

Загрузить данные, содержащие временной ряд с шумом.

load iddata9 z9;

Интегрируйте выходной сигнал и используйте результат для замены исходного выходного сигнала в z9.

z9.y = cumsum(z9.y);

Оценка модели ARIMA четвертого порядка с первым порядком Cpolynomial путем установки 'IntegrateNoiseКому true.

model = armax(z9,[4 1],'IntegrateNoise',true); 

Спрогнозировать выходной сигнал модели, используя прогноз на 10 шагов вперед, и сравнить прогнозируемый выходной сигнал с оценочными данными.

compare(z9,model,10)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z9 (y1), model: 85.97%.

Оцените модели ARMAX различных порядков итеративно на основе измеренных данных.

Груз dryer2 данные и выполнение оценки для комбинаций полиномиальных порядков na, nb, ncи задержка на входе nk.

load dryer2;
z = iddata(y2,u2,0.08,'Tstart',0);
na = 2:4;
nc = 1:2;
nk = 0:2;
models = cell(1,18);
ct = 1;
for i = 1:3
    na_ = na(i);
    nb_ = na_;
    for j = 1:2
        nc_ = nc(j);
        for k = 1:3
            nk_ = nk(k); 
            models{ct} = armax(z,[na_ nb_ nc_ nk_]);
            ct = ct+1;
        end
    end
end

Объединение оценочных моделей и сравнение их смоделированных ответов с оценочными данными z.

models = stack(1,models{:});
compare(z,models)

Figure contains an axes. The axes contains 19 objects of type line. These objects represent z (y1), models(:,:,1): 58.91% models(:,:,2): 76.68% models(:,:,3): 85.97% models(:,:,4): 71.74% models(:,:,5): 78.2% models(:,:,6): 85.92% models(:,:,7): 87.44% models(:,:,8): 88.43% models(:,:,9): 88.32% models(:,:,10): 87.49% models(:,:,11): 88.43% models(:,:,12): 88.43% models(:,:,13): 88.41% models(:,:,14): 88.4% models(:,:,15): 88.38% models(:,:,16): 88.36% models(:,:,17): 88.37% models(:,:,18): 88.48%.

Загрузите оценочные данные.

load iddata2 z2

Оценка модели состояния-пространства порядка 3 из данных оценки.

sys0 = n4sid(z2,3);

Оцените модель ARMAX с использованием ранее оцененной модели пространства состояния для инициализации параметров.

sys = armax(z2,sys0);

Загрузите данные.

load iddata1ic z1i

Оценка модели ARMAX второго порядка sys и вернуть начальные условия в ic.

na = 2;
nb = 2;
nc = 2;
nk = 1;
[sys,ic] = armax(z1i,[na nb nc nk]);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0 1]
    Ts: 0.1000

ic является initialCondition объект, инкапсулирующий свободный ответ sys, в форме state-space, к вектору начального состояния в X0. Вы можете включить ic при моделировании sys с z1i входной сигнал и сравнить отклик с z1i выходной сигнал.

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

свернуть все

Данные оценки временной области, указанные как iddata объект. Для моделей временных рядов ARMA и ARIMA входной канал в data должно быть пустым. Примеры см. в разделах Модель ARMA и Модель ARIMA.

Полиномиальные порядки и задержки для модели, заданные как вектор 1 на 4 или вектор матриц [na nb nc nk]. Порядок многочленов равен числу коэффициентов для оценки в этом многочлене.

Для модели временных рядов ARMA или ARIMA, не имеющей входных данных, установите [na nb nc nk] кому [na nc]. Пример см. в разделе Модель ARMA.

Для модели с Ny выходами и Nu входами:

  • na - порядок многочлена A (q), заданного как матрица Ny-by-Ny неотрицательных целых чисел.

  • nb - порядок многочлена B (q) + 1, заданного как матрица Ny-by-Nu неотрицательных целых чисел.

  • nc - порядок многочлена C (q), заданного как вектор-столбец неотрицательных целых чисел длины Ny.

  • nk - задержка ввода-вывода, также известная при задержке передачи, заданная как матрица Ny-by-Nu неотрицательных целых чисел. nk представлен в моделях ARMAX фиксированными ведущими нулями многочлена В.

Пример см. в разделе Оценка модели ARMAX.

Система конфигурирования начальной параметризации sys, заданная как дискретно-временная линейная модель. Вы получаете init_sys путем выполнения оценки с использованием измеренных данных или путем прямого построения с использованием таких команд, как idpoly и idss.

Если init_sys является моделью ARMAX, armax использует значения параметров init_sys в качестве начального предположения для оценки. Для конфигурирования начальных предположений и ограничений для A (q), B (q) и C (q) используйте Structure имущество init_sys. Например:

  • Чтобы указать начальное предположение для A (q) члена init_sys, комплект init_sys.Structure.A.Value в качестве первоначального предположения.

  • Определение ограничений для B (q) члена init_sys:

    • Набор init_sys.Structure.B.Minimum до минимальных значений коэффициента B (q).

    • Набор init_sys.Structure.B.Maximum до максимальных значений коэффициента B (q).

    • Набор init_sys.Structure.B.Free чтобы указать, какие B (q) коэффициенты свободны для оценки.

Если init_sys не является полиномиальной моделью со структурой ARMAX, программное обеспечение сначала преобразует init_sys в модель ARMAX. armax использует параметры результирующей модели в качестве начального предположения для оценки sys.

Если opt не указан и init_sys был получен путем оценки, затем варианты оценки из init_sys.Report.OptionsUsed используются.

Пример см. в разделе Инициализация параметров модели ARMAX с использованием модели пространства состояний.

Параметры оценки для идентификации модели ARMAX, указанные как armaxOptions набор опций. Параметры, указанные opt включают следующее:

  • Обработка начальных условий (Initial condition handling) - эта опция используется для определения способа установки или оценки начальных условий.

  • Смещения входных и выходных данных - используйте эти опции для удаления смещений из данных во время оценки.

  • Регуляризация - эта опция используется для управления компромиссом между погрешностями смещения и дисперсии в процессе оценки.

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

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

Пример: 'InputDelay',2 применяет задержку ввода двух периодов выборки ко всем входным каналам

Входные задержки, выраженные как целые кратные времени выборки, указанные как пара, разделенная запятыми, состоящая из 'InputDelay' и одно из следующих:

  • Вектор Nu-by-1, где Nu - количество входов - каждый вход является числовым значением, представляющим входную задержку для соответствующего входного канала.

  • Скалярное значение - примените одинаковую задержку ко всем входным каналам.

  • 0 - Отсутствие задержек ввода.

Пример: armax(data,[2 1 1 0],'InputDelay',1) оценивает модель ARX второго порядка с полиномами B и C первого порядка, которая имеет задержку ввода двух выборок.

Транспортные задержки для каждой пары «вход-выход», выраженные как целые кратные времени выборки и указанные как пара, разделенная запятыми, состоящая из 'IODelay' и одно из следующих:

  • Матрица Ny-by-Nu, где Ny - количество выходов, а Nu - количество входов - Каждая запись представляет целое значение, представляющее задержку передачи для соответствующей пары вход-выход.

  • Скалярное значение (Scalar value) - применяет одинаковую задержку ко всем парам «вход-выход».

'IODelay' полезен в качестве замены для nk заказ. Вы можете факторизировать max(nk-1,0) отстает, поскольку 'IODelay' значение. Для nk > 1, armax(na,nb,nk) эквивалентно armax(na,nb,1,'IODelay',nk-1).

Добавление интеграторов в шумовой канал, определяемый как разделенная запятыми пара, состоящая из 'IntegrateNoise' и логический вектор длины Ny, где Ny - количество выходов.

Настройка 'IntegrateNoise' кому true для определенных выходных результатов в модели

A (q) y (t) = B (q) u (t nk) + C (q) 1 − q − 1e (t)

где 11 q − 1 - интегратор в шумовом канале, e (t).

Использовать 'IntegrateNoise' для создания моделей ARIMA или ARIMAX.

Пример см. в разделе Модель ARIMA.

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

свернуть все

Модель ARMAX, которая соответствует данным оценки, возвращается как дискретное время idpoly объект. Эта модель создается с использованием указанных заказов модели, задержек и опций оценки.

Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Report имеет следующие поля.

Поле отчетаОписание
Status

Сводка состояния модели, указывающая, была ли модель создана путем построения или получена путем оценки.

Method

Используется команда оценки.

InitialCondition

Обработка исходных условий при оценке модели, возвращаемых как одно из следующих значений:

  • 'zero' - Исходные условия были установлены на ноль.

  • 'estimate' - Исходные условия рассматривались как независимые оценочные параметры.

  • 'backcast' - Начальные условия оценивались с использованием наилучшего вписывания наименьших квадратов.

Это поле особенно полезно для просмотра того, как обрабатывались начальные условия при InitialCondition опция в наборе опций оценки 'auto'.

Fit

Количественная оценка оценки, возвращенная как структура. Дополнительные сведения об этих показателях качества см. в разделе Метрики качества функции потери и модели. Структура имеет следующие поля:

ОбластьОписание
FitPercent

Нормализованная среднеквадратическая ошибка (NRMSE) измерения того, насколько хорошо отклик модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь после завершения оценки.

MSE

Показатель среднеквадратичной ошибки (MSE) того, насколько хорошо отклик модели соответствует данным оценки.

FPE

Ошибка окончательного прогноза для модели.

AIC

Показатель качества модели Raw Akaike Information Criteria (AIC).

AICc

Небольшой размер выборки, скорректированный AIC.

nAIC

Нормализованная AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

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

RandState

Состояние потока случайных чисел в начале оценки. Пустое, [], если рандомизация не использовалась во время оценки. Дополнительные сведения см. в разделе rng.

DataUsed

Атрибуты данных, используемых для оценки, возвращаемые в виде структуры со следующими полями:

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Время выборки.

InterSample

Поведение ввода между образцами, возвращаемое как одно из следующих значений:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Поведение с ограниченной полосой указывает, что входной сигнал непрерывного времени имеет нулевую мощность выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Termination

Условия завершения итеративного поиска, используемые для минимизации ошибок прогнозирования, возвращены в виде структуры со следующими полями:

ОбластьОписание
WhyStop

Причина прекращения числового поиска.

Iterations

Количество итераций поиска, выполненных алгоритмом оценки.

FirstOrderOptimality

∞-norm вектора поиска градиента при завершении алгоритма поиска.

FcnCount

Число вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия в последней итерации, выраженное в процентах. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм, используемый 'lsqnonlin' или 'fmincon' способ поиска. Опускается при использовании других методов поиска.

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

Дополнительные сведения об использовании Report, см. Отчет по оценке.

Предполагаемые начальные условия, возвращенные в виде initialCondition объект или массив объектов initialCondition значения.

  • Для набора данных одного эксперимента: ic представляет в форме state-space свободный отклик модели передаточной функции (матрицы A и C) на оцененные начальные состояния (x0).

  • Для набора данных нескольких экспериментов с экспериментами Ne, ic - массив объектов длиной Ne, содержащий один набор initialCondition значения для каждого эксперимента.

Если armax прибыль ic значения 0 и вы знаете, что у вас есть ненулевые начальные условия, установите 'InitialCondition' опция в armaxOptions кому 'estimate' и передать обновленный набор опций в armax. Например:

opt = armaxOptions('InitialCondition,'estimate')
[sys,ic] = armax(data,np,nz,opt)
Дефолт 'auto' установка 'InitialCondition' использует 'zero' способ, когда исходные условия оказывают незначительное влияние на общий процесс минимизации ошибок оценки. Определение 'estimate' гарантирует, что программное обеспечение оценивает значения для ic.

Дополнительные сведения см. в разделе initialCondition. Пример использования этого аргумента см. в разделе Получение начальных условий.

Подробнее

свернуть все

Модель ARMAX

Структура модели ARMAX (авторегрессионное скользящее среднее с дополнительным вводом):

y (t) + a1y (t 1) +... +     anay (t na) = b1u (t nk) +...  +     bnbu  ( t  − nk nb + 1) + c1e (t 1) +... + cnce (t − nc) + e (t)

Более компактным способом записи уравнения разности является

A (q) y (t) = B (q) u (t nk) + C (q) e (t)

где

  • y (t) - Выход в момент времени t

  • na - Количество полюсов

  • nb - количество нулей плюс 1

  • nc - количество коэффициентов C;

  • nk - количество входных выборок, которые возникают до того, как вход влияет на выход, также называемое мертвым временем в системе;

  • y (t 1)... y (t − na) - предыдущие выходы, от которых зависит токовый выход

  • u (t nk)... u (t nk − nb + 1) - Предыдущие и задержанные входы, от которых зависит токовый выход

  • e (t 1)... e (t − nc) - Значение возмущения белого шума

Параметры na, nb, и nc являются порядками модели ARMAX, и nk - задержка. q - оператор задержки. В частности,

A (q) = 1 + a1q 1 +... + anaq − na

B (q) = b1 + b2q 1 +... + bnbq − nb + 1

C (q) = 1 + c1q 1 +... + cncq − nc

Модель временных рядов ARMA

Модель ARMA (Autoregressive Moving Average) является частным случаем модели ARMAX без входных каналов. Структура модели с одним выходом ARMA задается следующим уравнением:

A (q) y (t) = C (q) e (t)

Модель ARIMAX

Структура модели ARIMAX (Autorregressive Integrated Moving Average with Extra Input) аналогична модели ARMAX, за исключением того, что она содержит интегратор в источнике шума e (t):

A (q) y (t) = B (q) u (t nk) + C (q) (1 − q − 1) e (t)

Модель ARIMA

Структура модели ARIMA (авторегрессионная интегрированная скользящая средняя) представляет собой сокращение модели ARIMAX без входных данных:

A (q) y (t) = C (q) (1 q − 1) e (t)

Алгоритмы

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

  • Достигнуто максимальное число итераций.

  • Ожидаемое улучшение меньше указанного допуска.

  • Не удается найти меньшее значение критерия.

Сведения о критериях остановки можно получить с помощью sys.Report.Termination.

Используйте armaxOptions для создания и конфигурирования параметров, влияющих на результаты оценки. В частности, задайте атрибуты алгоритма поиска, такие как MaxIterations и Tolerance, с использованием 'SearchOptions' собственность.

Если начальные значения параметров для итерационного поиска не указаны как начальная модель, они строятся в специальном четырехступенчатом алгоритме LS-IV.

Значение отсечки для робустификации основано на Advanced.ErrorThreshold вариант оценки и о предполагаемом стандартном отклонении остатков от первоначальной оценки параметров. Значение отсечки не пересчитывается во время минимизации. По умолчанию робустификация не выполняется; значение по умолчанию ErrorThreshold параметр равен 0.

Чтобы убедиться, что проверены только модели, соответствующие стабильным предикторам, алгоритм выполняет тест стабильности предиктора. Обычно и C (q), и F (q) (если применимо) должны иметь все нули внутри единичной окружности.

Информация о минимизации отображается на экране при выборе опции оценки. 'Display' является 'On' или 'Full'. Когда 'Display' является 'Full', текущая и предыдущая оценки параметров отображаются в виде «столбец-вектор», а параметры перечислены в алфавитном порядке. Также задаются значения функции критерия (стоимость) и отображается вектор Гаусса-Ньютона и его норма. Когда 'Display' является 'On'отображаются только значения критериев.

Альтернативы

armax не поддерживает оценку модели непрерывного времени. Использовать tfest для оценки модели функции непрерывного переноса времени, или ssest для оценки модели состояния-пространства непрерывного времени.

armax поддерживает только данные временной области. Для данных в частотной области используйте oe для оценки модели ошибки вывода (OE).

Ссылки

[1] Ljung, L. Идентификация системы: теория для пользователя, второе издание. Река Верхнее Седло, Нью-Джерси: Prentice-Hall PTR, 1999. См. главу о вычислении оценки.

Расширенные возможности

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