Идентифицируйте модели временных рядов в командной строке

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

Сгенерируйте модель и симулируйте Выход Модели

Сгенерируйте данные временных рядов путем создания и симуляции авторегрессивного (AR) модель ts_orig полинома из формы yk=a1yk-1+a2yk-2+ek, где ek случайный Гауссов шум. Этот шум представляет неизмеренный вход модели. Поскольку модель является временными рядами, нет никаких измеренных входных параметров.

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

ts_orig = idpoly([1 -1.75 0.9]);
rng('default')
e = idinput(300,'rgs');

Симулируйте наблюдаемый выход y_obs из этой модели и преобразуют y_obs к iddata объект y с шагом расчета по умолчанию одной секунды. Постройте выход модели вместе с входным шумом.

y_obs = sim(ts_orig,e); 
y = iddata(y_obs);

plot(e)
hold on
plot(y_obs)
title('Input Noise and Original Model Output')
legend('RGS Noise','Model Output')
hold off

Оценочная модель и сравнивает спектры

Функции etfe и spa обеспечьте два непараметрических метода для выполнения спектрального анализа. Сравните предполагаемые спектры мощности от etfe и spa к исходной модели.

ts_etfe = etfe(y);
ts_spa = spa(y);
spectrum(ts_etfe,ts_spa,ts_orig);
legend('ts_{etfe}','ts_{spa}','ts_{orig}')

Теперь оцените параметрическую модель с помощью структуры AR. Оцените модель AR второго порядка и сравните ее спектр с исходной моделью и spa оценка.

ts_ar = ar(y,2);
spectrum(ts_spa,ts_ar,ts_orig);
legend('ts_{spa}', 'ts_{ar}', 'ts_{orig}')

Спектр модели AR соответствует исходному спектру модели более тесно, чем непараметрические модели.

Оцените и сравните ковариацию

Вычислите функцию ковариации для исходной модели и модели AR путем свертки к каждому выходу модели с собой.

ir_orig = sim(ts_orig,[1;zeros(24,1)]);
Ry_orig = conv(ir_orig,ir_orig(25:-1:1));
ir_ar = sim(ts_ar,[1;zeros(24,1)]);
Ry_ar = conv(ir_ar,ir_ar(25:-1:1));

Также оцените ковариацию Ry непосредственно от наблюдаемых выходных параметров y использование xcorr.

Ry = xcorr(y.y,24,'biased');

Постройте и сравните исходные и предполагаемые ковариации.

plot(-24:24'*ones(1,3),[Ry_orig,Ry_ar,Ry]);
legend('Ry_{orig}', 'Ry_{ar}', 'Ry')

Ковариация предполагаемой модели AR, Ry_ar, ближе к исходной ковариации Ry_orig.

Предскажите и сравните модель Выходные параметры

Сравните точность предсказания с тремя шагами или подходящий процент, для исходной модели и модели AR, с помощью функционального compare. Здесь, compare вычисляет предсказанный ответ ts_orig и ts_ar модели с исходными выходными данными модели y, принятие неизмеренного входа ek нуль. Четвертый аргумент, 3, количество шагов, чтобы предсказать.

compare(y,ts_orig,ts_ar,3);

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

Смотрите также

| | |

Связанные примеры

Больше о