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 пуст, 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 — Максимизируемый loglikelihood для подобранной модели

  • 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 является одной строкой.

  • полный 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 + BDESIGN *B 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).

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

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

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

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

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

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

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

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

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

OptimFun

Задает функцию оптимизации, используемую в максимизации вероятности. Выбором является 'fminsearch', чтобы использовать fminsearch или 'fminunc', чтобы использовать fminunc. Значением по умолчанию является '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

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

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

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.3193
  723.7629
  346.2532

PSI2 = 2×2

  962.4847         0
         0  297.9930

stats2 = struct with fields:
           dfe: 29
          logl: -131.5456
           mse: 59.7847
          rmse: 7.7642
    errorparam: 7.7321
           aic: 275.0913
           bic: 272.7479
          covb: [3x3 double]
        sebeta: [15.2270 33.1573 26.8230]
          ires: [35x1 double]
          pres: [35x1 double]
         iwres: [35x1 double]
         pwres: [35x1 double]
         cwres: [35x1 double]

b2 = 2×5

  -28.5262   31.6066  -36.5078   39.0748   -5.6474
    9.9981   -0.7623    6.0046   -9.4579   -5.7824

loglikelihood 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

Ссылки

[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