Using lm coefficients in polyroot()
Lukasz Komsta <luke <at> novum.am.lublin.pl> writes:
I need to compute zero of polynomial function fitted by lm. For example if I fit cubic equation by fit=lm(y~x+I(x^2)+i(x^3)) I can do it simply by polyroot(fit$coefficients). But, if I fit polynomial of higher order and optimize it by stepAIC, I get of course some coefficients removed. Then, if i have model y ~ I(x^2) + I(x^4) i cannot call polyroot in such way, because there is a need to call polyroot(c(0,0,fit$coefficients[1],0,fit$coefficients[2]). Is there any method to do it automagically? I would like to write small function solving polynomial optimized by stepAIC, regardless of missing terms.
Are you really sure you want to throw away lower order terms in a fit by misusing stepAIC? With the rare exception of omitting a constant offset, I don't know any case where there are good reasons to omit lower order terms in a fit (willing to learn, though,...). And if you only want to find the zeroes, it's definitively not useful to "optimize" this way. When factors are involved, stepAIC always keeps lower order terms, but it is expecting a bit too much from stepAIC to expect an "do you really want to do this" here. For a more competent discussion of the matter, read Bill Venables http://www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf Dieter