R:为什么这两个不同的结果(拟合曲线)来自两个不同的软件的相同点?
我有这个方程的问题。 我想绘制和拟合(多项式2°)这一点dataframedf.1
:
df.1 xy 1902 0.01 1930 0.1 1950 0.5 1980 1 2014 1.8
代码是:
lm(df.1[,2] ~ poly(df.1[,1],2))
结果是:
Call: lm(formula = df.1[, 2] ~ poly(df.1[, 1], 2)) Coefficients: (Intercept) poly(df.1[, 1], 2)1 poly(df.1[, 1], 2)2 0.6620 1.4660 0.3339
方程图是:
ggplot(df.1, aes(x=x,y=y))+ geom_point(size = 4)+ geom_smooth(aes(y=df.1[,2],x=df.1[,1]),show.legend = T,linetype="dashed",method = "lm", formula = y ~ poly(x, 2), size = 0.4,se=T)+ stat_poly_eq(aes(label = paste(..eq.label..,..rr.label..,sep = "~")),formula =y ~ poly(x, 2),parse = TRUE)+ theme(panel.background = element_rect(fill = "white", colour = "grey50"))
现在,如果我使用其他软件,如Excel或STATISTICA 10,则2°拟合多项式曲线的系数结果为:
intercept 366.199 poly x 0.389864 poly x^2 0.000103743
在y中的值(如果我想find所有拟合曲线的值),excel公式是正确的,但问题是:为什么R拟合导致不同的值(而且只有正系数值)?
lm(df.1[,2] ~ poly(df.1[,1], 2, raw = T))
将返回与Excel中相同的值。
poly {stats} raw如果为true,则使用raw而不是正交多项式。
正交多项式可以用系数来概括,可以用Kennedy&Gentle(1980,pp.343-4)给出的三项recursion来评估它,并用于代码的预测部分。
资源