3 d plotting › guides › rcourse › plot-3d › plots-3d.pdf · kinds of 3d plot static\draw on...

96
Overview persp scatter3d Scatterplot3d rockchalk 3 D Plotting Paul E. Johnson 1 2 1 Department of Political Science 2 Center for Research Methods and Data Analysis, University of Kansas 2013 Descriptive K.U.

Upload: others

Post on 26-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

3 D Plotting

Paul E. Johnson1 2

1Department of Political Science

2Center for Research Methods and Data Analysis, University of Kansas

2013

Descriptive K.U.

Page 2: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 3: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 4: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Kinds of 3d Plot

Static “draw on the screen, like R plot”

persp: in the R base graphicscloud in lattice packagescatterplot3d

scatter3d: by John Fox for the car package, uses OpenGL (computer3d programming library)

interactive and easy to get startedcan be accessed from Fox’s Rcmdr package interfacefinal output not as likely to be “publishable”

Descriptive K.U.

Page 5: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Here’s what we usually want the 3d Plot For

Show the “cloud” of points scattered in space

Show the “predicted plane” of a fitted regression model

persp can do these things, although it is somewhat tough to grasp atfirst

Why keep trying: persp is in the base of R, so if something is wrongwith it, it is likely somebody will know how to fix it.

If you show up in r-help asking about 3D plotting, many folks therewill suggest you learn persp, since most other routines draw upon itsconcepts.

Descriptive K.U.

Page 6: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 7: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

persp is the Place to Start

The key thing to understand: if your variables are x1, x2 (theinputs), and z (the output), persp does not “want” your variables likethis

p e r s p ( x1 , x2 , z )

persp requires “plotting sequences” for x1 and for x2. These are notobserved values, but rather sequences from the minimum score tothe maximum.

For “real data,”x1, for example, get the range, then make asequence:

x 1 r ← ran ge ( x1 )x1seq ← seq ( x 1 r [ 1 ] , x 1 r [ 2 ] , l e n g t h . o u t = 30)## or use the rockchalk short-cut

x1seq ← p l o t S e q ( x1 , l e n g t h . o u t = 30)

Descriptive K.U.

Page 8: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

For z, persp wants a matrix

z has a value for eachcombination of x1seq andx2seq

Various ways to create, butthe “outer” function is oftenconvenient.

z ← o u t e r ( x1seq ,x2seq , FUN)

FUN is a function thatreturns a value for eachcombination of values in the2 sequences

x2seqx21 x22 x23

x11 z11 z12 z13x1seq x12 z21 z22 z23

x13 z31 z32 z33

z11 = f (x11, x21), and so forth

Descriptive K.U.

Page 9: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Why Does R Call it ”outer?”

Remember, an “inner product” in linear algebra

[a b c d

] efgh

= ae + bf + cg + dh =?? (1)

An “outer product” isefgh

[ a b c d]

=

ea eb ec edfa fb fc fdga gb gc gdha hb hc hd

(2)

Descriptive K.U.

Page 10: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Create Some Data for a Regression

x1 ← rnorm ( 1 0 0 ) ; x2 ← −4 + r p o i s (1 00 , lambda=4) ;y = 0 . 1 * x1 + 0 . 2 *x2 + rnorm (1 0 0 ) ;dat ← d a t a . f r a m e ( x1 , x2 , y ) ; rm ( x1 , x2 , y )m1 ← lm ( y ∼ x1 + x2 , data=dat )summary (m1)

C a l l :lm ( f o r m u l a = y ∼ x1 + x2 , data = dat )

R e s i d u a l s :Min 1Q Median 3Q Max

−2.29298 −0.55317 0 .02582 0 .56164 2 .73118

C o e f f i c i e n t s :E s t i m a t e S t d . E r r o r t v a l u e Pr (>| t | )

( I n t e r c e p t ) 0 .05245 0 .09697 0 . 5 4 1 0 . 5 8 9 8

Descriptive K.U.

Page 11: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Create Some Data for a Regression ...

x1 0 .20560 0 .08538 2 . 4 0 8 0 .0 1 7 9 *

x2 0 .20855 0 .04473 4 . 6 6 2 1e−05 **

*

−−−S i g n i f . codes : 0 ' *** ' 0 . 0 0 1 ' ** ' 0 . 0 1 ' * ' 0 . 0 5 ' .

' 0 . 1 ' ' 1

R e s i d u a l s t a n d a r d e r r o r : 0 . 9 4 2 on 97 d e g r e e s o ff reedom

M u l t i p l e R2 : 0 .2082 , A d j u s t e d R2 : 0 . 1 9 1 9F− s t a t i s t i c : 12 . 7 6 on 2 and 97 DF, p−value : 1

.207e−05

Descriptive K.U.

Page 12: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Create the predictor sequences

x 1 r ← rang e ( dat $ x1 )x1seq ← seq ( x 1 r [ 1 ] , x 1 r [ 2 ] , l e n g t h = 30)x 2 r ← rang e ( dat $ x2 )x2seq ← seq ( x 2 r [ 1 ] , x 2 r [ 2 ] , l e n g t h = 30)

Descriptive K.U.

Page 13: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Create the z matrix

z ← o u t e r ( x1seq , x2seq , f u n c t i o n ( a , b ) p r e d i c t (m1, newdata = d a t a . f r a m e ( x1 = a , x2 = b ) ) )

Descriptive K.U.

Page 14: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Persp with No Special Settings

p e r s p ( x = x1seq , y = x2seq , z = z )

x1seq

x2seq

z

Descriptive K.U.

Page 15: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Many Opportunities for Beautification

xlim,ylim,zlim play same role as in ordinary R plots

xlab, ylab, zlab same

theta and phi control the viewing angle.

theta moves the viewing angle left and rightphi moves it up and down.

Example, this “raises” one’s viewing angle (a negative value wouldlower it)

p e r s p ( x=x1seq , y=x2seq , z=z , p h i =40)

Example, this “rotates” one’s viewing angle to the left

p e r s p ( x=x1seq , y=x2seq , z=z , t h e t a=−20)

Descriptive K.U.

Page 16: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

pe r sp ( x = x1seq , y = x2seq , z= z , z l im = c (−3, 3 ) , t h e t a= 40)

pe r sp ( x = x1seq , y = x2seq , z= z , z l im = c (−3, 3 ) , t h e t a= 40 , ph i = −20)

x1seq x2seq

z

x1seqx2seq

z

Descriptive K.U.

Page 17: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Everything Else We Draw Has to be ”Perspective Adjusted”

This “looks” 3-dimensional, but it is really a flat two dimensionalscreen

Thus, a point to be inserted at (x1 = 0.3, x2 = −2, z = 2)

has to be translated into a position in the 2-dimensional screen

To do that, we use

A “Viewing Transformation Matrix” that persp createstrans3d, a function that converts a 3 dimensional coordinate into a 2dimensional coordinate

Descriptive K.U.

Page 18: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Add Points on a perspective plot

r e s ← p e r s p ( x = x1seq , y = x2seq , z = z , z l i m = c(−3 , 3 ) , t h e t a = 40 , p h i = −15)

mypo ints ← t r a n s 3 d ( dat $x1 , dat $x2 , dat $y , pmat =r e s )

p o i n t s ( mypoints , pch = 1 , c o l = ”r e d ”)

persp generates “res” as a plot by-product

res is the perspective transformation matrix (used by trans3d)

mypoints is a 2 dimensional value in the “surface of the computerscreen” displaying the 3d plot.

Descriptive K.U.

Page 19: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Points overlaid on persp plot via trans3d

x1seq x2seq

z

●●

●●

●●

●●

●●

●●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●●

Descriptive K.U.

Page 20: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Remember the Fitted Regression model?

x1 ← rnorm (100) ; x2 ← −4 + r p o i s (100 , lambda=4) ;y = 0 . 1 * x1 + 0 . 2 *x2 + rnorm (100) ;dat ← da t a . f r ame ( x1 , x2 , y ) ; rm ( x1 , x2 , y )m1 ← lm ( y ∼ x1 + x2 , data=dat )summary (m1)

C a l l :lm ( fo rmu la = y ∼ x1 + x2 , data = dat )

R e s i d u a l s :Min 1Q Median 3Q Max

−2.29298 −0.55317 0 .02582 0 .56164 2 .73118

C o e f f i c i e n t s :Es t imate S td . E r r o r t v a l u e Pr (>| t | )

( I n t e r c e p t ) 0 .05245 0 .09697 0 .541 0 .5898x1 0 .20560 0 .08538 2 .408 0 .0179 *

x2 0 .20855 0 .04473 4 .662 1e−05 ***

−−−S i g n i f . codes : 0 ' *** ' 0 .001 ' ** ' 0 .01 ' * ' 0 .05 ' . ' 0 . 1 ' ' 1

Re s i d u a l s t anda rd e r r o r : 0 .942 on 97 deg r e e s o f f reedomMu l t i p l e R2 : 0 .2082 , Ad jus ted R2 : 0 .1919F− s t a t i s t i c : 12 . 76 on 2 and 97 DF, p−value : 1 .207e−05

Descriptive K.U.

Page 21: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Now draw dotted lines from Predicted to Observed Values

This took 8-10 tries

Calculate predicted (vpred) and observed values (vobs)

Use segments to draw

r e s ← p e r s p ( x = x1seq , y = x2seq , z = z , z l i m = c(−3 , 3 ) , t h e t a = 40 , p h i = −15)

mypo ints ← t r a n s 3 d ( dat $x1 , dat $x2 , dat $y , pmat =r e s )

p o i n t s ( mypoints , pch = 1 , c o l = ”r e d ”)v p r ed ← t r a n s 3 d ( dat $x1 , dat $x2 , f i t t e d (m1) ,

pmat = r e s )vobs ← t r a n s 3 d ( dat $x1 , dat $x2 , dat $y , pmat =

r e s )segments ( v pr e d $x , v p r e d $y , vobs $x , vobs $y , c o l = ”

r e d ” , l t y = 2)

Descriptive K.U.

Page 22: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

This Makes Me Happy

x1seq x2seq

z

●●

●●

●●

●●

●●

●●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●●

Descriptive K.U.

Page 23: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Plotting Response Surfaces

People who fit nonlinear models often want to see the gracefulcurvature of their result

Often nice to have some color for drama

Descriptive K.U.

Page 24: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Plotting Response Surfaces: Surprisingly Easy

x1 ← rnorm ( 1 0 0 ) ; x2 ← r p o i s (100 , lambda=4)l o g i s t ← f u n c t i o n ( x1 , x2 ) {y ← 1/ (1 + exp ( (−1) * (−3 + 0 . 6 *x1 + . 5 *x2 ) ) ) }

par ( bg = ”w h i t e ”)x 1 r ← rang e ( x1 ) ; x1seq ← seq ( x 1 r [ 1 ] , x 1 r [ 2 ] ,

l e n g t h = 30)x 2 r ← rang e ( x2 ) ; x2seq ← seq ( x 2 r [ 1 ] , x 2 r [ 2 ] ,

l e n g t h = 30)z ← o u t e r ( x1seq , x2seq , l o g i s t )p e r s p ( x = x1seq , y = x2seq , z = z , t h e t a = −30 ,

z l i m = c (−0.2 , 1 . 2 ) )

Descriptive K.U.

Page 25: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

A Curved Surface, but No Color (yet)

x1seq

x2seq

z

Descriptive K.U.

Page 26: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

n r z ← nrow ( z )ncz ← n c o l ( z )# Create a function interpolating colors in the

range of specified colors

j e t . c o l o r s ← c o l o r R a m p P a l e t t e ( c ( ”b l u e ” , ”g r e e n ”))

# Generate the desired number of colors from this

palette

n b c o l ← 100c o l o r ← j e t . c o l o r s ( n b c o l )# Compute the z-value at the facet centres

z f a c e t ← z [−1 , −1 ] + z [−1 , −ncz ] + z [−nrz , −1 ] +z [−nrz , −ncz ]

# Recode facet z-values into color indices

f a c e t c o l ← cut ( z f a c e t , n b c o l )p e r s p ( x = x1seq , y = x2seq , z = z , c o l = c o l o r [

f a c e t c o l ] , t h e t a = −30 , z l i m = c (−0.2 , 1 . 2 ) )

Descriptive K.U.

Page 27: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

A Curved Colored Surface

x1seq

x2seq

z

Descriptive K.U.

Page 28: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 29: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Now try scatter3d and the OpenGL Library Framework

OpenGL is an “open standards” 3-D software library (most platforms,newer video cards)

“rgl” is an R package that uses OpenGL routines

scatter3d is John Fox’s R function (in “car”) that uses rgl functionsin a very convenient way

Descriptive K.U.

Page 30: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

A Scatterplot with a Regression Surface

s c a t t e r 3 d ( y ∼ x1 + x2 , data=dat )r g l . s n a p s h o t ( f i l e n a m e=”s c a t 1 . p n g ” , fmt=”png ”)

Note: a “formula interface”

scatter3d handles the creation of “plotting sequences” and theperspective/trans3d work is hidden

left-button mouse click rotates

middle-button mouse click “zooms” the image

Descriptive K.U.

Page 31: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

A Scatterplot with a Regression Surface

Descriptive K.U.

Page 32: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Just the Scatter, No Plane

s c a t t e r 3 d ( y ∼ x1 + x2 , data=dat , s u r f a c e=FALSE)r g l . s n a p s h o t ( f i l e n a m e=”s c a t 2 . p n g ” , fmt=”png ”)

Descriptive K.U.

Page 33: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Just the Scatter, No Plane

Descriptive K.U.

Page 34: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Ask For an Ordinary and a Smoothed Regression Surface

s c a t t e r 3 d ( y ∼ x1 + x2 , data=dat , f i t =c ( ” l i n e a r ” , ”a d d i t i v e ”) )

r g l . s n a p s h o t ( f i l e n a m e = ”s c a t 3 . p n g ” , fmt = ”png ”)

Descriptive K.U.

Page 35: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Ask For an Ordinary and a Smoothed Regression Surface

Descriptive K.U.

Page 36: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Evaluation

scatter3d makes it very easy to get started

The GUI in Rcmdr makes it even easier!

Great for quick & dirty data exploration

Disadvantages

Output quality not suitable for presentation (labels not “sharp”)png only workable output format at current time (others generateHUGE files)

Descriptive K.U.

Page 37: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 38: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Confessions

I have tested, but not mastered, these 3d plotting frameworks

cloud (in lattice)scatterplot3d (package same name)

These try to hide the “trans3d” problem from the user as much aspossible

IF you enjoy the

plot interface in R, then consider scatterplot3dlattice and the xyplot interface, then you should consider trying tomaster “cloud”

Descriptive K.U.

Page 39: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d Works Quite a Bit Like Plot

l i b r a r y ( s c a t t e r p l o t 3 d )x ← rnorm ( 8 0 ) ; y ← r p o i s ( 8 0 , l =7) ; z ← 3 + 1 . 1 *x

+ 0 . 4 *y + 15* rnorm ( 8 0 )s3d ← s c a t t e r p l o t 3 d ( x , y , z )

Descriptive K.U.

Page 40: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d: Quite a Bit like plot

−3 −2 −1 0 1 2 3

−4

0−

20

0

20

40

0

5

10

15

20

x

y

z

●●

●●

●●

●●

●●

●●

●●

Descriptive K.U.

Page 41: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d: Quite a Bit like plot

Note: Not necessary to construct a z matrix (scatterplot3d handlesthat)

Many options same name as plot: xlab, ylab, type, etc.

angle: viewpoint specifier quite unlike other 3d packages

Descriptive K.U.

Page 42: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Use More Arguments: labels, plot character

l i b r a r y ( s c a t t e r p l o t 3 d )s3d ← s c a t t e r p l o t 3 d ( x , y , z , t y p e = ”p ” , c o l o r =

”b l u e ” , a n g l e = 45 , pch = 18 , main = ”” , x l a b= ”normal x ” , y l a b = ”p o i s s o n y ” , z l a b = ”l i n e a r z ”)

Descriptive K.U.

Page 43: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d: Quite a Bit like plot

−3 −2 −1 0 1 2 3

−4

0−

20

0

20

40

0

5

10

15

20

normal x

pois

son y

linea

r z

Descriptive K.U.

Page 44: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d: Also Accepts a ”Data Frame” for x

l i b r a r y ( s c a t t e r p l o t 3 d )s3d ← s c a t t e r p l o t 3 d ( dat , t y p e = ”p ” , c o l o r = ”

b l u e ” , a n g l e = 55 , pch = 16 , main = ”” , x l a b =”x1 ” , y l a b = ”x2 ” , z l a b = ”y ”)

Descriptive K.U.

Page 45: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d

−3 −2 −1 0 1 2 3

−3

−2

−1

0 1

2 3

4

−4−2

0 2

4 6

x1

x2y

● ●

●●

●● ● ●

●●

●●

●●

●● ●●

●● ●

●●●

●●●

●●●

●●

●● ●● ●

● ●●

●●

●●

●● ●

Descriptive K.U.

Page 46: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Add a plane from a fitted model!

l i b r a r y ( s c a t t e r p l o t 3 d )s3d ← s c a t t e r p l o t 3 d ( dat , t y p e = ”p ” , c o l o r = ”

b l u e ” , a n g l e = 55 , pch = 16 , main = ”s c a t t e r p l o t 3 d ”)

s3d $ p l a n e 3 d (m1)

Note s3d is the 3d plot object, it is told to draw plane correspondingto model m1

That “internalizes” the “translate to 3d coordinates” works that persprequired us to do explicitly

supplies function “xyz.convert” when explicit translation from 3d to2d is required (in placing text or lines)

Descriptive K.U.

Page 47: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d

scatterplot3d

−3 −2 −1 0 1 2 3

−3

−2

−1

0 1

2 3

4

−4−2

0 2

4 6

x1

x2y

● ●

●●

●● ● ●

●●

●●

●●

●● ●●

●● ●

●●●

●●●

●●●

●●

●● ●● ●

● ●●

●●

●●

●● ●

Descriptive K.U.

Page 48: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Add Residual Lines: Quite a Bit Like Using persp

s3d ← s c a t t e r p l o t 3 d ( dat , t y p e = ”p ” , c o l o r = ”b l u e ” , a n g l e = 55 , pch = 16 , main = ”s c a t t e r p l o t 3 d ”)

s3d $ p l a n e 3 d (m1, l t y = ”d o t t e d ” , lwd = 0 . 7 )o b s e r 2 d ← s3d $ x y z . c o n v e r t ( dat $x1 , dat $x2 , dat $ y )pred2d ← s3d $ x y z . c o n v e r t ( dat $x1 , dat $x2 , f i t t e d (

m1) )segments ( o b s e r 2 d $x , o b s e r 2 d $y , pred2d $x , pred2d $y ,

l t y = 4)

Descriptive K.U.

Page 49: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d

scatterplot3d

−3 −2 −1 0 1 2 3

−3

−2

−1

0 1

2 3

4

−4−2

0 2

4 6

x1

x2y

● ●

●●

●● ● ●

●●

●●

●●

●● ●●

●● ●

●●●

●●●

●●●

●●

●● ●● ●

● ●●

●●

●●

●● ●

Descriptive K.U.

Page 50: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

scatterplot3d: Syntax Closer ”Object Oriented” Ideal”

scatterplot3d creates an output object

a t t r i b u t e s ( s3d )

$names[ 1 ] ”x y z . c o n v e r t ” ”p o i n t s 3 d ” ”p l a n e 3 d ” ”

box3d ”

Which can then be told to add points, a plane, etc:

s3d $ p l a n e 3 d ( mod1 )s3d $ p o i n t s 3 d ( x , y , z , pch =18, c o l=”p i n k ”)

Also works well with plotmath functions

Descriptive K.U.

Page 51: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Consider the Bivariate Normal Example from s3d VignetteBivariate normal distribution

−10 −5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

8

−10

−5

0

5

10

x1

x2

f(x1, x

2)

f(x) =1

(2π)n det(ΣX)exp

− 1

2(x − µ)TΣX

−1(x − µ)

with µ =0

0

, ΣX =

3 2

2 3

Descriptive K.U.

Page 52: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

The first step is the empty box

x1 ← x2 ← seq (−10 , 10 , l e n g t h = 51)dens ← m a t r i x ( dmvnorm ( e x p a n d . g r i d ( x1 , x2 ) , s igma

= r b i n d ( c ( 3 , 2) , c ( 2 , 3) ) ) , n c o l = l e n g t h ( x1 ) )s3d ← s c a t t e r p l o t 3 d ( x1 , x2 , seq ( min ( dens ) , max (

dens ) , l e n g t h = l e n g t h ( x1 ) ) , t y p e = ”n ” , g r i d= FALSE , a n g l e = 70 , z l a b = e x p r e s s i o n ( f ( x [ 1 ] ,

x [ 2 ] ) ) , x l a b = e x p r e s s i o n ( x [ 1 ] ) , y l a b =e x p r e s s i o n ( x [ 2 ] ) , main = ”B i v a r i a t e normald i s t r i b u t i o n ”)

Note: type=”n”, just like 2D plot function

Descriptive K.U.

Page 53: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Bivariate normal distribution

−10 −5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

8

−10

−5

0

5

10

x1

x2

f(x

1,

x2)

Descriptive K.U.

Page 54: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Draw the lines from One End to the Other

f o r ( i i n l e n g t h ( x1 ) : 1 ) {s3d $ p o i n t s 3 d ( r e p ( x1 [ i ] , l e n g t h ( x2 ) ) , x2 , dens [

i , ] , t y p e = ” l ”)}

in English: for each value of x1, draw a line from“front to back”thattraces out the density at (x1,x2).

The for loop goes to each value of x1

f o r ( i i n l e n g t h ( x1 ) : 1 ) { . . .

inserts points from lowest x2 to highest x2 and connects them by aline

s3d $ p o i n t s 3 d ( . . . t y p e=l )

Descriptive K.U.

Page 55: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Lines in One DirectionBivariate normal distribution

−10 −5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

8

−10

−5

0

5

10

x1

x2

f(x

1,

x2)

Descriptive K.U.

Page 56: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Draw Lines the Other Way

for each x2, draw a line from lowest to highest x1

line traces out density at (x1,x2)

f o r ( i i n l e n g t h ( x2 ) : 1 ) {s3d $ p o i n t s 3 d ( x1 , r e p ( x2 [ i ] , l e n g t h ( x1 ) ) , dens [ ,

i ] , t y p e = ” l ”)}

Descriptive K.U.

Page 57: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Draw Lines the Other WayBivariate normal distribution

−10 −5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

8

−10

−5

0

5

10

x1

x2

f(x

1,

x2)

Descriptive K.U.

Page 58: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Use R’s text function with plotmath to Write Equation

t e x t ( s3d $ x y z . c o n v e r t (−1, 10 , 0 . 07 ) , l a b e l s = e x p r e s s i o n ( f ( x ) == f r a c

(1 , s q r t ( (2 * p i )∧n * phantom ( ”. ”) * det ( Sigma [X ] ) ) ) * phantom (”. ”) * exp * { bgroup ( ”( ” , − s c r i p t s t y l e ( f r a c (1 , 2) * phantom ( ”. ”) ) *

( x − mu)∧T * Sigma [X]∧−1 * ( x − mu) , ”) ”) }) )### fix. insert {} around Sigma[X] == ... ##t e x t ( s3d $ x y z . c o n v e r t (1 .5 , 10 , 0 . 05 ) , l a b e l s = e x p r e s s i o n ( ”wi th ” *

phantom ( ”m”) * mu == bgroup ( ”( ” , atop (0 , 0) , ”) ”) * phantom ( ”. ”) * ” , ” * phantom (0) * {Sigma [X] == bgroup ( ”( ” , atop (3 *

phantom (0) * 2 , 2 * phantom (0) * 3) , ”) ”) }) )

The first one is the probability density function (PDF)The second one is the Expected Value and Variance matrix

Descriptive K.U.

Page 59: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Use PlotmathBivariate normal distribution

−10 −5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

8

−10

−5

0

5

10

x1

x2

f(x1, x

2)

f(x) =1

(2π)n det(ΣX)exp

− 1

2(x − µ)TΣX

−1(x − µ)

with µ =0

0

, ΣX =

3 2

2 3

Descriptive K.U.

Page 60: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

About cloud

Like other procedures in the lattice package (tremendous result forsmall effort)

More difficult to customize plots (my humble opinion)

Convenient presentation of plots “by group” or “by sex” or such.

Descriptive K.U.

Page 61: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Outline

1 Overview

2 persp

3 scatter3d

4 Scatterplot3d

5 rockchalkmcGraphplotPlane

Descriptive K.U.

Page 62: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

3D Tools in rockchalk

The lack of adjust-ability of scatterplot3d caused me to not rely onit too heavily

I don’t want to interactively point-and-click the way rgl requires.

I could not make lattice output combine different components in theway I wanted to.

But I could make persp work, sometimes.

So I kept track of thinks I could succeed with and boiled them downto functions in rockchalk.

Descriptive K.U.

Page 63: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Depicting Multicollinearity: My first 3d functions

mcGraph1(x1, x2, y): Creates an “empty box” showing the footprintof the (x1,x2) pairs in the bottom of the display.

mcGraph2(x1, x2, y, rescaley=0.5): Shows points “rising above”footprint

mcGraph3(x1, x2, y): fits a regression of y on x1 and x2, and plotsit. Includes optional interaction term.

Descriptive K.U.

Page 64: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

mcGraph1

No values drawn yetfor dependent variable

Please noticedispersion in the x1-x2plane

x1x2

y

●● ●

●●

●●

● ● ●

●●

●●

●●

●●

●●

●●● ●

●●

●●

●●

●●●●

● ●●

●●●●

●●

●●

●● ●●

●●●

●●

●●

● ●●●●

●● ●●

mod1 ← mcGraph1 ( dat $x1 , dat $x2 , dat $y , t h e t a=−30 ,p h i =8)

Descriptive K.U.

Page 65: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

mcGraph uses rescaley argument

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

ρx1,x2 = 0.1

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

● ●●

●●

● ● ●

●●

●●

●●

●●● ●●

●●

●●

●●●

●●

●●

●●●●

●●

●●

●● ●●

●●

●●

●●

●●

●●●

●● ●●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .1 , t h e t a = −30)

Descriptive K.U.

Page 66: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●● ●●

●●●●

● ●

●● ●●●

●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●

●●

●●

●●●

●● ●●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .2 , t h e t a = −30)

Descriptive K.U.

Page 67: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

● ●●

●●●●

● ●

●● ●●●

●●

●●

●● ●

●●●

●●

●●

●●●●

●●●

● ●

●●

●●●

●● ●●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .3 , t h e t a = −30)

Descriptive K.U.

Page 68: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

● ●

● ●●

●●●

●●

●●●

●●

●●

● ●●

●●

●●

●●

●●

●●

●●

●● ●

●●

●●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .4 , t h e t a = −30)Descriptive K.U.

Page 69: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

● ●

●●

●●

●●

● ●●

●●●

●●

●●

●●●

● ●

●●

●●

● ●●

●●

● ●●

●●

●●

●●

●● ●

●●

●●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .5 , t h e t a = −30)

Descriptive K.U.

Page 70: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

● ●●●

●●

●●

●●●

● ●

●●

●●

● ●

● ●●

●●

● ●●

●●

●●●

●●

●●

●●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .6 , t h e t a = −30)

Descriptive K.U.

Page 71: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

● ●●●●

● ●

●●

● ●

●●

●●

● ●

● ●●

●●

● ●

●●

●●

●●●

●●

●●

●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .7 , t h e t a = −30)Descriptive K.U.

Page 72: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

● ●●●●

● ●

●●

● ●

●●

●●

●●

●●

●●

● ●

●●

●●

●●●

●●

●●

● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .80 , t h e t a = −30)Descriptive K.U.

Page 73: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

●●●

● ●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =0 .90 , t h e t a = −30)Descriptive K.U.

Page 74: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Step up rescaley bit by bit, its almost a movie!

The true relationshipis

yi = .2 x1i+.2 x2i+ei , ei ∼ N(0, 72)

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

● ●●

● ●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =1 .0 , t h e t a = −30)

Descriptive K.U.

Page 75: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Can Spin the Cloud (Just Showing Off)

x1

x2

y

● ●●

●●

●●●●

●●●

●● ● ●

●●

●● ●

●●

●●

●●

●● ●

●●●

●●

●●●●

●●●●

●●

●●●

●●

●● ●

●●●

●●●●●

●●

●●●

●●● ●

●●

●●●

●●

●●

●●●

●●

● ●

●●

●●

●●

●●

●●

● ● ●

●●

●●

●●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =1 .0 , t h e t a = 20)

Descriptive K.U.

Page 76: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Can Spin the Cloud (Just Showing Off)

x1 x2

y

●●

●●●

● ●●

●●●

● ●●

●●

●●

●●

● ●

●●●

●●

●● ●●

●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●●●

●● ●●

●●

●●●

●●● ●●

●●●

●●●●

●●● ●

●●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●

●●

● ●

●●

●●

● ●●

●●

●●

●●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =1 .0 , t h e t a = 40)

Descriptive K.U.

Page 77: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Can Spin the Cloud (Just Showing Off)

x1

x2

y

●●

● ●●

●●

●●

● ●●●

●●

●●

●●

●●

●●

● ●●

●●

●●

● ●

●●●

●●●●

●●

●●

●●

●●● ●

● ●

●●

●●●●

●●

●●● ●

●●

●●●

●●● ●●

●●

●●●●

●● ●

●●

●●

●● ●

●●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

● ●

● ●●

●●

●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =1 .0 , t h e t a = 60)

Descriptive K.U.

Page 78: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Can Spin the Cloud (Just Showing Off)

x1

x2

y

●●

● ●

●●

● ●● ●●

●●●● ●

●●

●●

●●

●●

●●

●●

● ●

●●

●●

●●

●●

●●●

●●●

● ●

●●

●●

●●

● ●● ●

●● ●●●

●●●

●●

●●●

●●●

●●

●●

●●

●● ●●●

●●

●●

●●

●●●

●●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

●● ●

● ●

●●

●● ●

mod ← mcGraph2 ( dat $x1 , dat $x2 , dat $y , r e s c a l e y =1 .0 , t h e t a = 80)

Descriptive K.U.

Page 79: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Regression Plane Sits Nicely in the Data Cloud

M1Estimate (S.E.)

(Intercept) -0.678 (4.345)x1 0.18* (0.066)x2 0.229* (0.069)

N 100RMSE 6.717R2 0.194adj R2 0.178

∗p ≤ 0.05

x1

x2

y

● ●●

●●

● ● ●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●●●

●●●

● ●●

●●

●●

●●

●●

●●●

●● ●●

●●

●●

●●

● ●●

● ●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●

mod1 ← mcGraph3 ( dat $x1 , dat $x2 , dat $y , t h e t a =−30)Descriptive K.U.

Page 80: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Regression Plane Sits Nicely in the Data Cloud

M1Estimate (S.E.)

(Intercept) -0.678 (4.345)x1 0.18* (0.066)x2 0.229* (0.069)

N 100RMSE 6.717R2 0.194adj R2 0.178

∗p ≤ 0.05

x1

x2

y

●● ●●●

●●● ● ●

●●●●

●●

●●

● ● ●

●●●●

●●●

●●

●●●

●●

●●

●●●

●●

●●

●●●●●

●●

●●

●●

●●● ●

●●●

●● ●●

●●●

●●

●●● ●

●●●●●

●●

●●●●

●●

●●●

●●

●● ●

●●

●●

●●

●●

●●●

●●●

●●

●●

●●●

●●

●●

● ●●

●●●

● ●

●●●

mod1 ← mcGraph3 ( dat $x1 , dat $x2 , dat $y , t h e t a =−10 , p h i =0)Descriptive K.U.

Page 81: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Regression Plane Sits Nicely in the Data Cloud

M1Estimate (S.E.)

(Intercept) -0.678 (4.345)x1 0.18* (0.066)x2 0.229* (0.069)

N 100RMSE 6.717R2 0.194adj R2 0.178

∗p ≤ 0.05

x1x2

y

● ● ●●●●● ● ● ●●●●●●

●●

●● ●● ●● ● ●

●●

●●● ●● ●●● ●

●●

●●● ●●●

● ●● ●●●●

●●●●●●●● ●● ● ●● ●●● ●

●● ●●

●●●● ●●●

●●

●● ●● ●●

●●● ●●●● ●● ●●●

●●●●●

●●

●●

●●

●●

● ●

●●

● ●

●●

●●●

●●●

●●

●●

●●

●●

●●

● ●

●●

●●●

● ●

●●

mod1 ← mcGraph3 ( dat $x1 , dat $x2 , dat $y , t h e t a =−10 , p h i=−10)Descriptive K.U.

Page 82: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Severe Collinearity: r(x1,x2)=0.9

Nearly lineardispersion inthe x1-x2 plane

x1

x2

y

●● ●●●

●●●

●●

●●

● ●

●●●●

●●●

●●●

●● ●

●●

●●●●

●●

●●

●●●

●●

● ●●

●●

●●

●●

●● ●●

● ●●●●

●●

●●

● ●●

●●

●● ●●

●●● ●

●●

●●

mod2 ← mcGraph1 ( dat2 $x1 , dat2 $x2 , dat2 $y , t h e t a=20, p h i =8)Descriptive K.U.

Page 83: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Cloud Is More like Data Tube

mod ← mcGraph2 (dat2 $x1 , dat2 $x2 , dat2 $y ,t h e t a = −30)

x1

x2

y

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

● ●

●●

●●●

●●

●●

● ●

●●●

●●

●●

Descriptive K.U.

Page 84: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Cloud Is More like Data Tube

M1Estimate (S.E.)

(Intercept) 2.975 (4.128)x1 0.365* (0.179)x2 -0.017 (0.173)

N 100RMSE 7.162R2 0.165adj R2 0.148

∗p ≤ 0.05

plane does not sit“comfortably”

greater standard errors

x1

x2

y

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

● ●

●●

●●●

●●

●●

● ●

●●●

●●

●●

mod ← mcGraph3 ( dat2 $x1 , dat2 $x2 , dat2 $y , t h e t a =−30)Descriptive K.U.

Page 85: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Fit Interaction lm(y ∼ x1 * x2)

M1Estimate (S.E.)

(Intercept) 4.997 (17.977)x1 0.324 (0.394)x2 -0.058 (0.4)x1:x2 0.001 (0.007)

N 100RMSE 7.199R2 0.166adj R2 0.14

∗p ≤ 0.05

x1

x2

y

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

● ●

●●

●●●

●●

●●

● ●

●●●

●●

●●

mod ← mcGraph3 ( dat2 $x1 , dat2 $x2 , dat2 $y ,i n t e r a c t i o n=TRUE, t h e t a = −30)

Descriptive K.U.

Page 86: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Next Step: Plot any Fitted Regression

After mcGraph worked, I was encouraged (because I could fill up awhole lecture on multicollinearity)

But the mcGraph interface was too limiting

had to specify and provide variablescould not work with larger regression models

Descriptive K.U.

Page 87: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

plotPlane: quick regression tool for presentations

Generate data, fit a model with 4predictors,

dat3 ← g e n C o r r e l a t e d D a t a (N=150 , bet a = c ( 0 , 0 .15 ,0 .25 , 0 . 1 ) , s t d e = 150)

dat3 $ x3 ← r p o i s (150 ,lambda = 7)

dat3 $ x4 ← rgamma (150 , 2 ,1)

m1 ← lm ( y ∼ x1 + x2 + x3 +x4 , data=dat3 )

M1Estimate (S.E.)

(Intercept) -269.01* (95.835)x1 5.308* (1.161)x2 5.094* (1.332)x3 -0.371 (5.05)x4 10.649 (9.45)

N 150RMSE 152.068R2 0.198adj R2 0.176

∗p ≤ 0.05

Descriptive K.U.

Page 88: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

plotPlane: choose x1 and x2

p l o t P l a n e (m1,p l o t x 1 = ”x1 ” ,

p l o t x 2 = ”x2 ”, t h e t a = −40 ,npp = 15 ,

drawArrows =TRUE)

x1

x2

y

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

● ●

●●

●●

●●

●●

●●

● ●

●●

●●●

●●

Descriptive K.U.

Page 89: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

plotPlane: choose x1 and x2

p l o t P l a n e (m1,p l o t x 1 = ”x1 ” ,

p l o t x 2 = ”x2 ”, t h e t a = −40 ,npp = 8 , l l w d= 0 .105 ,

drawArrows =TRUE, t i c k t y p e

= ” d e t a i l e d ”)

x1

20

40

6080

x2

20

40

6080

y0

500

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

● ●

●●

●●

●●

●●

●●

● ●

●●

●●●

●●

Descriptive K.U.

Page 90: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Interchange Information between 2D and 3D plots

Putting x3 and x4 at their means, plotthe predicted values for several values ofx2 with plotSlopes

ps30 ← p l o t S l o p e s (m1,p l o t x = ”x1 ” , modx = ”x2” , modxVals = ” s t d . d e v . ”, l l w d = 3)

The output object ps30 has information in itthat can be used to supplement a 3D graph.

20 30 40 50 60 70 80−

20

00

20

04

00

60

08

00

x1

y

●●

●●

●●

●●

● ●

●●

● ●●

●●

●●

●●

● ●

●●

●●

●●

Moderator: x2

(m−sd)

(m)

(m+sd)

Descriptive K.U.

Page 91: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Compare 3D and 2D depictions

20 30 40 50 60 70 80

−2

00

02

00

40

06

00

80

0

x1

y

●●

●●

●●

●●

● ●

●●

● ●●

●●

●●

●●

● ●

●●

●●

●●

Moderator: x2

(m−sd)

(m)

(m+sd)

x1

x2

y

● ●

● ●

●●

● ●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

Descriptive K.U.

Page 92: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Next Step: Visualization of Factor Predictors

Suppose x2 is a categorical variable.

Shouldn’t force that to a numeric scale and 3D plot with an ordinaryplane, should we?

lattice package tools can draw one plot per level of the factor(maybe that’s best)

But I’ve wrestled trying to find a more informative view

Descriptive K.U.

Page 93: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Group 1

x1 n

um

eric

−2−1

0

1

2

x2 categorical1.0 1.5 2.0 2.5 3.0 3.5 4.0

y

0

5

●●

Descriptive K.U.

Page 94: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Group 1, Group 4

x1 n

um

eric

−2−1

0

1

2

x2 categorical1.0 1.5 2.0 2.5 3.0 3.5 4.0

y

0

5

●●

●●

●●

●●

Descriptive K.U.

Page 95: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Groups 1-4

x1 n

um

eric

−2−1

0

1

2

x2 categorical1.0 1.5 2.0 2.5 3.0 3.5 4.0

y

0

5

●●

●●

●●

●●

●●

●●●

●●

●●●

Descriptive K.U.

Page 96: 3 D Plotting › guides › Rcourse › plot-3d › plots-3d.pdf · Kinds of 3d Plot Static\draw on the screen, like R plot" persp: in the R base graphics cloud in lattice package

Overview persp scatter3d Scatterplot3d rockchalk

Conclusion

If you can “sketch” what you want with a pencil, you can probablyget R to draw you a good example.

Search (AGGRESSIVELY) for working example code from problemslike yours. Accumulate them whenever you find them.

If you want a quick view of a regression model–either linear or notlinear–I’d suggest plotPlane

Descriptive K.U.