线性与非线性回归

机器算法验证 r 回归 线性模型 模型选择 非线性回归
2022-01-20 05:49:50

我有一组价值观xy理论上呈指数关系:

y=axb

获得系数的一种方法是在两侧应用自然对数并拟合线性模型:

> fit <- lm(log(y)~log(x))
> a <- exp(fit$coefficients[1])
> b <- fit$coefficients[2]

获得此结果的另一种方法是使用非线性回归,给定一组理论起始值:

> fit <- nls(y~a*x^b, start=c(a=50, b=1.3))

如果我应用第二种算法,我的测试会显示出更好和更多与理论相关的结果。但是,我想知道每种方法的统计意义和含义。

他们哪个更好?

2个回答

“更好”是您的模型的一个功能。

您感到困惑的部分原因是您只写了一半的模型。

当你说y=axb,这实际上不是真的。你观察到的y等于axb; 他们有一个错误组件。

例如,您提到的两个模型(无论如何都不是唯一可能的模型)对错误做出完全不同的假设。

你可能意味着更接近E(Y|X=x)=axb.

但是,那么我们怎么说Y在给定的情况下偏离期望x? 很重要!

  • 当您拟合非线性最小二乘模型时,您是在说误差是相加的,并且误差的标准偏差在数据中是恒定的:

    yiN(axib,σ2)

    或等效地

    yi=axib+ei, 和var(ei)=σ2

  • 相比之下,当您采用对数并拟合线性模型时,您是在说误差在对数尺度上是相加的,并且(在对数尺度上)数据中的常数。这意味着在观测的尺度上,误差项是相乘的,因此当期望值越大时误差越大:

    yilogN(loga+blogxi,σ2)

    或等效地

    yi=axibηi, 和ηilogN(0,σ2)

    (注意E(η)不是 1。如果σ2不是很小,如果您想要一个合理的近似值Y)

(您可以在不假设正态/对数正态分布的情况下进行最小二乘,但讨论的中心问题仍然适用……如果您离正态还差得很远,您可能应该考虑使用不同的误差模型)

所以最好的取决于哪种错误模型描述了您的情况。

[如果您正在对某种以前从未见过的数据进行探索性分析,您会考虑诸如“您的数据是什么样的?(即y密谋反对x? 残差看起来像什么x?”。另一方面,如果像这样的变量并不少见,您应该已经了解了它们的一般行为。]

当您拟合任一模型时,您假设残差集(Y 的观测值和预测值之间的差异)遵循高斯分布。如果该假设对您的原始数据(非线性回归)成立,那么对数转换值(线性回归)将不成立,反之亦然。

哪个模型“更好”?模型的假设与数据最接近的一种。