Asal-usul notasi gaya Wilkinson seperti (1 | id) untuk efek acak dalam formula model campuran dalam R

16

Rumus model dalam R seperti

y ~ x + a*b + c:d

didasarkan pada apa yang disebut notasi Wilkinson : Wilkinson dan Rogers 1973, Deskripsi Simbolik Model Faktorial untuk Analisis Varians .

Makalah ini tidak membahas notasi untuk model campuran (yang mungkin belum ada saat itu). Jadi di mana formula model campuran yang digunakan lme4dan paket terkait dalam R seperti

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

berasal dari? Siapa yang memperkenalkan mereka untuk pertama kalinya, dan kapan? Apakah ada istilah yang disepakati seperti "notasi Wilkinson" untuk mereka? Saya secara khusus merujuk pada istilah seperti

(model formula |  grouping variable)
(model formula || grouping variable)
amuba kata Reinstate Monica
sumber

Jawaban:

11

Notasi |telah ada dalam nlmedokumen sejak versi 3.1-1 dan mungkin akhir 1999; kita dapat dengan mudah memeriksanya di arsip kode CRAN nlme . nlmetidak menggunakan notasi ini, misalnya coba library(nlme); formula(Orthodont); yang |muncul - sehingga 2000 adalah off. Jadi mari kita gali .... " Metode Grafis untuk Data dengan Berbagai Tingkat Bersarang " Pinheiro & Bates (1997) di mana groupedDatakonstruktor diperkenalkan. Dan mereka berkata: " Rumus dalam objek data yang dikelompokkan memiliki pola yang sama dengan rumus yang digunakan dalam panggilan ke fungsi grafik Trellis di S-PLUS, seperti xyplot " Yang .... masuk akal seperti halnya P&B yang bekerja di. .. Bell Labs (RIP) yang mengembangkan sistem grafis Teralis yang sebenarnya menggunakan operator|sudah menunjukkan grup. Yang mungkin berarti ... " Desain Visual dan Kontrol Tampilan Teralis " oleh Becker et al. (1996) ada hubungannya dengan ini. Notasi tidak diperkenalkan dalam makalah ini tetapi ini adalah referensi tampilan Teralis elektronik pertama yang dapat saya temukan.

Pada dasarnya kita perlu menggali literatur visualisasi pada titik ini. Mungkin saya akan memeriksa buku Cleveland Visualisasi Data (1993) dan karya-karya awal Deepayan Sarkar (yang dikembangkan lattice). Perhatikan bahwa operator yang sebenarnya | (dan ||) adalah operator primitif sejati karena mereka terkait dengan ORoperator, jadi itu hanya masalah waktu sampai seseorang membebani mereka secara berlebihan. Walaupun bukan jawaban yang lengkap, saya sangat curiga P&B memeriksa sistem visualisasi keren rekan-rekan mereka (plot di koran 1996 itu cukup bagus untuk standar akhir 2010) dan menyadari bahwa seseorang (Becker, Cleveland dan Shyu) sudah melakukan beberapa pekerjaan untuk hal ini (mungkin bahkan mendiskusikan hal ini dengan mereka pada saat itu) dan hanya menindaklanjuti apa yang sudah ada. Yaitu|Operator berasal dari notasi grafis. Teralis hampir pasti menggunakannya; calon pendahulu dari Teralis mungkin telah melakukannya juga tetapi jejak-e mereka sangat sulit dilacak.

Secara umum, saya pikir Anda mungkin menginginkan halaman ini pada NLME: Perangkat lunak untuk model efek campuran oleh Bell Labs untuk informasi lebih lanjut tentang nlme.

usεr11852 kata Reinstate Monic
sumber
1
Terima kasih banyak! Memang benar itu nlmemenggunakan |tetapi saya tidak berpikir itu digunakan ()untuk menunjukkan efek acak, kan? Efek acak terdaftar sebagai argumen terpisah untuk pemanggilan fungsi. Apakah itu lme4yang diperkenalkan (x|id)sebagai bagian dari formula yang sama ?
Amoeba berkata Reinstate Monica
2
Saya pikir Anda terlalu banyak membaca tentang keberadaan tanda kurung; Saya sangat curiga mereka ada untuk tujuan parsing yang diberikan lme4menggunakan sintaks terpadu untuk semua istilah. Misalnya fm1 <- lmer(Reaction ~ Days | Subject, sleepstudy)berfungsi dengan baik tanpa tanda kurung.
usεr11852 mengatakan Reinstate Monic
Oh Memang. Tidak pernah memikirkannya seperti ini :)
amoeba mengatakan Reinstate Monica
Bates baru saja mengkonfirmasi bahwa bagian acaknya diperkenalkan oleh penulis nlme (yang mana dia adalah salah satunya): twitter.com/BatesDmbates/status/1111283948615802881
Jonas Lindeløv
@ JonasLindeløv: Keren! Terima kasih telah berbagi, saya akan membuat tautan ke jawabannya besok malam.
usεr11852 mengatakan Reinstate Monic