plotDiagnostics

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

Описание

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

пример

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

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

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

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

Примеры

свернуть все

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

Загрузите 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 object. The axes object 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 object. The axes object 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'Удалите 1 отношение определителя ковариацииРекомендуемые пороги, вычисленные 1±3*p/n, где p количество коэффициентов (mdl.NumCoefficients) и n количество наблюдений (mdl.NumObservations)Идентифицируйте наблюдения, где удаление 1 статистического значения не находится в области значений рекомендуемых порогов.
'dfbetas'Удалите 1 масштабируемое различие в содействующих оценкахРекомендуемый порог, вычисленный 3/sqrt(n)Идентифицируйте, что наблюдения с большим удаляют 1 статистическое значение.
'dffits'Удалите 1 масштабируемое различие в подходящих значенияхРекомендуемый порог, вычисленный 2*sqrt(p/n) в абсолютном значенииИдентифицируйте, что наблюдения с большим удаляют 1 статистическое значение в абсолютном значении.
'leverage'РычагиРекомендуемый порог, вычисленный 2*p/nИдентифицируйте высокие наблюдения рычагов.
's2_i'Удалите 1 отклонениеСреднеквадратическая ошибка (mdl.MSE)Сравните удаление 1 отклонения со среднеквадратической ошибкой.

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

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

Для получения дополнительной информации о диагностике наблюдения, смотрите Расстояние Повара, Удалите 1 Статистику и Рычаги.

Аргументы name-value

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

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

Примечание

Графические свойства, перечисленные здесь, являются только подмножеством. Для полного списка смотрите Line Properties. Заданные свойства определяют внешний вид диагностических точек данных.

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

'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'

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

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

Sample of the color black

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

Sample of the color white

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

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

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

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

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

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

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

'none'Никакие маркерыНе применяется

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Больше о

свернуть все

Расстояние повара

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

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

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

где

  • y^j j th адаптированное значение отклика.

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

  • MSE является среднеквадратической ошибкой.

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

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

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

где r, i является i th невязка и h ii, является i th значение рычагов.

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

Удалите 1 статистику

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

Смотрите Удаляют 1 Статистику для определений и использований удаления 1 статистики.

Рычаги

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

Рычаги наблюдения, i является значением i th диагональ, называют h ii матрицы шляпы H. Матрица шляпы H задана в терминах матрицы данных X:

H = X (XTX–1XT.

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

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

Для получения дополнительной информации смотрите Матрицу Шляпы и Рычаги.

Советы

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

  • Используйте legend('show') показать предзаполненную легенду.

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

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

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

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

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

Ссылки

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

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

Представленный в R2012a