Regression Surface Containing Interaction

Share:

Description

To plot a three dimentional figure of a multiple regression surface containing one two-way interaction.

Usage

1
2
3
4
5
intr.plot(b.0, b.x, b.z, b.xz, x.min = NULL, x.max = NULL, z.min = NULL, 
z.max = NULL, n.x = 50, n.z = 50, x = NULL, z = NULL, col = "lightblue", 
hor.angle = -60, vert.angle = 15, xlab = "Value of X", zlab = "Value of Z", 
ylab = "Dependent Variable", expand = 0.5, lines.plot=TRUE, col.line = "red", 
line.wd = 2, gray.scale = FALSE, ticktype="detailed", ...)

Arguments

b.0

the intercept

b.x

regression coefficient for predictor x

b.z

regression coefficient for predictor z

b.xz

regression coefficient for the interaction of predictors x and z

x.min, x.max, z.min, z.max

ranges of x and z. The regression surface defined by these limits will be plotted.

n.x

number of elements in predictor vector x; number of points to be plotted on the regression surface; default is 50

n.z

number of elements in predictor vector z; number of points to be plotted on the regression surface; default is 50

x

a specific predictor vector x, used instead of x.max and x.min

z

a specific predictor vector z, used instead of z.max and z.min

col

color of the regression surface; default is lightbule

hor.angle

rotate the regression surface horizontally; default is -60 degree

vert.angle

rotate the regression surface vertically; default is 15 degree

xlab

title for the axis which the predictor x is on

zlab

title for the axis which the predictor z is on

ylab

title for the axis which the dependent y is on

expand

default is 0.5; expansion factor applied to the axis of the dependent variable. Often used with 0 < expand < 1 to shrink the plotting box in the direction of the dependent variable's axis.

lines.plot

whether or not to plot on the regression surface regression lines holding z at values 0, 1, -1, 2, -2 above the mean; default is TRUE.

col.line

the color of regression lines plotted on the regression surface; default is red

line.wd

the width of regression lines plotted on the regression surface; default is 2

gray.scale

whether or not to plot the figure black and white; default is FALSE

ticktype

whether the axes should be plotted with ("detailed") or without ("simple") tick marks

...

allows one to potentially include parameter values for inner functions

Details

The user can input either the limits of x and z, or specific x and z vectors, to draw the regression surface. If the user inputs simply the limits of the predictors, the function would generate predictor vectors for plotting. If the user inputs specific predictor vectors, the function would plot the regression surface based on those vectors.

Note

If the user enters specific vectors instead of the ranges of predictors, please make sure elements in those vectors are in ascending order. This is required by function persp, which is used within this function.

Author(s)

Keke Lai (University of California – Merced) and Ken Kelley (University of Notre Dame; KKelley@ND.Edu)

References

Cohen, J., Cohen, P., West, S. G. and Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Erlbaum.

See Also

intr.plot.2d, persp

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
##  A way to replicate the example given by Cohen et al. (2003) (pp. 258--263):
##  The regression equation with interaction is y=.2X+.6Z+.4XZ+2
##  To plot a regression surface and regression lines of Y on X holding Z 
##  at -1, 0, and 1 standard deviation above the mean

x<- c(0,2,4,6,8,10)
z<-c(0,2,4,6,8,10)
intr.plot(b.0=2, b.x=.2, b.z=.6, b.xz=.4, x=x, z=z)

## input limits of the predictors instead of specific x and z predictor vectors
intr.plot(b.0=2, b.x=.2, b.z=.6, b.xz=.4, x.min=5, x.max=10, z.min=0, z.max=20)

intr.plot(b.0=2, b.x=.2, b.z=.6, b.xz=.4, x.min=0, x.max=10, z.min=0, z.max=10, 
col="gray", hor.angle=-65, vert.angle=10)

##  To plot a black-and-white figure
intr.plot(b.0=2, b.x=.2, b.z=.6, b.xz=.4, x.min=0, x.max=10, z.min=0, z.max=10, 
gray.scale=TRUE)

## to adjust the tick marks on the axes
intr.plot(b.0=2, b.x=.2, b.z=.6, b.xz=.4, x.min=0, x.max=10, z.min=0, z.max=10, 
ticktype="detailed", nticks=8)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.