R 最小二乘极小化
我希望这是提出这样一个基本问题的正确地点。我发现问题和解决方案非常明确,因此它们不能帮助我了解程序的基本原理。R 最小二乘极小化,r,least-squares,R,Least Squares,我希望这是提出这样一个基本问题的正确地点。我发现问题和解决方案非常明确,因此它们不能帮助我了解程序的基本原理。 考虑一个随机数据集: x <- c(1.38, -0.24, 1.72, 2.25) w <- c(3, 2, 4, 2) x您可以按如下方式进行操作: optim(mean(x), function(mu) sum(w * (x - mu)^2), method = "BFGS")$par # [1] 1.367273 这里的mean(x)是mu的初始猜测,我不确定这
考虑一个随机数据集:
x <- c(1.38, -0.24, 1.72, 2.25)
w <- c(3, 2, 4, 2)
x您可以按如下方式进行操作:
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) }
展开正方形,然后重新排列为三个求和。把不依赖于我的东西带到总数之外:
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最小化的μ值为m。在这种特殊情况下,coef(lm(x~1,weight=w))[1]
也将产生相同的结果。
S = W*(Q -2*mu*m + mu*mu)
= W*( (mu-m)*(mu-m) + Q - m*m)