smoothTrend(mydata,
pollutant = "nox",
deseason = FALSE,
type = "default",
statistic = "mean",
percentile = NA,
data.thresh = 0,
simulate = FALSE,
n = 200,
autocor = FALSE,
cols = "brewer1",
ylab = pollutant,
xlab = "year",
lty = 1,
lwd = 1,
pch = 1,
cex = 0.6,
key.columns = length(percentile),
main = "",
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. "season""mean"
, but can also be
"percentile"
. See 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 ofFALSE
. 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"
is used e.g. lty = c(5, 1, 5)
.statistic = "percentile"
is used e.g. lwd = c(1, 2,
1)
.statistic = "percentile"
is used e.g. pch = c(1, 2,
1)
. To remove symbols altogether use pch = NA
.statistic = "percentile"
is used e.g. cex = c(1, 2,
4)
.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
. For example, in the case
of cutData
the option hemisphere = "southern"
smoothTrend
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.deseason = TRUE
is set and there
are missing data after aggregation to monthly values, missing months
will be linearly interpolated.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
mgcv
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% confidence intervals are shown by shading. Bootstrap 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