Как рассчитывается SE в пакете emmeans в R - PullRequest
0 голосов
/ 25 января 2019

Я заинтересован в расчете SE для модели микса. Для этого сначала я поэкспериментирую с одним из наборов данных, включенных в пакет, в более простой модели.

pigs$percent <- as.factor(pigs$percent)
Doc_lm_1 <- lm(conc~percent, pigs) 
summary(Doc_lm_1)
emmeans(Doc_lm_1, pairwise~percent)$emmeans

Выход:

percent emmean   SE df lower.CL upper.CL
9         32.7 2.92 25     26.7     38.7
12        38.0 2.76 25     32.3     43.7
15        40.1 3.12 25     33.7     46.6
18        39.9 3.70 25     32.3     47.6

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

Может быть, SE это SE параметра? Как мы видим из таблицы, SE разбиваются между группами, когда данные не сбалансированы. Я основываю свою гипотезу на том факте, что на веб-сайте проекта крана пакета указывается (https://cran.r -project.org / web / packages / emmeans / vignettes / basics.html # backstory ):

Расчетные предельные средние значения основаны на модели, а не на данных "

Итак, я спрашивал меня, как рассчитывается SE? и как добавление случайного фактора изменит этот расчет? Заранее спасибо.

1 Ответ

0 голосов
/ 28 января 2019

Чтобы ответить на конкретный вопрос, посмотрите на сводные результаты:

> summary(Doc_lm_1)
... several lines skipped ...
Residual standard error: 8.267 on 25 degrees of freedom
Multiple R-squared:  0.134, Adjusted R-squared:  0.03011 
F-statistic:  1.29 on 3 and 25 DF,  p-value: 0.2997

... из которых мы можем сказать, что остаточное SD из модели - 8,267.Кроме того, нам нужно количество наблюдений на каждом уровне фактора:

> with(pigs, tapply(conc, percent, length))
 9 12 15 18 
 8  9  7  5 

Поскольку SE среднего значения представляет собой SD, деленное на квадратный корень из размера выборки, рассчитайте:

> 8.267 / sqrt(c(8,9,7,5))
[1] 2.922826 2.755667 3.124632 3.697115

И вот, они соответствуют SE, показанным в выводе emmeans().Как указано в вопросе, emmeans() использует модель , и показанная модель основана на предположении, что все четыре образца имеют одинаковое SD, и оценка этого общего SD составляет 8,267 с 25 градусами.свободы.Ручные расчеты, основанные на одной выборке за раз, используют отдельные SD, и это модель, отличная от той, которая была передана emmeans();вот почему результаты разные.

Что касается общего вопроса о том, как emmeans() вычисляет SE, в нем не используются формулы ручного расчета.Он использует тот факт, что EMM являются линейными комбинациями коэффициентов регрессии.Он выясняет, какие комбинации необходимы, затем использует матричные вычисления, включающие коэффициенты регрессии из coef(), и матрицу дисперсии-ковариации этих коэффициентов vcov(), чтобы получить EMM и их стандартные ошибки.Для моделей, включающих более одного фактора, случайные эффекты и т. Д., Эти расчеты практически невозможно воспроизвести вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...