• ### Question

• There are certain events that I am trying to predict based on the past times these events have occurred.  Below is a picture of these events for one person.  Rows are days, going from midnight to midnight.  Ignore the fact that some events are yellow, some are red, and some are longer than other.

The main features we want to model are 1) There are certain times of day that the event is likely, but not guaranteed, to happen (you can see that there are at least two such times of day for this person).  2) Other than these consistent times of day, there are periods of time (such as in the early morning) where the event occurs more frequently than at other time of day .  3) Events tend to occur at semi-regular intervals.

My idea is to model the type 1 events as Gaussians with a fixed probability of being activated.  I would model type 2 events as occurring at some random future time whose mean depends on time of day  (I would, perhaps, discretize time of day into 3 segments - morning, day, and night.  The exact boundaries of these times of day could be learned as well).

My question is whether this model is likely to behave well in Infer.NET, whether there are any settings that will improve its performance, and whether there are any changes to the model that would improve its performance.

Wednesday, November 4, 2015 4:39 PM

### All replies

• You will need to specify the model more precisely.  Suppose we discretize time into an integer.  Ignoring the duration of an event means that each event can be described by an integer.  The events for a given day would therefore be a set of integers, or perhaps an array of integers if you want to keep them sorted.  What stochastic process would you use to generate this array?
Wednesday, November 4, 2015 5:21 PM
• Type 1 events : For each type 1 (i.e. fixed time) event, I would generate a Bernoulli random variable  to decide whether to activate the event.  If it were activated, I would then choose the time according to a Gaussian distribution.

Type 2 events : Have distribution on time of first event.  Pick event from that distribution.  Given event i at time t, choose time to event i + 1 from the distribution DistributionOnTimeToNextEvent_t.  This distribution could be, say, a gamma distribution.  The dependence on t could be very coarse : Maybe the distribution on time to next event only actually changes at 6AM and 5PM.

All events : Take the union of Type 1 events and Type 2 events.

• Edited by Thursday, November 5, 2015 9:27 PM Emphasize delta on time to next event rather than time of next event
Thursday, November 5, 2015 9:18 PM
• The model you describe assumes a union of two independent event streams.  But that doesn't seem to match the data.  Look at the fourth row for example.  Here all events are spaced out equally, including the ones that occur at special times.  It seems better to include both type 1 and type 2 events in the same Markov chain.  That would also make inference easier.
Friday, November 6, 2015 10:25 AM