Nothing
      #
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  A copy of the GNU General Public License is available at
#  ../../COPYING
################################################################################
# FUNCTION:                 DESCRIPTION:
#  outlier,timeSeries        Removes outliers from a 'timeSeries' object
################################################################################
# DW:
# We should call this function no longer outlier, much better woud be
# splits() since the function tries to detect splits by large outliers.
# For outlier detection we should use better methods than just the sd().
# ------------------------------------------------------------------------------
splits <- 
  function(x, sd = 3, complement = TRUE, ...)
{
    # Return Value:
    outlier(x=x, sd=sd, complement=complement, ...)
}
# ------------------------------------------------------------------------------
setMethod("outlier", "ANY",
    function(x, sd = 3, complement = TRUE, ...)
{
    # A function implemented by Diethelm Wuertz
    # Description:
    #   Returns outlier splits
    # Arguments:
    #   x - a numeric vector
    #   sd - a numeric value of standard deviations, e.g. 5
    #       means that values larger or smaller tahn five
    #       times the standard deviation of the series will
    #       be detected.
    #   complement - a logical flag, should the outlier series
    #       or its complements be returned.
    # Note:
    #   This function is thought to find splits in financial
    #   price or index series If a price or index is splitted we
    #   observe in the returns a big jump of several standard
    #   deviations which is identified usual as an outlier.
    # FUNCTION:
    # Check arguments:
    stopifnot(is.timeSeries(x))
      
    # Extract Title and Documentation:
    Title <- x@title
    Documentation <- x@documentation
      
    # Find Outliers:
    SD <- sd * sd(x)
    if (complement) {
        ans  <- x[x <= SD]
    } else {
        ans <- x[x > SD]
        names(ans) <- as.character(which(x > SD))
    }
      
    # Preserve Title and Documentation:
    ans@title <- Title
    ans@documentation <- Documentation
    # Return Value:
    ans
})
# ------------------------------------------------------------------------------
setMethod("outlier", "timeSeries",
    function(x, sd = 3, complement = TRUE, ...)
{   
    # A function implemented by Diethelm Wuertz
    # Description:
    #   Returns outliers in a timeSeries object or the complement
    # Arguments:
    #   x - an object of class 'timeSeries'.
    #   sd - a numeric value of standard deviations, e.g. 5
    #       means that values larger or smaller tahn ten
    #       times the standard deviation of the series will
    #       be removed.
    #   complement - a logical flag, should the outler series
    #       or its complement be returned.
    # FUNCTION:
    # Check if univariate Series:
    if (!isUnivariate(x))
        stop("Supports only univariate timeSeries Objects")
    # Find Outliers:
    SD = sd * sd(x)
    if (complement) {
        x  = x[abs(x) <= SD,]
    } else {
        x = x[abs(x) > SD,]
    }
    # Return Value:
    x
})
################################################################################
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.