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

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

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

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

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

  • Матрицы выборочной ковариации за класс Σi, 1  ≤ <reservedrangesplaceholder2> ≤ <reservedrangesplaceholder1>  , где 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');

Figure contains an axes. The axes contains 4 objects of type line. These objects represent virginica, versicolor, setosa.

Ожидаемые и наблюдаемые количества несколько согласуются. Отклонение графика от линии 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');

Figure contains an axes. The axes contains 4 objects of type line. These objects represent virginica, versicolor, setosa.

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

Мардийский куртоз-тест многомерной нормальности

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

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

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

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

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

Тест Мардия Куртоза на линейные и квадратичные дискриминанты

Выполните тесты на куртоз Мардии, чтобы проверить, распределены ли данные радужной оболочки глаза Фишера приблизительно обычно как для линейного, так и для квадратичного дискриминантного анализа.

Загрузите 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 kurtosis на линейной дискриминантной модели.

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 kurtosis отклоняет гипотезу о том, что данные обычно распределяются с помощью постоянной ковариационной матрицы.

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

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] Коробка, Г. Е. П. «Общая теория распределения для класса критериев правдоподобия». Биометрика 36, № 3-4 (1949): 317-46. https://doi.org/10.1093/biomet/36.3-4.317.

[2] Mardia, K. V. «Measures of Multivariate Skewness and Kurtosis with Applications». Биометрика 57, № 3 (1970): 519-30. https://doi.org/10.1093/biomet/57.3.519.

См. также

Функции

Объекты

Похожие темы