[Rd] plot.lm: "Cook's distance" label can overplot point labels

John Maindonald John.Maindonald at anu.edu.au
Wed Feb 18 22:56:57 CET 2009


Dear John -
The title above the graph is also redundant for the first of the  
plots; do we want to be totally consistent?  I am not sure.

It occurs to me that the text "Cook's distance", as well as the  
contours, might be in red.
Regards
John.

John Maindonald             email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.


On 18/02/2009, at 12:27 PM, John Fox wrote:

> Dear John,
>
> It occurs to me that the title above the graph, "Residuals vs.  
> Leverage," is
> entirely redundant since the x-axis is labelled "Leverage" and the y- 
> axis
> "Studentized residuals." Why not use the title above the graph for  
> "Cook's
> distance countours"?
>
> Regards,
> John
>
>> -----Original Message-----
>> From: r-devel-bounces at r-project.org [mailto:r-devel-bounces at r-project.org 
>> ]
> On
>> Behalf Of John Maindonald
>> Sent: February-17-09 5:54 PM
>> To: r-devel at r-project.org
>> Cc: Martin Maechler
>> Subject: [Rd] plot.lm: "Cook's distance" label can overplot point  
>> labels
>>
>> The following code demonstrates an annoyance with plot.lm():
>>
>> library(DAAGxtras)
>> x11(width=3.75, height=4)
>> nihills.lm <- lm(log(time) ~ log(dist) + log(climb), data = nihills)
>> plot(nihills.lm, which=5)
>>
>> OR try the following
>> xy <- data.frame(x=c(3,1:5), y=c(-2, 1:5))
>> plot(lm(y ~ x, data=xy), which=5)
>>
>> The "Cook's distance" text overplots the label for the point with the
>> smallest residual.  This is an issue when the size of the plot is  
>> much
>> less than the default, and the pointsize is not reduced  
>> proportionately.
>>
>>
>> I suggest the following:
>>      xx <- hii
>>      xx[xx >= 1] <- NA
>> ## Insert new code
>>      fracht <- (1.25*par()$cin[2])/par()$pin[2]
>>      ylim[1] <- ylim[1] - diff(ylim)*max(0, fracht-0.04)
>> ## End insert new code
>>      plot(xx, rsp, xlim = c(0, max(xx, na.rm = TRUE)),
>>           ylim = ylim, main = main, xlab = "Leverage",
>>           ylab = ylab5, type = "n", ...)
>>
>> Then, about 15 lines further down, replace
>>        legend("bottomleft", legend = "Cook's distance",
>>               lty = 2, col = 2, bty = "n")
>>
>> by
>>        legend("bottomleft", legend = "Cook's distance",
>>               lty = 2, col = 2, bty = "n", y.intersp=0.5)
>>
>> If this second change is not made, then one wants fracht <-  
>> (1.5*par()
>> $cin[2])/par()$pin[2]
>> I prefer the "Cook's distance" text to be a bit closer to the x-axis,
>> as it separates it more clearly from any point labels.
>>
>> John Maindonald             email: john.maindonald at anu.edu.au
>> phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
>> Centre for Mathematics & Its Applications, Room 1194,
>> John Dedman Mathematical Sciences Building (Building 27)
>> Australian National University, Canberra ACT 0200.
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list