plotting.rsa {RSAtools} | R Documentation |
Plots the response surface of a polynomial model of first, second, or third degree
Description
Plots the response surface of a model based on polynomial families (37 families), saturated polynomials, or user-specific polynomials.
Usage
plotting.rsaCOEF(
x = 0,
y = 0,
x2 = 0,
y2 = 0,
xy = 0,
w = 0,
wx = 0,
wy = 0,
x3 = 0,
xy2 = 0,
x2y = 0,
y3 = 0,
b0 = 0,
type = "3d",
model = "CUBIC",
acceleration = c(0, 0),
FAST = TRUE,
n_sample = 100,
xlim = NULL,
ylim = NULL,
zlim = NULL,
xlab = NULL,
ylab = NULL,
zlab = NULL,
main = "",
surface = "predict",
lambda = NULL,
suppress.surface = FALSE,
suppress.box = FALSE,
suppress.grid = FALSE,
suppress.ticklabels = FALSE,
rotation = list(x = -63, y = 32, z = 15),
label.rotation = list(x = 19, y = -40, z = 92),
gridsize = 21,
bw = FALSE,
legend = TRUE,
param = TRUE,
coefs = FALSE,
axes = c("LOC", "LOIC", "r1_LOC", "r2_LOC", "r1_LOIC", "r2_LOIC", "a1_LOC", "a2_LOC",
"a1_LOIC", "a2_LOIC"),
axesStyles = list(LOC = list(lty = "solid", lwd = 2, col = ifelse(bw == TRUE,
"black", "blue")), LOIC = list(lty = "solid", lwd = 2, col = ifelse(bw == TRUE,
"black", "blue")), PA1 = list(lty = "dotted", lwd = 2, col = ifelse(bw == TRUE,
"black", "gray30")), PA2 = list(lty = "dotted", lwd = 2, col = ifelse(bw == TRUE,
"black", "gray30")), r1_LOC = list(lty = "solid", lwd = 2, col = ifelse(bw == TRUE,
"black", "green")), r2_LOC = list(lty = "solid", lwd = 2, col = ifelse(bw == TRUE,
"black", "green")), r1_LOIC = list(lty = "solid", lwd = 2, col = ifelse(bw ==
TRUE, "black", "red")), r2_LOIC = list(lty = "solid", lwd = 2, col = ifelse(bw ==
TRUE, "black", "red")), a1_LOC = list(lty = "twodash", lwd = 2, col = ifelse(bw ==
TRUE, "black", "green")), a2_LOC = list(lty = "twodash", lwd = 2, col = ifelse(bw ==
TRUE, "black", "green")), a1_LOIC = list(lty = "twodash", lwd = 2, col = ifelse(bw ==
TRUE, "black", "red")), a2_LOIC = list(lty = "twodash", lwd = 2, col = ifelse(bw ==
TRUE, "black", "red"))),
project = c("contour"),
maxlines = FALSE,
cex.tickLabel = 1,
cex.axesLabel = 1,
cex.main = 1,
points = list(data = NULL, n_random = NULL, show = NA, value = "raw", jitter = 0,
color = "black", cex = 0.5, out.mark = FALSE),
fit = NULL,
link = "identity",
tck = c(1.5, 1.5, 1.5),
distance = c(1.3, 1.3, 1.4),
border = FALSE,
contour = list(show = FALSE, color = "grey40", highlight = c()),
hull = NA,
showSP = FALSE,
showSP.CI = FALSE,
pal = NULL,
pal.range = "box",
pad = 0,
claxes.alpha = 0.05,
demo = FALSE,
...
)
plotting.rsa(x, ...)
Arguments
x |
Either an RSA object (returned by the |
y |
Y coefficient |
x2 |
X^2 coefficient |
y2 |
Y^2 coefficient |
xy |
XY interaction coefficient |
w |
W coefficient (for (un)constrained absolute difference model) |
wx |
WX coefficient (for (un)constrained absolute difference model) |
wy |
WY coefficient (for (un)constrained absolute difference model) |
x3 |
X^3 coefficient |
xy2 |
XY^2 coefficient |
x2y |
X^2Y coefficient |
y3 |
Y^3 coefficient |
b0 |
Intercept |
type |
|
model |
If x is an RSA object: from which model should the response surface be computed? |
acceleration |
Rates of accelerations along the LOC and LOIC to be inspected (0< |rate| < 1). Passed on internally to |
FAST |
If FALSE, will also project response over LOC and LOIC. If TRUE, will only project the response surface (faster option). |
n_sample |
Number of random draws to consider to find extrema. This option is used for large samples to increase speed in preliminary analyses, but it is not recommended for published results). Passed on internally to |
xlim |
Limits of the x axis |
ylim |
Limits of the y axis |
zlim |
Limits of the z axis |
xlab |
Label for x axis |
ylab |
Label for y axis |
zlab |
Label for z axis |
main |
the main title of the plot |
surface |
Method for the calculation of the surface z values. "predict" takes the predicted values from the model, "smooth" uses a thin plate smoother (function |
lambda |
lambda parameter for the smoother. Default (NULL) means that it is estimated by the smoother function. Small lambdas around 1 lead to rugged surfaces, big lambdas to very smooth surfaces. |
suppress.surface |
Should the surface be suppressed (only for |
suppress.box |
Should the surrounding box be suppressed (only for |
suppress.grid |
Should the grid lines be suppressed (only for |
suppress.ticklabels |
Should the numbers on the axes be suppressed (only for |
rotation |
Rotation of the 3d surface plot (when type == "3d") |
label.rotation |
Rotation of the axis labls (when type == "3d") |
gridsize |
Number of grid nodes in each dimension |
bw |
Print surface in black and white instead of colors? |
legend |
Print color legend for z values? |
param |
Should the surface parameters a1 to a5 be shown on the plot? In case of a 3d plot a1 to a5 are printed on top of the plot; in case of a contour plot the principal axes are plotted. Surface parameters are not printed for cubic surfaces. |
coefs |
Should the regression coefficients b1 to b5 (b1 to b9 for cubic models) be shown on the plot? (Only for 3d plot) |
axes |
*A vector of strings specifying the axes that should be plotted. Can be any combination of c("LOC", "LOIC","r1_LOC","r2_LOC","r1_LOIC","r2_LOIC","a1_LOC","a2_LOC","a1_LOIC","a2_LOIC"). LOC = line of congruence, LOIC = line of incongruence, r1_LOC = first reversal point on LOC,r2_LOC = second reversal point on LOC,r1_LOIC = first reversal point on LOIC,r2_LOIC = second reversal point on LOIC,a1_LOC = first acceleration point on LOC,a2_LOC = second acceleration point on LOC,a1_LOIC = first acceleration point on LOIC,a2_LOIC = second acceleration point on LOIC. |
axesStyles |
*Define the visual styles of the axes LOC,LOIC,r1_LOC,r2_LOC,r1_LOIC,r2_LOIC,a1_LOC,a2_LOC,a1_LOIC,a2_LOIC. Provide a named list: |
project |
*A vector of graphic elements that should be projected on the floor of the cube. Can include any combination of c("LOC", "LOIC", "contour", "points"). Note that projected elements are plotted in the order given in the vector (first elements are plotted first and overplotted by later elements). |
maxlines |
Should the maximum lines be plotted? (red: maximum X for a given Y, blue: maximum Y for a given X). Works only in type="3d" |
cex.tickLabel |
Font size factor for tick labels |
cex.axesLabel |
Font size factor for axes labels |
cex.main |
Factor for main title size |
points |
A list of parameters which define the appearance of the raw scatter points:
As a shortcut, you can also set |
fit |
Do not change that parameter (internal use only) |
link |
Link function to transform the z axes. Implemented are "identity" (no transformation; default), "probit", and "logit" |
tck |
A vector of three values defining the position of labels to the axes (see ?wireframe) |
distance |
A vector of three values defining the distance of labels to the axes |
border |
Should a thicker border around the surface be plotted? Sometimes this border leaves the surrounding box, which does not look good. In this case the border can be suppressed by setting |
contour |
A list defining the appearance of contour lines (aka. height lines). show=TRUE: Should the contour lines be plotted on the 3d wireframe plot? (Parameter only relevant for |
hull |
Plot a bag plot on the surface (This is a bivariate extension of the boxplot. 50% of points are in the inner bag, 50% in the outer region). See Rousseeuw, Ruts, & Tukey (1999). |
showSP |
Plot the stationary point? (only relevant for |
showSP.CI |
Plot the CI of the stationary point? (only relevant for |
pal |
A palette for shading. |
pal.range |
Should the color range be scaled to the box ( |
pad |
Pad controls the margin around the figure (positive numbers: larger margin, negative numbers: smaller margin) |
claxes.alpha |
Alpha level that is used to determine the axes K1 and K2 that demarcate the regions of significance for the cubic models "CL" and "RRCL" |
demo |
Do not change that parameter (internal use only) |
... |
Additional parameters passed to the plotting function (e.g., sub="Title"). A useful title might be the R squared of the plotted model: |
Details
This function plots the response surface in 3D or 2D. The function was adapted from the function plot.RSA (RSA package), by adding features for new polynomial families (+27 families, +user-specific polynomial) and new curvature probing tests (+accelerations, +LOIC extrema; Núñez-Regueiro & Juhel, 2022, 2024b). When curvatures are found, lines are projected that intersect inflection points (i.e., reversal or acceleration points) along the lines of congruence (x=y; in green) and incongruence (x=-y; in red), following derivatives of response curvatures (Núñez-Regueiro & Juhel, 2024a).
Value
A plot of the response surface
References
Rousseeuw, P. J., Ruts, I., & Tukey, J. W. (1999). The Bagplot: A Bivariate Boxplot. The American Statistician, 53(4), 382-387. doi:10.1080/00031305.1999.10474494
Núñez-Regueiro, F., Juhel, J. (2022). Model-Building Strategies in Response Surface Analysis Manuscript submitted for publication.
Núñez-Regueiro, F., Juhel, J. (2024a). Response Surface Analysis for the Social Sciences I: Identifying Best-Fitting Polynomial Solutions Manuscript submitted for publication.
Núñez-Regueiro, F., Juhel, J. (2024b). Response Surface Analysis for the Social Sciences II: Combinatory Rationales for Complex Polynomial Models Manuscript submitted for publication.
See Also
Examples
######PLOT RESPONSE SURFACE OF FM26_PARALLELASYMWEAK
PLOTsim3D <- plotting.rsa(RSA_step1,model="FM26_PARALLELASYMWEAK",type="3d",
acceleration=c(0,-0.3),points=list(show=TRUE, value="predicted"),
legend = FALSE,distance = c(1.2, 1.2, 1.2),cex.tickLabel = 0.6,
cex.axesLabel = 0.8,xlim=c(-3,3),ylim=c(-3,3),zlim=c(-3,3),hull=FALSE)
PLOTsim3D