2012-11-18 72 views
1

我一直在尋找一段時間擬合Levy分佈直方圖無濟於事。我希望測試Levy Flight分佈在數據上的外觀如何,無論它是否真的適合我們的數據類型。由於我對PDF文件比較陌生,除了MATLAB中的distfittool圖形用戶界面外,我自己安裝了PDFS,所以我有點不知道我需要做些什麼來正確地做到這一點。因此,目前,我的數據是208x1矢量,208個點表示208個不同對象的不同速度。速度是通過每次總體距離來計算的。現在Levy飛行分佈直方圖Matlab

,目前我把它描述從徵飛行功能: 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); 

我不知道如何適應在首位直方圖,所以希望這可以幫助別人的新本!