armax

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

Описание

Оцените модель ARMAX

пример

sys = armax(data,[na nb nc nk]) оценивает параметры ARMAX или ARMA модели idpolysys использование метода предсказания-ошибки и полиномиальных порядков, заданных в [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 четвертого порядка для одномерного данного timeseries.

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

load iddata9 z9;

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

z9.y = cumsum(z9.y);

Оцените модель ARIMA четвертого порядка с первым порядкомCполином путем установки 'IntegrateNoise'to 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, в форме пространство состояний, в вектор начального состояния в X0. Можно включать ic когда вы симулируете sys с z1i входной сигнал и сравните ответ с z1i выходной сигнал.

Входные параметры

свернуть все

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

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

Для модели временного timeseries 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 фиксированными начальными нулями полинома B.

Для получения примера смотрите Оценку модели 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 включать в себя следующее:

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами 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 - количество входов - каждая запись является целым значением, представляющим транспортную задержку для соответствующей пары вход-выход.

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

'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(tnk)+C(q)1q1e(t)

где 11q1 является интегратором в канале шума, e (t).

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

Для получения примера смотрите Модель ARIMA.

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

свернуть все

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

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

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

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

Method

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

InitialCondition

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

  • 'zero' - Начальные условия были обнулены.

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

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

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

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера качества модели 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 представляет в форме пространства состояний свободный ответ модели передаточной функции (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(t1)++anay(tna)=     b1u(tnk)++bnbu(tnknb+1)+             c1e(t1)++cnce(tnc)+e(t)

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

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

где

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

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

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

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

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

  • y(t1)y(tna) - Предыдущие выходы, от которых зависит выходной ток

  • u(tnk)u(tnknb+1) - Предыдущие и отложенные входы, от которых зависит токовый выход

  • e(t1)e(tnc) - Значение нарушения порядка белого шума

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

A(q)=1+a1q1++anaqna

B(q)=b1+b2q1++bnbqnb+1

C(q)=1+c1q1++cncqnc

Модель Timeseries ARMA

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

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

Модель ARIMAX

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

A(q)y(t)=B(q)u(tnk)+C(q)(1q1)e(t)

Модель ARIMA

Структура модели ARIMA (Autoregressive Integrated Moving Average) является сокращением модели ARIMAX без входов:

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

Алгоритмы

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

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

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

  • Не удается найти более низкое значение критерия.

Информацию о критериях остановки можно получить используя 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 для оценки модели Output-Error (OE).

Ссылки

[1] Ljung, L. System Identification: Теория для пользователя, Second Edition. Upper Saddle River, NJ: Prentice-Hall PTR, 1999. См. главу об вычислении оценки.

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

Введенный в R2006a