Ich möchte ein gemischtes Modell mit lme4, nlme, baysian regression package oder einem anderen verfügbaren Modell anpassen.
Gemischtes Modell in Asreml-R-Kodierungskonventionen
Bevor wir auf die Details eingehen, möchten wir vielleicht Details zu ASREML-R-Konventionen für diejenigen haben, die mit ASREML-Codes nicht vertraut sind.
y = Xτ + Zu + e ........................(1) ;
das übliche gemischte Modell mit, y bezeichnet den n × 1-Vektor von Beobachtungen, wobei τ der p × 1-Vektor von festen Effekten ist, X eine n × p-Entwurfsmatrix mit vollem Spaltenrang ist, die Beobachtungen mit der geeigneten Kombination von festen Effekten assoziiert , u ist der q × 1-Vektor von zufälligen Effekten, Z ist die n × q-Entwurfsmatrix, die Beobachtungen mit der geeigneten Kombination von zufälligen Effekten verknüpft, und e ist der n × 1-Vektor von Restfehlern. Das Modell (1) wird genannt ein lineares Mischmodell oder ein lineares Mischwirkungsmodell. Es wird davon ausgegangen
wobei die Matrizen G und R Funktionen der Parameter γ bzw. φ sind.
Der Parameter θ ist ein Varianzparameter, den wir als Skalenparameter bezeichnen werden.
In gemischten Effektmodellen mit mehr als einer Restvarianz, die beispielsweise bei der Analyse von Daten mit mehr als einem Abschnitt oder einer Variation auftreten, ist der Parameter θ auf eins festgelegt. In gemischten Effektmodellen mit einer einzelnen Restvarianz ist θ gleich der Restvarianz (σ2). In diesem Fall muss R eine Korrelationsmatrix sein. Weitere Details zu den Modellen finden Sie im Asreml-Handbuch (Link) .
Varianzstrukturen für die Fehler: R-Struktur und Varianzstrukturen für die zufälligen Effekte: G-Strukturen können angegeben werden.
Varianzmodellierung in asreml () ist es wichtig, die Bildung von Varianzstrukturen über direkte Produkte zu verstehen. Die übliche Annahme der kleinsten Quadrate (und die Standardannahme in asreml ()) ist, dass diese unabhängig und identisch verteilt sind (IID). Wenn die Daten jedoch aus einem Feldexperiment stammen, das in einem rechteckigen Array aus r Zeilen und c Spalten angeordnet ist, könnten wir die Residuen e als Matrix anordnen und möglicherweise in Betracht ziehen, dass sie in Zeilen und Spalten automatisch korreliert sind ein Vektor in Halbbildreihenfolge, dh durch Sortieren der Residuenzeilen in Spalten (Plots in Blöcken) könnte die Varianz der Residuen dann sein
sind Korrelationsmatrizen für das Zeilenmodell (Ordnung r, Autokorrelationsparameter ½r) bzw. das Spaltenmodell (Ordnung c, Autokorrelationsparameter ½c). Insbesondere wird manchmal eine zweidimensional trennbare autoregressive räumliche Struktur (AR1 × AR1) für die häufigen Fehler in einer Feldversuchsanalyse angenommen.
Die Beispieldaten:
nin89 stammt aus der asreml-R-Bibliothek, in der verschiedene Sorten in Replikationen / Blöcken im rechteckigen Feld gezüchtet wurden. Um die zusätzliche Variabilität in Zeilen- oder Spaltenrichtung zu steuern, wird jedes Diagramm als Zeilen- und Spaltenvariable (Zeilenspalten-Design) bezeichnet. Also diese Reihenspaltengestaltung mit Sperren. Ertrag ist Messgröße.
Beispielmodelle
Ich benötige etwas, das den asreml-R-Codes entspricht:
Die einfache Modellsyntax sieht folgendermaßen aus:
rcb.asr <- asreml(yield ∼ Variety, random = ∼ Replicate, data = nin89)
.....model 0
Das lineare Modell wird in den festen (erforderlichen), zufälligen (optionalen) und rcov-Argumenten (Fehlerkomponenten) als Formelobjekte angegeben. Der Standardwert ist ein einfacher Fehlerbegriff und muss für den Fehlerbegriff nicht wie im Modell 0 formal angegeben werden .
Hier ist die Sorte fester Effekt und zufällig wird repliziert (Blöcke). Neben zufälligen und festen Begriffen können wir Fehlerbegriffe angeben. Dies ist die Standardeinstellung in diesem Modell 0. Die Residuen- oder Fehlerkomponente des Modells wird in einem Formelobjekt durch das Argument rcov angegeben (siehe die folgenden Modelle 1: 4).
Das folgende Modell1 ist komplexer, in dem sowohl die G- (Zufalls-) als auch die R- (Fehler-) Struktur angegeben sind.
Modell 1:
data(nin89)
# Model 1: RCB analysis with G and R structure
rcb.asr <- asreml(yield ~ Variety, random = ~ idv(Replicate),
rcov = ~ idv(units), data = nin89)
Dieses Modell entspricht dem obigen Modell 0 und führt die Verwendung des G- und R-Varianzmodells ein. Hier gibt die Option random and rcov zufällige und rcov-Formeln an, um die G- und R-Strukturen explizit anzugeben. Dabei ist idv () die spezielle Modellfunktion in asreml (), die das Varianzmodell identifiziert. Der Ausdruck idv (units) setzt die Varianzmatrix für e explizit auf eine skalierte Identität.
# Modell 2: zweidimensionales räumliches Modell mit Korrelation in einer Richtung
sp.asr <- asreml(yield ~ Variety, rcov = ~ Column:ar1(Row), data = nin89)
experimentelle Einheiten von nin89 sind nach Spalte und Zeile indiziert. Wir erwarten also zufällige Abweichungen in zwei Richtungen - in diesem Fall in Zeilen- und Spaltenrichtung. Dabei ist ar1 () eine spezielle Funktion, die ein autoregressives Varianzmodell erster Ordnung für Row angibt. Dieser Aufruf gibt eine zweidimensionale räumliche Struktur für Fehler mit räumlicher Korrelation nur in Zeilenrichtung an. Das Varianzmodell für Column ist identity (id ()), muss jedoch nicht formal angegeben werden, da dies der Standard ist.
# Modell 3: zweidimensionales räumliches Modell, Fehlerstruktur in beide Richtungen
sp.asr <- asreml(yield ~ Variety, rcov = ~ ar1(Column):ar1(Row),
data = nin89)
sp.asr <- asreml(yield ~ Variety, random = ~ units,
rcov = ~ ar1(Column):ar1(Row), data = nin89)
ähnlich dem obigen Modell 2, jedoch ist die Korrelation in zwei Richtungen - autoregressiv.
Ich bin mir nicht sicher, wie viele dieser Modelle mit Open Source R-Paketen möglich sind. Auch wenn die Lösung eines dieser Modelle von großer Hilfe sein wird. Auch wenn der Bouty von +50 zur Entwicklung eines solchen Pakets anregen kann, wird dies eine große Hilfe sein!
Siehe MAYSaseen hat die Ausgabe jedes Modells und die Daten (als Antwort) zum Vergleich bereitgestellt.
Bearbeitungen: Folgendes ist ein Vorschlag, den ich im Diskussionsforum für gemischte Modelle erhalten habe: "Sie können sich die Regress- und SpatialCovariance-Pakete von David Clifford ansehen. Ersteres ermöglicht die Anpassung von (Gaußschen) gemischten Modellen, bei denen Sie die Struktur der Kovarianzmatrix sehr flexibel festlegen können (Ich habe es beispielsweise für Stammbaumdaten verwendet.) Das Paket "spaciousCovariance" verwendet "regress", um komplexere Modelle als AR1xAR1 bereitzustellen, kann jedoch anwendbar sein. Möglicherweise müssen Sie mit dem Autor über die Anwendung auf Ihr genaues Problem korrespondieren. "
lme4
. Können Sie uns (a) sagen, warum Sie dies tun müssen,lme4
anstattasreml-R
(b) in Erwägung zu ziehen, dort zu posten,r-sig-mixed-models
wo relevanteres Fachwissen vorhanden ist?corStruct
Innlme
(für anisotrope Korrelationen) zu definieren. Es wäre hilfreich, wenn Sie kurz (in Worten oder Gleichungen) die statistischen Modelle angeben könnten, die diesen ASREML-Anweisungen entsprechen, da wir nicht alle vertraut sind ASREML-Syntax ...MCMCglmm
, und ich bin mir ziemlich sicher, dass (außer dasspatialCovariance
erwähnte, mit dem ich nicht vertraut bin, ist der einzige Weg, es in R zu erledigen, indem man neuecorStruct
s definiert - was möglich, aber nicht trivial ist.Antworten:
Sie können dieses Modell mit AD Model Builder anpassen. AD Model Builder ist eine kostenlose Software zum Erstellen allgemeiner nichtlinearer Modelle, einschließlich allgemeiner nichtlinearer Zufallseffektmodelle. So könnten Sie beispielsweise ein negatives binomiales räumliches Modell anpassen, bei dem sowohl der Mittelwert als auch die Überdispersion eine ar (1) x ar (1) -Struktur aufweisen. Ich habe den Code für dieses Beispiel erstellt und an die Daten angepasst. Wenn jemand interessiert ist, ist es wahrscheinlich besser, dies auf der Liste unter http://admb-project.org zu diskutieren
Hinweis: Es gibt eine R-Version von ADMB, die im R-Paket verfügbaren Funktionen sind jedoch eine Teilmenge der eigenständigen ADMB-Software.
In diesem Beispiel ist es einfacher, eine ASCII-Datei mit den Daten zu erstellen, sie in das ADMB-Programm einzulesen, das Programm auszuführen und dann die Parameterschätzungen usw. für alles, was Sie tun möchten, in R zurückzulesen.
Sie sollten verstehen, dass ADMB keine Sammlung von Paketen ist, sondern eine Sprache zum Schreiben von nichtlinearer Parameterschätzungssoftware. Wie ich bereits sagte, ist es besser, dies auf der ADMB-Liste zu diskutieren, wo jeder etwas über die Software weiß. Nachdem dies erledigt ist und Sie das Modell verstanden haben, können Sie die Ergebnisse hier veröffentlichen. Hier ist jedoch ein Link zu den ML- und REML-Codes, die ich für die Weizendaten zusammengestellt habe.
http://lists.admb-project.org/pipermail/users/attachments/20111124/448923c8/attachment.zip
quelle
Modell 0
ASReml-R
lme4
nlme
quelle
Modell 1
ASReml-R
nlme
Den Trick sehen
quelle
Modell 2
ASReml-R
nlme
Arbeiten an, aber nicht herausgefunden. Könnte so etwas sein. Noch konnte nicht herausfinden , wie zu tun
rcov=~Column:ar1(Row)
mitnlme
quelle
Modell 3
ASReml-R
nlme
Arbeiten an, aber nicht herausgefunden. Könnte so etwas sein. Noch konnte nicht herausfinden , wie zu tun
rcov=~ar1(Column):ar1(Row)
mitnlme
Ich konnte nicht herausfinden, wie ich Modell 2 und 3 damit kombinieren sollte
nlme
. Ich arbeite daran und werde die Antwort aktualisieren, wenn es fertig ist. Aber ich habe die Ausgabe vonASReml-R
für Modell 2 und 3 zu Vergleichszwecken aufgenommen. Kevin hat gute Erfahrungen mit der Analyse solcher Modelle und Ben Bolker hat eine wunderbare Kompetenz in Bezug auf Mixed Models. Ich hoffe, sie können uns bei den Modellen 2 und 3 helfen.quelle