exponenta event banner

plotDiagnostics

Диагностика наблюдения за графиком обобщенной модели линейной регрессии

Описание

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

пример

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

пример

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

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

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

Примеры

свернуть все

Создайте графики влияния и расстояния Кука для подогнанной обобщенной линейной модели и найдите отклонения.

Создание выборочных данных с использованием случайных чисел Пуассона с двумя основными предикторами X(:,1) и X(:,2).

rng('default') % For reproducibility
rndvars = randn(100,2);
X = [2 + rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

Создайте обобщенную модель линейной регрессии данных Пуассона.

mdl = fitglm(X,y,'y ~ x1 + x2','Distribution','poisson');

Создайте график рычагов.

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

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

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

     9
    21
    64
    65
    70

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

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

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

    15
    21
    27
    65
    70

Три наблюдения (21, 65 и 70) являются отклонениями по обоим показателям, но некоторые точки (9, 15, 27 и 64) являются отклонениями только на одну меру.

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

свернуть все

Обобщенная модель линейной регрессии, заданная как GeneralizedLinearModel объект, созданный с помощью fitglm или stepwiseglm.

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

СтоимостьТип графикаПунктирная опорная линия на графике Цель
'contour'Остаточный и рычажный с наложенными контурами расстояния КукаКонтуры расстояния КукаОпределите наблюдения с большими остаточными значениями, высоким рычагом и большими значениями расстояния Кука.
'cookd'Расстояние КукаРекомендуемое пороговое значение, вычисленное по 3*mean(mdl.Diagnostics.CooksDistance)Определите наблюдения с большими значениями расстояния Кука.
'leverage'РычагиРекомендуемое пороговое значение, вычисленное по 2*p/n, где p - количество коэффициентов (mdl.NumCoefficients) и n - количество наблюдений (mdl.NumObservations)Выявление наблюдений с высоким уровнем эффективности.

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

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

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

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

Укажите дополнительные пары, разделенные запятыми 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).

Подробнее

свернуть все

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

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

Расстояние Кука Di наблюдения i

Di = wiei2pstart^ hii (1 hii) 2,

где

  • start^ - параметр дисперсии (расчетный или теоретический).

  • ei - линейный предикторный остаток, g (yi) ^, где

    • g - функция линии связи.

    • yi - наблюдаемый ответ.

    • xi - это наблюдение.

    • β ^ - оценочный вектор коэффициентов.

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

  • hii - i-й диагональный элемент Hat Matrix H.

Рычаги

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

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

Матрица шляпы

Матрица hat - это проекционная матрица, которая проецирует вектор ответных наблюдений на вектор предсказаний.

Головная матрица H определяется в терминах матрицы X данных и диагональной весовой матрицы W:

H = X (XTWX) -1XTWT.

W имеет диагональные элементы wi:

wi = g (мкi) V (мкi),

где

  • g - отображение функции связи yi в xib.

  • g ′ - производная функции связи g.

  • V - функция дисперсии.

  • pcii - i-ое среднее значение.

Диагональные элементы Hii удовлетворяют

0≤hii≤1∑i=1nhii=p,

где n - количество наблюдений (строк X), а p - число коэффициентов в регрессионной модели.

Совет

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

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

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

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

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

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

Ссылки

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

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

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