比较线性回归与对数线性回归与R

比较线性回归与对数线性回归与R,r,regression,data-science,R,Regression,Data Science,我有一款R车型,我将本田思域的价格与行驶里程进行了回归: civic <- read.csv("civic.csv") c <- civic plot (c$Mileage, c$Price, xlab = "Mileage", ylab = "Price") regrPM1 <- lm(Price~Mileage, data = c) abline (regrPM1, col="

我有一款R车型,我将本田思域的价格与行驶里程进行了回归:

civic <- read.csv("civic.csv")
c <- civic

plot (c$Mileage, c$Price,
      xlab = "Mileage",
      ylab = "Price")

regrPM1 <- lm(Price~Mileage, data = c)

abline (regrPM1, col="red",lwd=3)
其结果如下所示:

现在,这不能用来比较这两个模型。我正在寻找一种不使用“对数”刻度来比较它们的方法。 我认为,我可以利用需求曲线来获得更好的结果,但这还没有实现


感谢任何帮助

在原始比例上,这不是一条直线。你可以按照下面的思路做一些事情来显示原始尺度上的非线性预测

DF <- data.frame(Mileage=seq(1, 150000, 1))
pred <- predict(regrPM2, newdata=DF)
lines(DF$Mileage, exp(pred))

DF在没有数据的情况下,很难证明这里的错误,因此我将尝试创建一些与您的大致类似的:

set.seed(69)

m <- rgamma(5000, 2, 2) * 30000
p <- 3e4 * log((rnorm(5e3, 1e4, 1e3) + m)/(m + rnorm(5e3, 5e3, 5e2)) + rgamma(5000, 2, 2)/8)

c <- data.frame(Mileage = m, Price = p)

plot (c$Mileage, c$Price,
      xlab = "Mileage",
      ylab = "Price")

这是因为我们正在(未记录)绘图上绘制价格日志。我们想对回归结果进行反对数,并绘制出曲线图

请注意,最好在
lm
调用中使用
data
参数,因此让我们执行以下操作:

regrPM3 <- lm(log(Price) ~ Mileage, data = c)


因此,蓝色虚线就是对数回归的样子。

这不是因为“log”的比例,即您的原始绘图基于
c$Price
,而不是
log(c$Price)
即尝试
绘图(c$milines,log(c$Price),xlab=“milines”,ylab=“Price”)
谢谢,不幸的是,任务没有考虑到这一点-必须有其他方法来比较这两种方法,关于您的评论,
这看起来不正确
。这只是因为比例。你是对的,我最好指定这一点。除此之外,
点(c$里程,exp(regrPM3$fitted.values),col=“green”,lwd=1,pch=20)
还将拟合值放在图表上。
set.seed(69)

m <- rgamma(5000, 2, 2) * 30000
p <- 3e4 * log((rnorm(5e3, 1e4, 1e3) + m)/(m + rnorm(5e3, 5e3, 5e2)) + rgamma(5000, 2, 2)/8)

c <- data.frame(Mileage = m, Price = p)

plot (c$Mileage, c$Price,
      xlab = "Mileage",
      ylab = "Price")
regrPM1 <- lm(Price~Mileage, data = c)

abline (regrPM1, col="red",lwd=3)
regrPM2 <- lm(log(c$Price)~c$Mileage)
abline(regrPM2, col="green", lwd=3)
regrPM3 <- lm(log(Price) ~ Mileage, data = c)
lines(seq(0, 2e5, 1e3), 
      exp(predict(regrPM3, newdata = list(Mileage = seq(0, 2e5, 1e3)))),
      col = "blue", lty = 2, lwd = 4)