【问题标题】:Difference between minimizing RMSE or MSE in non linear least squares?在非线性最小二乘法中最小化 RMSE 或 MSE 之间的区别?
【发布时间】:2022-01-03 23:35:43
【问题描述】:

我正在使用 Gerhard Dikta 和 Marsel Scheer 所著“Bootstrap Methods: With Applications in R”一书中的代码使用 R:

set.seed(123,kind ="Mersenne-Twister",normal.kind ="Inversion")
semiparametric_data <-
  data.frame(X = runif(400, min = 1, max = 30)) %>%
    dplyr::mutate(
    mu = 4 * exp(-X/2) - 3 * exp(-X/10), epsilon = rnorm(400, sd = 0.25),
    Y = mu + epsilon)

fit_sp <- minpack.lm::nlsLM(
  formula = Y  ̃ a * exp(X/b) + c * exp(X/d),
  data = semiparametric_data,
  start = c(a = 4, b = -2, c = -3, d = -10),
  control = nls.control(maxiter = 1000))
fit_sp

## Nonlinear regression model
  ##   model: Y  ̃ a * exp(X/b) + c * exp(X/d)
  ##    data: semiparametric_data
  ##      a      b      c      d
  ##  3.707 -2.105 -3.025 -9.797
  ##  residual sum-of-squares: 23.76
  ##
  ## Number of iterations to convergence: 3
  ## Achieved convergence tolerance: 1.49e-08
  1. 什么是最小化nls 函数? RMSE 还是 MSE?
  2. 最小化 RMSE 或 MSE 有什么区别?

从理论/数学的角度来看,得到的系数应该是相同的,但实际上得到的系数略有不同。

  1. 在非线性最小二乘法中,在 RMSE 和 MSE 之间最小化哪种方法更有效?

【问题讨论】:

  • nls 最小化残差平方和。
  • @jdobres 感谢您的建议。我在这里发布了这个问题,因为我认为系数估计的差异可以用求解器的效率来解释。从统计的角度来看,RMSE 和 MSE 最小化之间应该没有区别。
  • 我不确定您在这里比较的哪些系数“略有不同”;您只显示来自minpack.lm::nlsLM 的适合。您是否将此与nls 进行比较?正如我在回答中提到的,nlsnlsLM 使用不同的算法(Gauss-Newton vs Levenberg-Marquardt)。

标签: r mse


【解决方案1】:

最小化平方和的任何合理的单调、保持符号变换之间的结果应该几乎没有差异(如果符号被翻转,我们需要最大化而不是最小化):残差平方和,平方SSQ 的根,均方根 (SSQ/n),均方根...正如您所指出的,在数学/统计上应该没有区别。在计算上,唯一的区别在于浮点精度。我可以想象,在响应规模非常大或响应规模范围非常大的情况下,RMSE 可能稍微更准确,但如果差异很明显,我会感到惊讶在任何实际情况下。

nls 最小化残差平方和;如果你想玩这个,你可以在 R 的一个通用最小化器(optimnlmnlminb,...)中尝试不同的目标函数——但是不同的最小化器之间的效率差异optim/nlm/nlminbnls (Gauss-Newton) 和 nlsLM (Levenberg-Marquardt) 使用的更专业的算法,甚至在实现这些算法时做出的特定选择,都可能使比目标函数的尺度选择差异更大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多