plotDiagnostics

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

Описание

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

пример

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

пример

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

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

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

Примеры

свернуть все

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

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

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

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

     9
    21
    64
    65
    70

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

Больше о

свернуть все

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

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

Расстояние Повара Di наблюдения i

Di=wiei2pφ^hii(1hii)2,

где

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

  • ei является линейной невязкой предиктора, g(yi)xiβ^, где

    • g является функцией ссылки.

    • yi является наблюдаемым ответом.

    • xi является наблюдением.

    • β^ предполагаемый вектор коэффициентов.

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

  • hii является i th диагональный элемент Матрицы Шляпы H.

Рычаги

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

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

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

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

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

H = X (XTWX)–1XTWT.

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

wi=g(μi)V(μi),

где

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

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

  • V является функцией отклонения.

  • μi является i th среднее значение.

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

0hii1i=1nhii=p,

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

Советы

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

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

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

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

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

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

Ссылки

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

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

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