Tobias Verbeke
2006-Dec-09 21:42 UTC
[Rd] abline for intercept-only simple lm models (with and without offset)
The abline function can be used to draw the regression line when one passes the lm object as an argument. However, if it's an intercept-only model, it appears to use the intercept as the slope of the abline: mod <- lm(dist ~ 1, data = cars) plot(dist ~ speed, data = cars) abline(reg = mod) # nothing appears This behaves as documented, but might catch someone. Would it be an improvement if this situation was detected so as to plot the appropriate horizontal line, i.e. abline(a = coef(mod), b = 0) ? Would it also be an improvement if for a model like mod2 <- lm(dist ~ 1 + offset(speed), data = cars) abline(reg = mod2) would be equivalent to abline(a = coef(mod2), b = 1) ? For models through the origin, the current function works fine, but one might even consider models through the origin and having the independent variable in an offset() to be fully fool-proof, i.e. abline(a = 0, b = 1) Kind regards, Tobias
Martin Maechler
2006-Dec-11 13:17 UTC
[Rd] abline for intercept-only simple lm models (with and without offset)
Yes, I think all your propositions would be improvements. OTOH, I don't think the improvements warrant a big increase in code (complexity), nor do I think the improvements are crucial for R's integrity. So... If you (our someone else) provides a patch {against R-devel, as always} which keeps the code simple, I'd strongly consider adding that to R. Regards, Martin Maechler>>>>> "Tobias" == Tobias Verbeke <tobias.verbeke at telenet.be> >>>>> on Sat, 09 Dec 2006 22:42:38 +0100 writes:Tobias> The abline function can be used to draw the Tobias> regression line when one passes the lm object as an Tobias> argument. Tobias> However, if it's an intercept-only model, it appears Tobias> to use the intercept as the slope of the abline: Tobias> mod <- lm(dist ~ 1, data = cars) plot(dist ~ speed, Tobias> data = cars) abline(reg = mod) # nothing appears Tobias> This behaves as documented, but might catch Tobias> someone. Would it be an improvement if this Tobias> situation was detected so as to plot the appropriate Tobias> horizontal line, i.e. Tobias> abline(a = coef(mod), b = 0) ? Tobias> Would it also be an improvement if for a model like Tobias> mod2 <- lm(dist ~ 1 + offset(speed), data = cars) Tobias> abline(reg = mod2) would be equivalent to Tobias> abline(a = coef(mod2), b = 1) ? Tobias> For models through the origin, the current function Tobias> works fine, but one might even consider models Tobias> through the origin and having the independent Tobias> variable in an offset() to be fully fool-proof, i.e. Tobias> abline(a = 0, b = 1) Tobias> Kind regards, Tobias Tobias> ______________________________________________ Tobias> R-devel at r-project.org mailing list Tobias> https://stat.ethz.ch/mailman/listinfo/r-devel