Learn R Programming

rsm (version 2.06)

rsm: Response-surface regression

Description

Fit a linear model with a response-surface component, and produce appropriate analyses and summaries.

Usage

rsm (formula, data, ...)

## S3 method for class 'rsm':
summary(object, ...)
## S3 method for class 'summary.rsm':
print(x, ...)

loftest (object)

canonical (object, threshold = 1e-04)
xs (object, ...)

## S3 method for class 'rsm':
codings(object)

Arguments

formula
Formula to pass to lm. The model must include at least one FO(), SO(), TWI(), or PQ() term to define the response-surface portion of the model.
data
data argument to pass to lm.
...
In rsm, arguments that are passed to lm, summary.lm, or canonical, as appropriate. In summary, and print<
object
An object of class rsm
threshold
Threshold for canonical analysis -- see Value
x
An object produced by summary

Value

  • rsm returns an rsm object, which is a lm object with additional members as follows:
  • orderThe order of the model: 1 for first-order, 1.5 for first-order plus interactions, or 2 for a model that contains square terms.
  • bThe first-order response-surface coefficients.
  • BThe matrix of second-order response-surface coefficients, if present.
  • labelsLabels for the response-surface terms. These make the summary much more readable.
  • codingCoding formulas, if provided in the codings argument or if the data argument passed to lm is a coded.data object.
  • summary is the summary method for rsm objects. It returns an object of class summary.rsm, which is an extension of the summary.lm class with these additional list elements:
  • saUnit-length vector of the path of steepest ascent (first-order models only).
  • canonicalCanonical analysis (second-order models only) from canonical
  • lofANOVA table including lack-of-fit test.
  • codingCoding formulas in parent rsm object.
  • Its print method shows the regression summary, followed by an ANOVA and lack-of-fit test. For first-order models, it shows the direction of steepest ascent, and for second-order models, it shows the canonical analysis of the response surface. loftest returns an anova object that tests the fitted model against a model that interpolates the means of the response-surface-variable combinations. canonical returns a list with elements xs, the stationary point, and eigen, the eigenanalysis of the matrix B of second-order coefficients. Any eigenvalues less than threshold are taken to be zero, thus modeling stationary ridges or valleys in their corresponding canonical directions. Setting a larger threshold may improve the numerical conditioning and bring the stationary point much closer to the design center, thus avoiding as much extrapolation. See vignette("rsm") for more details. xs returns just the stationary point. codings returns a list of coding formulas if the model was fitted to coded.data, or NULL otherwise.

Details

In rsm, the model formula must contain at least an FO term; optionally, you can add one or more TWI() terms and/or a PQ() term. All variables that appear in TWI or PQ must be included in FO. For convenience, specifying SO() is the same as including FO(), TWI(), and PQ(), and is the safe, preferred way of specifying a full second-order model. The variables in FO comprise the variables to consider in response-surface methods. They need not all appear in TWI and PQ terms; and more than one TWI term is allowed. For example, the following two model formulas are equivalent: resp ~ Oper + FO(x1,x2,x3,x4) + TWI(x1,x2,x3) + TWI(x2,x3,x4) + PQ(x1,x3,x4) resp ~ Oper + FO(x1,x2,x3,x4) + TWI(formula = ~x1*x2*x3 + x2*x3*x4) + PQ(x1,x3,x4) The first version, however, creates duplicate x2:x3 terms -- which rsm can handle but there may be warning messages if it is subsequently used for predictions or plotted in contour.lm. In summary.rsm, any ... arguments are passed to summary.lm, except for threshold, which is passed to canonical.

References

Lenth RV (2009) ``Response-Surface Methods in R, Using rsm'', Journal of Statistical Software, 32(7), 1--17. http://www.jstatsoft.org/v32/i07/.

See Also

FO, SO, lm, summary, coded.data

Examples

Run this code
library(rsm)
CR <- coded.data (ChemReact, x1~(Time-85)/5, x2~(Temp-175)/5)

### 1st-order model, using only the first block
CR.rs1 <- rsm (Yield ~ FO(x1,x2), data=CR, subset=1:7) 
summary(CR.rs1)

### 2nd-order model, using both blocks
CR.rs2 <- rsm (Yield ~ Block + SO(x1,x2), data=CR) 
summary(CR.rs2)

### Example of a rising-ridge situation from Montgomery et al, Table 6.2
RRex <- ccd(Response~A+B, n0=c(0,3), alpha="face", randomize=FALSE, oneblock=TRUE)
RRex$Response <- c(52.3,5.3,46.7,44.2,58.5,33.5,32.8,49.2,49.3,50.2,51.6)
RRex.rsm <- rsm(Response ~ SO(A,B), data = RRex)
canonical(RRex.rsm)
canonical(RRex.rsm, threshold = 1)  # xs is MUCH closer to the experiment

Run the code above in your browser using DataLab