On 30/09/2009, at 5:34 AM, chris carleton wrote:


Thanks for the response. I'm sorry I didn't provide the code or data example earlier. I was using the polynomial fitting technique of this form;

test <- lm(x[,34] ~ I(x[,1]) + I(x[,1]^2) + I(x[,1]^3))

for the original fitting operation. I also tried to use;

lm(y ~ poly(x,3,raw=TRUE))

with the same results for the polynomial coefficients in both cases. If my understanding is correct, both of the methods above produce the coefficients of a polynomial based on the data in 'y' as that data varies over 'x'. Therefore, I would assume that the function of the polynomial should always produce the same results as the predict() function in R produces. However, here are the raw data for anyone that has the time to help me out.

y:
[1] 9097 9074 9043 8978 8912 8847 8814 8786 8752 8722 8686 8657 8610 8604 8554
[16] 8546 8496 8482 8479 8462 8460 8438 8428 8418 8384

x:
[1] 17.50 NA 20.59 21.43 17.78 21.89 NA 22.86 NA 6.10 NA 5.37 [13] 3.80 NA 6.80 NA NA NA 5.80 NA NA NA NA NA
[25]    NA

I think that R lm() just ignores the NA values, but I've also tried this by first eliminating NAs and the corresponding x values from the data before fitting the poly and the result was the same coefficients. Thanks very much to anyone who is willing to provide information.

What's the problem?

fit <- lm(y~x+I(x^2)+I(x^3))
ccc <- coef(fit)
X <- cbind(1,x,x^2,x^3)
print(fitted(fit))
chk <- X%*%ccc
print(chk[!is.na(chk)])
print(range(fitted(fit)-chk[!is.na(chk)]))
[1] 0.000000e+00 5.456968e-12

The answers are the same.

        cheers,

                Rolf Turner

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to