【问题标题】:Hidden Markov Models methods for selecting optimal number of states用于选择最佳状态数的隐马尔可夫模型方法
【发布时间】:2014-06-07 15:10:25
【问题描述】:

包装 RHmm

我有一个向量,我尝试将其放入一个 hmm 模型中,以便为隐藏的马尔可夫模型选择最佳状态数

x<-c(-0.0961421466,-0.0375458485,0.0681121271,0.0259201028,0.0016780785,0.0311860542,      
0.0067940299,0.0126520055,0.0357599812,0.0007679569,0.0409759326,0.0560839083,-0.0272581160,-0.0439501404,0.0321578353,0.0196158110,-0.0097262133,-0.0226182376,0.0119897380,-0.0099522863,-0.0359443106,-0.0039363349,-0.0476283592,-0.0383203835,-0.0518624079,0.0187455678,0.0950535435,0.0057115192,-0.0307805051,-0.0272725295,-0.0254645538,-0.0102565781,-0.0267986024,-0.0482906267,-0.0256826510,-0.0414746754,-0.0470666997,0.0284912760,0.1021992517,0.0875572274,0.0064152031,0.0200731787,-0.0091688456,-0.0575608699,-0.0442028942,-0.0277449185,-0.0115369429,0.0084710328,0.0745290085,0.0159369842,-0.0784550401,-0.0934970644,-0.0978390888,0.0160188869,0.0275268626,-0.0552651617,0.0033928140,0.0468507896,0.0374087653,0.0521167410,-0.0177752833,-0.0592673076,0.0514406681,0.0847486437,0.0738066194,-0.0098354049,-0.0572274292,0.0478305465,0.0096885221,-0.0445535022,-0.0153455265,-0.0105375508,0.0100704249,-0.0035215994,0.0243363762,0.0504443519,0.0570023276,0.0395103033,-0.0612817210,-0.0557737453,-0.0273657697,-0.0220077940,0.0083501817,0.0275081574,0.0323161331,0.0385741087,0.0175820844-0.0410599399,-0.0071019642,0.0431060115,-0.0107360128,-0.0007280372,0.0360799385,-0.0061620858  0.0164458899 -0.0050461344 -0.0578381588  0.0097198169  0.0027277926 -0.0127642317,
-0.0037062560, -0.0045482803,  0.0367596953, 0.0021176710,-0.0319243533,-0.0194663776,0.00 91915981,0.0061495737,-0.0090424506,0.0127655251,0.0161735008,0.0193814765,-0.0208605478,-0.0598025722,0.0022554035,0.0473633792,0.0247213549,-0.0063206694,-0.0201626938,0.0207952819,0.0379032576,0.0151612333,0.0038692090,0.0111271847,0.0497851603,0.0273431360,-0.0172488883,-0.0038909126,0.0264670631,-0.0065249612,-0.0467169856,-0.0255090099,0.0082489658, 0.0352569415,0.0272149172,0.0074228928,-0.0040191315,-0.0170611558,-0.0309531801,-0.0327952044,-0.0239372287,-0.0212792531,-0.0132712774,0.0086866983,-0.0007553260,0.0107026497,0.0065106253,-0.0321813990,-0.0081734233,0.0296845524,0.0268925281,-0.0025994962,-0.0038915206, -0.0126335449,0.0040244308,0.0227324065,0.0114903822,-0.0031516422,0.0031563335,0.0137143092,0.0026222849,0.0035802606,0.0111382363,-0.0008037881, -0.0282458124, 0.0056121633, 0.0254201390,0.0033781147,-0.0166139097,-0.0124559340,0.0088520417,0.0072600174, -0.0050320069,-0.0114740312,-0.0066160556, -0.0042080799, -0.0205501042,0.0027078715,  0.0122158472,-0.0206261771,-0.0267682015,-0.0107602258,0.0088477499,0.0165057256, 0.0106637013,0.0115216769,0.0278296526,0.0026376283,-0.0231543960,-0.0141964203)

#partitions test/train
nhs <- c(2,3,4) #number of possible states
S<-runif(length (x))<= .66
train<-print(S)

# mean conditional density of log probability of seeing the partial sequence of obs 
for(i in 1:length(nhs)){
pred <- vector("list", length(x))
    for(fold in 1:length(x)){
        fit <- HMMFit(x [which(train==TRUE)],dis="NORMAL",nStates=nhs[i],
        asymptCov=FALSE)
        pred[[fold]] <-  forwardBackward(fit, x[which(train==FALSE)])
   }
error[i] <- pred[[fold]]$LLH
  }
nhs[which.max(error)]    # Optimal number of hidden states (method max log-likehood)

每次我运行模型试图获得使用隐藏马尔可夫模型的最佳状态数时,我都会得到不同数量的状态,因为我相信模型是通过随机选择的新值进行训练的。如果我只是拟合模型,则不会发生这种情况。

#score proportional to probability that a sequence is generated by a given model
nhs <- c(2,3,4)
for(i in 1:length(nhs)){
    fit <- HMMFit(x, dis="NORMAL", nStates= nhs[i], asymptCov=FALSE)
    VitPath = viterbi(fit, x)
   error[i] <- fit[[3]]
}
error<-c(error) 
error[is.na(error)] <- 10000
nhs[which.min(error)]    # Optimal number of hidden states (method min AIC)

但是结果却大不相同。哪一个更好,一方面我有一个模型,我可以在其中测试新样本。另一方面,第二个提供了对所见样本的最佳拟合,但结果却大不相同。在模型的情况下,如果我重复测试,因为训练/测试集发生变化(随机),结果状态数也会发生变化。在这种情况下,我应该使用什么百分比的样本/训练来确定这个选择将提供状态数量的泛化。

我可以采用哪些其他方法来选择最佳状态数

非常感谢

【问题讨论】:

  • 将在 stats.stackexchange.com 上获得更好的兴趣
  • 谢谢,我也发了。

标签: r


【解决方案1】:

递归量化分析 (RQA) 是一种非线性数据分析方法,它量化动态系统的状态空间轨迹所呈现的递归次数和持续时间。

这些度量可以在沿主对角线的窗口中计算。这允许研究它们的时间依赖性,并可用于检测转换。 (垂直或水平点 = 混沌-混沌转换或对角结构 = 混沌-有序或有序-混沌转换)。 RP 中对角线的长度与系统固有的确定性或可预测性的比率直接相关。

另一种可能性是分别为平行于主对角线的每条对角线定义这些度量。这种方法可以研究时间延迟、不稳定的周期轨道,并且通过应用于基于对角结构的测量能够找到混沌阶跃迁,基于垂直(水平)结构的测量能够找到混沌-混沌跃迁,评估过程之间的相似性。

交叉递归图 (CRP) 相当于小波中的交叉相位分析。 CRP 是一个图表,它显示了一个动态系统中的状态同时在第二个动态系统中发生的所有时间。换言之,当第一系统的相空间轨迹在第二系统的相空间轨迹所在的相空间中大致相同区域时,CRP始终揭示。最后的分析是否可以确定隐藏状态的最佳数量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多