plotDiagnostics

Постройте диагностику наблюдений обобщенной линейной регрессионой модели

Описание

plotDiagnostics создает график диагностики наблюдений, такой как рычаги и расстояние Кука, для выявления выбросов и влиятельных наблюдений.

пример

plotDiagnostics(mdl) создает график использования обобщенной линейной регрессионой модели (mdl) наблюдения. Пунктирная линия на графике представляет рекомендуемые пороговые значения.

пример

plotDiagnostics(mdl,plottype) задает тип диагностики наблюдений plottype.

plotDiagnostics(mdl,plottype,Name,Value) задает графические свойства диагностических точек данных с помощью одного или нескольких аргументов пары "имя-значение". Для примера можно задать символ маркера и размер для точек данных.

h = plotDiagnostics(___) возвращает графические объекты для линий или контура на графике, используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Использование h изменение свойств линий или контуров после создания графика. Список свойств см. в разделе Линии свойства и Свойств контура.

Примеры

свернуть все

Создайте графики рычагов и расстояния Кука для подобранной обобщенной линейной модели и найдите выбросы.

Сгенерируйте выборочные данные с помощью случайных чисел Пуассона с двумя базовыми предикторами X(:,1) и X(:,2).

rng('default') % For reproducibility
rndvars = randn(100,2);
X = [2 + rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

Создайте обобщенную линейную регрессионую модель данных Пуассона.

mdl = fitglm(X,y,'y ~ x1 + x2','Distribution','poisson');

Создайте график кредитного плеча.

plotDiagnostics(mdl)
legend('show') % Show the legend

Figure contains an axes. The axes with title Case order plot of leverage contains 2 objects of type line. These objects represent Leverage, Reference Line.

Пунктирная линия представляет рекомендуемое пороговое значение 2 * p/n, где p - количество коэффициентов, а n - количество наблюдений. Найдите пороговое значение с помощью NumCoefficients и NumObservations свойства.

t_leverage = 2*mdl.NumCoefficients/mdl.NumObservations
t_leverage = 0.0600

Найдите наблюдения со значениями рычагов, которые превышают пороговое значение.

find(mdl.Diagnostics.Leverage > t_leverage)
ans = 5×1

     9
    21
    64
    65
    70

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

Постройте график значений расстояния Кука.

plotDiagnostics(mdl,'cookd')

Figure contains an axes. The axes with title Case order plot of Cook's distance contains 2 objects of type line. These objects represent Cook's distance, Reference Line.

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

t_cookd = 3*mean(mdl.Diagnostics.CooksDistance')
t_cookd = 0.0294

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

find(mdl.Diagnostics.CooksDistance > t_cookd)
ans = 5×1

    15
    21
    27
    65
    70

Три наблюдения (21, 65 и 70) являются выбросами по обеим мерам, но некоторые точки (9, 15, 27 и 64) являются выбросами только по одной мере.

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

свернуть все

Обобщенная линейная регрессионая модель, заданная как GeneralizedLinearModel объект, созданный с помощью fitglm или stepwiseglm.

Тип графика, заданный как одно из значений в этой таблице.

ЗначениеТип графикаПунктирная опорная линия на графике Цель
'contour'Невязка и рычаг с накладываемыми контурами расстояния КукаКонтуры расстояния КукаИдентифицируйте наблюдения с большими остаточными значениями, высоким плечом и большими значениями расстояния Кука.
'cookd'Расстояние КукаРекомендуемый порог, вычисленный 3*mean(mdl.Diagnostics.CooksDistance)Идентифицируйте наблюдения с большими значениями расстояния Кука.
'leverage'РычагиРекомендуемый порог, вычисленный 2*p/n, где p количество коэффициентов (mdl.NumCoefficients) и n количество наблюдений (mdl.NumObservations)Идентифицируйте наблюдения с высоким коэффициентом использования.

Для 'cookd' и 'leverage', ось x является номером строки (порядок падежей) наблюдений.

The Diagnostics свойство mdl содержит значения диагностики, используемые plotDiagnostics создать графики.

Для получения дополнительной информации о диагностике наблюдений см. «Расстояние и плечо Кука».

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

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

Пример: 'Color','blue','Marker','o'

Примечание

Перечисленные здесь графические свойства являются только подмножеством. Полный список см. в разделе Свойств линии». Заданные свойства определяют внешний вид диагностических точек данных.

Цвет линии, заданный как разделенная разделенными запятой парами, состоящая из 'Color' и триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя для одного из опций, перечисленных в следующей таблице.

The 'Color' Аргумент пары "имя-значение" также определяет цвет контура маркера и цвет заливки маркера, если 'MarkerEdgeColor' является 'auto' (по умолчанию) и 'MarkerFaceColor' является 'auto'.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

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

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: 'Color','blue'

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

Пример: 'LineWidth',0.75

Символ маркера, заданный как разделенная разделенными запятой парами, состоящая из 'Marker' и одно из значений в этой таблице.

ЗначениеОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
'square' или 's'Квадрат
'diamond' или 'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' или 'h'Шестиконечная звезда (гексаграмма )
'none'Маркеров нет

Пример: 'Marker','+'

Цвет контура маркера, заданный как разделенная разделенными запятой парами, состоящая из 'MarkerEdgeColor' и триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя для одного из опций, перечисленных в Color аргумент пары "имя-значение".

Значение по умолчанию 'auto' использует тот же цвет, заданный при помощи 'Color'.

Пример: 'MarkerEdgeColor','blue'

Цвет заливки маркера, заданный как разделенная разделенными запятой парами, состоящая из 'MarkerFaceColor' и триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя для одного из опций, перечисленных в Color аргумент пары "имя-значение".

The 'auto' значение использует тот же цвет, заданный при помощи 'Color'.

Пример: 'MarkerFaceColor','blue'

Размер маркера, заданный как разделенная разделенными запятой парами, состоящая из 'MarkerSize' и положительное значение в точках.

Пример: 'MarkerSize',2

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

свернуть все

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

Можно использовать аргументы пары "имя-значение", чтобы задать внешний вид точек диагностических данных, соответствующих первому графическому объекту h(1).

Подробнее о

свернуть все

Расстояние Кука

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

Дистанционная Di i наблюдения Кука

Di=wiei2pφ^hii(1hii)2,

где

  • φ^ - параметр дисперсии (оценочный или теоретический).

  • ei - линейный предиктор невязки, g(yi)xiβ^, где

    • g является функцией ссылки.

    • yi - наблюдаемая реакция.

    • xi - это наблюдение.

    • β^ - вектор оцененного коэффициента.

  • p - количество коэффициентов в регрессионной модели.

  • hii - i-й диагональный элемент матричного H Hat.

Рычаги

Рычаг является мерой эффекта конкретного наблюдения на регрессионные предсказания из-за положения этого наблюдения в пространстве входов.

Рычаги наблюдения i являются значением <reservedrangesplaceholder7> <reservedrangesplaceholder6> термина диагонали <reservedrangesplaceholder8> th матрицы шляпы H. Поскольку сумма значений рычага p (количество коэффициентов в регрессионой модели), i наблюдения может рассматриваться как выбросы, если его рычаг существенно превышает p/ n, где n - количество наблюдений.

Матрица шляп

Матрица шляпы является проекционной матрицей, которая проецирует вектор наблюдений отклика на вектор предсказаний.

Матричная H шляпы задана в терминах матричной X данных и диагональной матрицы веса W:

H = X (XTWX)–1XTWT.

W имеет диагональные элементы wi:

wi=g(μi)V(μi),

где

  • g - ссылка отображения функций yi к xib.

  • g является производной функции ссылки g.

  • V является функцией отклонения.

  • μi - i среднее значение.

Диагональные элементы Hii удовлетворять

0hii1i=1nhii=p,

где n - количество наблюдений (строки X), а p - количество коэффициентов в регрессионой модели.

Совет

  • В Data Cursor отображаются значения выбранного графика точки в всплывающую подсказку (небольшое текстовое поле, расположенное рядом с точкой данных). Оголовок данных включает x -ось и y -ось для выбранной точки вместе с именем или номером наблюдения.

  • Использование legend('show') для отображения предварительно заполненной легенды.

Альтернативная функциональность

A GeneralizedLinearModel объект обеспечивает несколько функции построения графика.

  • При проверке модели используйте plotDiagnostics найти сомнительные данные и понять эффект каждого наблюдения. Кроме того, используйте plotResiduals для анализа невязок модели.

  • После подбора кривой модели используйте plotPartialDependence чтобы понять эффект конкретного предиктора. Кроме того, используйте plotSlice чтобы построить срезы по поверхности предсказания.

Ссылки

[1] Нетер, Дж., М. Х. Кутнер, К. Дж. Нахтсхайм и У. Вассерман. Прикладные линейные статистические модели, четвертое издание. Чикаго: Макгроу-Хилл Ирвин, 1996.

Расширенные возможности

Введенный в R2012a