Wie wähle ich die Bibliothek nlme oder lme4 R für Modelle mit gemischten Effekten?

85

Ich habe ein paar gemischten Effekte für Modelle (insbesondere Längs Modelle) mit lme4in Rmöchte aber wirklich um die Modelle beherrschen und den Code, der mit sich geht.

Bevor ich jedoch mit beiden Beinen eintauche (und ein paar Bücher kaufe), möchte ich sicher sein, dass ich die richtige Bibliothek lerne. Ich habe es lme4bis jetzt verwendet, weil ich es einfach einfacher fand als nlme, aber wenn nlmees für meine Zwecke besser ist, sollte ich es verwenden.

Ich bin mir sicher, dass keines von beiden auf vereinfachende Weise "besser" ist, aber ich würde einige Meinungen oder Gedanken schätzen. Meine Hauptkriterien sind:

  1. Einfach zu bedienen (Ich bin ein ausgebildeter Psychologe und habe keine besonderen Kenntnisse in Statistik oder Codierung, aber ich lerne)
  2. gute Features zum Anpassen von Längsschnittdaten (wenn es hier einen Unterschied gibt - aber dafür benutze ich sie hauptsächlich)
  3. Gute (leicht zu interpretierende) grafische Zusammenfassungen, auch hier bin ich mir nicht sicher, ob es einen Unterschied gibt, aber ich erstelle häufig Grafiken für Leute, die noch weniger technisch sind als ich () aus diesem Grund).

Hoffe wie immer, dass diese Frage nicht zu vage ist, und danke im Voraus für jede Weisheit!

Chris Beeley
quelle

Antworten:

68

Beide Pakete werden Latticeals Backend verwendet, haben aber nlmeeinige nette Funktionen wie groupedData()und lmList()die fehlen lme4(IMO). Aus praktischer Sicht scheinen die beiden wichtigsten Kriterien jedoch zu sein

  1. lme4Erweitert nlmeum andere Verknüpfungsfunktionen: In nlmekönnen Sie keine Ergebnisse anpassen, deren Verteilung nicht gaußsch ist. Sie lme4können beispielsweise verwendet werden, um logistische Regressionen mit gemischten Effekten anzupassen.
  2. in nlmeist es möglich, die Varianz-Kovarianz-Matrix für die Zufallseffekte anzugeben (zB ein AR (1)); es ist nicht möglich in lme4.

Nun lme4kann leicht sehr große Anzahl von zufälligen Effekten verarbeiten (also Anzahl der Individuen in einer gegebenen Studie) dank seines C - Teil und die Verwendung von Sparse - Matrizen. Das nlmePaket wurde von etwas abgelöst, lme4so dass ich nicht erwarten kann, dass die Leute viel Zeit damit verbringen, Add-Ons zu entwickeln nlme. Persönlich, wenn ich eine kontinuierliche Antwort in meinem Modell habe, neige ich dazu, beide Pakete zu verwenden, aber ich bin jetzt mit der lme4Art und Weise der Anpassung von GLMM vertraut.

Anstatt ein Buch zu kaufen, werfen Sie einen Blick zuerst auf den Entwurf des Buches Doug Bates auf R-Schmiede: lme4: Mixed-Effekte Modellierung mit R .

chl
quelle
5
@ 2) Genauer gesagt können lme4Sie in entweder eine diagonale Kovarianzstruktur (dh unabhängige Zufallseffekte) oder unstrukturierte Kovarianzmatrizen (dh alle Korrelationen müssen geschätzt werden) oder teilweise diagonale, teilweise unstrukturierte Kovarianzmatrizen für die Zufallseffekte angeben. Ich möchte auch einen dritten Unterschied in den Fähigkeiten hinzufügen, der für viele longitudinale Datensituationen relevanter sein kann: nlmeGeben Sie Varianz-Kovarianz-Strukturen für die Residuen an (dh räumliche oder zeitliche Autokorrelation oder Heteroskedastizität), lme4nicht.
Fabians
@ Fabians (+1) Ah, danke! Wusste nicht, lme4erlaubt es, verschiedene VC-Strukturen zu wählen. Es wäre besser, wenn Sie es in Ihre eigene Antwort einfügen, zusammen mit anderen Ideen, die Sie vielleicht haben. Ich werde stimmen. Übrigens habe ich auch gemerkt, dass lmList()es auch in gibt lme4. Ich erinnere mich an eine Diskussion darüber bei R-sig-ME.
chl
Noch eine schnellere Alternative? Ich muss Modelle mit großen Datensätzen anpassen und brauche fast eine halbe Stunde in meinem Computer. Es gibt viele schnelle Regressionspakete, aber keines scheint in der Lage zu sein, mit zufälligen Effekten umzugehen.
skan
52

Wie bereits erwähnt, besteht der Hauptunterschied darin, welche Art von Varianz-Kovarianz-Struktur Sie für die Zufallseffekte angeben können. In können lme4Sie entweder angeben:

  • diagonale Kovarianzstrukturen (dh gegenseitig unkorrelierte Zufallseffekte durch Syntax erzwingen ~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • oder unstrukturierte Kovarianzmatrizen (dh alle Korrelationen werden geschätzt ~ (1 + x1 + x2 | group))
  • oder teilweise diagonale, teilweise unstrukturierte Kovarianz ( y ~ (1 + x1 | group) + (0 + x2 | group)wobei Sie eine Korrelation zwischen dem zufälligen Schnittpunkt und der zufälligen Steigung für x1, aber keine Korrelation zwischen der zufälligen Steigung für x2und dem zufälligen Schnittpunkt und zwischen der zufälligen Steigung für x2und der zufälligen Steigung für schätzen würden x1).

nlmebietet eine viel breitere Klasse von Kovarianzstrukturen für die zufälligen Effekte. Ich habe jedoch die Erfahrung gemacht, dass die Flexibilität lme4für die meisten Anwendungen ausreicht.

Ich würde auch einen dritten Unterschied in Funktionen hinzufügen , die für viele Longitudinaldaten Situationen mehr relevant sein können: nlme Lassen Sie uns Ihnen Varianz-Kovarianz - Strukturen für die Residuen (dh räumliche oder zeitliche Autokorrelation oder Heteroskedastie oder Kovariable abhängige Variabilität) im angeben weightsArgument (cf ?varFunc), wobei lme4nur feste Vorgewichtungen für die Beobachtungen zulässig sind.

Ein vierter Unterschied besteht darin, dass es schwierig sein kann, nlme(teilweise) gekreuzte Zufallseffekte anzupassen, obwohl dies kein Problem darstellt lme4.

Sie werden wahrscheinlich in Ordnung sein, wenn Sie dabei bleiben lme4.

Fabians
quelle
1
Mit der möglichen Ausnahme (Sie haben darauf hingewiesen), dass die zeitliche Autokorrelation in nlme, aber nicht in lme4 aufgenommen werden kann. Wenn der Datensatz groß genug ist und die Daten diese Art von Struktur haben, könnte dies ein großer Vorteil von nlme sein.
Ben Bolker
22

Andere haben die Unterschiede sehr gut zusammengefasst. Mein Eindruck ist, dass lme4es sich eher für Cluster-Datensätze eignet, insbesondere wenn Sie gekreuzte Zufallseffekte verwenden müssen. Für wiederholte Bemaßungen (einschließlich vieler Längsdesigns) bietet nlmesich das Werkzeug jedoch an, da nur nlmedie Angabe einer Korrelationsstruktur für die Residuen unterstützt wird. Verwenden Sie dazu das Argument correlationsoder corfür ein corStructObjekt. Außerdem können Sie die Heteroskedastizität mithilfe eines varFuncObjekts modellieren .

AlefSin
quelle
13

Tatsächlich gibt es in R eine Reihe von Paketen, um Modelle mit gemischten Effekten über lme4und hinaus anzupassen nlme. Es gibt ein nettes Wiki der R Special Interest Group für gemischte Models, das eine sehr nette FAQ und eine Seite zum Vergleichen der verschiedenen Pakete enthält .

Was meine Meinung zur tatsächlichen Verwendung von lme4und angeht nlme: Ich habe festgestellt lme4, dass die Verwendung aufgrund der eher direkten Erweiterung der grundlegenden R-Formelsyntax im Allgemeinen einfacher ist. (Wenn Sie mit verallgemeinerten additiven Modellen arbeiten müssen, dann erweitert das gamm4Paket diese Syntax um einen weiteren Schritt und Sie haben eine schöne glatte Lernkurve.) Wie bereits erwähnt, lme4können Sie mit verallgemeinerten Modellen umgehen (andere Verknüpfungsfunktionen und Fehlerverteilungen), während nlmeDie Konzentration auf die Gaußsche Verknüpfungsfunktion ermöglicht es, einige Dinge zu tun, die im allgemeinen Fall sehr schwierig sind (Spezifizierung der Kovarianzstruktur und bestimmte Dinge, die von der Berechnung der Freiheitsgrade abhängen, wie p-Werte, zu deren Bewegung ich Sie ermutige Weg von!).

Livius
quelle