Pochodzenie notacji w stylu Wilkinsona, takiej jak (1 | id) dla efektów losowych w formułach modeli mieszanych w R

16

Wzory modelowe w R, takie jak

y ~ x + a*b + c:d

oparte są na tak zwanej notacji Wilkinsona : Wilkinson i Rogers 1973, Symboliczny opis modeli czynnikowych do analizy wariancji .

Ten artykuł nie omawiał notacji dla modeli mieszanych (które mogły wtedy nie istnieć). Skąd więc wzięły się formuły modelu mieszanego używane w lme4pokrewnych pakietach w R, takie jak

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

pochodzić z? Kto i kiedy przedstawił je po raz pierwszy? Czy istnieje dla nich jakikolwiek uzgodniony termin, taki jak „notacja Wilkinsona”? Mam na myśli szczególnie takie terminy

(model formula |  grouping variable)
(model formula || grouping variable)
ameba mówi Przywróć Monikę
źródło

Odpowiedzi:

11

Notacja |jest dostępna w nlmedokumentach od wersji 3.1-1 i prawdopodobnie pod koniec 1999 roku; możemy to łatwo sprawdzić w archiwum kodu CRAN nlme . nlmeużywa tej notacji, na przykład try library(nlme); formula(Orthodont); |podchodzi - tak 2000 są wyłączone. Skopmy więc .... „ Graficzne metody danych z wieloma poziomami zagnieżdżania ” Pinheiro i Bates (1997), w których wprowadzono groupedDatakonstruktora. I mówią: „ Formuła w zgrupowanym obiekcie danych ma ten sam wzorzec, co formuła używana w wywołaniu funkcji graficznej Trellis w S-PLUS, takiej jak xyplot ”. Co… ma sens, ponieważ P&B działa. .. Bell Labs (RIP), który opracował system graficzny Trellis, który faktycznie wykorzystywał operatora|już wskazać grupy. Co prawdopodobnie oznacza ... „ Projekt wizualny i sterowanie wyświetlaniem kratki ” Beckera i in. (1996) ma z tym coś wspólnego. Notacja nie została wprowadzona w tym artykule, ale jest to pierwsza elektroniczna referencja wyświetlania krat, jaką mogę znaleźć.

Zasadniczo musimy w tym miejscu wykopać literaturę dotyczącą wizualizacji. Prawdopodobnie sprawdziłbym książkę Cleveland Visualizing Data (1993) i wczesne prace Deepayana Sarkara (który opracował lattice). Zauważ, że rzeczywisty operator | (i ||) są prawdziwymi prymitywnymi operatorami, ponieważ są one powiązane z ORoperatorami, więc kwestią czasu było, aż ktoś je przeładuje. Chociaż nie jest to pełna odpowiedź, mocno podejrzewam, że P&B sprawdził fajny system wizualizacji swoich kolegów (wykresy w tym artykule z 1996 roku są całkiem dobre dla standardów z końca 2010 roku) i zdał sobie sprawę, że ktoś (Becker, Cleveland i Shyu) już nad tym pracował (może nawet omawiali to z nimi w tym czasie) i po prostu śledzili to, co już tam było. Tj|operator pochodzi z zapisu graficznego. Trellis prawie na pewno go użył; potencjalni poprzednicy Trellis również mogli to zrobić, ale ich ślad elektroniczny jest bardzo trudny do wyśledzenia.

Ogólnie rzecz biorąc, myślę, że możesz potrzebować tej strony na NLME: Oprogramowanie do modeli z efektami mieszanymi firmy Bell Labs, aby uzyskać więcej informacji historycznych nlme.

usεr11852 mówi Reinstate Monic
źródło
1
Wielkie dzięki! To prawda, że nlmeużywa, |ale nie sądzę, że używa ()do oznaczania efektów losowych, prawda? Losowe efekty są wymienione jako osobny argument dla wywołania funkcji. Czy to zostało lme4wprowadzone (x|id)jako część tej samej formuły?
ameba mówi Przywróć Monikę
2
Myślę, że trochę za dużo czytasz w nawiasy; Podejrzewam, że istnieją one dla celów analizy, ponieważ lme4używa ujednoliconej składni dla wszystkich terminów. Na przykład fm1 <- lmer(Reaction ~ Days | Subject, sleepstudy)działa dobrze bez nawiasów.
usεr11852 mówi: Przywróć Monic
O. W rzeczy samej. Nigdy o tym nie myślałem :)
amoeba mówi Przywróć Monikę
Bates właśnie potwierdził, że część losowa została wprowadzona przez autorów nlme (których jest jednym z nich): twitter.com/BatesDmbates/status/1111283948615802881
Jonas Lindeløv
@ JonasLindeløv: Cool! Dzięki za udostępnienie, jutro wieczorem zrobię link do odpowiedzi.
usεr11852 mówi: Przywróć Monic