smoothTrend(mydata, pollutant = "nox", deseason = FALSE,
type = "default", statistic = "mean",
avg.time = "month", percentile = NA, data.thresh = 0,
simulate = FALSE, n = 200, autocor = FALSE,
cols = "brewer1", xlab = "year", y.relation = "same",
key.columns = length(percentile), ci = TRUE,
alpha = 0.2, date.breaks = 7, auto.text = TRUE, ...)
date
and at least one other parameter for which a
trend test is required; typically (but not necessarily) a
pollutant.TRUE
the function stl
is used (seasonal
trend decomposition using loess). Note that if
TRUE
missing data are first linearly interpolated
because stl
type
determines how the data are split
i.e. conditioned, and then plotted. The default is will
produce a single plot using the entire data. Type can be
one of the built-in types as detailed in cutData
e.g. timeAverage
for more
details.statistic = "percentile"
is chosen. Can be a
vector of numbers e.g. percentile = c(5, 50, 95)
will plot the 5th, 50th and 95th percentile values
together on the same plot.avg.time
. A value
of zero means that all available data will be used in a
particular period regardless if of the number of values
available. Conversely, a value of FALSE
. If TRUE
, bootstrap simulations
are undertaken, which also account for autocorrelation.simulate = TRUE
.FALSE
. Generally, accounting for autocorrelation
increases the uncertainty of the trend estimate sometimes
by a large amount.cols = c("black", "green")
or pre-defined
openair colours --- see openColours
for more
details.statistic =
"percentile"
.FALSE
.TRUE
(default) or
FALSE
. If TRUE
titles and axis labels will
automatically try and format pollutant names and units
properly e.g. by subscripting the cutData
and lattice:xyplot
. For example,
smoothTrend
passes the option hemisphere =
"southern"
on to cutData
to provide southern
(rathesmoothTrend
also returns an object of class ``openair''. The object
includes three main components: call
, the command
used to generate the plot; data
, the data frame of
summarised information used to make the plot; and
plot
, the plot itself. If retained, e.g. using
output <- smoothTrend(mydata, "nox")
, this output
can be used to recover the data, reproduce or rework the
original plot or undertake further analysis.
An openair output can be manipulated using a number of
generic operations, including print
, plot
and summarise
. See openair.generics
for further details.smoothTrend
function provides a flexible way
of estimating the trend in the concentration of a
pollutant or other variable. Monthly mean values are
calculated from an hourly (or higher resolution) or daily
time series. There is the option to deseasonalise the
data if there is evidence of a seasonal cycle.
smoothTrend
uses a Generalized Additive Model
(GAM) from the gam
package to find the most
appropriate level of smoothing. The function is
particularly suited to situations where trends are not
monotonic (see discussion with MannKendall
for more details on this). The smoothTrend
function is particularly useful as an exploratory
technique e.g. to check how linear or non-linear trends
are.
95 estimates of the confidence intervals are also available
through the simulate
option. Residual resampling
is used.
Trends can be considered in a very wide range of ways,
controlled by setting type
- see examples below.MannKendall
for an alternative method of
calculating trends.# load example data from package
data(mydata)
# trend plot for nox
smoothTrend(mydata, pollutant = "nox")
# trend plot by each of 8 wind sectors
smoothTrend(mydata, pollutant = "o3", type = "wd", ylab = "o3 (ppb)")
# several pollutants, no plotting symbol
smoothTrend(mydata, pollutant = c("no2", "o3", "pm10", "pm25"), pch = NA)
# percentiles
smoothTrend(mydata, pollutant = "o3", statistic = "percentile",
percentile = 95)
# several percentiles with control over lines used
smoothTrend(mydata, pollutant = "o3", statistic = "percentile",
percentile = c(5, 50, 95), lwd = c(1, 2, 1), lty = c(5, 1, 5))
Run the code above in your browser using DataLab