Построение графика взаимодействия с доверительными интервалами из модели lme4 или LmerTest в R

Используя dat (найденный здесь), я запустить следующую модель:

library(lmerTest)

model <- lmerTest::lmer(eval ~ post + ess + post*ess + (1|ID), data = dat)

Вывод summary(model) указывает на то, что термин взаимодействия является значимым:

Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: eval ~ post + ess + ess * post + (1 | ID)
   Data: dat

REML criterion at convergence: 163.4

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-1.95714 -0.48596  0.00623  0.49208  1.82729 

Random effects:
 Groups   Name        Variance Std.Dev.
 ID       (Intercept) 0.33344  0.5774  
 Residual             0.02944  0.1716  
Number of obs: 170, groups:  ID, 85

Fixed effects:
            Estimate Std. Error       df t value             Pr(>|t|)    
(Intercept)  1.50194    0.09082 90.00645  16.538 < 0.0000000000000002 ***
post        -0.24537    0.03658 83.00000  -6.707        0.00000000226 ***
ess          0.15444    0.13076 90.00645   1.181              0.24067    
post:ess     0.15620    0.05267 83.00000   2.965              0.00395 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
         (Intr) post   ess   
post     -0.201              
ess      -0.695  0.140       
post:ess  0.140 -0.695 -0.201

Но когда я пытаюсь построить взаимодействие, используя sjPlot, используя 95% доверительные интервалы, полученные интервалы вообще не делают взаимодействие значимым...

library(sjPlot)
library(TMB)

plot_model(model, type="int", ci.lvl=0.95)

введите здесь описание изображения

Мои два вопроса:

  1. Почему кажется, что оценки и нанесенные на график результаты рассказывают разные истории?
  2. Как я могу извлечь доверительные интервалы для коэффициентов из модели, чтобы создать свой собственный график вместо использования plot_model()? Я хотел бы сделать гистограмму, чтобы проиллюстрировать взаимодействие, потому что переменные ess и post являются двоичными.

Примечание. Я рад использовать lme4 - должен получить тот же результат, просто не так очевидно, какие коэффициенты имеют значение при суммировании объектов lme4, и я хотел, чтобы вопрос был очень ясным.


person J.Q    schedule 15.03.2021    source источник


Ответы (1)


Отвечу на ваши вопросы в обратном порядке:

  1. Функция plot_model() вызывает функции из пакета ggeffects. В частности, ggpredict() выполняет большую часть работы. Если вы перейдете по следующему URL-адресу, вы найдете много информации о том, как изменить графики эффектов и получить всевозможную информацию из подобранной модели.

https://cran.r-project.org/web/packages/ggeffects/vignettes/ggeffects.html

  1. Я не совсем согласен с тем, что взаимодействие не выглядит значительным. Доверительный интервал не перекрывается со средним значением других категорий для большей части графика. Однако это может не иметь значения, поскольку в настоящее время вы рисуете категориальные данные таким образом, что они выглядят непрерывными. Это не меняет того, как модель помещается под капот, но меняет поведение sjPlot по умолчанию. Я подогнал модель, которую вы указали, с факторами и построил ее так, как я думаю, она должна быть построена ниже. Я не думаю, что это сильно меняет сюжет, но может изменить вашу интерпретацию. Разница, показанная здесь на этом графике, согласуется с выходными данными сводки модели и может быть сформулирована следующим образом: разница между двумя уровнями post не одинакова, когда ess равен 0 по сравнению с 1. Также посмотрите, как ДИ две категории ess перекрываются со средним значением, когда post равно 0, но они значительно различаются, когда post равно 1.

Дайте мне знать, если что-то из этого требует дальнейших разъяснений.

введите здесь описание изображения

person sjp    schedule 16.03.2021
comment
Спасибо - скажем по-другому, даже в эквиваленте гистограммы (то, что я пытаюсь сделать), где высота столбцов равна post - pre, где ess = 0, а затем ess = 1 должны показывать неперекрывающиеся доверительные интервалы. Для того чтобы средние значения существенно различались, доверительные интервалы самих оценочных средних (а не только интервал одной группы по сравнению с точечной оценкой для другой) не должны перекрываться хотя бы в какой-то точке. Возможно, доверительные интервалы для оценочных средних разностей отличаются от оценочных средних, и сейчас я рисую последнее, когда мне действительно нужно первое? - person J.Q; 23.03.2021
comment
Я не считаю, что доверительные интервалы не должны перекрываться. Им просто нужно не пересекаться с условным средним значением другой категории. - person sjp; 24.03.2021