Comments (9)
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.
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.
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.
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.
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.
Thank you so much! I will experiment with the package. I have forked the package. Kind regards!
from seqhmm.
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.
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.
Thank you so much for your quick response!
from seqhmm.
Related Issues (20)
- [Help request] How to test the model? HOT 1
- can this package support Multivariate Discrete HMM?? HOT 3
- will it work for multivariate time series prediction : different continues or/and discrete/category observation HOT 4
- HMM cluster assignments HOT 2
- seqdata should be a state sequence object HOT 1
- Apply to financial time series? HOT 1
- Parsing HMMER3 files HOT 2
- 'System seems singular' and 'EM algorithm failed' for Mixture Markov Model HOT 2
- Building a model with different sequence lengths HOT 1
- hidden_paths does not respect sequence length HOT 4
- Parallel computation HOT 2
- Forward probability of MHMM vs HMM HOT 1
- standard errors for HMM parameters HOT 3
- Maximum number of colours in cpal/colorpalette HOT 4
- Extracting combinations of emitted states HOT 4
- Error in if (em.con$reltol < resEM$change) { : argument is of length zero HOT 5
- Absorbing state broken in `build_mm()` (seqhmm 1.2.1-1) HOT 1
- Runtime Estimation HOT 1
- EM algorithm failed HOT 1
- Error: number of labels must equal number of states in the alphabet HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from seqhmm.