smoothTrend(mydata,
pollutant = "nox",
deseason = FALSE,
type = "default",
statistic = "mean",
percentile = 95,
data.thresh = 0,
simulate = FALSE,
n = 200,
autocor = FALSE,
cols = "brewer1",
ylab = pollutant,
xlab = "year",
lty = 1,
lwd = 1,
pch = 1,
cex = 1,
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 stlhour (for hour of the day), weekday (for day of the week),
month (for month of the "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
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