armax

Оцените параметры ARMAX, ARIMAX, ARMA или модели ARIMA с помощью данных временного интервала

Описание

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

пример

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

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полином установкой 'IntegrateNoisetrue.

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 объект. Для ARMA и моделей timeseries ARIMA, входного канала в data должно быть пустым. Для примеров см. Модель ARMA и Модель ARIMA.

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

Для ARMA или модели timeseries 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

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

InitialCondition

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

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

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

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

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

Fit

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

Поле Описание
FitPercent

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

LossFcn

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

MSE

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

FPE

Итоговая ошибка предсказания для модели.

AIC

Необработанная мера по Критериям информации о Akaike (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

- норма вектора просмотра градиента, когда алгоритм поиска останавливается.

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 (Autoregressive Moving Average) является особым случаем Модели ARMAX без входных каналов. Структура модели одно выхода ARMA дана следующим уравнением:

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

Модель ARIMAX

ARIMAX (Авторегрессивное Интегрированное Скользящее среднее значение с Дополнительным Входом) структура модели похожа на модель ARMAX, за исключением того, что это содержит интегратор в источнике шума e(t):

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

Модель ARIMA

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

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

Алгоритмы

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

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

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

  • Нижнее значение критерия не может быть найдено.

Можно получить информацию о критерии остановки с помощью sys.Report.Termination.

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

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

Значение сокращения для robustification основано на Advanced.ErrorThreshold опция оценки и на предполагаемом стандартном отклонении остаточных значений начальной оценки параметра. Значение сокращения не повторно вычисляется во время минимизации. По умолчанию никакой robustification не выполняется; значение по умолчанию 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: Теория для Пользователя, Второго Выпуска. Верхний Сэддл-Ривер, NJ: PTR Prentice Hall, 1999. См. главу о вычислении оценки.

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

Введен в R2006a