Cost functions for differening types of univariate gaussion anomalies
     
    
    Details
    Collective anomalies are represented either as changes in parameters describing the mean (gaussRegMean),
variance (gaussRegVar) or mean and variance (gaussRegMeanVar). Changes in variance are represented as a scaling parameter, not changes to the covariance. See vignettes for details.
Each element of the input x should be a list containing a vector of observations y and corresponding design matrix X. Optionally in can also include a vector of parameter m and covariance matrix S.
     
    
    Methods
Get the length of time series
 
Method new()
Initialise the cost function
Arguments
x 
a list of regressions (see details)
 
non_neg 
should only non-negative paraemter solutions be considered
 
 
 
 
Method baseCost()
Compute the non-anomalous cost of a segment
Usage
gaussRegCost$baseCost(a, b, pen = 0)
 
 
Arguments
a 
start of period
 
b 
end of period
 
pen 
penalty cost
 
 
 
 
Method pointCost()
Compute the point anomaly cost of a time step
Usage
gaussRegCost$pointCost(b, pen)
 
 
Arguments
b 
time step
 
pen 
penalty cost
 
 
 
 
Method clone()
The objects of this class are cloneable with this method.
Usage
gaussRegCost$clone(deep = FALSE)
 
 
Arguments
deep 
Whether to make a deep clone.
 
 
 
 
     
    
    Super class
    anomalous::gaussRegCost -> gaussRegMean
     
    
    Methods
Inherited methods
Method collectiveCost()
Compute the anomalous cost of a segment
Usage
gaussRegMean$collectiveCost(a, b, pen, len)
 
 
Arguments
a 
start of period
 
b 
end of period
 
pen 
penalty cost
 
len 
minimum number of observations
 
 
 
 
Compute parameters of a segment if anomalous
Arguments
a 
start of period
 
b 
end of period
 
 
 
 
Method clone()
The objects of this class are cloneable with this method.
Usage
gaussRegMean$clone(deep = FALSE)
 
 
Arguments
deep 
Whether to make a deep clone.
 
 
 
 
     
    
    Super class
    anomalous::gaussRegCost -> gaussRegVar
     
    
    Methods
Inherited methods
Method collectiveCost()
Compute the anomalous cost of a segment
Usage
gaussRegVar$collectiveCost(a, b, pen, len)
 
 
Arguments
a 
start of period
 
b 
end of period
 
pen 
penalty cost
 
len 
minimum number of observations
 
 
 
 
Compute parameters of a segment if anomalous
Arguments
a 
start of period
 
b 
end of period
 
 
 
 
Method clone()
The objects of this class are cloneable with this method.
Usage
gaussRegVar$clone(deep = FALSE)
 
 
Arguments
deep 
Whether to make a deep clone.
 
 
 
 
     
    
    Super class
    anomalous::gaussRegCost -> gaussRegMeanVar
     
    
    Methods
Inherited methods
Method collectiveCost()
Compute the anomalous cost of a segment
Usage
gaussRegMeanVar$collectiveCost(a, b, pen, len)
 
 
Arguments
a 
start of period
 
b 
end of period
 
pen 
penalty cost
 
len 
minimum number of observations
 
 
 
 
Compute parameters of a segment if anomalous
Usage
gaussRegMeanVar$param(a, b)
 
 
Arguments
a 
start of period
 
b 
end of period
 
 
 
 
Method clone()
The objects of this class are cloneable with this method.
Usage
gaussRegMeanVar$clone(deep = FALSE)
 
 
Arguments
deep 
Whether to make a deep clone.
 
 
 
 
     
    
    Examples
    ## simple test
set.seed(10)
x <- list()
n <- 120
for(ii in 1:48){
    
    if(ii < 10){ theta = c(1,0); sigma <- 0.1 }
    if(ii >= 10 & ii <12){ theta <- c(10,0); sigma <- 2}
    if(ii >= 12 & ii < 44){ theta <- c(5,1); sigma <- 2}
    if(ii >= 44 ){ theta <- c(1,0); sigma <- 0.1}
    
    X <- cbind(rep(1,n),runif(n,ii-1,ii))
    y <- rnorm(n, X%*%theta, sigma)
    x[[ii]] <- list(y=y,X=X)
}
fCost <- gaussRegMeanVar$new(x)
p <- partition(4*log(sum(sapply(y,length))),NA,2)
res <- pelt(p,fCost)