最小二乘法
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。
我希望这是回答这样一个基本问题的正确位置。我发现 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。