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

The вектора-столбца, species, состоит из цветков радужки трех различных видов, сетоза, версиколор, виргиника. Матрица с двойной meas состоит из четырех видов измерений на цветках, длины и ширины чашелистиков и лепестков в сантиметрах соответственно.

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

sp = categorical(species);

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

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

    1.9078    0.0426
    0.6371    0.0025
   -0.5375    0.0067
   -0.4879   -0.0094
   -2.6110   -0.0183

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

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

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

Коэффициенты выражают как эффекты переменных предиктора на относительный риск, так и журнал шансы оказаться в одной категории по сравнению с ссылкой категорией. Для примера оценочный коэффициент 2,5 указывает, что относительный риск быть видом 2 (версиколор) по сравнению с видом 3 (виргиника) увеличивает exp (2,5) раз для каждого увеличения модуля вX1, первое измерение, учитывая все остальное, равное. Относительные журналы шансы быть версиколором по сравнению с виргиникой увеличиваются в 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.8835    1.9321
    0.6301    0.6441
   -0.5437   -0.5313
   -0.4949   -0.4810
   -2.6249   -2.5970

Найдите доверительные интервалы для коэффициентов модели для относительного риска быть версиколором против виргиники (второй столбец коэффициентов в 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).

Создайте порядковую переменную отклика, классифицирующую 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

Функция ссылки в модели logit ('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 сигарет в день.

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

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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Male, Female.

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

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

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 раз, когда пол изменяется от мужчины к женщине. А модуль увеличение сестричного артериального давления указывает на снижение вероятности быть некурящим (-.2161) = 0,8056 по сравнению с курильщиком. Точно так же модуль увеличение диастолического артериального давления указывает на снижение относительной скорости некурящего по сравнению с курильщиком (-.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 k , где 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) -by- (k - 1) матрицей. Каждый столбец B соответствует оцененному сроку точки пересечения и коэффициентам предиктора, по одному для каждой из первых k - 1 многочлена.

Оценки для k-й категории приняты равными нулю 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', тогда степени свободы есть (n - p + 1) * (k - 1 ).

sfitРасчетный параметр дисперсии.
s

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

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

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

estdispИндикатор для теоретического или предполагаемого параметра дисперсии.
seСтандартные ошибки оценок коэффициентов, B.
coeffcorrОценочная матрица корреляции для B.
covbПредполагаемая ковариационная матрица для B.
tt статистику для 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] McCullagh, P., and J. A. Nelder. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

[2] Длинные регрессионые модели Дж. С. для категориальных и ограниченно зависимых переменных. Sage Publications, 1997.

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

Введенный в R2006b