Estou tentando implementar um algoritmo EM para o seguinte modelo de análise fatorial;
onde é um vetor aleatório p-dimensional, é um vetor q-dimensional de variáveis latentes e é uma matriz de parâmetros pxq.a j B
Como resultado de outras suposições usadas para o modelo, eu sei que que D é a matriz de covariância de variância dos termos de erro e_j , D = diag ( \ sigma_1 ^ 2 , \ sigma_2 ^ 2 , ..., \ sigma_p ^ 2 ).D
Para o algoritmo EM para o trabalho, eu estou fazendo iterações cúpula envolvendo estimativa de e matrizes e durante estes iterações eu estou calculando o inverso do em cada iteração usando novas estimativas de e . Infelizmente, durante o curso das iterações, perde sua definição positiva (mas não deve ser porque é uma matriz de variância-covariância) e essa situação arruina a convergência do algoritmo. Minhas perguntas são:
Essa situação mostra que há algo errado com meu algoritmo, pois a probabilidade deve aumentar a cada etapa do EM?
Quais são as formas práticas de tornar uma matriz positiva definitiva?
Edit: Estou computando o inverso usando um lema de inversão de matriz que afirma que:
onde o lado direito envolve apenas o inverso de matrizes .
fonte
Respostas:
OK, já que você está fazendo FA, estou assumindo que é da coluna completa e . Precisamos de mais alguns detalhes. Isso pode ser um problema numérico; também pode ser um problema com seus dados.q q < pB q q<p
Como você está computando o inverso? Você precisa do inverso explicitamente ou pode reexprimir o cálculo como a solução para um sistema linear? (ou seja, para obter resolva para x, que normalmente é mais rápido e mais estável)A x = bA−1b Ax=b
O que está acontecendo com ? As estimativas são realmente pequenas / 0 / negativas? Em certo sentido, é o elo crítico, porque é obviamente deficiente na classificação e define uma matriz de covariância singular antes de adicionar , portanto você não pode invertê-lo. A adição da matriz diagonal positiva tecnicamente a torna completa, mas ainda pode estar terrivelmente mal condicionada se for pequeno.B B ′ D D B B ′ + D DD BB′ D D BB′+D D
Muitas vezes, a estimativa para as variações idiossincráticas (your , os elementos diagonais de ) é próxima de zero ou até negativa; esses são chamados casos de Heywood. Veja, por exemplo, http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm (qualquer texto da FA também deve discutir isso, é um problema muito antigo e bem conhecido). Isso pode resultar de erros de especificação do modelo, outliers, má sorte, erupções solares ... o MLE é particularmente propenso a esse problema; portanto, se o seu algoritmo EM for projetado para obter a aparência do MLE. Dσ2i D
Se o seu algoritmo EM estiver se aproximando de um modo com essas estimativas, é possível que o perca sua definição positiva, eu acho. Existem várias soluções; pessoalmente, eu preferiria uma abordagem bayesiana, mas mesmo assim você precisa ter cuidado com seus priores (priores impróprios ou priores apropriados com muita massa perto de 0 podem ter o mesmo problema basicamente pelo mesmo motivo)BB′+D
fonte