【问题标题】:R: Why this two different results (fit curve) from two different software for the same points?R:为什么这两个不同的结果(拟合曲线)来自两个不同的软件,用于相同的点?
【发布时间】:2017-07-21 09:07:15
【问题描述】:

我有这个方程问题。我想绘制和拟合(多项式2°)这个点数据框df.1

df.1 
      x      y
    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 中的值(如果我想找到所有拟合曲线的值)与 excel 方程是正确的,但问题是:为什么 R 拟合会导致不同的值(而且只有正系数值)?

【问题讨论】:

  • 提示:横坐标在 excel 和 R 中的解释不同。

标签: r excel curve-fitting equation


【解决方案1】:

lm(df.1[,2] ~ poly(df.1[,1], 2, raw = T)) 将返回与 Excel 中相同的值。

poly {stats} 如果为真,则使用原始而不是正交多项式。

正交多项式由系数汇总,可以 用于通过肯尼迪给出的三项递归来评估它 & Gentle (1980, pp. 343–4),并用于代码的预测部分。

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多