[R] Regression lines for differently-sized groups on the same plot

Laura M Marx marxlau1 at msu.edu
Wed Jul 20 19:58:37 CEST 2005


Sundar Dorai-Raj writes: 

> Hi, Laura, 
> 
> Would ?predict.glm be better? 
> 
> plot(logarea, hempresence,
>      xlab = "Surface area of log (m2)",
>      ylab="Probability of hemlock seedling presence",
>      type="n", font.lab=2, cex.lab=1.5, axes=TRUE)
> lines(logarea, predict(hemhem, logreg, "response"), lty=1, lwd=2)
> lines(logarea, predict(hemyb, logreg, "response"), lty="dashed", lwd=2)
> lines(logarea, predict(hemsm, logreg, "response"), lty="dotted", lwd=2) 
> 
> Without seeing more description of your data, this is still a guess. 
> 
> --sundar 
> 

YES!  Thank you.  That solves all of the problems I was having.  Thanks also 
to Tom Mulholland and Bill Venables for their replies.
     Laura
The final code is now: 

logreg <- read.table("C:/Documents and Settings/Laura/Desktop/logreg.txt", 
header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
#This is the full dataset.  A hemlock row followed by a birch row might look 
#like:
#Hemybsm     logarea    hempresence
#1           0.054      0
#2           1.370      1 

hemhem=glm(hempresence~logarea, family=binomial(logit), subset=Hemybsm<2)
#This pulls out only the hemlocks from the full dataset and calculates the 
#regression.
hemyb=glm(hempresence~logarea, family=binomial(logit), subset=Hemybsm==2)
#Same code, with only the birches from the full dataset.
hemsm=glm(hempresence~logarea, family=binomial(logit), subset=Hemybsm>2) 

plot(logarea, hempresence, xlab = "Surface area of log (m2)",
    ylab="Probability of hemlock seedling presence",
    type="n", font.lab=2, cex.lab=1.5, axes=TRUE)
lines(logarea, predict(hemhem, logreg, "response"), lty=1, lwd=2)
lines(logarea, predict(hemyb, logreg, "response"), lty="dashed", lwd=2)
lines(logarea, predict(hemsm, logreg, "response"), lty="dotted", lwd=2)




More information about the R-help mailing list