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 - вектор параметров модели p 1 байт.

  • XFUN - A k -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-я строка является V (I,:) если j-е наблюдение находится в групповой I.

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

  • yfit - вектор k -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 - Информационный критерий Акаике, рассчитанный как 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' префикс. The nlmefit функция требует, чтобы вы задали, по крайней мере, один фиксированный эффект и один случайный эффект.

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

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

FEConstDesign

A 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

A 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'. Каждая модель определяет ошибку, используя стандартную нормальную (Гауссову) переменную 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 и ковариации, заданные ненули в off-диагональных элементах P. Ковариации, соответствующие нулю off-диагональных элементов в 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: logit (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 не затронуто, и акайкский, и байесовский информационные критерии (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] Линдстрем, М. Дж., и Д. М. Бейтс. Нелинейные модели смешанных эффектов для данных повторных измерений. Биометрия. Том 46, 1990, стр. 673-687.

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

[3] Pinheiro, J. C., and D. M. Bates. «Приближения к функции логарифмической правдоподобности в нелинейной модели смешанных эффектов». Журнал вычислительной и графической статистики. Том 4, 1995, стр. 12-35.

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

Введенный в R2008b