coefTest

Класс: LinearMixedModel

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

Описание

пример

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 имя аргумента и 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('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
    {'(Intercept)'}        {'(Intercept)'}        {'std'}        1.8297  


    Lower      Upper 
    0.94915    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('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
    {'(Intercept)'}        {'(Intercept)'}        {'std' }        0.18407 
    {'Week'       }        {'(Intercept)'}        {'corr'}        0.66841 
    {'Week'       }        {'Week'       }        {'std' }        0.15033 


    Lower      Upper  
    0.12281    0.27587
    0.21076    0.88573
    0.11004    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
    {'(Intercept)'}        {'(Intercept)'}        {'std'}        0.6443  


    Lower     Upper  
    0.5297    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.1939e-12

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

[pVal,F,DF1,DF2] = coefTest(lme,[0 0 0 1 0 0 0 0 0],0,'REContrast',K')
pVal = 1.1939e-12
F = 53.4396
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.4396
DF1 = 1
DF2 = 0

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

| |