最小二乘法

Least square minimization

我希望这是回答这样一个基本问题的正确位置。我发现 this and this 解决方案非常清晰,因此它们无法帮助我了解该过程的基础知识。
考虑一个随机数据集:

x <- c(1.38, -0.24, 1.72, 2.25)
w <- c(3, 2, 4, 2)

如何找到使最小二乘方程最小化的 μ 值 :

manipulate 允许使用 bar 手动更改具有不同 μ 值的模型,但我正在寻找比 "try manually until you do not find the best fit".

更精确的程序

注意:如果问题贴得不对,欢迎批评指正。

您可以进行如下操作:

optim(mean(x), function(mu) sum(w * (x - mu)^2), method = "BFGS")$par
# [1] 1.367273

这里 mean(x) 是对 mu 的初始猜测。

我不确定这是否是您想要的,但这里有一点代数: 我们想找到 mu 来最小化

S = Sum{ i | w[i]*(x[i] - mu)*(x[i] - mu) }

展开正方形,重新排列成三个求和。将不依赖于 i 的东西带到总和之外:

S = Sum{i|w[i]*x[i]*x[i])-2*mu*Sum{i|w[i]*x[i]}+mu*mu*Sum{i|w[i]}

定义

W = Sum{i|w[i]}
m = Sum{i|w[i]*x[i]} / W
Q = Sum{i|w[i]*x[i]*x[i]}/W

然后

S = W*(Q -2*mu*m + mu*mu) 
  = W*( (mu-m)*(mu-m) + Q - m*m)

(第二步'completing the square',一个简单但非常有用的技巧)

在最后的等式中,由于平方总是非负的,所以使 S 最小化的 mu 的值为 m。