Hintergrund: Multimodell-Inferenz mit glmulti
glmulti ist ein R-Funktion/Paket für automatisierte Modellauswahl für allgemeine lineare Modelle, die eine abhängige Variable und einen Satz von Prädiktoren gegeben möglich Lineares Modell konstruiert, paßt sie über die klassische glm-Funktion und ermöglicht dann eine Multi-Modell-Inferenz (z. B. unter Verwendung von Modellgewichten, die von AICc, BIC abgeleitet sind). glmulti funktioniert in der Theorie auch mit jeder anderen Funktion, die Koeffizienten, die Log-Likelihood des Modells und die Anzahl der freien Parameter (und vielleicht andere Informationen?) Im gleichen Format, das Glm tut.Welche Funktion/Paket für robuste lineare Regression funktioniert mit Glmulti (d. H. Verhält sich wie Glm)?
Mein Ziel: Mehr Modell Inferenz mit robusten Fehlern
Ich mag glmulti mit robuster Modellierung des Fehlers einer quantitativen abhängigen Variablen verwenden, gegen die Wirkung aus Ausreißern zu schützen.
Zum Beispiel könnte ich davon ausgehen, dass die Fehler im linearen Modell als t distribution anstatt als eine normale Verteilung verteilt sind. Mit ihrem Kurtosis-Parameter kann die t-Verteilung schwere Schwänze aufweisen und ist daher robuster gegenüber Ausreißern (im Vergleich zur Normalverteilung).
Allerdings bin ich nicht verpflichtet, den T-Verteilungsansatz zu verwenden. Ich bin mit jedem Ansatz zufrieden, der eine Log-Likelihood zurückgibt und somit mit dem Multimodelansatz in glmulti arbeitet. Aber das bedeutet, dass ich kann leider nicht die bekannten robusten linearen Modelle in R verwenden (zB lmRob von robust oder lmrob von robustbase), weil sie unter dem Log-Likelihood-Rahmen arbeiten nicht und somit kann nicht funktionieren mit glmulti.
Das Problem: Ich kann nicht eine robuste Regressionsfunktion, die mit arbeitet finden glmulti
Die einzige robuste Funktion lineare Regression für RI festgestellt, dass arbeitet unter dem Log-Likelihood Rahmen ist heavyLm (von der heavy Paket); Es modelliert die Fehler mit einer t-Verteilung. Leider funktioniert healthLm nicht mit glmulti (zumindest nicht out of the box), weil es keine S3-Methode für loglik (und möglicherweise andere Dinge) hat.
Zur Veranschaulichung:
summary(glm(stack.loss ~ ., data = stackloss))
Multi-Modell-Inferenz mit glmulti uns:
library(glmulti)
library(heavy)
den Datensatz
head(stackloss)
Regular Gaußsche lineare Modell stackloss Verwendung ing glm ‚s Standard Gaussian Verknüpfungsfunktion
stackloss.glmulti <- glmulti(stack.loss ~ ., data = stackloss, level=1, crit=bic)
print(stackloss.glmulti)
plot(stackloss.glmulti)
Linear-Modell mit Fehlern t verteilt (default df = 4)
summary(heavyLm(stack.loss ~ ., data = stackloss))
Multimodell-Inferenz mit glmulti Aufruf heavyLm als Die Anpassungsfunktion
stackloss.heavyLm.glmulti <- glmulti(stack.loss ~ .,
data = stackloss, level=1, crit=bic, fitfunction=heavyLm)
gibt der folgende Fehler:
Initialization...
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "heavyLm".
Wenn ich die folgende Funktion definieren,
logLik.heavyLm <- function(x){x$logLik}
glmulti kann das Log-Likelihood, erhalten, aber dann ist der nächste Fehler auftritt:
Initialization...
Error in .jcall(molly, "V", "supplyErrorDF",
as.integer(attr(logLik(fitfunc(as.formula(paste(y, :
method supplyErrorDF with signature ([I)V not found
Die Frage: Welche Funktion/Paket für robuste lineare Regression arbeitet mit glmulti (dh verhält sich wie glm)?
Es gibt wohl eine Möglichkeit, weitere Funktionen zu definieren heavyLm zum Laufen zu bringen mit glmulti, aber vor dieser Reise einsteigen wollte ich, ob jemand fragen
- kennt eine robusten Funktion linearen Regression, dass (a) arbeitet unter dem Log-Likelihood-Framework und (b) verhält sich wie glm (und wird daher mit glmulti Out-of-the-Box arbeiten).
- haben healthLm bereits arbeiten mit glmulti.
Jede Hilfe wird sehr geschätzt!
Vielen Dank! – jonlemon