с использованием прогнозирования со списком объектов lm ()

У меня есть данные, по которым я регулярно провожу регрессии. Каждому «фрагменту» данных соответствует разная регрессия. Например, у каждого состояния может быть своя функция, объясняющая зависимое значение. Это похоже на типичную проблему типа «разделить-применить-объединить», поэтому я использую пакет plyr. Я легко могу создать список объектов lm () , который работает хорошо. Однако я не могу полностью понять, как я использую эти объекты позже для прогнозирования значений в отдельном data.frame.

Вот полностью надуманный пример, иллюстрирующий то, что я пытаюсь сделать:

# setting up some fake data
set.seed(1)
funct <- function(myState, myYear){
   rnorm(1, 100, 500) +  myState + (100 * myYear) 
}
state <- 50:60
year <- 10:40
myData <- expand.grid( year, state)
names(myData) <- c("year","state")
myData$value <- apply(myData, 1, function(x) funct(x[2], x[1]))
## ok, done with the fake data generation. 

require(plyr)

modelList <- dlply(myData, "state", function(x) lm(value ~ year, data=x))
## if you want to see the summaries of the lm() do this:  
    # lapply(modelList, summary)

state <- 50:60
year <- 50:60
newData <- expand.grid( year, state)
names(newData) <- c("year","state") 
## now how do I predict the values for newData$value 
   # using the regressions in modelList? 

Итак, как мне использовать объекты lm () , содержащиеся в modelList , для прогнозирования значений с помощью Год и независимые от состояния значения из newData ?

18
задан Shreyas Karnik 13 December 2011 в 22:52
поделиться