2010-01-14 14 views
6

Qualcuno sa di una funzione che può creare un oggetto lm dati un set di dati e coefficienti?Crea oggetto lm da dati/coefficienti

Sono interessato a questo perché ho iniziato a giocare con la media dei modelli bayesiani (BMA) e mi piacerebbe essere in grado di creare un oggetto lm con i risultati di bicreg. Mi piacerebbe avere accesso a tutte le funzioni Lm generiche come il tracciamento diagnostico, prevedere, cv.lm ecc.

Se sei abbastanza sicuro che una funzione del genere non esiste è anche molto utile sapere!

library(BMA) 
mtcars_y <- mtcars[, 1] #mpg 
mtcars_x <- as.matrix(mtcars[,-1]) 
res <- bicreg(mtcars_x, mtcars_y) 

summary(res) 
res$postmean # bma coefficients 

# The approximate form of the function 
# I'm looking for 
lmObject <- magicFunction(data=mtcars, coefficients=res$postmean) 
+0

Wow. Devo iniziare a usare la tua funzione magia tutto il tempo. :) – Shane

risposta

5

Non c'è alcuna funzione di cui sono a conoscenza. Si potrebbe ovviamente essere fatto. Tutto ciò che il vostro magicFunction avrebbe bisogno di fare è creare una lista con gli elementi:

> names(fakeModel) 
[1] "coefficients" "residuals"  "effects"  "rank"   
[5] "fitted.values" "assign"  "qr"   "df.residual" 
[9] "xlevels"  "call"   "terms"   "model" 

poi ne fanno un oggetto lm

> class(fakeModel) <- c("lm") 

Lasciatemi dire che penso che questa è una cattiva idea però. Di chi dire che la funzione generica che si applica sarà applicabile a un oggetto bicreg. Ad esempio, come interpreteresti AIC (fakeModel)?

È meglio creare le proprie funzioni per eseguire diagnostiche e previsioni.

+0

Punto preso riguardo AIC (fakeModel). Scriverò le mie previsioni e la mia diagnostica. Grazie per il consiglio. –

3

Sembra che sia possibile calcolare l'oggetto lm come di consueto, quindi modificare i coefficienti in seguito modificando l'attributo .

Vai a questa domanda e risultati per maggiori dettagli:

http://tolstoy.newcastle.edu.au/R/e2/help/07/08/24294.html

Non sono sicuro che corrisponde a ciò che si vuole fare, però ...

+0

Che potrebbe funzionare per prevedere, ma per la diagnostica avrei bisogno di mantenere il resto dell'oggetto in sincronizzazione. –