Прогнозирование с новыми данными большей длины

Я хотел бы сделать прогноз для набора данных, который длиннее, чем кадр данных, в котором присутствует мой обучающий набор.

Df<-data.frame(MW=c(192700,117900,99300,54100,37800,29500,20200,740),
              Bands1<-c(0.0427334,0.2393070,0.3206159,0.5732002,0.7228141,0.8164857,0.8462922,0.9273532))

Df.pred<-data.frame(Band2=c(0.4470235,0.4884748,0.5345757,0.5898747,0.6405655,0.6774131,0.7557672,0.7972277,0.8940148,0.9493461,1.0138248,1.0414651))

mod<-lm(log10(Df$MW)~Df$Bands1, data=Df) ## Making the model

Df.pred$PredMW<-predict(lm(log10(Df$MW)~Df$Bands1, data=Df), newdata=Df.pred) ## Asking the model to predict values corresponding to Df.pred based on mod

Кажется, я получаю следующий вывод:

Warning message:
'newdata' had 12 rows but variables found have 8 rows

Как мне это решить? Я прочитал ?predict, а также ?predict.lm. Я не могу понять это.


person Ginko-Mitten    schedule 11.01.2021    source источник


Ответы (1)


Измените имя столбца Df.pred на Bands1, как и в Df:

Df.pred <- data.frame(Bands1 = c(0.4470235, 0.4884748 ,0.5345757 ,0.5898747 ,0.6405655,
                            0.6774131, 0.7557672, 0.7972277, 0.8940148, 0.9493461,
                            1.0138248, 1.0414651))

mod <- lm(log10(MW) ~ Bands1, data = Df) ## Making the model

Df.pred$PredMW <- predict(mod, newdata = Df.pred) ## Asking the model to predict values corresponding to Df.pred based on mod
person Paul    schedule 12.01.2021