exponenta event banner

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-за-ч n наблюдений на h предикторах.

y - вектор ответов n-на-1.

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

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

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

yfit = modelfun(PHI,XFUN,VFUN)

Аргументы следующие:

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

  • XFUN - Массив предикторов k-by-h, где:

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

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

    • 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-на-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-по-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'. Каждая модель определяет ошибку, используя стандартную нормальную (гауссову) переменную 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) или эквивалентно log (y) = log (f ) + a * e

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

  • для '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 + BDESIGN*B PHI = f (XB). Каждый элемент вектора должен быть одним из следующих целочисленных кодов, задающих преобразование для соответствующего значения PHI:

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

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

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

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

Options

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

  • 'DerivStep' - Относительная разность, используемая при расчете градиента конечных разностей. Может быть скаляром или вектором, длина которого соответствует числу параметров модели. Значение по умолчанию: 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(Панель инструментов оптимизации). Значение по умолчанию: '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

loglikelihood 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] Lindstrom, M. J. и Д. М. Бэйтс. «Нелинейные модели смешанных эффектов для данных повторных измерений». Биометрия. Том 46, 1990, стр. 673-687.

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

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

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

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