mnrfit

Логистическая регрессия многочлена

Описание

пример

B = mnrfit(X,Y) возвращает матрицу, B, из коэффициента оценивает для логистической регрессии многочлена номинальных ответов в Y на предикторах в X.

пример

B = mnrfit(X,Y,Name,Value) возвращает матрицу, B, из коэффициента оценивает для подгонки модели многочлена с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

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

пример

[B,dev,stats] = mnrfit(___) также возвращает отклонение подгонки, dev, и структура stats для любого из предыдущих входных параметров. stats содержит статистику модели, такую как степени свободы, стандартные погрешности для содействующих оценок и остаточные значения.

Примеры

свернуть все

Соответствуйте регрессии многочлена для номинальных результатов и интерпретируйте результаты.

Загрузите выборочные данные.

load fisheriris

Вектор-столбец, species, состоит из ирисовых цветов трех различных разновидностей, setosa, versicolor, virginica. Двойной матричный meas состоит из четырех типов измерений на цветах, длине и ширине чашелистиков и лепестков в сантиметрах, соответственно.

Задайте номинальную переменную отклика с помощью категориального массива.

sp = categorical(species);

Подбирайте модель регрессии многочлена, чтобы предсказать разновидности с помощью измерений.

[B,dev,stats] = mnrfit(meas,sp);
B
B = 5×2
103 ×

    1.9722    0.0426
    0.6584    0.0025
   -0.5553    0.0067
   -0.5045   -0.0094
   -2.6981   -0.0183

Это - номинальная модель для рисков родственника категории ответа, с отдельными наклонами на всех четырех предикторах, то есть, каждой категории meas. Первая строка B содержит условия прерывания для относительного риска первых двух категорий ответа, setosa и versicolor по сравнению со ссылочной категорией, virginica. Последние четыре строки содержат наклоны для моделей для первых двух категорий. mnrfit принимает третью категорию как ссылочную категорию.

Относительный риск ирисового цветка быть разновидностями 2 (versicolor) по сравнению с разновидностями 3 (virginica) является отношением этих двух вероятностей (вероятность того, чтобы быть разновидностями 2 и вероятностью того, чтобы быть разновидностями 3). Модель для относительного риска

ln(πversicolorπvirginica)=42.6+2.5X1+6.7X2-9.4X3-18.3X4.

Коэффициенты выражают и эффекты переменных предикторов на относительном риске и логарифмические разногласия того, чтобы быть в одной категории по сравнению со ссылочной категорией. Например, предполагаемый коэффициент 2.5 указывает, что относительный риск того, чтобы быть разновидностями 2 (versicolor) по сравнению с разновидностями 3 (virginica) увеличивает exp (2.5) времена для каждого модульного увеличения X1, первое измерение, учитывая все остальное равно. Относительные логарифмические разногласия того, чтобы быть versicolor по сравнению с virginica увеличиваются 2.5 раза с увеличением с одним модулем X1, учитывая все остальное равно.

Если коэффициенты сходятся к бесконечности или отрицательной бесконечности, предполагаемые коэффициенты могут варьироваться немного в зависимости от вашей операционной системы.

Проверяйте статистическое значение коэффициентов модели.

stats.p
ans = 5×2

         0    0.0000
         0    0.0281
         0    0.0000
         0    0.0000
         0    0.0000

Маленькое p- значения указывают, что все меры являются значительными на относительном риске того, чтобы быть setosa по сравнению с virginica (разновидности 1 по сравнению с разновидностями 3) и быть versicolor по сравнению с virginica (разновидности 2 по сравнению с разновидностями 3).

Запросите стандартные погрешности содействующих оценок.

stats.se
ans = 5×2

   12.4038    5.2719
    3.5783    1.1228
    3.1760    1.4789
    3.5403    1.2934
    7.1203    2.0967

Вычислите 95% пределов достоверности для коэффициентов.

LL = stats.beta - 1.96.*stats.se;
UL = stats.beta + 1.96.*stats.se;

Отобразите доверительные интервалы для коэффициентов модели для относительного риска того, чтобы быть setosa по сравнению с virginica (первый столбец коэффициентов в B).

[LL(:,1) UL(:,1)]
ans = 5×2
103 ×

    1.9478    1.9965
    0.6514    0.6655
   -0.5616   -0.5491
   -0.5114   -0.4975
   -2.7120   -2.6841

Найдите доверительные интервалы для коэффициентов модели для относительного риска того, чтобы быть versicolor по сравнению с virginica (второй столбец коэффициентов в B).

[LL(:,2) UL(:,2)]
ans = 5×2

   32.3049   52.9707
    0.2645    4.6660
    3.7823    9.5795
  -11.9644   -6.8944
  -22.3957  -14.1766

Подбирайте модель регрессии многочлена для категориальных ответов с естественным упорядоченным расположением среди категорий.

Загрузите выборочные данные и задайте переменные предикторы.

load carbig
X = [Acceleration Displacement Horsepower Weight];

Переменные предикторы являются ускорением, объемом двигателя, лошадиной силой и весом автомобилей. Переменная отклика является милями на галлон (миля на галлон).

Создайте порядковую переменную отклика, категоризирующую MPG на четыре уровня от 9 до 48 миль на галлон путем маркировки значений ответа в области значений 9-19 как 1, 20-29 как 2, 30-39 как 3, и 40-48 как 4.

miles = ordinal(MPG,{'1','2','3','4'},[],[9,19,29,39,48]);

Подбирайте порядковую модель ответа для переменной отклика miles.

[B,dev,stats] = mnrfit(X,miles,'model','ordinal');
B
B = 7×1

  -16.6895
  -11.7208
   -8.0606
    0.1048
    0.0103
    0.0645
    0.0017

Первые три элемента B условия прерывания для моделей и последние четыре элемента B коэффициенты ковариантов, принятых распространенный через все категории. Эта модель соответствует параллельной регрессии, которая также называется пропорциональной моделью разногласий, где существует различное прерывание, но общие наклоны среди категорий. Можно задать это использование 'interactions','off' аргумент пары "имя-значение", который является значением по умолчанию для порядковых моделей.

[B(1:3)'; repmat(B(4:end),1,3)]
ans = 5×3

  -16.6895  -11.7208   -8.0606
    0.1048    0.1048    0.1048
    0.0103    0.0103    0.0103
    0.0645    0.0645    0.0645
    0.0017    0.0017    0.0017

Функция ссылки в модели является логитом ('link','logit'), который является значением по умолчанию для порядковой модели. Коэффициенты выражают относительный риск или регистрируют разногласия mpg автомобиля, являющегося меньше чем или равным одному значению по сравнению с большим, чем то значение.

Пропорциональная модель разногласий в этом примере

ln(P(mpg19)P(mpg>19))=-16.6895+0.1048XA+0.0103XD+0.0645XH+0.0017XWln(P(mpg29)P(mpg>29))=-11.7208+0.1048XA+0.0103XD+0.0645XH+0.0017XWln(P(mpg39)P(mpg>39))=-8.0606+0.1048XA+0.0103XD+0.0645XH+0.0017XW

Например, содействующая оценка 0,1048 указывает, что модульное изменение на ускорении повлияло бы на разногласия mpg автомобиля, являющегося меньше чем или равным 19 по сравнению с больше чем 19, или являющегося меньше чем или равным 29 по сравнению с большим, чем 29 или являющегося меньше чем или равным 39 по сравнению с большим, чем 39, фактором exp (0.01048), учитывая все остальное равно.

Оцените значение коэффициентов.

stats.p
ans = 7×1

    0.0000
    0.0000
    0.0000
    0.1899
    0.0350
    0.0000
    0.0118

p- значения 0,035, 0.0000, и 0.0118 для объема двигателя, лошадиной силы, и веса автомобиля, соответственно, указывают, что эти факторы являются значительными на разногласиях mpg автомобиля, являющегося меньше чем или равным определенному значению по сравнению с тем, чтобы быть больше того значения.

Подбирайте иерархическую модель регрессии многочлена.

Загрузите выборочные данные.

load('smoking.mat');

Набор данных smoking содержит пять переменных: пол, возраст, вес и систолическое и диастолическое кровяное давление. Пол является бинарной переменной, где 1 указывает, что пациентки, и 0 указывают на штекерных пациентов.

Задайте переменную отклика.

Y = categorical(smoking.Smoker);

Данные в Smoker имеет четыре категории:

  • 0: Некурящий, 0 сигарет в день

  • 1: Курильщик, 1–5 сигарет в день

  • 2: Курильщик, 6–10 сигарет в день

  • 3: Курильщик, 11 или больше сигарет в день

Задайте переменные предикторы.

X = [smoking.Sex smoking.Age smoking.Weight...
    smoking.SystolicBP smoking.DiastolicBP];

Подбирайте иерархическую модель многочлена.

[B,dev,stats] = mnrfit(X,Y,'model','hierarchical');
B
B = 6×3

   43.8148    5.9571   44.0712
    1.8709   -0.0230    0.0662
    0.0188    0.0625    0.1335
    0.0046   -0.0072   -0.0130
   -0.2170    0.0416   -0.0324
   -0.2273   -0.1449   -0.4824

Первый столбец B включает прерывание и содействующие оценки для модели относительного риска того, чтобы быть некурящим по сравнению с курильщиком. Второй столбец включает оценки параметра для моделирования логарифмических разногласий того, чтобы курить 1–5 сигарет в день по сравнению с больше чем пятью сигаретами в день, учитывая, что человек является курильщиком. Наконец, третий столбец включает оценки параметра для моделирования логарифмических разногласий человека, курящего 6–10 сигарет в день по сравнению с больше чем 10 сигаретами в день, учитывая, он курит больше чем 5 сигарет в день.

Коэффициенты отличаются через категории. Можно задать это использование 'interactions','on' аргумент пары "имя-значение", который является значением по умолчанию для иерархических моделей. Так, модель в этом примере

ln(P(y=0)P(y>0))=43.8148+1.8709XS+0.0188XA+0.0046XW-0.2170XSBP-0.2273XDBP

ln(P(1y5)P(y>5))=5.9571-0.0230XS+0.0625XA-0.0072XW+0.0416XSBP-0.1449XDBP

ln(P(6y10)P(y>10))=44.0712+0.0662XS+0.1335XA-0.0130XW-0.0324XSBP-0.4824XDBP

Например, содействующая оценка 1,8709 указывает, что вероятность того, чтобы быть курильщиком по сравнению с некурящим увеличивается exp (1.8709) = 6.49 раз, когда пол превращается от розетки в штекер, учитывая все остальное сохраненное постоянным.

Оцените статистическое значение условий.

stats.p
ans = 6×3

    0.0000    0.5363    0.2149
    0.3549    0.9912    0.9835
    0.6850    0.2676    0.2313
    0.9032    0.8523    0.8514
    0.0009    0.5187    0.8165
    0.0004    0.0483    0.0545

Пол, возраст или вес не кажутся значительными ни на каком уровне. p- значения 0,0009 и 0.0004 указывают, что оба типа кровяного давления являются значительными на относительном риске человека, являющегося курильщиком по сравнению с некурящим. p- значение 0,0483 показывает, что только диастолическое кровяное давление является значительным на разногласиях человека, курящего 0–5 сигарет в день по сравнению с больше чем 5 сигаретами в день. Точно так же p- значение 0,0545 указывает, что диастолическое кровяное давление является значительным на разногласиях человека, курящего 6–10 сигарет в день по сравнению с больше чем 10 сигаретами в день.

Проверяйте, коррелируются ли какие-либо незначащие факторы друг другу. Чертите scatterplot возраста по сравнению с весом, сгруппированным полом.

figure()
gscatter(smoking.Age,smoking.Weight,smoking.Sex)
legend('Male','Female')
xlabel('Age')
ylabel('Weight')

Область значений веса индивидуума, кажется, отличается согласно полу. Возраст, кажется, не имеет очевидной корреляции с полом или весом. Возраст незначителен, и вес, кажется, коррелируется с полом, таким образом, можно устранить обоих и восстановить модель.

Устраните возраст и вес из модели и подбирайте иерархическую модель с полом, систолическим кровяным давлением и диастолическим кровяным давлением как переменные предикторы.

X = double([smoking.Sex smoking.SystolicBP...
smoking.DiastolicBP]);
[B,dev,stats] = mnrfit(X,Y,'model','hierarchical');
B
B = 4×3

   44.8456    5.3230   25.0248
    1.6045    0.2330    0.4982
   -0.2161    0.0497    0.0179
   -0.2222   -0.1358   -0.3092

Здесь, содействующая оценка 1,6045 указывает, что вероятность того, чтобы быть некурящим по сравнению с курильщиком увеличивается exp (1.6045) = 4.97 раза как смены пола от штекера до розетки. Модульное увеличение систолического кровяного давления указывает на exp (–.2161) = 0,8056 уменьшения в вероятности того, чтобы быть некурящим по сравнению с курильщиком. Точно так же модульное увеличение диастолического кровяного давления указывает на exp (–.2222) = 0,8007 уменьшения в относительном уровне того, чтобы быть некурящим по сравнению с тем, чтобы быть курильщиком.

Оцените статистическое значение условий.

stats.p
ans = 4×3

    0.0000    0.4715    0.2325
    0.0210    0.7488    0.6362
    0.0010    0.4107    0.8899
    0.0003    0.0483    0.0718

p- значения 0,0210, 0.0010, и 0.0003 указывают, что пол условий и оба типа кровяного давления являются значительными на относительном риске человека, являющегося некурящим по сравнению с курильщиком, учитывая другие члены в модели. На основе p- значение 0,0483, диастолическое кровяное давление кажется значительным на относительном риске человека, курящего 1–5 сигарет по сравнению с больше чем 5 сигаретами в день, учитывая, что этот человек является курильщиком. Поскольку ни один из p- значения на третьем столбце меньше 0.05, можно сказать, что ни одна из переменных не является статистически значительной на относительном риске человека, курящего от 6–10 сигарет по сравнению с больше чем 10 сигаретами, учитывая, что этот человек курит больше чем 5 сигарет в день.

Входные параметры

свернуть все

Наблюдения относительно переменных предикторов в виде n-by-p матрица. X содержит наблюдения n для предикторов p.

Примечание

mnrfit автоматически включает постоянный термин (прерывание) во все модели. Не включайте столбец 1 с в X.

Типы данных: single | double

Значения ответа в виде вектор-столбца или матрицы. Y может быть одно из следующего:

  • n-by-k matrix, где Y (i, j) является количеством результатов категории многочлена j для комбинаций предиктора, данных X (i, :). В этом случае, количество наблюдений сделаны в каждой комбинации предиктора.

  • N-1 вектор-столбец скалярных целых чисел от 1 до k указание на значение ответа для каждого наблюдения. В этом случае все объемы выборки равняются 1.

  • N-1 категориальный массив, указывающий на номинальную стоимость или порядковый номер ответа для каждого наблюдения. В этом случае все объемы выборки равняются 1.

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

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

Пример: 'Model','ordinal','Link','probit' задает порядковую модель с функцией ссылки пробита.

Тип модели, чтобы соответствовать в виде разделенной запятой пары, состоящей из 'Model' и одно из следующих.

'nominal'Значение по умолчанию. Среди категорий ответа нет никакого упорядоченного расположения.
'ordinal'Среди категорий ответа существует естественное упорядоченное расположение.
'hierarchical'Выбор категории ответа последовательный/вкладывает.

Пример: 'Model','ordinal'

Индикатор для взаимодействия между категориями многочлена и коэффициентами в виде разделенной запятой пары, состоящей из 'Interactions' и одно из следующих.

'on'Значение по умолчанию для номинальных и иерархических моделей. Подберите модель с различными коэффициентами через категории.
'off'Значение по умолчанию для порядковых моделей. Подберите модель с единым набором коэффициентов для переменных предикторов через все категории многочлена. Это часто описывается как параллельная регрессия или пропорциональная модель разногласий.

Во всех случаях модель имеет различные прерывания через категории. Выбор 'Interactions' определяет размерности выходного массива B.

Пример: 'Interactions','off'

Индикатор для оценки дисперсионного параметра в виде разделенной запятой пары, состоящей из 'EstDisp' и одно из следующих.

'off'Значение по умолчанию. Используйте теоретическое дисперсионное значение 1.
'on'Оцените дисперсионный параметр для распределения многочлена в вычислении стандартных погрешностей.

Пример: 'EstDisp','on'

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

свернуть все

Коэффициент оценивает для логистической регрессии многочлена ответов в Y, возвращенный как вектор или матрица.

  • Если 'Interaction' 'off', затем B k – 1 + вектор p. Первый k – 1 строка B соответствуйте условиям прерывания, один для каждого k – 1 категория многочлена, и остающиеся строки p соответствуют коэффициентам предиктора, которые характерны для всего первого k – 1 категория.

  • Если 'Interaction' 'on', затем B (p + 1) (k – 1) матрица. Каждый столбец B соответствует предполагаемому термину прерывания и коэффициентам предиктора, один для каждого первого k – 1 категория многочлена.

Оценки для k th категория взяты, чтобы быть нулем как mnrfit берет последнюю категорию в качестве ссылочной категории.

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

dev=2*injkyij*log(yijπ^ij*mi)=inrdi,

где rd i является остаточными значениями отклонения. Для отклонения остаточные значения видят stats.

Статистика модели, возвращенная как структура, которая содержит следующие поля.

betaСодействующие оценки. Они совпадают с B.
dfe

Степени свободы для ошибки

  • Если 'Interactions' 'off', затем степенями свободы является n* (k – 1) – (k – 1 + p).

  • Если 'Interactions' 'on', затем степени свободы (np + 1) * (k – 1).

sfitПредполагаемый дисперсионный параметр.
s

Теоретический или оцененный дисперсионный параметр.

  • Если 'Estdisp' 'off', затем s теоретический дисперсионный параметр, 1.

  • Если 'Estdisp' 'on', затем s равно предполагаемому дисперсионному параметру, sfit.

estdispИндикатор для теоретического или оцененного дисперсионного параметра.
seСтандартные погрешности содействующих оценок, B.
coeffcorrПредполагаемая корреляционная матрица для B.
covbПредполагаемая ковариационная матрица для B.
tСтатистика t для B.
pp-значения для B.
resid

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

rij=yijπ^ij*mi,{i=1,,nj=1,,k,

где π, ij является категориальной, совокупной или условной вероятностью и m i, является соответствующим объемом выборки.

residp

Остаточные значения Пирсона, которые являются необработанными остаточными значениями, масштабируемыми предполагаемым стандартным отклонением:

rpij=rijσ^ij=yijπ^ij*miπ^ij*(1π^ij)*mi,{i=1,,nj=1,,k,

где π, ij является категориальной, совокупной, или условной вероятностью и m i, является соответствующим объемом выборки.

residd

Остаточные значения отклонения:

rdi=2*jkyij*log(yijπ^ij*mi),i=1,,n.

где π, ij является категориальной, совокупной, или условной вероятностью и m i, является соответствующим объемом выборки.

Алгоритмы

mnrfit обработки NaNs в любом X или Y как отсутствующие значения, и игнорирует их.

Ссылки

[1] Маккуллаг, P. и Дж. А. Нелдер. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

[2] Долго, J. S. Модели регрессии для категориальных и ограниченных зависимых переменных. Мудрые публикации, 1997.

[3] Добсон, A. J. и А. Г. Барнетт. Введение в Обобщенные линейные Модели. Чепмен и Холл/CRC. Taylor & Francis Group, 2008.

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