为什么两个具有不同基础的 lm log 模型会产生相同的预测?

Why are two lm log models with different bases produce the same predictions?

我正在尝试使用 lm() 和 predict() 函数预测值,两个不同的函数产生相同的值

考虑 data.frame

d <- structure(list(sample_number = 1:9, 
                    cumSum = c(200.903, 296.329, 370.018, 431.59, 485.14, 533.233, 576.595, 616.536, 654)), 
                    class = "data.frame", row.names = c(NA, 9L))

我正在制作两个不同底座的独立模型。型号其实不一样

lmEBase2 <- lm(cumSum~log(sample_number, base = 2),data=d)
lmEBase3 <- lm(cumSum~log(sample_number, base = 3),data=d)

然而,预测是一样的

logPredBase2 <- predict(lmEBase2, newdata=data.frame(sample_number=1:20))
logPredBase3 <- predict(lmEBase3, newdata=data.frame(sample_number=1:20))
plot  (d$sample_number, d$cumSum, xlim = c(0, 20), ylim = c(0, 1000), type = "b")
lines (1:20, logPredBase2)
lines (1:20, logPredBase3, col = "red")

为什么?

我希望不同对数基数的对数曲线形状不同,如维基百科中所示

https://en.wikipedia.org/wiki/Logarithm

当我们做线性回归时,我们用下面的公式拟合一条直线

其中

这证明截距相等的原因。

同样,

这就是为什么 229.4*log(2,base = 3) = 144.7 其中 229.4 是第二次拟合的系数,144.7 是第一次拟合的系数。并且截距相等。

这解释了执行的两个回归是如何相关的。

现在如果 Fit1 是,

而 Fit 2 是,

再次利用基数的变化可以看出Fit2等于Fit1

因为我们只用了基数的变化,所以不管我们用什么基数,所有的拟合都是一样的。