执行基本回归

时间:2016-03-16 06:10:45

标签: r

我想知道如何执行以下操作:

 a <- data.frame(num = 1:10, numsqr = (1:10)^2)
 b <- data.frame(num = 11:14, numsqr = 0)
 fit <- lm(numsqr ~ num, data = a)

 b$numsqr <- predict(fit, b)

 print(b)   

   num numsqr
 1  11    121
 2  12    144
 3  13    169
 4  14    196

现在我得到以下结果

  print(b) 
    num numsqr
  1  11     99
  2  12    110
  3  13    121
  4  14    132

我怎样才能得到预期的结果?

2 个答案:

答案 0 :(得分:3)

要获得公式中的平方变量,您可以使用Ipoly(系数中仍为线性),否则它只适合y~ax + b。

fit <- lm(numsqr ~ I(num^2), data=a)
fit <- lm(numsqr ~ poly(num, 2), data=a)  # different model, same predictions

predict(fit, newdata=b)
#   1   2   3   4 
# 121 144 169 196 

答案 1 :(得分:0)

如果您认为您不知道数据的关系 (在这种情况下,你知道y = x ^ 2),通过线性回归得到精确值是非常困难的

您可以尝试将响应变量转换为对数,以获得更好的分辨率以合并曲率