Git Product home page Git Product logo

Comments (9)

helske avatar helske commented on June 19, 2024

I'm not sure I follow, can you show me an example? What do you mean by joint emission probability? All "individuals" have their own hidden state sequence and a_{t}(j) is computed separately for each (possibly multichannel) sequence, so there can't be a case where all P(o_{t}|j) with different j are zero (as they have to sum to one).

from seqhmm.

omerorsun avatar omerorsun commented on June 19, 2024

Let's say I have three manifest variables, X, Y, Z and observation with the values of 1, 0, 0 for these manifest variables. If some emission probabilities for these X, Y, and Z are P(1|State 1)=0, P(0|State 2)=0, P(0|State 3)=0, then the joint emission probability for State 1, State 2, State 3 will be 0 as follows:

P(1|State 1)P(0|State 1)P(0|State 1)=0

P(1|State 2)P(0|State 2)P(0|State 2)=0

P(1|State 3)P(0|State 3)P(0|State 3)=0

As a result, the forward probabilities for each observation will not sum to 1 as well.

from seqhmm.

helske avatar helske commented on June 19, 2024

Thanks now I understand. Yes, that is possible if the emission matrix is poorly defined with respect to data or due to numerical issues during optimization, but I would think forward_backward gives error or warning in that case as well (just tested with hmm_biofam and it did)? If not, that sounds like a bug. Can you make minimal example where forward_backward behaves differently?

from seqhmm.

omerorsun avatar omerorsun commented on June 19, 2024

Thank you for your response. I will send you a minimal example from my dataset shortly.

My main motivation is to extract a_{t-1}(i)q_{ij}P(o_{t}|j) before summation. I will use them as observation-specific transition probabilities from one state to another. Is there a way to extract them separately before summation without the recalculation?

from seqhmm.

helske avatar helske commented on June 19, 2024

Unfortunately, at the moment you can't extract those terms separately. It could be pretty straightforward to make a new function for that based on this: https://github.com/helske/seqHMM/blob/master/src/internalForward.cpp if speed of "manual" computation in R is an issue though. Unfortunately, I do not have time right now but pull requests are of course very welcome. Although I'm not sure how relevant those values are in general?

from seqhmm.

omerorsun avatar omerorsun commented on June 19, 2024

Thank you so much! I will experiment with the package. I have forked the package. Kind regards!

from seqhmm.

omerorsun avatar omerorsun commented on June 19, 2024

I am looking at https://github.com/helske/seqHMM/blob/master/src/internalForward.cpp
Line 13 and line 20 use %= operator rather than *= for the joint emission probabilities (P(o_{t}|j)). Is there a specific reason why this is the case given the equation for forward probabilities is a_{t-1}(i)q_{ij}P(o_{t}|j)

Thank you so much in advance!

from seqhmm.

helske avatar helske commented on June 19, 2024

The % operator is an element-wise multiplication, so there I am just multiplying the vector of a_{t-1}(i)q_{ij}, j=1,m with each P(o_{t}|j).

from seqhmm.

omerorsun avatar omerorsun commented on June 19, 2024

Thank you so much for your quick response!

from seqhmm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.