我一直在寻找将Levy Distributions安装到直方图上的一段时间无济于事。我希望测试Levy Flight分布如何看待数据,无论它是否真的适合我们的数据类型。因为除了matlab中的distfittool GUI之外,我对PDF很新并且适合我自己的PDFS,我有点不知道我需要做些什么才能正确地做到这一点。
目前,我的数据是208x1向量,208个点表示208个不同对象的不同速度。通过每次的总距离计算速度。
现在,我现在使用了描述Levy航班的功能: http://reference.wolfram.com/mathematica/ref/LevyDistribution.html(出[3])
我使用以下代码试一试:
load('Speeds.mat')
modelFun = @(p,x) (exp(-p(1)./(2.*(x-p(2)))).*(p(1)./(x-p(2))).^3/2)./(sqrt(2.*pi).*p(1));
startingVals = [1 1];
coefEsts = nlinfit(LBSpeed,modelFun,startingVals);
我完全清楚我对Levy飞行分布的不熟悉是我不确定这是否是用于分发的正确功能的根本原因,也不是我需要传递给它的正确参数做这个。如果有人能给我一点洞察力,我会非常感激。
答案 0 :(得分:1)
我已经看到类似的问题没有答案,所以在得到同事的帮助后我想发布解决方案
从我原来的问题改变的另一件事是,为了更好地满足我自己发布的征收飞行等式的参考,它变得分段。我选择的起始值是任意的。
load('Speeds.mat')
[N,X] = hist(Speed,20);
Y = N/(sum(N))/diff(X(1:2));
%Get best parameters
modelFun = @(p,x) (x>p(2)).*(exp(-p(1)./(2.*(x-p(2)))).*(p(1)./(x-p(2))).^(3/2))./(sqrt(2.*pi).*p(1));
startingVals = [1,1];
coefEsts = nlinfit(X,Y,modelFun, startingVals);
%Visualize fit
bar(X,Y);
hold on;
model_eval = modelFun(coefEsts,X);
plot(X,model_eval,'r','LineWidth',2);
我一开始并不知道如何拟合直方图,所以希望这可以帮助新手做到这一点!
答案 1 :(得分:0)
您可以在本网站的Matlab代码中找到适合的例程