testcholdout

Сравните прогнозирующие точности двух классификационных моделей

Описание

testcholdout статистически оценивает точности двух классификационных моделей. Функция сначала сравнивает их предсказанные метки с истинными метками, а затем обнаруживает, является ли различие между показателями неправильной классификации статистически значительной.

Можно оценить, отличаются ли точности классификационных моделей или одна классификационная модель работает лучше другой. testcholdout может провести несколько изменения теста McNemar, включая асимптотический тест, точный-условный тест и среднее p значение теста. Для чувствительной к затратам оценки доступные тесты включают тест хи-квадрат (требует лицензии Optimization Toolbox™) и тест коэффициента вероятности.

пример

h = testcholdout(YHat1,YHat2,Y) возвращает решение теста, проведя тест McNemar p средним значением, из проверки нулевой гипотезы, что предсказанные метки классов YHat1 и YHat2 имеют равную точность для предсказания истинных меток классов Y. Альтернативная гипотеза заключается в том, что метки имеют неравную точность.

h = 1 указывает на отклонение нулевой гипотезы на уровне 5% значимости. h = 0 указывает, что не отклоняет гипотезу null на уровне 5%.

пример

h = testcholdout(YHat1,YHat2,Y,Name,Value) возвращает результат проверки гипотезы с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Для примера можно задать тип альтернативной гипотезы, тип теста или предоставить матрицу затрат.

пример

[h,p,e1,e2] = testcholdout(___) возвращает p -value для теста гипотезы (p) и соответствующие классификационные потери каждого набора предсказанных меток классов (e1 и e2) с использованием любого из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

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

Загрузите ionosphere набор данных.

load ionosphere

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

rng(1);                             % For reproducibility
CVP = cvpartition(Y,'holdout',0.5);
idxTrain = training(CVP);           % Training-set indices 
idxTest = test(CVP);                % Test-set indices

CVP является объектом раздела перекрестной проверки, который задает наборы для обучения и тестирования.

Обучите модель SVM и ансамбль из 100 упакованных классификационных деревьев. Для модели SVM задайте использование ядра функции радиального базиса и эвристической процедуры для определения шкалы ядра.

MdlSVM = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true,...
    'KernelFunction','RBF','KernelScale','auto');
t = templateTree('Reproducible',true);  % For reproducibility of random predictor selections
MdlBag = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','Bag','Learners',t);

MdlSVM является обученным ClassificationSVM модель. MdlBag является обученным ClassificationBaggedEnsemble модель.

Пометьте наблюдения набора тестов с помощью обученных моделей.

YhatSVM = predict(MdlSVM,X(idxTest,:));
YhatBag = predict(MdlBag,X(idxTest,:));

YhatSVM и YhatBag являются векторами, продолжающими предсказанные метки классов соответствующих моделей.

Проверьте, имеют ли две модели равные прогнозирующие точности.

h = testcholdout(YhatSVM,YhatBag,Y(idxTest))
h = logical
   0

h = 0 указывает, что не отвергать нулевую гипотезу о том, что две модели имеют равные прогнозирующие точности.

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

Загрузите ionosphere набор данных.

load ionosphere;

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

rng(1);                             % For reproducibility
CVP = cvpartition(Y,'holdout',0.5);
idxTrain = training(CVP);           % Training-set indices 
idxTest = test(CVP);                % Test-set indices

CVP является объектом раздела перекрестной проверки, который задает наборы для обучения и тестирования.

Обучите две модели SVM: одну, которая использует линейное ядро (по умолчанию для двоичной классификации) и одну, которая использует ядро функции радиального базиса. Используйте шкалу ядра по умолчанию 1.

MdlLinear = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true);
MdlRBF = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true,...
    'KernelFunction','RBF');

MdlLinear и MdlRBF обучаются ClassificationSVM модели.

Пометьте наблюдения набора тестов с помощью обученных моделей.

YhatLinear = predict(MdlLinear,X(idxTest,:));
YhatRBF = predict(MdlRBF,X(idxTest,:));

YhatLinear и YhatRBF являются векторами, продолжающими предсказанные метки классов соответствующих моделей.

Протестируйте нулевую гипотезу о том, что более простая модель (MdlLinear) не более точна, чем более сложная модель (MdlRBF). Поскольку размер тестового набора велик, проведите асимптотический тест Макнемара и сравните результаты с тестом среднего значения (без учета затрат проверки по умолчанию). Запрос на возврат значений p и коэффициентов неправильной классификации.

Asymp = zeros(4,1); % Preallocation
MidP = zeros(4,1); 

[Asymp(1),Asymp(2),Asymp(3),Asymp(4)] = testcholdout(YhatLinear,YhatRBF,Y(idxTest),...
    'Alternative','greater','Test','asymptotic');
[MidP(1),MidP(2),MidP(3),MidP(4)] = testcholdout(YhatLinear,YhatRBF,Y(idxTest),...
    'Alternative','greater');
table(Asymp,MidP,'RowNames',{'h' 'p' 'e1' 'e2'})
ans=4×2 table
            Asymp          MidP   
          __________    __________

    h              1             1
    p     7.2801e-09    2.7649e-10
    e1       0.13714       0.13714
    e2       0.33143       0.33143

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

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

Загрузите arrhythmia набор данных. Определите представления классов в данных.

load arrhythmia;
Y = categorical(Y);
tabulate(Y);
  Value    Count   Percent
      1      245     54.20%
      2       44      9.73%
      3       15      3.32%
      4       15      3.32%
      5       13      2.88%
      6       25      5.53%
      7        3      0.66%
      8        2      0.44%
      9        9      1.99%
     10       50     11.06%
     14        4      0.88%
     15        5      1.11%
     16       22      4.87%

Существует 16 классов, однако некоторые из них не представлены в наборе данных (для примера, класс 13). Большинство наблюдений классифицируются как не имеющие аритмии (класс 1). Набор данных сильно дискретен с несбалансированными классами.

Объедините все наблюдения с аритмией (классы 2-15) в один класс. Удалите наблюдения с неизвестным статусом аритмии (класс 16) из набора данных.

idx = (Y ~= '16');
Y = Y(idx);
X = X(idx,:);
Y(Y ~= '1') = 'WithArrhythmia';
Y(Y == '1') = 'NoArrhythmia';
Y = removecats(Y);

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

rng(1);                             % For reproducibility
CVP = cvpartition(Y,'holdout',0.5);
idxTrain = training(CVP);           % Training-set indices 
idxTest = test(CVP);                % Test-set indices

CVP является объектом раздела перекрестной проверки, который задает наборы для обучения и тестирования.

Создайте матрицу затрат, так что неправильная классификация пациента с аритмией в класс «без аритмии» в пять раз хуже, чем неправильная классификация пациента без аритмии в класс аритмии. Классификация правильно не несет никаких затрат. Строки указывают истинный класс, а столбцы - предсказанный класс. При проведении анализа с учетом затрат рекомендуется определить порядок классов.

Cost = [0 1;5 0];
ClassNames = {'NoArrhythmia','WithArrhythmia'};

Обучите два бустинг-ансамбля из 50 классификационных деревьев, один из которых использует AdaBoostM1 и другой, который использует LogitBoost. Поскольку в наборе данных отсутствуют значения, задайте, чтобы использовать суррогатные разделения. Обучите модели с помощью матрицы затрат.

t = templateTree('Surrogate','on');
numTrees = 50;
MdlAda = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','AdaBoostM1',...
    'NumLearningCycles',numTrees,'Learners',t,...
    'Cost',Cost,'ClassNames',ClassNames);
MdlLogit = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','LogitBoost',...
    'NumLearningCycles',numTrees,'Learners',t,...
    'Cost',Cost,'ClassNames',ClassNames);

MdlAda и MdlLogit обучаются ClassificationEnsemble модели.

Пометьте наблюдения набора тестов с помощью обученных моделей.

YhatAda = predict(MdlAda,X(idxTest,:));
YhatLogit = predict(MdlLogit,X(idxTest,:));

YhatLinear и YhatRBF являются векторами, содержащими предсказанные метки классов соответствующих моделей.

Проверяйте, AdaBoostM1 ли ансамбль (MdlAda) и ансамбль LogitBoost (MdlLogit) имеют равную точность прогноза. Поставьте матрицу затрат. Проведите асимптотический, коэффициент правдоподобия, чувствительный к затратам тест (по умолчанию, когда вы проходите в матрице затрат). Запрос на возврат значений p и затрат на неправильную классификацию.

[h,p,e1,e2] = testcholdout(YhatAda,YhatLogit,Y(idxTest),'Cost',Cost)
h = logical
   0

p = 0.3334
e1 = 0.5581
e2 = 0.4698

h = 0 указывает, что не отвергать нулевую гипотезу о том, что две модели имеют равные прогнозирующие точности.

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

свернуть все

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

Если YHat1 является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.

YHat1, YHat2, и Y должны иметь равную длину.

Это лучшая практика для YHat1, YHat2, и Y для совместного использования того совпадающего типа данных.

Типы данных: categorical | char | string | logical | single | double | cell

Предсказанные метки классов второй классификационной модели, заданные как категориальные символьные или строковые массивы, логический или числовой вектор или массив ячеек из векторов символов.

Если YHat2 является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.

YHat1, YHat2, и Y должны иметь равную длину.

Это лучшая практика для YHat1, YHat2, и Y для совместного использования того совпадающего типа данных.

Типы данных: categorical | char | string | logical | single | double | cell

Метки класса True, заданные как категориальные символьные или строковые массивы, логический или числовой вектор или массив ячеек из векторов символов.

Если Y является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.

YHat1, YHat2, и Y должны иметь равную длину.

Это лучшая практика для YHat1, YHat2, и Y для совместного использования того совпадающего типа данных.

Типы данных: categorical | char | string | logical | single | double | cell

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

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

Пример: 'Alternative','greater','Test','asymptotic','Cost',[0 2;1 0] определяет, чтобы проверить, является ли первый набор первых предсказанных меток классов более точным, чем второй набор, провести асимптотический тест Макнемара и наказать неправильную классификацию наблюдений с помощью истинной метки ClassNames{1} вдвое больше, чем для неправильной классификации наблюдений с истинной меткой ClassNames{2}.

Уровень значимости теста гипотезы, заданный как разделенная разделенными запятой парами, состоящая из 'Alpha' и скалярное значение в интервале (0,1).

Пример: 'Alpha',0.1

Типы данных: single | double

Альтернативная гипотеза для оценки, заданная как разделенная разделенными запятой парами, состоящая из 'Alternative' и одно из значений, перечисленных в таблице.

ЗначениеАльтернативная гипотеза
'unequal' (по умолчанию)Для предсказания Y, YHat1 и YHat2 имеют неравные точности.
'greater'Для предсказания Y, YHat1 точнее, чем YHat2.
'less'Для предсказания Y, YHat1 менее точен, чем YHat2.

Пример: 'Alternative','greater'

Имена классов, заданные как разделенная разделенными запятой парами, состоящая из 'ClassNames' и категориальные символьные или строковые массивы, логический или числовой вектор или массив ячеек из векторов символов. Вы должны задать ClassNames использование типа данных Y.

Если ClassNames является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.

Использование ClassNames кому:

  • Задайте порядок любой размерности входного параметра, которая соответствует порядку классов. Для примера используйте ClassNames для определения порядка размерностей Cost.

  • Выберите подмножество классов для проверки. Например, предположим, что набор всех различных имен классов в Y является {'a','b','c'}. Для обучения и экспериментальных моделей с использованием наблюдений из классов 'a' и 'c' только, задайте 'ClassNames',{'a','c'}.

По умолчанию это набор всех различных имен классов в Y.

Пример: 'ClassNames',{'b','g'}

Типы данных: single | double | logical | char | string | cell | categorical

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

  • Если вы задаете квадратную матрицу Cost, затем Cost(i,j) - стоимость классификации точки в класс j если его класс true i. То есть строки соответствуют истинному классу, а столбцы - предсказанному классу. Чтобы задать порядок классов для соответствующих строк и столбцов Cost, дополнительно задайте ClassNames аргумент пары "имя-значение".

  • Если вы задаете структуру S, затем S должны иметь два поля:

    • S.ClassNames, который содержит имена классов как переменный совпадающий тип данных as Y. Это поле используется для определения порядка классов.

    • S.ClassificationCosts, которая содержит матрицу затрат с строками и столбцами, упорядоченными как в S.ClassNames.

Если вы задаете Cost, затем testcholdout не может проводить односторонние, точные или средние p тесты. Вы также должны задать 'Alternative','unequal','Test','asymptotic'. Для экономичных опций проверки смотрите CostTest аргумент пары "имя-значение".

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

Значение по умолчанию является Cost(i,j) = 1 если i ~= j, и Cost(i,j) = 0 если i = j.

Пример: 'Cost',[0 1 2 ; 1 0 2; 2 2 0]

Типы данных: single | double | struct

Чувствительный к расходам тип теста, заданный как разделенная разделенными запятой парами, состоящая из 'CostTest' и 'chisquare' или 'likelihood'. Если вы не задаете матрицу затрат используя Cost аргумент пары "имя-значение", testcholdout игнорирует CostTest.

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

ЗначениеАсимптотический тип тестаТребования
'chisquare'Тест Хи-квадратЛицензия Optimization Toolbox для реализации quadprog (Optimization Toolbox)
'likelihood'Тест коэффициента правдоподобияНичего

Для получения дополнительной информации смотрите Чувствительные к затратам Проверки.

Пример: 'CostTest','chisquare'

Тест для проведения, заданный как разделенная разделенными запятой парами, состоящая из 'Test' и 'asymptotic', 'exact', и 'midp'. В этой таблице представлены доступные опции для экономичных проверок.

ЗначениеОписание
'asymptotic'Асимптотический тест Макнемара
'exact'Точно-условный тест Макнемара
'midp' (по умолчанию)Mid- p - значение теста Макнемара

Для получения дополнительной информации см. «Тесты Макнемара».

Для экономичной проверки, Test должен быть 'asymptotic'. Когда вы задаете Cost аргумент пары "имя-значение" и выберите чувствительный к затратам тест с помощью CostTest аргумент пары "имя-значение", 'asymptotic' является значением по умолчанию.

Пример: 'Test','asymptotic'

Примечание

NaNs, <undefined> значения, пустые символьные векторы (''), пустые строки (""), и <missing> значения указывают на отсутствующие значения данных. testcholdout:

  • Обрабатывает отсутствующие значения в YHat1 и YHat2 как неправильно классифицированные наблюдения.

  • Удаляет отсутствующие значения в Y и соответствующие значения YHat1 и YHat2

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

свернуть все

Результат теста гипотезы, возвращенный как логическое значение.

h = 1 указывает на отказ от нулевой гипотезы в Alpha уровень значимости.

h = 0 указывает, что не удалось отклонить нулевую гипотезу в Alpha уровень значимости.

Типы данных: logical

p значение теста, возвращенное в виде скаляра в интервале [0,1]. p - вероятность того, что статистическая величина случайного теста, по крайней мере, так же экстремальна, как и статистическая величина наблюдаемого теста, учитывая, что гипотеза null верна.

testcholdout оценки p использование распределения тестовой статистики, которое изменяется в зависимости от типа теста. Для получения дополнительной информации о статистике тестов, полученных из доступных вариантов теста Макнемара, см. «Тесты Макнемара». Для получения дополнительной информации о тестовой статистике, полученной из чувствительных к затратам тестов, см. «Чувствительное к затратам проверка».

Классификационные потери, которые суммируют точность первого набора меток классов (YHat1) предсказание истинных меток классов (Y), возвращается в виде скаляра.

Для экономичной проверки, e1 - коэффициент неправильной классификации. То есть e1 - доля неправильно классифицированных наблюдений, которая является скаляром в интервале [0,1].

Для экономичной проверки, e1 - стоимость неправильной классификации. То есть e1 - средневзвешенное среднее значение расходов на неправильную классификацию, при котором веса представляют собой соответствующие предполагаемые пропорции неправильно классифицированных наблюдений.

Классификационные потери, которые суммируют точность второго набора меток классов (YHat2) предсказание истинных меток классов (Y), возвращается в виде скаляра.

Для экономичной проверки, e2 - коэффициент неправильной классификации. То есть e2 - доля неправильно классифицированных наблюдений, которая является скаляром в интервале [0,1].

Для экономичной проверки, e2 - стоимость неправильной классификации. То есть e2 - средневзвешенное среднее значение затрат на неправильную классификацию, при котором веса представляют собой соответствующие оценочные пропорции неправильно классифицированных наблюдений.

Подробнее о

свернуть все

Экономичная проверка

Проводите cost-sensitive testing, когда затраты на неправильную классификацию несбалансированны. Проводя чувствительный к затратам анализ, можно учесть дисбаланс затрат при обучении классификационных моделей и при статистическом сравнении их.

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

Расходы на неправильную классификацию часто несбалансированны в приложениях. Например, рассмотрите классификацию субъектов, основанных на наборе предикторов, по двум категориям: здоровые и больные. Неправильная классификация больного как здорового представляет опасность для жизни субъекта. Однако неправильная классификация здорового субъекта как больного обычно вызывает некоторые неудобства, но не представляет значительной опасности. В этой ситуации вы назначаете расходы на неправильную классификацию, так что неправильная классификация больного субъекта как здорового дороже, чем неправильная классификация здорового субъекта как больного.

Следующие определения результируют с учетом затрат. В определениях:

  • nijk и π^ijk - количество и предполагаемая доля наблюдений тестовой выборки со следующими характеристиками. k - истинный класс, i - метка, назначенная первой классификационной моделью, и j - метка, назначенная второй классификационной моделью. Неизвестное истинное значение π^ijk является πijk. Размер выборки набора тестов i,j,knijk=ntest. Дополнительно, i,j,kπijk=i,j,kπ^ijk=1.

  • cij - относительная стоимость назначения j меток наблюдению с истинными i классов. cii = 0, cij ≥ 0 и, по крайней мере, для одной (i, j) пары cij > 0 .

  • Все индексы берут целочисленные значения от 1 до K, что является количеством классов.

  • Ожидаемое различие в расходах на неправильную классификацию двух классификационных моделей

    δ=i=1Kj=1Kk=1K(ckickj)πijk.

  • Критерий гипотезы

    H0:δ=0H1:δ0.

    Доступные чувствительные к цене тесты подходят для двуххвостой проверки.

Доступные асимптотические тесты, которые устраняют дисбаланс затрат, являются chi-square test и likelihood ratio test.

  • Критерий Хи-квадрат - критерий Хи-квадрат основан на статистике теста Пирсона и Неймана Хи-квадрат, но с коэффициентом коррекции Лапласа, учитывающим любой nijk = 0. Тестовая статистика

    tχ2=ijk(nijk+1(ntest+K3)π^ijk(1))2nijk+1.

    Если 1Fχ2(tχ2;1)<α, затем отклоните H 0.

    • π^ijk(1) оцениваются путем минимизации tχ2 под ограничением, которое δ = 0.

    • Fχ2(x;1) является χ2 cdf с одной степенью свободы, оцененной при x.

  • Тест коэффициента правдоподобия - тест коэффициента правдоподобия основан на Nijk, которые являются биномиальными случайными переменными с ntest размера выборки и πijk вероятности успеха. Случайные переменные представляют случайное число наблюдений с: true class k, i меток, присвоенные первой классификационной моделью, и j меток, присвоенные второй классификационной моделью. Совместно распределение случайных переменных полиномиальное.

    Тестовая статистика

    tLRT=2log[P(i,j,kNijk=nijk;ntest,π^ijk=π^ijk(2))P(i,j,kNijk=nijk;ntest,π^ijk=π^ijk(3))].

    Если 1Fχ2(tLRT;1)<α, затем отклоните H 0.

    • π^ijk(2)=nijkntest - неограниченный MLE πijk.

    • π^ijk(3)=nijkntest+λ(ckickj) - MLE при нулевой гипотезе, которая δ = 0. λ является решением для

      i,j,knijk(ckickj)ntest+λ(ckickj)=0.

    • Fχ2(x;1) является χ2 cdf с одной степенью свободы, оцененной при x.

Тесты Макнемара

McNemar Tests проверку гипотезы, которая сравнивает две пропорции населения при решении проблем, возникающих из двух зависимых выборок с совпадающими парами.

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

  1. Разделите данные на обучающие и тестовые наборы.

  2. Обучите обе классификационные модели с помощью набора обучающих данных.

  3. Спрогнозируйте метки классов с помощью тестового набора.

  4. Суммируйте результаты в таблице два на два подобных этого рисунка.

    nii количество конкордантных пар, то есть количество наблюдений, которые обе модели классифицируют одинаково (правильно или неправильно). nij, ij, количество дискордантных пар, то есть количество наблюдений, которые модели классифицируют по-разному (правильно или неправильно).

Коэффициенты неправильной классификации для моделей 1 и 2 π^2=n2/n и π^2=n2/n, соответственно. Двусторонний тест для сравнения точности двух моделей

H0:π2=π2H1:π2π2.

Нулевая гипотеза предполагает, что население проявляет маргинальную однородность, что уменьшает нулевую гипотезу до H0:π12=π21. Кроме того, согласно нулевой гипотезе, N 12 ~ биномиальным (n 12 + n 21,0,5) [1].

Эти факты являются базисом для доступных вариантов теста McNemar: asymptotic, exact-conditional и mid-p-value тестов McNemar. Следующие определения суммируют доступные варианты.

  • Асимптотическая - асимптотическая статистика теста Макнемара и области отторжения (для α уровня значимости):

    • Для односторонних тестов тестовая статистика

      ta1=n12n21n12+n21.

      Если 1Φ(|t1|)<α, где Φ - стандартный Гауссов cdf, затем отклоните H 0.

    • Для двусторонних тестов тестовая статистика

      ta2=(n12n21)2n12+n21.

      Если 1Fχ2(t2;m)<α, где Fχ2(x;m) является χm2 cdf оценивают в x, затем отклоняют H 0.

    Асимптотический тест требует теории с большой выборкой, в частности Гауссово приближение биномиальному распределению.

    • Общее количество дискордантных пар, nd=n12+n21, должно быть больше 10 ([1], ч. 10.1.4).

    • В целом асимптотические тесты не гарантируют номинального покрытия. Наблюдаемая вероятность ложного отклонения нулевой гипотезы может превысить α, как предполагалось в симуляционных исследованиях в [18]. Однако асимптотический тест Макнемара показывает хорошие результаты с точки зрения статистической степени.

  • Точная-Условная - Точная-условная статистика теста Макнемара и области отклонения (для α уровня значимости) являются ([36], [38]):

    • Для односторонних тестов тестовая статистика

      t1=n12.

      Если FBin(t1;nd,0.5)<α, где FBin(x;n,p) является биномиальным cdf с размером выборки n и вероятность успеха p оценена в x, затем отклонить H 0.

    • Для двусторонних тестов тестовая статистика

      t2=min(n12,n21).

      Если FBin(t2;nd,0.5)<α/2, затем отклоните H 0.

    Точно-условный тест всегда достигает номинального покрытия. Исследования симуляции в [18] показывают, что тест консервативен, а затем показывают, что тест не имеет статистической степени по сравнению с другими вариантами. Для небольших или сильно дискретных тестовых выборок рассмотрите использование теста mid- p -значение ([1], гл. 3.6.3).

  • Mid- p -value test - The mid- p -value McNemar test statistics and rejection regions (для уровня значимости α) are ([32]):

    • Для односторонних тестов тестовая статистика

      t1=n12.

      Если FBin(t11;n12+n21,0.5)+0.5fBin(t1;n12+n21,0.5)<α, где FBin(x;n,p) и fBin(x;n,p) являются биномиальными cdf и pdf, соответственно, с n размера выборки и p вероятности успеха, оцененными в x, затем отклоняют H 0.

    • Для двусторонних тестов тестовая статистика

      t2=min(n12,n21).

      Если FBin(t21;n12+n211,0.5)+0.5fBin(t2;n12+n21,0.5)<α/2, затем отклоните H 0.

    Тест middle p -значение адресован чрезмерно консервативному поведению точного условного теста. Исследования симуляции в [18] показывают, что этот тест достигает номинального охвата и имеет хорошую статистическую степень.

Классификационные потери

Classification losses указать точность классификационной модели или набора предсказанных меток. Двумя классификационными потерями являются ставка неправильной классификации и стоимость.

testcholdout возвращает классификационные потери (см. e1 и e2) по альтернативной гипотезе (то есть неограниченные классификационные потери). nijk - количество наблюдений тестовой выборки с: true k класса, i метки, присвоенная первой классификационной моделью, и j метки, присвоенная второй классификационной моделью. Соответствующая предполагаемая пропорция π^ijk=nijkntest. Размер выборки набора тестов i,j,knijk=ntest. Индексы берутся от 1 до K, количество классов.

  • misclassification rate, или классификационная ошибка, является скаляром в интервале [0,1], представляющим долю неправильно классифицированных наблюдений. То есть, скорость неправильной классификации для первой классификационной модели,

    e1=j=1Kk=1Kikπ^ijk.

    Для скорости неправильной классификации второй классификационной модели (e 2) переключите индексы i и j в формуле.

    Точность классификации уменьшается, когда коэффициент неправильной классификации увеличивается до 1.

  • misclassification cost является неотрицательным скаляром, который является мерой качества классификации относительно значений указанной матрицы затрат. Ее толкование зависит от конкретных расходов на неправильную классификацию. Стоимость неправильной классификации представляет собой взвешенное среднее значение затрат на неправильную классификацию (указанную в матрице затрат, C), в которой веса являются соответствующими предполагаемыми пропорциями неправильно классифицированных наблюдений. Стоимость неправильной классификации для первой классификационной модели

    e1=j=1Kk=1Kikπ^ijkcki,

    где ckj - стоимость классификации наблюдения в класс j если его истинный класс k. Для стоимости неправильной классификации второй классификационной модели (e 2) переключите индексы i и j в формуле.

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

Совет

  • Это хорошая практика, чтобы получить предсказанные метки классов путем передачи любой обученной классификационной модели и новых данных предиктора в predict способ. Для примера для предсказанных меток из модели SVM смотрите predict.

  • Чувствительные к расходам тесты выполняют числовую оптимизацию, которая требует дополнительных вычислительных ресурсов. Тест коэффициента правдоподобия проводит числовую оптимизацию косвенно путем нахождения корня множителя Лагранжа в интервале. Для некоторых наборов данных, если корень лежит близко к контурам интервала, то метод может оказаться неудачным. Поэтому, если у вас есть лицензия Optimization Toolbox, рассмотрите проведение чувствительного к стоимости теста chi-квадрат вместо этого. Для получения дополнительной информации смотрите CostTest и чувствительное к расходам проверка.

Ссылки

[1] Agresti, A. Categorical Data Analysis, 2nd Ed. John Wiley & Sons, Inc.: Хобокен, Нью-Джерси, 2002.

[2] Fagerlan, M.W., S. Lydersen, and P. Laake. Тест МакНемара на двоичные совпадающие данные пар: Mid-p и Asymptotic лучше, чем точные условные. Методика медицинских исследований BMC. Том 13, 2013, стр. 1-8.

[3] Ланкастер, H.O. «Тесты значимости в дискретных распределениях». JASA, том 56, номер 294, 1961, стр. 223-234.

[4] McNemar, Q. «Примечание об ошибке дискретизации различий между коррелированными пропорциями или процентами». Психометрика, том 12, № 2, 1947, с. 153-157.

[5] Mosteller, F. «Некоторые статистические проблемы в измерении субъективного ответа на наркотики». Биометрия, том 8, № 3, 1952, с. 220-226.

Введенный в R2015a