R中的曲线拟合问题

时间:2014-10-30 17:58:41

标签: r

我刚才有一个简单的问题,因为我是R语言的新手。我觉得这个代码不适合曲线拟合:poly拟合绝对检查出来,但是日志和指数拟合我不确定(e fit是def错误的)。任何帮助将不胜感激,谢谢。 -SAM

polyFit <- function(xs,ys,degree) { #polynomial fitting a data set degree 3
  fit3 <- lm(ys~poly(xs,degree,raw=TRUE))
  xx <- seq(0,160, length=50)
  plot(xs,ys,pch='@')
  lines(xx, predict(fit3, data.frame(xs=xx)), col="green")
}

logFit <- function(xs,ys) { #graph the data set with log(x), y
  logEstimate = lm(ys ~ log(xs))
  plot(xs,ys,pch='@')
      lines(xs,predict(logEstimate),col='green')
    }

eFit <- function(xs,ys) {
  logEstimate = lm(log(ys) ~ xs)
  plot(xs,ys,pch='@')
  lines(xs,predict(logEstimate),col='green')
}

澄清,xs = x点,ys = y点

1 个答案:

答案 0 :(得分:0)

不,像这样:

eFit <- function(xs,ys) {
  expEstimate = lm(log(ys) ~ xs)
  plot(xs, ys,pch='@')
  lines(xs, exp(predict(expEstimate)),col='green')
}

我更改了模型名称只是为了使其与logFit函数明显不同,即使它是函数的内部函数。在该模型中,您符合log(y),因此您预测log(y),因此如果您想要查看预测与真实y的对比情况,则需要对其进行转换,并且exp(log(y)) = y