【发布时间】:2015-09-16 21:00:33
【问题描述】:
考虑这个代码示例,根据 Akaike 准则从改变拟合高斯数的数据中获得最佳拟合
MU1 = [1];
SIGMA1 = [2];
MU2 = [-3];
SIGMA2 = [1 ];
X = [mvnrnd(MU1,SIGMA1,1000);mvnrnd(MU2,SIGMA2,1000)];
AIC = zeros(1,4);
obj = cell(1,4);
options = statset('Display','final');
for k = 1:4
obj{k} = gmdistribution.fit(X,k,'Options',options);
AIC(k)= obj{k}.AIC;
end
[minAIC,numComponents] = min(AIC)
我想做同样的事情,但数据是以直方图的形式给出的(例如数据http://pastebin.com/embed_js.php?i=1mNRuEHZ)。
在这种情况下,在matlab中实现相同程序的最直接方法是什么?
【问题讨论】:
-
为什么不使用相同的算法,而是使用直方图数据而不是 X?
-
@lhcgeneva 这是我的问题!我不知道该怎么做。如果我只是将 X 作为直方图的值,它会将它们视为提取的值,而不是直方图 bin 的概率。
-
您的“直方图”计数不是整数是怎么回事?
-
@lhcgeneva 我感兴趣的数据是来自发光的实验数据。此外,峰值之外的值是由于环境噪声造成的。我对此噪声上方的峰值感兴趣,因此可以将任意值添加到直方图中(在示例中我已对其进行了修复,以使峰值外的平均值约为零 - 所以碰巧有负值)。
-
对,那么答案是否包含您想要做的事情?如果没有,我没有得到这个问题......
标签: matlab statistics curve-fitting