Происхождение обозначений в стиле Уилкинсона, таких как (1 | id) для случайных эффектов в формулах смешанных моделей в R

16

Модельные формулы в R, такие как

y ~ x + a*b + c:d

основаны на так называемой записи Уилкинсона : Уилкинсон и Роджерс 1973, Символическое описание факторных моделей для анализа отклонений .

В этой статье не обсуждались нотации для смешанных моделей (которых тогда не могло быть). Так, где же смешанные модельные формулы, используемые в lme4и связанных пакетах в R, таких как

y ~ x + a*b + c:d + (1|school) + (a*b||town)

родом из? Кто представил их впервые и когда? Есть ли какой-либо согласованный термин, такой как «нотация Уилкинсона» для них? Я имею в виду такие термины, как

(model formula |  grouping variable)
(model formula || grouping variable)
амеба говорит восстановить монику
источник

Ответы:

11

Обозначения |были в nlmeдокументах начиная с версии 3.1-1, и это, вероятно, в конце 1999 года; мы можем легко проверить это в архиве кода CRAN nlme . nlmeиспользует ли это обозначение, например try library(nlme); formula(Orthodont); |приходит - так 2000 - выключено. Итак, давайте копать .... " Графические методы для данных с несколькими уровнями вложенности " Pinheiro & Bates (1997), где представлен groupedDataконструктор. И они говорят: « Формула в сгруппированном объекте данных имеет тот же шаблон, что и формула, используемая при вызове графической функции Треллиса в S-PLUS, такой как xyplot », которая… имеет смысл, так же как и P & B. .. Bell Labs (RIP), которая разработала графическую систему Trellis, которая фактически использовала оператора|уже указывать группы. Что, вероятно, означает ... « Визуальное проектирование и управление дисплеем Trellis » Becker et al. (1996) как-то связано с этим. Обозначения в этой статье не вводятся, но это первая электронная справочная информация о дисплеях Trellis, которую я могу найти.

По сути, нам нужно выкопать визуализацию литературы на данный момент. Возможно, я бы проверил книгу Кливленда « Визуализация данных» (1993) и ранние работы Дипаяна Саркара (который разработал lattice). Обратите внимание, что фактические операторы |||) являются настоящими примитивными операторами, так как они связаны с ORоператорами, так что это был лишь вопрос времени, когда кто-то их перегружает. Хотя это и не полный ответ, я сильно подозреваю, что P & B проверила классную систему визуализации своих коллег (сюжеты этой статьи 1996 года вполне соответствуют стандартам конца 2010 года) и поняла, что кто-то (Беккер, Кливленд и Шью) уже поработал над этим (возможно, даже обсуждал это с ними в то время) и просто продолжил то, что уже было. То есть|Оператор происходит в графической нотации. Треллис почти наверняка использовал это; потенциальные предшественники Trellis, возможно, сделали то же самое, но их электронный след очень трудно отследить.

В общем, я думаю, что вам может понадобиться эта страница на NLME: Программное обеспечение для моделей со смешанными эффектами от Bell Labs для получения дополнительной исторической информации nlme.

usεr11852 говорит восстановить Monic
источник
1
Большое спасибо! Это правда, что nlmeиспользует, |но я не думаю, что оно использует ()для обозначения случайных эффектов, верно? Случайные эффекты перечислены в качестве отдельного аргумента для вызова функции. Было ли lme4это введено (x|id)как часть той же формулы?
говорит амеба: восстанови Монику
2
Я думаю, что вы читаете слишком много в присутствии скобок; Я сильно подозреваю, что они существуют в целях анализа, так как lme4использует унифицированный синтаксис для всех терминов. Например, fm1 <- lmer(Reaction ~ Days | Subject, sleepstudy)прекрасно работает без скобок.
usεr11852 говорит восстановить Monic
Ой. В самом деле. Никогда не думал об этом таким образом :)
амеба говорит Восстановить Монику
Бейтс только что подтвердил, что случайная часть была введена авторами nlme (из которых он один): twitter.com/BatesDmbates/status/1111283948615802881
Jonas Lindeløv
@ JonasLindeløv: Круто! Спасибо, что поделились, завтра вечером сделаю ссылку на ответ.
usεr11852 говорит восстановить Monic