Emmeans не дает мне правильных скорректированных средств из модели

#r #emmeans

Вопрос:

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

ggplot

Расчетное скорректированное среднее значение, по-видимому, слишком велико для курса А и слишком мало для курса С. В моей линейной регрессии со смешанным эффектом я предсказываю посттест с предварительным тестом как ковариацию, а также основной эффект и взаимодействие группы и курса. Поскольку я проводил повторные измерения на Курсе и в разных условиях тестирования, я включил случайный перехват для курса и школы. Используя emmeans, я получаю следующие оценки:

 # model fit
CI_post <- lmer(
  post.diff ~ 
    pre.diff  
    group * course 
    (1|bib) 
    (1|school), 
  data = dat, 
  REML = FALSE)

#estimated adjusted means
emmeans(CI_post, specs = c("course", "group"),lmer.df = "satterthwaite")

# Results
 course group       emmean    SE   df lower.CL upper.CL
 A      blocked      0.311 0.191 6.65  -0.1452    0.768
 B      blocked      0.649 0.180 5.38   0.1954    1.102
 C      blocked      1.141 0.195 7.28   0.6847    1.598
 A      interleaved  0.189 0.194 7.15  -0.2666    0.645
 B      interleaved  0.497 0.179 5.31   0.0451    0.949
 C      interleaved  1.046 0.191 6.72   0.5907    1.502

 

Именно эти значения я построил и считаю неправильными. Может ли кто-нибудь, пожалуйста, помочь мне, чтобы я получил правильные расчетные скорректированные средства?

Прочитав это, я подозреваю, что ошибка заключается в том, что pre.diff является фиксированным значением?

 ref_grid(CI_post)

#result
'emmGrid' object with variables:
    pre.diff = 1.5065
    group = blocked, interleaved
    course = A, B, C

 

Редактировать
Следуя длинному совету, я попытался:
post.diff.adj = post.diff b * (1.506 — pre.diff), что дало мне следующую цифру:

отрегулированный

Это выглядит лучше и правильнее. Я использовал коэффициент регрессии модели из своей модели:

 Fixed effects:
                          Estimate Std. Error        df t value             Pr(>|t|)    
(Intercept)               -0.66087    0.18158   5.58701  -3.639             0.012280 *  
pre.diff                   0.64544    0.06178 130.60667  10.448 < 0.0000000000000002 ***
groupinterleaved          -0.12209    0.15189  65.38709  -0.804             0.424431    
courseB                    0.33714    0.09703 131.63603   3.475             0.000693 ***
courseC                    0.82993    0.16318 151.09201   5.086           0.00000107 ***
groupinterleaved:courseB  -0.02922    0.11777 101.47596  -0.248             0.804563    
groupinterleaved:courseC   0.02692    0.11763 100.29319   0.229             0.819435 

 

Затем я использовал его в своем тиббле:

 
dat <- dat %>%
  mutate(adjustedMean = (post.diff)   (0.6454358 * (1.506 - pre.diff)))
 

Затем я построил его с помощью ggplot:

 CI_post_plot <- ggplot(dat, aes(x = interaction(group, course), y = adjustedMean))  
  geom_point(aes(color=group), size=1.5, position=position_jitter(width=0.1), alpha=0.7) 
  scale_y_continuous(name = "Time substracted from straight gliding time (sec.)", breaks = seq(-2, 6, 1))  
  theme_pubr() 
  theme(legend.position="none",
        axis.title.x=element_blank())  
  geom_hline(aes(yintercept=0), linetype = "dashed", size=0.2)   
  scale_x_discrete(labels = c("BlockednCourse A", "InterleavednCourse A", "BlockednCourse B", "InterleavednCourse B", "BlockednCourse C",  "InterleavednCourse C")) 

CI_post_plot <- CI_post_plot   
  geom_point(data = estmarg_mean, aes(x=interaction(group, course), y=emmean, group=group), size=2.5)  
  geom_errorbar(data = estmarg_mean, aes(x= interaction(group, course), y = emmean, ymin = lower.CL,ymax = upper.CL), width=0.1)


 

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

Комментарии:

1. То, что они не соответствуют наблюдаемым средствам, не означает, что они неверны. У вас есть ковариата pre.diff в модели, и EMM используют прогнозы в среднем по этой ковариате (около 1,5). Если на самом деле pre.diff это связано с факторами, это может иметь большое влияние на EMMS.

2. Ваше здоровье. Тогда это лучший способ сделать это или есть лучший подход?

3. Я бы сказал, что если статистическая цель получения скорректированных средних верна, то это хороший способ их получить. Но на графике показаны нескорректированные данные с скорректированными средними значениями. Я думаю , что, возможно, вы могли бы создать скорректированные значения отклика с помощью post.diff.adj = b * (1.506 - pre.diff) , где b коэффициенты регрессии pre.diff из подогнанной модели. Это вычитает оцененные ковариационные эффекты и добавляет ковариационный эффект при среднем значении до различия.

4. PS если вы попробуете это, мне было бы интересно посмотреть пересмотренный сюжет; возможно, вы могли бы добавить его в свой пост.

5. Здорово. Я предлагаю добавить «Скорректировано» к метке оси y во втором

Ответ №1:

Просматривая некоторые комментарии, второй график в ОП показывает скорректированные значения отклика и скорректированные средние значения (он же EMMS). Интуиция для этого показана в этом приблизительном наброске: диаграмма ковариации-корректировкиВ большинстве текстов по экспериментальному проектированию будет показана аналогичная картина того, как определяются скорректированные средства: модель соответствует параллельным линиям для каждой обработки; эти линии проходят через центры соответствующих облаков данных. Скорректированные средние — это оценки по среднему значению ковариаты.

Чтобы получить скорректированные данные, мы делаем то же самое с каждой точкой данных; показано несколько репрезентативных точек. Скорректированные данные представляют собой проекции каждой точки данных на среднюю линию, причем проекции идут по траекториям, параллельным линиям регрессии.

Несколько лет назад в «Американском статистике» была статья о «выровненных данных», и это сродни этому. Я не помню автора и не нашел его в быстром поиске. Это также связано с графиками «компонент плюс остаточный», обсуждаемыми в некоторых текстах регрессии. Основная идея состоит в том, чтобы удалить оцененные эффекты переменных помех из данных или, что эквивалентно, получить остатки модели и добавить эффекты, не вызывающие помех.