【问题标题】:How to use the 'weights' in the nls (non-linear least squares) function in R?如何在 R 的 nls(非线性最小二乘)函数中使用“权重”?
【发布时间】:2026-01-16 06:20:06
【问题描述】:

我的问题是关于如何正确解释(和使用)R 的 nls 函数中的“权重”输入变量以进行非线性加权最小二乘回归。

加权最小二乘法求解未知参数的解法是:

由此变量 P 是大小 (NxN) 的权重方阵,其中 N 是数据观察的数量。

但是,当我查看 R 中的 nls 文档时发现 here,它说要输入的“权重”是一个向量。

这让我很困惑,因为根据我的理解,权重应该是方阵。感谢那些有更好理解的人的一些见解。

【问题讨论】:

  • 我认为该函数仅支持 P 是对角矩阵的情况。所以你提供的向量应该等于观察的数量,并且只是沿着 P 的对角线的元素,所有的值都是 0。
  • @MrFlick 如果是这种情况,这是加权 LS 的有限情况。您是否知道 R 中加权非线性 LS 的任何替代函数?
  • @user121 。如果您正在谈论拟合 nls 的观察权重。那么我认为它应该是一个诊断权重矩阵。请参阅此*页面Non-linear_least_squares
  • @Mankind_008 但如果 P 是方阵,这不可能吗?非对角线可以有非零值?
  • @Mankind_008 谢谢,您是否有“广义非线性 LS”的参考资料?

标签: r regression nonlinear-optimization nls non-linear-regression


【解决方案1】:

Weight 回归中的变量,用于衡量由于不同原因(例如,可能是测量的可靠性或方差估计的倒数),观察对您的模型的重要性。因此,某些观察可能比其他观察更重要/权重更高。

权重向量 ,在矩阵表示法中转换为 对角矩阵 for i in {1,2,3...n,} 两者表示相同的事物(即第 i 个观察的权重)。对于 R 中的 nls 包,您需要以矢量形式提供权重。

另外,应该注意的是,weighted least squares 是广义最小二乘的一个特殊变体,我们使用权重来对抗 heteroskedasticity。如果残差与观测值相关,则通用模型可能是合适的。

PS:交叉验证将是获得更好详细答案的正确位置。此外,随着观察次数的增加,存储向量而不是矩阵似乎更节省内存

【讨论】:

  • 肯定会感谢您提出的问题。我认为这是一个有价值的问题。 PS:为你的答案+1
  • @user121 +1 。绝对是一个有趣的问题。我建议您询问有关交叉验证的更多详细信息。