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