exponenta event banner

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)Определите наблюдения с большими статистическими значениями удаления-1.
'dffits'Delete-1 масштабированные различия в соответствующих значенияхРекомендуемое пороговое значение, вычисленное по 2*sqrt(p/n) в абсолютном значенииОпределите наблюдения с большими статистическими значениями delete-1 в абсолютном значении.
'leverage'РычагиРекомендуемое пороговое значение, вычисленное по 2*p/nВыявление наблюдений с высоким уровнем эффективности.
's2_i'Delete-1 отклонениеСреднеквадратичная ошибка (mdl.MSE)Сравните дисперсию delete-1 со среднеквадратичной ошибкой.

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

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

Дополнительные сведения о диагностике наблюдений см. в разделах Расстояние Кука, Статистика Delete-1 и Использование.

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

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

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

Примечание

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

Цвет линии, заданный как разделенная запятыми пара, состоящая из '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

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

свернуть все

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

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

Подробнее

свернуть все

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

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

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

Di=∑j=1n (y ^ j y ^ j (i)) 2p MSE,

где

  • y ^ j - j-ое совпадающее значение отклика.

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

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

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

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

Di = ri2p MSE (hii (1 hii) 2),

где ri - i-й остаток, а hii - i-е значение рычага.

Дополнительные сведения см. в разделе Расстояние Кука.

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

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

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

Рычаги

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

Рычагом i наблюдения является значение i-го диагонального члена hii матрицы hat H. Матрица hat H определена в терминах матрицы данных X:

H = X (XTX) -1XT.

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

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

Дополнительные сведения см. в разделе Hat Matrix and Leverage.

Совет

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

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

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

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

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

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

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

Ссылки

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

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

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