lm()

2013-03-06 15 views
6

tarafından döndürülen bir "mlm" nesnesinin standart hatalarını elde edin. lm() kulladım. Çoklu regresyon modellerini, birden çok (~ 1 milyon) yanıt değişkeni için R.lm()

allModels <- lm(t(responseVariablesMatrix ~ modelMatrix) 

Bu, tüm modelleri içeren büyük bir nesne gibi olan "mlm" sınıfının bir nesnesini döndürür. Ben kullanarak kayıt olabilirsiniz Her model için rezidüel kareler toplamı almak istiyorum:

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

Sorunum "özeti" fonksiyonu da diğer şeyler bir sürü hesaplar düşünüyorum ve dolayısıyla olmasıdır oldukça yavaş. Model için kalan kareler toplamını daha hızlı bir şekilde çıkarmanın bir yolu olup olmadığını merak ediyorum.

Teşekkürler!

cevap

5

lm nesnesinin çıkışında bir bileşen kalıntıları var, bu nedenle sum(output$residuals^2) tarafından kalan toplam kareler elde edersiniz.

düzenleme: Aslında tüm modeller

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

0
residuals(summary(allModels))) 

size artıkların matrisi verecektir kullanmak için sqrt(sum(output$residuals^2)/output$df.residuals)

olan özetleri dışarı sigma alıyor

+0

Bu doesn soruya gerçekten cevap ver. Askerin söylediği sorunun oldukça yavaş olduğu özet işlevini kullanıyorsunuz. Model için artık kalan kareler toplamının daha hızlı bir yolu var mı diye soruyorlar? – Ren

+0

Hatam. teşekkür ederim – eFinance

İlgili konular