Learn R Programming

changepoint (version 1.1.5)

single.meanvar.norm: Single Change in Mean and Variance - Normal Data

Description

Calculates the scaled log-likelihood (assuming the data is normally distributed) for all possible changepoint locations and returns the single most probable (max).

Usage

single.meanvar.norm(data, penalty="SIC",pen.value=0,class=TRUE,param.estimates=TRUE)

Arguments

data
A vector, ts object or matrix containing the data within which you wish to find a changepoint. If data is a matrix, each row is considered a separate dataset.
penalty
Choice of "None", "SIC", "BIC", "AIC", "Hannan-Quinn", "Asymptotic" and "Manual" penalties. If Manual is specified, the manual penalty is contained in the pen.value parameter. If Asymptotic is specified, the theoretical type I error is contained in the p
pen.value
The theoretical type I error e.g.0.05 when using the Asymptotic penalty. The value of the penalty when using the Manual penalty option. This can be a numeric value or text giving the formula to use. Available variables are, n=length of original data, n
class
Logical. If TRUE then an object of class cpt is returned. If FALSE a vector is returned.
param.estimates
Logical. If TRUE and class=TRUE then parameter estimates are returned. If FALSE or class=FALSE no parameter estimates are returned.

Value

  • If class=TRUE then an object of S4 class "cpt" is returned. The slot cpts contains the changepoints that are returned (with p-value) if class=FALSE. The structure of cpts is as follows.

    If data is a vector (single dataset) then a single value is returned:

  • cptThe most probable location of a changepoint if H0 was rejected or NA if H1 was rejected.
  • If data is an mxn matrix (multiple datasets) then a vector is returned:
  • cptVector of length m containing where each element is the result of the test for data[m,]. If cpt[m] is a number then it is the most probable location of a changepoint under H1. Otherwise cpt[m] has the value NA and indicates that H1 was rejected.

Details

This function is used to find a single change in mean and variance for data that is assumed to be normally distributed. The value returned is the result of testing H0:no change in mean or variance against H1: single change in mean and/or variance using the log of the likelihood ratio statistic coupled with the penalty supplied.

References

Change in Normal mean and variance: Chen, J. and Gupta, A. K. (2000) Parametric statistical change point analysis, Birkhauser

See Also

cpt.meanvar,single.mean.norm,single.var.norm,cpt

Examples

Run this code
# Example of a change in mean and variance at 100 in simulated normal data
set.seed(1)
x=c(rnorm(100,0,1),rnorm(100,1,10))
single.meanvar.norm(x,penalty="SIC",class=FALSE) # returns 99 to show that the null hypothesis was
#rejected and the change in mean and variance is at 99
ans=single.meanvar.norm(x,penalty="Asymptotic",pen.value=0.01) 
cpts(ans) # returns 99 to show that the null hypothesis was rejected, the change in mean and
#variance is at 99 and we are 99% confident of this result

# Example of a data matrix containing 2 rows, row 1 has a change in mean and variance and row 2 had
#no change in mean or variance
set.seed(10)
x=c(rnorm(100,0,1),rnorm(100,1,10))
y=rnorm(200,0,1)
z=rbind(x,y)
single.meanvar.norm(z,penalty="Asymptotic",pen.value=0.01,class=FALSE) # returns vector c(99,200)
#which shows that the first dataset has a change in mean and variance at 99 and the second dataset
#rejected H1 and has no change in mean or variance
ans=single.meanvar.norm(z,penalty="Manual",pen.value="diffparam*log(n)") # list returned
cpts(ans[[1]]) # test using a manual penalty which is the same as the SIC penalty for this example,
#result shows that the penalty is too small.  The same changepoint is detected for the first
#dataset 
cpts(ans[[2]]) # but the second dataset returns a change in mean and variance at 198 which was
#rejected under the asymptotic penalty above.

Run the code above in your browser using DataLab