It appears as though you are using the changepoint
package in R
from the function names mentioned and the AMOC
definition.
If this is correct then the help files for the package give references:
?cpt.mean
gives the following references:
Change in Normal mean: Hinkley, D. V. (1970) Inference About the Change-Point
in a Sequence of Random Variables, Biometrika 57, 1–17
CUSUM Test: M. Csorgo, L. Horvath (1997) Limit Theorems in Change-Point Analysis, Wiley
I acknowledge that it isn't 100% clear that AMOC
should use these references. If you have test.stat="Normal"
which is the default then the first Hinkley reference is the one you want. If you use test.stat="CUSUM"
then you want the second reference.
The majority of changepoint techniques start with AMOC
or a single changepoint. The changepoint
package was designed more for multiple changes but allows single changes using AMOC
.
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 use penalty="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 specify pen.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