Can any one explain me how can I choose the pen.value and penalty for the single change point detection i.e., for At Most One Change (AMOC). Is there any books that contains rich explanation of these parameters?. I'm not able to figure out when exactly to use what. It would be helpful if you explain it with an example. what is the diff between the cpt.mean, cpt.var, cpt.meanvar(same confusion when to use what?). I'm getting diff diff change points and in that how can I found the most desirable one?. Help me out of these
Thanks in advance
Best Answer
It appears as though you are using the
changepoint
package inR
from the function names mentioned and theAMOC
definition. If this is correct then the help files for the package give references:gives the following references:
I acknowledge that it isn't 100% clear that
AMOC
should use these references. If you havetest.stat="Normal"
which is the default then the first Hinkley reference is the one you want. If you usetest.stat="CUSUM"
then you want the second reference.The majority of changepoint techniques start with
AMOC
or a single changepoint. Thechangepoint
package was designed more for multiple changes but allows single changes usingAMOC
.The above covers the reference part of your question. For the "what pen.value option should I use" that is like asking "who is the best guitarist?", the answer depends on personal experience.
For
AMOC
you have the option of using asymptotic penalty values, for example, if you want to be 95% confident that a changepoint has occurred then you would usepenalty="Asymptotic", pen.value=0.05
. If you are happy with any of the other penalty choices i.e. MBIC (default), BIC, SIC, AIC, Hannan-Quinn then you don't need to specifypen.value
as it is taken care of by setting the penalty to be one of the options, e.g.cpt.mean(data,penalty='SIC')
would be valid if you wanted to use the SIC penalty.If you don't like any of the options then you can set your own penalty but you have to select a value that works for your problem - sadly it is still an open research question as to which penalty is best.
Finally, you will get different answers when using the different
cpt.mean, cpt.var, cpt.meanvar
functions as they are doing different things.cpt.mean
looks for a change in the mean value only, assuming a constant variance.cpt.var
looks for a change in the variance only, assuming a constant mean.cpt.meanvar
looks for a change in both the mean and variance.If you haven't read the paper associated to the package then I suggest you read it as it gives several examples demonstrating how to change the penalties and also how to use the 3 different functions.
URL to paper