solution :
lm_colors <- lm(avg_impressions ~ poly(ad_position, 13), data=colors_train_agg)
Reason :
you can compare yourselves how model.matrix()
generates the matrix to score the data inside predict()
. So when we pass model(df$var1~df$var2)
, model.matrix()
looks for df$var1
and df$var2
to generate the matrix- but this has dimensions of training data (df). Problem of having different names in the model
and in newdata
go through below steps( if you are interested in knowing the cause) :
model1 <- lm(var1~var2, data = df)
model2 <- lm(df$var1~df$var2)
debug(predict)
predict(model1, newdata = df1)
predict(model2, newdata = df1)