Количество параметров в марковской модели

12

Я хочу использовать BIC для выбора модели HMM:

BIC = -2*logLike + num_of_params * log(num_of_data)

Итак, как мне посчитать количество параметров в модели HMM. Рассмотрим простой HMM с двумя состояниями, где у нас есть следующие данные:

data = [1 2 1 1 2 2 2 1 2 3 3 2 3 2 1 2 2 3 4 5 5 3 3 2 6 6 5 6 4 3 4 4 4 4 4 4 3 3 2 2];
model = hmmFit(data, 2, 'discrete');
model.pi = 0.6661    0.3339;
model.A = 
    0.8849    0.1151
    0.1201    0.8799
model.emission.T = 
    0.2355    0.5232    0.2259    0.0052    0.0049    0.0053
    0.0053    0.0449    0.2204    0.4135    0.1582    0.1578
logLike = hmmLogprob(model,data);
logLike =  -55.8382

Я так думаю:

Nparams = size(model.A,2)*(size(model.A,2)-1) + 
          size(model.pi,2)-1) + 
          size(model.emission.T,1)*(size(model.emission.T,2)-1)
Nparams = 13

Итак, в конце мы имеем:

BIC = -2*logLike + num_of_params*log(length(x))
BIC = 159.6319

Я нашел решение, где формула для num_of_params(для простой модели Маркова) выглядит следующим образом:

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

Так что же является правильным решением? Должен ли я принимать во внимание некоторые нулевые вероятности в матрицах перехода или излучения?

==== Обновлено с 15.07.2011 ====

Я думаю, что могу дать некоторые разъяснения о влиянии измерения данных (на примере «Гауссово распределение смеси»)

X - матрица размером n на d, где (n строк соответствуют наблюдениям; d столбцов соответствуют переменным (N измерений).

X=[3,17 3,43
   1,69 2,94
   3,92 5,04
   1,65 1,79
   1,59 3,92
   2,53 3,73
   2,26 3,60
   3,87 5,01
   3,71 4,83
   1,89 3,30 ];
[n d] = size(X); 
n = 10; d =2;

Модель будет иметь следующее количество параметров для GMM:

nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * Ndimensions  %for daigonal covariance matrices
nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * NDimensions * (NDimensions+1)/2; %for full covariance matrices

Если мы будем рассматривать X как одномерные данные , чем мы имеем num_of_data = (n*d), то и для двумерных данных мы имеем num_of_data = n.

2-мерные данные: nParam = 11; logLike = -11,8197; БИК = 1.689

Одномерные данные: nParam = 5; logLike = -24,8753; БИК = -34,7720

У меня очень мало практики с HMM. Нормально ли иметь HMM с (5000, 6000 и более параметров)?

Сергей
источник
у вас есть обоснование для использования BIC? Это может дать ужасно неправильные результаты, если не с соответствующими предположениями.
Suncoolsu
@suncoolsu, что ты имеешь в виду под оправданием? Я нашел несколько примеров выбора K-кластеров (моделей GMM) на основе оценки BIC. Возможно, я привел неверный пример, сравнивая две модели с разными входными данными (измерениями).
Сергей
1
Я имел в виду использование BIC только в том случае, если предположение, что истинная модель находится в пространстве модели , оправдано. Может быть, это оправдано в вашем случае. Я согласен с вами, что люди используют BIC как AIC, но оба они очень разные вещи!
Suncoolsu
Привет, это поздний комментарий и надеюсь, что вы все еще активны, но как лучше всего получить количество параметров в модели?
Масфеникс,

Ответы:

7

Вопрос в том, фиксированы ли для начала некоторые из ваших параметров в матрице переходов и / или матрице выбросов. Ваши расчеты (количества параметров) выглядят правильно. Если по какой-то причине вы хотите модель с 3 состояниями вместо модели с 2 состояниями и заранее решите, что переходы из состояний с 1 на 3 и с 3 на 1 недопустимы (имеют 0 вероятностей), вы должны будете принять это во внимание при вычислении количество параметров.

NRH
источник
Должен ли я принимать во внимание измерение данных? Что, если size(data)будет 2х100
Сергей
@ Сергей, я только посмотрел на вычисление количества параметров в своем ответе. Для полноты я должен был подумать о том, как вычислить «размер» набора данных, так как вас интересует BIC. Если честно, я видел только вывод BIC для независимых данных, но я предполагаю, что правильный «размер» данных - это длина ряда данных. Я не уверен, что вы подразумеваете под размером 2х100. Если вы хотите прокомментировать это, вы должны дать более точное описание того, как данные кодируются в виде матрицы 2 на 100.
NRH
Спасибо за ответ, я думаю, что понимаю влияние измерения данных на BIC, пожалуйста, посмотрите мое обновление
Сергей
Нужно ли уменьшать количество параметров в модели HMM слева (справа) (с треугольной матрицей перехода)? Нормально ли иметь HMM с параметрами (5000, 6000 и более)?
Сергей
4

Когда мы вычисляем количество свободных параметров в BIC выбора модели, это означает, что это просто число нулей в матрицах перехода и излучения. Например, когда в матрице перехода есть ноль - это означает, что нет вероятности того, что определенное состояние переместится в следующее (как определено матрицей перехода). Вот как BIC выбирает оптимальные состояния для HMM. Однако получение количества свободных параметров только с использованием размера начальной, переходной и эмиссионной матриц сбивает с толку

jebsam
источник