2013-03-13 28 views
5

在MATLAB統計教程有一個名爲「裝修更復雜的分佈:兩條法線的混合物」部分 http://www.mathworks.com/help/stats/examples/fitting-custom-univariate-distributions.htmlMATLAB - 爲周期函數最大似然(角度)

pdf_normmixture = @(x,p,mu1,mu2,sigma1,sigma2) ... 
        p*normpdf(x,mu1,sigma1) + (1-p)*normpdf(x,mu2,sigma2); 
lb = [0 -Inf -Inf 0 0]; 
ub = [1 Inf Inf Inf Inf]; 
start = [pStart muStart sigmaStart sigmaStart]; 
paramEsts = mle(x, 'pdf',pdf_normmixture, 'start',start, 'lower',lb, 'upper',ub) 

我想應用相同的方法來擬合兩個或更多個法線到我擁有的單變量值集合,但在週期域內的。也就是說,具有0°至360°的值的角度作爲圓形範圍連接在一起。我不確定如何聲明它以使MATLAB理解這種術語。

是否可以更改此實現來添加循環範圍的情況?

問候, 伊格納西奧

+0

這是一個非常有趣的問題,我會熱衷於聽到一些原則性的做法。然而,在某些較少編程方面可能會有更好的答案 - 例如, http://stats.stackexchange.com/ – 2013-03-13 16:07:28

+0

我會在那裏發佈它。我應該從這裏刪除這篇文章嗎?謝謝 – 2013-03-13 16:20:59

+0

不,除非有更多的共識 - 我認爲類似的問題出現在這裏很多,所以不應該是一個問題。也可能有一些特別的MATLAB解決方案... – 2013-03-13 16:33:36

回答

1

我使用的馮米塞斯分佈http://en.wikipedia.org/wiki/Von_Mises_distribution這被認爲是非常近似的包裹正常(見「中的主題的條件」圓形統計S.饒Jammalamadaka,A. SENGUPTA」 「)。不幸的是,我沒有matlab來測試它,但我認爲代碼正在運行。因此,這樣的事情如果可以的近似是有效的完成:

主要功能:

%,你應該提供的列向量THETA 0-2pi

n=size(theta,1); 

mu=0; 

k=1; 

theParameters=[mu;k]; 
options = optimset('TolFun',0.01); 
outputPar = fminsearch('ml',theParameters,options,n,theta); 

ML作用

function mLike=ml(theParameters,n,theta) 

mu=theParameters(1,1); 
k=theParameters(2,1); 

theSum=0; 
for i=1:n 
    theSum=theSum+k*cos(theta(i,1)-mu); 
end  
mLike=-n*log(2*pi*besselj(0,k)) + theSum; 
mLike=-mLike; 

我希望它有幫助! R中還有一個工具箱,用於處理這種估計http://cran.r-project.org/web/packages/circular/circular.pdf

如果你對k的正定性有問題,爲了避免處理約束優化,可以改爲k = exp(kk)並估算kk。

+0

順便說一句,如果上述近似無效,也許數據不正常包裝! – DanielTheRocketMan 2013-03-14 21:30:02