exponenta event banner

выдержать сравнение

Класс: LinearMixedModel

Сравнение линейных моделей смешанных эффектов

Описание

results = compare(lme,altlme) возвращает результаты теста отношения правдоподобия, который сравнивает линейные модели смешанных эффектов lme и altlme. Обе модели должны использовать один и тот же вектор отклика при посадке и lme должен быть вложен в altlme для действительного теоретического критерия отношения правдоподобия. Всегда вводите сначала модель меньшего размера, а затем модель большего размера.

compare проверяет следующие нулевые и альтернативные гипотезы:

H0: Наблюдаемый вектор отклика генерируется lme.

H1: Наблюдаемый вектор отклика генерируется моделью altlme.

Рекомендуется подогнать lme и altlme использование метода максимального правдоподобия (ML) до сравнения модели. Если используется метод ограниченного максимального правдоподобия (REML), то обе модели должны иметь одинаковую матрицу конструкции с фиксированными эффектами.

Для проверки фиксированных эффектов используйте compare с моделируемым тестом отношения правдоподобия, когда lme и altlme подходят с помощью ML или используют fixedEffects, anova, или coefTest методы.

пример

results = compare(___,Name,Value) также возвращает результаты теста отношения правдоподобия, который сравнивает линейные модели смешанных эффектов lme и altlme с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Например, можно проверить, вложена ли первая входная модель во вторую входную модель.

пример

[results,siminfo] = compare(lme,altlme,'NSim',nsim) возвращает результаты моделируемого теста отношения правдоподобия, сравнивающего линейные модели смешанных эффектов lme и altlme.

Можно подогнать lme и altlme с использованием ML или REML. Также, lme не обязательно должен быть вложен в altlme. Если для соответствия моделям используется метод ограниченного максимального правдоподобия (REML), то обе модели должны иметь одинаковую матрицу конструкции с фиксированными эффектами.

пример

[results,siminfo] = compare(___,Name,Value) также возвращает результаты моделируемого теста отношения правдоподобия, который сравнивает линейные модели смешанных эффектов lme и altlme с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Например, можно изменить параметры для выполнения теста смоделированного отношения правдоподобия или изменить доверительный уровень доверительного интервала для значения p.

Входные аргументы

развернуть все

Линейная модель смешанных эффектов, заданная как LinearMixedModel объект, построенный с помощью fitlme или fitlmematrix.

Альтернативная линейная модель со смешанными эффектами соответствует одному и тому же вектору отклика, но с различными спецификациями модели, указанными как LinearMixedModel объект. lme должен быть вложен в altlme, то есть lme должны быть получены из altlme путем установки фиксированных значений для некоторых параметров, например 0. Можно создать линейный объект смешанных эффектов с помощью fitlme или fitlmematrix.

Число репликаций для моделирования в тесте смоделированного отношения правдоподобия, указанное как положительное целое число. Необходимо указать nsim чтобы сделать моделируемый тест отношения правдоподобия.

Пример: 'NSim',1000

Типы данных: double | single

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Уровень значимости, указанный как разделенная запятыми пара, состоящая из 'Alpha' и скалярное значение в диапазоне от 0 до 1. Для значения α доверительный уровень равен 100 * (1-α)%.

Например, для 99% доверительных интервалов можно указать доверительный уровень следующим образом.

Пример: 'Alpha',0.01

Типы данных: single | double

Опции для параллельного выполнения моделируемого теста отношения правдоподобия, указанного как пара, разделенная запятыми, состоящая из 'Options'и структура, созданная statset('LinearMixedModel').

Эти параметры требуют Toolbox™ параллельных вычислений.

compare использует следующие поля.

'UseParallel'
  • False для последовательных вычислений. По умолчанию.

  • True для параллельных вычислений.

Для параллельных вычислений необходима панель инструментов параллельных вычислений.

'UseSubstreams'
  • False за неиспользование отдельного подпотока генератора случайных чисел для каждой итерации. По умолчанию.

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

'Streams'
  • Если 'UseSubstreams' является True, то 'Streams' должен быть одним потоком случайных чисел или скалярным массивом ячеек, содержащим один поток.

  • Если 'UseSubstreams' является False и

    • 'UseParallel' является False, то 'Streams' должен быть одним потоком случайных чисел или скалярным массивом ячеек, содержащим один поток.

    • 'UseParallel' является True, то 'Streams' должно быть равно количеству используемых процессоров. Если открыт параллельный пул, то 'Streams' имеет ту же длину, что и размер параллельного пула. Если 'UseParallel' является Trueпараллельный бассейн может открыться для вас. Но с тех пор 'Streams' должно быть равно количеству используемых процессоров, лучше открыть пул явным образом с помощью parpool команда, перед вызовом compare с'UseParallel','True' вариант.

Для получения информации о параллельных статистических вычислениях в командной строке введите

help parallelstats

Типы данных: struct

Индикатор для проверки вложенности между двумя моделями, указанный как разделенная запятыми пара, состоящая из 'CheckNesting' и одно из следующих.

falseПо умолчанию. Никаких проверок.
truecompare проверяет, является ли модель меньшего размера lme вложен в большую модель altlme.

lme должен быть вложен в альтернативную модель altlme для действительного теоретического критерия отношения правдоподобия. compare возвращает сообщение об ошибке, если требования к вложению не удовлетворены.

Несмотря на то, что они действительны для обоих тестов, требования к вложению являются более слабыми для теста смоделированного отношения правдоподобия.

Пример: 'CheckNesting',true

Типы данных: single | double

Выходные аргументы

развернуть все

Результаты теста отношения правдоподобия или смоделированного теста отношения правдоподобия, возвращенные в виде массива наборов данных с двумя строками. Первая строка предназначена для lme, и вторая строка для altlme. Столбцы results зависит от того, является ли тест отношением правдоподобия или моделируемым тестом отношением правдоподобия.

  • Если вы используете тест отношения правдоподобия, то results содержит следующие столбцы.

    ModelИмя модели
    DFСтепени свободы, то есть количество свободных параметров в модели
    AICИнформационный критерий Akaike для модели
    BICБайесовский информационный критерий для модели
    LogLikМаксимальная вероятность регистрации для модели
    LRStatСтатистика теста отношения правдоподобия для сравнения altlme против lme
    deltaDFDF для altlme минус DF для lme
    pValuep-значение для теста отношения правдоподобия
  • Если используется тест смоделированного отношения правдоподобия, то results содержит следующие столбцы.

    ModelИмя модели
    DFСтепени свободы, то есть количество свободных параметров в модели
    LogLikМаксимальная вероятность регистрации для модели
    LRStatСтатистика теста отношения правдоподобия для сравнения altlme против lme
    pValuep-значение для теста отношения правдоподобия
    LowerНижняя граница доверительного интервала для pValue
    UpperВерхний предел доверительного интервала для pValue

Выходные данные моделирования, возвращенные в виде структуры со следующими полями.

nsimЗначение, установленное для nsim.
alphaЗначение, установленное для 'Alpha'.
pValueSimP-значение на основе моделирования.
pValueSimCIДоверительный интервал для pValueSim. Первый элемент вектора является нижним пределом, а второй элемент вектора содержит верхний предел.
deltaDFКоличество свободных параметров в altlme минус количество свободных параметров в lme. DF для altlme минус DF для lme.
THOВектор смоделированной статистики проверки отношения правдоподобия при нулевой гипотезе, что модель lme сгенерировал наблюдаемый вектор ответа y.

Примеры

развернуть все

Загрузите образцы данных.

load flu

flu массив наборов данных имеет Date переменная и 10 переменных, содержащих оценочные показатели гриппа (в 9 различных регионах, оцененные по поискам Google ®, плюс общенациональная оценка CDC).

Для соответствия модели с линейными смешанными эффектами данные должны находиться в правильно отформатированном массиве наборов данных. Чтобы подогнать линейную модель смешанных эффектов с частотой гриппа в качестве ответов и областью в качестве предикторной переменной, объедините девять столбцов, соответствующих областям, в массив. Новый массив наборов данных, flu2, должна иметь переменную ответа, FluRate, номинальная переменная, Region, которая показывает, из какой области взята каждая оценка, и переменную группировки Date.

flu2 = stack(flu,2:10,'NewDataVarName','FluRate',...
    'IndVarName','Region');
flu2.Date = nominal(flu2.Date);

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

altlme = fitlme(flu2,'FluRate ~ 1 + Region + (1 + Region|Date)');

Подгонка линейной модели смешанных эффектов с фиксированными эффектами для области и случайным перехватом, который варьируется в Date.

lme = fitlme(flu2,'FluRate ~ 1 + Region + (1|Date)');

Сравните две модели. Также проверьте, lme2 вложен в lme.

compare(lme,altlme,'CheckNesting',true)
ans = 
    Theoretical Likelihood Ratio Test

    Model     DF    AIC        BIC        LogLik     LRStat    deltaDF    pValue
    lme       11     318.71     364.35    -148.36                               
    altlme    55    -305.51    -77.346     207.76    712.22    44         0     

Малое значение p, равное 0, указывает на то, что модель altlme значительно лучше, чем более простая модель lme.

Загрузите образцы данных.

load('fertilizer.mat');

Массив наборов данных включает в себя данные эксперимента сплит-графика, где почва делится на три блока по типу почвы: песчаная, илистая и суглинистая. Каждый блок разделён на пять участков, где к этим участкам случайным образом отнесены пять различных типов растений томатов (вишня, реликвия, виноград, лоза и слива). Растения томатов на участках затем делят на субплоты, где каждый субплот обрабатывают одним из четырех удобрений. Это смоделированные данные.

Сохранение данных в массиве наборов данных с именем ds, в практических целях и определить Tomato, Soil, и Fertilizer в качестве категориальных переменных.

ds = fertilizer;
ds.Tomato = nominal(ds.Tomato);
ds.Soil = nominal(ds.Soil);
ds.Fertilizer = nominal(ds.Fertilizer);

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

lmeBig = fitlme(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)');

Переформатировать модель после удаления термина взаимодействия Tomato:Fertilizer и термин случайных эффектов (1 | Soil).

lmeSmall = fitlme(ds,'Yield ~ Fertilizer + Tomato + (1|Soil:Tomato)');

Сравните две модели, используя тест смоделированного отношения правдоподобия с 1000 репликациями. Этот тест необходимо использовать для проверки как терминов с фиксированным, так и случайным эффектом. Обратите внимание, что обе модели подгоняются с использованием метода фитинга по умолчанию ML. Поэтому нет никаких ограничений на матрицы проектирования с фиксированными эффектами. Если используется метод ограниченного максимального правдоподобия (REML), обе модели должны иметь идентичные матрицы конструкции с фиксированными эффектами.

[table,siminfo] = compare(lmeSmall,lmeBig,'nsim',1000)
table = 
    Simulated Likelihood Ratio Test: Nsim = 1000, Alpha = 0.05

    Model       DF    AIC       BIC       LogLik     LRStat    pValue 
    lmeSmall    10    511.06       532    -245.53                     
    lmeBig      23    522.57    570.74    -238.29    14.491    0.57343


    Lower      Upper  
                      
    0.54211    0.60431

siminfo = struct with fields:
           nsim: 1000
          alpha: 0.0500
      pvalueSim: 0.5734
    pvalueSimCI: [0.5421 0.6043]
        deltaDF: 13
            TH0: [1000x1 double]

Высокое значение p предполагает, что большая модель, lme не является значительно лучше, чем модель меньшего размера, lme2. Меньшие значения Akaike и байесовских информационных критериев для lme2 также поддерживают это.

Загрузите образцы данных.

load carbig

Подберите линейную модель смешанных эффектов для миль на галлон (MPG) с фиксированными эффектами для ускорения, лошадиных сил и цилиндров и потенциально коррелированными случайными эффектами для перехвата и ускорения, сгруппированными по модельному году.

Сначала подготовьте матрицы проектирования.

X = [ones(406,1) Acceleration Horsepower];
Z = [ones(406,1) Acceleration];
Model_Year = nominal(Model_Year);
G = Model_Year;

Теперь подгоните модель с помощью fitlmematrix с определенными матрицами конструкции и переменными группировки.

lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept','Acceleration'}},'RandomEffectGroups',{'Model_Year'});

Уточнение модели с помощью некоррелированных случайных эффектов для перехвата и ускорения. Сначала подготовьте схему случайных эффектов и группирующие переменные случайных эффектов.

Z = {ones(406,1),Acceleration};
G = {Model_Year,Model_Year};

lme2 = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept'},{'Acceleration'}},'RandomEffectGroups',...
{'Model_Year','Model_Year'});

Выдержать сравнение lme и lme2 используя моделируемый тест отношения правдоподобия.

compare(lme2,lme,'CheckNesting',true,'NSim',1000)
ans = 


    SIMULATED LIKELIHOOD RATIO TEST: NSIM = 1000, ALPHA = 0.05

    Model    DF    AIC       BIC       LogLik     LRStat    pValue      Lower   
    lme2     6     2194.5    2218.3    -1091.3                                  
    lme      7     2193.5    2221.3    -1089.7    3.0323    0.095904    0.078373


    Upper  
           
    0.11585

Высокое $p$-значение указывает, что lme2 не является значительно лучшим приспособлением, чем lme.

Загрузите образцы данных.

load('fertilizer.mat')

Массив наборов данных включает в себя данные эксперимента сплит-графика, где почва делится на три блока по типу почвы: песчаная, илистая и суглинистая. Каждый блок разделён на пять участков, где к этим участкам случайным образом отнесены пять различных типов растений томатов (вишня, реликвия, виноград, лоза и слива). Растения томатов на участках затем делят на субплоты, где каждый субплот обрабатывают одним из четырех удобрений. Это смоделированные данные.

Сохранение данных в таблице с именем tblи определить Tomato, Soil, и Fertilizer в качестве категориальных переменных.

tbl = dataset2table(fertilizer);
tbl.Tomato = categorical(tbl.Tomato);
tbl.Soil = categorical(tbl.Soil);
tbl.Fertilizer = categorical(tbl.Fertilizer);

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

lme = fitlme(tbl,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)');

Переформатировать модель после удаления термина взаимодействия Tomato:Fertilizer и термин случайных эффектов (1|Soil).

lme2 = fitlme(tbl,'Yield ~ Fertilizer + Tomato + (1|Soil:Tomato)');

Создание структуры опций для LinearMixedModel.

opt = statset('LinearMixedModel')
opt = struct with fields:
          Display: 'off'
      MaxFunEvals: []
          MaxIter: 10000
           TolBnd: []
           TolFun: 1.0000e-06
       TolTypeFun: []
             TolX: 1.0000e-12
         TolTypeX: []
          GradObj: []
         Jacobian: []
        DerivStep: []
      FunValCheck: []
           Robust: []
     RobustWgtFun: []
           WgtFun: []
             Tune: []
      UseParallel: []
    UseSubstreams: []
          Streams: {}
        OutputFcn: []

Измените параметры параллельного тестирования.

opt.UseParallel = true;

Запустите параллельную среду.

mypool = parpool();
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).

Выдержать сравнение lme2 и lme использование теста смоделированного отношения правдоподобия с 1000 репликациями и параллельными вычислениями.

compare(lme2,lme,'nsim',1000,'Options',opt)
ans = 
    Simulated Likelihood Ratio Test: Nsim = 1000, Alpha = 0.05

    Model    DF    AIC       BIC       LogLik     LRStat    pValue     Lower    Upper  
    lme2     10    511.06       532    -245.53                                         
    lme      23    522.57    570.74    -238.29    14.491    0.53447    0.503    0.56573

Высокое значение p предполагает, что большая модель, lme не является значительно лучше, чем модель меньшего размера, lme2. Меньшие значения AIC и BIC для lme2 также поддерживают это.

Подробнее

развернуть все

Ссылки

[1] Hox, J. Многоуровневый анализ, методы и применения. Lawrence Erlbaum Associates, Inc., 2002.

[2] Страм Д. О. и Дж. В. Ли. «Тестирование компонентов дисперсии в модели продольных смешанных эффектов». Биометрия, т. 50, 4, 1994, стр. 1171-1177.

Расширенные возможности