不适合截距是不寻常的,而且通常是不可取的——只有在你知道它是 0 的情况下才应该这样做,但我认为(而且你不能比较的适合和不适合截距的事实)很好,而且已经真正涵盖(如果在 0 截距的情况下可能有点夸大了);我想关注您的主要问题,即您需要拟合函数是积极的,尽管我在部分答案中确实返回了 0-intercept 问题。R2
获得永远积极的契合的最好方法是适应永远积极的东西。部分取决于您需要适合的功能。
如果您的线性模型主要是为了方便(而不是来自可能源自物理模型的已知函数关系),那么您可以改为使用对数时间;然后保证拟合模型在中为正。作为替代方案,您可能会使用速度而不是时间 - 但是使用线性拟合时,您可能会遇到小速度(长时间)的问题。t
如果您知道您的响应在预测变量中是线性的,则可以尝试拟合约束回归,但是对于多元回归,您需要的确切形式将取决于您的特定 x(没有一个线性约束适用于所有),所以这有点临时。x′s
您还可以查看 GLM,这些 GLM 可用于拟合具有非负拟合值的模型,并且(如果需要)甚至可以具有。E(Y)=Xβ
例如,可以拟合带有身份链接的伽马 GLM。您不应该以任何 x 的负拟合值结束(但如果您在确实不适合的地方强制使用身份链接,则在某些情况下您可能会遇到收敛问题)。
这是一个示例:cars
R 中的数据集,它记录了速度和停车距离(响应)。
有人可能会说“哦,但是速度 0 的距离保证为 0,所以我们应该省略截距”,但这种推理的问题是模型在几个方面被错误指定,并且这个论点只有在模型没有指定错误 - 在这种情况下,截距为 0 的线性模型根本不适合,而截距的线性模型实际上是一个半体面的近似值,即使它实际上并不“正确”。
问题是,如果你拟合一个普通的线性回归,拟合截距是相当负的,这会导致拟合值为负。
蓝线是 OLS 拟合;数据集中最小 x 值的拟合值为负。红线是带有身份链接的伽马 GLM——虽然有一个负截距,但它只有正拟合值。此模型的方差与均值成正比,因此,如果您发现随着预期时间的增长您的数据更加分散,那么它可能特别适合。
因此,这是一种可能值得一试的替代方法。这几乎就像在 R 中拟合回归一样容易。
如果您不需要恒等链接,您可以考虑其他链接功能,如对数链接和反向链接,它们与已经讨论过的转换相关,但不需要实际的转换。
由于人们通常要求它,这是我的情节的代码:
plot(dist~speed,data=cars,xlim=c(0,30),ylim=c(-5,120))
abline(h=0,v=0,col=8)
abline(glm(dist~speed,data=cars,family=Gamma(link=identity)),col=2,lty=2)
abline(lm(dist~speed,data=cars),col=4,lty=2)
(椭圆是后来手动添加的,尽管在 R 中也很容易做到)