2012-10-08 36 views
1

Accord.NET項目主頁(http://code.google.com/p/accord/)包含創建,訓練和評估隱馬爾可夫模型的示例,這些示例基於單變量觀測。我想要做同樣的事情,但是有許多變量的序列。我設想了一個具有因變量和多個獨立變量的多元迴歸結構。我希望能夠估計HMM,其中輸出包括每個狀態的估計截距和係數以及轉換概率矩陣。一個例子是股票收益隨時間變化的beta。例如ret(IBM)= intercept + b1 * ret(Index)+ b2 * ret(SectorETF)+錯誤,但是截距,b1和b2是狀態相關的。Accord.NET來估計多元迴歸HMM模型

Marcelo Perlin在他的MS_Regress package for Matlab中提供了這個功能。不過,我想在C#中使用這個功能。因此,無論是(1)使用Accord.NET庫估計多重回歸HMM模型,(2)將Marcelo Perlin的軟件包轉換爲C#,或(3)關於如何實現我的目標的其他想法,都將非常感謝您的幫助。

謝謝!

回答

3

Accord.NET框架也支持多維功能。您可以通過使用泛型來指定在狀態中使用的任何概率分佈,並且還有一個example available in the documentation

如果你有,例如,二維觀察向量,並選擇承擔多維模型假設高斯排放密度,您可以使用:

// Assume a Normal distribution for two-dimensional samples. 
var density = new MultivariateNormalDistribution(dimension: 2); 

// Create a continuous hidden Markov Model with two states organized in a forward 
// topology and an underlying multivariate Normal distribution as emission density.  
var model = new HiddenMarkovModel<MultivariateNormalDistribution>(new Forward(2), density); 

,然後你可以使用通用的版本學習之典範通常的Baum-Welch,Viterbi或Maximum Likelihood學習者。

但是,遺憾的是,框架仍不支持的是您提到的確切迴歸形式。但它看起來很有趣。也許它可能會在未來的某個地方添加到框架中。如果您願意,請將其作爲建議,並附上項目問題跟蹤器中的一些參考文獻和論文。這似乎是一個非常有用的補充。