coefTest

Класс: LinearMixedModel

Тест гипотезы на фиксированных и случайных эффектах линейной модели смешанных эффектов

Синтаксис

pVal = coefTest(lme)
pVal = coefTest(lme,H)
pVal = coefTest(lme,H,C)
pVal = coefTest(lme,H,C,Name,Value)
[pVal,F,DF1,DF2] = coefTest(___)

Описание

пример

pVal = coefTest(lme) возвращает p - значение для F - тест, что все коэффициенты фиксированных эффектов за исключением прерывания 0.

пример

pVal = coefTest(lme,H) возвращает p - значение для F - тестирует на коэффициентах фиксированных эффектов линейной модели lme смешанных эффектов, с помощью контрастного матричного H. Это тестирует нулевую гипотезу что H0: H β = 0, где β является вектором фиксированных эффектов.

пример

pVal = coefTest(lme,H,C) возвращает p - значение для F - тестирует на коэффициентах фиксированных эффектов линейной модели lme смешанных эффектов, с помощью контрастного матричного H. Это тестирует нулевую гипотезу что H0: H β = C, где β является вектором фиксированных эффектов.

пример

pVal = coefTest(lme,H,C,Name,Value) возвращает p - значение для F - тестирует на фиксированном - и/или коэффициенты случайных эффектов линейной модели lme смешанных эффектов с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, 'REContrast',K говорит coefTest тестировать нулевую гипотезу что H0: H β + KB = C, где β является вектором фиксированных эффектов и B, является вектором случайных эффектов.

пример

[pVal,F,DF1,DF2] = coefTest(___) также возвращает F - статистический F, и числитель и степени свободы знаменателя для F, соответственно DF1 и DF2.

Входные параметры

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

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

Контрасты фиксированных эффектов, заданные как m-by-p матрица, где p является количеством коэффициентов фиксированных эффектов в lme. Каждая строка H представляет один контраст. Столбцы H (слева направо) соответствуют строкам p-by-1 вектор фиксированных эффектов beta (от начала до конца), возвращенный методом fixedEffects.

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

Предполагавшееся значение для тестирования нулевой гипотезы H *beta = C, заданный как m-by-1 матрица. Здесь, beta является вектором оценок фиксированных эффектов, возвращенных методом fixedEffects.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Метод для вычисления аппроксимированных степеней свободы знаменателя для F - тест, заданный как пара, разделенная запятой, состоящая из 'DFMethod' и одно из следующих.

'residual'Значение по умолчанию. Степени свободы приняты, чтобы быть постоянными и равными np, где n является количеством наблюдений, и p является количеством фиксированных эффектов.
'satterthwaite'Приближение Satterthwaite.
'none'Все степени свободы установлены в бесконечность.

Например, можно задать приближение Satterthwaite можно следующим образом.

Пример: 'DFMethod','satterthwaite'

Контрасты случайных эффектов, заданные как пара, разделенная запятой, состоящая из 'REContrast' и m-by-q матричный K, где q является количеством случайных параметров эффектов в lme. Столбцы K (слева направо) соответствуют строкам случайных эффектов лучше всего линейный несмещенный вектор предиктора B (от начала до конца), возвращенный методом randomEffects.

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

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

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

p - значение для F - тестирует на фиксированных коэффициентах и/или коэффициентах случайных эффектов линейной модели lme смешанных эффектов, возвращенной как скалярное значение.

F-, возвращенная как скалярное значение.

Степени свободы числителя для F, возвращенного как скалярное значение.

  • Если вы тестируете нулевую гипотезу H0: H β = 0, или H0: H β = C, затем DF1 равен количеству линейно независимых строк в H.

  • Если вы тестируете нулевую гипотезу H0: H β + KB = C, затем DF1 равен количеству линейно независимых строк в [H,K].

Степени свободы знаменателя для F, возвращенного как скалярное значение. Значение DF2 зависит от опции, которую вы выбираете для DFMethod.

Примеры

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

Загрузите выборочные данные.

load(fullfile(matlabroot,'examples','stats','shift.mat'))

Данные показывают абсолютные отклонения от целевой качественной характеристики, измеренной от продуктов, что пять операторов производят во время трех различных сдвигов: утро, вечер и ночь. Это - рандомизированная блочная конструкция, где операторы являются блоками. Эксперимент разработан, чтобы изучить влияние времени сдвига на производительности. Критерием качества работы является абсолютное отклонение качественных характеристик от целевого значения. Это - моделируемые данные.

Shift и Operator являются номинальными переменными.

shift.Shift = nominal(shift.Shift);
shift.Operator = nominal(shift.Operator);

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

lme = fitlme(shift,'QCDev ~ Shift + (1|Operator)')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations              15
    Fixed effects coefficients           3
    Random effects coefficients          5
    Covariance parameters                2

Formula:
    QCDev ~ 1 + Shift + (1 | Operator)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    59.012    62.552    -24.506          49.012  

Fixed effects coefficients (95% CIs):
    Name                   Estimate    SE         tStat       DF    pValue   
    '(Intercept)'           3.1196     0.88681      3.5178    12    0.0042407
    'Shift_Morning'        -0.3868     0.48344    -0.80009    12      0.43921
    'Shift_Night'           1.9856     0.48344      4.1072    12    0.0014535


    Lower      Upper  
     1.1874     5.0518
    -1.4401    0.66653
    0.93227     3.0389

Random effects covariance parameters (95% CIs):
Group: Operator (5 Levels)
    Name1                Name2                Type         Estimate    Lower  
    '(Intercept)'        '(Intercept)'        'std'        1.8297      0.94915


    Upper 
    3.5272

Group: Error
    Name             Estimate    Lower      Upper 
    'Res Std'        0.76439     0.49315    1.1848

Протестируйте, если все коэффициенты фиксированных эффектов за исключением прерывания 0.

pVal = coefTest(lme)
pVal = 7.5956e-04

Маленькое p- значение указывает, что не все коэффициенты фиксированных эффектов 0.

Протестируйте значение термина Shift с помощью контрастной матрицы.

H = [0 1 0; 0 0 1];
pVal = coefTest(lme,H)
pVal = 7.5956e-04

Протестируйте значение термина Shift с помощью метода anova.

anova(lme)
ans = 
    ANOVA marginal tests: DFMethod = 'Residual'

    Term                 FStat     DF1    DF2    pValue    
    '(Intercept)'        12.375    1      12      0.0042407
    'Shift'              13.864    2      12     0.00075956

p- значение для Shift, 0.00075956, эквивалентно p- значение предыдущего теста гипотезы.

Протестируйте, если существует какое-либо различие между вечерними и утренними сдвигами.

pVal = coefTest(lme,[0 1 -1])
pVal = 3.6147e-04

Это маленькое p- значение указывает, что производительность операторов не является тем же самым утром и вечерними сменами.

Загрузите выборочные данные.

load(fullfile(matlabroot,'examples','stats','weight.mat'))

weight содержит данные из продольного исследования, где 20 предметов случайным образом присвоены 4 программам подготовки, и их потеря веса зарегистрирована более чем шесть 2-недельных периодов времени. Это - моделируемые данные.

Храните данные в таблице. Задайте Subject и Program как категориальные переменные.

tbl = table(InitialWeight,Program,Subject,Week,y);
tbl.Subject = nominal(tbl.Subject);
tbl.Program = nominal(tbl.Program);

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

lme = fitlme(tbl,'y ~ InitialWeight + Program*Week + (Week|Subject)')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             120
    Fixed effects coefficients           9
    Random effects coefficients         40
    Covariance parameters                4

Formula:
    y ~ 1 + InitialWeight + Program*Week + (1 + Week | Subject)

Model fit statistics:
    AIC        BIC       LogLikelihood    Deviance
    -22.981    13.257    24.49            -48.981 

Fixed effects coefficients (95% CIs):
    Name                    Estimate     SE           tStat       DF 
    '(Intercept)'             0.66105      0.25892      2.5531    111
    'InitialWeight'         0.0031879    0.0013814      2.3078    111
    'Program_B'               0.36079      0.13139       2.746    111
    'Program_C'             -0.033263      0.13117    -0.25358    111
    'Program_D'               0.11317      0.13132     0.86175    111
    'Week'                     0.1732     0.067454      2.5677    111
    'Program_B:Week'         0.038771     0.095394     0.40644    111
    'Program_C:Week'         0.030543     0.095394     0.32018    111
    'Program_D:Week'         0.033114     0.095394     0.34713    111


    pValue       Lower         Upper    
     0.012034       0.14798       1.1741
     0.022863    0.00045067    0.0059252
    0.0070394       0.10044      0.62113
      0.80029      -0.29319      0.22666
      0.39068      -0.14706       0.3734
     0.011567      0.039536      0.30686
      0.68521      -0.15026       0.2278
      0.74944      -0.15849      0.21957
      0.72915      -0.15592      0.22214

Random effects covariance parameters (95% CIs):
Group: Subject (20 Levels)
    Name1                Name2                Type          Estimate    Lower  
    '(Intercept)'        '(Intercept)'        'std'         0.18407     0.12281
    'Week'               '(Intercept)'        'corr'        0.66841     0.21076
    'Week'               'Week'               'std'         0.15033     0.11004


    Upper  
    0.27587
    0.88573
    0.20537

Group: Error
    Name             Estimate    Lower       Upper  
    'Res Std'        0.10261     0.087882    0.11981

Протестируйте на значение взаимодействия между Program и Week.

H = [0 0 0 0 0 0 1 0 0; 
     0 0 0 0 0 0 0 1 0;
     0 0 0 0 0 0 0 0 1];
pVal = coefTest(lme,H)
pVal = 0.9775

Верхний уровень p- значение указывает, что взаимодействие между Program и Week не является статистически значительным.

Теперь, протестируйте, являются ли все коэффициенты, включающие Program, 0.

H = [0 0 1 0 0 0 0 0 0;
     0 0 0 1 0 0 0 0 0;
     0 0 0 0 1 0 0 0 0;
     0 0 0 0 0 0 1 0 0; 
     0 0 0 0 0 0 0 1 0;
     0 0 0 0 0 0 0 0 1];
C = [0;0;0;0;0;0];
pVal = coefTest(lme,H,C)
pVal = 0.0274

p- значение 0,0274 указывает, что не все коэффициенты, включающие Program, являются нулем.

Загрузите выборочные данные.

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.

lme = fitlme(flu2,'FluRate ~ 1 + Region + (1|Date)')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             468
    Fixed effects coefficients           9
    Random effects coefficients         52
    Covariance parameters                2

Formula:
    FluRate ~ 1 + Region + (1 | Date)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    318.71    364.35    -148.36          296.71  

Fixed effects coefficients (95% CIs):
    Name                      Estimate    SE          tStat      DF 
    '(Intercept)'               1.2233    0.096678     12.654    459
    'Region_MidAtl'           0.010192    0.052221    0.19518    459
    'Region_ENCentral'        0.051923    0.052221     0.9943    459
    'Region_WNCentral'         0.23687    0.052221     4.5359    459
    'Region_SAtl'             0.075481    0.052221     1.4454    459
    'Region_ESCentral'         0.33917    0.052221      6.495    459
    'Region_WSCentral'           0.069    0.052221     1.3213    459
    'Region_Mtn'              0.046673    0.052221    0.89377    459
    'Region_Pac'              -0.16013    0.052221    -3.0665    459


    pValue        Lower        Upper    
     1.085e-31       1.0334       1.4133
       0.84534    -0.092429      0.11281
        0.3206    -0.050698      0.15454
    7.3324e-06      0.13424      0.33949
       0.14902     -0.02714       0.1781
    2.1623e-10      0.23655      0.44179
       0.18705    -0.033621      0.17162
       0.37191    -0.055948      0.14929
     0.0022936     -0.26276    -0.057514

Random effects covariance parameters (95% CIs):
Group: Date (52 Levels)
    Name1                Name2                Type         Estimate    Lower 
    '(Intercept)'        '(Intercept)'        'std'        0.6443      0.5297


    Upper  
    0.78368

Group: Error
    Name             Estimate    Lower      Upper
    'Res Std'        0.26627     0.24878    0.285

Протестируйте гипотезу, что случайный термин эффектов в течение недели 10/9/2005 является нулем.

[~,~,STATS] = randomEffects(lme); % Compute the random-effects statistics (STATS)
STATS.Level = nominal(STATS.Level);
K = zeros(length(STATS),1);
K(STATS.Level == '10/9/2005') = 1;
pVal = coefTest(lme,[0 0 0 0 0 0 0 0 0],0,'REContrast',K')
pVal = 0.1692

Переоборудуйте модель на этот раз случайным прерыванием и наклоном.

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

Протестируйте гипотезу, что объединенный коэффициент области WNCentral в течение недели 10/9/2005 является нулем.

[~,~,STATS] = randomEffects(lme); STATS.Level = nominal(STATS.Level);
K = zeros(length(STATS),1);
K(STATS.Level == '10/9/2005' & flu2.Region == 'WNCentral') = 1;
pVal = coefTest(lme,[0 0 0 1 0 0 0 0 0],0,'REContrast',K')
pVal = 1.0660e-12

Также возвратитесь F- статистическая величина с числителем и степенями свободы знаменателя.

[pVal,F,DF1,DF2] = coefTest(lme,[0 0 0 1 0 0 0 0 0],0,'REContrast',K')
pVal = 1.0660e-12
F = 53.6881
DF1 = 1
DF2 = 459

Повторите тест с помощью приближения Satterthwaite для степеней свободы знаменателя.

[pVal,F,DF1,DF2] = coefTest(lme,[0 0 0 1 0 0 0 0 0],0,'REContrast',K',...
			'DFMethod','satterthwaite')
pVal = NaN
F = 53.6881
DF1 = 1
DF2 = 0

Смотрите также

| |

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