From: Larry Howe <larry.howe_at_comjet.com>

Date: Sat 20 May 2006 - 04:30:36 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat May 20 04:36:31 2006

Date: Sat 20 May 2006 - 04:30:36 EST

I have had a similar issue recently, and looking at the archives of this list, I see other cases of it as well. It took me a while to figure out that the variable name in the data frame must be identical to the variable name in the model. I don't see this mentioned in the documentation of predict.lm, and R issues no warning in this case.

How would I go about officially requesting that this is mentioned, either in the documentation, or as a warning?

Sincerely,

Larry Howe

On Friday May 19 2006 13:26, Prof Brian Ripley wrote:

> data.frame(x=newData) will not have any entries called x: You supplied

*> newdata, so assuming you means newdata,
**>
**> > data.frame(x=newdata)
**>
**> x.1 x.2 x.3 x.4 x.5 x.6
**> 1 1 1 1 1 1 1
**>
**> has 6 columns none of which is labelled x.
**>
**> If you read the help for lm, it does not mention having a matrix on the
**> rhs of a formula, and the help for data.frame does explain how it works.
**>
**> predict(model, data.frame(x=I(newData)))
**>
**> might work.
**>
**> On Fri, 19 May 2006, Richard Lawn wrote:
**> > I am writing a function to assess the out of sample predictive
**> > capabilities of a time series regression model. However lm.predict isn't
**> > behaving as I expect it to. What I am trying to do is give it a set of
**> > explanatory variables and have it give me a single predicted value using
**> > the lm fitted model.
**> >
**> >> model = lm(y~x)
**> >> newdata=matrix(1,1,6)
**> >> pred = predict.lm(model,data.frame(x=newData));
**> >
**> > Warning message:
**> > 'newdata' had 6 rows but variable(s) found have 51 rows.
**> >
**> >> pred = predict.lm(model,data.frame(newData));
**> >
**> > Warning message:
**> > 'newdata' had 6 rows but variable(s) found have 51 rows.
**> >
**> > y is a vector of length 51.
**> > x is a 6x51 matrix
**> > newdata is a matrix of the explanatory variables I'd like a prediction
**> > for.
**> >
**> > The predict.lm function is giving me 51 (=number of observations I had)
**> > numbers, rather than the one number I do want - the predicted value of y,
**> > given the values of x I have supplied it.
**> >
**> > Many thanks,
**> > R
**> >
**> > ______________________________________________
**> > R-help@stat.math.ethz.ch mailing list
**> > https://stat.ethz.ch/mailman/listinfo/r-help
**> > PLEASE do read the posting guide!
**> > http://www.R-project.org/posting-guide.html
*

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat May 20 04:36:31 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Sat 20 May 2006 - 08:10:15 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*