我希望这是这个基本问题的正确位置。我发现this和this解决方案非常明确,因此它们无法帮助我了解程序的基本原理。
考虑一个随机数据集:
x <- c(1.38, -0.24, 1.72, 2.25)
w <- c(3, 2, 4, 2)
包manipulate
允许手动更改带有不同μ值的模型,但我正在寻找比“手动尝试直到找不到最合适”更精确的程序。
注意:如果问题没有正确发布,我会欢迎有建设性的批评者。
答案 0 :(得分:3)
您可以按以下步骤操作:
optim(mean(x), function(mu) sum(w * (x - mu)^2), method = "BFGS")$par
# [1] 1.367273
此处mean(x)
是mu
的初始猜测。
答案 1 :(得分:0)
我不确定这是否是你想要的,但这里有一个小代数: 我们想找到μ来最小化
IntPtr hwnd = new IntPtr(Convert.ToInt32(windowListView.SelectedItems[0].SubItems[3].Text));
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
展开方块,然后重新排列为三个求和。带来不依赖于我的东西:
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
(第二步是完成广场&#39;这是一种简单但非常有用的技术)。
在最后的等式中,由于正方形总是非负的,因此最小化S的μ值为m。