plotDiagnostics

График диагностики наблюдений линейной регрессионой модели

Описание

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

пример

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

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

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

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

Примеры

свернуть все

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

Загрузите carsmall набор данных и подгонка линейной регрессионной модели пробега в зависимости от года модели, веса и квадрата веса.

load carsmall
tbl = table(MPG,Weight);
tbl.Year = categorical(Model_Year);
mdl = fitlm(tbl,'MPG ~ Year + Weight^2');

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

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.1064

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

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

    26
    32
    35

Вы также можете найти номер наблюдения с помощью всплывающей подсказки. Выберите точки данных над порогом линий, чтобы отобразить их всплывающие подсказки. Эта всплывающая подсказка включает значения осей 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,'omitnan')
t_cookd = 0.0320

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

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

    26
    35
    80
    90
    92
    97

Два наблюдения (26 и 35) являются выбросами по обеим мерам, но некоторые точки (32, 80, 90, 92 и 97) являются выбросами только по одной мере.

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

свернуть все

Линейная регрессионая модель, заданная как LinearModel объект, созданный с помощью fitlm или stepwiselm.

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

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

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

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

Для получения дополнительной информации о диагностике наблюдений смотрите Distance, Delete-1 Statistics и Leverage Кука.

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

Задайте необязательные разделенные разделенными запятой парами 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). Если plottype является 'dfbetas'график включает объект линии для каждого коэффициента. Аргументы пары "имя-значение" свойства объекта линии для всех коэффициентов. Можно изменять свойства каждого коэффициента отдельно при помощи соответствующего графического объекта.

Подробнее о

свернуть все

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

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

Каждый элемент D расстояния Кука является нормированным изменением установленных значений отклика из-за удаления наблюдения. Расстояние наблюдений Кука i

Di=j=1n(y^jy^j(i))2pMSE,

где

  • y^j - j-е установленное значение отклика.

  • y^j(i) - j-е установленное значение отклика, где подгонка не включает i наблюдения.

  • MSE - средняя квадратичная невязка.

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

Расстояние Кука алгебраически эквивалентно следующему выражению:

Di=ri2pMSE(hii(1hii)2),

где r i - i-й невязка, и h ii - i-е значение рычага.

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

Delete-1 статистики

Delete-1 статистика полезна для нахождения влияния каждого наблюдения. Эти статистические данные отражают изменения, которые могут быть вызваны исключением каждого наблюдения в свою очередь из подгонки. Если статистика delete-1 значительно отличается от модели с использованием всех наблюдений, то наблюдение является влиятельным.

Определения и способы использования статистики удаления 1 см. в разделе Delete-1 Statistics.

Рычаги

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

Рычаги наблюдения i являются значением <reservedrangesplaceholder4> <reservedrangesplaceholder3> термина диагонали <reservedrangesplaceholder5> th матрицы шляпы H. Матричная H шляпы задана в терминах матрицы данных X:

H = X (XTX)–1XT.

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

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

Для получения дополнительной информации смотрите Hat Matrix и Leverage.

Совет

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

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

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

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

    • При создании модели используйте plotAdded чтобы понять эффект добавления или удаления переменной предиктора.

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

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

Ссылки

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

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

Введенный в R2012a