У меня есть данные, которые я регулярно запускаю регрессии. Каждый «кусок» данных подходит для другой регрессии. Каждое состояние, например, может иметь другую функцию, которая объясняет зависимое значение. Это похоже на типичную проблему типа «split-apply-comb», поэтому я использую пакет plyr. Я могу легко создать список объектов lm()
, который хорошо работает. Однако я не могу полностью обернуть голову тем, как использовать эти объекты позже, чтобы предсказать значения в отдельном data.frame.используя прогноз со списком объектов lm()
Вот совершенно надуманный пример, иллюстрирующий то, что я пытаюсь сделать:
# 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
?
, что полностью гвозди его! Спасибо, много. Можете ли вы объяснить, откуда взялась data.frame 'piece'? Это автогенерируется ddply? –
@JDLong: '.fun' в конечном итоге вызывается в кадре данных с именем' шт'. Но, как отметил @BrianDiggs в чате, на это нельзя положиться. Лучше обернуть анонимную функцию (см. Мое обновление). –
привет, если бы вы могли взглянуть на мой вопрос, было бы замечательно http://stackoverflow.com/questions/43427392/apply-predict-between-data-frames-within-two-lists. благодаря! – aaaaa