Исследуйте гауссово предположение смеси

Дискриминантный анализ принимает, что данные прибывают из смешанной гауссовской модели (см. Модель Дискриминантного анализа Создания). Если данные, будет казаться, прибудут из смешанной гауссовской модели, можно ожидать, что дискриминантный анализ будет хорошим классификатором. Кроме того, линейный дискриминантный анализ по умолчанию принимает, что все ковариационные матрицы класса равны. Этот раздел показывает методы, чтобы проверять эти предположения:

Тест Бартлетта равных ковариационных матриц для линейного дискриминантного анализа

Тест Бартлетта (см. Поле [1]), равенство проверок ковариационных матриц различных классов. Если ковариационные матрицы равны, тест указывает, что линейный дискриминантный анализ является соответствующим. В противном случае рассмотрите использование квадратичного дискриминантного анализа, установив DiscrimType аргумент пары "имя-значение" 'quadratic' в fitcdiscr.

Тест Бартлетта принимает нормальные (Гауссовы) выборки, где ни средние значения, ни ковариационные матрицы не известны. Чтобы определить, равны ли ковариации, вычислите следующие количества:

  • Матрицы выборочной ковариации в классе Σi, 1 ≤ i ≤ k, где k является количеством классов.

  • Объединенный - в ковариационной матрице Σ.

  • Тестовая статистическая величина V:

    V=(nk)log(|Σ|)i=1k(ni1)log(|Σi|)

    где n является общим количеством наблюдений, ni является количеством наблюдений в классе, i, и | Σ | означает определитель матрицы Σ.

  • Асимптотически, как количество наблюдений в каждом классе ni становится большим, V распределяется приблизительно χ 2 с kd (d + 1)/2 степени свободы, где d является количеством предикторов (количество размерностей в данных).

Тест Бартлетта должен проверять, превышает ли V данную процентиль χ 2 распределения с kd (d + 1)/2 степени свободы. Если это делает, то отклоняет гипотезу, что ковариации равны.

Тест Бартлетта равных ковариационных матриц

Проверяйте, моделируются ли ирисовые данные Фишера хорошо одной Гауссовой ковариацией, или моделируются ли они лучше как Гауссова смесь путем выполнения теста Бартлетта равных ковариационных матриц.

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

load fisheriris;
prednames = {'SepalLength','SepalWidth','PetalLength','PetalWidth'};

Когда все ковариационные матрицы класса равны, линейный дискриминантный анализ является соответствующим.

Обучите модель линейного дискриминантного анализа (тип по умолчанию) использование ирисовых данных Фишера.

L = fitcdiscr(meas,species,'PredictorNames',prednames);

Когда ковариационные матрицы класса не равны, квадратичный дискриминантный анализ является соответствующим.

Обучите квадратичную модель дискриминантного анализа использование ирисовых данных Фишера и вычислите статистику

Q = fitcdiscr(meas,species,'PredictorNames',prednames,'DiscrimType','quadratic');

Сохраните как переменные количество наблюдений N, размерность набора данных D, количество классов K, и количество наблюдений в каждом классе Nclass.

[N,D] = size(meas)
N = 150
D = 4
K = numel(unique(species))
K = 3
Nclass = grpstats(meas(:,1),species,'numel')'
Nclass = 1×3

    50    50    50

Вычислите тестовую статистическую величину V.

SigmaL = L.Sigma;
SigmaQ = Q.Sigma;
V = (N-K)*log(det(SigmaL));
for k=1:K
    V = V - (Nclass(k)-1)*log(det(SigmaQ(:,:,k)));
end
V
V = 146.6632

Вычислите p-значение.

nu = K*D*(D+1)/2;
pval1 = chi2cdf(V,nu,'upper')
pval1 = 2.6091e-17

Поскольку pval1 меньше, чем 0,05, тест Бартлетта отклоняет гипотезу равных ковариационных матриц. Результат показывает, чтобы использовать квадратичный дискриминантный анализ, в противоположность линейному дискриминантному анализу.

График Q-Q

График Q-Q графически показывает, является ли эмпирическое распределение близко к теоретическому распределению. Если эти два равны, график Q-Q находится на линии на 45 °. В противном случае график Q-Q отклоняется от линии на 45 °.

Сравните графики Q-Q для линейных и квадратичных дискриминантов

Анализируйте графики Q-Q проверять, моделируются ли ирисовые данные Фишера лучше одной Гауссовой ковариацией или как Гауссова смесь.

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

load fisheriris;
prednames = {'SepalLength','SepalWidth','PetalLength','PetalWidth'};

Когда все ковариационные матрицы класса равны, линейный дискриминантный анализ является соответствующим.

Обучите модель линейного дискриминантного анализа.

L = fitcdiscr(meas,species,'PredictorNames',prednames);

Когда ковариационные матрицы класса не равны, квадратичный дискриминантный анализ является соответствующим.

Обучите квадратичную модель дискриминантного анализа использование ирисовых данных Фишера.

Q = fitcdiscr(meas,species,'PredictorNames',prednames,'DiscrimType','quadratic');

Вычислите количество наблюдений, размерность набора данных и ожидаемые квантили.

[N,D] = size(meas);
expQuant = chi2inv(((1:N)-0.5)/N,D);

Вычислите наблюдаемые квантили для линейной дискриминантной модели.

obsL = mahal(L,L.X,'ClassLabels',L.Y);
[obsL,sortedL] = sort(obsL);

Изобразите график Q-Q в виде графика для линейного дискриминанта.

figure;
gscatter(expQuant,obsL,L.Y(sortedL),'bgr',[],[],'off');
legend('virginica','versicolor','setosa','Location','NW');
xlabel('Expected quantile');
ylabel('Observed quantile for LDA');
line([0 20],[0 20],'color','k');

Ожидаемые и наблюдаемые квантили соглашаются несколько. Отклонение графика от линии на 45 ° вверх указывает, что данные имеют более тяжелые хвосты, чем нормальное распределение. График показывает три возможных выбросов наверху: два наблюдения от класса 'setosa' и одно наблюдение от класса 'virginica'.

Вычислите наблюдаемые квантили для квадратичной дискриминантной модели.

obsQ = mahal(Q,Q.X,'ClassLabels',Q.Y);
[obsQ,sortedQ] = sort(obsQ);

Изобразите график Q-Q в виде графика для квадратичного дискриминанта.

figure;
gscatter(expQuant,obsQ,Q.Y(sortedQ),'bgr',[],[],'off');
legend('virginica','versicolor','setosa','Location','NW');
xlabel('Expected quantile');
ylabel('Observed quantile for QDA');
line([0 20],[0 20],'color','k');

График Q-Q для квадратичного дискриминанта показывает лучшее соглашение между наблюдаемыми и ожидаемыми квантилями. График показывает только один возможный выброс от класса 'setosa'. Ирисовые данные Фишера лучше моделируются как Гауссова смесь с ковариационными матрицами, которые не требуются, чтобы быть равными через классы.

Тест эксцесса Mardia многомерной нормальности

Тест эксцесса Mardia (см. Mardia [2]) является альтернативой исследованию графика Q-Q. Это дает числовой подход к решению, если данные совпадают со смешанной гауссовской моделью.

В тесте эксцесса Mardia вы вычисляете M, среднее значение четвертой степени расстояния Mahalanobis данных из средних значений класса. Если данные нормально распределены с постоянной ковариационной матрицей (и таким образом подходит для линейного дискриминантного анализа), M асимптотически распределяется как нормальный со средним d (d + 2) и отклонение 8d (d + 2)/n, где

  • d является количеством предикторов (количество размерностей в данных).

  • n является общим количеством наблюдений.

Тест Mardia является двухсторонним: проверяйте, достаточно ли M близок к d (d + 2) относительно нормального распределения отклонения 8d (d + 2)/n.

Тест эксцесса Mardia для линейных и квадратичных дискриминантов

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

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

load fisheriris;
prednames = {'SepalLength','SepalWidth','PetalLength','PetalWidth'};

Когда все ковариационные матрицы класса равны, линейный дискриминантный анализ является соответствующим.

Обучите модель линейного дискриминантного анализа.

L = fitcdiscr(meas,species,'PredictorNames',prednames);

Когда ковариационные матрицы класса не равны, квадратичный дискриминантный анализ является соответствующим.

Обучите квадратичную модель дискриминантного анализа использование ирисовых данных Фишера.

Q = fitcdiscr(meas,species,'PredictorNames',prednames,'DiscrimType','quadratic');

Вычислите среднее значение и отклонение асимптотического распределения.

[N,D] = size(meas);
meanKurt = D*(D+2)
meanKurt = 24
varKurt = 8*D*(D+2)/N
varKurt = 1.2800

Вычислите p-значение для теста эксцесса Mardia на линейной дискриминантной модели.

mahL = mahal(L,L.X,'ClassLabels',L.Y);
meanL = mean(mahL.^2);
[~,pvalL] = ztest(meanL,meanKurt,sqrt(varKurt))
pvalL = 0.0208

Поскольку pvalL меньше, чем 0,05, тест эксцесса Mardia отклоняет гипотезу данных, являющихся нормально распределенным с постоянной ковариационной матрицей.

Вычислите p-значение для теста эксцесса Mardia на квадратичной дискриминантной модели.

mahQ = mahal(Q,Q.X,'ClassLabels',Q.Y);
meanQ = mean(mahQ.^2);
[~,pvalQ] = ztest(meanQ,meanKurt,sqrt(varKurt))
pvalQ = 0.7230

Поскольку pvalQ больше 0.05, данные сопоставимы с многомерным нормальным распределением.

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

Ссылки

[1] Поле, G. E. P. “Общая Теория Распределения для Класса Критериев Вероятности”. Biometrika 36, № 3-4 (1949): 317–46. https://doi.org/10.1093/biomet/36.3-4.317.

[2] Mardia, K. V. “Мер Многомерной Скошенности и Эксцесса с Приложениями”. Biometrika 57, № 3 (1970): 519–30. https://doi.org/10.1093/biomet/57.3.519.

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

Функции

Объекты

Похожие темы