plotDiagnostics

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

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

Синтаксис

plotDiagnostics(mdl)
plotDiagnostics(mdl,plottype)
plotDiagnostics(mdl,plottype,Name,Value)
h = plotDiagnostics(___)

Описание

пример

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

Пунктирная линия представляет рекомендуемое пороговое значение 2p/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')

Пунктирная линия представляет рекомендуемое пороговое значение 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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'

'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' or 'h'Шестиконечная звезда (гексаграмма)
'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 (X T X) –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