Hi Everyone,
I'm continuing to run into trouble with polyfit. I'm using the fitting function of the form;
fit <- lm(y ~ poly(x,degree,raw=TRUE))
and I have found that in some cases a polynomial of certain degree can't be fit, the coefficient won't be calculated, because of a singularity. If I use orthogonal polynomials I can fit a polynomial of any degree, but I don't get the proper coefficients. I'm having trouble solving this partly because I likely don't understand enough about polynomial fitting - and for that I have to apologize since I know this isn't supposed to be a forum for asking questions about mathematical process and rather for questions about the functionality of R. Nevertheless, can anyone provide guidance on this point? Is there a way to use orthogonal polynomials (the part about the fitting process that I don't quite understand) and still find the polynomial coefficients? Alternatively, what does one do about singularities using raw polynomials? It seems odd to me that the orthogonal polynomials can be used to fit the data, even visually once plotted, predicted values that are accurate can be derived from the function using predict(), but the coefficients are unknown. Any help is appreciated,
Chris
output below:
-----------------------------------------------
> archit[,1]
[1] 1.8 1.3 2.0 2.1 1.9 1.9 1.3 1.9 2.8
> x
[1] 8752 8610 8554 8496 8482 8462 8438 8418 8384
>archi_rooms <- lm(archit[,1] ~ poly(x,4))
>summary(archi_rooms)
Call:
lm(formula = archit[, 1] ~ poly(x, 4))
Residuals:
1 2 3 4 5 6 7 8
-0.001790 0.042008 -0.112756 0.083040 0.005183 0.175733 -0.330450 0.137128
9
0.001905
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.88889 0.07077 26.691 1.17e-05 ***
poly(x, 4)1 -0.47520 0.21230 -2.238 0.0888 .
poly(x, 4)2 0.50116 0.21230 2.361 0.0776 .
poly(x, 4)3 -0.20830 0.21230 -0.981 0.3821
poly(x, 4)4 0.94246 0.21230 4.439 0.0113 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.2123 on 4 degrees of freedom
Multiple R-squared: 0.8865, Adjusted R-squared: 0.7731
F-statistic: 7.813 on 4 and 4 DF, p-value: 0.03570
>archi_rooms <- lm(archit[,1] ~ poly(x,4,raw=TRUE))
> summary(archi_rooms)
Call:
lm(formula = archit[, 1] ~ poly(x, 4, raw = TRUE))
Residuals:
1 2 3 4 5 6 7 8
0.04665 -0.39399 0.34009 0.37112 0.13015 0.05111 -0.67957 -0.22202
9
0.35647
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.205e+04 9.107e+04 0.462 0.664
poly(x, 4, raw = TRUE)1 -1.461e+01 3.191e+01 -0.458 0.666
poly(x, 4, raw = TRUE)2 1.693e-03 3.726e-03 0.454 0.669
poly(x, 4, raw = TRUE)3 -6.536e-08 1.450e-07 -0.451 0.671
poly(x, 4, raw = TRUE)4 NA NA NA NA
Residual standard error: 0.4623 on 5 degrees of freedom
Multiple R-squared: 0.3275, Adjusted R-squared: -0.076
F-statistic: 0.8116 on 3 and 5 DF, p-value: 0.5397
_________________________________________________________________
[[alternative HTML version deleted]]