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


    Lower      Upper  
    0.12281    0.27587
    0.21077    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.4739e-12

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

[pVal,F,DF1,DF2] = coefTest(lme,[0 0 0 1 0 0 0 0 0],0,'REContrast',K')
pVal = 1.4739e-12
F = 52.9777
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 = 1.4293e-06
F = 52.9777
DF1 = 1
DF2 = 16.7081

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

| |