从多项式拟合R中隔离系数(Isolating coefficients from polynomia

2019-09-29 13:13发布

我已经安装一个简单的2阶多项式在下面的表格时间序列数据:

polyfit <- lm(y ~ poly(x,2))

我想从形式为y的拟合的多项式中提取各系数(A,B和C)=斧^ 2 + Bx的+ C.我自然想到的答案将在polyfit $系数polyfit对象,但这些系数中找到是不正确的。 我已经尝试了一些非常简单的数据集,并用Excel和而聚曲线拟合相比是中的R相同,并出类拔萃,从Excel中得到的A,B和C被coefficints正确的,但那些由polyfit对象ARENT获得? 我是否提取从polyfit对象不正确的信息? 这将是更方便我直接来自R提取系数为我的目的? 任何人都可以帮忙吗?

Answer 1:

默认情况下, poly适合正交多项式。 本质上,它采用了以下的想法...

x <- 1:10

# in this case same as x-mean(x)
y1 <- residuals(lm(x ~ 1)) 
# normalize to have unit norm
y1 <- y1/sqrt(sum(y1^2))

y2 <- residuals(lm(y1^2 ~ y1))
y2 <- y2/sqrt(sum(y2^2))

y3 <- residuals(lm(x^3 ~ y2 + y1))
y3 <- y3/sqrt(sum(y3^2))

cbind(y1, y2, y3)    
poly(x, 3)

构建一组仍然产生相同的预测正交向量的。 如果你只是想在正规途径的多项式,那么你要指定raw=TRUE作为参数。

y <- rnorm(20)
x <- 1:20
o <- lm(y ~ poly(x, 2, raw = TRUE))
# alternatively do it 'by hand'
o.byhand <- lm(y ~ x + I(x^2))


文章来源: Isolating coefficients from polynomial fit in r