2015-07-24 2 views
0

У меня есть две переменные, которые сильно коррелированы (хотя и не являются абсолютно линейными, а следовательно, и обобщенной моделью присадок), которые были измерены за один период времени. Я могу построить надежный GAM между ними с большим количеством объяснений отклонения и хорошими графиками проверки. Так, например, на некоторых гипотетических данных (без учета графики проверки и девиации объяснено в данном примере),Прогнозирование значений на основе GAM, проведенных на отдельном фрейме данных

date <- as.data.frame(seq(from = as.POSIXct("2007/9/01"), 
         to = as.POSIXct("2008/3/01"), by = "day")) 
a1 <- as.data.frame(matrix(sample(0:1000, 18.3*10, replace=TRUE), ncol=1)) 
b1 <- as.data.frame(matrix(sample(0:1000, 18.3*10, replace=TRUE), ncol=1)) 
df1 <- cbind(date,a1,b1) 
colnames(df1) <- c("date","a1","b1") 
library(mgcv) 
gam <- gam(a1 ~ s(b1), data = df1) 

Теперь на отдельном dataframe, у меня есть одна из этих переменных, измеренных в течение более длительного периода времени. Есть ли способ предсказать вторую переменную ответа в течение этой продолжительности? Так, например ...

date2 <- as.data.frame(seq(from = as.POSIXct("2006/1/01"), 
         to = as.POSIXct("2008/12/31"), by = "day")) 
a2 <- as.data.frame(matrix(sample(0:1000, 109.6*10, replace=TRUE), ncol=1)) 
df2 <- cbind(date2,a2) 
colnames(df2) <- c("date","a2") 

Я пробовал это, что не похоже на работу.

b2_predict <- predict.gam(gam,df2$a2) 

Я получаю сообщение об ошибке

< b2_predict - predict.gam (гам, df2 $ a2)
Ошибка в model.frame.default (Ф.Ф., данные = NewData, na.action = na.act):
неверный тип (список) для переменной 'b1'

Любая идея, как это исправить?

ответ

0

Может быть, это поможет:

b2_predict <- predict.gam(gam,data.frame(b1=df2$a2)) 
+0

Боюсь, то же самое сообщение об ошибке возникла на моем сценарии –

+0

ОК, chnage линию перед тем b2_predict к: COLNAMES (df2) <- с ("Дата",» a2 ") – grubjesic

+0

Блестяще благодарю вас! Я не видел опечатку в коде выше. –

Смежные вопросы