It appears as though you are using the
changepoint package in
R from the function names mentioned and the
If this is correct then the help files for the package give references:
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
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.
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