Bleiben autokorrelierte Residuenmuster auch in Modellen mit geeigneten Korrelationsstrukturen erhalten und wie werden die besten Modelle ausgewählt?


17

Kontext

Diese Frage verwendet R, bezieht sich jedoch auf allgemeine statistische Fragen.

Ich analysiere die Auswirkungen von Mortalitätsfaktoren (% Mortalität aufgrund von Krankheit und Parasitismus) auf die Wachstumsrate der Mottenpopulation im Laufe der Zeit, wobei Larvenpopulationen 8 Jahre lang einmal pro Jahr an 12 Standorten beprobt wurden. Die Daten zur Bevölkerungswachstumsrate zeigen einen klaren, aber unregelmäßigen zyklischen Trend im Zeitverlauf.

Die Residuen eines einfachen verallgemeinerten linearen Modells (Wachstumsrate ~% Krankheit +% Parasitismus + Jahr) zeigten über die Zeit einen ähnlich klaren, aber unregelmäßigen zyklischen Trend. Daher wurden auch verallgemeinerte Modelle der kleinsten Quadrate derselben Form mit geeigneten Korrelationsstrukturen an die Daten angepasst, um die zeitliche Autokorrelation zu behandeln, z. B. Verbindungssymmetrie, autoregressive Prozessreihenfolge 1 und autoregressive Korrelationsstrukturen mit gleitendem Durchschnitt.

Alle Modelle enthielten dieselben festen Effekte, wurden mit AIC verglichen und mit REML angepasst (um den Vergleich verschiedener Korrelationsstrukturen mit AIC zu ermöglichen). Ich benutze das R-Paket nlme und die gls-Funktion.

Frage 1

Die Residuen der GLS-Modelle zeigen im Zeitverlauf immer noch nahezu identische zyklische Muster. Bleiben solche Muster auch in Modellen, die die Autokorrelationsstruktur genau berücksichtigen, immer erhalten?

Ich habe einige vereinfachte, aber ähnliche Daten in R unter meiner zweiten Frage simuliert. Dies zeigt das Problem auf der Grundlage meines gegenwärtigen Verständnisses der Methoden, die zur Beurteilung von zeitlich autokorrelierten Mustern in Modellresten erforderlich sind , von denen ich weiß, dass sie falsch sind (siehe Antwort).

Frage 2

Ich habe GLS-Modelle mit allen möglichen plausiblen Korrelationsstrukturen an meine Daten angepasst, aber keine passt wesentlich besser als die GLM ohne Korrelationsstruktur: Nur ein GLS-Modell ist geringfügig besser (AIC-Score = 1,8 niedriger), während alle anderen dies tun höhere AIC-Werte. Dies ist jedoch nur dann der Fall, wenn alle Modelle von REML angepasst werden, nicht von ML, wenn GLS-Modelle eindeutig besser sind. Ich verstehe jedoch, dass Sie aus statistischen Büchern REML nur verwenden müssen, um Modelle mit unterschiedlichen Korrelationsstrukturen und denselben festen Effekten aus Gründen zu vergleichen Ich werde hier nicht näher darauf eingehen.

In Anbetracht der eindeutig zeitlich automatisch korrelierten Natur der Daten ist, wenn kein Modell sogar mäßig besser als das einfache GLM ist, die am besten geeignete Methode, um zu entscheiden, welches Modell für die Schlussfolgerung verwendet werden soll, vorausgesetzt, ich verwende eine geeignete Methode (die ich schließlich verwenden möchte) AIC zum Vergleichen verschiedener Variablenkombinationen)?

Q1 'Simulation' zur Untersuchung von Restmustern in Modellen mit und ohne entsprechende Korrelationsstrukturen

Generieren Sie eine simulierte Antwortvariable mit einem zyklischen Effekt von 'Zeit' und einem positiven linearen Effekt von 'x':

time <- 1:50
x <- sample(rep(1:25,each=2),50)
y <- rnorm(50,5,5) + (5 + 15*sin(2*pi*time/25)) + (x/1)

y sollte einen zyklischen Trend über die Zeit mit zufälliger Variation anzeigen:

plot(time,y)

Und eine positive lineare Beziehung zu 'x' mit zufälliger Variation:

plot(x,y)

Erstellen Sie ein einfaches lineares additives Modell von "y ~ time + x":

require(nlme)
m1 <- gls(y ~ time + x, method="REML")

Das Modell zeigt, wie zu erwarten, klare zyklische Muster in den Residuen, wenn es gegen die "Zeit" aufgetragen wird:

plot(time, m1$residuals)

Und was sollte ein schönes, klares Fehlen von Mustern oder Trends in den Residuen sein, wenn gegen 'x' gezeichnet wird:

plot(x, m1$residuals)

Ein einfaches Modell von "y ~ time + x", das eine autoregressive Korrelationsstruktur der Ordnung 1 enthält, sollte aufgrund der Autokorrelationsstruktur viel besser zu den Daten passen als das vorherige Modell, wenn es mit AIC bewertet wird:

m2 <- gls(y ~ time + x, correlation = corAR1(form=~time), method="REML")
AIC(m1,m2)

Das Modell sollte jedoch weiterhin nahezu identische "zeitlich" autokorrelierte Residuen anzeigen:

plot(time, m2$residuals)

Vielen Dank für jeden Rat.


Ihr Modell erfasst die durch die Zyklen verursachte Zeitabhängigkeit nicht richtig (selbst für Ihren simulierten Fall), sodass Ihre Charakterisierung der „ genauen Berücksichtigung “ nicht angemessen ist. Der Grund, warum Sie immer noch Muster in Ihren Residuen haben, liegt wahrscheinlich daran.
Glen_b

Ich denke du hast es rückwärts. Die Schätzungen sollten mit voller Wahrscheinlichkeit und nicht mit REML erfolgen. Die Auswahl von Methode = "ML" ist für die Durchführung von Likelihood-Ratio-Tests erforderlich und ist erforderlich, wenn Sie mit AIC Modelle mit verschiedenen Prädiktoren vergleichen möchten. REML bietet bessere Schätzungen der Varianzkomponenten und Standardfehler als ML. Nachdem method = "ML" zum Vergleichen verschiedener Modelle verwendet wurde, wird manchmal empfohlen, das endgültige Modell mit method = "REML" nachzurüsten und die Schätzungen und Standardfehler aus der REML-Anpassung für die endgültige Schlussfolgerung zu verwenden.
Theforestecologist

Antworten:


24

Q1

Sie machen hier zwei Dinge falsch. Das erste ist im Allgemeinen eine schlechte Sache; Tauchen Sie im Allgemeinen nicht in Modellobjekte ein und zerreißen Sie Komponenten. In diesem Fall lernen Sie, die Extraktorfunktionen zu verwenden resid(). In diesem Fall erhalten Sie etwas Nützliches, aber wenn Sie einen anderen Typ von Modellobjekt hatten, wie z. B. ein GLM von glm(), dann mod$residualswürden funktionierende Residuen der letzten IRLS-Iteration enthalten und sind etwas, das Sie im Allgemeinen nicht wollen!

Das zweite, was du falsch machst, hat mich auch erwischt. Die Residuen, die Sie extrahiert haben (und die Sie auch extrahiert hätten, wenn Sie sie verwendet hätten resid()), sind die Roh- oder Antwort-Residuen. Dies ist im Wesentlichen die Differenz zwischen den angepassten Werten und den beobachteten Werten der Reaktion, wobei nur die Terme mit festen Effekten berücksichtigt werden . Diese Werte enthalten dieselbe verbleibende Autokorrelation wie die von, m1da die festen Effekte (oder, wenn Sie es vorziehen, der lineare Prädiktor) in beiden Modellen gleich sind ( ~ time + x).

Um Residuen zu erhalten, die den von Ihnen angegebenen Korrelationsterm enthalten, benötigen Sie die normalisierten Residuen. Sie erhalten diese durch:

resid(m1, type = "normalized")

Diese (und andere verfügbare Arten von Residuen) werden beschrieben in ?residuals.gls:

type: an optional character string specifying the type of residuals
      to be used. If ‘"response"’, the "raw" residuals (observed -
      fitted) are used; else, if ‘"pearson"’, the standardized
      residuals (raw residuals divided by the corresponding
      standard errors) are used; else, if ‘"normalized"’, the
      normalized residuals (standardized residuals pre-multiplied
      by the inverse square-root factor of the estimated error
      correlation matrix) are used. Partial matching of arguments
      is used, so only the first character needs to be provided.
      Defaults to ‘"response"’.

Zum Vergleich sind hier die ACFs der rohen (Antwort) und der normalisierten Residuen

layout(matrix(1:2))
acf(resid(m2))
acf(resid(m2, type = "normalized"))
layout(1)

Bildbeschreibung hier eingeben

Um zu sehen, warum dies geschieht und wo die rohen Residuen den Korrelationsterm nicht enthalten, ziehen Sie das von Ihnen angepasste Modell in Betracht

y=β0+β1tichme+β2x+ε

wo

εN(0,σ2Λ)

und ist eine Korrelationsmatrix, die durch ein AR (1) mit dem Parameter wobei die nichtdiagonalen Elemente der Matrix mit Werten gefüllt sind , wobei die positive ganze Zahl ist Trennung in Zeiteinheiten von Residuenpaaren.& rgr; & rgr; | d | dΛρ^ρ|d|d

Die rohen Residuen, von denen der Standardwert zurückgegeben wird, resid(m2)stammen nur aus dem linearen Prädiktorteil, daher aus diesem Bit

β0+β1tichme+β2x

und daher enthalten sie keine der Informationen zu den in enthaltenen Korrelationstermen .Λ

Q2

Es scheint, dass Sie versuchen, einen nichtlinearen Trend mit einer linearen Funktion von timeund einer mangelnden Anpassung an den "Trend" mit einem AR (1) (oder anderen Strukturen) anzupassen. Wenn Ihre Daten in etwa den hier angegebenen Beispieldaten entsprechen, würde ich ein GAM anpassen, um eine reibungslose Funktion der Kovariaten zu ermöglichen. Dieses Modell wäre

y=β0+f1(tichme)+f2(x)+ε

und anfangs werden wir die gleiche Verteilung wie für den GLS annehmen, außer dass wir anfangs annehmen werden, dass (eine Identitätsmatrix, also unabhängige Residuen). Dieses Modell kann mit montiert werdenΛ=ich

library("mgcv")
m3 <- gam(y ~ s(time) + s(x), select = TRUE, method = "REML")

Dabei wird select = TRUEeine zusätzliche Schrumpfung angewendet, damit das Modell einen der Begriffe aus dem Modell entfernen kann.

Dieses Modell gibt

> summary(m3)

Family: gaussian 
Link function: identity 

Formula:
y ~ s(time) + s(x)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.1532     0.7104   32.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
          edf Ref.df      F  p-value    
s(time) 8.041      9 26.364  < 2e-16 ***
s(x)    1.922      9  9.749 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

und hat glatte Begriffe, die so aussehen:

Bildbeschreibung hier eingeben

Die Residuen aus diesem Modell verhalten sich auch besser (rohe Residuen)

acf(resid(m3))

Bildbeschreibung hier eingeben

Nun ein Wort der Vorsicht; Es gibt ein Problem mit der Glättung von Zeitreihen, da die Methoden, die entscheiden, wie glatt oder verwackelt die Funktionen sind, davon ausgehen, dass die Daten unabhängig sind. In der Praxis bedeutet dies, dass die glatte Funktion von time ( s(time)) für Informationen geeignet sein kann, bei denen es sich um zufällige autokorrelierte Fehler und nicht nur um den zugrunde liegenden Trend handelt. Daher sollten Sie beim Anpassen von Glättungselementen an Zeitreihendaten sehr vorsichtig sein.

Es gibt eine Reihe von Möglichkeiten, um dies zu umgehen. Eine Möglichkeit besteht jedoch darin, auf die Anpassung des Modells umzuschalten, über gamm()die Aufrufe lme()intern ausgeführt werden und mit der Sie das correlationArgument verwenden können, das Sie für das gls()Modell verwendet haben. Hier ist ein Beispiel

mm1 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML")
mm2 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML", correlation = corAR1(form = ~ time))

Beachten Sie, dass ich die Freiheitsgrade festlegen muss, s(time)da bei diesen Daten ein Identifizierungsproblem vorliegt. Das Modell könnte ein verwackelter s(time)und kein AR (1) ( ) oder ein linearer (1 Freiheitsgrad) und ein starker AR (1) ( ) sein. Daher vermute ich die Komplexität des zugrunde liegenden Trends. (Beachten Sie, dass ich nicht viel Zeit mit diesen Dummy-Daten verbracht habe, aber Sie sollten die Daten überprüfen und Ihr vorhandenes Wissen über die Variabilität in der Zeit nutzen, um eine angemessene Anzahl von Freiheitsgraden für den Spline zu bestimmen.)ρ > > 0,5ρ=0s(time)ρ>>.5

Das Modell mit dem AR (1) stellt keine signifikante Verbesserung gegenüber dem Modell ohne das AR (1) dar:

> anova(mm1$lme, mm2$lme)
        Model df      AIC      BIC    logLik   Test   L.Ratio p-value
mm1$lme     1  9 301.5986 317.4494 -141.7993                         
mm2$lme     2 10 303.4168 321.0288 -141.7084 1 vs 2 0.1817652  0.6699

Wenn wir uns die Schätzung für $ \ hat {\ rho}} ansehen, sehen wir

> intervals(mm2$lme)
....

 Correlation structure:
         lower      est.     upper
Phi -0.2696671 0.0756494 0.4037265
attr(,"label")
[1] "Correlation structure:"

wo Phiist das, was ich genannt . Daher ist 0 ein möglicher Wert für . Die Schätzung ist geringfügig größer als Null und hat daher vernachlässigbare Auswirkungen auf die Modellanpassung. Daher möchten Sie sie möglicherweise im Modell belassen, wenn ein wichtiger Grund für die Annahme einer verbleibenden Autokorrelation besteht.ρρρ


Vielen Dank, Gavin, für diese exzellente, detaillierte Antwort. Es sieht so aus, als ob meine Daten mit GAMs ein qualitativ ähnliches Ergebnis liefern, da beim Vergleich eines GAM mit und ohne die Standardkorrelationsstrukturen entweder nur eine sehr geringe Verbesserung oder eine Verschlechterung der Anpassung (bewertet über AIC / AICc) festzustellen ist. Wissen Sie / jemand: Wenn die Daten / Residuen sehr klare, unregelmäßige, zyklische Trends aufweisen, ist es dann am besten, sich an die am besten passende Korrelationsstruktur zu halten und nicht an ein Modell mit keiner? Danke noch einmal.
JupiterM104

1
Ich bin super spät gekommen, wollte mich aber bei Gavin für diese fantastische Antwort bedanken. Hat mir eine Menge geholfen.
Giraffehere
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.