exponenta event banner

goodnessOfFit

Достоверность соответствия между тестовыми и эталонными данными для анализа и проверки идентифицированных моделей

Описание

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

пример

fit = goodnessOfFit(x,xref,cost_func) возвращает достоверность соответствия между данными теста x и справочные данные xref использование функции затрат cost_func. fit является количественным представлением близости x кому xref. Для выполнения нескольких сравнений соответствия между тестом и ссылкой можно указать x и xref как массивы ячеек одинакового размера, содержащие несколько наборов тестовых и эталонных данных. С входами массива ячеек, fit возвращает массив значений аппроксимации.

Примеры

свернуть все

Определите правильность соответствия между измеренными выходными данными и смоделированными выходными данными расчетной модели.

Получите измеренный выходной сигнал.

load iddata1 z1
yref = z1.y;

z1 является iddata объект, содержащий измеренные входные-выходные данные. z1.y - измеряемый выходной сигнал.

Оценка модели функции переноса второго заказа и моделирование выходных данных модели y_est.

sys = tfest(z1,2);
y_est = sim(sys,z1(:,[],:)); 

Рассчитайте степень соответствия или норму погрешности между измеренными и расчетными выходами. Укажите нормализованную среднеквадратичную ошибку (NRMSE) в качестве функции затрат.

cost_func = 'NRMSE';
y = y_est.y;
fit = goodnessOfFit(y,yref,cost_func) 
fit = 0.2943

Кроме того, можно использовать compare для расчета посадки. compare использует функцию затрат NRMSE и выражает процент соответствия с помощью дополнения нормы ошибок. Соотношение соответствия между compare и goodnessOfFit поэтому fitcompare = (1-фитгоф) * 100. Acompare результат 100% эквивалентен goodnessOfFit результат 0.

Укажите начальное условие, равное нулю, чтобы соответствовать начальному условию, goodnessOfFit предполагает.

opt = compareOptions('InitialCondition','z');
compare(z1,sys,opt);

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

Результаты подгонки эквивалентны.

Определите правильность соответствия между измеренными и расчетными выходами для двух моделей.

Получение результатов измерений «вход-выход» z2 от iddata2. Копирование измеренного выходного сигнала в опорный выходной сигнал yref.

load iddata2 z2
yref = z2.y;

Оценка моделей функций переноса второго и четвертого заказов с использованием z2.

sys2 = tfest(z2,2);
sys4 = tfest(z2,4);

Моделирование обеих систем для получения расчетных выходных данных.

y_sim2 = sim(sys2,z2(:,[],:));
y2 = y_sim2.y;
y_sim4 = sim(sys4,z2(:,[],:));
y4 = y_sim4.y;

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

yrefc = {yref yref};
yc = {y2 y4};

Вычислить fit значения для трех функций затрат.

fit_nrmse = goodnessOfFit(yc,yrefc,'NRMSE')
fit_nrmse = 1×2

    0.1429    0.1342

fit_nmse = goodnessOfFit(yc,yrefc,'NMSE')
fit_nmse = 1×2

    0.0204    0.0180

fit_mse = goodnessOfFit(yc,yrefc,'MSE')
fit_mse = 1×2

    1.0811    0.9540

Значение аппроксимации, равное 0, указывает на идеальную аппроксимацию между опорными и оценочными выходами. Значение подгонки увеличивается по мере уменьшения благости подгонки. Для всех трех функций затрат модель четвертого порядка обеспечивает лучшее соответствие, чем модель второго порядка.

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

свернуть все

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

  • Для одного набора тестовых данных укажите матрицу Ns-by-N, где Ns - количество выборок, а N - количество каналов. Необходимо указать cost_fun как 'NRMSE' или 'NMSE' для использования многоканальных данных.

  • Для нескольких наборов тестовых данных укажите массив ячеек длиной Nd, где Nd - количество пар «тест-ссылка», и каждая ячейка содержит одну матрицу данных.

x не должен содержать NaN или Inf значения.

Ссылочные данные для сравнения x, задается как матрица или массив ячеек.

  • Для одного набора опорных данных укажите матрицу Ns-by-N, где Ns - количество выборок, а N - количество каналов. xref должен быть того же размера, что и x. Необходимо указать cost_fun как 'NRMSE' или 'NMSE' для использования многоканальных данных.

  • Для нескольких наборов опорных данных укажите массив ячеек длиной Nd, где Nd - количество пар «тест-ссылка», и каждая ячейка содержит одну матрицу опорных данных. Как и в случае отдельных матриц данных, размеры массива ячеек для x и xref должно совпадать. Каждый i-й элемент fit соответствует парам i-ых ячеек x и xref.

xref не должен содержать NaN или Inf значения.

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

СтоимостьОписаниеУравнениеПримечания
'MSE'Среднеквадратичная ошибка

fit=‖x−xref‖2Ns

где Ns - число выборок, а ‖ - 2-норма вектора.

fit - скаляр.
'NRMSE'Нормализованная среднеквадратическая ошибка корня

fit (i) =‖xref (:, i) x (:, i) xref (:, i) mean (xref (:, i)) ‖

где ‖ обозначает 2-норму вектора. fit - вектор строки длиной N и i = 1,...,N, где N - количество каналов.

fit - вектор строки. 'NRMSE' - функция затрат, используемая compare.

'NMSE'Нормированная среднеквадратичная ошибка

fit (i) =‖xref (:, i) x (:, i) 2‖xref (:, i) среднее (xref (:, i)) ‖ 2

fit - вектор строки.

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

свернуть все

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

  • Для одной пары тестов и набора эталонных данных: fit возвращается как скалярный вектор или вектор строки.

    • Если cost_fun является 'MSE', то fit является скаляром.

    • Если cost_fun является 'NRMSE' или 'NMSE', то fit - вектор столбца длиной N, где N - количество каналов.

  • Для нескольких пар тестов и наборов данных и опорных пар, где x и xref - массивы ячеек длиной ND, fit возвращается в виде вектора или матрицы.

    • Если cost_fun является 'MSE', то fit - вектор строки длиной ND.

    • Если cost_fun является 'NRMSE' или 'NMSE', то fit - матрица размера N-by- Nd, где N - количество каналов (столбцов данных), а Nd - количество тестовых пар. Каждый элемент fit содержит достоверность значений соответствия для соответствующих тестовых данных и эталонной пары.

    Каждый элемент fit содержит достоверность значений соответствия для соответствующих тестовых данных и эталонной пары.

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

  • Если cost_func является 'MSE', каждый fit значение - это положительный скаляр, который растет с ошибкой между тестовыми и опорными данными. A fit значение 0 указывает на идеальное соответствие между тестовыми и эталонными данными.

  • Если cost_func является 'NRMSE' или 'NMSE', fit значения варьируются между -Inf и 1.

    • 0 - Идеально подходит для справочных данных (нулевая ошибка)

    • -Inf - Плохая посадка

    • 1x не лучше, чем прямая линия при согласовании xref

Вопросы совместимости

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

В R2020a изменилось поведение

См. также

| | |

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