Package ggseas. June 12, 2018

Similar documents
Package gggenes. R topics documented: November 7, Title Draw Gene Arrow Maps in 'ggplot2' Version 0.3.2

Package ggmosaic. February 9, 2017

Package ggimage. R topics documented: November 1, Title Use Image in 'ggplot2' Version 0.0.7

Package ggimage. R topics documented: December 5, Title Use Image in 'ggplot2' Version 0.1.0

Package ggrepel. September 30, 2017

Package statar. July 6, 2017

Package ggqc. R topics documented: January 30, Type Package Title Quality Control Charts for 'ggplot' Version Author Kenith Grey

Package cattonum. R topics documented: May 2, Type Package Version Title Encode Categorical Features

Package fastdummies. January 8, 2018

Package lvplot. August 29, 2016

Package docxtools. July 6, 2018

Package geojsonsf. R topics documented: January 11, Type Package Title GeoJSON to Simple Feature Converter Version 1.3.

Package qualmap. R topics documented: September 12, Type Package

Package ggpmisc. May 4, 2018

Package canvasxpress

Package ggextra. April 4, 2018

Package GetITRData. October 22, 2017

Package stlplus. August 29, 2016

Package gtrendsr. October 19, 2017

Package robotstxt. November 12, 2017

Package gtrendsr. August 4, 2018

Package ECctmc. May 1, 2018

Package ggspectra. May 7, 2018

Package anomalize. April 17, 2018

Package vinereg. August 10, 2018

Package barcoder. October 26, 2018

Package nngeo. September 29, 2018

Package jpmesh. December 4, 2017

Package readxl. April 18, 2017

Package quickreg. R topics documented:

Package editdata. October 7, 2017

Package RmarineHeatWaves

Package datasets.load

Package splithalf. March 17, 2018

Package rtext. January 23, 2019

Facets and Continuous graphs

Package balance. October 12, 2018

Package queuecomputer

Package validara. October 19, 2017

Package profvis. R topics documented:

Package QCAtools. January 3, 2017

Package geneslope. October 26, 2016

Package keyholder. May 19, 2018

Package postgistools

Package bisect. April 16, 2018

Package ggsubplot. February 15, 2013

Package ezsummary. August 29, 2016

Package kdtools. April 26, 2018

Package datapasta. January 24, 2018

Package postal. July 27, 2018

Package deductive. June 2, 2017

Package rprojroot. January 3, Title Finding Files in Project Subdirectories Version 1.3-2

Package catenary. May 4, 2018

Package reval. May 26, 2015

Package qicharts2. March 3, 2018

Package WordR. September 7, 2017

Package strat. November 23, 2016

Package climber. R topics documented:

Package clipr. June 23, 2018

Package forecasthybrid

Package RODBCext. July 31, 2017

Package preprosim. July 26, 2016

Package bigreadr. R topics documented: August 13, Version Date Title Read Large Text Files

Package effectr. January 17, 2018

Package ggloop. October 20, 2016

Package narray. January 28, 2018

Package censusapi. August 19, 2018

Package dalmatian. January 29, 2018

Package states. May 4, 2018

Package vip. June 15, 2018

Package musica. R topics documented: September 3, Type Package Title Multiscale Climate Model Assessment Version 0.1.3

Package rollply. R topics documented: August 29, Title Moving-Window Add-on for 'plyr' Version 0.5.0

Package BiocManager. November 13, 2018

Package GFD. January 4, 2018

Package gameofthrones

Package opencage. January 16, 2018

Package SEMrushR. November 3, 2018

Package fitbitscraper

Package preprocomb. June 26, 2016

Package GetHFData. November 28, 2017

Package rnrfa. April 13, 2018

Package tidyimpute. March 5, 2018

Package rgho. R topics documented: January 18, 2017

Package dgo. July 17, 2018

Package PCADSC. April 19, 2017

Package mdftracks. February 6, 2017

Package metaheur. June 30, 2016

Package weco. May 4, 2018

Package TrafficBDE. March 1, 2018

Package spark. July 21, 2017

Package fingertipsr. May 25, Type Package Version Title Fingertips Data for Public Health

Package shinyhelper. June 21, 2018

Package hypercube. December 15, 2017

Package messaging. May 27, 2018

Package lumberjack. R topics documented: July 20, 2018

Package jdx. R topics documented: January 9, Type Package Title 'Java' Data Exchange for 'R' and 'rjava'

Package oec. R topics documented: May 11, Type Package

Package condformat. October 19, 2017

Package modmarg. R topics documented:

Package arphit. March 28, 2019

Transcription:

Package ggseas June 12, 2018 Title 'stats' for Seasonal Adjustment on the Fly with 'ggplot2' Version 0.5.4 Maintainer Peter Ellis <peter.ellis2013nz@gmail.com> Provides 'ggplot2' 'stats' that estimate seasonally adjusted series and rolling summaries such as rolling average on the fly for time series. Depends R (>= 3.1.2), ggplot2 (>= 2.0.0) Imports seasonal, rlang, stats, zoo License GPL-3 LazyData true RoxygenNote 6.0.1 BugReports https://github.com/ellisp/ggseas/issues Suggests testthat, knitr, rmarkdown VignetteBuilder knitr NeedsCompilation no Author Peter Ellis [aut, cre], Christophe Sax [ctb] Repository CRAN Date/Publication 2018-06-12 13:33:33 UTC R topics documented: ggseas-package....................................... 2 ggsdc............................................ 2 ldeaths_df.......................................... 4 nzbop............................................ 5 stat_decomp......................................... 6 stat_index.......................................... 8 stat_rollapplyr........................................ 9 stat_seas........................................... 10 stat_stl............................................ 12 tsdf............................................. 14 1

2 ggsdc Index 15 ggseas-package Seasonal decomposition on the fly Details ggseas allows you to perform seasonal decomposition on the fly as part of a ggplot2 pipeline. Two main sets of functions are provided: Author(s) stat_seas(), stat_stl() and friends do seasonal adjustment, indexing, rolling averages and by default render a line geom. You can consider these as taking the place of geom_line() in the ggplot2 pipeline ggsdc() goes where ggplot() normally does (ie at the beginning of the graphics part of the pipeline) and creates a graphic with four facets for the original data, trend, seasonal and random components Maintainer: Peter Ellis <peter.ellis2013nz@gmail.com> Other contributors: Christophe Sax [contributor] Useful links: Report bugs at https://github.com/ellisp/ggseas/issues ggsdc Visualise seasonal decomposition Creates a four-facet plot of seasonal decomposition showing observed, trend, seasonal and random components ggsdc(data, mapping, frequency = NULL, method = c("stl", "decompose", "seas"), start = NULL, s.window, type = c("additive", "multiplicative"), index.ref = NULL, index.basis = 100, facet.titles = c("observed", "trend", "seasonal", "irregular"))

ggsdc 3 Arguments data mapping frequency method start s.window type index.ref index.basis facet.titles dataset to use for plot. List of aesthetic mappings. Must include x and y, and optionally can include colour/color frequency of the period of the time series eg 12 = monthly function to use for performing the seasonal decomposition. stl and decompose are functions in the stats package; seas is access to the seats program from X-13-SEATS-ARIMA via the seasonal package starting time for the data; only needed if method = 'seas'. parameter to pass to stl() parameter to pass to decompose() if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples. a vector in the order of observed, trend, seasonal and irregular for the titles of the four facets of the decomposition. Make sure you get the order right... Details Value This function takes a data frame and performs seasonal decomposition on the variable mapped to the y aesthetic, grouped by the variable (if any) mapped to the colour or color aesthetic. This allows the user to perform the equivalent of plot(stats::decompose(x)) but in the ggplot2 environment for themes, polishing etc; and to overlay decompositions on the same graphic; and with the X13- SEATS-ARIMA seasonal decomposition (so far only with default settings). The "seasonal" component can be either multiplicative (in which case it will in a small range of values around one) or additive (in which case it will be on the scale of the original data), depending on the settings. an object of class ggplot with four facets decompose, stl, seas Examples # sample time series data in data frame ap_df <- tsdf(airpassengers) ggsdc(ap_df, aes(x = x, y = y), method = "decompose") + geom_line()

4 ldeaths_df ggsdc(ap_df, aes(x = x, y = y), method = "decompose", type = "multiplicative") + geom_line(colour = "blue", size = 2) + theme_light(8) ggsdc(ap_df, aes(x = x, y = y), method = "stl", s.window = 7) + labs(x = "", y = "Air passenger numbers") + geom_point() ## Not run: ggsdc(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex), method = "seas") + geom_line() serv <- subset(nzbop, Account == "Current account" & Category %in% c("services; Exports total", "Services; Imports total")) ggsdc(serv, aes(x = TimePeriod, y = Value, colour = Category), method = "seas", start = c(1971, 2), frequency = 4) + geom_line() ## End(Not run) ggsdc(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex), s.window = 7, index.ref = 1:12, index.basis = 1000) + geom_line() + ylab("lung deaths index (average month in 1974 = 1000)") bop <- subset(nzbop, Account == "Current account" &!Balance) ggsdc(bop, aes(x = TimePeriod, y = Value, colour = Category), frequency = 4, method = "decomp", type = "multiplicative") + geom_line() ggsdc(bop, aes(x = TimePeriod, y = Value, colour = Category), frequency = 4, s.window = 7) + geom_line() ldeaths_df Monthly Deaths from Lung Diseases in the UK A long form combination of fdeaths and mdeaths from the datasets package. ldeaths_df Format A data frame with 141 rows and 3 variables.

nzbop 5 Details Source YearMon. Approximate, regular decimal representation of the beginning of the period of measurement. January 1974 is 1974.000 sex. deaths. Monthly deaths from bronchitis, emphysema and asthma.... P. J. Diggle (1990) Time Series: A Biostatistical Introduction. Oxford, table A.3 ldeaths nzbop New Zealand Balance of Payments major components 1971Q2 to 2015Q2 New Zealand s "BPM6 Quarterly, Balance of payments major components (Qrtly-Mar/Jun/Sep/Dec)". nzbop Format An object of class data.frame with 3676 rows and 5 columns. Details "BPM6" refers to the sixth edition of the IMF s Balance of Payments and International Investment Position Manual, which is the method used by Statistics New Zealand to prepare these data. Note: Value is in millions of New Zealand dollars and is not adjusted for inflation. fob means free on board. inv. stands for investment TimePeriod is the last day of the quarterly reference period ie 1971-06-30 means the fourth, fifth and six months of 1971. This dataset was downloaded from http://www.stats.govt.nz/infoshare/ and transformed in the following way: missing values were filtered out (ie of series that started later than the longest series) a Balance indicator variable was added for easier manipulation and filtering the single variable categorisation was split into two (Account and Category) to make it tidier.

6 stat_decomp Source Statistics New Zealand http://www.stats.govt.nz/browse_for_stats/economic_indicators/ balance_of_payments/info-releases.aspx stat_decomp Classical seasonal adjustment Stat Conducts seasonal adjustment on the fly for ggplot2, from classical seasonal decomposition by moving averages stat_decomp(mapping = NULL, data = NULL, geom = "line", position = "identity", show.legend = NA, inherit.aes = TRUE, frequency = NULL, type = c("additive", "multiplicative"), index.ref = NULL, index.basis = 100,...) Arguments mapping data geom position show.legend inherit.aes frequency type Set of aesthetic mappings created by aes() or aes_(). If specified and inherit.aes = TRUE (the default), it is combined with the default mapping at the top level of the plot. You must supply mapping if there is no plot mapping. The data to be displayed in this layer. There are three options: If NULL, the default, the data is inherited from the plot data as specified in the call to ggplot(). A data.frame, or other object, will override the plot data. All objects will be fortified to produce a data frame. See fortify() for which variables will be created. A function will be called with a single argument, the plot data. The return value must be a data.frame., and will be used as the layer data. The geometric object to use display the data Position adjustment, either as a string, or the result of a call to a position adjustment function. logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display. If FALSE, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn t inherit behaviour from the default plot specification, e.g. borders(). The frequency for the time series The type of seasonal component

stat_decomp 7 index.ref index.basis if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples.... other arguments for the geom Details Classical decomposition is a very basic way of performing seasonal adjustment and is not recommended if you have access to X13-SEATS-ARIMA (stat_seas). stat_decomp cannot allow the seasonality to vary over time, or take outliers into account in calculating seasonality. decompose Other time series stats for ggplot2: stat_index, stat_rollapplyr, stat_seas, stat_stl Examples ap_df <- tsdf(airpassengers) # Default additive decomposition (doesn't work well in this case!): stat_decomp() # Multiplicative decomposition, more appropriate: stat_decomp(type = "multiplicative") # Multiple time series example: ggplot(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex)) + geom_point() + facet_wrap(~sex) + stat_decomp() + ggtitle("seasonally adjusted lung deaths") # Example using index: ggplot(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex)) + facet_wrap(~sex) + stat_decomp(index.ref = 1:12, index.basis = 1000) + ggtitle("rolling annual median lung deaths, indexed (average month in 1974 = 1000)")

8 stat_index stat_index Index Stat Convert a time series from the original scale to an index for ggplot2 stat_index(mapping = NULL, data = NULL, geom = "line", position = "identity", show.legend = NA, inherit.aes = TRUE, index.ref = NULL, index.basis = 100,...) Arguments mapping data geom position show.legend inherit.aes index.ref index.basis Set of aesthetic mappings created by aes() or aes_(). If specified and inherit.aes = TRUE (the default), it is combined with the default mapping at the top level of the plot. You must supply mapping if there is no plot mapping. The data to be displayed in this layer. There are three options: If NULL, the default, the data is inherited from the plot data as specified in the call to ggplot(). A data.frame, or other object, will override the plot data. All objects will be fortified to produce a data frame. See fortify() for which variables will be created. A function will be called with a single argument, the plot data. The return value must be a data.frame., and will be used as the layer data. The geometric object to use display the data Position adjustment, either as a string, or the result of a call to a position adjustment function. logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display. If FALSE, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn t inherit behaviour from the default plot specification, e.g. borders(). if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples.... other arguments for the geom Other time series stats for ggplot2: stat_decomp, stat_rollapplyr, stat_seas, stat_stl

stat_rollapplyr 9 Examples ap_df <- tsdf(airpassengers) ggplot(ldeaths_df, aes(x = YearMon, y = deaths, color = sex)) + stat_index(index.ref = 1:12, index.basis = 1000) + ylab("deaths index\n(average of first 12 months = 1000") stat_rollapplyr Rolling summary Stat Calculates a rolling summary, usually rolling average, on the fly for ggplot2 stat_rollapplyr(mapping = NULL, data = NULL, geom = "line", position = "identity", show.legend = NA, inherit.aes = TRUE, width, align = "right", FUN = mean, index.ref = NULL, index.basis = 100,...) Arguments mapping data geom position show.legend inherit.aes width Set of aesthetic mappings created by aes() or aes_(). If specified and inherit.aes = TRUE (the default), it is combined with the default mapping at the top level of the plot. You must supply mapping if there is no plot mapping. The data to be displayed in this layer. There are three options: If NULL, the default, the data is inherited from the plot data as specified in the call to ggplot(). A data.frame, or other object, will override the plot data. All objects will be fortified to produce a data frame. See fortify() for which variables will be created. A function will be called with a single argument, the plot data. The return value must be a data.frame., and will be used as the layer data. The geometric object to use display the data Position adjustment, either as a string, or the result of a call to a position adjustment function. logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display. If FALSE, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn t inherit behaviour from the default plot specification, e.g. borders(). The width to which the rolling version of FUN is applied

10 stat_seas align FUN index.ref index.basis specifies whether the transformed series should be left or right-aligned or centered compared to the rolling window of observations summary function, usually some kind of average, to apply on a rolling basis if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples.... other arguments for the geom Details Calculates a rolling summary (usually rolling average) on the fly for purposes of plotting with ggplot2. decompose Other time series stats for ggplot2: stat_decomp, stat_index, stat_seas, stat_stl Examples ap_df <- tsdf(airpassengers) stat_rollapplyr(width = 12) # rolling average after converting to an index, 1000 = average value # in the first 12 months. stat_rollapplyr(width = 12, index.ref = 1:12, index.basis = 1000) ggplot(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex)) + geom_point() + facet_wrap(~sex) + stat_rollapplyr(width = 12, FUN = median) + ggtitle("seasonally adjusted lung deaths") stat_seas X13 seasonal adjustment Stat Conducts X13-SEATS-ARIMA seasonal adjustment on the fly for ggplot2

stat_seas 11 stat_seas(mapping = NULL, data = NULL, geom = "line", position = "identity", show.legend = NA, inherit.aes = TRUE, x13_params = NULL, index.ref = NULL, index.basis = 100, frequency = NULL, start = NULL,...) Arguments mapping data geom position show.legend inherit.aes x13_params index.ref index.basis frequency start Set of aesthetic mappings created by aes() or aes_(). If specified and inherit.aes = TRUE (the default), it is combined with the default mapping at the top level of the plot. You must supply mapping if there is no plot mapping. The data to be displayed in this layer. There are three options: If NULL, the default, the data is inherited from the plot data as specified in the call to ggplot(). A data.frame, or other object, will override the plot data. All objects will be fortified to produce a data frame. See fortify() for which variables will be created. A function will be called with a single argument, the plot data. The return value must be a data.frame., and will be used as the layer data. The geometric object to use display the data Position adjustment, either as a string, or the result of a call to a position adjustment function. logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display. If FALSE, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn t inherit behaviour from the default plot specification, e.g. borders(). a list of other parameters for seas if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples. The frequency for the time series The starting point for the time series, in a format suitable for ts()... other arguments for the geom seas Other time series stats for ggplot2: stat_decomp, stat_index, stat_rollapplyr, stat_stl

12 stat_stl Examples ## Not run: ap_df <- tsdf(airpassengers) # SEATS with defaults: stat_seas() # X11 with no outlier treatment: stat_seas(x13_params = list(x11 = "", outlier = NULL)) # Multiple time series example: ggplot(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex)) + geom_point() + facet_wrap(~sex) + stat_seas() + ggtitle("seasonally adjusted lung deaths") # example use of index: stat_seas(x13_params = list(x11 = "", outlier = NULL), index.ref = 1, index.basis = 1000) + labs(y = "Seasonally adjusted index\n(first observation = 1000)") # if the x value is not a decimal eg not created with time(your_ts_object), # you need to specify start and frequency by hand: ggplot(subset(nzbop, Account == "Current account"), aes(x = TimePeriod, y = Value)) + stat_seas(start = c(1971, 2), frequency = 12) + facet_wrap(~category, scales = "free_y") ## End(Not run) stat_stl LOESS seasonal adjustment Stat Conducts seasonal adjustment on the fly for ggplot2, from LOESS seasonal decomposition stat_stl(mapping = NULL, data = NULL, geom = "line", position = "identity", show.legend = NA, inherit.aes = TRUE, frequency = NULL, s.window, index.ref = NULL, index.basis = 100,...)

stat_stl 13 Arguments mapping data geom position show.legend inherit.aes frequency s.window index.ref index.basis Set of aesthetic mappings created by aes() or aes_(). If specified and inherit.aes = TRUE (the default), it is combined with the default mapping at the top level of the plot. You must supply mapping if there is no plot mapping. The data to be displayed in this layer. There are three options: If NULL, the default, the data is inherited from the plot data as specified in the call to ggplot(). A data.frame, or other object, will override the plot data. All objects will be fortified to produce a data frame. See fortify() for which variables will be created. A function will be called with a single argument, the plot data. The return value must be a data.frame., and will be used as the layer data. The geometric object to use display the data Position adjustment, either as a string, or the result of a call to a position adjustment function. logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display. If FALSE, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn t inherit behaviour from the default plot specification, e.g. borders(). The frequency for the time series either the character string "periodic" or the span (in lags) of the loess window for seasonal extraction, which should be odd and at least 7, according to Cleveland et al. This has no default and must be chosen. if not NULL, a vector of integers indicating which elements of the beginning of each series to use as a reference point for converting to an index. If NULL, no conversion takes place and the data are presented on the original scale. if index.ref is not NULL, the basis point for converting to an index, most commonly 100 or 1000. See examples.... other arguments for the geom Other time series stats for ggplot2: stat_decomp, stat_index, stat_rollapplyr, stat_seas Examples ap_df <- tsdf(airpassengers) # periodic if fixed seasonality; doesn't work well: stat_stl(s.window = "periodic") # seasonality varies a bit over time, works better:

14 tsdf stat_stl(s.window = 7) # Multiple time series example: ggplot(ldeaths_df, aes(x = YearMon, y = deaths, colour = sex)) + geom_point() + facet_wrap(~sex) + stat_stl(s.window = 7) + ggtitle("seasonally adjusted lung deaths") # Index so first value is 100: stat_stl(s.window = 7, index.ref = 1) tsdf Time series to data frame Convert a ts object to data.frame with columns for time period and the original data tsdf(timeseries, colname = "x") Arguments timeseries colname an object of class ts or mts Column name to give to the time period column Details Value A convenience function to create a data frame from a time series or multiple time series object. The motivation is to make it easy to pass time series data to functions that need data frames such as ggplot2. a data.frame with the same number of rows as the original time series Examples head(tsdf(airpassengers)) ld <- cbind(fdeaths, mdeaths) head(tsdf(ld))

Index Topic datasets ldeaths_df, 4 nzbop, 5 aes(), 6, 8, 9, 11, 13 aes_(), 6, 8, 9, 11, 13 borders(), 6, 8, 9, 11, 13 decompose, 3, 7, 10 fortify(), 6, 8, 9, 11, 13 ggplot(), 6, 8, 9, 11, 13 ggsdc, 2 ggseas (ggseas-package), 2 ggseas-package, 2 ldeaths, 5 ldeaths_df, 4 nzbop, 5 seas, 3, 11 stat_decomp, 6, 8, 10, 11, 13 stat_index, 7, 8, 10, 11, 13 stat_rollapplyr, 7, 8, 9, 11, 13 stat_seas, 7, 8, 10, 10, 13 stat_stl, 7, 8, 10, 11, 12 stl, 3 tsdf, 14 15