hmmestimate

Скрытые оценки параметров марковской модели от выбросов и состояний

Синтаксис

[TRANS,EMIS] = hmmestimate(seq,states)
hmmestimate(...,'Symbols',SYMBOLS)
hmmestimate(...,'Statenames',STATENAMES)
hmmestimate(...,'Pseudoemissions',PSEUDOE)
hmmestimate(...,'Pseudotransitions',PSEUDOTR)

Описание

[TRANS,EMIS] = hmmestimate(seq,states) вычисляет максимальную оценку правдоподобия перехода, TRANS, и выбросы, EMIS, вероятности скрытой модели Маркова для последовательности, seq, с известными состояниями, states.

hmmestimate(...,'Symbols',SYMBOLS) задает символы, которые испускаются. SYMBOLS может быть числовым массивом, строковыми массивами или массивом ячеек с именами символов. Символы по умолчанию являются целыми числами с 1 по N, где N - количество возможных выбросов.

hmmestimate(...,'Statenames',STATENAMES) задает имена состояний. STATENAMES может быть числовым массивом, строковыми массивами или массивом ячеек с именами состояний. Имена состояний по умолчанию: с 1 по M, где M количество состояний.

hmmestimate(...,'Pseudoemissions',PSEUDOE) задает значения выбросов псевдоконта в матрице PSEUDOE. Используйте этот аргумент, чтобы избежать нулевых оценок вероятности для выбросов с очень низкой вероятностью, которые могут не быть представлены в выборочной последовательности. PSEUDOE должна быть матрицей размера m -by - n, где m - количество состояний в скрытой модели Маркова и n - количество возможных выбросов. Если ik эмиссия не происходит в seq, можно задать PSEUDOE(i,k) быть положительным числом, представляющим оценку ожидаемого числа таких выбросов в последовательности seq.

hmmestimate(...,'Pseudotransitions',PSEUDOTR) задает значения перехода pseudocount. Можно использовать этот аргумент, чтобы избежать нулевых оценок вероятности для переходов с очень низкой вероятностью, которые могут не быть представлены в выборочной последовательности. PSEUDOTR должна быть матрицей размера m -by - m, где m - количество состояний в скрытой модели Маркова. Если ij переход не происходит в states, можно задать PSEUDOTR(i,j) быть положительным числом, представляющим оценку ожидаемого числа таких переходов в последовательности states.

Псевдотранзиции и псевдоизмерения

Если вероятность определенного перехода или выбросов очень низкая, переход может никогда не произойти в последовательности states, или эмиссия может никогда не произойти в последовательности seq. В любом случае алгоритм возвращает вероятность 0 для данного перехода или излучения в TRANS или EMIS. Отсутствие перехода можно компенсировать 'Pseudotransitions' и 'Pseudoemissions' аргументы. Самый простой способ сделать это - задать соответствующий ввод PSEUDOE или PSEUDOTR на 1. Для примера, если переход ij не происходит в states, задать PSEUDOTR(i,j) = 1. Эти силы TRANS(i,j) быть положительным. Если у вас есть оценка ожидаемого количества переходов ij в последовательности той же длины, что и states, и фактическое количество переходов ij которые происходят в seq существенно меньше, чем вы ожидаете, можно задать PSEUDOTR(i,j) на ожидаемый номер. Это увеличивает значение TRANS(i,j). Для переходов, которые происходят в состояниях с ожидаемой частотой, установите соответствующий вход PSEUDOTR на 0, что не увеличивает соответствующий ввод TRANS.

Если вы не знаете последовательности состояний, используйте hmmtrain для оценки параметров модели.

Примеры

trans = [0.95,0.05; 0.10,0.90];
emis = [1/6 1/6 1/6 1/6 1/6 1/6;
   1/10 1/10 1/10 1/10 1/10 1/2];

[seq,states] = hmmgenerate(1000,trans,emis);
[estimateTR,estimateE] = hmmestimate(seq,states);

Ссылки

[1] Дурбин, Р., С. Эдди, А. Крог и Г. Митчисон. Анализ биологической последовательности. Кембридж, Великобритания: Cambridge University Press, 1998.

Представлено до R2006a