интерпретировать предполагаемые предельные значения (emmans aka lsmeans): отрицательные значения ответа - PullRequest
0 голосов
/ 08 марта 2019

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

df <- structure(list(treatment = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L), .Label = c("CCF", "UN"), class = "factor"), level = structure(c(2L, 
3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 
4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 
2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 
3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 
4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 
2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L, 2L, 
3L, 4L, 2L, 3L, 4L, 2L, 3L, 4L), .Label = c("A", "F", "H", "L"
), class = "factor"), random = structure(c(3L, 3L, 3L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 4L, 
4L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L), .Label = c("1.6", "2", "3.2", "5", NA), class = "factor"), 
    continuous = c(72.7951770264767, 149.373765810534, 1.64153094886205, 
    54.6697408615215, 25.5801835808851, 1.45794117443253, 25.3660934894788, 
    91.2321704897132, 2.75353217433675, 44.1995276851725, 33.1854545470435, 
    5.36536076058866, 29.6807620242672, 80.6077496067764, 0.833434180091457, 
    13.6789475327185, 77.4930412025109, 3.65998714174906, 25.2848344605563, 
    136.632099849828, 2.56715261161435, 28.6733878840584, 66.800616194317, 
    1.37475468782539, 23.007491380183, 84.980285774607, 1.13569710795522, 
    33.8610875632139, 56.1234827517798, 1.32327007970416, 60.0843812879313, 
    43.4487832450889, 1.14942423621912, 53.6673704529947, 146.746167255051, 
    3.91593723271292, 27.0321687961004, 89.5925729244878, 1.47707078226047, 
    44.0523211310831, 115.087908243373, 1.94039630728038, 86.4074806697431, 
    43.3266206881612, 2.81456503996437, 66.868588961071, 229.797526052566, 
    1.07971524769264, 30.3390107111747, 116.680801084036, 1.67711446647817, 
    69.0961010697534, 78.5454363192614, 1.92137892126384, 53.5708546850303, 
    37.7175476710608, 1.96087397451467, 25.5166981770257, 37.3755071788757, 
    2.21602000526086, 10.3266195584378, 38.1458490762217, 2.7508022340832, 
    44.5864920143771, 8.45382647692274, 2.63204944520792, 87.5376946978593, 
    27.2354119098268, 3.38134648323956, 26.8815471706502, 14.5539972194568, 
    2.0556994322415, 27.4619977737491, 32.8546665896602, 2.66809379088059, 
    42.3815445857533, 21.3359802201685, 2.19167325121191, 53.3189825439001, 
    13.5708790223439, 2.22274607227071, 88.297423835906, 8.50554349658773, 
    3.5764241495006, 29.284865737912, 21.1213079519954, 2.3070166819956, 
    10.7659615128225, 33.4813413290485, 2.49896565066211, 59.0935696616465, 
    13.2863515051715, 4.36424795471221, 72.1627847396763, 9.09326343200557, 
    2.13701784901259, 27.5824079679471, 8.84486812842272, 1.98293342019671, 
    17.5321126287485, 19.1806349705231, 5.03952187899644, 58.3473975730234, 
    9.17287686145614, 2.99575072457674)), class = "data.frame", row.names = c(NA, 
105L))

Это моя модель:

library(lme4)
    model <- lmer((continuous) ~  treatment + level + (1|random), data= df, REML = TRUE)

Данные как таковые не соответствуют предположениям модели, но все же мне интересно, почему я получаю отрицательный результатоценочное среднее значение (ответ) на лечение "UN", уровень "L" (см. таблицу lettering), когда у меня нет отрицательных чисел в df$continuous?

library(multcompView)
library(emmeans)
lsm.mixed_C <- emmeans::emmeans(my_model,pairwise ~  treatment * level, type="response")
lettering <- CLD(lsm.mixed_C,alpha=0.05,Letters=letters,
                         adjust= "tukey")

1 Ответ

1 голос
/ 08 марта 2019

Короткий ответ: вам крайне необходимо включить взаимодействие в вашу модель.Сравните:

model2 <- lmer((continuous) ~  treatment * level + (1|random), 
               data= df, REML = TRUE)
emmip(model2, treatment ~ level)

enter image description here

с:

emmip(model, treatment ~ level)

enter image description here

В model2 оба EMM на уровне L близки к нулю.Если вы удалите взаимодействие из модели, вы заставите эти два профиля быть параллельными, сохраняя при этом значительную положительную разницу между обработками CCF и UN, заставляя оценку для UN стать отрицательной.В действительности все шесть оценок для комбинаций treatment x level серьезно искажены.

Я не могу это повторить.emmeans() суммирует модель .Если вы дадите ему плохую модель, вы получите глупые результаты.Спасибо за отличную иллюстрацию этого пункта.

...