# [R] How to formulate quadratic function with interaction terms for the PLS fitting model?

Ng, Kelvin Sai-cheong kscng at connect.hku.hk
Sun Jul 16 08:31:37 CEST 2017

```I see.  Thank you for the help.

On Thu, Jul 13, 2017 at 10:43 PM, Bert Gunter <bgunter.4567 at gmail.com>
wrote:

> Below.
>
> -- Bert
> Bert Gunter
>
>
>
> On Thu, Jul 13, 2017 at 3:07 AM, Luigi Biagini <luigi.biagini at gmail.com>
> wrote:
> > I have two ideas about it.
> >
> > 1-
> > i) Entering variables in quadratic form is done with the command I
> > (variable ^ 2) -
> > plsr (octane ~ NIR + I (nir ^ 2), ncomp = 10, data = gasTrain,
> validation =
> > "LOO"
> > You could also use a new variable NIR_sq <- (NIR) ^ 2
> >
> > ii) To insert a square variable, use syntax I (x ^ 2) - it is very
> > important to insert I before the parentheses.
>
> True, but better I believe: see ?poly.
> e.g. poly(cbind(x1,x2,x3), degree = 2, raw = TRUE) is a full quadratic
> polynomial in x1,x2,x3 .
>
>
> >
> > iii) If you want to make the interaction between x and x ^ 2 use the
> > command ":" -> x: I(x ^ 2)
> >
> > iv) For multiple interactions between x and x ^ 2 use the command "*" ->
> x
> > *I (x ^ 2)
> >
> > i) plsr (octane ~ NIR + NIR_sq, ncomp = 10, data = gasTrain, validation =
> > "LOO") I (x ^ 2)
> > ii)p lsr (octane ~ NIR + I(NIR^2), ncomp = 10, data = gasTrain,
> validation
> > = "LOO") I (x ^ 2)
> > iii)p lsr (octane ~ NIR : I(NIR^2), ncomp = 10, data = gasTrain,
> validation
> > = "LOO") I (x ^ 2)
> > iv)p lsr (octane ~ NIR * I(NIR^2), ncomp = 10, data = gasTrain,
> validation
> > = "LOO") I (x ^ 2)
> >
> > 2 - For your regression, did you plan to use MARS instead of PLS?
> >
> >
> >
> >
> > 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:
> >>  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 octane[i] = a[0] * NIR[0,i] + a[1] * NIR[1,i] +
> ...
> >> I want to fit the data with:
> >> 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.
> >> May I have some help please?
> >> Thanks,
> >> Kelvin
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help