nlmefit

Нелинейная оценка смешанных эффектов

Синтаксис

beta = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0,'Name',value)

Описание

beta = nlmefit(X,y,group,V,fun,beta0) подбирает нелинейную модель регрессии смешанных эффектов и возвращает оценки фиксированных эффектов в beta. По умолчанию, nlmefit подбирает модель, в которой каждый параметр является суммой фиксированного и случайного эффекта, и случайные эффекты являются некоррелироваными (их ковариационная матрица является диагональной).

X n-by-h матрица наблюдений n относительно предикторов h.

y n-by-1 вектор из ответов.

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

V m-by-g матричный или массив ячеек g специфичные для группы предикторы. Это предикторы, которые принимают то же значение для всех наблюдений в группе. Строки V присвоены использованию групп grp2idx, согласно порядку, заданному grp2idx(group). Используйте массив ячеек для V если предикторы группы отличаются по размеру через группы. Использование для V при отсутствии специфичных для группы предикторов.

fun указатель на функцию, которая принимает значения предиктора и параметры модели и возвращает адаптированные значения. fun имеет форму

yfit = modelfun(PHI,XFUN,VFUN)

Аргументы:

  • PHI — 1 p вектором из параметров модели.

  • XFUNk-by-h массив предикторов, где:

    • k = 1, если XFUN одна строка X.

    • k = n i, если XFUN содержит строки X для одной группы размера n i.

    • k = n, если XFUN содержит все строки X.

  • VFUN — Специфичные для группы предикторы, данные одним из:

    • 1 g вектором, соответствующим одной группе и одной строке V.

    • n-by-g массив, где j th строка V (I, :) если j th наблюдение находится в группе I.

    Если V isempty, nlmefit вызовы modelfun только с двумя входными параметрами.

  • yfitk-by-1 вектор из подходящих значений

Когда любой PHI или VFUN содержит одну строку, она соответствует всем строкам в других двух входных параметрах.

Примечание

Если modelfun может вычислить yfit больше чем для одного вектора из параметров модели на вызов используйте 'Vectorization' параметр (описал позже) для улучшенной производительности.

beta0 q-by-1, вектор с первоначальными оценками для q зафиксировал эффекты. По умолчанию q является количеством параметров модели p.

nlmefit подбирает модель путем максимизации приближения к крайней вероятности со случайными эффектами, интегрированными, предположения что:

  • Случайные эффекты многомерны нормально распределенный и независимый между группами.

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

[beta,PSI] = nlmefit(X,y,group,V,fun,beta0) также возвращает PSI, r-by-r оцененная ковариационная матрица для случайных эффектов. По умолчанию r равен количеству параметров модели p.

[beta,PSI,stats] = nlmefit(X,y,group,V,fun,beta0) также возвращает stats, структура с полями:

  • dfe — Ошибочные степени свободы для модели

  • logl — Максимизируемая логарифмическая правдоподобность для подобранной модели

  • rmse — Квадратный корень из предполагаемого ошибочного отклонения (вычисленный на логарифмической шкале для exponential ошибочная модель)

  • errorparam — Предполагаемые параметры ошибочной модели отклонения

  • aic — Информационный критерий Akaike, вычисленный как aic =-2 * logl + 2 * numParam, где numParam количество подгоняемых параметров, включая степень свободы для ковариационной матрицы случайных эффектов, количества фиксированных эффектов и количества параметров ошибочной модели и logl поле в stats структура

  • bic — Байесов информационный критерий, вычисленный как bic = –2*logl + журнал (M) * numParam

    • M количество групп.

    • numParam и logl заданы как в aic.

    Обратите внимание на то, что некоторая литература предполагает что расчет bic должен быть, bic = –2*logl + журнал (N) * numParam, где N количество наблюдений.

  • covb — Предполагаемая ковариационная матрица оценок параметра

  • sebeta — Стандартные погрешности для beta

  • ires — Остаточные значения населения (y-y_population), где y_population отдельные ожидаемые значения

  • pres — Остаточные значения населения (y-y_population), где y_population ожидаемые значения населения

  • iwres — Индивидуум взвесил остаточные значения

  • pwres — Население взвесило остаточные значения

  • cwres — Условное выражение взвесило остаточные значения

[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0) также возвращает B, r-by-m матрица предполагаемых случайных эффектов для групп m. По умолчанию r равен количеству параметров модели p.

[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0,'Name',value) задает один или несколько дополнительное название параметра / пары значения. Задайте Name в одинарных кавычках.

Используйте следующие параметры, чтобы подобрать модель, отличающуюся от значения по умолчанию. (Модель по умолчанию получена путем установки обоих FEConstDesign и REConstDesign к eye(p), или путем установки обоих FEParamsSelect и REParamsSelect к 1:p.) Используют самое большее один параметр с 'FE' префикс и один параметр с 'RE' префикс. nlmefit функция требует, чтобы вы задали по крайней мере один фиксированный эффект и один случайный эффект.

ПараметрЗначение
FEParamsSelect

Вектор, задающий, который элементы вектора параметра PHI включайте фиксированный эффект, данный как числовой вектор из индексов от 1 к p или как 1 p логическим вектором. Если q является конкретным количеством элементов, то модель включает зафиксированные эффекты q.

FEConstDesign

p-by-q проектирует матричный ADESIGN, где ADESIGN*beta фиксированные компоненты элементов p PHI.

FEGroupDesign

p-by-q-by-m массив, задающий различный p-by-q фиксированные эффекты, проектирует матрицу для каждой из групп m.

FEObsDesign

p-by-q-by-n массив, задающий различный p-by-q фиксированные эффекты, проектирует матрицу для каждого из наблюдений n.

REParamsSelect

Вектор, задающий, который элементы вектора параметра PHI включайте случайный эффект, данный как числовой вектор из индексов от 1 к p или как 1 p логическим вектором. Модель включает r случайные эффекты, где r является конкретным количеством элементов.

REConstDesign

p-by-r проектирует матричный BDESIGN, где BDESIGN*B случайные компоненты элементов p PHI.

REGroupDesign

p-by-r-by-m массив, задающий различный p-by-r случайные эффекты, проектирует матрицу для каждой из групп m.

REObsDesign

p-by-r-by-n массив, задающий различный p-by-r случайные эффекты, проектирует матрицу для каждого из наблюдений n.

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

ParameterЗначение
RefineBeta0

Определяет ли nlmefit делает начальное улучшение beta0 первым подходящим modelfun без случайных эффектов и заменяющий beta0 с beta. Выбором является 'on' и 'off'. Значением по умолчанию является 'on'.

ErrorModel

Вектор символов или строковый скаляр, задающий форму остаточного члена. Значением по умолчанию является 'constant'. Каждая модель задает ошибку стандартная нормальная переменная (Gaussian) e, значение функции f и один или два параметра a и b. Выбор:

  • 'constant': y = f + a *e

  • 'proportional': y = f + b *f*e

  • 'combined': y = f + (a +b*f) *e

  • 'exponential': y = f *exp (a *e), или эквивалентно регистрируют (y) = журнал (f) + a *e

Если этот параметр дан, выход stats.errorparam поле имеет значение

  • a для 'constant' и 'exponential'

  • b для 'proportional'

  • [a b] для 'combined'

ApproximationType

Метод раньше аппроксимировал вероятность модели. Выбор:

  • 'LME' — Используйте вероятность для линейной модели смешанных эффектов в текущих условных оценках beta и BЭто значение по умолчанию.

  • 'RELME' — Используйте ограниченную вероятность для линейной модели смешанных эффектов в текущих условных оценках beta и B.

  • 'FO' — Лапласово приближение первого порядка без случайных эффектов.

  • 'FOCE' — Лапласово приближение первого порядка в условных оценках B.

Vectorization

Указывает на приемлемые размеры для PHI, XFUN, и VFUN входные параметры к modelfun. Выбор:

  • 'SinglePhi'modelfun может только принять один набор параметров модели за один раз, таким образом, PHI должен быть вектор одной строки в каждом вызове. nlmefit вызовы modelfun в цикле, при необходимости, с одним PHI вектор и с XFUN содержа строки для одного наблюдения или группы за один раз. VFUN может быть одна строка, которая применяется ко всем строкам XFUN, или матрица со строками, соответствующими строкам в XFUNЭто значение по умолчанию.

  • 'SingleGroup'modelfun может только принять входные параметры, соответствующие одной группе в данных, таким образом, XFUN должен содержать строки X от одной группы в каждом вызове. В зависимости от модели, PHI одна строка, которая применяется к целой группе или матрице с одной строкой для каждого наблюдения. VFUN одна строка.

  • 'Full'modelfun может принять входные параметры для нескольких векторов параметра и нескольких групп в данных. Любой PHI или VFUN может быть одна строка, которая применяется ко всем строкам XFUN или матрица со строками, соответствующими строкам в XFUN. Эта опция может улучшать производительность путем сокращения количества вызовов modelfun, но может потребовать modelfun выполнять одноэлементное расширение на PHI или V.

CovParameterization

Задает параметризацию, используемую внутренне для масштабированной ковариационной матрицы. Выбором является 'chol' для факторизации Холесского или 'logm' матричный логарифм. Значением по умолчанию является 'logm'.

CovPattern

Задает r-by-r логический или числовой матричный P это задает шаблон ковариационной матрицы случайных эффектов PSI. nlmefit оценивает отклонения по диагонали PSI и ковариации заданы ненулями в недиагональных элементах P. Ковариации, соответствующие, чтобы обнулить недиагональные элементы в P ограничиваются быть нулем. Если P не задает сочетание столбца строки матрицы диагонали блока, nlmefit добавляют ненулевые элементы к P по мере необходимости. Значение по умолчанию P eye(r), соответствие некоррелированым случайным эффектам.

В качестве альтернативы P может быть 1 r вектором, содержащим значения в 1:r, с равными группами определения значений случайных эффектов. В этом случае, nlmefit оценочные ковариации только в группах, и ограничивают ковариации через группы быть нулем.

ParamTransform

Вектор из p-значений, задающих преобразование, функционирует f () для каждого P параметры: XB = ADESIGN\beta + BDESIGNB PHI = f (XB). Каждым элементом вектора должен быть один из следующих целочисленных кодов, задающих преобразование для соответствующего значения PHI:

  • 0: PHI = XB (значение по умолчанию для всех параметров)

  • 1: журнал (PHI) = XB

  • 2: пробит (PHI) = XB

  • 3: логит (PHI) = XB

Options

Структура формы, возвращенной statset. nlmefit использует следующее statset параметры:

  • 'DerivStep' — Относительная разница используется в вычислении градиента конечной разности. Может быть скаляр или вектор, длина которого является количеством параметров модели p. Значением по умолчанию является eps^(1/3).

  • 'Display' — Уровень итеративного отображения во время оценки. Выбор:

    • 'off' (значение по умолчанию) — Отображения никакая информация

    • 'final' — Информация об отображениях после итоговой итерации

    • 'iter' — Информация об отображениях в каждой итерации

  • 'FunValCheck' — Проверяйте на недопустимые значения, такие как NaN или Inf, от modelfun. Выбором является 'on' и 'off'. Значением по умолчанию является 'on'.

  • 'MaxIter' — Максимальное количество итераций позволено. Значением по умолчанию является 200.

  • 'OutputFcn' — Указатель на функцию, заданный с помощью @, массив ячеек с указателями на функцию или пустым массивом (значение по умолчанию). Решатель вызывает все выходные функции после каждой итерации.

  • 'TolFun' — Допуск завершения на функции логарифмической правдоподобности. Значением по умолчанию является 1e-4.

  • 'TolX' — Допуск завершения на предполагаемых фиксированных и случайных эффектах. Значением по умолчанию является 1e-4.

OptimFun

Задает оптимизационную функцию, используемую в максимизации вероятности. Выбором является 'fminsearch' использовать fminsearch или 'fminunc' использовать fminunc (Optimization Toolbox). Значением по умолчанию является 'fminsearch'. Можно задать 'fminunc' только если программное обеспечение Optimization Toolbox™ установлено.

Примеры

свернуть все

Введите и отобразите данные по росту пяти апельсиновых деревьев.

CIRC = [30 58 87 115 120 142 145;
        33 69 111 156 172 203 203;
        30 51 75 108 115 139 140;
        32 62 112 167 179 209 214;
        30 49 81 125 142 174 177];
time = [118 484 664 1004 1231 1372 1582];

h = plot(time,CIRC','o','LineWidth',2);
xlabel('Time (days)')
ylabel('Circumference (mm)')
title('{\bf Orange Tree Growth}')
legend([repmat('Tree ',5,1),num2str((1:5)')],...
       'Location','NW')
grid on
hold on

Figure contains an axes. The axes with title {\bf Orange Tree Growth} contains 5 objects of type line. These objects represent Tree 1, Tree 2, Tree 3, Tree 4, Tree 5.

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

model = @(PHI,t)(PHI(:,1))./(1+exp(-(t-PHI(:,2))./PHI(:,3)));

Подбирайте модель с помощью nlmefit с настройками по умолчанию (то есть, принимая каждый параметр сумма фиксированного и случайного эффекта, без корреляции среди случайных эффектов):

TIME = repmat(time,5,1);
NUMS = repmat((1:5)',size(time));

beta0 = [100 100 100];
[beta1,PSI1,stats1] = nlmefit(TIME(:),CIRC(:),NUMS(:),...
                              [],model,beta0)
beta1 = 3×1

  191.3189
  723.7608
  346.2517

PSI1 = 3×3

  962.1535         0         0
         0    0.0000         0
         0         0  297.9879

stats1 = struct with fields:
           dfe: 28
          logl: -131.5457
           mse: 59.7882
          rmse: 7.9016
    errorparam: 7.7323
           aic: 277.0913
           bic: 274.3574
          covb: [3x3 double]
        sebeta: [15.2249 33.1579 26.8235]
          ires: [35x1 double]
          pres: [35x1 double]
         iwres: [35x1 double]
         pwres: [35x1 double]
         cwres: [35x1 double]

Незначительное отклонение второго случайного эффекта, PSI1(2,2), предполагает, что это может быть удалено, чтобы упростить модель.

[beta2,PSI2,stats2,b2] = nlmefit(TIME(:),CIRC(:),...
    NUMS(:),[],model,beta0,'REParamsSelect',[1 3])
beta2 = 3×1

  191.0490
  722.5560
  344.1624

PSI2 = 2×2

  991.1515         0
         0    0.0000

stats2 = struct with fields:
           dfe: 29
          logl: -131.5846
           mse: 61.5637
          rmse: 7.9935
    errorparam: 7.8463
           aic: 275.1692
           bic: 272.8258
          covb: [3x3 double]
        sebeta: [15.4462 33.6107 25.9579]
          ires: [35x1 double]
          pres: [35x1 double]
         iwres: [35x1 double]
         pwres: [35x1 double]
         cwres: [35x1 double]

b2 = 2×5

  -29.4038   31.5648  -37.0002   40.0183   -5.1791
    0.0000   -0.0000    0.0000   -0.0000   -0.0000

Логарифмическая правдоподобность logl незатронуто, и и критерии информации о Akaike и Bayesian (aic и bic ) уменьшаются, поддерживая решение исключить второй случайный эффект из модели.

Используйте предполагаемые фиксированные эффекты в beta2 и предполагаемые случайные эффекты для каждого дерева в b2 построить модель через данные.

PHI = repmat(beta2,1,5) + ...          % Fixed effects
      [b2(1,:);zeros(1,5);b2(2,:)];    % Random effects

tplot = 0:0.1:1600;
for I = 1:5
  fitted_model=@(t)(PHI(1,I))./(1+exp(-(t-PHI(2,I))./ ... 
       PHI(3,I)));
  plot(tplot,fitted_model(tplot),'Color',h(I).Color, ...
	   'LineWidth',2)
end

Figure contains an axes. The axes with title {\bf Orange Tree Growth} contains 10 objects of type line. These objects represent Tree 1, Tree 2, Tree 3, Tree 4, Tree 5.

Ссылки

[1] Lindstrom, M. J. и Д. М. Бэйтс. “Нелинейные модели смешанных эффектов для данных о повторных измерениях”. Биометрика. Издание 46, 1990, стр 673–687.

[2] Davidian, M. и Д. М. Джилтинэн. Нелинейные модели для повторных данных об измерениях. Нью-Йорк: Chapman & Hall, 1995.

[3] Пинейро, J. C. и Д. М. Бэйтс. “Приближения к логарифмической правдоподобности функционируют в нелинейной модели смешанных эффектов”. Журнал Вычислительной и Графической Статистики. Издание 4, 1995, стр 12–35.

[4] Демиденко, E. Смешанные модели: теория и приложения. Хобокен, NJ: John Wiley & Sons, Inc., 2004.

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