Message Boards Message Boards

Obtain the individual loglikelihood of each point of a fGn process?

GROUPS:

So I am computing the LogLikelihood of a FractionalGaussianNoiseProcess, say :

data=RandomFunction[FractionalGaussianNoiseProcess[0.,0.15,0.9],{1,1000,1}][[2,1,1]];

Then,

LogLikelihood[FractionalGaussianNoiseProcess[0.,0.15,0.9],data] 

gives something around 900. What if I want to know the individual contributions of each point? One way to do it would be to simply compute the expression:

Differences@Prepend[Table[LogLikelihood[FractionalGaussianNoiseProcess[0.,0.15,0.9],Take[data,i]],{i,1,Length[data]}],0]

This works if I have a data series of only a couple tens of points, but when I reach series which are 100s or 1000s of point it obviously becomes painfully slow since it is recalculating the whole Loglikelihood function each time. If I am not mistaken, the LogLikelihood function for such a process with increments which are not independent, is the linear sum over all previous points, so there must be a way to obtain directly the terms of this sum and thus find the information my previous code does without recomputing everything at for each data point that is added to the series.

POSTED BY: Raphael Hebert
Answer
9 days ago

Welcome to Wolfram Community! Please make sure you know the rules and how to format your code properly, which you can find here: https://wolfr.am/READ-1ST If you do not format code, it may become corrupted and useless to other members. Please EDIT your posts and make sure code blocks start on a new paragraph and look framed and colored like this.

int = Integrate[1/(x^3 - 1), x];
Map[Framed, int, Infinity]

enter image description here

POSTED BY: Moderation Team
Answer
8 days ago

I think with this stochastic process it might not be so simple to get the individual log likelihood contributions and maybe the brute force method you show above is about all one can do. (I'd very much like to be wrong about that.) Here's why I think that way:

Consider the difference in the log likelihoods for a sample size of 3 and 4 with values x1, x2, x3, and x4:

Expand[PowerExpand[LogLikelihood[FractionalGaussianNoiseProcess[0., 0.15, 0.9], {x1, x2, x3, x4}]]] - 
 Expand[PowerExpand[LogLikelihood[FractionalGaussianNoiseProcess[0., 0.15, 0.9], {x1, x2, x3}]]]

1.4035257547656506 - 1.0886020257023077 x1^2 - 1.3775254495136622 x1 x2 - 0.4357828479222121 x2^2 - 8.76194837289972 x1 x3 - 5.543718726413118 x2 x3 - 17.63080939515791 x3^2 + 15.05161120348482 x1 x4 + 9.523212799282188 x2 x4 + 60.57376211881078 x3 x4 - 52.02796671141442 x4^2

We see that x4 isn't isolated by itself and all of the previous values are included in the difference in the log likelihoods.

If 0.15 and 0.9 are replaced by unknown values (and PowerExpand is told that all the values are Reals), the resulting equations for just a sample size of 4 are way to lengthy to show here. Maybe someone else more familiar with this stochastic process can shed more light.

POSTED BY: Jim Baldwin
Answer
8 days ago

Group Abstract Group Abstract