[Rd] Possible bug in predict.lm when x is a poly

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Tue Mar 30 00:24:24 CEST 2021


   Any particular reason you're using I() around your poly()?  That 
looks weird to me ... and it works fine if you don't do that ...  {AND, 
I think your result is *incorrect* when you have 3 observations in your 
response}.

   Basically, you have managed to short-circuit the (admittedly) obscure 
machinery that R uses to generate the correct bases when predicting from 
new data (see ?makepredictcall ...)

On 3/29/21 6:04 PM, Kenny Bell wrote:
> Hi all,
> 
> As always, thank you all for your incredible work maintaining and improving
> R.
> 
> mdl <- lm(data = mtcars,
>            mpg ~ I(poly(disp, 2)))
> 
> predict(mdl, newdata = data.frame(disp = c(120, 120)))
> #> Error in poly(disp, 2): 'degree' must be less than number of unique
> points
> 
> predict(mdl, newdata = data.frame(disp = c(120, 121, 122)))
> #>         1         2         3
> #> 43.937856 12.617762  3.716257
> 
> The predict function seems to require a sufficiently high number of unique
> values in newdata when the RHS is a poly. Of course, I would have expected
> the output here to be:
> 
> #>         1         2
> #> 43.937856 43.937856
> 
> If people agree, I can submit this to bugzilla.
> 
> Kind regards,
> Kenny
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list