[R] effects package --- add abline to plot

David Winsemius dwinsemius at comcast.net
Tue Apr 28 16:11:38 CEST 2009


On Apr 28, 2009, at 12:00 AM, Prew, Paul wrote:

> Hello,  I am not having success in a simple task.  Using the effects  
> package, I would like to add reference lines at probability values  
> of 0.1 – 0.6 on a plot of the effects.

I have concerns that you are considering these probabilities. They are  
not going to be probabilities. They are effects.

>  The plot command works, but following up with an abline command  
> produces the message “plot .new has not been called yet”, and of  
> course the reference lines were not added.
>
> Looking through past R help lists, there was a similar request for  
> help --- trying to add an abline but “got the error "plot.new  has  
> not been called yet".
>
> The help list reply was
>
> “ ?abline: "This function adds one or more straight lines through  
> the
> current plot.", i.e. the already existing *current plot*.
>
> So plot your data (e.g. with plot(x, y)) before adding a regression  
> line.”
>
> I interpreted the above to suggest the following ---
>
> plot(allEffects(Clean.label),ask=FALSE, alternating = TRUE,
> 	ylab="Probability of Rating", xlab="City",main="Cleanliness Ratings  
> by City",
> 	factor.names=FALSE, ticks=c(0.1,0.2,0.3,0.4,0.5,0.6))
> abline(h=c(0.1,0.2,0.3,0.4,0.5,0.6))

I do not know why that is happening and you have not provided a  
minimal executable example. The vectorized use of abline does succeed  
in a simper example:

 > plot(.5,.5)
 > abline(h=c(0.1,0.2,0.3,0.4,0.5,0.6))

  .... so the problem may lie in how the effects package completes its  
plot function for this particular object. You ought to provide at a  
minimum the results of str on that object. Perhaps it executes a  
device call and then turns off the device? However I loaded the  
effects package and ran that abline call after the example:

 > mod.cowles <- glm(volunteer ~ sex + neuroticism*extraversion,
+     data=Cowles, family=binomial)
 > eff.cowles <- allEffects(mod.cowles, xlevels=list(neuroticism=0:24,
+     extraversion=seq(0, 24, 6)))
 > eff.cowles


I did not get what I expected, which would have been a single  
horizontal line at 0.4 but rather got four lines roughly at 0.351,  
0.378, 0.408, 0.439. Even then, I would have expected one more line  
before the upper limits of that plot, which makes me think these four  
lines were the results of arguments 0.3 ,0.4, 0.5, 0.6.   Most R  
plotting is done in the coordinate system rather than with absolute  
coordinates, but perhaps the mixture of base graphics with lattice  
graphis is ht eproblem
>
>
> Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
>  plot.new has not been called yet
>
> Less bothersome is the fact that the tick marks weren’t modified to  
> 0.1, 0.2, 0.3, etc.
>
> Further searching brought the panel.abline command to light, but  
> that didn’t produce any results, not even an error message.
>
>> plot(allEffects(Clean.label),ask=FALSE, alternating = TRUE,
> + ylab="Probability of Rating", xlab="City",main="Cleanliness  
> Ratings by City",
> +  factor.names=FALSE, ticks=c(0.1,0.2,0.3,0.4,0.5,0.6))
>
>> panel.abline(h=c(0.1,0.2,0.3,0.4,0.5,0.6))

>>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> sessionInfo()
> R version 2.9.0 RC (2009-04-10 r48318)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States. 
> 1252;LC_MONETARY=English_United States. 
> 1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>
> attached base packages:
> [1] tcltk     grid      stats     graphics  grDevices utils      
> datasets  methods
> [9] base
>
> other attached packages:
> [1] relimp_1.0-1     Rcmdr_1.4-9      car_1.2-13       effects_2.0-4
> [5] colorspace_1.0-0 nnet_7.2-46      MASS_7.2-46      lattice_0.17-22
>
> loaded via a namespace (and not attached):
> [1] tools_2.9.0
> Thank you for any advice.
> Paul
>
> Paul Prew   ▪  Statistician
> 651-795-5942   ▪   fax 651-204-7504
> Ecolab Research Center   ▪  Mail Stop ESC-F4412-A
> 655 Lone Oak Drive   ▪   Eagan, MN 55121-1560
>
>

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list