Der Ursprung der Wilkinson-Notation wie (1 | id) für zufällige Effekte in gemischten Modellformeln in R

16

Modellformeln in R wie

y ~ x + a*b + c:d

basieren auf der sogenannten Wilkinson-Notation : Wilkinson und Rogers 1973, Symbolische Beschreibung faktorieller Modelle zur Varianzanalyse .

In diesem Artikel wurden keine Notationen für gemischte Modelle erörtert (die damals möglicherweise noch nicht existierten). Woher kamen also die lme4in R verwendeten gemischten Modellformeln und verwandte Pakete wie

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

komme aus? Wer hat sie zum ersten Mal vorgestellt und wann? Gibt es für sie einen vereinbarten Begriff wie "Wilkinson-Notation"? Ich beziehe mich ausdrücklich auf die Begriffe wie

(model formula |  grouping variable)
(model formula || grouping variable)
Amöbe sagt Reinstate Monica
quelle

Antworten:

11

Die Notation |gibt es in der nlmeDokumentation seit Version 3.1-1 und das ist wahrscheinlich Ende 1999; wir können das auf CRAN nlme Code-Archiv leicht überprüfen . nlmeverwendet diese Notation zum Beispiel try library(nlme); formula(Orthodont); Das |kommt - also sind die 2000er weg. Also lasst uns graben ... " Graphische Methoden für Daten mit mehreren Verschachtelungsebenen " Pinheiro & Bates (1997), wo der groupedDataKonstruktor vorgestellt wird. Und sie sagen: " Die Formel in einem gruppierten Datenobjekt hat dasselbe Muster wie die Formel, die in einem Aufruf einer Trellis-Grafikfunktion in S-PLUS verwendet wird, z . .. Bell Labs (RIP), die das Trellis-Grafiksystem entwickelten, das den Operator tatsächlich verwendete|bereits Gruppen anzugeben. Was wahrscheinlich bedeutet ... " Das visuelle Design und die Steuerung der Trellis-Anzeige " von Becker et al. (1996) hat damit etwas zu tun. Notation wird in diesem Artikel nicht vorgestellt, aber es ist die erste elektronische Trellis-Referenz, die ich finden kann.

Im Wesentlichen müssen wir an dieser Stelle Visualisierungsliteratur ausgraben. Wahrscheinlich würde ich Clevelands Buch Visualizing Data (1993) und frühe Arbeiten von Deepayan Sarkar (der sich entwickelt hat lattice) überprüfen . Beachten Sie, dass die tatsächlichen Operatoren | (und ||) echte primitive Operatoren sind, da sie mit OROperatoren verknüpft sind. Es war also nur eine Frage der Zeit, bis sie von jemandem überladen wurden. Ich vermute, dass P & B das coole Visualisierungssystem seiner Kollegen überprüft hat (die Darstellungen in diesem Artikel von 1996 sind recht gut für die Standards von Ende 2010) und dass jemand (Becker, Cleveland und Shyu) bereits daran gearbeitet hat (vielleicht) habe das damals sogar mit ihnen besprochen) und nur nachverfolgt, was schon da war. Dh die|Der Operator stammt aus der Grafiknotation. Trellis hat es mit ziemlicher Sicherheit benutzt. Potenzielle Vorgänger von Trellis haben dies vielleicht auch getan, aber ihr elektronischer Fußabdruck ist sehr schwer zu verfolgen.

Im Allgemeinen, denke ich, möchten Sie vielleicht diese Seite über NLME: Software für Mixed-Effects-Modelle von Bell Labs, um mehr historische Informationen zu erhalten nlme.

usεr11852 sagt Reinstate Monic
quelle
1
Danke vielmals! Es ist wahr, dass nlmeverwendet, |aber ich denke nicht, dass es verwendet (), um zufällige Effekte zu bezeichnen, oder? Zufällige Effekte werden als separates Argument zum Funktionsaufruf aufgeführt. War es , lme4dass eingeführt (x|id)als Teil der gleichen Formel?
Amöbe sagt Reinstate Monica
2
Ich denke, Sie lesen ein bisschen zu viel in der Gegenwart der Klammern; Ich vermute sehr, dass sie zu Analysezwecken existieren, da lme4für alle Begriffe eine einheitliche Syntax verwendet wird. Zum Beispiel fm1 <- lmer(Reaction ~ Days | Subject, sleepstudy)funktioniert gut ohne Klammern.
usεr11852 sagt Reinstate Monic
Oh. Tatsächlich. Niemals so darüber nachgedacht :)
Amöbe sagt Reinstate Monica
Bates hat gerade bestätigt, dass der zufällige Teil von den nlme-Autoren (von denen er einer ist) eingeführt wurde: twitter.com/BatesDmbates/status/1111283948615802881
Jonas Lindeløv
@ JonasLindeløv: Cool! Vielen Dank fürs Teilen. Ich werde morgen Abend einen Link zu der Antwort erstellen.
usεr11852 sagt Reinstate Monic