randomEffects

Класс: LinearMixedModel

Оценки случайных эффектов и соответствующие статистические данные

Описание

пример

B = randomEffects(lme) возвращает оценки лучших линейных объективных предикторов (BLUPs) случайных эффектов в модели линейных смешанных эффектов lme.

пример

[B,Bnames] = randomEffects(lme) также возвращает имена коэффициентов в Bnames. Каждое имя соответствует коэффициенту в B.

пример

[B,Bnames,stats] = randomEffects(lme) также возвращает предполагаемые BLUP случайных эффектов в модели линейных смешанных эффектов lme и соответствующие статистические данные.

пример

[B,Bnames,stats] = randomEffects(lme,Name,Value) также возвращает BLUP случайных эффектов в модели линейных смешанных эффектов lme и связанная статистика с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

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

расширить все

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

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

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

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

Для примера для 99% интервалов доверия можно задать уровень доверия следующим образом.

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

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

Метод для вычисления приблизительных степеней свободы для t -statistics, которые проверяют коэффициенты случайных эффектов против 0, заданный как разделенная разделенными запятой парами, состоящая из 'DFMethod' и одно из следующих.

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

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

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

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

расширить все

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

Предположим lme имеет R сгруппированные переменные g1, g2..., g R, с уровнями <reservedrangesplaceholder9> 1, <reservedrangesplaceholder8> 2..., <reservedrangesplaceholder7> <reservedrangesplaceholder6>, соответственно. Также предположим, что q 1, q 2,..., q R являются длинами векторов со случайными эффектами, которые связаны с g1, g2,..., g R, соответственно. Затем, B вектор - столбец длины <reservedrangesplaceholder7> 1* <reservedrangesplaceholder6> 1 + <reservedrangesplaceholder5> 2* <reservedrangesplaceholder4> 2 +... + <reservedrangesplaceholder3> <reservedrangesplaceholder2> * <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

randomEffects создает B путем конкатенирования лучших линейных объективных предикторов векторов случайных эффектов, соответствующих каждому уровню каждой сгруппированной переменной как [g1level1; g1level2; ...; g1levelm1; g2level1; g2level2; ...; g2levelm2; ...; gRlevel1; gRlevel2; ...; gRlevelmR]'.

Имена коэффициентов случайных эффектов в B, возвращается как таблица.

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

GroupСгруппированная переменная, связанной со случайным эффектом
LevelУровень внутри сгруппированной переменной, соответствующий случайному эффекту
NameИмя коэффициента случайного эффекта
EstimateЛучший линейный объективный предиктор (BLUP) случайного эффекта
SEPredСтандартная ошибка оценки (BLUP минус случайный эффект)
tStatt -статистический для теста, что случайный эффект равен нулю
DFПредполагаемые степени свободы для t -статистического
pValuep -value для t -statistic
LowerНижний предел интервала доверия 95% для случайного эффекта
UpperВерхний предел интервала доверия 95% для случайного эффекта

Примеры

расширить все

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

load carbig

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

tbl = table(Acceleration,Horsepower,Model_Year,MPG);

Подгонка модели.

lme = fitlme(tbl, 'MPG ~ Acceleration + Horsepower + (Acceleration|Model_Year)');

Вычислите BLUP коэффициентов случайных эффектов и отобразите имена соответствующих случайных эффектов.

[B,Bnames] = randomEffects(lme)
B = 26×1

    3.1270
   -0.2426
   -1.6532
   -0.0086
    1.2075
   -0.2179
    4.4107
   -0.4887
   -1.3103
   -0.0208
      ⋮

Bnames=26×3 table
        Group         Level           Name      
    ______________    ______    ________________

    {'Model_Year'}    {'70'}    {'(Intercept)' }
    {'Model_Year'}    {'70'}    {'Acceleration'}
    {'Model_Year'}    {'71'}    {'(Intercept)' }
    {'Model_Year'}    {'71'}    {'Acceleration'}
    {'Model_Year'}    {'72'}    {'(Intercept)' }
    {'Model_Year'}    {'72'}    {'Acceleration'}
    {'Model_Year'}    {'73'}    {'(Intercept)' }
    {'Model_Year'}    {'73'}    {'Acceleration'}
    {'Model_Year'}    {'74'}    {'(Intercept)' }
    {'Model_Year'}    {'74'}    {'Acceleration'}
    {'Model_Year'}    {'75'}    {'(Intercept)' }
    {'Model_Year'}    {'75'}    {'Acceleration'}
    {'Model_Year'}    {'76'}    {'(Intercept)' }
    {'Model_Year'}    {'76'}    {'Acceleration'}
    {'Model_Year'}    {'77'}    {'(Intercept)' }
    {'Model_Year'}    {'77'}    {'Acceleration'}
      ⋮

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

Вычислите ковариационные параметры случайных эффектов.

[~,~,stats] = covarianceParameters(lme)
stats=2×1 cell array
    {3x7 classreg.regr.lmeutils.titleddataset}
    {1x5 classreg.regr.lmeutils.titleddataset}

stats{1}
ans = 
    Covariance Type: FullCholesky

    Group         Name1                   Name2                   Type        
    Model_Year    {'(Intercept)' }        {'(Intercept)' }        {'std' }    
    Model_Year    {'Acceleration'}        {'(Intercept)' }        {'corr'}    
    Model_Year    {'Acceleration'}        {'Acceleration'}        {'std' }    


    Estimate    Lower       Upper   
      3.3475      1.2862      8.7119
    -0.87971    -0.98501    -0.29675
     0.33789      0.1825     0.62558

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

plot(B(1:2:end),B(2:2:end),'r*')

Figure contains an axes. The axes contains an object of type line.

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

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 являются переменными фиксированных эффектов, и среднее выражение изменяется в зависимости от блока (тип почвы), и графики внутри блоков (типы томатов в пределах типов почвы) независимо.

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

Вычислите BLUP и связанную статистику для случайных эффектов.

[~,~,stats] = randomEffects(lme)
stats = 
    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.05

    Group                  Level                     Name               
    {'Soil'       }        {'Loamy'         }        {'(Intercept)'}    
    {'Soil'       }        {'Sandy'         }        {'(Intercept)'}    
    {'Soil'       }        {'Silty'         }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Vine'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Vine'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Vine'    }        {'(Intercept)'}    


    Estimate    SEPred    tStat       DF    pValue      Lower      Upper  
     1.0061     2.3374     0.43044    40     0.66918     -3.718     5.7303
    -1.5236     2.3374    -0.65181    40     0.51825    -6.2477     3.2006
    0.51744     2.3374     0.22137    40     0.82593    -4.2067     5.2416
      12.46     7.1765      1.7362    40    0.090224    -2.0443     26.964
    -2.6429     7.1765    -0.36827    40     0.71461    -17.147     11.861
     16.681     7.1765      2.3244    40    0.025269     2.1766     31.185
    -5.0172     7.1765    -0.69911    40     0.48853    -19.522     9.4872
    -4.6874     7.1765    -0.65316    40     0.51739    -19.192     9.8169
    -17.393     7.1765     -2.4235    40    0.019987    -31.897    -2.8882
    -7.3679     7.1765     -1.0267    40     0.31075    -21.872     7.1364
     -8.621     7.1765     -1.2013    40     0.23671    -23.125     5.8833
      7.669     7.1765      1.0686    40     0.29165    -6.8353     22.173
    0.28246     7.1765    0.039359    40      0.9688    -14.222     14.787
     4.9326     7.1765     0.68732    40     0.49585    -9.5718     19.437
     10.011     7.1765      1.3949    40     0.17073    -4.4935     24.515
    -8.0599     7.1765     -1.1231    40      0.2681    -22.564     6.4444
    -2.6519     7.1765    -0.36952    40     0.71369    -17.156     11.852
      4.405     7.1765      0.6138    40     0.54282    -10.099     18.909

Первые три строки содержат оценки случайных эффектов и статистику для трех уровней Loamy, Sandy, и Silty сгруппированной переменной Soil. Передача pЗначения 0.66918, 0.51825 и 0.82593 указывают, что эти случайные эффекты существенно не отличаются от 0. Следующие 15 строк включают BLUPS оценок случайных эффектов для точки пересечения, сгруппированных по переменной Tomato, вложенной в Почву, т.е. взаимодействие Tomato и Soil.

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

load shift

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

lme = fitlme(shift,'QCDev ~ Shift + (1|Operator)');

Вычислите 99% доверительные интервалы для случайных эффектов с помощью опции невязок, чтобы вычислить степени свободы. Это метод по умолчанию.

[~,~,stats] = randomEffects(lme,'Alpha',0.01)
stats = 
    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.01

    Group               Level        Name                   Estimate    SEPred 
    {'Operator'}        {'1'}        {'(Intercept)'}        0.57753     0.90378
    {'Operator'}        {'2'}        {'(Intercept)'}         1.1757     0.90378
    {'Operator'}        {'3'}        {'(Intercept)'}        -2.1715     0.90378
    {'Operator'}        {'4'}        {'(Intercept)'}         2.3655     0.90378
    {'Operator'}        {'5'}        {'(Intercept)'}        -1.9472     0.90378


    tStat      DF    pValue      Lower       Upper  
    0.63902    12     0.53482     -2.1831     3.3382
     1.3009    12     0.21772     -1.5849     3.9364
    -2.4027    12    0.033352     -4.9322    0.58909
     2.6174    12    0.022494    -0.39511     5.1261
    -2.1546    12    0.052216     -4.7079    0.81337

Вычислите 99% доверительные интервалы для случайных эффектов, используя саттертвейтское приближение, чтобы вычислить степени свободы.

[~,~,stats] = randomEffects(lme,'DFMethod','satterthwaite','Alpha',0.01)
stats = 
    Random effect coefficients: DFMethod = 'Satterthwaite', Alpha = 0.01

    Group               Level        Name                   Estimate    SEPred 
    {'Operator'}        {'1'}        {'(Intercept)'}        0.57753     0.90378
    {'Operator'}        {'2'}        {'(Intercept)'}         1.1757     0.90378
    {'Operator'}        {'3'}        {'(Intercept)'}        -2.1715     0.90378
    {'Operator'}        {'4'}        {'(Intercept)'}         2.3655     0.90378
    {'Operator'}        {'5'}        {'(Intercept)'}        -1.9472     0.90378


    tStat      DF        pValue      Lower       Upper 
    0.63902    6.4253      0.5449      -2.684     3.839
     1.3009    6.4253     0.23799     -2.0858    4.4372
    -2.4027    6.4253    0.050386      -5.433      1.09
     2.6174    6.4253    0.037302    -0.89598     5.627
    -2.1546    6.4253    0.071626     -5.2087    1.3142

Саттертвейтский метод обычно производит меньшие значения для степеней свободы (DF), что приводит к большим значениям p (pValue) и большие доверительные интервалы (Lower и Upper) для оценок случайных эффектов.