2013-03-06 1 views
6

zurückgegeben wird. Ich habe lm() verwendet, um mehrere Regressionsmodelle für mehrere (~ 1 Million) Antwortvariablen in R anzupassen.Erhalten Sie die restlichen Standardfehler eines "mlm" -Objekts, das von `lm()`

Dies gibt ein Objekt der Klasse "mlm" zurück, das wie ein riesiges Objekt ist, das alle Modelle enthält. Ich will die Restsumme der Quadrate für jedes Modell bekommen, die ich verwenden kann:

summaries <- summary(allModels) 
rss1s <- sapply(summaries, function(a) return(a$sigma)) 

Mein Problem ist, dass ich die „Zusammenfassung“ -Funktion denke eine ganze Reihe von anderen Sachen berechnet, auch, und ist daher ziemlich langsam. Ich frage mich, ob es eine schnellere Möglichkeit gibt, nur die Restsumme der Quadrate für das Modell zu extrahieren?

Danke!

Antwort

5

gibt es eine Komponente Residuen in der Ausgabe von lm Objekt, so erhalten Sie Restsumme von Quadraten von sum(output$residuals^2).

bearbeiten: Sie nehmen tatsächlich sigma aus Zusammenfassungen, die sqrt(sum(output$residuals^2)/output$df.residuals)

ist für alle Modelle verwenden

sapply(allModels, function(a) sqrt(sum(a$residuals^2)/a$df.residuals)))

0
residuals(summary(allModels))) 

werden Sie Matrix der Residuen geben

+0

Dieses doesn beantworte die Frage nicht wirklich. Sie verwenden dort die Zusammenfassungsfunktion, die der Fragesteller ziemlich langsam gesagt hat. Sie fragen, ob es einen schnelleren Weg gibt, nur die Restsumme der Quadrate für das Modell zu extrahieren? – Ren

+0

Meine Schuld. Vielen Dank – eFinance

Verwandte Themen