\documentclass[a4paper,11pt]{article} \usepackage[utf8]{inputenc} \usepackage[english]{babel} \selectlanguage{english} \usepackage[colorlinks=true, citecolor=blue, linkcolor=blue, urlcolor=blue, bookmarksopen=false, pdfpagemode=UseOutlines]{hyperref} \usepackage{Sweave} \DefineVerbatimEnvironment{Sinput}{Verbatim}{ baselinestretch=1.2, fontshape = sl, fontsize=\small, xleftmargin = 0.7cm} \DefineVerbatimEnvironment{Soutput}{Verbatim}{ baselinestretch=1.1, fontshape = sl, fontsize=\small, xleftmargin = 0.7cm} \renewcommand{\baselinestretch}{1.3} \topmargin -1.3cm \textheight 24cm \textwidth 15.5cm \oddsidemargin -0.5cm \evensidemargin 0.0cm \title{\textsf{R} Package \textsf{tsoutliers}} \author{Javier L\'opez-de-Lacalle} \date{February 2019} \begin{document} %\VignetteIndexEntry{tsoutliers-intro} %\VignetteKeyword{outliers} %\VignetteKeyword{time series} %\VignetteDepends{tsoutliers} \maketitle \abstract{ This is a minimal introduction to package \textsf{tsoutliers}. Further information is available in the references given below. } \section{Introduction} Details about the methodology and algorithms implemented in the package are given in \href{https://www.jalobe.com/doc/tsoutliers.pdf}{this document}. % %https://stats.stackexchange.com/questions/104882/detecting-outliers-in-time-series-ls-ao-tc-using-tsoutliers-package-in-r-how %https://stats.stackexchange.com/questions/108374/arima-intervention-transfer-function-how-to-visualize-the-effect % As a preliminary introduction and discussion see these posts: \\ \href{https://www.jalobe.com/blog/tsoutliers/}{% https://www.jalobe.com/blog/tsoutliers/} and \\ \href{https://stats.stackexchange.com/questions/104882/}{% https://stats.stackexchange.com/questions/104882/}. \paragraph{Examples} Fit a local level model to the Nile time series and check for the presence of possible outliers (additive outliers, level shifts or transitory changes): As of version 0.6-7 the experimental version for structural time series model is not available. Check previous versions of the package or contact the maintainer for details. For illustration, these are the results that were obtained in previous versions for the local level model. % <<>>= % require("tsoutliers") % resNile1 <- tso(y = Nile, types = c("AO", "LS", "TC"), % tsmethod = "stsm", args.tsmodel = list(model = "local-level")) % resNile1$fit$call$xreg <- NULL % resNile1 % @ \begin{Sinput} > resNile1 <- tso(y = Nile, types = c("AO", "LS", "TC"), + tsmethod = "stsm", args.tsmodel = list(model = "local-level")) > resNile1$fit$call$xreg<-NULL > resNile1 \end{Sinput} \begin{Soutput} Call: structure(list(method = "L-BFGS-B"), .Names = "method") Parameter estimates: LS29 var1 var2 Estimate -247.78 16136 0 Std. error 11.71 1163 NaN Log-likelihood: -633.0286 Convergence: 0 Number of iterations: 46 46 Variance-covariance matrix: optimHessian Outliers: type ind time coefhat tstat 1 LS 29 1899 -247.8 -21.16 Warning messages: 1: In sqrt(diag(solve(res$hessian))) : NaNs produced 2: In sqrt(diag(solve(res$hessian))) : NaNs produced 3: In sqrt(diag(solve(res$hessian))) : NaNs produced 4: In sqrt(diag(solve(res$hessian))) : NaNs produced 5: In sqrt(diag(solve(res$hessian))) : NaNs produced \end{Soutput} Choose and fit an ARIMA model for the Nile time series checking for the presence detect possible outliers (additive outliers, level shifts or transitory changes): <<>>= require("tsoutliers") resNile2 <- tso(y = Nile, types = c("AO", "LS", "TC"), discard.method = "bottom-up", tsmethod = "auto.arima", args.tsmethod = list(allowdrift = FALSE, ic = "bic")) resNile2 @ \end{document}