poly(NIR, degree = 2) will work if NIR is a matrix, not a data.frame. The degree argument apparently *must* be explicitly named if NIR is not a numeric vector. AFAICS, this is unclear or unstated in ?poly.
-- Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Jul 13, 2017 at 10:15 AM, David Winsemius <dwinsem...@comcast.net> wrote: > >> On Jul 12, 2017, at 6:58 PM, Ng, Kelvin Sai-cheong <ks...@connect.hku.hk> >> wrote: >> >> Dear all, >> >> I am using the pls package of R to perform partial least square on a set of >> multivariate data. Instead of fitting a linear model, I want to fit my >> data with a quadratic function with interaction terms. But I am not sure >> how. I will use an example to illustrate my problem: >> >> Following the example in the PLS manual: >> ## Read data >> data(gasoline) >> gasTrain <- gasoline[1:50,] >> ## Perform PLS >> gas1 <- plsr(octane ~ NIR, ncomp = 10, data = gasTrain, validation = "LOO") >> >> where octane ~ NIR is the model that this example is fitting with. >> >> NIR is a collective of variables, i.e. NIR spectra consists of 401 diffuse >> reflectance measurements from 900 to 1700 nm. >> >> Instead of fitting with predict.octane[i] = a[0] * NIR[0,i] + a[1] * >> NIR[1,i] + ... >> I want to fit the data with: >> predict.octane[i] = a[0] * NIR[0,i] + a[1] * NIR[1,i] + ... + >> b[0]*NIR[0,i]*NIR[0,i] + b[1] * NIR[0,i]*NIR[1,i] + ... >> >> i.e. quadratic with interaction terms. >> >> But I don't know how to formulate this. > > I did not see any terms in the model that I would have called interaction > terms. I'm seeing a desire for a polynomial function in NIR. For that > purpose, one might see if you get satisfactory results with: > > gas1 <- plsr(octane ~NIR + I(NIR^2), ncomp = 10, data = gasTrain, validation > = "LOO") > gas1 > > I first tried using poly(NIR, 2) on the RHS and it threw an error, which > raises concerns in my mind that this may not be a proper model. I have no > experience with the use of plsr or its underlying theory, so the fact that > this is not throwing an error is no guarantee of validity. Using this > construction in ordinary least squares regression has dangers with > inferential statistics because of the correlation of the linear and squared > terms as well as likely violation of homoscedasticity. > > -- > David. > > >> >> May I have some help please? >> >> Thanks, >> >> Kelvin >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > David Winsemius > Alameda, CA, USA > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.