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

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