evd/0000755000176200001440000000000012017645576011045 5ustar liggesusersevd/MD50000644000176200001440000001134612017645576011362 0ustar liggesusers567385a308658b5bdf8d1eb1a37cade6 *DESCRIPTION 18482fd81a06a973cd82556419804cc5 *NAMESPACE b7f3e37586e4f8150be961b200ca1cc7 *R/bvdist.R ac8a321337db4a7777e16f9ad975bb41 *R/bvfit.R 38cf35db0540ff9645131bf64bc50fe3 *R/bvpot.R 84e19ec87aa029ecdc33b5b0d30dceb0 *R/mdiag.R ddf55eb6c7a6e9ddff7de4e4158b2987 *R/mvdist.R 0bf5debcd75a54b878d88129aee79978 *R/nonpar.R 300e53ed9e9da38ebb4a9e20f16c98d8 *R/pmdiag.R ffab90c7cc4d2107efc3be10bdb87776 *R/profile.R f5e5df4614cb06cb4daafd9d719714a6 *R/stocproc.R e883a44bec4109aec350d98f9488ec9a *R/uvdist.R 157dbf1d2e9bc6865d466aebc36169d9 *R/uvfit.R d68cfea8b33320fd9126ea80d6319ecf *data/failure.rda c33081cf361744491b1acc705a79957a *data/fox.rda bac3d131d0e36fb5596eb14dda8b9f34 *data/lisbon.rda e7a23af3cdfa2d79115f430d2aab6cd5 *data/lossalae.rda 15e9a0fbd183e18d2421a321aec55b7d *data/ocmulgee.rda 123e3779faf5cfd0f83e251e06935ebc *data/oldage.rda 79009a1c1a87452a9f04f0a31e8ead11 *data/oxford.rda 17fbe17dcf5ace97b37a6e16c62c3532 *data/portpirie.rda 50dae5154ad85ac2e6f7f12da5200d92 *data/sask.rda dd351a164feaddd96c57dda0805ff975 *data/sealevel.rda d009439317a9a0110d04f69cad3cd65f *data/sealevel2.rda ad65e71d58dfdd4fcd8545db3034638b *data/uccle.rda a56d450cec20b359e77fbab9f7d647ab *data/venice.rda 9230d98b4249974436b756cd390a3c5e *data/venice2.rda 49c3a203da92e4411e10bc4cb22dd252 *inst/CHANGES f5404c0b304797ca2a974e4a1160046f *inst/CITATION 74c16464801d0b97b69d7b8a237d7ead *inst/README 507d99590e9d810481ffb47d8be27660 *inst/doc/Multivariate_Extremes.Rnw f9d756e7174ca1763464d11b7e3c6fe1 *inst/doc/Multivariate_Extremes.pdf 953e1bde4f4155f80d60198b883f5f27 *inst/doc/guide22.pdf 9f61c01952df4ff95184e1735e682487 *inst/doc/guide22.txt 523dc67fff7227210c2ba8796646a822 *man/abvevd.Rd 03b8b2e9d2f21050429b0c6ce5ffe5a5 *man/abvnonpar.Rd 58f72ece2585a9813314d5c382bb3271 *man/amvevd.Rd b6162433fe831e6926789eaedb9ac669 *man/amvnonpar.Rd e923598da8facea633bde1b52c4de961 *man/anova.evd.Rd de8f548527dfa661bed0282ae1f2f869 *man/bvevd.Rd 43828f88ed4f1f911de542ddfcc4ce25 *man/bvtcplot.Rd b6d4c709e6a6a717aac37c0f111f83d3 *man/ccbvevd.Rd 318af72ac009f773506801a8cc75b0f4 *man/chiplot.Rd 367623bb628aa659d0d256c5708e340b *man/clusters.Rd eb81692762688826bfdede4c9dd8b3ed *man/confint.evd.Rd e3c8697bc51de294ffda22b44acc45bc *man/evd-internal.Rd 4d6a023171216a79a0e50bcddcc52fd6 *man/evind.test.Rd 8bff69952c5704feab6dad7b0b054da3 *man/evmc.Rd 2560e2940a9dc035f9afe977aa981364 *man/exi.Rd b8137a9ab659ae2254c165e6359cdfc2 *man/exiplot.Rd 5cabbc4d0df40b6a7105d86bc1a720f5 *man/extreme.Rd b0e0e7154dbb5ec3ff1f19186ff99851 *man/failure.Rd 93092f9e9db915388d569955c3b85e3c *man/fbvevd.Rd 46088742eb73669fe55a5929e563d5b5 *man/fbvpot.Rd 155150c64728680e332eaa4eabfb47e7 *man/fextreme.Rd 32434a3b1e68371ebd32ce85de78af98 *man/fgev.Rd d5722d9ec990cadbe7ec09971ecfdaf0 *man/forder.Rd aef6cec422661466d6b54f13e0ab96cd *man/fox.Rd 06acb9a4d33fb414e372a16663f5c0c1 *man/fpot.Rd b818c703acc0282abb91d1afd7b1b00b *man/frechet.Rd cdb4b952e4f20f3761f01afd2276d160 *man/gev.Rd 3da2ecca51dd761a49547d1d1a6d8674 *man/gpd.Rd 53abddc6f16f327746392db7137cd8ef *man/gumbel.Rd 5b2604733ff89123e1d1c674e00a3e6e *man/hbvevd.Rd 5b79bcb534120fa3c6e3336a06a616cb *man/lisbon.Rd aaa7641109576280b07ffea3e4369644 *man/lossalae.Rd d4dd7a5e299a13072617c52e15fc3528 *man/marma.Rd ddeb90d652393cc3d2aa4adbad581463 *man/mrlplot.Rd 4430733e1a962ff9044835783c63dc62 *man/mtransform.Rd 8a24ebbd56a77198c93306188d6d5f4e *man/mvevd.Rd 21ae3ab8fc77c6ff7b7697fdcd8a2229 *man/ocmulgee.Rd 73aa82c764a6efd2bac4c73ce687809a *man/oldage.Rd 91d2571189b2513762e45dfb62599bf7 *man/order.Rd 1f21c3a0fb013184676d52654771c0d3 *man/oxford.Rd e97218d6d5e7020bbd0ed0df3f2823a0 *man/plot.bvevd.Rd 01d8e4d539de0e68215d2c2ae58ecfae *man/plot.bvpot.Rd 1d48937559bc13d896e0a73090d4f3e6 *man/plot.profile.evd.Rd ca6f6049d514deb682ed3a7fe66bd2d8 *man/plot.profile2d.evd.Rd 23619c5dac16078035e97d82baa67559 *man/plot.uvevd.Rd 4714ee737485ba8383952827c615bb9b *man/portpirie.Rd d60b3c4b52effbbf61fe4c8b17096868 *man/profile.evd.Rd 8d558fe7166045d539ab67083ccdde84 *man/profile2d.evd.Rd 6e8deec7d624858bbe6e6a1c6a5dc59c *man/qcbvnonpar.Rd eeee05f0cd614aef849c67cd325dfcd1 *man/rweibull.Rd 3219497aca485038920c94478fd48ad0 *man/sask.Rd 1e4837ad9bb2b011b235db5f6dc3e9a0 *man/sealevel.Rd a4f88f68f3d1a01d5820b9db3deded88 *man/sealevel2.Rd a374e7df439ed123bcd8e9e0e141f716 *man/tcplot.Rd 65fefd4bbfcddbaedf2946f59a7bcafc *man/uccle.Rd e0c35df69aefa81f9605db9b4a155c05 *man/venice.Rd 81b83c21fad695895892d7f545ede416 *man/venice2.Rd 15e04086259dbde2aaee1456b9c1499a *src/bvpot.c ab6ec968d811eae498a5e6a81e94a146 *src/ccop.c 064e1719cedfbee1d7ead1d5981866b2 *src/fit.c e986a3f92cf8cb3a07e7a00b00ab9bb3 *src/header.h 305b8719f33765d83b7a25a572030bd4 *src/pot.c 0872c52906cbc7c0fcb28ee40e9b7ed7 *src/sim.c 507d99590e9d810481ffb47d8be27660 *vignettes/Multivariate_Extremes.Rnw evd/vignettes/0000755000176200001440000000000012017604730013040 5ustar liggesusersevd/vignettes/Multivariate_Extremes.Rnw0000744000176200001440000004611512017604711020061 0ustar liggesusers\documentclass[11pt,a4paper]{article} \usepackage{amsmath,amssymb} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} %\VignetteIndexEntry{Statistics Of Extremes: Chapter 9} \begin{document} \title{Statistics of Multivariate Extremes} \author{Alec Stephenson} \maketitle \begin{center} \LARGE \textbf{Summary} \\ \end{center} \normalsize \vspace{0.5cm} This vignette uses the \textbf{evd} package to reproduce the figures, tables and analysis in Chapter 9 of Beirlant et al.\ (2001). The chapter was written by Segers and Vandewalle (2004). The code reproduces almost all figures, but for space reasons only some are shown. Deviations from the book are given as footnotes. Differences will inevitably exist due to numerical optimization and random number generation. \normalsize \section{Introduction} \label{Intro} The methods used here are illustrated using the \texttt{lossalae} dataset, which contains observations on $1500$ liability claims. The indemnity payment (loss) and the allocated loss adjustment expense (ALAE) is recorded in USD for each claim. The ALAE is the additional expenses associated with the settlement of the claim (e.g.\ claims investigation expenses and legal fees). The dataset also has an attribute called \texttt{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. We first scale the data so that one unit corresponds to $100\,000$ USD. Putting the data on a sensible scale assists with the numerical optimization involved in maximum likelihood estimation\footnote{The book reports an unsatisfactory fit of the GEV model to the margins. It therefore uses only empirical marginal distributions. This was perhaps due to not scaling the data. In this document we use either fully nonparametric or fully parametric methods.}. The code below plots the raw data using the log scale for both axes (see Figure \ref{rawdata}), and plots the data transformed to uniform $(0,1)$ margins using an empirical transform. <>= options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) @ <<>>= ula <- apply(loss, 2, rank)/(nn + 1) plot(ula) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Scatterplot of ALAE verses Loss: original data (log-scale).} \label{rawdata} \end{figure} \section{Parametric Models} Any bivariate extreme value distribution function can be represented in the form \begin{equation*} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation*} where \begin{equation*} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation*} for $\sigma_j > 0$ and $j=1,2$, and where \begin{equation*} A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}, \label{dep} \end{equation*} defined on $0\leq\omega\leq1$ is called the dependence function\footnote{The book uses the definition $B(\omega) = A(1-\omega)$.}. The marginal distributions are generalized extreme value (GEV), given by $G_j(z_j) = \exp(-y_j)$. It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. The dependence function represents only the dependence structure of the distribution, and hence only the dependence parameters of parametric models need to be specified in order to produce dependence function plots. The code below plots dependence functions for four different parametric models. The first of these is given in Figure \ref{asylogdfn}. <>= abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) @ <<>>= abvevd(dep = -1/(-2), model = "neglog", plot = TRUE) abvevd(dep = -1/(-1), model = "neglog", add = TRUE, lty = 2) abvevd(dep = -1/(-0.5), model = "neglog", add = TRUE, lty = 3) @ <<>>= abvevd(alpha = 1, beta = -0.2, model = "amix", plot = TRUE) abvevd(alpha = 0.6, beta = 0.1, model = "amix", add = TRUE, lty = 2) abvevd(alpha = 0.2, beta = 0.2, model = "amix", add = TRUE, lty = 3) @ <<>>= abvevd(dep = 1/1.25, model = "hr", plot = TRUE) abvevd(dep = 1/0.83, model = "hr", add = TRUE, lty = 2) abvevd(dep = 1/0.5, model = "hr", add = TRUE, lty = 3) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Dependence functions: asymmetric logistic model.} \label{asylogdfn} \end{figure} \section{Componentwise Maxima} For demonstration purposes we use the data introduced in Section \ref{Intro} to create a dataset of componentwise block maxima by randomly taking $k=50$ groups of size $m=30$, producing $k$ componentwise maxima taken over $m$ observations\footnote{The data may be completely different to the book due to random selection.}. Bivariate extreme value distributions are typically used to model data of this type. The code below creates the componentwise maxima data \texttt{cml} and produces two data plots, the first showing the original data and the componentwise maxima, and the second showing the componentwise maxima data transformed to standard exponential margins. <<>>= set.seed(131); cml <- loss[sample(nn),] xx <- rep(1:50, each = 30); lts <- c(1e-04, 100) cml <- cbind(tapply(cml[,1], xx, max), tapply(cml[,2], xx, max)) colnames(cml) <- colnames(loss) plot(loss, log = "xy", xlim = lts, ylim = lts, col = "grey") points(cml) ecml <- -log(apply(cml,2,rank)/51) plot(ecml) @ The following code estimates and plots the dependence function $A(\cdot)$ from the componentwise maxima data. The first code chunk uses various nonparametric estimates of the dependence function, and also uses empirical (i.e.\ nonparametric) estimation of the margins, as specified by \texttt{epmar = TRUE}. The four different estimates are shown in Figure \ref{nonpardfn}. The second code chunk uses maximum likelihood estimation for parametric models. The call to \texttt{fbvevd} fits the model, and the call to \texttt{plot} plots the parametric dependence function estimates. The argument specification \texttt{asy1 = 1} in the first call to \texttt{fbvevd} constrains the model fit so that the first asymmetry parameter of the model is fixed at the value one. <>= pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) @ <<>>= m1 <- fbvevd(cml, asy1 = 1, model = "alog") m2 <- fbvevd(cml, model = "log") m3 <- fbvevd(cml, model = "bilog") plot(m1, which = 4, nplty = 3) plot(m2, which = 4, nplty = 3, lty = 2, add = TRUE) plot(m3, which = 4, nplty = 3, lty = 4, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Nonparametric dependence function estimates by Pickands (dotted line), Deheuvels (dashed line), Hall-Tajvidi (dot-dashed line) and Cap\'{e}r\`{a}a-Foug\`{e}res-Genest (solid line) based on componentwise block maxima data and using empirical marginal estimation.} \label{nonpardfn} \end{figure} The objects produced by \texttt{fbvevd} contain information about the parametric fit of the bivariate extreme value distribution. For example, \texttt{m2} contains information on the fit of a (symmetric) logistic extreme value distribution, which has a single dependence parameter and three parameters on each of the GEV margins. Using \texttt{plot(m2)} produces several diagnostic plots, including quantile curves and spectral densities. Using \texttt{deviance(m2)} produces the deviance, which is equal to twice the negative log-likelihood. The following shows the parameter estimates and their standard errors, and gives an analysis of deviance table for testing \texttt{m2} verses \texttt{m3}, which is possible since the models are nested, with \texttt{m3} having one additional dependence parameter. The call to \texttt{exind.test} produces a score test for independence, following Tawn (1988). Omitting the \texttt{method} argument gives a likelihood ratio test, also from Tawn (1988), which is typically more accurate. <<>>= round(rbind(fitted(m2), std.errors(m2)), 3) anova(m3, m2) evind.test(cml, method = "score") @ The code below uses the function \texttt{qcbvnonpar} to plot quantile curves using nonparametric dependence function estimates. Quantile curves are defined as \begin{equation*} Q(F, p) = \{(z_1,z_2): F(z_1,z_2) = p\}, \end{equation*} where $F$ is a distribution function and $p$ is a probability. We use the default nonparametric estimation method and we again use empirical estimation of the margins\footnote{Using parametric marginal estimates tends to produce more sensible quantile curve plots, but we follow the book here. Unlike the book, the quantile curves in Figure \ref{nonparqc} are not step functions because the empirical marginal transforms include interpolation.}, as specified by \texttt{epmar = TRUE}. For parametric dependence models similar plots can be produced using e.g.\ \texttt{plot(m2, which = 5)}. Note that because we plot curves corresponding to the distribution of the original dataset rather than the componentwise maxima, we pass the argument \texttt{mint = 30}. <>= lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Estimated quantile curves $Q(\hat{F},p)$ for $p=0.98,0.99,0.995$ based on the componentwise block maxima data shown as black circles, using the Cap\'{e}r\`{a}a-Foug\`{e}res-Genest nonparametric estimate of the dependence function and using empirical marginal estimation.} \label{nonparqc} \end{figure} \section{Excesses Over A Threshold} We now consider all the $1500$ observations on liability claims. We assume that the data are distributed according to the distribution function $F$, and we are interested in $F(z)$ where $z=(z_1,z_2)$ is in some sense large. The methods we use assume that $F$ is in the domain of attraction of some bivariate extreme value distribution $G$, and we focus on large data points to estimate features of $G$, and hence of $F(z)$ for large $z$. Typically we focus on points $z$ that lie above a certain threshold. The functions \texttt{tcplot} and \texttt{mrlplot} can be used for producing plots on each margin to help determine thresholds $u_1$ and $u_2$ for methods that focus primarily on points $z$ such that $z_1 > u_1$ and $z_2 > u_2$. Alternatively, the function \texttt{bvtcplot} can be used to help determine a single threshold $u^{*}$ for methods that focus on points $z$ such that $r(z) > u^{*}$, where $r(z) = x_1(z_1) + x_2(z_2)$, and $x_j(z_j) = -1/\log \hat{F}_j(z_j)$ for $j=1,2$ where $F_j$ is estimated empirically. Following Segers and Vandewalle (2004), a sensible choice for threshold $u^{*}$ might be found from Figure \ref{bvtc} by taking the $k$th largest $r(z)$, where $k$ is the largest value for which the y-axis is close to two. Figure \ref{bvtc} is plotted below using \texttt{bvtcplot}. The value of $k$ is returned invisibly. Setting \texttt{spectral = TRUE} uses the $k$th largest points to plot a nonparametric estimate of $H([0,\omega])$ where $H$ is the spectral measure of $G$. <>= k0 <- bvtcplot(loss)$k0 bvtcplot(loss, spectral = TRUE) @ <>= k0 <- bvtcplot(loss)$k0 @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{A plot of $(k/n)r_{(n-k)}$ as a function of $k$, where $r_{(1)} \leq \dots \leq r_{(n)}$ are the ordered values of $r$. The y-axis provides an estimate of $H([0,1]) = 2$ for the spectral measure $H$ of $G$.} \label{bvtc} \end{figure} The parametric approach to the problem can employ models similar to those used for bivariate extreme value distributions. We first consider the margins separately by fitting a univariate generalized Pareto distribution to the excesses over the threshold $u_j$ on each margin $j=1,2$. We choose the thresholds so that the number of exceedances is roughly\footnote{The value is chosen so that the thresholds match exactly with those used in the book.} half of the value \texttt{k0}. <<>>= thresh <- apply(loss, 2, sort, decreasing = TRUE)[(k0+5)/2,] mar1 <- fitted(fpot(loss[,1], thresh[1])) mar2 <- fitted(fpot(loss[,2], thresh[2])) rbind(mar1,mar2) @ Parametric threshold models can be fitted using the function \texttt{fbvpot}, with the parametric model specified using the \texttt{model} argument. The default approach uses censored likelihood methodology, where a bivariate extreme value dependence structure is fitted to the data censored at the marginal thresholds $u_1$ and $u_2$. Alternatively, a Poisson process model can be employed using the \texttt{likelihood} argument. \textbf{SENTENCE}. Some examples of parametric fits are given below. Diagnostic plots for the fitted models can be produced using e.g.\ \texttt{plot(m2)}. <<>>= m1 <- fbvpot(loss, thresh, model = "alog", asy1 = 1) m2 <- fbvpot(loss, thresh, model = "bilog") m3 <- fbvpot(loss, thresh, model = "bilog", likelihood = "poisson") round(rbind(fitted(m2), std.errors(m2)), 3) @ The following code plots parametric and nonparametric estimates for the bivariate extreme value dependence structure fitted to the upper tail of $F$. The parametric estimates use the previously fitted models. The nonparametric estimate can be plotted using the \texttt{"pot"} method and takes the value \texttt{k0} to specify the threshold. <<>>= abvnonpar(data = loss, method = "pot", k = k0, epmar = TRUE, plot = TRUE, lty = 3) plot(m1, which = 2, add = TRUE) plot(m2, which = 2, add = TRUE, lty = 4) plot(m3, which = 2, add = TRUE, lty = 2) @ Figure \ref{qcthresh} uses our fitted asymmetric logistic model \texttt{m1} to plot quantile curves at probabilities $p=0.98,0.99,0.995$. The thresholds used for the censored likelihood model fit are also added to the plot. <>= lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Quantile curves for probabilities $p=0.98,0.99,0.995$ for an asymmetric logistic model fit using censored likelihood estimation, with censoring at marginal thresholds given by the vertical and horizontal lines.} \label{qcthresh} \end{figure} Models based on bivariate extreme value distributions assume that the margins are either asymptotically dependent or are perfectly independent. They cannot account for situations where the dependence between the margins vanishes at increasingly extreme levels. The remainder of this section illustrates the estimation of dependence measures that can identify such cases. We consider three quantities as defined in Coles \textit{et al.} (1999). The coefficient of extremal dependence $\chi \in [0,1]$ is the tendency for one variable to be large given that the other is large. When $\chi = 0$ the variables are asymptotically independent, and when $\chi > 0$ they are asymptotically independent. The second measure $\bar{\chi}$ identifies the strength of dependence for asymptotically independent variables. When $\bar{\chi} = 1$ the variables are asymptotically dependent, and when $-1 \leq \bar{\chi} < 1$ they are asymptotically independent. The third measure is the coefficient of tail dependence $\eta$, which satisfies $\bar{\chi} = 2\eta - 1$. The following code produces Figure \ref{chiplot} which shows estimates of the functions $\chi(u)$ and $\bar{\chi}(u)$, as defined in Coles \textit{et al.} (1999), for $0 < u < 1$. The functions are defined so that $\chi = \lim_{u \rightarrow 1}\chi(u)$ and $\bar{\chi} = \lim_{u \rightarrow 1}\bar{\chi}(u)$. In this case $\chi(u) > 0 $ for all $u$ but there is little evidence that $\bar{\chi}$ is close to one, so it is difficult to specify the form of dependence on the basis of this plot. <>= old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{The dependence measures $\chi(u)$ and $\bar{\chi}(u)$. Estimates (solid line), 95\% pointwise confidence intervals (dot-dashed lines). The dashed lines represent the theoretical limits of the functions and the exact independence case at zero.} \label{chiplot} \end{figure} We now consider the coefficient of tail dependence $\eta$. We can estimate $\eta$ using univariate theory because of its relationship with $T = \min\{x_1(z_1),x_2(z_2)\}$. If we fit a generalized Pareto distribution to the data points in $T$ that exceed a large fixed threshold, then the estimated shape parameter of the fitted distribution provides an estimate of $\eta$. The call to \texttt{tcplot} plots estimates of $\eta$ at different thresholds in order to assist with threshold choice. The plot seems roughly linear after $u=0.8$, so we take the 80th percentile of $T$ as our threshold. Finally, we use \texttt{anova} to perform a likelihood ratio test for asymptotic dependence, with the null hypothesis $\eta = 1$ versus the alternative $\eta < 1$. <>= fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) @ <<>>= thresh <- quantile(fla, probs = 0.8) m1 <- fpot(fla, thresh = thresh) cat("Tail Dependence:", fitted(m1)["shape"], "\n") @ <<>>= m2 <- fpot(fla, thresh = thresh, shape = 1) anova(m1, m2, half = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Maximum likelihood estimates (solid line) and 95\% pointwise confidence intervals (dot-dashed lines) for $\eta$ at different threshold probabilities.} \label{etaplot} \end{figure} \textbf{POISSON LIKELIHOOD CODE AND SENTENCE TODO} \section*{Bibliography} Beirlant, J., Goegebeur, Y., Segers, J and Teugels, J. (2004) \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Coles, S., Heffernan, J. and Tawn, J. (1999) Dependence measures for extreme value analysis. \textit{Extremes}, \textbf{2}, 339--365. Segers, J. and Vandewalle, B. (2004). Statistics of Multivariate Extremes. In Beirlant et al. (eds.), \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Tawn, J. (1988). Bivariate extreme value theory: Models and estimation. \textit{Biometrika}, \textbf{75}, 397--415. \end{document} evd/src/0000755000176200001440000000000012017604730011617 5ustar liggesusersevd/src/sim.c0000744000176200001440000002674512017604730012572 0ustar liggesusers#include "header.h" /* produces standard Frechet margins */ void rbvlog_shi(int *n, double *alpha, double *sim) { double u,z; int i; RANDIN; for(i=0;i<*n;i++) { u = UNIF; if(UNIF < *alpha) z = EXP+EXP; else z = EXP; sim[2*i] = 1/(z * R_pow(u,*alpha)); sim[2*i+1] = 1/(z * R_pow(1-u,*alpha)); } RANDOUT; } /* produces standard Frechet margins */ void rbvalog_shi(int *n, double *alpha, double *asy, double *sim) { double v1_1,v2_2,v1_12,v2_12,u,z; int i; RANDIN; if(*alpha == 1) for(i=0;i<2*(*n);i++) sim[i] = 1/EXP; else { for(i=0;i<*n;i++) { v1_1 = (1-asy[0]) / EXP; v2_2 = (1-asy[1]) / EXP; u = UNIF; if(UNIF < *alpha) z = EXP+EXP; else z = EXP; v1_12 = asy[0] / (z * R_pow(u,*alpha)); v2_12 = asy[1] / (z * R_pow(1-u,*alpha)); sim[2*i] = fmax2(v1_1,v1_12); sim[2*i+1] = fmax2(v2_2,v2_12); } } RANDOUT; } /* produces standard Frechet margins */ void rmvlog_tawn(int *n, int *d, double *alpha, double *sim) { double s; int i,j; RANDIN; for(i=0;i<*n;i++) { s = rpstable(*alpha); for(j=0;j<*d;j++) sim[i*(*d)+j] = exp(*alpha * (s - log(EXP))); } RANDOUT; } /* produces standard Frechet margins */ void rmvalog_tawn(int *n, int *d, int *nb, double *alpha, double *asy, double *sim) { double s; double *gevsim; double *maxsim; int i,j,k; gevsim = (double *)R_alloc((*nb)*(*d), sizeof(double)); maxsim = (double *)R_alloc(*nb, sizeof(double)); for(i=0;i<(*nb)*(*d);i++) gevsim[i] = 0; RANDIN; for(i=0;i<*n;i++) { for(j=0;j<*nb;j++) { if(alpha[j] != 1) s = rpstable(alpha[j]); else s = 0; for(k=0;k<*d;k++) { if(asy[j*(*d) + k] != 0) gevsim[j*(*d) + k] = asy[j*(*d) + k] * exp(alpha[j] * (s - log(EXP))); } } for(j=0;j<*d;j++) { for(k=0;k<*nb;k++) maxsim[k] = gevsim[k*(*d) + j]; sim[i*(*d)+j] = maximum_n(*nb,maxsim); } } RANDOUT; } /* returns logarithm needed for rmvlog_tawn rmvalog_tawn */ double rpstable(double cexp) { double tcexp,u,w,a; if(cexp == 1) return 1; tcexp = 1-cexp; u = M_PI*UNIF; w = log(EXP); a = log(sin(tcexp*u)) + (cexp/tcexp) * log(sin(cexp*u)) - (1/tcexp) * log(sin(u)); return (tcexp/cexp) * (a - w); } double maximum_n(int n, double *x) { int i; for(i=1;i 0) { *dns = 1e6; return; } if(u <= 0 && *shape < 0) d2 = 0; else d2 = - *nop * R_pow(u, -1 / *shape); } *dns = -d2; for(i=0;i<*nhigh;i++) *dns = *dns - dvec[i]; } void clusters(double *high, double *high2, int *n, int *r, int *rlow, double *clstrs) { int i,j,rr; int incl = 0, clind = 0, shigh = 0, shigh2 = 0; for(i=0;i<*n;i++) { if(high[i] && incl) { clstrs[i + 0 * *n] = clind; } if(high[i] && !incl) { incl = 1; clstrs[i + 1 * *n] = 1; clind++; clstrs[i + 0 * *n] = clind; } if(!high[i] && incl) { if(*r > *n-i) rr = *n-i; else rr = *r; for(j=i;j<(i+rr);j++) { shigh = shigh + high[j]; } if(*rlow > *n-i) rr = *n-i; else rr = *rlow; for(j=i;j<(i+rr);j++) { shigh2 = shigh2 + high2[j]; } if(!shigh || !shigh2) { incl = 0; clstrs[i - 1 + 2 * *n] = 1; } else clstrs[i + 0 * *n] = clind; shigh = shigh2 = 0; } } if(incl) clstrs[*n - 1 + 2 * *n] = 1; } evd/src/header.h0000744000176200001440000002074412017604730013230 0ustar liggesusers#include #include #define RANDIN GetRNGstate() #define RANDOUT PutRNGstate() #define UNIF unif_rand() #define EXP exp_rand() /* from pot.c */ void nlgpd(double *data, int *n, double *loc, double *scale, double *shape, double *dns); void nlpp(double *exceed, int *nhigh, double *loc, double *scale, double *shape, double *thresh, double *nop, double *dns); void clusters(double *high, double *high2, int *n, int *r, int *rlow, double *clstrs); /* from ccop.c */ double ccbvlog(double m1, double m2, double oldm1, double dep); double ccbvalog(double m1, double m2, double oldm1, double dep, double asy1, double asy2); double ccbvhr(double m1, double m2, double oldm1, double dep); double ccbvneglog(double m1, double m2, double oldm1, double dep); double ccbvaneglog(double m1, double m2, double oldm1, double dep, double asy1, double asy2); double ccbvbilog(double m1, double m2, double oldm1, double alpha, double beta); double ccbvnegbilog(double m1, double m2, double oldm1, double alpha, double beta); double ccbvct(double m1, double m2, double oldm1, double alpha, double beta); double ccbvamix(double m1, double m2, double oldm1, double alpha, double beta); void ccop(double *m1, double *m2, int *cnd, double *dep, double *asy1, double *asy2, double *alpha, double *beta, int *n, int *model, double *ccop); /* from sim.c */ void rbvlog_shi(int *n, double *alpha, double *sim); void rbvalog_shi(int *n, double *alpha, double *asy, double *sim); void rmvlog_tawn(int *n, int *d, double *alpha, double *sim); void rmvalog_tawn(int *n, int *d, int *nb, double *alpha, double *asy, double *sim); double rpstable(double cexp); double maximum_n(int n, double *x); void rbvlog(int *n, double *dep, double *sim); void rbvalog(int *n, double *dep, double *asy, double *sim); void rbvhr(int *n, double *dep, double *sim); void rbvneglog(int *n, double *dep, double *sim); void rbvaneglog(int *n, double *dep, double *asy, double *sim); void rbvbilog(int *n, double *alpha, double *beta, double *sim); void rbvnegbilog(int *n, double *alpha, double *beta, double *sim); void rbvct(int *n, double *alpha, double *beta, double *sim); void rbvamix(int *n, double *alpha, double *beta, double *sim); /* from fit.c */ void nlgev(double *data, int *n, double *loc, double *scale, double *shape, double *dns); void nlbvalog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvlog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvhr(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvaneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvnegbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvct(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvamix(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nslmvalog(double *data, int *n, int *d, double *deps, double *thetas, double *mpar, double *psrvs, int *q, int *nslocid, double *nsloc, int *depindx, int *thetaindx, double *dns); /* from bvpot.c (censored) */ void nllbvclog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcalog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcnegbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcaneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcct(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvchr(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcamix(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); /* from bvpot.c (poisson) */ void nllbvplog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpneglog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpct(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpnegbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvphr(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); evd/src/fit.c0000744000176200001440000005717612017604730012566 0ustar liggesusers#include "header.h" void nlgev(double *data, int *n, double *loc, double *scale, double *shape, double *dns) { int i; double *dvec; dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { data[i] = (data[i] - loc[i]) / *scale; if(*shape == 0) dvec[i] = log(1 / *scale) - data[i] - exp(-data[i]); else { data[i] = 1 + *shape * data[i]; if(data[i] <= 0) { *dns = 1e6; return; } dvec[i] = log(1 / *scale) - R_pow(data[i], -1 / *shape) - (1 / *shape + 1) * log(data[i]); } } for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } void nlbvlog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep, *dvec, *z; dvec = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { z[i] = R_pow(exp(idep * datam1[i]) + exp(idep * datam2[i]), *dep); dvec[i] = (idep + *shape1) * datam1[i] + (idep + *shape2) * datam2[i] - log(*scale1 * *scale2); dvec[i] = dvec[i] + (1-2*idep)*log(z[i]) - z[i]; if(si[i] == 0) dvec[i] = dvec[i] + log(z[i]); else if(si[i] == 1) dvec[i] = dvec[i] + log(idep-1); else dvec[i] = dvec[i] + log(idep-1+z[i]); } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvalog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep,c1,c2,c3,c4; double *e1,*e2,*e3,*e4,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); e4 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; c1 = log(1 - *asy1) + log(1 - *asy2); c2 = idep * log(*asy1) + idep * log(*asy2); c3 = log(1 - *asy1) + idep * log(*asy2); c4 = log(1 - *asy2) + idep * log(*asy1); for(i=0;i<*n;i++) { z[i] = R_pow(exp(idep * (log(*asy1) + datam1[i])) + exp(idep * (log(*asy2) + datam2[i])), *dep); v[i] = (1 - *asy1) * exp(datam1[i]) + (1 - *asy2) * exp(datam2[i]) + z[i]; jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); e1[i] = c3 + (idep - 1) * datam2[i]; e2[i] = c4 + (idep - 1) * datam1[i]; e3[i] = (1 - idep) * log(z[i]) + log(exp(e1[i]) + exp(e2[i])); e4[i] = c2 + (idep - 1) * datam1[i] + (idep - 1) * datam2[i] + (1 - 2*idep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e4[i] = e4[i] + log(z[i]); dvec[i] = dvec[i] + log(exp(c1) + exp(e3[i]) + exp(e4[i])); } else if(si[i] == 1) { e4[i] = e4[i] + log(idep-1); dvec[i] = dvec[i] + e4[i]; } else { e4[i] = e4[i] + log(idep-1+z[i]); dvec[i] = dvec[i] + log(exp(c1) + exp(e3[i]) + exp(e4[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvhr(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*e3,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { e1[i] = exp(datam1[i]) * pnorm(idep + *dep * (datam1[i] - datam2[i]) / 2, 0, 1, 1, 0); e2[i] = exp(datam2[i]) * pnorm(idep + *dep * (datam2[i] - datam1[i]) / 2, 0, 1, 1, 0); e3[i] = exp(datam1[i]) * dnorm(idep + *dep * (datam1[i] - datam2[i]) / 2, 0, 1, 0); v[i] = e1[i] + e2[i]; if(si[i] == 0) dvec[i] = e1[i] * e2[i]; else if(si[i] == 1) dvec[i] = *dep * e3[i] / 2; else dvec[i] = e1[i] * e2[i] + *dep * e3[i] / 2; jc[i] = *shape1 * datam1[i] + *shape2 * datam2[i] - log(*scale1 * *scale2); dvec[i] = log(dvec[i]) + jc[i] - v[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { z[i] = R_pow(exp(-*dep * datam1[i]) + exp(-*dep * datam2[i]), -idep); v[i] = exp(datam1[i]) + exp(datam2[i]) - z[i]; jc[i] = (1 + *shape1)*datam1[i] + (1 + *shape2)*datam2[i] - log(*scale1 * *scale2); e1[i] = (1 + *dep) * log(z[i]) + log(exp((-*dep-1) * datam1[i]) + exp((-*dep-1) * datam2[i])); e2[i] = (-*dep-1) * datam1[i] + (-*dep-1) * datam2[i] + (1 + 2 * *dep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e2[i] = e2[i] + log(z[i]); dvec[i] = dvec[i] + log(1 - exp(e1[i]) + exp(e2[i])); } else if(si[i] == 1) { e2[i] = e2[i] + log(1 + *dep); dvec[i] = dvec[i] + e2[i]; } else { e2[i] = e2[i] + log(1 + *dep + z[i]); dvec[i] = dvec[i] + log(1 - exp(e1[i]) + exp(e2[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvaneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*e3,*e4,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); e4 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { z[i] = R_pow(exp(-*dep * (log(*asy1) + datam1[i])) + exp(-*dep * (log(*asy2) + datam2[i])), -idep); v[i] = exp(datam1[i]) + exp(datam2[i]) - z[i]; jc[i] = (1 + *shape1)*datam1[i] + (1 + *shape2)*datam2[i] - log(*scale1 * *scale2); e1[i] = -*dep * log(*asy1) + (-*dep - 1) * datam1[i]; e2[i] = -*dep * log(*asy2) + (-*dep - 1) * datam2[i]; e3[i] = (1 + *dep) * log(z[i]) + log(exp(e1[i]) + exp(e2[i])); e4[i] = e1[i] + e2[i] + (1 + 2 * *dep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e4[i] = e4[i] + log(z[i]); dvec[i] = dvec[i] + log(1 - exp(e3[i]) + exp(e4[i])); } else if(si[i] == 1) { e4[i] = e4[i] + log(1 + *dep); dvec[i] = dvec[i] + e4[i]; } else { e4[i] = e4[i] + log(1 + *dep + z[i]); dvec[i] = dvec[i] + log(1 - exp(e3[i]) + exp(e4[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i,j; double *e1,*e2,*v,*jc,*dvec,*gma; double llim,midpt,ilen,lval,midval,uval,delta,eps; gma = (double *)R_alloc(*n, sizeof(double)); e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } delta = eps = R_pow(DOUBLE_EPS, 0.5); for(i=0;i<*n;i++) { llim = 0; ilen = 1; lval = (1 - *alpha) * exp(datam1[i]); uval = (*beta - 1) * exp(datam2[i]); if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvnegbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i,j; double *e1,*e2,*e3,*v,*jc,*dvec,*gma; double llim,midpt,ilen,lval,midval,uval,delta,eps; gma = (double *)R_alloc(*n, sizeof(double)); e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } delta = eps = R_pow(DOUBLE_EPS, 0.5); for(i=0;i<*n;i++) { llim = 0; ilen = 1; uval = (1 + *alpha) * exp(datam1[i]); lval = - (1 + *beta) * exp(datam2[i]); if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvct(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double *e1,*e2,*u,*v,*jc,*dvec; double c; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); u = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } c = *alpha * *beta / (*alpha + *beta + 1); for(i=0;i<*n;i++) { u[i] = (*alpha * exp(datam2[i])) / (*alpha * exp(datam2[i]) + *beta * exp(datam1[i])); v[i] = exp(datam2[i]) * pbeta(u[i], *alpha, *beta + 1, 1, 0) + exp(datam1[i]) * pbeta(u[i], *alpha + 1, *beta, 0, 0); jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); e1[i] = pbeta(u[i], *alpha, *beta + 1, 1, 0) * pbeta(u[i], *alpha + 1, *beta, 0, 0); e2[i] = dbeta(u[i], *alpha + 1, *beta + 1, 0) / (*alpha * exp(datam2[i]) + *beta * exp(datam1[i])); if(si[i] == 0) dvec[i] = log(e1[i]) - v[i] + jc[i]; else if(si[i] == 1) dvec[i] = log(c * e2[i]) - v[i] + jc[i]; else dvec[i] = log(e1[i] + c * e2[i]) - v[i] + jc[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvamix(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double *v,*v1,*v2,*v12,*u,*u1,*u2,*jc,*dvec; double apb; v1 = (double *)R_alloc(*n, sizeof(double)); v2 = (double *)R_alloc(*n, sizeof(double)); v12 = (double *)R_alloc(*n, sizeof(double)); u = (double *)R_alloc(*n, sizeof(double)); u1 = (double *)R_alloc(*n, sizeof(double)); u2 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } apb = *alpha + *beta; for(i=0;i<*n;i++) { jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); u[i] = exp(datam1[i]) + exp(datam2[i]); u1[i] = exp(datam1[i])/u[i]; u2[i] = exp(datam2[i])/u[i]; v[i] = u[i] - exp(datam1[i]) * (apb - *alpha * u1[i] - *beta * u1[i] * u1[i]); v1[i] = 1 - *alpha * u2[i] * u2[i] - *beta * (3 * u2[i]*u2[i] - 2 * u2[i]*u2[i]*u2[i]); v2[i] = 1 - *alpha * u1[i]*u1[i] - 2 * *beta * u1[i]*u1[i]*u1[i]; v12[i] = (-2 * *alpha * u1[i] * u2[i] - 6 * *beta * u1[i]*u1[i] * u2[i]) / u[i]; if(si[i] == 0) dvec[i] = log(v1[i] * v2[i]) - v[i] + jc[i]; else if(si[i] == 1) dvec[i] = log(- v12[i]) - v[i] + jc[i]; else dvec[i] = log(v1[i] * v2[i] - v12[i]) - v[i] + jc[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nslmvalog(double *data, int *n, int *d, double *deps, double *thetas, double *mpar, double *psrvs, int *q, int *nslocid, double *nsloc, int *depindx, int *thetaindx, double *dns) { int i,j,k,l,dd,nn,qq,niinbm,ndepp,nmp; double iterm1, iterm2, term1, term2, eps; double thetasum, psrv, repdens; double dep, theta, loc; double *tdata, *dvec; int tmp1, tmp2; dd = *d; nn = *n; qq = *q; eps = R_pow(DOUBLE_EPS, 0.3); ndepp = R_pow(2, dd) - 1 - dd; niinbm = R_pow(2, dd - 1) - 1; if(*nslocid) nmp = 4; else nmp = 3; *dns = 0; tdata = (double *)Calloc(nn * dd * sizeof(double), double); dvec = (double *)Calloc(nn * sizeof(double), double); for(i=0;i 1) { *dns = 1e6; return; } else { iterm1 = iterm1 + (1-thetasum)/tdata[i*dd+j]; iterm2 = iterm2 + (1-thetasum)/tdata[i*dd+j]; } repdens = repdens + log(iterm2) - iterm1 - log(mpar[nmp*j+1]) - mpar[nmp*j+2] * log(tdata[i*dd+j]); } else tdata[i*dd+j] = NA_REAL; } dvec[i] = dvec[i] + exp(repdens); } dvec[i] = log(dvec[i]) - log(qq); } for(i=0;i 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda2[0] = R_pow(lambda2[0], -1 / *dep); lambda2[1] = R_pow(lambda2[1], -1 / *dep); zdn = R_pow(lambda2[0] + lambda2[1], *dep - 1); zdn = -zdn * (lambda2[0] + lambda2[1]); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; v1[i] = R_pow(data1[i], -1 / *dep); v2[i] = R_pow(data2[i], -1 / *dep); v12[i] = R_pow(v1[i] + v2[i], *dep - 1); v[i] = v12[i] * (v1[i] + v2[i]); v1[i] = -(v1[i]/data1[i]) * v12[i]; v2[i] = -(v2[i]/data2[i]) * v12[i]; v12[i] = (1 - 1 / *dep) * v1[i] * v2[i] / v[i]; if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *q, *q1, *q2, *q12, *x1, *x2, *qa, *qb; double lambda2[2], lambda3[2], lambdaq, zdn; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); q = (double *)R_alloc(*nn, sizeof(double)); qa = (double *)R_alloc(*nn, sizeof(double)); qb = (double *)R_alloc(*nn, sizeof(double)); q1 = (double *)R_alloc(*nn, sizeof(double)); q2 = (double *)R_alloc(*nn, sizeof(double)); q12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 0.999 || *beta > 0.999) { *dns = 1e6; return; } delta = eps = R_pow(DOUBLE_EPS, 0.8); lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); llim = 0; ilen = 1; lval = (1 - *alpha) / lambda2[0]; uval = (*beta - 1) / lambda2[1]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcalog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.1 || *dep > 1 || *asy1 < 0.001 || *asy2 < 0.001 || *asy1 > 1 || *asy2 > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(*asy1 / lambda2[0], 1 / *dep); lambda3[1] = R_pow(*asy2 / lambda2[1], 1 / *dep); zdn = R_pow(lambda3[0] + lambda3[1], *dep - 1); zdn = (*asy1 - 1)/lambda2[0] + (*asy2 - 1)/lambda2[1] - zdn * (lambda3[0] + lambda3[1]); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(*asy1 / data1[i], 1 / *dep); x2[i] = R_pow(*asy2 / data2[i], 1 / *dep); x12[i] = R_pow(x1[i] + x2[i], *dep - 1); v[i] = (1 - *asy1)/data1[i] + (1 - *asy2)/data2[i] + x12[i] * (x1[i] + x2[i]); v1[i] = ((*asy1 - 1)/data1[i] - x1[i] * x12[i]) / data1[i]; v2[i] = ((*asy2 - 1)/data2[i] - x2[i] * x12[i]) / data2[i]; v12[i] = (1 - 1 / *dep) * x1[i]/data1[i] * x2[i]/data2[i] * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(lambda2[0], *dep); lambda3[1] = R_pow(lambda2[1], *dep); zdn = R_pow(lambda3[0] + lambda3[1], -1 / *dep - 1); zdn = zdn * (lambda3[0] + lambda3[1]) - 1/lambda2[0] - 1/lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(data1[i], *dep); x2[i] = R_pow(data2[i], *dep); x12[i] = R_pow(x1[i] + x2[i], -1 / *dep - 1); v[i] = 1/data1[i] + 1/data2[i] - x12[i] * (x1[i] + x2[i]); v1[i] = (x1[i] * x12[i] - 1/data1[i]) / data1[i]; v2[i] = (x2[i] * x12[i] - 1/data2[i]) / data2[i]; v12[i] = -(1 + *dep) * (x1[i]/data1[i]) * (x2[i]/data2[i]) * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcnegbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *q, *q1, *q2, *q12, *x1, *x2, *qa, *qb; double lambda2[2], lambda3[2], lambdaq, zdn; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); q = (double *)R_alloc(*nn, sizeof(double)); qa = (double *)R_alloc(*nn, sizeof(double)); qb = (double *)R_alloc(*nn, sizeof(double)); q1 = (double *)R_alloc(*nn, sizeof(double)); q2 = (double *)R_alloc(*nn, sizeof(double)); q12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 20 || *beta > 20) { *dns = 1e6; return; } delta = eps = R_pow(DOUBLE_EPS, 0.8); lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); llim = 0; ilen = 1; uval = (1 + *alpha) / lambda2[0]; lval = - (1 + *beta) / lambda2[1]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcaneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5 || *asy1 < 0.001 || *asy2 < 0.001 || *asy1 > 1 || *asy2 > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(lambda2[0] / *asy1, *dep); lambda3[1] = R_pow(lambda2[1] / *asy2, *dep); zdn = R_pow(lambda3[0] + lambda3[1], -1 / *dep - 1); zdn = zdn * (lambda3[0] + lambda3[1]) - 1/lambda2[0] - 1/lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(data1[i] / *asy1, *dep); x2[i] = R_pow(data2[i] / *asy2, *dep); x12[i] = R_pow(x1[i] + x2[i], -1 / *dep - 1); v[i] = 1/data1[i] + 1/data2[i] - x12[i] * (x1[i] + x2[i]); v1[i] = (x1[i] * x12[i] - 1/data1[i]) / data1[i]; v2[i] = (x2[i] * x12[i] - 1/data2[i]) / data2[i]; v12[i] = -(1 + *dep) * x1[i]/data1[i] * x2[i]/data2[i] * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcct(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x; double lambda2[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.001 || *beta < 0.001 || *alpha > 30 || *beta > 30) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); zdn = *alpha * lambda2[0] / (*alpha * lambda2[0] + *beta * lambda2[1]); zdn = -pbeta(zdn, *alpha + 1, *beta, 0, 0) / lambda2[0] - pbeta(zdn, *alpha, *beta + 1, 1, 0) / lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x[i] = *alpha * data1[i] / (*alpha * data1[i] + *beta * data2[i]); v[i] = pbeta(x[i], *alpha + 1, *beta, 0, 0) / data1[i] + pbeta(x[i], *alpha, *beta + 1, 1, 0) / data2[i]; v1[i] = -pbeta(x[i], *alpha + 1, *beta, 0, 0) / R_pow(data1[i], 2); v2[i] = -pbeta(x[i], *alpha, *beta + 1, 1, 0) / R_pow(data2[i], 2); v12[i] = -(*alpha * *beta) * dbeta(x[i], *alpha + 1, *beta, 0) / (data1[i] * R_pow(*alpha * data1[i] + *beta * data2[i], 2)); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvchr(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double lambda2[2], zdn, idep; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.2 || *dep > 10) { *dns = 1e6; return; } idep = 1/ *dep; lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); zdn = -1/lambda2[0] * pnorm(idep + *dep * (log(lambda2[1]) - log(lambda2[0]))/2, 0, 1, 1, 0) - 1/lambda2[1] * pnorm(idep + *dep * (log(lambda2[0]) - log(lambda2[1]))/2, 0, 1, 1, 0); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; idep = 1/ *dep; v[i] = 1/data1[i] * pnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 1, 0) + 1/data2[i] * pnorm(idep + *dep * (log(data1[i]) - log(data2[i]))/2, 0, 1, 1, 0); v1[i] = -1/R_pow(data1[i], 2) * pnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 1, 0); v2[i] = -1/R_pow(data2[i], 2) * pnorm(idep + *dep * (log(data1[i]) - log(data2[i]))/2, 0, 1, 1, 0); v12[i] = - *dep / (2 * data1[i] * data2[i]) / data1[i] * dnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 0); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcamix(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x; double lambda2[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0 || *alpha + 3 * *beta < 0 || *alpha + *beta > 1 || *alpha + 2 * *beta > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda2[0] = 1/lambda2[0]; lambda2[1] = 1/lambda2[1]; zdn = lambda2[0]/(lambda2[0] + lambda2[1]); zdn = -lambda2[0] - lambda2[1] + (*alpha + *beta) * lambda2[0] - *alpha * lambda2[0] * zdn - *beta * lambda2[0] * zdn * zdn; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x[i] = 1 / (data1[i] + data2[i]); v[i] = 1/data1[i] + 1/data2[i] - (*alpha + *beta) / data1[i] + *alpha * data2[i] * x[i] / data1[i] + *beta * data2[i] * data2[i] * x[i] * x[i] / data1[i]; v1[i] = -1 / (data1[i] * data1[i]) + *alpha * x[i] * x[i] + *beta * x[i] * x[i] * x[i] * (data1[i] + 3 * data2[i]); v2[i] = -1 / (data2[i] * data2[i]) + *alpha * x[i] * x[i] + 2 * *beta * x[i] * x[i] * x[i] * data2[i]; v12[i] = -2 * *alpha * x[i] * x[i] * x[i] - 6 * *beta * x[i] * x[i] * x[i] * x[i] * data2[i]; if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } /* Point Process Likelihood Routines */ void nllbvplog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double idep, v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.1 || *dep > 1) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); idep = 1 / *dep; h[i] = log(idep - 1) - (1+idep) * log(w[i] * (1-w[i])) + (*dep - 2) * log(R_pow(w[i],-idep) + R_pow(1-w[i],-idep)); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = R_pow(R_pow(utt[0],-1 / *dep) + R_pow(utt[1],-1 / *dep), *dep); *dns = *dns + v; } void nllbvpneglog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); h[i] = 1 / (1 + R_pow(1 / w[i] - 1, *dep)); h[i] = log(*dep + 1) + log(1 - h[i]) + (1 + 1 / *dep) * log(h[i]) - log(1 - w[i]) - 2 * log(w[i]); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = 1 / utt[0] + 1 / utt[1] - R_pow(R_pow(utt[0], *dep) + R_pow(utt[1], *dep), -1 / *dep); *dns = *dns + v; } void nllbvpct(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.001 || *beta < 0.001 || *alpha > 30 || *beta > 30) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); h[i] = (*alpha + *beta + 1) * log(*alpha * w[i] + *beta * (1-w[i])) + lgammafn(*alpha) + lgammafn(*beta); h[i] = lgammafn(*alpha + *beta + 1) + *alpha * log(*alpha) + *beta * log(*beta) + (*alpha - 1) * log(w[i]) + (*beta - 1) * log(1-w[i]) - h[i]; dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = *alpha * utt[0] /(*alpha * utt[0] + *beta * utt[1]); v = pbeta(v, *alpha + 1, *beta, 0, 0) / utt[0] + pbeta(v, *alpha, *beta + 1, 1, 0) / utt[1]; *dns = *dns + v; } void nllbvpbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *r, *w, *jac, *h; double v, utt[2]; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 0.999 || *beta > 0.999) { *dns = 1e6; return; } delta = eps = R_pow(DOUBLE_EPS, 0.8); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); llim = 0; ilen = 1; lval = (1 - *alpha) * (1 - w[i]); uval = (*beta - 1) * w[i]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 20 || *beta > 20) { *dns = 1e6; return; } delta = eps = R_pow(DOUBLE_EPS, 0.8); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); llim = 0; ilen = 1; uval = (1 + *alpha) * (1 - w[i]); lval = - (1 + *beta) * w[i]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 10) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); idep = 1 / *dep; h[i] = log(*dep / 2) - 2 * log(w[i]) - log(1-w[i]) + dnorm(idep + *dep * (log(1-w[i]) - log(w[i]))/2, 0, 1, 1); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = pnorm(1 / *dep + *dep * log(utt[1]/utt[0]) / 2, 0, 1, 1, 0) / utt[0] + pnorm(1 / *dep + *dep * log(utt[0]/utt[1]) / 2, 0, 1, 1, 0) / utt[1]; *dns = *dns + v; } evd/R/0000755000176200001440000000000012017604711011230 5ustar liggesusersevd/R/uvfit.R0000744000176200001440000007420712017604711012523 0ustar liggesusers "fextreme"<- function(x, start, densfun, distnfun, ..., distn, mlen = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") { if (missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric object") if(any(is.na(x))) stop("`x' must not contain missing values") if (!is.list(start)) stop("`start' must be a named list") call <- match.call() if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") nllh <- function(p, ...) { dvec <- dens(p, ..., log = TRUE) if(any(is.infinite(dvec))) return(1e6) else return(-sum(dvec)) } nm <- names(start) l <- length(nm) f1 <- formals(densfun) f2 <- formals(distnfun) args <- names(f1) mtch <- match(nm, args) if (any(is.na(mtch))) stop("`start' specifies unknown arguments") formals(densfun) <- c(f1[c(1, mtch)], f1[-c(1, mtch)]) formals(distnfun) <- c(f2[c(1, mtch)], f2[-c(1, mtch)]) dens <- function(p, x, densfun, distnfun, ...) dextreme(x, densfun, distnfun, p, ...) if(l > 1) body(dens) <- parse(text = paste("dextreme(x, densfun, distnfun,", paste("p[",1:l,"]", collapse = ", "), ", ...)")) opt <- optim(start, nllh, x = x, hessian = TRUE, ..., densfun = densfun, distnfun = distnfun, mlen = mlen, largest = largest, method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if (var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL structure(list(estimate = opt$par, std.err = std.err, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, call = call, data = x, n = length(x)), class = c("extreme", "evd")) } "forder"<- function(x, start, densfun, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") { if (missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric object") if(any(is.na(x))) stop("`x' must not contain missing values") if (!is.list(start)) stop("`start' must be a named list") call <- match.call() if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") nllh <- function(p, ...) { dvec <- dens(p, ..., log = TRUE) if(any(is.infinite(dvec))) return(1e6) else return(-sum(dvec)) } nm <- names(start) l <- length(nm) f1 <- formals(densfun) f2 <- formals(distnfun) args <- names(f1) mtch <- match(nm, args) if (any(is.na(mtch))) stop("`start' specifies unknown arguments") formals(densfun) <- c(f1[c(1, mtch)], f1[-c(1, mtch)]) formals(distnfun) <- c(f2[c(1, mtch)], f2[-c(1, mtch)]) dens <- function(p, x, densfun, distnfun, ...) dorder(x, densfun, distnfun, p, ...) if(l > 1) body(dens) <- parse(text = paste("dorder(x, densfun, distnfun,", paste("p[",1:l,"]", collapse = ", "), ", ...)")) opt <- optim(start, nllh, x = x, hessian = TRUE, ..., densfun = densfun, distnfun = distnfun, mlen = mlen, j = j, largest = largest, method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if (var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL names(std.err) <- nm structure(list(estimate = opt$par, std.err = std.err, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, call = call, data = x, n = length(x)), class = c("extreme", "evd")) } "fgev"<- function(x, start, ..., nsloc = NULL, prob = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() if(missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric vector") if(is.null(prob)) { ft <- fgev.norm(x = x, start = start, ..., nsloc = nsloc, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } else { if(length(prob) != 1 || !is.numeric(prob) || prob < 0 || prob > 1) stop("`prob' should be a probability in [0,1]") ft <- fgev.quantile(x = x, start = start, ..., nsloc = nsloc, prob = prob, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } structure(c(ft, call = call), class = c("gev", "uvevd", "evd")) } "fgev.norm"<- function(x, start, ..., nsloc = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlgev <- function(loc, scale, shape) { if(scale <= 0) return(1e6) if(!is.null(nsloc)) { ns <- numeric(length(loc.param)) for(i in 1:length(ns)) ns[i] <- get(loc.param[i]) loc <- drop(nslocmat %*% ns) } else loc <- rep(loc, length.out = length(x)) .C("nlgev", x, n, loc, scale, shape, dns = double(1), PACKAGE = "evd")$dns } if(!is.null(nsloc)) { if(is.vector(nsloc)) nsloc <- data.frame(trend = nsloc) if(nrow(nsloc) != length(x)) stop("`nsloc' and data are not compatible") nsloc <- nsloc[!is.na(x), ,drop = FALSE] nslocmat <- cbind(1,as.matrix(nsloc)) } x <- as.double(x[!is.na(x)]) n <- as.integer(length(x)) loc.param <- paste("loc", c("",names(nsloc)), sep="") param <- c(loc.param, "scale", "shape") if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param start$scale <- sqrt(6 * var(x))/pi start$loc <- mean(x) - 0.58 * start$scale start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- c(as.list(numeric(length(loc.param))), formals(nlgev)[2:3]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlgev) <- c(f[m], f[-m]) nllh <- function(p, ...) nlgev(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlgev(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) if(!is.null(nsloc)) { trend <- param[paste("loc", names(nsloc), sep="")] trend <- drop(as.matrix(nsloc) %*% trend) x2 <- x - trend } else x2 <- x list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x, tdata = x2, nsloc = nsloc, n = length(x), prob = NULL, loc = param["loc"]) } "fgev.quantile"<- function(x, start, ..., nsloc = NULL, prob, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlgev <- function(quantile, scale, shape) { if(scale <= 0) return(1e6) quantile <- rep(quantile, length.out = length(x)) if(prob == 0 && shape >= 0) return(1e6) if(prob == 1 && shape <= 0) return(1e6) if(shape == 0) loc <- quantile + scale * log(-log(1-prob)) else loc <- quantile + scale/shape * (1 - (-log(1-prob))^(-shape)) if(!is.null(nsloc)) { ns <- numeric(length(loc.param) - 1) for(i in 1:length(ns)) ns[i] <- get(loc.param[i+1]) loc <- drop(nslocmat %*% ns) + loc } if(any(is.infinite(loc))) return(1e6) .C("nlgev", x, n, loc, scale, shape, dns = double(1), PACKAGE = "evd")$dns } if(is.null(nsloc)) loc.param <- "quantile" else loc.param <- c("quantile", paste("loc", names(nsloc), sep="")) param <- c(loc.param, "scale", "shape") if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param start$scale <- sqrt(6 * var(x, na.rm = TRUE))/pi start.loc <- mean(x, na.rm = TRUE) - 0.58 * start$scale start$quantile <- start.loc - start$scale * log(-log(1-prob)) if(prob == 0) { fpft <- fgev(x = x, ..., nsloc = nsloc, prob = 0.001, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } if(prob == 1) { fpft <- fgev(x = x, ..., nsloc = nsloc, prob = 0.999, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") if(!is.null(nsloc)) { if(is.vector(nsloc)) nsloc <- data.frame(trend = nsloc) if(nrow(nsloc) != length(x)) stop("`nsloc' and data are not compatible") nsloc <- nsloc[!is.na(x), ,drop = FALSE] nslocmat <- as.matrix(nsloc) } x <- as.double(x[!is.na(x)]) n <- as.integer(length(x)) nm <- names(start) l <- length(nm) f <- c(as.list(numeric(length(loc.param))), formals(nlgev)[2:3]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlgev) <- c(f[m], f[-m]) nllh <- function(p, ...) nlgev(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlgev(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm .mat <- diag(1/std.err, nrow = length(std.err)) if(corr) { corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else { std.err <- var.cov <- corr <- NULL } param <- c(opt$par, unlist(fixed.param)) if(!is.null(nsloc)) { trend <- param[paste("loc", names(nsloc), sep="")] trend <- drop(as.matrix(nsloc) %*% trend) x2 <- x - trend } else x2 <- x if(param["shape"] == 0) loc <- param["quantile"] + param["scale"] * log(-log(1-prob)) else loc <- param["quantile"] + param["scale"]/param["shape"] * (1 - (-log(1-prob))^(-param["shape"])) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x, tdata = x2, nsloc = nsloc, n = length(x), prob = prob, loc = loc) } "fpot"<- function(x, threshold, model = c("gpd", "pp"), start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper = NULL, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() model <- match.arg(model) if(missing(x) || length(x) == 0 || mode(x) != "numeric") stop("`x' must be a non-empty numeric vector") if(missing(threshold) || length(threshold) != 1 || mode(threshold) != "numeric") stop("`threshold' must be a numeric value") threshold <- as.double(threshold) if(is.null(mper)) { ft <- fpot.norm(x = x, threshold = threshold, model = model, start = start, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, ..., std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } else { if(model == "pp") stop("`mper' cannot be specified in point process models") ft <- fpot.quantile(x = x, threshold = threshold, start = start, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, ..., mper = mper, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } structure(c(ft, call = call), class = c("pot", "uvevd", "evd")) } "fpot.norm"<- function(x, threshold, model, start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { if(model == "gpd") { nlpot <- function(loc, scale, shape) { .C("nlgpd", exceed, nhigh, threshold, scale, shape, dns = double(1), PACKAGE = "evd")$dns } # Avoids note produced by R CMD check formals(nlpot) <- formals(nlpot)[2:3] } if(model == "pp") { nlpot <- function(loc, scale, shape) { .C("nlpp", exceed, nhigh, loc, scale, shape, threshold, nop, dns = double(1), PACKAGE = "evd")$dns } } nn <- length(x) nop <- as.double(nn/npp) if(cmax) { exceed <- clusters(x, u = threshold, r = r, ulow = ulow, rlow = rlow, cmax = TRUE, keep.names = FALSE) extind <- attributes(exceed)$acs exceed <- as.double(exceed) nhigh <- length(exceed) ; nat <- as.integer(nhigh * extind) extind <- 1/extind } else { extind <- r <- NULL high <- (x > threshold) & !is.na(x) exceed <- as.double(x[high]) nhigh <- nat <- length(exceed) } if(!nhigh) stop("no data above threshold") pat <- nat/nn param <- c("scale", "shape") if(model == "pp") param <- c("loc", param) if(missing(start)) { if(model == "gpd") { start <- list(scale = 0, shape = 0) start$scale <- mean(exceed) - threshold } if(model == "pp") { start <- list(loc = 0, scale = 0, shape = 0) start$scale <- sqrt(6 * var(x))/pi start$loc <- mean(x) + (log(nop) - 0.58) * start$scale } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- formals(nlpot) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlpot) <- c(f[m], f[-m]) nllh <- function(p, ...) nlpot(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) if(model == "gpd") scale <- param["scale"] if(model == "pp") scale <- param["scale"] + param["shape"] * (threshold - param["loc"]) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, threshold = threshold, r = r, ulow = ulow, rlow = rlow, npp = npp, nhigh = nhigh, nat = nat, pat = pat, extind = extind, data = x, exceedances = exceed, mper = NULL, scale = scale) } "fpot.quantile"<- function(x, threshold, start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlpot <- function(rlevel, shape) { if(is.infinite(mper) && shape >= 0) return(1e6) rlevel <- rlevel - threshold if(shape == 0) scale <- rlevel / log(adjmper) else scale <- shape * rlevel / (adjmper^shape - 1) .C("nlgpd", exceed, nhigh, threshold, scale, shape, dns = double(1), PACKAGE = "evd")$dns } nn <- length(x) if(cmax) { exceed <- clusters(x, u = threshold, r = r, ulow = ulow, rlow = rlow, cmax = TRUE, keep.names = FALSE) extind <- attributes(exceed)$acs exceed <- as.double(exceed) nhigh <- length(exceed) ; nat <- as.integer(nhigh * extind) extind <- 1/extind } else { extind <- r <- NULL high <- (x > threshold) & !is.na(x) exceed <- as.double(x[high]) nhigh <- nat <- length(exceed) } if(!nhigh) stop("no data above threshold") pat <- nat/nn adjmper <- mper * npp * nhigh/nn if(adjmper <= 1) stop("`mper' is too small") param <- c("rlevel", "shape") if(missing(start)) { start <- list(rlevel = 0, shape = 0) stscale <- mean(exceed) - threshold start$rlevel <- threshold + stscale*log(adjmper) if(is.infinite(mper)) { stmp <- 100/(npp * nhigh/nn) fpft <- fpot(x = x, threshold = threshold, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, mper = stmp, ..., std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- formals(nlpot) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlpot) <- c(f[m], f[-m]) nllh <- function(p, ...) nlpot(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) rlevel <- param["rlevel"] - threshold if(param["shape"] == 0) scale <- rlevel / log(adjmper) else scale <- param["shape"] * rlevel / (adjmper^param["shape"] - 1) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, threshold = threshold, r = r, ulow = ulow, rlow = rlow, npp = npp, nhigh = nhigh, nat = nat, pat = pat, extind = extind, data = x, exceedances = exceed, mper = mper, scale = scale) } ### Method Functions ### "print.evd" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", x$deviance, "\n") cat("\nEstimates\n") print.default(format(x$estimate, digits = digits), print.gap = 2, quote = FALSE) if(!is.null(x$std.err)) { cat("\nStandard Errors\n") print.default(format(x$std.err, digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } "confint.evd" <- function (object, parm, level = 0.95, ...) { cf <- fitted(object) pnames <- names(cf) if (missing(parm)) parm <- seq(along = pnames) else if (is.character(parm)) parm <- match(parm, pnames, nomatch = 0) if(any(!parm)) stop("`parm' contains unknown parameters") a <- (1 - level)/2 a <- c(a, 1 - a) pct <- paste(round(100 * a, 1), "%") ci <- array(NA, dim = c(length(parm), 2), dimnames = list(pnames[parm], pct)) ses <- std.errors(object)[parm] ci[] <- cf[parm] + ses %o% qnorm(a) ci } "anova.evd" <- function (object, object2, ..., half = FALSE) { if(missing(object)) stop("model one must be specified") if(missing(object2)) stop("model two must be specified") dots <- as.list(substitute(list(...)))[-1] dots <- sapply(dots,function(x) deparse(x)) if(!length(dots)) dots <- NULL model1 <- deparse(substitute(object)) model2 <- deparse(substitute(object2)) models <- c(model1, model2, dots) narg <- length(models) for(i in 1:narg) { if(!inherits(get(models[i], envir = parent.frame()), "evd")) stop("Use only with 'evd' objects") } for(i in 1:(narg-1)) { a <- get(models[i], envir = parent.frame()) b <- get(models[i+1], envir = parent.frame()) if((!all(names(fitted(b)) %in% names(fitted(a)))) && (!identical(c("bilog","log"), c(a$model, b$model))) && (!identical(c("negbilog","neglog"), c(a$model, b$model)))) { warning("models may not be nested") } } dv <- npar <- numeric(narg) for(i in 1:narg) { evmod <- get(models[i], envir = parent.frame()) dv[i] <- evmod$deviance npar[i] <- length(evmod$estimate) } df <- -diff(npar) if(any(df <= 0)) stop("models are not nested") dvdiff <- diff(dv) if(any(dvdiff < 0)) stop("negative deviance difference") if(half) dvdiff <- 2*dvdiff pval <- pchisq(dvdiff, df = df, lower.tail = FALSE) table <- data.frame(npar, dv, c(NA,df), c(NA,dvdiff), c(NA,pval)) dimnames(table) <- list(models, c("M.Df", "Deviance", "Df", "Chisq", "Pr(>chisq)")) structure(table, heading = c("Analysis of Deviance Table\n"), class = c("anova", "data.frame")) } "fitted.evd" <- function (object, ...) object$estimate "std.errors" <- function (object, ...) UseMethod("std.errors") "std.errors.evd" <- function (object, ...) object$std.err "vcov.evd" <- function (object, ...) object$var.cov "logLik.evd" <- function(object, ...) { val <- -deviance(object)/2 attr(val, "df") <- length(fitted(object)) class(val) <- "logLik" val } "print.pot" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", x$deviance, "\n") cat("\nThreshold:", round(x$threshold, digits), "\n") cat("Number Above:", x$nat, "\n") cat("Proportion Above:", round(x$pat, digits), "\n") if(!is.null(x$extind)) { cat("\nClustering Interval:", x$r, "\n") if(is.finite(x$ulow)) { cat("Lower Threshold:", round(x$ulow, digits), "\n") cat("Lower Clustering Interval:", x$rlow, "\n") } cat("Number of Clusters:", x$nhigh, "\n") cat("Extremal Index:", round(x$extind, digits), "\n") } cat("\nEstimates\n") print.default(format(x$estimate, digits = digits), print.gap = 2, quote = FALSE) if(!is.null(x$std.err)) { cat("\nStandard Errors\n") print.default(format(x$std.err, digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } evd/R/uvdist.R0000744000176200001440000003002012017604711012665 0ustar liggesusers "rfrechet"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc + scale * rexp(n)^(-1/shape) } "rgumbel"<- function(n, loc = 0, scale = 1) { rgev(n, loc = loc, scale = scale, shape = 0) } "rrweibull"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc - scale * rexp(n)^(1/shape) } "rnweibull"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc - scale * rexp(n)^(1/shape) } "rgev"<- function(n, loc = 0, scale = 1, shape = 0) { if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(shape == 0) return(loc - scale * log(rexp(n))) else return(loc + scale * (rexp(n)^(-shape) - 1)/shape) } "rgpd"<- function(n, loc = 0, scale = 1, shape = 0) { if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(shape == 0) return(loc + scale*rexp(n)) else return(loc + scale * (runif(n)^(-shape) - 1) / shape) } "rextreme"<- function(n, quantfun, ..., distn, mlen = 1, largest = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") if(largest) quantfun(rbeta(n, mlen, 1), ...) else quantfun(rbeta(n, 1, mlen), ...) } "rorder"<- function(n, quantfun, ..., distn, mlen = 1, j = 1, largest = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") if(!largest) j <- mlen+1-j if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") quantfun(rbeta(n, mlen+1-j, j), ...) } "qfrechet"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc + scale * (-log(p))^(-1/shape) } "qgumbel"<- function(p, loc = 0, scale = 1, lower.tail = TRUE) { qgev(p, loc = loc, scale = scale, shape = 0, lower.tail = lower.tail) } "qrweibull"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc - scale * (-log(p))^(1/shape) } "qnweibull"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc - scale * (-log(p))^(1/shape) } "qgev"<- function(p, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(!lower.tail) p <- 1 - p if(shape == 0) return(loc - scale * log(-log(p))) else return(loc + scale * ((-log(p))^(-shape) - 1)/shape) } "qgpd"<- function(p, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(lower.tail) p <- 1 - p if(shape == 0) return(loc - scale*log(p)) else return(loc + scale * (p^(-shape) - 1) / shape) } "qextreme"<- function(p, quantfun, ..., distn, mlen = 1, largest = TRUE, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") if(!lower.tail) p <- 1 - p if(largest) quantfun(p^(1/mlen), ...) else quantfun(1-(1-p)^(1/mlen), ...) } "pfrechet"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmax((q - loc)/scale,0) p <- exp(-q^(-shape)) if(!lower.tail) p <- 1 - p p } "pgumbel"<- function(q, loc = 0, scale = 1, lower.tail = TRUE) { pgev(q, loc = loc, scale = scale, shape = 0, lower.tail = lower.tail) } "prweibull"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmin((q - loc)/scale,0) p <- exp(-(-q)^shape) if(!lower.tail) p <- 1 - p p } "pnweibull"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmin((q - loc)/scale,0) p <- exp(-(-q)^shape) if(!lower.tail) p <- 1 - p p } "pgev"<- function(q, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") q <- (q - loc)/scale if(shape == 0) p <- exp(-exp(-q)) else p <- exp( - pmax(1 + shape * q, 0)^(-1/shape)) if(!lower.tail) p <- 1 - p p } "pgpd" <- function(q, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") q <- pmax(q - loc, 0)/scale if(shape == 0) p <- 1 - exp(-q) else { p <- pmax(1 + shape * q, 0) p <- 1 - p^(-1/shape) } if(!lower.tail) p <- 1 - p p } "pextreme"<- function(q, distnfun, ..., distn, mlen = 1, largest = TRUE, lower.tail = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") distn <- distnfun(q, ...) if(!largest) distn <- 1-distn p <- distn^mlen if(largest != lower.tail) p <- 1 - p p } "porder"<- function(q, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, lower.tail = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") lachooseb <- function(a,b) lgamma(a+1) - lgamma(b+1) - lgamma(a-b+1) if(largest) svec <- (mlen+1-j):mlen else svec <- 0:(j-1) if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") distn <- distnfun(q, ...) store <- matrix(0,nrow=length(q),ncol=j) for(k in 1:j) store[,k] <- exp(lachooseb(mlen,svec[k]) + svec[k]*log(distn) + (mlen-svec[k])*log(1-distn)) p <- apply(store,1,sum) if(largest != lower.tail) p <- 1 - p p } "dfrechet"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xpos <- x[x>0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x>0 | is.na(x)] shape <- rep(shape, length.out = nn)[x>0 | is.na(x)] d <- numeric(nn) d[x>0 | is.na(x)] <- log(shape/scale) - (1+shape) * log(xpos) - xpos^(-shape) d[x<=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dgumbel"<- function(x, loc = 0, scale = 1, log = FALSE) { dgev(x, loc = loc, scale = scale, shape = 0, log = log) } "drweibull"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xneg <- x[x<0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x<0 | is.na(x)] shape <- rep(shape, length.out = nn)[x<0 | is.na(x)] d <- numeric(nn) d[x<0 | is.na(x)] <- log(shape/scale) + (shape-1) * log(-xneg) - (-xneg)^shape d[x>=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dnweibull"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xneg <- x[x<0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x<0 | is.na(x)] shape <- rep(shape, length.out = nn)[x<0 | is.na(x)] d <- numeric(nn) d[x<0 | is.na(x)] <- log(shape/scale) + (shape-1) * log(-xneg) - (-xneg)^shape d[x>=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dgev"<- function(x, loc = 0, scale = 1, shape = 0, log = FALSE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") x <- (x - loc)/scale if(shape == 0) d <- log(1/scale) - x - exp(-x) else { nn <- length(x) xx <- 1 + shape*x xxpos <- xx[xx>0 | is.na(xx)] scale <- rep(scale, length.out = nn)[xx>0 | is.na(xx)] d <- numeric(nn) d[xx>0 | is.na(xx)] <- log(1/scale) - xxpos^(-1/shape) - (1/shape + 1)*log(xxpos) d[xx<=0 & !is.na(xx)] <- -Inf } if(!log) d <- exp(d) d } "dgpd"<- function(x, loc = 0, scale = 1, shape = 0, log = FALSE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") d <- (x - loc)/scale nn <- length(d) scale <- rep(scale, length.out = nn) index <- (d > 0 & ((1 + shape * d) > 0)) | is.na(d) if(shape == 0) { d[index] <- log(1/scale[index]) - d[index] d[!index] <- -Inf } else { d[index] <- log(1/scale[index]) - (1/shape + 1) * log(1 + shape * d[index]) d[!index] <- -Inf } if(!log) d <- exp(d) d } "dextreme"<- function(x, densfun, distnfun, ..., distn, mlen = 1, largest = TRUE, log = FALSE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") dens <- densfun(x, ..., log = TRUE) distn <- distnfun(x, ...)[!is.infinite(dens)] if(!largest) distn <- 1 - distn distn <- (mlen-1) * log(distn) d <- numeric(length(x)) d[!is.infinite(dens)] <- log(mlen) + dens[!is.infinite(dens)] + distn d[is.infinite(dens)] <- -Inf if(!log) d <- exp(d) d } "dorder"<- function(x, densfun, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, log = FALSE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") if(!largest) j <- mlen + 1 - j if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") dens <- densfun(x, ..., log = TRUE) distn <- distnfun(x, ...)[!is.infinite(dens)] distn <- (mlen-j) * log(distn) + (j-1) * log(1-distn) comb <- lgamma(mlen+1) - lgamma(j) - lgamma(mlen-j+1) d <- numeric(length(x)) d[!is.infinite(dens)] <- comb + dens[!is.infinite(dens)] + distn d[is.infinite(dens)] <- -Inf if(!log) d <- exp(d) d } evd/R/stocproc.R0000744000176200001440000002074112017604711013214 0ustar liggesusers "evmc" <- function(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), margins = c("uniform","rweibull","frechet","gumbel")) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, c("log", "hr", "neglog")) m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") nn <- as.integer(1) if(!(model %in% m1)) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if((model %in% c("log", "alog")) && dep > 1) stop("`dep' must be in the interval (0,1]") dep <- as.double(dep) } if(!(model %in% m2)) { if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(model == "alog" && (dep == 1 || any(asy == 0))) { asy <- c(0,0) dep <- 1 } asy <- as.double(asy[c(2,1)]) } if(!(model %in% m3)) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(model != "amix" && (alpha <= 0 || beta <= 0)) stop("`alpha' and `beta' must be positive") if(model == "bilog" && any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(model == "amix") { if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") alpha <- as.double(alpha + 3*beta) beta <- as.double(-beta) } else { alpha <- as.double(beta) beta <- as.double(alpha) } } evmc <- runif(n) for(i in 2:n) { evmc[c(i,i-1)] <- switch(model, log = .C("rbvlog", nn, dep, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, alog = .C("rbvalog", nn, dep, asy, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, hr = .C("rbvhr", nn, dep, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, neglog = .C("rbvneglog", nn, dep, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, aneglog = .C("rbvaneglog", nn, dep, asy, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, bilog = .C("rbvbilog", nn, alpha, beta, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, negbilog = .C("rbvnegbilog", nn, alpha, beta, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, ct = .C("rbvct", nn, alpha, beta, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim, amix = .C("rbvamix", nn, alpha, beta, sim = evmc[c(i,i-1)], PACKAGE = "evd")$sim) } switch(match.arg(margins), frechet = -1/log(evmc), uniform = evmc, rweibull = log(evmc), gumbel = -log(-log(evmc))) } "marma" <- function(n, p = 0, q = 0, psi, theta, init = rep(0, p), n.start = p, rand.gen = rfrechet, ...) { if(missing(psi)) psi <- numeric(0) if(missing(theta)) theta <- numeric(0) if(length(psi) != p || !is.numeric(psi) || any(psi < 0)) stop("`par' must be a non-negative vector of length `p'") if(length(theta) != q || !is.numeric(theta) || any(theta < 0)) stop("`theta' must be a non-negative vector of length `q'") if(length(init) != p || !is.numeric(init) || any(init < 0)) stop("`init' must be a non-negative vector of length `p'") marma <- c(init, numeric(n + n.start - p)) theta <- c(1, theta) innov <- rand.gen(n.start + n + q, ...) for(i in 1:(n + n.start - p)) marma[i+p] <- max(c(psi * marma[(i+p-1):i], theta * innov[(i+q):i])) if(n.start) marma <- marma[-(1:n.start)] marma } "mma" <- function(n, q = 1, theta, rand.gen = rfrechet, ...) { marma(n = n, q = q, theta = theta, rand.gen = rand.gen, ...) } "mar" <- function(n, p = 1, psi, init = rep(0, p), n.start = p, rand.gen = rfrechet, ...) { marma(n = n, p = p, psi = psi, init = init, n.start = n.start, rand.gen = rand.gen, ...) } "clusters"<- function(data, u, r = 1, ulow = -Inf, rlow = 1, cmax = FALSE, keep.names = TRUE, plot = FALSE, xdata = seq(along = data), lvals = TRUE, lty = 1, lwd = 1, pch = par("pch"), col = if(n > 250) NULL else "grey", xlab = "Index", ylab = "Data", ...) { n <- length(data) if(length(u) != 1) u <- rep(u, length.out = n) if(length(ulow) != 1) ulow <- rep(ulow, length.out = n) if(any(ulow > u)) stop("`u' cannot be less than `ulow'") if(is.null(names(data)) && keep.names) names(data) <- 1:n if(!keep.names) names(data) <- NULL high <- as.double((data > u) & !is.na(data)) high2 <- as.double((data > ulow) | is.na(data)) clstrs <- .C("clusters", high, high2, n, as.integer(r), as.integer(rlow), clstrs = double(3*n), PACKAGE = "evd")$clstrs clstrs <- matrix(clstrs, n, 3) start <- clstrs[,2] ; end <- clstrs[,3] splvec <- clstrs[,1] start <- as.logical(start) end <- as.logical(end) clstrs <- split(data, splvec) names(clstrs) <- paste("cluster", names(clstrs), sep = "") if(any(!splvec)) clstrs <- clstrs[-1] nclust <- length(clstrs) acs <- sum(high)/nclust if(plot) { if(length(xdata) != length(data)) stop("`xdata' and `data' have different lengths") if(any(is.na(xdata))) stop("`xdata' cannot contain missing values") if(any(duplicated(xdata))) stop("`xdata' cannot contain duplicated values") eps <- min(diff(xdata))/2 start <- xdata[start] - eps end <- xdata[end] + eps plot(xdata, data, xlab = xlab, ylab = ylab, type = "n", ...) if(!is.null(col) && nclust > 0.5) { for(i in 1:nclust) { xvl <- c(start[i], end[i], end[i], start[i]) polygon(xvl, rep(par("usr")[3:4], each = 2), col = col) } } if(length(u) == 1) abline(h = u, lty = lty, lwd = lwd) else lines(xdata, u, lty = lty, lwd = lwd) if(lvals) { if(length(ulow) == 1) abline(h = ulow, lty = lty, lwd = lwd) else lines(xdata, ulow, lty = lty, lwd = lwd) } else { high <- as.logical(high) xdata <- xdata[high] data <- data[high] } points(xdata, data, pch = pch) } if(cmax) { if(keep.names) nmcl <- unlist(lapply(clstrs, function(x) names(x)[which.max(x)])) clstrs <- as.numeric(unlist(lapply(clstrs, max, na.rm = TRUE))) if(keep.names) names(clstrs) <- nmcl } attributes(clstrs)$acs <- acs if(plot) return(invisible(clstrs)) clstrs } "exi"<- function (data, u, r = 1, ulow = -Inf, rlow = 1) { n <- length(data) if (length(u) != 1) u <- rep(u, length.out = n) if (length(ulow) != 1) ulow <- rep(ulow, length.out = n) if (any(ulow > u)) stop("`u' cannot be less than `ulow'") if(r > 0.5) { clstrs <- clusters(data, u = u, r = r, ulow = ulow, rlow = rlow, keep.names = FALSE) exindex <- 1/attributes(clstrs)$acs } else { extms <- which(data > u) nn <- length(extms) if(nn == 0) return(NaN) if(nn == 1) return(1) iextms <- extms[-1] - extms[-nn] if(max(iextms) > 2.5) { den <- log(nn - 1) + log(sum((iextms - 1) * (iextms - 2))) exindex <- log(2) + 2*log(sum(iextms - 1)) - den exindex <- min(1, exp(exindex)) } else { den <- log(nn - 1) + log(sum(iextms^2)) exindex <- log(2) + 2*log(sum(iextms)) - den exindex <- min(1, exp(exindex)) } } exindex } exiplot <- function (data, tlim, r = 1, ulow = -Inf, rlow = 1, add = FALSE, nt = 100, lty = 1, xlab = "Threshold", ylab = "Ext. Index", ylim = c(0,1), ...) { nn <- length(data) if (all(data <= tlim[2])) stop("upper limit for threshold is too high") u <- seq(tlim[1], tlim[2], length = nt) x <- numeric(nt) for (i in 1:nt) { x[i] <- exi(data, u = u[i], r = r, ulow = ulow, rlow = rlow) } if(add) { lines(u, x, lty = lty, ...) } else { plot(u, x, type = "l", lty = lty, xlab = xlab, ylab = ylab, ylim = ylim, ...) } invisible(list(x = u, y = x)) } evd/R/profile.R0000744000176200001440000003201612017604711013016 0ustar liggesusers "profile.evd" <- function(fitted, which = names(fitted$estimate), conf = 0.999, mesh = fitted$std.err[which]/4, xmin = rep(-Inf, length(which)), xmax = rep(Inf, length(which)), convergence = FALSE, method = "BFGS", control = list(maxit = 500), ...) { if(!inherits(fitted, "evd")) stop("Use only with `evd' objects") if(inherits(fitted, "extreme")) stop("profiles not implemented for this model") if(length(xmin) != length(which)) stop("`xmin' and `which' must have the same length") if(length(xmax) != length(which)) stop("`xmax' and `which' must have the same length") if(length(fitted$estimate) < 2) stop("cannot profile one dimensional likelihood") if(!is.character(which)) stop("`which' must be a character vector") if(!all(which %in% names(fitted$estimate))) stop("`which' contains unrecognized or unestimated parameters") if(is.null(fitted$std.err) && missing(mesh)) stop("fitted model must contain standard errors") prof.list <- as.list(numeric(length(which))) names(xmin) <- names(xmax) <- names(prof.list) <- which if(is.null(names(mesh))) names(mesh) <- which mles <- fitted$estimate[which] for(j in which) { print(paste("profiling",j)) prof1 <- prof2 <- matrix(nrow = 0, ncol = length(fitted$estimate) + 1) npmles <- fitted$estimate[!names(fitted$estimate) %in% j] start <- as.list(npmles) call.args <- c(list(fitted$data, start, 0), as.list(fitted$fixed), list(FALSE, FALSE, method, FALSE, control)) names(call.args) <- c("x", "start", j, names(fitted$fixed), "std.err", "corr", "method", "warn.inf", "control") dimnames(prof1) <- dimnames(prof2) <- list(NULL, c(j, "deviance", names(start))) call.fn <- paste("f", class(fitted)[1], sep="") if(inherits(fitted, "gev")) { call.args$nsloc <- fitted$nsloc call.args$prob <- fitted$prob } if(inherits(fitted, "pot")) { call.args$threshold <- fitted$threshold call.args$npp <- fitted$npp call.args$period <- fitted$period call.args$cmax <- fitted$cmax call.args$r <- fitted$r call.args$ulow <- fitted$ulow call.args$rlow <- fitted$rlow call.args$mper <- fitted$mper } if(inherits(fitted, "bvevd")) { call.args$model <- fitted$model call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 call.args$sym <- fitted$sym call.args$cloc <- fitted$cmar[1] call.args$cscale <- fitted$cmar[2] call.args$cshape <- fitted$cmar[3] } if(inherits(fitted, "bvpot")) { call.args$threshold <- fitted$threshold call.args$likelihood <- fitted$likelihood call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cscale <- fitted$cmar[1] call.args$cshape <- fitted$cmar[2] } lcnt <- TRUE; ppar <- mles[j] while(lcnt) { ppar <- as.vector(ppar + mesh[j]) if(ppar >= xmax[j]) ppar <- as.vector(xmax[j]) call.args[[j]] <- ppar fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) call.args[["start"]] <- as.list(fit.mod$estimate) rop <- c(ppar, fit.mod$deviance, fit.mod$estimate) prof1 <- rbind(prof1, rop) ddf <- fit.mod$deviance - fitted$deviance lcnt <- (ddf <= qchisq(conf, 1)) && (ppar != xmax[j]) } call.args[["start"]] <- as.list(npmles) lcnt <- TRUE; ppar <- mles[j] while(lcnt) { ppar <- as.vector(ppar - mesh[j]) if(ppar <= xmin[j]) ppar <- as.vector(xmin[j]) call.args[[j]] <- ppar fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) call.args[["start"]] <- as.list(fit.mod$estimate) rop <- c(ppar, fit.mod$deviance, fit.mod$estimate) prof2 <- rbind(prof2, rop) ddf <- fit.mod$deviance - fitted$deviance lcnt <- (ddf <= qchisq(conf, 1)) && (ppar != xmin[j]) } rop <- c(mles[j], fitted$deviance, npmles) prof2 <- prof2[nrow(prof2):1, ,drop = FALSE] prof <- rbind(prof2, rop, prof1) rownames(prof) <- NULL rdev <- qchisq(conf, 1) + fitted$deviance if(prof[1, "deviance"] == 2e6) { prof <- prof[-1, ,drop = FALSE] if(prof[1,"deviance"] <= rdev) warning(paste("If", j, "is to satisfy `conf',", "`mesh' must be smaller")) } if(prof[nrow(prof), "deviance"] == 2e6) { prof <- prof[-nrow(prof), ,drop = FALSE] if(prof[nrow(prof),"deviance"] <= rdev) warning(paste("If", j, "is to satisfy `conf',", "`mesh' must be smaller")) } prof.list[[j]] <- prof } structure(prof.list, deviance = fitted$deviance, xmin = xmin, xmax = xmax, class = "profile.evd") } profile2d <- function (fitted, ...) { UseMethod("profile2d") } "profile2d.evd" <- function(fitted, prof, which, pts = 20, convergence = FALSE, method = "Nelder-Mead", control = list(maxit = 5000), ...) { if(!inherits(fitted, "evd")) stop("Use only with `evd' objects") if(inherits(fitted, "extreme")) stop("profiles not implemented for this model") if (!inherits(prof, "profile.evd")) stop("`prof' must be a `profile.evd' object") if(length(fitted$estimate) < 3) stop("Cannot profile two dimensional likelihood") if(missing(which) || !is.character(which) || length(which) != 2) stop("`which' must be a character vector of length two") if(!all(which %in% names(fitted$estimate))) stop("`which' contains unrecognized or unestimated parameters") if(!all(which %in% names(prof))) stop("`which' contains unprofiled parameters") if(is.null(fitted$std.err)) stop("fitted model must contain standard errors") prof.list <- as.list(numeric(3)) names(prof.list) <- c("trace", which) limits1 <- range(prof[[which[1]]][,1]) limits2 <- range(prof[[which[2]]][,1]) mles <- fitted$estimate[which] prof <- matrix(NA, nrow = pts^2, ncol = length(fitted$estimate) + 1) parvec1 <- seq(limits1[1], limits1[2], length = pts) prof.list[[which[1]]] <- parvec1 parvec2 <- seq(limits2[1], limits2[2], length = pts) prof.list[[which[2]]] <- parvec2 pars <- expand.grid(parvec1, parvec2) start <- as.list(fitted$estimate[!names(fitted$estimate) %in% which]) # if method unspecified supress optim 1d warnings if(missing(method) && length(start) == 1) oldopt <- options(warn = -1) call.args <- c(list(fitted$data, start, 0, 0), as.list(fitted$fixed), list(FALSE, FALSE, method, FALSE, control)) names(call.args) <- c("x", "start", which[1], which[2], names(fitted$fixed), "std.err", "corr", "method", "warn.inf", "control") dimnames(prof) <- list(NULL, c(which, "deviance", names(start))) call.fn <- paste("f", class(fitted)[1], sep="") if(inherits(fitted, "gev")) { call.args$nsloc <- fitted$nsloc call.args$prob <- fitted$prob } #if(inherits(fitted, "pot")) { # call.args$threshold <- fitted$threshold # call.args$npp <- fitted$npp # call.args$period <- fitted$period # call.args$cmax <- fitted$cmax # call.args$r <- fitted$r # call.args$ulow <- fitted$ulow # call.args$rlow <- fitted$rlow # call.args$mper <- fitted$mper #} if(inherits(fitted, "bvevd")) { call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cloc <- fitted$cmar[1] call.args$cscale <- fitted$cmar[2] call.args$cshape <- fitted$cmar[3] } if(inherits(fitted, "bvpot")) { call.args$threshold <- fitted$threshold call.args$likelihood <- fitted$likelihood call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cscale <- fitted$cmar[1] call.args$cshape <- fitted$cmar[2] } for(i in 1:pts^2) { call.args[[which[1]]] <- pars[i,1] call.args[[which[2]]] <- pars[i,2] fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) prof[i,1] <- pars[i,1] prof[i,2] <- pars[i,2] prof[i,3] <- fit.mod$deviance prof[i,-(1:3)] <- fit.mod$estimate } prof.list[["trace"]] <- prof if(missing(method) && length(start) == 1) oldopt <- options(oldopt) if(any(prof[,"deviance"] == 2e6)) warning("non-convergence present in profile2d object") structure(prof.list, deviance = fitted$deviance, class = "profile2d.evd") } "plot.profile.evd" <- function(x, which = names(x), main = NULL, ask = nb.fig < length(which) && dev.interactive(), ci = 0.95, clty = 2, ...) { if (!inherits(x, "profile.evd")) stop("Use only with `profile.evd' objects") if(!is.character(which)) stop("`which' must be a character vector") if(!all(which %in% names(x))) stop("`which' contains unprofiled parameters") nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(is.null(main)) { fls <- toupper(substr(which, 1, 1)) ols <- substr(which, 2, nchar(which)) cwhich <- paste(fls, ols, sep = "") main <- paste("Profile Log-likelihood of", cwhich) } for(i in which) { plot(spline(x[[i]][,1], -x[[i]][,2]/2, n = 75), type = "l", xlab = i, ylab = "profile log-likelihood", main = main[match(i,which)], ...) cdist <- -(attributes(x)$deviance + qchisq(ci, df = 1))/2 abline(h = cdist, lty = clty) } invisible(x) } "confint.profile.evd" <- function(object, parm, level = 0.95, ...) { if(missing(parm)) parm <- names(object) if(!all(parm %in% names(object))) stop("`parm' contains unprofiled parameters") rdev <- attributes(object)$deviance + qchisq(level, df = 1) pct <- c("lower", "upper") ci <- array(NA, dim = c(length(parm), 2), dimnames = list(parm, pct)) # Assumes profile trace is unimodal for(i in parm) { x <- object[[i]] n <- nrow(x) th.l <- (x[1, 1] == attributes(object)$xmin[i]) th.u <- (x[n, 1] == attributes(object)$xmax[i]) halves <- c(diff(x[,"deviance"]) < 0, FALSE) if(x[1,"deviance"] <= rdev && !th.l) { warning(paste("cannot calculate lower confidence limit for", i)) ci[i,1] <- NA } if(x[1,"deviance"] <= rdev && th.l) ci[i,1] <- x[1, 1] if(x[1,"deviance"] > rdev) ci[i,1] <- approx(x[halves,2], x[halves,1], xout = rdev)$y if(x[n,"deviance"] <= rdev && !th.u) { warning(paste("cannot calculate upper confidence limit for", i)) ci[i,2] <- NA } if(x[n,"deviance"] <= rdev && th.u) ci[i,2] <- x[n, 1] if(x[n,"deviance"] > rdev) ci[i,2] <- approx(x[!halves,2], x[!halves,1], xout = rdev)$y } ci } "plot.profile2d.evd" <- function(x, main = NULL, ci = c(0.5,0.8,0.9,0.95,0.975, 0.99, 0.995), col = heat.colors(8), intpts = 75, xaxs = "r", yaxs = "r", ...) { if (!inherits(x, "profile2d.evd")) stop("Use only with `profile2d.evd' objects") which <- names(x)[2:3] if(is.null(main)) { fls <- toupper(substr(which, 1, 1)) ols <- substr(which, 2, nchar(which)) cwhich <- paste(fls, ols, sep = "") main <- paste("Profile Log-likelihood of", cwhich[1], "and", cwhich[2]) } br.pts <- attributes(x)$deviance + qchisq(c(0,ci), df = 2) prof <- x$trace[,"deviance"] if(any(prof == 2e6)) warning("non-convergence present in profile2d object") lbak <- TRUE if (is.na(match("package:akima", search()))) { oldop <- options(warn = -1) lbak <- library("akima", character.only = TRUE, logical.return = TRUE) options(oldop) if(lbak) cat("Loaded package akima", "\n") } prof <- -prof/2 br.pts <- (-br.pts/2)[length(br.pts):1] col <- col[length(col):1] if(!lbak) { image(x[[which[1]]], x[[which[2]]], matrix(prof, nrow = length(x[[which[1]]])), col = col, breaks = c(-1e6+1, br.pts), main = main, xlab = which[1], ylab = which[2], xaxs = xaxs, yaxs = yaxs, ...) } else { lim1 <- range(x[[which[1]]]) lim2 <- range(x[[which[2]]]) prof.interp <- interp(x$trace[,1], x$trace[,2], prof, xo = seq(lim1[1], lim1[2], length = intpts), yo = seq(lim2[1], lim2[2], length = intpts)) image(prof.interp, col = col, breaks = c(min(prof), br.pts), main = main, xlab = which[1], ylab = which[2], xaxs = xaxs, yaxs = yaxs, ...) } invisible(x) } evd/R/pmdiag.R0000744000176200001440000002671012017604711012623 0ustar liggesusers "mrlplot"<- function(data, tlim, pscale = FALSE, nt = max(100, length(data)), lty = c(2,1,2), col = 1, conf = 0.95, main = "Mean Residual Life Plot", xlab = "Threshold", ylab = "Mean Excess", ...) { data <- sort(data[!is.na(data)]) nn <- length(data) if(nn <= 5) stop("`data' has too few non-missing values") if(missing(tlim)) { tlim <- c(data[1], data[nn - 4]) tlim <- tlim - .Machine$double.eps^0.5 } if(all(data <= tlim[2])) stop("upper limit for threshold is too high") u <- seq(tlim[1], tlim[2], length = nt) if(pscale) { tlim[1] <- mean(data <= tlim[1], na.rm = TRUE) tlim[2] <- mean(data <= tlim[2], na.rm = TRUE) pvec <- seq(tlim[1], tlim[2], length = nt) u <- quantile(data, probs = pvec, na.rm = TRUE) } x <- matrix(NA, nrow = nt, ncol = 3, dimnames = list(NULL, c("lower", "mrl", "upper"))) for(i in 1:nt) { data <- data[data > u[i]] x[i,2] <- mean(data - u[i]) sdev <- sqrt(var(data)) sdev <- (qnorm((1 + conf)/2) * sdev)/sqrt(length(data)) x[i,1] <- x[i,2] - sdev x[i,3] <- x[i,2] + sdev } if(pscale) { u <- pvec if(missing(xlab)) xlab <- "Threshold probability" } matplot(u, x, type = "l", lty = lty, col = col, main = main, xlab = xlab, ylab = ylab, ...) invisible(list(x = u, y = x)) } "tcplot"<- function(data, tlim, model = c("gpd", "pp"), pscale = FALSE, cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, nt = 25, which = 1:npar, conf = 0.95, lty = 1, lwd = 1, type = "b", cilty = 1, vci = TRUE, xlab, xlim, ylabs, ylims, ask = nb.fig < length(which) && dev.interactive(), ...) { model <- match.arg(model) u <- seq(tlim[1], tlim[2], length = nt) if(pscale) { tlim[1] <- mean(data <= tlim[1], na.rm = TRUE) tlim[2] <- mean(data <= tlim[2], na.rm = TRUE) pvec <- seq(tlim[1], tlim[2], length = nt) u <- quantile(data, probs = pvec, na.rm = TRUE) } locs <- scls <- shps <- matrix(NA, nrow = nt, ncol = 3) dimnames(locs) <- list(round(u,2), c("lower", "loc", "upper")) dimnames(shps) <- list(round(u,2), c("lower", "shape", "upper")) if(model == "gpd") { pname <- "mscale" npar <- 2 } if(model == "pp") { pname <- "scale" npar <- 3 } dimnames(scls) <- list(round(u,2), c("lower", pname, "upper")) z <- fpot(data, u[1], model = model, cmax = cmax, r = r, ulow = ulow, rlow = rlow, corr = TRUE, ...) stvals <- as.list(round(fitted(z), 3)) for(i in 1:nt) { z <- fpot(data, u[i], model = model, start = stvals, cmax = cmax, r = r, ulow = ulow, rlow = rlow, corr = TRUE, ...) stvals <- as.list(fitted(z)) mles <- fitted(z) stderrs <- std.errors(z) cnst <- qnorm((1 + conf)/2) shp <- mles["shape"] scl <- mles["scale"] shpse <- stderrs["shape"] sclse <- stderrs["scale"] if(model == "pp") { loc <- mles["loc"] locse <- stderrs["loc"] locs[i,] <- c(loc - cnst*locse, loc, loc + cnst*locse) } if(model == "gpd") { scl <- scl - shp*u[i] covar <- z$corr[1,2] * prod(stderrs) sclse <- sqrt(sclse^2 - 2*u[i]*covar + (u[i]*shpse)^2) } scls[i,] <- c(scl - cnst*sclse, scl, scl + cnst*sclse) shps[i,] <- c(shp - cnst*shpse, shp, shp + cnst*shpse) } show <- rep(FALSE, npar) show[which] <- TRUE nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(pscale) u <- pvec if(missing(xlim)) xlim <- tlim if(missing(xlab)) { xlab <- "Threshold" if(pscale) xlab <- "Threshold probability" } if(model == "pp") { ylab <- c("Location","Scale","Shape") if(!missing(ylabs)) ylab[show] <- ylabs ylim <- rbind(range(locs), range(scls), range(shps)) if(!missing(ylims)) ylim[show,] <- ylims if(show[1]) { matplot(u, locs, type = "n", xlab = xlab, ylab = ylab[1], xlim = xlim, ylim = ylim[1,]) lines(u, locs[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, locs[,1], u, locs[,3], lty = cilty) else { lines(u, locs[,1], lty = cilty) lines(u, locs[,3], lty = cilty) } } if(show[2]) { matplot(u, scls, type = "n", xlab = xlab, ylab = ylab[2], xlim = xlim, ylim = ylim[2,]) lines(u, scls[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, scls[,1], u, scls[,3], lty = cilty) else { lines(u, scls[,1], lty = cilty) lines(u, scls[,3], lty = cilty) } } if(show[3]) { matplot(u, shps, type = "n", xlab = xlab, ylab = ylab[3], xlim = xlim, ylim = ylim[3,]) lines(u, shps[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, shps[,1], u, shps[,3], lty = cilty) else { lines(u, shps[,1], lty = cilty) lines(u, shps[,3], lty = cilty) } } rtlist <- list(locs = locs, scales = scls, shapes = shps) } if(model == "gpd") { ylab <- c("Modified Scale","Shape") if(!missing(ylabs)) ylab[show] <- ylabs ylim <- rbind(range(scls), range(shps)) if(!missing(ylims)) ylim[show,] <- ylims if(show[1]) { matplot(u, scls, type = "n", xlab = xlab, ylab = ylab[1], xlim = xlim, ylim = ylim[1,]) lines(u, scls[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, scls[,1], u, scls[,3], lty = cilty) else { lines(u, scls[,1], lty = cilty) lines(u, scls[,3], lty = cilty) } } if(show[2]) { matplot(u, shps, type = "n", xlab = xlab, ylab = ylab[2], xlim = xlim, ylim = ylim[2,]) lines(u, shps[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, shps[,1], u, shps[,3], lty = cilty) else { lines(u, shps[,1], lty = cilty) lines(u, shps[,3], lty = cilty) } } rtlist <- list(scales = scls, shapes = shps) } invisible(rtlist) } "chiplot"<- function(data, nq = 100, qlim = NULL, which = 1:2, conf = 0.95, trunc = TRUE, spcases = FALSE, lty = 1, cilty = 2, col = 1, cicol = 1, xlim = c(0,1), ylim1 = c(-1,1), ylim2 = c(-1,1), main1 = "Chi Plot", main2 = "Chi Bar Plot", xlab = "Quantile", ylab1 = "Chi", ylab2 = "Chi Bar", ask = nb.fig < length(which) && dev.interactive(), ...) { data <- na.omit(data) n <- nrow(data) data <- cbind(rank(data[, 1])/(n + 1), rank(data[, 2])/(n + 1)) rowmax <- apply(data, 1, max) rowmin <- apply(data, 1, min) eps <- .Machine$double.eps^0.5 qlim2 <- c(min(rowmax) + eps, max(rowmin) - eps) if(!is.null(qlim)) { if(qlim[1] < qlim2[1]) stop("lower quantile limit is too low") if(qlim[2] > qlim2[2]) stop("upper quantile limit is too high") if(qlim[1] > qlim[2]) stop("lower quantile limit is less than upper quantile limit") } else qlim <- qlim2 u <- seq(qlim[1], qlim[2], length = nq) cu <- cbaru <- numeric(nq) for(i in 1:nq) cu[i] <- mean(rowmax < u[i]) for(i in 1:nq) cbaru[i] <- mean(rowmin > u[i]) chiu <- 2 - log(cu)/log(u) chibaru <- (2 * log(1 - u))/log(cbaru) - 1 cnst <- qnorm((1 + conf)/2) varchi <- ((1/log(u)^2 * 1)/cu^2 * cu * (1 - cu))/n varchi <- cnst * sqrt(varchi) varchibar <- (((4 * log(1 - u)^2)/(log(cbaru)^4 * cbaru^2)) * cbaru * ( 1 - cbaru))/n varchibar <- cnst * sqrt(varchibar) chiu <- cbind(chilow = chiu-varchi, chi = chiu, chiupp = chiu+varchi) chibaru <- cbind(chiblow = chibaru-varchibar, chib = chibaru, chibupp = chibaru+varchibar) chiulb <- 2-log(pmax(2*u-1,0))/log(u) chibarulb <- 2*log(1-u)/log(1-2*u+pmax(2*u-1,0)) - 1 if(trunc) { chiu[chiu > 1] <- 1 chibaru[chibaru > 1] <- 1 chiu <- apply(chiu, 2, function(x) pmax(x, chiulb)) chibaru <- apply(chibaru, 2, function(x) pmax(x, chibarulb)) } show <- logical(2) show[which] <- TRUE lty <- c(cilty, lty, cilty) col <- c(cicol, col, cicol) nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(show[1]) { matplot(u, chiu, type = "l", lty = lty, col = col, xlim = xlim, ylim = ylim1, main = main1, xlab = xlab, ylab = ylab1, ...) if(spcases) { segments(qlim[1],0,qlim[2],0, lty = 5, col = "grey") segments(qlim[1],1,qlim[2],1, lty = 5, col = "grey") lines(u, chiulb, lty = 5, col = "grey") } } if(show[2]) { matplot(u, chibaru, type = "l", lty = lty, col = col, xlim = xlim, ylim = ylim2, main = main2, xlab = xlab, ylab = ylab2, ...) if(spcases) { segments(qlim[1],0,qlim[2],0, lty = 5, col = "grey") segments(qlim[1],1,qlim[2],1, lty = 5, col = "grey") lines(u, chibarulb, lty = 5, col = "grey") } } plvals <- list(quantile = u, chi = chiu, chibar = chibaru) if(!show[1]) plvals$chi <- NULL if(!show[2]) plvals$chib <- NULL invisible(plvals) } ## Bivariate Threshold Choice ## "bvtcplot"<- function(x, spectral = FALSE, xlab, ylab, ...) { if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) stop("`x' has incorrect number of columns") x <- x[complete.cases(x),] nn <- nrow(x) ula <- apply(x, 2, rank)/(nn + 1) fla <- -1/log(ula) rr <- rowSums(fla); ww <- fla/rr rro <- sort(rr, decreasing = TRUE)[-1] k <- 1:(nn-1) k0 <- max(which(rro*k/nn > 2)) if(!spectral) { if(missing(xlab)) xlab <- "k" if(missing(ylab)) ylab <- "H([0,1])" plot(k, rro*k/nn, xlab = xlab, ylab = ylab, ...) abline(h = 2, v = k0) return(invisible(list(x = k, y = rro*k/nn, k0 = k0))) } xx <- yy <- seq(0, 1, len = 100) for(k in 1:100) yy[k] <- sum(rr > rro[k0] & ww[,1] <= xx[k]) if(missing(xlab)) xlab <- "w" if(missing(ylab)) ylab <- "H([0,w])" plot(xx, 2/k0 * yy, type = "l", xlab = xlab, ylab = ylab, ...) abline(h = c(0,2)) return(invisible(list(x = xx, y = 2/k0 * yy, k0 = k0))) } ## Hypothesis test for independence ## "evind.test"<- function(x, method = c("ratio", "score"), verbose = FALSE) { method <- match.arg(method) if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) stop("`x' has incorrect number of columns") dname <- paste(deparse(substitute(x))) if(method == "ratio") { meth <- "Likelihood Ratio Test Of Independence" fobj1 <- fbvevd(x, model = "log") estimate <- fitted(fobj1) if(!verbose) estimate <- estimate["dep"] fobj2 <- fbvevd(x, model = "log", dep = 1) lrt <- anova(fobj1, fobj2, half = TRUE) stat <- c(norm.llhratio = lrt[["Chisq"]][2]) pval <- c(p.value = lrt[["Pr(>chisq)"]][2]) } if(method == "score") { meth <- "Score Test Of Independence" fobj1 <- fbvevd(x, model = "log") estimate <- fitted(fobj1) if(!verbose) estimate <- estimate["dep"] fobj2 <- fbvevd(x, model = "log", dep = 1) ft <- fitted(fobj2) mmles <- list(ft[c("loc1","scale1","shape1")], ft[c("loc2","scale2","shape2")]) xtr <- mtransform(x, mmles) xtr <- xtr[complete.cases(xtr),] nn <- nrow(xtr) rsm <- rowSums(xtr) rsl <- rowSums(xtr * log(xtr)) tawn <- rsl - log(apply(xtr, 1, prod)) - (rsm - 2) * log(rsm) - 1/rsm tawn <- (nn/2 * log(nn))^(-1/2) * sum(tawn) stat <- c(norm.score = tawn) pval <- c(p.value = pnorm(tawn)) } rval <- list(statistic = stat, p.value = pval, estimate = estimate, null.value = c(dependence = "independence"), alternative = "greater", method = meth, data.name = dname) class(rval) <- "htest" return(rval) } evd/R/nonpar.R0000744000176200001440000002752012017604711012657 0ustar liggesusers "abvnonpar"<- function(x = 0.5, data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, method = c("cfg","pickands","tdo","pot"), k = nrow(data)/4, convex = FALSE, rev = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", ...) { if(mode(x) != "numeric" || any(x < 0, na.rm=TRUE) || any(x > 1, na.rm=TRUE)) stop("invalid argument for `x'") method <- match.arg(method) # Empirical transform to exponential epdata <- apply(data, 2, rank, na.last = "keep") nasm <- apply(data, 2, function(x) sum(!is.na(x))) epdata <- epdata / rep(nasm+1, each = nrow(data)) epdata <- -log(epdata) if(epmar) data <- epdata # End empirical transform if(!epmar) { if(method == "pot") { # Parametric pot transform to exponential if(any(k >= nasm)) stop("k is too large") u1 <- sort(data[,1], decreasing = TRUE)[k+1] u2 <- sort(data[,2], decreasing = TRUE)[k+1] d1ab <- (data[,1] > u1) & !is.na(data[,1]) d2ab <- (data[,2] > u2) & !is.na(data[,2]) if(!is.null(kmar)) { data[d1ab,1] <- mtransform(data[d1ab,1], c(u1, kmar)) data[d2ab,2] <- mtransform(data[d2ab,2], c(u2, kmar)) } else { mle.m1 <- c(u1, fitted(fpot(data[d1ab,1], threshold = u1))) mle.m2 <- c(u2, fitted(fpot(data[d2ab,2], threshold = u2))) data[d1ab,1] <- mtransform(data[d1ab,1], mle.m1) data[d2ab,2] <- mtransform(data[d2ab,2], mle.m2) } data[d1ab,1] <- -log(1 - k * data[d1ab,1] / nasm[1]) data[d2ab,2] <- -log(1 - k * data[d2ab,2] / nasm[2]) data[!d1ab, 1] <- epdata[!d1ab, 1] data[!d2ab, 2] <- epdata[!d2ab, 2] # End parametric pot transform } if(method != "pot") { # Parametric gev transform to exponential if(!is.null(kmar)) { data <- mtransform(data, kmar) } else { if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(data)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(data)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } mle.m1 <- fitted(fgev(data[,1], nsloc = nsloc1, std.err = FALSE)) loc.mle.m1 <- mle.m1[grep("^loc", names(mle.m1))] if(is.null(nsloc1)) loc.mle.m1 <- rep(loc.mle.m1, nrow(data)) else loc.mle.m1 <- nslocmat1 %*% loc.mle.m1 mle.m1 <- cbind(loc.mle.m1, mle.m1["scale"], mle.m1["shape"]) mle.m2 <- fitted(fgev(data[,2], nsloc = nsloc2, std.err = FALSE)) loc.mle.m2 <- mle.m2[grep("^loc", names(mle.m2))] if(is.null(nsloc2)) loc.mle.m2 <- rep(loc.mle.m2, nrow(data)) else loc.mle.m2 <- nslocmat2 %*% loc.mle.m2 mle.m2 <- cbind(loc.mle.m2, mle.m2["scale"], mle.m2["shape"]) data <- mtransform(data, list(mle.m1, mle.m2)) } # End parametric gev transform } } if(rev) data <- data[,2:1] data <- na.omit(data) if(plot || add) x <- seq(0, 1, length = 100) d1 <- data[,1]; d2 <- data[,2] sum1 <- sum(d1); slm1 <- sum(log(d1)) sum2 <- sum(d2); slm2 <- sum(log(d2)) nn <- nrow(data) nx <- length(x) mpmin <- function(a,b) { a[a > b] <- b[a > b] a } mpmax <- function(a,b) { a[a < b] <- b[a < b] a } if(method == "cfg") { if(!convex) { a <- numeric(nx) for(i in 1:nx) a[i] <- sum(log(mpmax((1-x[i]) * d1, x[i] * d2))) a <- (a - (1-x) * slm1 - x * slm2)/nn a <- pmin(1, pmax(exp(a), x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) for(i in 1:250) a[i] <- sum(log(mpmax((1-x2[i]) * d1, x2[i] * d2))) a <- (a - (1-x2) * slm1 - x2 * slm2)/nn a <- pmin(1, pmax(exp(a), x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } if(method == "pickands") { if(!convex) { a <- numeric(nx) if(madj == 2) { d1 <- d1/mean(d1) d2 <- d2/mean(d2) } for(i in 1:nx) a[i] <- sum(mpmin(d1/x[i], d2/(1-x[i]))) if(madj == 1) a <- a - x * sum1 - (1-x) * sum2 + nn a <- nn / a a <- pmin(1, pmax(a, x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) if(madj == 2) { d1 <- d1/mean(d1) d2 <- d2/mean(d2) } for(i in 1:250) a[i] <- sum(mpmin(d1/x2[i], d2/(1-x2[i]))) if(madj == 1) a <- a - x2 * sum1 - (1-x2) * sum2 + nn a <- nn / a a <- pmin(1, pmax(a, x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } # Undocumented method: Tiago de Oliveira (1997) if(method == "tdo") { if(!convex) { a <- numeric(nx) for(i in 1:nx) a[i] <- sum(mpmin(x[i]/(1 + nn*d1), (1-x[i])/(1 + nn*d2))) a <- 1 - a/(1 + log(nn)) a <- pmin(1, pmax(a, x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) for(i in 1:250) a[i] <- sum(mpmin(x2[i]/(1 + nn*d1), (1-x2[i])/(1 + nn*d2))) a <- 1 - a/(1 + log(nn)) a <- pmin(1, pmax(a, x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } # Undocumented pot method: Beirlant et al (2004) if(method == "pot") { a <- numeric(nx) rr <- rowSums(1/data) rrk <- sort(rr, decreasing = TRUE)[k+1] for(i in 1:nx) a[i] <- sum(mpmax(x[i]/(d1 * rr), (1 - x[i])/(d2 * rr))[rr > rrk]) a <- 2/k * a a0 <- 2/k * sum(1/(d2 * rr)[rr > rrk]) a1 <- 2/k * sum(1/(d1 * rr)[rr > rrk]) a <- a + 1 - (1-x) * a0 - x * a1 a <- pmin(1, pmax(a, x, 1-x)) } if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "qcbvnonpar"<- function(p = seq(0.75, 0.95, 0.05), data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, mint = 1, method = c("cfg","pickands","tdo"), convex = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(data[,1], na.rm = TRUE), ylim = range(data[,2], na.rm = TRUE), xlab = colnames(data)[1], ylab = colnames(data)[2], ...) { if(mode(p) != "numeric" || p <= 0 || p >= 1) stop("`p' must be a vector of probabilities") method <- match.arg(method) nxv <- 100 x <- seq(0, 1, length = nxv) ax <- abvnonpar(x = x, data = data, epmar = epmar, nsloc1 = nsloc1, nsloc2 = nsloc2, method = method, convex = convex, madj = madj, kmar = kmar, plot = FALSE) np <- length(p) qct <- list() p <- p^mint if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } for(i in 1:np) { qct[[i]] <- -cbind(x/ax * log(p[i]), (1-x)/ax * log(p[i])) if(epmar) { qct[[i]] <- cbind(quantile(data[,1], probs = exp(-qct[[i]][,1]), na.rm = TRUE), quantile(data[,2], probs = exp(-qct[[i]][,2]), na.rm = TRUE)) } else { if(is.null(kmar)) { # Transform from exponential margins mle.m1 <- fitted(fgev(data[,1], nsloc = nsloc1, std.err = FALSE)) mle.m2 <- fitted(fgev(data[,2], nsloc = nsloc2, std.err = FALSE)) mle.m1 <- mle.m1[c("loc","scale","shape")] mle.m2 <- mle.m2[c("loc","scale","shape")] qct[[i]] <- mtransform(qct[[i]], list(mle.m1, mle.m2), inv = TRUE) } else { if(!is.null(nsloc1) || !is.null(nsloc2)) warning("ignoring `nsloc1' and `nsloc2' arguments") qct[[i]] <- mtransform(qct[[i]], kmar, inv = TRUE) } } qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nxv,2] <- 1.5 * ylim[2] } if((!is.null(nsloc1) || !is.null(nsloc2)) && !epmar && is.null(kmar)) { data <- fbvevd(data, model = "log", dep = 1, nsloc1 = nsloc1, nsloc2 = nsloc2, std.err = FALSE)$tdata } if(plot) { plot(data, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) return(invisible(qct)) } if(add) { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) return(invisible(qct)) } qct } "amvnonpar"<- function(x = rep(1/d,d), data, d = 3, epmar = FALSE, nsloc = NULL, madj = 0, kmar = NULL, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { if(!plot) { if(is.vector(x)) x <- as.matrix(t(x)) if(!is.matrix(x) || ncol(x) != d) stop("`x' must be a vector/matrix with `d' elements/columns") if(any(x < 0, na.rm = TRUE)) stop("`x' must be non-negative") rs <- rowSums(x) if(any(rs <= 0, na.rm = TRUE)) stop("row(s) of `x' must have a positive sum") if(max(abs(rs[!is.na(rs)] - 1)) > 1e-6) warning("row(s) of `x' will be rescaled") x <- x/rs } if(missing(data) || ncol(data) != d) stop("data must have `d' columns") if(plot) { if(d == 2) stop("use abvnonpar for bivariate plots") if(d >= 4) stop("cannot plot in high dimensions") } if(epmar) { # Empirical transform to exponential data <- apply(data, 2, rank, na.last = "keep") nasm <- apply(data, 2, function(x) sum(!is.na(x))) data <- data / rep(nasm+1, each = nrow(data)) data <- -log(data) # End empirical transform } if(!epmar) { # Parametric gev transform to exponential if(!is.null(kmar)) { data <- mtransform(data, kmar) } else { if(!is.null(nsloc)) { nslocmat <- list() if(!is.list(nsloc)) nsloc <- rep(list(nsloc), d) if(length(nsloc) != d) stop("`nsloc' should have `d' elements") for(k in 1:d) { if(!is.null(nsloc[[k]])) { if(is.vector(nsloc[[k]])) nsloc[[k]] <- data.frame(trend = nsloc[[k]]) if(nrow(nsloc[[k]]) != nrow(data)) stop("`nsloc' and data are not compatible") nslocmat[[k]] <- cbind(1, as.matrix(nsloc[[k]])) } } } mles <- list() for(k in 1:d) { mle.m <- fitted(fgev(data[,k], nsloc = nsloc[[k]], std.err = FALSE)) loc.mle.m <- mle.m[grep("^loc", names(mle.m))] if(is.null(nsloc[[k]])) loc.mle.m <- rep(loc.mle.m, nrow(data)) else loc.mle.m <- nslocmat[[k]] %*% loc.mle.m mles[[k]] <- cbind(loc.mle.m, mle.m["scale"], mle.m["shape"]) } data <- mtransform(data, mles) } # End parametric gev transform } data <- na.omit(data) depfn <- function(x, data, madj) { # quicker apply(am, 2, min) mpmin <- function(am,nr) { a <- am[1,] for(i in 2:nr) a[a > am[i,]] <- am[i, a > am[i,]] a } nn <- nrow(data) nx <- nrow(x) csum <- colSums(data) a <- numeric(nx) if(madj == 2) data <- nn * sweep(data, 2, csum, "/") for(i in 1:nx) { a[i] <- sum(mpmin(t(data)/x[i,], d)) } if(madj == 1) a <- a - colSums(t(x) * csum) + nn a <- nn / a xrmax <- apply(x, 1, max) pmin(1, pmax(a, xrmax)) } if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, data = data, madj = madj) return(invisible(mz)) } depfn(x = x, data = data, madj = madj) } evd/R/mvdist.R0000744000176200001440000003350112017604711012664 0ustar liggesusers "rmvevd" <- function(n, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0)) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = rmvlog(n = n, dep = dep, d = d, mar = mar), alog = rmvalog(n = n, dep = dep, asy = asy, d = d, mar = mar)) } "rmvlog"<- # Uses Algorithm 2.1 in Stephenson(2003) function(n, dep, d = 2, mar = c(0,1,0)) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") sim <- .C("rmvlog_tawn", as.integer(n), as.integer(d), as.double(dep), sim = double(d*n), PACKAGE = "evd")$sim mtransform(matrix(1/sim, ncol=d, byrow=TRUE), mar, inv = TRUE, drp = TRUE) } "rmvalog"<- # Uses Algorithm 2.2 in Stephenson(2003) function(n, dep, asy, d = 2, mar = c(0,1,0)) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) asy <- mvalog.check(asy, dep, d = d) dep <- c(rep(1,d), dep) sim <- .C("rmvalog_tawn", as.integer(n), as.integer(d), as.integer(nb), as.double(dep), as.double(t(asy)), sim = double(n*d), PACKAGE = "evd")$sim mtransform(matrix(1/sim, ncol=d, byrow=TRUE), mar, inv = TRUE, drp = TRUE) } "pmvevd" <- function(q, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), lower.tail = TRUE) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = pmvlog(q = q, dep = dep, d = d, mar = mar, lower.tail = lower.tail), alog = pmvalog(q = q, dep = dep, asy = asy, d = d, mar = mar, lower.tail = lower.tail)) } "pmvlog"<- function(q, dep, d = 2, mar = c(0,1,0), lower.tail = TRUE) { if(lower.tail) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,d) if(ncol(q) != d) stop("`q' and `d' are not compatible") q <- mtransform(q, mar) pp <- exp(-apply(q^(1/dep),1,sum)^dep) } else { pp <- numeric(1) ss <- c(list(numeric(0)), subsets(d)) ssl <- d - sapply(ss, length) for(i in 1:(2^d)) { tmpq <- q tmpq[, ss[[i]]] <- Inf pp <- (-1)^ssl[i] * Recall(tmpq, dep, d, mar) + pp } } pp } "pmvalog"<- function(q, dep, asy, d = 2, mar = c(0,1,0), lower.tail = TRUE) { if(lower.tail) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) asy <- mvalog.check(asy, dep, d = d) dep <- c(rep(1,d), dep) if(is.null(dim(q))) dim(q) <- c(1,d) if(ncol(q) != d) stop("`q' and `d' are not compatible") q <- mtransform(q, mar) inner <- function(par) apply((rep(par[1:d], rep(nrow(q),d))*q)^(1/par[d+1]), 1, sum)^par[d+1] comps <- apply(cbind(asy,dep),1,inner) if(is.null(dim(comps))) dim(comps) <- c(1,nb) pp <- exp(-apply(comps,1,sum)) } else { pp <- numeric(1) ss <- c(list(numeric(0)), subsets(d)) ssl <- d - sapply(ss, length) for(i in 1:(2^d)) { tmpq <- q tmpq[, ss[[i]]] <- Inf pp <- (-1)^ssl[i] * Recall(tmpq, dep, asy, d, mar) + pp } } pp } "dmvevd" <- function(x, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), log = FALSE) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = dmvlog(x = x, dep = dep, d = d, mar = mar, log = log), alog = dmvalog(x = x, dep = dep, asy = asy, d = d, mar = mar, log = log)) } "dmvlog"<- function(x, dep, d = 2, mar = c(0,1,0), log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,d) if(ncol(x) != d) stop("`x' and `d' are not compatible") if(is.list(mar)) { if(length(mar) != d) stop("`mar' and `d' are not compatible") for(i in 1:d) mar[[i]] <- matrix(t(mar[[i]]), nrow = nrow(x), ncol = 3, byrow = TRUE) } else mar <- matrix(t(mar), nrow = nrow(x), ncol = 3, byrow = TRUE) dns <- numeric(nrow(x)) x <- mtransform(x, mar) ext <- apply(x, 1, function(z) any(z %in% c(0,Inf))) dns[ext] <- -Inf idep <- 1/dep cf <- matrix(0, nrow = d, ncol = d) diag(cf) <- dep^(1:d - 1) cf[,1] <- exp(lgamma(1:d - dep) - lgamma(1:d) - lgamma(1 - dep)) if(d >= 3) { for(i in 3:d) { for(j in 2:(d-1)) cf[i,j] <- ((i - 1 - j*dep) * cf[i-1,j] + dep*(j-1)*cf[i-1,j-1])/ (i - 1) } } cf <- log(cf[d,]) - lgamma(1:d) if(any(!ext)) { x <- x[!ext, ,drop=FALSE] if(is.list(mar)) { marscl <- marshp <- matrix(NA, nrow = nrow(x), ncol = d) for(i in 1:d) { mar[[i]] <- mar[[i]][!ext, ,drop=FALSE] marscl[,i] <- mar[[i]][,2] marshp[,i] <- mar[[i]][,3] } } else { mar <- mar[!ext, ,drop=FALSE] marscl <- mar[,2] marshp <- mar[,3] } z <- rowSums(x^(idep))^dep lx <- log(x) .expr1 <- rowSums(lx * (idep + marshp) - log(marscl)) dns[!ext] <- .expr1 + (1 - d*idep) * log(z) - z lz <- matrix(log(z), nrow = d, ncol = nrow(x), byrow = TRUE) lz <- (0:(d-1)) * lz + cf dns[!ext] <- dns[!ext] + log(colSums(exp(lz))) + lgamma(d) - (d-1)*log(dep) } if(!log) dns <- exp(dns) dns } "dmvalog"<- function(x, dep, asy, d = 2, mar = c(0,1,0), log = FALSE) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) ss <- mvalog.check(asy, dep, d = d, ss = TRUE) asy <- ss$asy ; ss <- ss$ss dep <- c(rep(1,d), dep) if(is.null(dim(x))) dim(x) <- c(1,d) if(ncol(x) != d) stop("`x' and `d' are not compatible") nn <- nrow(x) if(is.list(mar)) { if(length(mar) != d) stop("`mar' and `d' are not compatible") for(i in 1:d) mar[[i]] <- matrix(t(mar[[i]]), nrow = nn, ncol = 3, byrow = TRUE) } else mar <- matrix(t(mar), nrow = nn, ncol = 3, byrow = TRUE) x <- mtransform(x, mar) ext <- apply(x, 1, function(z) any(z %in% c(0,Inf))) dns <- numeric(nn) dns[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] if(is.list(mar)) { marscl <- marshp <- matrix(NA, nrow = nn, ncol = d) for(i in 1:d) { mar[[i]] <- mar[[i]][!ext, ,drop=FALSE] marscl[,i] <- mar[[i]][,2] marshp[,i] <- mar[[i]][,3] } } else { mar <- mar[!ext, ,drop=FALSE] marscl <- mar[,2] marshp <- mar[,3] } cfinit <- function(dep) { if(dep==1) return(diag(d)) cf <- matrix(0, nrow = d, ncol = d) diag(cf) <- dep^(1:d - 1) cf[,1] <- exp(lgamma(1:d - dep) - lgamma(1:d) - lgamma(1 - dep)) if(d >= 3) { for(i in 3:d) { for(j in 2:(d-1)) cf[i,j] <- ((i - 1 - j*dep) * cf[i-1,j] + dep * (j-1) * cf[i-1,j-1])/(i - 1) } } cf } cfs <- paste("cf", 1:nb, sep = "") for(i in 1:nb) assign(cfs[i], cfinit(dep[i])) qfn <- function(lz, dep, p, cf) { if(p == 1) return(rep(0, nn)) cf <- log(cf[p,1:p]) - lgamma(1:p) lz <- matrix(lz, nrow = p, ncol = nn, byrow = TRUE) lz <- ((1-p):0) * lz + cf log(colSums(exp(lz))) + lgamma(p) - (p-1)*log(dep) } indm <- matrix(NA, nrow = 2^(d-1), ncol = d) for(i in 1:d) indm[,i] <- which(sapply(ss, function(x) i %in% x)) indm <- as.matrix(do.call("expand.grid", as.data.frame(indm))) inner <- function(par) { int <- (rep(par[1:d], each = nn) * x)^(1/par[d+1]) rowSums(int)^par[d+1] } zm <- log(apply(cbind(asy,dep), 1, inner)) if(is.null(dim(zm))) dim(zm) <- c(1,nb) vv <- rowSums(exp(zm)) lx <- log(x) mexpr <- rowSums(lx * marshp - log(marscl)) tot1 <- matrix(0, nrow = nn, ncol = 2^(d*(d-1))) tot2 <- matrix(0, nrow = nn, ncol = d) for(i in 1:(2^(d*(d-1)))) { indmi <- indm[i,] pp <- tabulate(indmi, 2^d-1)[indmi] if(all(asy[indmi + (2^d-1)*(0:(d-1))] != 0)) { for(j in 1:d) tot2[,j] <- 1/dep[indmi[j]] * (log(asy[indmi[j],j]) + lx[,j]) + (1 - 1/dep[indmi[j]]) * zm[,indmi[j]] + qfn(zm[,indmi[j]], dep[indmi[j]], pp[j], get(cfs[indmi[j]])) / pp[j] tot1[,i] <- rowSums(tot2) } else tot1[,i] <- -Inf } dns[!ext] <- log(rowSums(exp(tot1))) - vv + mexpr } if(!log) dns <- exp(dns) dns } "amvevd" <- function(x = rep(1/d,d), dep, asy, model = c("log", "alog"), d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") if(!plot) { if(is.vector(x)) x <- as.matrix(t(x)) if(!is.matrix(x) || ncol(x) != d) stop("`x' must be a vector/matrix with `d' elements/columns") if(any(x < 0, na.rm = TRUE)) stop("`x' must be non-negative") rs <- rowSums(x) if(any(rs <= 0, na.rm = TRUE)) stop("row(s) of `x' must have a positive sum") if(max(abs(rs[!is.na(rs)] - 1)) > 1e-6) warning("row(s) of `x' will be rescaled") x <- x/rs } if(plot) { if(d == 2) stop("use abvnonpar for bivariate plots") if(d >= 4) stop("cannot plot in high dimensions") } switch(model, log = amvlog(x = x, dep = dep, d = d, plot = plot, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex), alog = amvalog(x = x, dep = dep, d = d, asy = asy, plot = plot, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex)) } "amvlog"<- function(x, dep, d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") depfn <- function(x, dep) rowSums(x^(1/dep))^dep if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, dep = dep) return(invisible(mz)) } depfn(x = x, dep = dep) } "amvalog"<- function(x, dep, asy, d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { dep <- rep(dep, length.out = 2^d-d-1) asy <- mvalog.check(asy, dep, d) depfn <- function(x, dep, asy) { d <- ncol(x) dep <- c(rep(1,d), dep) tot <- matrix(0, nrow = nrow(x), ncol = 2^d-1) idep <- 1/dep x <- t(x) for(k in 1:(2^d-1)) tot[,k] <- colSums((asy[k,] * x)^idep[k])^dep[k] rowSums(tot) } if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, dep = dep, asy = asy) return(invisible(mz)) } depfn(x = x, dep = dep, asy = asy) } ### Ancillary Functions ### "tvdepfn" <- # Plots Dependence Function On Simplex S3 function(depfn, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1, ...) { oldpar <- par(pty="s") on.exit(par(oldpar)) s3 <- sqrt(1/3) x <- seq(-s3, s3, len = 2*grid) y <- seq(0, 1, len = 2*grid) a <- function(x,y) { w1 <- y w2 <- (x/s3 + 1 - y)/2 vals <- numeric(length(w1)) tpts <- cbind(w1,w2,w3=1-w1-w2)[, ord] nv <- apply(tpts, 1, function(b) any(b < 0)) is.na(vals) <- nv vals[!nv] <- depfn(tpts[!nv,], ...) vals } z <- outer(x,y,a) mz <- min(z, na.rm = TRUE) mxz <- max(z, na.rm = TRUE) if(mz < 1/3 || mxz > 1 || any(is.nan(z))) warning("parameters may be too near edge of parameter space") else if(mz < lower) warning("`lower' is greater than calculated values") plot(c(-s3, s3), c(0.5-s3, 0.5+s3), type="n", axes=FALSE, xlab="", ylab="") if(!is.null(lab)) { lab <- lab[ord] eps <- 0.025 text(0, 1+eps, lab[1], adj = c(0.5, 0), cex = lcex) text(s3, -eps, lab[2], adj = c(1, 1), cex = lcex) text(-s3, -eps, lab[3], adj = c(0, 1), cex = lcex) } image(x, y, z, zlim = c(lower,1), xlim = c(-s3,s3), ylim = c(0.5-s3, 0.5+s3), col = col, add = TRUE) polygon(c(-s3, s3, 0), c(0, 0, 1), lty = blty) invisible(mz) } "mvalog.check" <- # Checks And Transforms Arguments For Asymmetric Logistic function(asy, dep, d, ss = FALSE) { if(mode(dep) != "numeric" || any(dep <= 0) || any(dep > 1)) stop("invalid argument for `dep'") nb <- 2^d-1 if(mode(asy) != "list" || length(asy) != nb) stop(paste("`asy' should be a list of length", nb)) tasy <- function(theta, b) { trans <- matrix(0, nrow=nb, ncol=d) for(i in 1:nb) trans[i,(1:d %in% b[[i]])] <- theta[[i]] trans } b <- subsets(d) if(any(sapply(asy, length) != sapply(b, length))) stop("`asy' is not of the correct form") asy <- tasy(asy, b) if(!is.matrix(asy) || mode(asy) != "numeric") stop("`asy' is not of the correct form") if(min(asy) < 0 || max(asy) > 1) stop("`asy' must contain parameters in [0,1]") if(any(apply(asy,2,sum) != 1) || any(asy[c(rep(FALSE,d),dep==1),] != 0) || any(apply(asy[-(1:d),,drop=FALSE],1,function(x) sum(x!=0)) == 1)) stop("`asy' does not satisfy the appropriate constraints") if(ss) return(list(asy = asy, ss = b)) asy } "subsets" <- # Lists All Subsets Of 1:d function(d) { x <- 1:d k <- NULL for(m in x) k <- rbind(cbind(TRUE, k), cbind(FALSE, k)) pset <- apply(k, 1, function(z) x[z]) pset[sort.list(unlist(lapply(pset,length)))[-1]] } evd/R/mdiag.R0000744000176200001440000010321112017604711012433 0ustar liggesusers### Univariate GEV and POT Models ### "plot.uvevd" <- function(x, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, adjust = 1, jitter = FALSE, nplty = 2, ...) { if (!inherits(x, "uvevd")) stop("Use only with `'uvevd objects") if (!is.numeric(which) || any(which < 1) || any(which > 4)) stop("`which' must be in 1:4") nb.fig <- prod(par("mfcol")) show <- rep(FALSE, 4) show[which] <- TRUE if(missing(main)) { main <- c("Probability Plot", "Quantile Plot", "Density Plot", "Return Level Plot") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(4) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { pp(x, ci = ci, cilwd = cilwd, main = main[1], xlim = c(0,1), ylim = c(0,1), ...) } if (show[2]) { qq(x, ci = ci, cilwd = cilwd, main = main[2], ...) } if (show[3]) { dens(x, adjust = adjust, nplty = nplty, jitter = jitter, main = main[3], ...) } if (show[4]) { rl(x, ci = ci, cilwd = cilwd, main = main[4], ...) } invisible(x) } "qq" <- function (x, ...) UseMethod("qq") "pp" <- function (x, ...) UseMethod("pp") "rl" <- function (x, ...) UseMethod("rl") "dens" <- function (x, ...) UseMethod("dens") "qq.gev" <- function(x, ci = TRUE, cilwd = 1, main = "Quantile Plot", xlab = "Model", ylab = "Empirical", ...) { quant <- qgev(ppoints(x$tdata), loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) if(!ci) { plot(quant, sort(x$tdata), main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$tdata) matplot(quant, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], quant, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(quant-smidge, env[,1], quant+smidge, env[,1], lwd = cilwd) segments(quant-smidge, env[,2], quant+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = quant, y = sort(x$tdata))) } "pp.gev" <- function(x, ci = TRUE, cilwd = 1, main = "Probability Plot", xlab = "Empirical", ylab = "Model", ...) { ppx <- ppoints(x$n) probs <- pgev(sort(x$tdata), loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) env[,1] <- pgev(env[,1], loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) env[,2] <- pgev(env[,2], loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppoints(x$n), y = probs)) } "rl.gev" <- function(x, ci = TRUE, cilwd = 1, main = "Return Level Plot", xlab = "Return Period", ylab = "Return Level", ...) { ppx <- ppoints(x$tdata) rps <- c(1.001,10^(seq(0,3,len=200))[-1]) p.upper <- 1/rps rlev <- qgev(p.upper, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"], lower.tail = FALSE) if(!ci) { plot(-1/log(ppx), sort(x$tdata),log = "x", main = main, xlab = xlab, ylab = ylab, ...) lines(-1/log(1-p.upper), rlev) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$tdata) matplot(-1/log(ppx), cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, log = "x", ...) lines(-1/log(1-p.upper), rlev) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], log10(-1/log(ppx)), xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments((-1/log(ppx))*exp(-smidge), env[,1], (-1/log(ppx))*exp(smidge), env[,1], lwd = cilwd) segments((-1/log(ppx))*exp(-smidge), env[,2], (-1/log(ppx))*exp(smidge), env[,2], lwd = cilwd) } invisible(list(x = -1/log(1-p.upper), y = rlev)) } "dens.gev" <- function(x, adjust = 1, nplty = 2, jitter = FALSE, main = "Density Plot", xlab = "Quantile", ylab = "Density", ...) { xlimit <- range(x$tdata) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.075 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.075 xvec <- seq(xlimit[1], xlimit[2], length = 100) dens <- dgev(xvec, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) plot(spline(xvec, dens), main = main, xlab = xlab, ylab = ylab, type = "l", ...) if(jitter) rug(jitter(x$tdata)) else rug(x$tdata) lines(density(x$tdata, adjust = adjust), lty = nplty) invisible(list(x = xvec, y = dens)) } "qq.pot" <- function(x, ci = TRUE, cilwd = 1, main = "Quantile Plot", xlab = "Model", ylab = "Empirical", ...) { quant <- qgpd(ppoints(x$nhigh), loc = x$threshold, scale = x$scale, shape = x$param["shape"]) if(!ci) { plot(quant, sort(x$exceedances), main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$exceedances) matplot(quant, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], quant, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(quant-smidge, env[,1], quant+smidge, env[,1], lwd = cilwd) segments(quant-smidge, env[,2], quant+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = quant, y = sort(x$exceedances))) } "pp.pot" <- function(x, ci = TRUE, cilwd = 1, main = "Probability Plot", xlab = "Empirical", ylab = "Model", ...) { ppx <- ppoints(x$nhigh) probs <- pgpd(sort(x$exceedances), loc = x$threshold, scale = x$scale, shape = x$param["shape"]) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) env[,1] <- pgpd(env[,1], loc = x$threshold, scale = x$scale, shape = x$param["shape"]) env[,2] <- pgpd(env[,2], loc = x$threshold, scale = x$scale, shape = x$param["shape"]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppoints(x$nhigh), y = probs)) } "rl.pot" <- function(x, ci = TRUE, cilwd = 1, main = "Return Level Plot", xlab = "Return Period", ylab = "Return Level", ...) { rpstmfc <- c(1.001,10^(seq(0,3,len=200))[-1]) rlev <- qgpd(1/rpstmfc, loc = x$threshold, scale = x$scale, shape = x$param["shape"], lower.tail = FALSE) mfc <- x$npp * x$nhigh/length(x$data) rps <- rpstmfc/mfc ppx <- 1/(mfc * (1 - ppoints(x$nhigh))) if(!ci) { plot(ppx, sort(x$exceedances), log = "x", main = main, xlab = xlab, ylab = ylab, ...) lines(rps, rlev) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$exceedances) matplot(ppx, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, log = "x", ...) lines(rps, rlev) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], log10(ppx), xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx*exp(-smidge), env[,1], ppx*exp(smidge), env[,1], lwd = cilwd) segments(ppx*exp(-smidge), env[,2], ppx*exp(smidge), env[,2], lwd = cilwd) } invisible(list(x = rps, y = rlev)) } "dens.pot" <- function(x, adjust = 1, nplty = 2, jitter = FALSE, main = "Density Plot", xlab = "Quantile", ylab = "Density", ...) { xlimit <- range(x$exceedances) xlimit[2] <- xlimit[2] + diff(xlimit) * 0.075 xvec <- seq(xlimit[1], xlimit[2], length = 100) dens <- dgpd(xvec, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) plot(spline(xvec, dens), main = main, xlab = xlab, ylab = ylab, type = "l", ...) if(jitter) rug(jitter(x$exceedances)) else rug(x$exceedances) flipexceed <- c(x$exceedances, 2*x$threshold - x$exceedances) flipdens <- density(flipexceed, adjust = adjust, from = xlimit[1], to = xlimit[2]) flipdens$y <- 2*flipdens$y lines(flipdens, lty = nplty) invisible(list(x = xvec, y = dens)) } ### Bivariate EVD Models ### "plot.bvevd" <- function(x, mar = 0, which = 1:6, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, grid = 50, legend = TRUE, nplty = 2, blty = 3, method = "cfg", convex = FALSE, rev = FALSE, p = seq(0.75, 0.95, 0.05), mint = 1, half = FALSE, ...) { if (!inherits(x, "bvevd")) stop("Use only with `bvevd' objects") nb.fig <- prod(par("mfcol")) if(mar == 1 || mar == 2) { indx <- paste(c("loc","scale","shape"), as.character(mar), sep="") tdata <- na.omit(x$tdata[, mar]) n <- length(tdata) param <- x$param[indx] names(param) <- c("loc","scale","shape") gev.mar <- structure(list(param = param, tdata = tdata, n = n, loc = param["loc"]), class = c("gev", "uvevd", "evd")) if(missing(which)) which <- 1:4 plot(gev.mar, which = which, main = main, ask = ask, ci = ci, cilwd = cilwd, ...) return(invisible(x)) } if (!is.numeric(which) || any(which < 1) || any(which > 6)) stop("`which' must be in 1:6") show <- rep(FALSE, 6) show[which] <- TRUE if(missing(main)) { main <- c("Conditional Plot One", "Conditional Plot Two", "Density Plot", "Dependence Function", "Quantile Curves", "Spectral Density") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(6) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { bvcpp(x, mar = 1, ci = ci, cilwd = cilwd, main = main[1], xlim = c(0,1), ylim = c(0,1), ...) } if (show[2]) { bvcpp(x, mar = 2, ci = ci, cilwd = cilwd, main = main[2], xlim = c(0,1), ylim = c(0,1), ...) } if (show[3]) { bvdens(x, grid = grid, legend = legend, main = main[3], ...) } if (show[4]) { bvdp(x, nplty = nplty, blty = blty, method = method, convex = convex, rev = rev, main = main[4], ...) } if (show[5]) { bvqc(x, p = p, mint = mint, legend = legend, main = main[5], ...) } if (show[6]) { bvh(x, half = half, main = main[6], ...) } invisible(x) } "bvcpp" <- function (x, ...) UseMethod("bvcpp") "bvdens" <- function (x, ...) UseMethod("bvdens") "bvdp" <- function (x, ...) UseMethod("bvdp") "bvqc" <- function (x, ...) UseMethod("bvqc") "bvh" <- function (x, ...) UseMethod("bvh") "bvcpp.bvevd" <- function(x, mar = 2, ci = TRUE, cilwd = 1, main = "Conditional Probability Plot", xlab = "Empirical", ylab = "Model", ...) { data <- x$tdata mle.m1 <- x$param[c("loc1","scale1","shape1")] mle.m2 <- x$param[c("loc2","scale2","shape2")] data[,1:2] <- exp(-mtransform(data[,1:2], list(mle.m1, mle.m2))) narow <- is.na(data[,1]) | is.na(data[,2]) data <- data[!narow,, drop=FALSE] n <- nrow(data) ppx <- ppoints(n) if(x$model %in% c("log","hr","neglog")) { probs <- ccbvevd(data, mar = mar, dep = x$param["dep"], model = x$model)} if(x$model %in% c("alog","aneglog")) probs <- ccbvevd(data, mar = mar, dep = x$param["dep"], asy = x$param[c("asy1","asy2")], model = x$model) if(x$model %in% c("bilog","negbilog","ct","amix")) probs <- ccbvevd(data, mar = mar, alpha = x$param["alpha"], beta = x$param["beta"], model = x$model) probs <- sort(probs) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- runif(n*99) samp <- matrix(samp, n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppx, y = probs)) } "bvdens.bvevd" <- function(x, grid = 50, legend = TRUE, pch = 1, main = "Density Plot", xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { xlimit <- range(x$tdata[,1], na.rm = TRUE) ylimit <- range(x$tdata[,2], na.rm = TRUE) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.1 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.1 ylimit[1] <- ylimit[1] - diff(ylimit) * 0.1 ylimit[2] <- ylimit[2] + diff(ylimit) * 0.1 xvec <- seq(xlimit[1], xlimit[2], length = grid) yvec <- seq(ylimit[1], ylimit[2], length = grid) xyvals <- expand.grid(xvec, yvec) mar1 <- x$param[c("loc1","scale1","shape1")] mar2 <- x$param[c("loc2","scale2","shape2")] if(x$model %in% c("log","hr","neglog")) dfunargs <- list(dep = x$param["dep"], mar1 = mar1, mar2 = mar2) if(x$model %in% c("alog","aneglog")) dfunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")], mar1 = mar1, mar2 = mar2) if(x$model %in% c("bilog","negbilog","ct","amix")) dfunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"], mar1 = mar1, mar2 = mar2) dfunargs <- c(list(x = xyvals, model = x$model), dfunargs) dens <- do.call("dbvevd", dfunargs) dens <- matrix(dens, nrow = grid, ncol = grid) contour(xvec, yvec, dens, main = main, xlab = xlab, ylab = ylab, ...) data <- x$tdata if(ncol(data) == 2) points(data, pch = pch) if(ncol(data) == 3) { si <- data[,3] ; data <- data[,1:2] points(data[is.na(si),], pch = 4) points(data[si & !is.na(si),], pch = 16) points(data[!si & !is.na(si),], pch = 1) legwrd <- c("True","False","Unknown") ; legpch <- c(16,1,4) if(!any(is.na(si))) {legwrd <- legwrd[1:2] ; legpch <- legpch[1:2]} if(legend) legend(xlimit[1], ylimit[2], legwrd, pch = legpch) } invisible(list(x = xyvals, y = dens)) } "bvdp.bvevd" <- function(x, method = "cfg", convex = FALSE, rev = FALSE, add = FALSE, lty = 1, nplty = 2, blty = 3, main = "Dependence Function", xlab = "t", ylab = "A(t)", ...) { if(ncol(x$data) == 3) nplty <- 0 abvnonpar(data = x$data[,1:2], nsloc1 = x$nsloc1, nsloc2 = x$nsloc2, epmar = FALSE, method = method, convex = convex, rev = rev, plot = TRUE, lty = nplty, blty = blty, main = main, xlab = xlab, ylab = ylab, add = add, ...) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(rev = rev, add = TRUE, lty = lty, model = x$model), afunargs) do.call("abvevd", afunargs) invisible(x) } "bvh.bvevd" <- function(x, half = FALSE, add = FALSE, lty = 1, main = "Spectral Density", xlab = "t", ylab = "h(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(half = half, add = add, plot = TRUE, lty = lty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("hbvevd", afunargs) invisible(x) } "bvqc.bvevd"<- function(x, p = seq(0.75, 0.95, 0.05), mint = 1, add = FALSE, legend = TRUE, lty = 1, lwd = 1, col = 1, xlim = range(x$tdata[,1], na.rm = TRUE), ylim = range(x$tdata[,2], na.rm = TRUE), xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { if(mode(p) != "numeric" || p <= 0 || p >= 1) stop("`p' must be a vector of probabilities") nom <- 100 om <- seq(0, 1, length = nom) # Calculate A(t) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(x = om, plot = FALSE, model = x$model), afunargs) aom <- do.call("abvevd", afunargs) # End Calculate A(t) np <- length(p) qct <- list() p <- p^mint if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } for(i in 1:np) { qct[[i]] <- -cbind(om/aom * log(p[i]), (1-om)/aom * log(p[i])) mar1 <- x$param[c("loc1","scale1","shape1")] mar2 <- x$param[c("loc2","scale2","shape2")] qct[[i]] <- mtransform(qct[[i]], list(mar1, mar2), inv = TRUE) qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nom,2] <- 1.5 * ylim[2] } if(!add) { if(is.null(xlab)) xlab <- "" if(is.null(ylab)) ylab <- "" if(ncol(x$tdata) == 2) { plot(x$tdata[,1:2], xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) } if(ncol(x$tdata) == 3) { plot(x$tdata[,1:2], xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, type = "n", ...) si <- x$tdata[,3] ; data <- x$tdata[,1:2] points(data[is.na(si),], pch = 4) points(data[si & !is.na(si),], pch = 16) points(data[!si & !is.na(si),], pch = 1) legwrd <- c("True","False","Unknown") ; legpch <- c(16,1,4) if(!any(is.na(si))) {legwrd <- legwrd[1:2] ; legpch <- legpch[1:2]} if(legend) legend(xlim[1], ylim[2], legwrd, pch = legpch) } for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } else { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } return(invisible(qct)) } ### Bivariate POT Models ### "plot.bvpot" <- function(x, mar = 0, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), grid = 50, above = FALSE, levels = NULL, tlty = 1, blty = 3, rev = FALSE, p = seq(0.75, 0.95, 0.05), half = FALSE, ...) { if (!inherits(x, "bvpot")) stop("Use only with `bvpot' objects") nb.fig <- prod(par("mfcol")) if(mar == 1 || mar == 2) { indx <- paste(c("scale","shape"), as.character(mar), sep="") param <- x$param[indx] names(param) <- c("scale","shape") mdata <- x$data[, mar] mth <- x$threshold[mar] mexceed <- mdata[mdata > mth & !is.na(mdata)] pot.mar <- structure(list(param = param, data = mdata, threshold = mth, exceedances = mexceed, nhigh = length(mexceed), npp = length(mdata), scale = param["scale"]), class = c("pot", "uvevd", "evd")) if(missing(which)) which <- 1:4 plot(pot.mar, which = which, main = main, ask = ask, ...) return(invisible(x)) } if (!is.numeric(which) || any(which < 1) || any(which > 4)) stop("`which' must be in 1:4") show <- rep(FALSE, 4) show[which] <- TRUE if(missing(main)) { main <- c("Density Plot", "Dependence Function", "Quantile Curves", "Spectral Density") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(4) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { bvdens(x, grid = grid, above = above, levels = levels, tlty = tlty, main = main[1], ...) } if (show[2]) { bvdp(x, blty = blty, rev = rev, main = main[2], ...) } if (show[3]) { bvqc(x, p = p, above = above, tlty = tlty, main = main[3], ...) } if (show[4]) { bvh(x, half = half, main = main[4], ...) } invisible(x) } "bvdens.bvpot" <- function(x, grid = 50, above = FALSE, tlty = 1, levels = NULL, main = "Density Plot", pch = 1, xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], xlim, ylim, ...) { xlimit <- range(x$data[,1], na.rm = TRUE) ylimit <- range(x$data[,2], na.rm = TRUE) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.1 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.1 ylimit[1] <- ylimit[1] - diff(ylimit) * 0.1 ylimit[2] <- ylimit[2] + diff(ylimit) * 0.1 if(missing(xlim)) xlim <- xlimit if(missing(ylim)) ylim <- ylimit u1 <- x$threshold[1] u2 <- x$threshold[2] if((xlimit[2] <= u1) || (ylimit[2] <= u2)) stop("x and y limits must contain thresholds") xvec <- seq(u1, xlimit[2], length = grid) yvec <- seq(u2, ylimit[2], length = grid) xyvals <- txyvals <- fxyvals <- expand.grid(xvec, yvec) mar1 <- x$param[c("scale1","shape1")] mar2 <- x$param[c("scale2","shape2")] # Transform exceedance grid to frechet margins txyvals[,1] <- mtransform(xyvals[,1], c(u1, mar1)) txyvals[,2] <- mtransform(xyvals[,2], c(u2, mar2)) lambda <- x$nat[1:2]/(nrow(x$data) + 1) fxyvals[,1] <- -1/log(1 - lambda[1] * txyvals[,1]) fxyvals[,2] <- -1/log(1 - lambda[2] * txyvals[,2]) # End transform if(x$model %in% c("log","hr","neglog")) dfunargs <- list(dep = x$param["dep"], mar1 = c(1,1,1), mar2 = c(1,1,1)) if(x$model %in% c("alog","aneglog")) dfunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")], mar1 = c(1,1,1), mar2 = c(1,1,1)) if(x$model %in% c("bilog","negbilog","ct","amix")) dfunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"], mar1 = c(1,1,1), mar2 = c(1,1,1)) dfunargs <- c(list(x = fxyvals, model = x$model), dfunargs) # Jacobian terms txyvals[,1] <- fxyvals[,1]^2 * txyvals[,1]^(1 + mar1[2]) / (1 - lambda[1] * txyvals[,1]) txyvals[,1] <- lambda[1] * txyvals[,1] / mar1[1] txyvals[,2] <- fxyvals[,2]^2 * txyvals[,2]^(1 + mar2[2]) / (1 - lambda[2] * txyvals[,2]) txyvals[,2] <- lambda[2] * txyvals[,2] / mar2[1] # End jacobian terms dens <- do.call("dbvevd", dfunargs) dens <- dens * txyvals[,1] * txyvals[,2] dens <- matrix(dens, nrow = grid, ncol = grid) if(is.null(levels)) { levels <- seq(10, 40, length = 4) levels <- dens[cbind(levels, levels)] levels <- signif(levels, 1) } contour(xvec, yvec, dens, main = main, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, levels = levels, ...) abline(v = u1, lty = tlty); abline(h = u2, lty = tlty) data <- x$data if(above) { above <- (data[,1] > u1) & (data[,2] > u2) data <- data[above,] } points(data, pch = pch) invisible(list(x = xyvals, y = dens)) } "bvdp.bvpot" <- function(x, rev = FALSE, add = FALSE, lty = 1, blty = 3, main = "Dependence Function", xlab = "t", ylab = "A(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(rev = rev, add = add, plot = TRUE, lty = lty, blty = blty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("abvevd", afunargs) invisible(x) } "bvqc.bvpot"<- function(x, p = seq(0.75, 0.95, 0.05), above = FALSE, tlty = 1, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(x$data[,1], na.rm = TRUE), ylim = range(x$data[,2], na.rm = TRUE), xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { if(mode(p) != "numeric" || p <= 0 || p >= 1) stop("`p' must be a vector of probabilities") nom <- 100 om <- seq(0, 1, length = nom) # Calculate A(t) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(x = om, plot = FALSE, model = x$model), afunargs) aom <- do.call("abvevd", afunargs) # End Calculate A(t) np <- length(p) qct <- list() if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } u1 <- x$threshold[1] u2 <- x$threshold[2] lambda <- x$nat[1:2]/(nrow(x$data) + 1) for(i in 1:np) { qct[[i]] <- cbind((1 - p[i]^(om/aom))/lambda[1], (1 - p[i]^((1-om)/aom))/lambda[2]) mar1 <- c(u1, x$param[c("scale1","shape1")]) mar2 <- c(u2, x$param[c("scale2","shape2")]) qct[[i]] <- mtransform(qct[[i]], list(mar1, mar2), inv = TRUE) qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nom,2] <- 1.5 * ylim[2] } data <- x$data if(above) { above <- (data[,1] > u1) & (data[,2] > u2) data <- data[above,] } if(!add) { if(is.null(xlab)) xlab <- "" if(is.null(ylab)) ylab <- "" plot(data, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) abline(v = u1, lty = tlty); abline(h = u2, lty = tlty) for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } else { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } return(invisible(qct)) } "bvh.bvpot" <- function(x, half = FALSE, add = FALSE, lty = 1, main = "Spectral Density", xlab = "t", ylab = "h(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(half = half, add = add, plot = TRUE, lty = lty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("hbvevd", afunargs) invisible(x) } ### Documented Ancillary Functions ### "mtransform"<- function(x, p, inv = FALSE, drp = FALSE) { if(is.list(p)) { if(is.null(dim(x)) && length(x) != length(p)) stop(paste("`p' must have", length(x), "elements")) if(!is.null(dim(x)) && ncol(x) != length(p)) stop(paste("`p' must have", ncol(x), "elements")) if(is.null(dim(x))) dim(x) <- c(1, length(p)) for(i in 1:length(p)) x[,i] <- Recall(x[,i], p[[i]], inv = inv) if(ncol(x) == 1 || (nrow(x) == 1 && drp)) x <- drop(x) return(x) } if(is.null(dim(x))) dim(x) <- c(length(x), 1) p <- matrix(t(p), nrow = nrow(x), ncol = 3, byrow = TRUE) if(min(p[,2]) <= 0) stop("invalid marginal scale") gumind <- (p[,3] == 0) nzshapes <- p[!gumind,3] if(!inv) { x <- (x - p[,1])/p[,2] x[gumind, ] <- exp(-x[gumind, ]) if(any(!gumind)) x[!gumind, ] <- pmax(1 + nzshapes*x[!gumind, ], 0)^(-1/nzshapes) } else { x[gumind, ] <- p[gumind,1] - p[gumind,2] * log(x[gumind, ]) x[!gumind, ] <- p[!gumind,1] + p[!gumind,2] * (x[!gumind, ]^(-nzshapes) - 1)/nzshapes } if(ncol(x) == 1 || (nrow(x) == 1 && drp)) x <- drop(x) x } "ccbvevd" <- function(x, mar = 2, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), lower.tail = TRUE) { if(min(x[,1:2]) <= 0 || max(x[,1:2]) >= 1) stop("x must contain values in (0,1)") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") if(model %in% m1) dep <- 1 if(model %in% m3) alpha <- beta <- 1 imodel <- match(model, c("log","alog","hr","neglog","aneglog", "bilog","negbilog","ct","amix")) n <- nrow(x) if(ncol(x) == 2) { ccop <- .C("ccop", as.double(x[,1]), as.double(x[,2]), as.integer(mar), as.double(dep), as.double(asy[1]), as.double(asy[2]), as.double(alpha), as.double(beta), as.integer(n), as.integer(imodel), ccop = double(n), PACKAGE = "evd")$ccop } if(ncol(x) == 3) { "dbvevd.case" <- function(x1, x2, case, mar, dep, asy, alpha, beta) { nlbvfn <- paste("nlbv", model, sep = "") n <- max(length(x1), length(x2)) x1 <- rep(-1/log(x1), length = n) x2 <- rep(-1/log(x2), length = n) case <- rep(case, length = n) mpar <- as.double(1) split <- as.integer(1) if(mar == 1) { tmp <- x1; x1 <- x2; x2 <- tmp if(model %in% c("alog","aneglog")) asy <- rev(asy) if(model %in% c("bilog","negbilog","ct")) { tmp <- alpha; alpha <- beta; beta <- tmp } if(model == "amix") { alpha <- alpha + 3*beta; beta <- -beta } } if(model %in% c("bilog","negbilog","ct","amix")) nl <- .C(nlbvfn, as.double(x1), as.double(x2), n, case, as.double(alpha), as.double(beta), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n), PACKAGE = "evd")$dns if(model %in% c("log","hr","neglog")) nl <- .C(nlbvfn, as.double(x1), as.double(x2), n, case, as.double(dep), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n), PACKAGE = "evd")$dns if(model %in% c("alog","aneglog")) nl <- .C(nlbvfn, as.double(x1), as.double(x2), n, case, as.double(dep), as.double(asy[1]), as.double(asy[2]), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n), PACKAGE = "evd")$dns jac.alt <- 1/x1 + 1/x2 + 2*log(x1 * x2) exp(jac.alt - nl) } ccop <- numeric(n) case <- as.integer(x[,3]) eps <- .Machine$double.eps^0.5 if(mar == 2) { fm <- x[,1] ; cm <- x[,2] } if(mar == 1) { fm <- x[,2] ; cm <- x[,1] } for(i in 1:n) { if(is.na(case[i])) { ccop[i] <- .C("ccop", as.double(x[i,1]), as.double(x[i,2]), as.integer(mar), as.double(dep), as.double(asy[1]), as.double(asy[2]), as.double(alpha), as.double(beta), as.integer(1), as.integer(imodel), ccop = double(1), PACKAGE = "evd")$ccop } else { den <- integrate("dbvevd.case", eps, 1-eps, x2 = cm[i], case = case[i], mar=mar, dep=dep, asy=asy, alpha=alpha, beta=beta)$value num <- integrate("dbvevd.case", eps, fm[i], x2 = cm[i], case = case[i], mar=mar, dep=dep, asy=asy, alpha=alpha, beta=beta)$value ccop[i] <- num/den } } } if(!lower.tail) ccop <- 1 - ccop ccop } evd/R/bvpot.R0000744000176200001440000010516412017604711012515 0ustar liggesusers fbvpot <- function(x, threshold, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), likelihood = c("censored","poisson"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() likelihood <- match.arg(likelihood) ft <- switch(likelihood, censored = fbvcpot(x = x, u = threshold, model = model, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), poisson = fbvppot(x = x, u = threshold, model = model, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) structure(c(ft, call = call), class = c("bvpot", "evd")) } fbvcpot <- function(x, u, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { model <- match.arg(model) if(sym && !(model %in% c("alog","aneglog","ct"))) warning("Argument `sym' was ignored") switch(model, log = fbvclog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), bilog = fbvcbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), alog = fbvcalog(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), neglog = fbvcneglog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), negbilog = fbvcnegbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), aneglog = fbvcaneglog(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), ct = fbvcct(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), hr = fbvchr(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), amix = fbvcamix(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) } fbvppot <- function(x, u, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { model <- match.arg(model) if(model %in% c("alog","aneglog","amix")) stop("This model is not appropriate for poisson likelihood") if(sym && (model != "ct")) warning("Argument `sym' was ignored") switch(model, log = fbvplog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), bilog = fbvpbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), neglog = fbvpneglog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), negbilog = fbvpnegbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), ct = fbvpct(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), hr = fbvphr(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) } ### Censored Likelihood Fitting ### fbvclog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvclog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvclog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "log") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvclog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvclog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvclog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvclog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "log") } fbvcbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcbilog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "bilog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "bilog") } fbvcalog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcalog <- function(scale1, shape1, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcalog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, asy1, asy2, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "alog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym, TRUE) f <- formals(nllbvcalog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcalog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcalog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcalog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "alog") } fbvcneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcneglog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcneglog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "neglog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvcneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "neglog") } fbvcnegbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcnegbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcnegbilog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "negbilog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcnegbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcnegbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcnegbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcnegbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "negbilog") } fbvcaneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcaneglog <- function(scale1, shape1, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcaneglog", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, asy1, asy2, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "aneglog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym, TRUE) f <- formals(nllbvcaneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcaneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcaneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcaneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "aneglog") } fbvcct <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcct <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcct", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "ct") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym) f <- formals(nllbvcct)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcct) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcct(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcct(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "ct") } fbvchr <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvchr <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvchr", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "hr") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvchr)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvchr) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvchr(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvchr(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "hr") } fbvcamix <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcamix <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvcamix", spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "amix") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcamix)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcamix) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcamix(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcamix(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "amix") } ### Poisson Likelihood Fitting ### fbvplog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvplog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvplog", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "log") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvplog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvplog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvplog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvplog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "log") } fbvpneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpneglog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvpneglog", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "neglog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvpneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "neglog") } fbvpct <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpct <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvpct", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "ct") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym) f <- formals(nllbvpct)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpct) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpct(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpct(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "ct") } fbvpbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvpbilog", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "bilog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvpbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "bilog") } fbvpnegbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpnegbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvpnegbilog", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "negbilog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvpnegbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpnegbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpnegbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpnegbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "negbilog") } fbvphr <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvphr <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C("nllbvphr", spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1), PACKAGE = "evd")$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "hr") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvphr)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvphr) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvphr(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvphr(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "hr") } ### Method Function ### "print.bvpot" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Likelihood:", x$likelihood, "\n") cat("Deviance:", deviance(x), "\n") cat("AIC:", AIC(x), "\n") if(!is.null(x$dep.summary)) cat("Dependence:", x$dep.summary, "\n") cat("\nThreshold:", round(x$threshold, digits), "\n") cat("Marginal Number Above:", x$nat[1:2], "\n") cat("Marginal Proportion Above:", round(x$nat[1:2]/x$n, digits), "\n") cat("Number Above:", x$nat[3], "\n") cat("Proportion Above:", round(x$nat[3]/x$n, digits), "\n") cat("\nEstimates\n") print.default(format(fitted(x), digits = digits), print.gap = 2, quote = FALSE) if(!is.null(std.errors(x))) { cat("\nStandard Errors\n") print.default(format(std.errors(x), digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } evd/R/bvfit.R0000744000176200001440000014374112017604711012500 0ustar liggesusers "fbvevd" <- function(x, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() model <- match.arg(model) if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) { if(ncol(x) != 3) stop("`x' has incorrect number of columns") if(!is.logical(x[,3])) stop("third column of `x' must be logical") } if(sym && !(model %in% c("alog","aneglog","ct"))) warning("Argument `sym' was ignored") ft <- switch(model, log = fbvlog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), alog = fbvalog(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), hr = fbvhr(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2= nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), neglog = fbvneglog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), aneglog = fbvaneglog(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), bilog = fbvbilog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), negbilog = fbvnegbilog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr= corr, method=method, warn.inf=warn.inf), ct = fbvct(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), amix = fbvamix(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf)) structure(c(ft, call = call), class = c("bvevd","evd")) } "fbvlog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvlog <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.1 || dep > 1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvlog", spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1, as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "log") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvlog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvlog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvlog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvlog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvlog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "log") } "fbvalog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvalog <- function(loc1, scale1, shape1, loc2, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(dep,asy1,asy2) > 1) || any(c(asy1,asy2) < 0.001) || dep < 0.1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvalog", spx$x1, spx$x2, spx$n, spx$si, dep, asy1, asy2, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "alog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:9)[c(!cscale, !cshape, TRUE, !sym, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvalog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvalog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvalog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvalog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvalog(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "alog") } "fbvhr"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvhr <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.2 || dep > 10) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvhr", spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "hr") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvhr)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvhr)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvhr) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvhr(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvhr(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "hr") } "fbvneglog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvneglog <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.05 || dep > 5) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvneglog", spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "neglog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvneglog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvneglog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvneglog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvneglog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvneglog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "neglog") } "fbvaneglog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvaneglog <- function(loc1, scale1, shape1, loc2, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(asy1,asy2) > 1) || any(c(asy1,asy2) < 0.001) || dep < 0.05 || dep > 5) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvaneglog", spx$x1, spx$x2, spx$n, spx$si, dep, asy1, asy2, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "aneglog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:9)[c(!cscale, !cshape, TRUE, !sym, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvaneglog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvaneglog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvaneglog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvaneglog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvaneglog(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "aneglog") } "fbvbilog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvbilog <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.1) || any(c(alpha,beta) > 0.999)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvbilog", spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "bilog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvbilog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvbilog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvbilog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvbilog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvbilog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "bilog") } "fbvnegbilog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvnegbilog <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.1) || any(c(alpha,beta) > 20)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvnegbilog", spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "negbilog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvnegbilog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvnegbilog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvnegbilog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvnegbilog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvnegbilog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "negbilog") } "fbvct"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvct <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.001) || any(c(alpha,beta) > 30)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvct", spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "ct") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, !sym)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvct)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvct)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvct) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvct(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvct(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "ct") } "fbvamix"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvamix <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01)) return(1e6) if(alpha < 0 || (alpha + 3*beta) < 0) return(1e6) if((alpha + beta) > 1 || (alpha + 2*beta) > 1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C("nlgev", spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1), PACKAGE = "evd")$dns else m1l <- 0 if(spx$n.m2) m2l <- .C("nlgev", spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1), PACKAGE = "evd")$dns else m2l <- 0 bvl <- .C("nlbvamix", spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1), PACKAGE = "evd")$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "amix") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvamix)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvamix)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvamix) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvamix(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvamix(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "amix") } ### Method Function ### "print.bvevd" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", deviance(x), "\n") cat("AIC:", AIC(x), "\n") if(!is.null(x$dep.summary)) cat("Dependence:", x$dep.summary, "\n") cat("\nEstimates\n") print.default(format(fitted(x), digits = digits), print.gap = 2, quote = FALSE) if(!is.null(std.errors(x))) { cat("\nStandard Errors\n") print.default(format(std.errors(x), digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } ### Ancillary Functions ### "bvstart.vals" <- # Calculate Starting Values For Bivariate Models function(x, start, nmdots, param, method = c("evd","pot"), nsloc1 = NULL, nsloc2 = NULL, u = NULL, model) { method <- match.arg(method) if(method == "evd") { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") } if(method == "pot") loc.param1 <- loc.param2 <- NULL if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param if(method == "evd") { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") st1 <- fitted(fgev(x[,1], nsloc = nsloc1, std.err = FALSE)) st2 <- fitted(fgev(x[,2], nsloc = nsloc2, std.err = FALSE)) st1 <- as.list(st1); st2 <- as.list(st2) } if(method == "pot") { st1 <- fitted(fpot(x[,1], u[1], std.err = FALSE)) st2 <- fitted(fpot(x[,2], u[2], std.err = FALSE)) st1 <- as.list(st1); st2 <- as.list(st2) } start[c(loc.param1, "scale1", "shape1")] <- st1 tmp2 <- loc.param2 if("scale2" %in% param) tmp2 <- c(tmp2, "scale2") if("shape2" %in% param) tmp2 <- c(tmp2, "shape2") tmp <- sub("2", "", tmp2) start[tmp2] <- st2[tmp] if(model == "log") start[["dep"]] <- 0.75 if(model == "alog") { start[["asy1"]] <- 0.75 if("asy2" %in% param) start[["asy2"]] <- 0.75 start[["dep"]] <- 0.65 } if(model == "hr") start[["dep"]] <- 1 if(model == "neglog") start[["dep"]] <- 0.6 if(model == "aneglog") { start[["asy1"]] <- 0.75 if("asy2" %in% param) start[["asy2"]] <- 0.75 start[["dep"]] <- 0.8 } if(model == "bilog") start[["alpha"]] <- start[["beta"]] <- 0.75 if(model == "negbilog") start[["alpha"]] <- start[["beta"]] <- 1/0.6 if(model == "ct") { start[["alpha"]] <- 0.6 if("beta" %in% param) start[["beta"]] <- 0.6 } if(model == "amix") { start[["alpha"]] <- 0.75 start[["beta"]] <- 0 } start <- start[!(param %in% nmdots)] } if(any(!is.na(match(names(start),c("mar1","mar2","asy"))))) { if(("mar1" %in% names(start)) && (length(start$mar1) != (2+length(loc.param1)))) stop("mar1 in `start' has incorrect length") if(("mar2" %in% names(start)) && (length(start$mar2) != (2+length(loc.param2)))) stop("mar2 in `start' has incorrect length") if(("asy" %in% names(start)) && (length(start$asy) != 2)) stop("asy in `start' should have length two") start <- unlist(start) names(start)[grep("mar1",names(start))] <- c(loc.param1,"scale1","shape1") names(start)[grep("mar2",names(start))] <- c(loc.param2,"scale2","shape2") start <- as.list(start) } if(!is.list(start)) stop("`start' must be a named list") start } "sep.bvdata" <- # Separate Bivariate Data For Bivariate Models function(x, method = c("evd","cpot","ppot"), u = NULL) { method <- match.arg(method) if(method == "evd") { na <- rowSums(cbind(is.na(x[,1]), 2*is.na(x[,2]))) if(!any(na == 0)) stop("`x' must have at least one complete observation") x.m1 <- as.double(x[na == 2, 1]) n.m1 <- as.integer(length(x.m1)) x.m2 <- as.double(x[na == 1, 2]) n.m2 <- as.integer(length(x.m2)) x.full <- x[na == 0, , drop = FALSE] x1 <- as.double(x.full[,1]) x2 <- as.double(x.full[,2]) n <- as.integer(nrow(x.full)) if(ncol(x) == 3) { si <- x.full[,3] si[is.na(si)] <- 2 } else si <- rep(2, n) si <- as.integer(si) spx <- list(x.m1 = x.m1, n.m1 = n.m1, x.m2 = x.m2, n.m2 = n.m2, x1 = x1, x2 = x2, n = n, si = si, na = na) } else { x1 <- x[,1] x2 <- x[,2] n <- length(x1) r1 <- r2 <- NULL iau1 <- (x1 > u[1]) & !is.na(x1) iau2 <- (x2 > u[2]) & !is.na(x2) nat <- c(sum(iau1), sum(iau2), sum(iau1 & iau2)) lambda1 <- sum(iau1) / (n + 1) lambda2 <- sum(iau2) / (n + 1) lambda <- c(lambda1, lambda2) if(method == "ppot") { x1[is.na(x1)] <- mean(x1[!iau1], na.rm = TRUE) x2[is.na(x2)] <- mean(x2[!iau2], na.rm = TRUE) r1 <- 1 - rank(x1) / (n + 1) r2 <- 1 - rank(x2) / (n + 1) r1[iau1] <- lambda1 r2[iau2] <- lambda2 } x1 <- x1 - u[1] x2 <- x2 - u[2] x1[!iau1] <- 0 x2[!iau2] <- 0 i0 <- iau1 | iau2 x1 <- x1[i0] ; x2 <- x2[i0] if(method == "ppot") { r1 <- r1[i0] ; r2 <- r2[i0] } nn <- length(x1) thdi <- as.logical(x1) + 2*as.logical(x2) spx <- list(x1 = x1, x2 = x2, nn = nn, n = n, thdi = thdi, lambda = lambda, r1 = r1, r2 = r2, nat = nat) } spx } "bvpost.optim" <- # Post-optimization Processing function(x, opt, nm, fixed.param, std.err, corr, sym, cmar, method = c("evd","pot"), nsloc1 = NULL, nsloc2 = NULL, u = NULL, nat = NULL, likelihood = NULL, model) { method <- match.arg(method) if(opt$convergence != 0) { warning(paste("optimization for", model, "may not have succeeded"), call. = FALSE) if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop(paste("observed information matrix for", model, "is singular; use std.err = FALSE")) var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop(paste("observed information matrix for", model, "is singular; use std.err = FALSE")) std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL fixed <- unlist(fixed.param) param <- c(opt$par, fixed) fixed2 <- NULL if(method == "evd") { if(cmar[1]) { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") fixed2 <- c(fixed2, param[loc.param1]) } if(cmar[2]) fixed2 <- c(fixed2, param["scale1"]) if(cmar[3]) fixed2 <- c(fixed2, param["shape1"]) } if(method == "pot") { if(cmar[1]) fixed2 <- c(fixed2, param["scale1"]) if(cmar[2]) fixed2 <- c(fixed2, param["shape1"]) } if(sym) { if(model %in% c("alog","aneglog")) fixed2 <- c(fixed2, param["asy1"]) if(model == "ct") fixed2 <- c(fixed2, param["alpha"]) } if(!is.null(fixed2)) { names(fixed2) <- sub("1", "2", names(fixed2)) names(fixed2) <- sub("alpha", "beta", names(fixed2)) } param <- c(param, fixed2) # Transform to stationarity x2 <- x if(!is.null(nsloc1)) { trend <- param[paste("loc1", names(nsloc1), sep="")] trend <- drop(as.matrix(nsloc1) %*% trend) x2[,1] <- x[,1] - trend } if(!is.null(nsloc2)) { trend <- param[paste("loc2", names(nsloc2), sep="")] trend <- drop(as.matrix(nsloc2) %*% trend) x2[,2] <- x[,2] - trend } # End transform # Dependence chi if(model %in% c("log", "hr", "neglog")) { dep <- param["dep"] dep.sum <- 2*(1 - abvevd(dep = dep, model = model)) } if(model %in% c("alog", "aneglog")) { dep <- param["dep"] asy <- param[c("asy1", "asy2")] dep.sum <- 2*(1 - abvevd(dep = dep, asy = asy, model = model)) } if(model %in% c("bilog", "negbilog", "ct", "amix")) { alpha <- param["alpha"] beta <- param["beta"] dep.sum <- 2*(1-abvevd(alpha = alpha, beta = beta, model = model)) } # End dependence chi out <- list(estimate = opt$par, std.err = std.err, fixed = fixed, fixed2 = fixed2, param = param, deviance = 2*opt$value, dep.summary = dep.sum, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x) if(method == "evd") out <- c(out, list(tdata = x2, nsloc1 = nsloc1, nsloc2 = nsloc2)) if(method == "pot") out <- c(out, list(threshold = u, nat = nat, likelihood = likelihood)) c(out, list(n = nrow(x), sym = sym, cmar = cmar, model = model)) } evd/R/bvdist.R0000744000176200001440000014575412017604710012666 0ustar liggesusers "rbvevd" <- function(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = rbvlog(n = n, dep = dep, mar1 = mar1, mar2 = mar2), alog = rbvalog(n = n, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2), hr = rbvhr(n = n, dep = dep, mar1 = mar1, mar2 = mar2), neglog = rbvneglog(n = n, dep = dep, mar1 = mar1, mar2 = mar2), aneglog = rbvaneglog(n = n, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2), bilog = rbvbilog(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), negbilog = rbvnegbilog(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), ct = rbvct(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), amix = rbvamix(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2)) } "rbvlog"<- # Uses Algorithm 1.1 in Stephenson(2003) function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") sim <- .C("rbvlog_shi", as.integer(n), as.double(dep), sim = double(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(1/sim, list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvalog"<- # Uses Algorithm 1.2 in Stephenson(2003) function(n, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(dep == 1 || any(asy == 0)) { asy <- c(0,0) dep <- 1 } sim <- .C("rbvalog_shi", as.integer(n), as.double(dep), as.double(asy), sim = double(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(1/sim, list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvhr" <- function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") sim <- .C("rbvhr", as.integer(n), as.double(dep), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvneglog"<- function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") sim <- .C("rbvneglog", as.integer(n), as.double(dep), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvaneglog"<- function(n, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") sim <- .C("rbvaneglog", as.integer(n), as.double(dep), as.double(asy), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvbilog"<- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") sim <- .C("rbvbilog", as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvnegbilog"<- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") sim <- .C("rbvnegbilog", as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvct" <- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") sim <- .C("rbvct", as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvamix" <- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") sim <- .C("rbvamix", as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n), PACKAGE = "evd")$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "pbvevd" <- function(q, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = pbvlog(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), alog = pbvalog(q = q, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), hr = pbvhr(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), neglog = pbvneglog(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), aneglog = pbvaneglog(q = q, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), bilog = pbvbilog(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), negbilog = pbvnegbilog(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), ct = pbvct(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), amix = pbvamix(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail)) } "pbvlog"<- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) v <- apply(q^(1/dep),1,sum)^dep pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvalog"<- function(q, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) asy <- rep(asy,rep(nrow(q),2)) v <- apply((asy*q)^(1/dep),1,sum)^dep + apply((1-asy)*q,1,sum) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvhr" <- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) fn <- function(x1,x2) x1*pnorm(1/dep + dep * log(x1/x2) / 2) v <- fn(q[,1],q[,2]) + fn(q[,2],q[,1]) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvneglog"<- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) v <- apply(q,1,sum) - apply(q^(-dep),1,sum)^(-1/dep) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvaneglog"<- function(q, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) asy <- rep(asy,rep(nrow(q),2)) v <- apply(q,1,sum) - apply((asy*q)^(-dep),1,sum)^(-1/dep) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvbilog"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) gma <- numeric(nrow(q)) for(i in 1:nrow(q)) { gmafn <- function(x) (1-alpha) * q[i,1] * (1-x)^beta - (1-beta) * q[i,2] * x^alpha if(any(is.na(q[i,]))) gma[i] <- NA else if(any(is.infinite(q[i,]))) gma[i] <- 0.5 else if(q[i,1] == 0) gma[i] <- 0 else if(q[i,2] == 0) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- q[,1] * gma^(1-alpha) + q[,2] * (1 - gma)^(1-beta) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvnegbilog"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) gma <- numeric(nrow(q)) for(i in 1:nrow(q)) { gmafn <- function(x) (1+alpha) * q[i,1] * x^alpha - (1+beta) * q[i,2] * (1-x)^beta if(any(is.na(q[i,]))) gma[i] <- NA else if(any(is.infinite(q[i,]))) gma[i] <- Inf else if(q[i,1] == 0) gma[i] <- 1 else if(q[i,2] == 0) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- q[,1] + q[,2] - q[,1] * gma^(1+alpha) - q[,2] * (1 - gma)^(1+beta) v[is.infinite(gma)] <- Inf pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvct" <- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) u <- (alpha * q[,2]) / (alpha * q[,2] + beta * q[,1]) v <- q[,2] * pbeta(u, shape1 = alpha, shape2 = beta + 1) + q[,1] * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) v[is.infinite(q[,1]) || is.infinite(q[,2])] <- Inf v[(q[,1] + q[,2]) == 0] <- 0 pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvamix"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) qsum <- apply(q, 1, sum) v <- qsum - (alpha + beta) * q[,1] + alpha * (q[,1]^2)/qsum + beta * (q[,1]^3)/(qsum^2) v[is.infinite(q[,1]) || is.infinite(q[,2])] <- Inf v[(q[,1] + q[,2]) == 0] <- 0 pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "abvevd" <- function(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), rev = FALSE, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", ...) { if(any(x < 0, na.rm = TRUE) || any(x > 1, na.rm = TRUE)) stop("invalid argument for `x'") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") if(rev && (model %in% c("aneglog", "alog"))) asy <- asy[2:1] if(rev && (model %in% c("bilog", "negbilog", "ct"))) { tmpalpha <- alpha alpha <- beta beta <- tmpalpha } if(rev && (model == "amix")) { tmpalpha <- alpha alpha <- alpha + 3*beta beta <- -beta } switch(model, log = abvlog(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), alog = abvalog(x = x, dep = dep, asy = asy, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), hr = abvhr(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), neglog = abvneglog(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), aneglog = abvaneglog(x = x, dep = dep, asy = asy, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), bilog = abvbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), negbilog = abvnegbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), ct = abvct(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), amix = abvamix(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...)) } "abvlog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep a <- (x^idep + (1-x)^idep)^dep if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvalog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep a <- ((asy[1]*x)^idep + (asy[2]*(1-x))^idep)^dep + (1-asy[1])*x + (1-asy[2])*(1-x) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvhr" <- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) fn <- function(z) z*pnorm(1/dep + dep * log(z/(1-z)) / 2) a <- fn(x) + fn(1-x) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvneglog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) a <- 1 - (x^(-dep) + (1-x)^(-dep))^(-1/dep) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvaneglog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") a <- 1 - ((asy[1]*x)^(-dep) + (asy[2]*(1-x))^(-dep))^(-1/dep) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1-alpha) * x[i] * (1-z)^beta - (1-beta) * (1-x[i]) * z^alpha if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 0 else if(x[i] == 1) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- x * gma^(1-alpha) + (1-x) * (1 - gma)^(1-beta) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvnegbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1+alpha) * x[i] * z^alpha - (1+beta) * (1-x[i]) * (1-z)^beta if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 1 else if(x[i] == 1) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- 1 - x * gma^(1+alpha) - (1-x) * (1 - gma)^(1+beta) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvct" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) u <- (alpha * (1-x)) / (alpha * (1-x) + beta * x) a <- (1-x) * pbeta(u, shape1 = alpha, shape2 = beta + 1) + x * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvamix" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) a <- 1 - (alpha + beta) * x + alpha * (x^2) + beta * (x^3) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "hbvevd" <- function(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), half = FALSE, plot = FALSE, add = FALSE, lty = 1, ...) { if(any(x < 0, na.rm = TRUE) || any(x > 1, na.rm = TRUE)) stop("invalid argument for `x'") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = hbvlog(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), alog = hbvalog(x = x, dep = dep, asy = asy, plot = plot, add = add, half = half, lty = lty, ...), hr = hbvhr(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), neglog = hbvneglog(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), aneglog = hbvaneglog(x = x, dep = dep, asy = asy, plot = plot, add = add, half = half, lty = lty, ...), bilog = hbvbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), negbilog = hbvnegbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), ct = hbvct(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), amix = hbvamix(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...)) } "hbvlog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep h <- (idep - 1) * (x * (1-x))^(-1-idep) * (x^(-idep) + (1-x)^(-idep))^(dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvalog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep h <- (idep - 1) * (asy[1] * asy[2])^idep * (x * (1-x))^(-1-idep) * ((asy[1]/x)^idep + (asy[2]/(1-x))^idep)^(dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvhr" <- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) h <- dep * dnorm(1/dep + dep * log(x/(1-x)) / 2) h <- h / (2 * x * (1-x)^2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvneglog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) h <- (1 + dep) * (x * (1-x))^(dep-1) * (x^dep + (1-x)^dep)^(-1/dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvaneglog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") h <- (1 + dep) * (asy[1] * asy[2])^(-dep) * (x * (1-x))^(dep-1) * ((x/asy[1])^dep + ((1-x)/asy[2])^dep)^(-1/dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1-alpha) * (1-x[i]) * (1-z)^beta - (1-beta) * x[i] * z^alpha if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 0 else if(x[i] == 1) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- x * gma^(1-alpha) + (1-x) * (1 - gma)^(1-beta) h <- exp(log(1-alpha) + log(beta) + (beta - 1)*log(1-gma) + log(1-x)) + exp(log(1-beta) + log(alpha) + (alpha - 1)*log(gma) + log(x)) h <- exp(log(1-alpha) + log(1-beta) - log(x * (1-x)) - log(h)) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvnegbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1+alpha) * (1-x[i]) * z^alpha - (1+beta) * x[i] * (1-z)^beta if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 1 else if(x[i] == 1) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } h <- exp(log(1+alpha) + log(alpha) + (alpha - 1)*log(gma) + log(1-x)) + exp(log(1+beta) + log(beta) + (beta - 1)*log(1-gma) + log(x)) h <- exp(log(1+alpha) + log(1+beta) + alpha * log(gma) + beta * log(1-gma) - log(x * (1-x)) - log(h)) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvct" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) u <- (alpha * x) / (alpha * x + beta * (1-x)) c1 <- alpha * beta / (alpha + beta + 1) h <- dbeta(u, shape1 = alpha + 1, shape2 = beta + 1) / (alpha * x^2 * (1-x) + beta * x * (1-x)^2) * c1 if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvamix" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) h <- 2 * alpha + 6 * beta * (1-x) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "dbvevd" <- function(x, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = dbvlog(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), alog = dbvalog(x = x, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, log = log), hr = dbvhr(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), neglog = dbvneglog(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), aneglog = dbvaneglog(x = x, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, log = log), bilog = dbvbilog(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), negbilog = dbvnegbilog(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), ct = dbvct(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), amix = dbvamix(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log)) } "dbvlog"<- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] idep <- 1/dep z <- apply(x^idep,1,sum)^dep lx <- log(x) .expr1 <- (idep+mar1[,3])*lx[,1] + (idep+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) d[!ext] <- .expr1 + (1-2*idep)*log(z) + log(idep-1+z) - z } if(!log) d <- exp(d) d } "dbvalog"<- function(x, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] asy <- matrix(asy, ncol = 2, nrow = nrow(x), byrow = TRUE) idep <- 1/dep z <- apply((asy*x)^idep,1,sum)^dep v <- z + apply((1-asy)*x,1,sum) f1asy <- (idep)*log(asy) f2asy <- log(1-asy) lx <- log(x) fx <- (idep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- apply(f2asy,1,sum) .expr2 <- f2asy[,1] + f1asy[,2] + fx[,2] .expr3 <- f2asy[,2] + f1asy[,1] + fx[,1] .expr4 <- (1-idep)*log(z) + log(exp(.expr2)+exp(.expr3)) .expr5 <- apply(cbind(f1asy,fx),1,sum) + (1-2*idep)*log(z) + log(idep-1+z) d[!ext] <- log(exp(.expr1)+exp(.expr4)+exp(.expr5))-v+jac } if(!log) d <- exp(d) d } "dbvhr" <- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] fn <- function(x1, x2, nm = pnorm) x1 * nm(1/dep + dep * log(x1/x2) / 2) v <- fn(x[,1], x[,2]) + fn(x[,2], x[,1]) .expr1 <- fn(x[,1], x[,2]) * fn(x[,2], x[,1]) + dep * fn(x[,1], x[,2], nm = dnorm) / 2 lx <- log(x) jac <- mar1[,3]*lx[,1] + mar2[,3]*lx[,2] - log(mar1[,2]*mar2[,2]) d[!ext] <- log(.expr1)+jac-v } if(!log) d <- exp(d) d } "dbvneglog"<- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] idep <- 1/dep z <- apply(x^(-dep),1,sum)^(-idep) v <- apply(x,1,sum) - z lx <- log(x) fx <- (-dep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- (1+dep)*log(z) + log(exp(fx[,1])+exp(fx[,2])) .expr2 <- fx[,1] + fx[,2] + (1+2*dep)*log(z) + log(1+dep+z) d[!ext] <- log(1-exp(.expr1)+exp(.expr2))-v+jac } if(!log) d <- exp(d) d } "dbvaneglog"<- function(x, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] asy <- matrix(asy, ncol = 2, nrow = nrow(x), byrow = TRUE) idep <- 1/dep z <- apply((asy*x)^(-dep),1,sum)^(-idep) v <- apply(x,1,sum) - z fasy <- (-dep)*log(asy) lx <- log(x) fx <- (-dep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- fasy[,1] + fx[,1] .expr2 <- fasy[,2] + fx[,2] .expr3 <- (1+dep)*log(z) + log(exp(.expr1)+exp(.expr2)) .expr4 <- apply(cbind(fasy,fx),1,sum) + (1+2*dep)*log(z) + log(1+dep+z) d[!ext] <- log(1-exp(.expr3)+exp(.expr4))-v+jac } if(!log) d <- exp(d) d } "dbvbilog"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] gma <- numeric(nrow(x)) for(i in 1:nrow(x)) { gmafn <- function(z) (1-alpha) * x[i,1] * (1-z)^beta - (1-beta) * x[i,2] * z^alpha if(any(is.na(x[i,]))) gma[i] <- NA else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- x[,1] * gma^(1-alpha) + x[,2] * (1 - gma)^(1-beta) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- exp((1-alpha)*log(gma) + (1-beta)*log(1-gma)) .expr2 <- exp(log(1-alpha) + log(beta) + (beta - 1)*log(1-gma) + lx[,1]) + exp(log(1-beta) + log(alpha) + (alpha - 1)*log(gma) + lx[,2]) d[!ext] <- log(.expr1 + (1-alpha)*(1-beta)/.expr2) - v + jac } if(!log) d <- exp(d) d } "dbvnegbilog"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] gma <- numeric(nrow(x)) for(i in 1:nrow(x)) { gmafn <- function(z) (1+alpha) * x[i,1] * z^alpha - (1+beta) * x[i,2] * (1-z)^beta if(any(is.na(x[i,]))) gma[i] <- NA else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- x[,1] + x[,2] - x[,1] * gma^(1+alpha) - x[,2] * (1 - gma)^(1+beta) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- (1-gma^(1+alpha)) * (1 - (1-gma)^(1+beta)) .expr2 <- exp(log(1+alpha) + log(1+beta) + alpha*log(gma) + beta*log(1-gma)) .expr3 <- exp(log(1+alpha) + log(alpha) + (alpha - 1)*log(gma) + lx[,1]) + exp(log(1+beta) + log(beta) + (beta - 1)*log(1-gma) + lx[,2]) d[!ext] <- log(.expr1 + .expr2/.expr3) - v + jac } if(!log) d <- exp(d) d } "dbvct"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] u <- (alpha * x[,2]) / (alpha * x[,2] + beta * x[,1]) v <- x[,2] * pbeta(u, shape1 = alpha, shape2 = beta + 1) + x[,1] * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .c1 <- alpha * beta / (alpha + beta + 1) .expr1 <- pbeta(u, shape1 = alpha, shape2 = beta + 1) * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) .expr2 <- dbeta(u, shape1 = alpha + 1, shape2 = beta + 1) / (alpha * x[,2] + beta * x[,1]) d[!ext] <- log(.expr1 + .c1 * .expr2) - v + jac } if(!log) d <- exp(d) d } "dbvamix"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] xsum <- apply(x, 1, sum) v <- xsum - (alpha + beta) * x[,1] + alpha * (x[,1]^2)/xsum + beta * (x[,1]^3)/(xsum^2) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) x1a <- x[,1]/xsum; x2a <- x[,2]/xsum v1 <- 1 - alpha * (x2a)^2 - beta * (3 * x2a^2 - 2 * x2a^3) v2 <- 1 - alpha * (x1a)^2 - 2 * beta * x1a^3 v12 <- (-2 * alpha * x1a * x2a - 6 * beta * x1a^2 * x2a) / xsum d[!ext] <- log(v1 * v2 - v12) - v + jac } if(!log) d <- exp(d) d } evd/NAMESPACE0000744000176200001440000000427312017604710012254 0ustar liggesusersuseDynLib(evd) import(stats) export(rextreme,rorder,rrweibull,rnweibull,rfrechet,rgev,rgpd,rgumbel,rbvevd,rbvalog,rbvamix,rbvaneglog,rbvbilog,rbvct,rbvhr,rbvlog,rbvnegbilog,rbvneglog,rmvevd,rmvlog,rmvalog, dextreme,dorder,drweibull,dnweibull,dfrechet,dgev,dgpd,dgumbel,dbvevd,dbvalog,dbvamix,dbvaneglog,dbvbilog,dbvct,dbvhr,dbvlog,dbvnegbilog,dbvneglog,dmvevd,dmvlog,dmvalog, pextreme,porder,prweibull,pnweibull,pfrechet,pgev,pgpd,pgumbel,pbvevd,pbvalog,pbvamix,pbvaneglog,pbvbilog,pbvct,pbvhr,pbvlog,pbvnegbilog,pbvneglog,pmvevd,pmvlog,pmvalog, qextreme,qrweibull,qnweibull,qfrechet,qgev,qgpd,qgumbel,qcbvnonpar, abvalog,abvamix,abvaneglog,abvbilog,abvct,abvevd,abvhr,abvlog,abvnegbilog,abvneglog,abvnonpar,amvalog,amvevd,amvlog,amvnonpar, hbvalog,hbvamix,hbvaneglog,hbvbilog,hbvct,hbvevd,hbvhr,hbvlog,hbvnegbilog,hbvneglog,fbvalog,fbvamix,fbvaneglog,fbvbilog,fbvcalog,fbvcamix,fbvcaneglog,fbvcbilog,fbvcct,fbvchr,fbvclog,fbvcnegbilog,fbvcneglog,fbvcpot,fbvct,fbvevd,fbvhr,fbvlog,fbvnegbilog,fbvneglog,fbvpbilog,fbvpct,fbvphr,fbvplog,fbvpnegbilog,fbvpneglog,fbvpot,fbvppot,fextreme,fgev,fgev.norm,fgev.quantile,forder,fpot,fpot.norm,fpot.quantile, bvcpp,bvdens,bvdp,bvh,bvpost.optim,bvqc,bvstart.vals,ccbvevd,evind.test,chiplot,clusters,dens,evmc,exi,exiplot,mar,marma,mma,mrlplot,mtransform,mvalog.check,pp,profile2d,qq,rl,sep.bvdata,std.errors,subsets,tcplot,bvtcplot,tvdepfn) S3method(print, bvevd) S3method(print, bvpot) S3method(print, evd) S3method(print, pot) S3method(plot, bvevd) S3method(plot, bvpot) S3method(plot, uvevd) S3method(plot, profile.evd) S3method(plot, profile2d.evd) S3method(qq, gev) S3method(qq, pot) S3method(rl, gev) S3method(rl, pot) S3method(pp, gev) S3method(pp, pot) S3method(dens, gev) S3method(dens, pot) S3method(bvdens, bvevd) S3method(bvdens, bvpot) S3method(bvdp, bvevd) S3method(bvdp, bvpot) S3method(bvh, bvevd) S3method(bvh, bvpot) S3method(bvqc, bvevd) S3method(bvqc, bvpot) S3method(fitted, evd) S3method(logLik, evd) S3method(profile2d, evd) S3method(profile, evd) S3method(std.errors, evd) S3method(vcov, evd) S3method(confint, evd) S3method(anova, evd) S3method(confint, profile.evd) S3method(bvcpp, bvevd) evd/man/0000755000176200001440000000000012017604710011601 5ustar liggesusersevd/man/venice2.Rd0000744000176200001440000000166112017604710013430 0ustar liggesusers\name{venice2} \alias{venice2} \title{Largest Sea Levels in Venice} \usage{venice2} \description{ The \code{venice2} data frame has 125 rows and 10 columns. The data was kindly provided by Anthony Davison. The jth column contains the jth largest sea levels in Venice, for the years 1887--2011. This is a larger version of the dataset \code{venice}. Only the largest six measurements are available for the year 1935, and only the largest is available for 1922; the corresponding rows contain missing values. The years for each set of measurements are given as row names. } \format{A data frame with 125 rows and 10 columns.} \source{ Smith, R. L. (1986) Extreme value theory based on the \eqn{r} largest annual events. \emph{Journal of Hydrology}, \bold{86}, 27--43. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/venice.Rd0000744000176200001440000000154512017604710013347 0ustar liggesusers\name{venice} \alias{venice} \title{Largest Sea Levels in Venice} \usage{venice} \description{ The \code{venice} data frame has 51 rows and 10 columns. The jth column contains the jth largest sea levels in Venice, for the years 1931--1981. Only the largest six measurements are available for the year 1935; the corresponding row contains four missing values. The years for each set of measurements are given as row names. A larger version of this data is available in the dataset \code{venice2}. } \format{A data frame with 51 rows and 10 columns.} \source{ Smith, R. L. (1986) Extreme value theory based on the \eqn{r} largest annual events. \emph{Journal of Hydrology}, \bold{86}, 27--43. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/uccle.Rd0000744000176200001440000000152612017604710013170 0ustar liggesusers\name{uccle} \alias{uccle} \title{Rainfall Maxima at Uccle, Belgium} \usage{uccle} \description{ The \code{uccle} data frame has 35 rows and 4 columns. The columns contain annual rainfall maxima (in millimetres) from 1938 to 1972 at Uccle, Belgium, over the durations of one day, one hour, ten minutes and one minute. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{day}{Annual daily rainfall maxima.} \item{hour}{Annual hourly rainfall maxima.} \item{tmin}{Annual rainfall maxima over ten minute durations.} \item{min}{Annual rainfall maxima over one minute durations.} } } \source{ Sneyers, R. (1977) L'intensit\'{e} maximale des pr\'{e}cipitations en Belgique. \emph{Inst. Royal M\'{e}t\'{e}or. Belgique, B} \bold{86}. } \keyword{datasets} evd/man/tcplot.Rd0000744000176200001440000001035112017604710013376 0ustar liggesusers\name{tcplot} \alias{tcplot} \title{Threshold Choice Plot} \description{ Plots of parameter estimates at various thresholds for peaks over threshold modelling, using the Generalized Pareto or Point Process representation. } \usage{ tcplot(data, tlim, model = c("gpd","pp"), pscale = FALSE, cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, nt = 25, which = 1:npar, conf = 0.95, lty = 1, lwd = 1, type = "b", cilty = 1, vci = TRUE, xlab, xlim, ylabs, ylims, ask = nb.fig < length(which) && dev.interactive(), \dots) } \arguments{ \item{data}{A numeric vector.} \item{tlim}{A numeric vector of length two, giving the limits for the thresholds at which the model is fitted.} \item{model}{The model; either \code{"gpd"} (the default) or \code{"pp"}, for the Generalized Pareto or Point Process representations respectively.} \item{pscale}{If \code{TRUE}, then the x-axis gives the threshold exceedance probability rather than the threshold itself.} \item{cmax}{Logical; if \code{FALSE} (the default), the models are fitted using all exceedences over the thresholds. If \code{TRUE}, the models are fitted using cluster maxima, using clusters of exceedences derived from \code{clusters}.} \item{r, ulow, rlow}{Arguments used for the identification of clusters of exceedences (see \code{\link{clusters}}). Ignored if \code{cmax} is \code{FALSE} (the default).} \item{nt}{The number of thresholds at which the model is fitted.} \item{which}{If a subset of the plots is required, specify a subset of the numbers \code{1:npar}, where \code{npar} is the number of parameters, so that \code{npar = 2} when \code{model = "gpd"} (the default) and \code{npar = 3} when \code{model = "pp"}.} \item{conf}{The (pointwise) confidence coefficient for the plotted confidence intervals. Use zero to suppress.} \item{lty, lwd}{The line type and width of the line connecting the parameter estimates.} \item{type}{The form taken by the line connecting the parameter estimates and the points denoting these estimates. Possible values include \code{"b"} (the default) for points joined by lines, \code{"o"} for overplotted points and lines, and \code{"l"} for an unbroken line with no points.} \item{cilty}{The line type of the lines depicting the confidence intervals.} \item{vci}{If \code{TRUE} (the default), confidence intervals are plotted using vertical lines.} \item{xlab, xlim}{Label and limits for the x-axis; if given, these arguments apply to every plot.} \item{ylabs, ylims}{A vector of y-axis labels and a matrix of y-axis limits. If given, \code{ylabs} should have the same length as \code{which}, and \code{ylims} should have two columns and \code{length(which)} rows. If the length of \code{which} is one, then \code{ylims} can be a vector of length two.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{\dots}{Other arguments to be passed to the model fit function \code{fpot}.} } \details{ For each of the \code{nt} thresholds a peaks over threshold model is fitted using the function \code{fpot}. When \code{model = "gpd"} (the default), the maximum likelihood estimates for the shape and the modified scale parameter (modified by subtracting the shape multiplied by the threshold) are plotted against the thresholds. When \code{model = "pp"} the maximum likelihood estimates for the location, scale and shape parameters are plotted against the thresholds. (The modified scale parameter in the \code{"gpd"} case is equivalent to the scale parameter in the \code{"pp"} case.) If the threshold \code{u} is a valid threshold to be used for peaks over threshold modelling, the parameter estimates depicted should be approximately constant above \code{u}. } \value{ A list is invisibly returned. Each component is a matrix with three columns giving parameter estimates and confidence limits. } \author{Stuart Coles and Alec Stephenson} \seealso{\code{\link{fpot}}, \code{\link{mrlplot}}, \code{\link{clusters}}} \examples{ tlim <- c(3.6, 4.2) \dontrun{tcplot(portpirie, tlim)} \dontrun{tcplot(portpirie, tlim, nt = 100, lwd = 3, type = "l")} \dontrun{tcplot(portpirie, tlim, model = "pp")} } \keyword{hplot} evd/man/sealevel2.Rd0000744000176200001440000000246612017604710013763 0ustar liggesusers\name{sealevel2} \alias{sealevel2} \title{Annual Sea Level Maxima at Dover and Harwich with Indicator} \usage{sealevel2} \description{ The \code{sealevel2} data frame has 81 rows and 3 columns. The first two columns contain annual sea level maxima from 1912 to 1992 at Dover and Harwich respectively, two sites on the coast of Britain. The third column is a logical vector denoting whether or not the maxima in a given year are assumed to have derived from the same storm event; this assumption is made if the times of obsevation of the maxima are at most 48 hours apart. The row names give the years of observation. There are 39 missing data values. There are only nine non-missing logical values. } \format{ This data frame contains the following columns: \describe{ \item{dover}{A numeric vector containing annual sea level maxima at Dover, including 9 missing values.} \item{harwich}{A numeric vector containing sea annual level maxima at Harwich, including 30 missing values.} \item{case}{A logical vector denoting whether or not the maxima are assumed to have derived from the same storm event.} } } \source{ Coles, S. G. and Tawn, J. A. (1990) Statistics of coastal flood prevention. \emph{Phil. Trans. R. Soc. Lond., A} \bold{332}, 457--476. } \keyword{datasets} evd/man/sealevel.Rd0000744000176200001440000000154712017604710013700 0ustar liggesusers\name{sealevel} \alias{sealevel} \title{Annual Sea Level Maxima at Dover and Harwich} \usage{sealevel} \description{ The \code{sealevel} data frame has 81 rows and 2 columns. The columns contain annual sea level maxima from 1912 to 1992 at Dover and Harwich respectively, two sites on the coast of Britain. The row names give the years of observation. There are 39 missing values. } \format{ This data frame contains the following columns: \describe{ \item{dover}{A numeric vector containing annual sea level maxima at Dover, including 9 missing values.} \item{harwich}{A numeric vector containing sea annual level maxima at Harwich, including 30 missing values.} } } \source{ Coles, S. G. and Tawn, J. A. (1990) Statistics of coastal flood prevention. \emph{Phil. Trans. R. Soc. Lond., A} \bold{332}, 457--476. } \keyword{datasets} evd/man/sask.Rd0000744000176200001440000000113612017604710013033 0ustar liggesusers\name{sask} \alias{sask} \title{Maximum Annual Flood Discharges of the North Saskachevan River} \usage{sask} \description{ A numeric vector containing maximum annual flood discharges, in units of 1000 cubic feet per second, of the North Saskachevan River at Edmonton, over a period of 47 years. Unfortunately, the data are ordered from largest to smallest. } \format{A vector containing 47 observations.} \source{ van Montfort, M. A. J. (1970) On testing that the distribution is of type I when type II is the alternative. \emph{J. Hydrology}, \bold{11}, 421--427. } \keyword{datasets} evd/man/rweibull.Rd0000744000176200001440000000500712017604710013720 0ustar liggesusers\name{rweibull} \alias{drweibull} \alias{prweibull} \alias{qrweibull} \alias{rrweibull} \alias{dnweibull} \alias{pnweibull} \alias{qnweibull} \alias{rnweibull} \title{The Reverse Weibull Distribution} \description{ Density function, distribution function, quantile function and random generation for the reverse (or negative) Weibull distribution with location, scale and shape parameters. } \usage{ drweibull(x, loc=0, scale=1, shape=1, log = FALSE) prweibull(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qrweibull(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rrweibull(n, loc=0, scale=1, shape=1) dnweibull(x, loc=0, scale=1, shape=1, log = FALSE) pnweibull(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qnweibull(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rnweibull(n, loc=0, scale=1, shape=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The reverse (or negative) Weibull distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left\{-\left[-\left(\frac{z-a}{b}\right) \right]^s\right\}}{G(x) = exp{-[-(z-a)/b]^s}} for \eqn{z < a} and one otherwise, where \eqn{b > 0} and \eqn{s > 0}. } \note{ Within extreme value theory the reverse Weibull distibution (also known as the negative Weibull distribution) is often referred to as the Weibull distribution. We make a distinction to avoid confusion with the three-parameter distribution used in survival analysis, which is related by a change of sign to the distribution given above. } \value{ \code{drweibull} and \code{dnweibull} give the density function, \code{prweibull} and \code{pnweibull} give the distribution function, \code{qrweibull} and \code{qnweibull} give the quantile function, \code{rrweibull} and \code{rnweibull} generate random deviates. } \seealso{\code{\link{rfrechet}}, \code{\link{rgev}}, \code{\link{rgumbel}}} \examples{ drweibull(-5:-3, -1, 0.5, 0.8) prweibull(-5:-3, -1, 0.5, 0.8) qrweibull(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rrweibull(6, -1, 0.5, 0.8) p <- (1:9)/10 prweibull(qrweibull(p, -1, 2, 0.8), -1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/qcbvnonpar.Rd0000744000176200001440000001104512017604710014243 0ustar liggesusers\name{qcbvnonpar} \alias{qcbvnonpar} \title{Non-parametric Estimates for Bivariate Quantile Curves} \description{ Calculate or plot non-parametric estimates for quantile curves of bivariate extreme value distributions. } \usage{ qcbvnonpar(p = seq(0.75, 0.95, 0.05), data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, mint = 1, method = c("cfg", "pickands", "tdo"), convex = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(data[,1], na.rm = TRUE), ylim = range(data[,2], na.rm = TRUE), xlab = colnames(data)[1], ylab = colnames(data)[2], \dots) } \arguments{ \item{p}{A vector of lower tail probabilities. One quantile curve is calculated or plotted for each probability.} \item{data}{A matrix or data frame with two columns, which may contain missing values.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} arguments are ignored.} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{data}, for linear modelling of the location parameter on the first/second margin. The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{mint}{An integer \eqn{m}. Quantile curves are plotted or calculated using the lower tail probabilities \eqn{p^m}.} \item{method, kmar}{Arguments for the non-parametric estimate of the dependence function. See \code{\link{abvnonpar}}.} \item{convex, madj}{Other arguments for the non-parametric estimate of the dependence function.} \item{plot}{Logical; if \code{TRUE} the data is plotted along with the quantile curves. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add quantile curves to an existing data plot? The existing plot should have been created using either \code{qcbvnonpar} or \code{\link{plot.bvevd}}, the latter of which can plot quantile curves for parametric fits.} \item{lty, lwd}{Line types and widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Let G be a fitted bivariate distribution function with margins \eqn{G_1} and \eqn{G_2}. A quantile curve for a fitted distribution function G at lower tail probability p is defined by \deqn{Q(G, p) = \{(y_1,y_1):G(y_1,y_2) = p\}.}{ Q(G, p) = {(y_1,y_1):G(y_1,y_2) = p}.} For bivariate extreme value distributions, it consists of the points \deqn{\left\{G_1^{-1}(p_1),G_2^{-1}(p_2))\right\}}{ {G_1^{-1}(p_1),G_2^{-1}(p_2))}} where \eqn{p_1 = p^{t/A(t)}} and \eqn{p_2 = p^{(1-t)/A(t)}}, with \eqn{A} being the estimated dependence function defined in \code{\link{abvevd}}, and where \eqn{t} lies in the interval \eqn{[0,1]}. By default the margins \eqn{G_1} and \eqn{G_2} are modelled using estimated generalized extreme value distributions. For non-stationary generalized extreme value margins the plotted data are transformed to stationarity, and the plot corresponds to the distribution obtained when all covariates are zero. If \code{epmar} is \code{TRUE}, empirical transformations are used in preference to generalized extreme value models. Note that the marginal empirical quantile functions are evaluated using \code{\link{quantile}}, which linearly interpolates between data points, hence the curve will not be a step function. The idea behind the argument \eqn{\code{mint} = m} is that if G is fitted to a dataset of componentwise maxima, and the underlying observations are \emph{iid} distributed according to F, then if \eqn{m} is the size of the blocks over which the maxima were taken, approximately \eqn{F^m = G}, leading to \eqn{Q(F, p) = Q(G, p^m)}. } \value{ \code{qcbvnonpar} calculates or plots non-parametric quantile curve estimates for bivariate extreme value distributions. If \code{p} has length one it returns a two column matrix giving points on the curve, else it returns a list of such matrices. } \seealso{\code{\link{abvevd}}, \code{\link{abvnonpar}}, \code{\link{plot.bvevd}}} \examples{ bvdata <- rbvevd(100, dep = 0.7, model = "log") qcbvnonpar(c(0.9,0.95), data = bvdata, plot = TRUE) qcbvnonpar(c(0.9,0.95), data = bvdata, epmar = TRUE, plot = TRUE) } \keyword{nonparametric} evd/man/profile2d.evd.Rd0000744000176200001440000000353512017604710014542 0ustar liggesusers\name{profile2d.evd} \alias{profile2d} \alias{profile2d.evd} \title{Method for Profiling EVD Objects} \description{ Calculate joint profile traces for fitted models. } \usage{ \method{profile2d}{evd}(fitted, prof, which, pts = 20, convergence = FALSE, method = "Nelder-Mead", control = list(maxit = 5000), \dots) } \arguments{ \item{fitted}{An object of class \code{"evd"}.} \item{prof}{An object of class \code{"profile.evd"}, created using \code{\link{profile.evd}} with argument \code{fitted}. The object must contain the (marginal) profile traces for the two parameters specified in \code{which}.} \item{which}{A character vector of length two containing the original model parameters that are to be jointly profiled.} \item{pts}{The number of distinct values used for each profiled parameter in \code{which}. There are \code{pts^2} optimizations performed in total.} \item{convergence}{Logical; print convergence code after each optimization? (A warning is given for each non-zero convergence code, irrespective of the value of \code{convergence}.)} \item{method}{The optimization method.} \item{control}{Passed to \code{optim}. See \code{\link{optim}} for details.} \item{\dots}{Ignored.} } \value{ An object of class \code{"profile2d.evd"}, which is a list with three elements. The first element, a matrix named \code{trace}, has the same structure as the elements of an object of class \code{"profile.evd"}. The last two elements give the distinct values used for each profiled parameter in \code{which}. } \seealso{\code{\link{profile.evd}}, \code{\link{plot.profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{M1JP <- profile2d(M1, M1P, which = c("scale", "shape"))} \dontrun{plot(M1JP)} } \keyword{models} evd/man/profile.evd.Rd0000744000176200001440000000553012017604710014311 0ustar liggesusers\name{profile.evd} \alias{profile.evd} \title{Method for Profiling EVD Objects} \description{ Calculate profile traces for fitted models. } \usage{ \method{profile}{evd}(fitted, which = names(fitted$estimate), conf = 0.999, mesh = fitted$std.err[which]/4, xmin = rep(-Inf, length(which)), xmax = rep(Inf, length(which)), convergence = FALSE, method = "BFGS", control = list(maxit = 500), \dots) } \arguments{ \item{fitted}{An object of class \code{"evd"}.} \item{which}{A character vector giving the model parameters that are to be profiled. By default, all parameters are profiled.} \item{conf}{Controls the range over which the parameters are profiled. The profile trace is constructed so that (assuming the usual asymptotic properties hold) profile confidence intervals with confidence coefficients \code{conf} or less can be derived from it.} \item{mesh}{A numeric vector containing one value for each parameter in \code{which}. The values represent the distance between the points profiled. By default \code{mesh} is one quarter of the standard errors. If the fitted object does not contain standard errors the argument must be specified. The argument should also be specified when an estimator is on or close to a parameter boundary, since the approximated ``standard error'' will then be close to zero.} \item{xmin, xmax}{Numeric vectors containing one value for each parameter in \code{which}. Each value represents the theoretical lower/upper bound of the corresponding parameter. The arguments are needed only when a parameter has a lower/upper bound at which the likelihood is non-zero. Do not use these arguments to specify plotting ranges in a subsequent plot (as they are used in the calculation of profile confidence intervals); to do this use \code{xlim} in the call to \code{plot}.} \item{convergence}{Logical; print convergence code after each optimization? (A warning is given for each non-zero convergence code, irrespective of the value of \code{convergence}.)} \item{method}{The optimization method.} \item{control}{Passed to \code{optim}. See \code{\link{optim}} for details.} \item{\dots}{Ignored.} } \value{ An object of class \code{"profile.evd"}, which is a list with an element for each parameter being profiled. The elements are matrices. The first column contains the values of the profiled parameter. The second column contains profile deviances. The remaining columns contain the constrained maximum likelihood estimates for the remaining model parameters. } \seealso{\code{\link{profile2d.evd}}, \code{\link{plot.profile.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{par(mfrow = c(2,2))} \dontrun{cint <- plot(M1P)} \dontrun{cint} } \keyword{models} evd/man/portpirie.Rd0000744000176200001440000000110712017604710014105 0ustar liggesusers\name{portpirie} \alias{portpirie} \title{Annual Maximum Sea Levels at Port Pirie} \usage{portpirie} \description{ A numeric vector containing annual maximum sea levels, in metres, from 1923 to 1987 at Port Pirie, South Australia. } \format{A vector containing 65 observations.} \source{ Tawn, J. A. (1993) Extreme sea-levels, in \emph{Statistics in the Environment}, 243--263, eds. V. Barnett and F. Turkman, Wiley. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/plot.uvevd.Rd0000744000176200001440000001333612017604710014205 0ustar liggesusers\name{plot.uvevd} \alias{plot.uvevd} \title{Plot Diagnostics for a Univariate EVD Object} \description{ Four plots (selectable by \code{which}) are currently provided: a P-P plot, a Q-Q plot, a density plot and a return level plot. } \usage{ \method{plot}{uvevd}(x, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, adjust = 1, jitter = FALSE, nplty = 2, \dots) } \arguments{ \item{x}{An object that inherits from class \code{"uvevd"}.} \item{which}{If a subset of the plots is required, specify a subset of the numbers \code{1:4}.} \item{main}{Title of each plot. If given, must be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{Logical; if \code{TRUE} (the default), plot simulated 95\% confidence intervals for the P-P, Q-Q and return level plots.} \item{cilwd}{Line width for confidence interval lines.} \item{adjust, jitter, nplty}{Arguments to the density plot. The density of the fitted model is plotted with a rug plot and (optionally) a non-parameteric estimate. The argument \code{adjust} controls the smoothing bandwidth for the non-parametric estimate (see \code{\link{density}}). \code{jitter} is logical; if \code{TRUE}, the (possibly transformed) data are jittered to produce the rug plot. This need only be used if the data contains repeated values. \code{nplty} is the line type of the non-parametric estimate. To omit the non-parametric estimate set \code{nplty} to zero.} \item{\dots}{Other parameters to be passed through to plotting functions.} } \details{ The following discussion assumes that the fitted model is stationary. For non-stationary generalized extreme value models the data are transformed to stationarity. The plot then corresponds to the distribution obtained when all covariates are zero. The P-P plot consists of the points \deqn{\{(G_n(z_i), G(z_i)), i = 1,\ldots,m\}}{ {(G_n(z_i), G(z_i)), i = 1,\ldots,m}} where \eqn{G_n} is the empirical distribution function (defined using \code{\link{ppoints}}), G is the model based estimate of the distribution (generalized extreme value or generalized Pareto), and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. The Q-Q plot consists of the points \deqn{\{(G^{-1}(p_i), z_i), i = 1,\ldots,m\}}{ {(G^{-1}(p_i), z_i), i = 1,\ldots,m}} where \eqn{G^{-1}} is the model based estimate of the quantile function (generalized extreme value or generalized Pareto), \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. The return level plot for generalized extreme value models is defined as follows. Let \eqn{G} be the generalized extreme value distribution function, with location, scale and shape parameters \eqn{a}, \eqn{b} and \eqn{s} respectively. Let \eqn{z_t} be defined by \eqn{G(z_t) = 1 - 1/t}. In common terminology, \eqn{z_t} is the return level associated with the return period \eqn{t}. Let \eqn{y_t = -1/\log(1 - 1/t)}{y_t = -1/log(1 - 1/t)}. It follows that \deqn{z_t = a + b(y_t^s - 1)/s.}{ z_t = a + b((y_t)^s - 1)/s.} When \eqn{s = 0}, \eqn{z_t} is defined by continuity, so that \deqn{z_t = a + b\log(y_t).}{ z_t = a + b log(y_t).} The curve within the return level plot is \eqn{z_t} plotted against \eqn{y_t} on a logarithmic scale, using maximum likelihood estimates of \eqn{(a,b,s)}. If the estimate of \eqn{s} is zero, the curve will be linear. For large values of \eqn{t}, \eqn{y_t} is approximately equal to the return period \eqn{t}. It is usual practice to label the x-axis as the return period. The points on the plot are \deqn{\{(-1/\log(p_i), z_i), i = 1,\ldots,m\}}{ {(-1/log(p_i), z_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. For a good fit the points should lie ``close'' to the curve. The return level plot for peaks over threshold models is defined as follows. Let \eqn{G} be the generalized Pareto distribution function, with location, scale and shape parameters \eqn{u}, \eqn{b} and \eqn{s} respectively, where \eqn{u} is the model threshold. Let \eqn{z_m} denote the \eqn{m} period return level (see \code{\link{fpot}} and the notation therein). It follows that \deqn{z_m = u + b((pmN)^s - 1)/s.}{ z_m = u + b((pmN)^s - 1)/s.} When \eqn{s = 0}, \eqn{z_m} is defined by continuity, so that \deqn{z_m = u + b\log(pmN).}{ z_m = u + b log(pmN).} The curve within the return level plot is \eqn{z_m} plotted against \eqn{m} on a logarithmic scale, using maximum likelihood estimates of \eqn{(b,s,p)}. If the estimate of \eqn{s} is zero, the curve will be linear. The points on the plot are \deqn{\{(1/(pN(1-p_i)), z_i), i = 1,\ldots,m\}}{ {(1/(pN(1-p_i)), z_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. For a good fit the points should lie ``close'' to the curve. } \seealso{\code{\link{plot.bvevd}}, \code{\link{density}}, \code{\link{jitter}}, \code{\link{rug}}, \code{\link{ppoints}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1)} uvdata <- rgpd(100, loc = 0, scale = 1.1, shape = 0.2) M1 <- fpot(uvdata, 1) \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1)} } \keyword{hplot} evd/man/plot.profile2d.evd.Rd0000744000176200001440000000424212017604710015513 0ustar liggesusers\name{plot.profile2d.evd} \alias{plot.profile2d.evd} \title{Plot Joint Profile Log-likelihoods} \description{ Displays an image plot of the joint profile log-likelihood from a model profiled with \code{\link{profile.evd}} and \code{\link{profile2d.evd}}. } \usage{ \method{plot}{profile2d.evd}(x, main = NULL, ci = c(0.5, 0.8, 0.9, 0.95, 0.975, 0.99, 0.995), col = heat.colors(8), intpts = 75, xaxs = "r", yaxs = "r", \dots) } \arguments{ \item{x}{An object of class \code{"profile2d.evd"}.} \item{main}{Title of plot; a character string.} \item{ci}{A numeric vector whose length is one less than the length of \code{col}. The colours of the image plot, excluding the background colour, represent confidence sets with confidence coefficients \code{ci} (but see \bold{Warning}).} \item{col}{A list of colors such as that generated by \code{rainbow}, \code{heat.colors}, \code{topo.colors}, \code{terrain.colors} or similar functions.} \item{intpts}{If the package \bold{akima} is available, interpolation is performed using \code{intpts} points for each parameter. The function is interpolated at \code{intpts^2} points in total.} \item{xaxs,yaxs}{Graphics parameters (see \code{\link{par}}). The default, \code{"r"}, overrides the default set by \code{image}.} \item{\dots}{Other parameters to be passed to \code{image}.} } \section{Warning}{ The sets represented by different colours may not be confidence sets with confidence coefficients \code{ci}, because the usual asymptotic properties of maximum likelihood estimators may not hold. For the GEV model, the usual asymptotic properties hold when the shape parameter is greater than \eqn{-0.5} (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{plot.profile.evd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{M1JP <- profile2d(M1, M1P, which = c("scale", "shape"))} \dontrun{plot(M1JP)} } \keyword{hplot} evd/man/plot.profile.evd.Rd0000744000176200001440000000501112017604710015260 0ustar liggesusers\name{plot.profile.evd} \alias{plot.profile.evd} \title{Plot Profile Log-likelihoods and Calculate Profile Confidence Intervals} \description{ Displays profile log-likelihoods from a model profiled with \code{\link{profile.evd}}, and invisibly returns profile confidence intervals. } \usage{ \method{plot}{profile.evd}(x, which = names(x), main = NULL, ask = nb.fig < length(which) && dev.interactive(), ci = 0.95, clty = 2, \dots) } \arguments{ \item{x}{An object of class \code{"profile.evd"}.} \item{which}{A character vector giving the parameters for which the profile deviance is plotted, and for which profile confidence intervals are calculated. By default all profiled parameters in \code{x} are used.} \item{main}{Title of each plot; a character vector, the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{A numeric vector. For each parameter in \code{which} profile confidence intervals are calculated, for each confidence coefficient in \code{ci} (but see \bold{Warning}). The intervals are returned invisibly as a list of vectors/matrices. Each plot then (by default) includes horizonal lines that represent each interval.} \item{clty}{The line type of the horizontal lines that represent the profile confidence intervals. To omit the lines set \code{clty} to zero.} \item{\dots}{Other graphics parameters.} } \value{ Profile devainces are plotted for each parameter in \code{which}. A list with one element for each parameter in \code{which} is also returned invisibly. Each element is a vector of length two or a matrix with two columns, giving the lower and upper limits of each confidence interval. } \section{Warning}{ The profile confidence intervals may not have confidence coefficient \code{ci}, because the usual asymptotic properties of maximum likelihood estimators may not hold. For the GEV model, the usual asymptotic properties hold when the shape parameter is greater than \eqn{-0.5} (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{plot.profile2d.evd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{par(mfrow = c(2,2))} \dontrun{cint <- plot(M1P, ci = c(0.95, 0.99))} \dontrun{cint} } \keyword{hplot} evd/man/plot.bvpot.Rd0000744000176200001440000000504412017604710014203 0ustar liggesusers\name{plot.bvpot} \alias{plot.bvpot} \title{Plot Diagnostics for a Bivariate POT EVD Object} \description{ Four plots (selectable by \code{which}) are currently provided: a density plot (1), a dependence function plot (2), a quantile curves plot (3) and a spectral density plot (4). Plot diagnostics for the generalized Pareto peaks-over-threshold margins (selectable by \code{mar} and \code{which}) are also available. } \usage{ \method{plot}{bvpot}(x, mar = 0, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), grid = 50, above = FALSE, levels = NULL, tlty = 1, blty = 3, rev = FALSE, p = seq(0.75, 0.95, 0.05), half = FALSE, \dots) } \arguments{ \item{x}{An object of class \code{"bvpot"}.} \item{mar}{If \code{mar = 1} or \code{mar = 2} diagnostics are given for the first or second generalized Pareto margin respectively.} \item{which}{A subset of the numbers \code{1:4} selecting the plots to be shown. By default all are plotted.} \item{main}{Title of each plot. If given, should be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{grid, levels}{Arguments for the density plot. The data is plotted with a contour plot of the bivariate density of the fitted model in the tail region. The density is evaluated at \code{grid^2} points, and contours are plotted at the values given in the numeric vector \code{levels}. If \code{levels} is \code{NULL} (the default), the routine attempts to find sensible values.} \item{above}{Logical; if \code{TRUE}, only data points above both marginal thresholds are plotted.} \item{tlty}{Line type for the lines identifying the thresholds.} \item{rev, blty}{Arguments to the dependence function plot. See \code{\link{abvevd}}.} \item{p}{Lower tail probabilities for the quantile curves plot. The plot is of the same type as given by the function \code{\link{qcbvnonpar}}, but applied to the parametric bivariate threshold model.} \item{half}{Argument to the spectral density plot. See \code{\link{hbvevd}}.} \item{\dots}{Other arguments to be passed through to plotting functions.} } \seealso{\code{\link{plot.bvevd}}, \code{\link{contour}}, \code{\link{abvnonpar}}, \code{\link{qcbvnonpar}}, \code{\link{hbvevd}}} \examples{ bvdata <- rbvevd(500, dep = 0.6, model = "log") M1 <- fbvpot(bvdata, threshold = c(0,0), model = "log") \dontrun{plot(M1)} \dontrun{plot(M1, mar = 1)} \dontrun{plot(M1, mar = 2)} } \keyword{hplot} evd/man/plot.bvevd.Rd0000744000176200001440000001053412017604710014157 0ustar liggesusers\name{plot.bvevd} \alias{plot.bvevd} \title{Plot Diagnostics for a Bivariate EVD Object} \description{ Six plots (selectable by \code{which}) are currently provided: two conditional P-P plots (1,2), conditioning on each margin, a density plot (3), a dependence function plot (4), a quantile curves plot (5) and a spectral density plot (6). Plot diagnostics for the generalized extreme value margins (selectable by \code{mar} and \code{which}) are also available. } \usage{ \method{plot}{bvevd}(x, mar = 0, which = 1:6, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, grid = 50, legend = TRUE, nplty = 2, blty = 3, method = "cfg", convex = FALSE, rev = FALSE, p = seq(0.75, 0.95, 0.05), mint = 1, half = FALSE, \dots) } \arguments{ \item{x}{An object of class \code{"bvevd"}.} \item{mar}{If \code{mar = 1} or \code{mar = 2} diagnostics are given for the first or second genereralized extreme value margin respectively.} \item{which}{A subset of the numbers \code{1:6} selecting the plots to be shown. By default all are plotted.} \item{main}{Title of each plot. If given, should be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{Logical; if \code{TRUE} (the default), plot simulated 95\% confidence intervals for the conditional P-P plots.} \item{cilwd}{Line width for confidence interval lines.} \item{grid}{Argument for the density plot. The (possibly transformed) data is plotted with a contour plot of the bivariate density of the fitted model. The density is evaluated at \code{grid^2} points.} \item{legend}{If \code{legend} is \code{TRUE} and if the fitted data contained a third column of mode \code{logical}, then a legend is included in the density and quantile curve plots.} \item{method, convex, rev}{Arguments to the dependence function plot. The dependence function for the fitted model is plotted and (optionally) compared to a non-parameteric estimate. See \code{\link{abvnonpar}} for a description of the arguments.} \item{nplty, blty}{Line types for the dependence function plot. \code{nplty} is the line type of the non-parametric estimate. To omit the non-parametric estimate set \code{nplty} to zero. \code{blty} is the line type of the triangular border. To omit the border estimate set \code{blty} to zero.} \item{p, mint}{Arguments to the quantile curves plot. See \code{\link{qcbvnonpar}} for a description of the plot and the arguments.} \item{half}{Argument to the spectral density plot. See \code{\link{hbvevd}}.} \item{\dots}{Other arguments to be passed through to plotting functions.} } \details{ In all plots we assume that the fitted model is stationary. For non-stationary models the data are transformed to stationarity. The plot then corresponds to the distribution obtained when all covariates are zero. In particular, the density and quanitle curves plots will not plot the original data for non-stationary models. A conditional P-P plot is a P-P plot for the condition distribution function of a bivariate evd object. Let \eqn{G(.|.)} be the conditional distribution of the first margin given the second, under the fitted model. Let \eqn{z_1,\ldots,z_m} be the data used in the fitted model, where \eqn{z_j = (z_{1j}, z_{2j})} for \eqn{j = 1,\ldots,m}. The plot that (by default) is labelled Conditional Plot Two, conditioning on the second margin, consists of the points \deqn{\{(p_i, c_i), i = 1,\ldots,m\}}{ {(p_i, c_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}} and \eqn{c_i} is the \eqn{i}th largest value from the sample \eqn{\{G(z_{j1}|z_{j2}), j = 1,\ldots,m\}.}{ {G(z_{j1}|z_{j2}), j = 1,\ldots,m}.} The margins are reversed for Conditional Plot One, so that \eqn{G(.|.)} is the conditional distribution of the second margin given the first. } \seealso{\code{\link{plot.uvevd}}, \code{\link{contour}}, \code{\link{jitter}}, \code{\link{abvnonpar}}, \code{\link{qcbvnonpar}}} \examples{ bvdata <- rbvevd(100, dep = 0.6, model = "log") M1 <- fbvevd(bvdata, model = "log") \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1, which = 1:5)} \dontrun{plot(M1, mar = 1)} \dontrun{plot(M1, mar = 2)} } \keyword{hplot} evd/man/oxford.Rd0000744000176200001440000000065312017604710013376 0ustar liggesusers\name{oxford} \alias{oxford} \title{Annual Maximum Temperatures at Oxford} \usage{oxford} \description{ A numeric vector containing annual maximum temperatures, in degrees Fahrenheit, from 1901 to 1980 at Oxford, England. } \format{A vector containing 80 observations.} \source{ Tabony, R. C. (1983) Extreme value analysis in meteorology. \emph{The Meteorological Magazine} \bold{112}, 77--98. } \keyword{datasets} evd/man/order.Rd0000744000176200001440000000456112017604710013212 0ustar liggesusers\name{order} \alias{dorder} \alias{porder} \alias{rorder} \title{Distributions of Order Statistics} \description{ Density function, distribution function and random generation for a selected order statistic of a given number of independent variables from a specified distribution. } \usage{ dorder(x, densfun, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, log = FALSE) porder(q, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, lower.tail = TRUE) rorder(n, quantfun, \dots, distn, mlen = 1, j = 1, largest = TRUE) } \arguments{ \item{x, q}{Vector of quantiles.} \item{n}{Number of observations.} \item{densfun, distnfun, quantfun}{Density, distribution and quantile function of the specified distribution. The density function must have a \code{log} argument (a simple wrapper can always be constructed to achieve this).} \item{\dots}{Parameters of the specified distribution.} \item{distn}{A character string, optionally specified as an alternative to \code{densfun}, \code{distnfun} and \code{quantfun} such that the density, distribution and quantile functions are formed upon the addition of the prefixes \code{d}, \code{p} and \code{q} respectively.} \item{mlen}{The number of independent variables.} \item{j}{The order statistic, taken as the \code{j}th largest (default) or smallest of \code{mlen}, according to the value of \code{largest}.} \item{largest}{Logical; if \code{TRUE} (default) use the \code{j}th largest order statistic, otherwise use the \code{j}th smallest.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default) probabilities are P[X <= x], otherwise P[X > x].} } \value{ \code{dorder} gives the density function, \code{porder} gives the distribution function and \code{qorder} gives the quantile function of a selected order statistic from a sample of size \code{mlen}, from a specified distibution. \code{rorder} generates random deviates. } \seealso{\code{\link{rextreme}}, \code{\link{rgev}}} \examples{ dorder(2:4, dnorm, pnorm, mean = 0.5, sd = 1.2, mlen = 5, j = 2) dorder(2:4, distn = "norm", mean = 0.5, sd = 1.2, mlen = 5, j = 2) dorder(2:4, distn = "exp", mlen = 2, j = 2) porder(2:4, distn = "exp", rate = 1.2, mlen = 2, j = 2) rorder(5, qgamma, shape = 1, mlen = 10, j = 2) } \keyword{distribution} evd/man/oldage.Rd0000744000176200001440000000146112017604710013326 0ustar liggesusers\name{oldage} \alias{oldage} \title{Oldest Ages for Swedish Males and Females} \usage{oldage} \description{ The \code{oldage} data frame has 66 rows and 2 columns. The columns contain the oldest ages at death for men and women in Sweden, for the period 1905--1970. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{men}{A numeric vector containing the oldest ages at death for men.} \item{women}{A numeric vector containing the oldest ages at death for women.} } } \source{ Fransen, A. and Tiago de Oliveira, J. (1984) Statistical choice of univariate extreme models, part II, in \emph{Statistical Extremes and Applications}, J. Tiago de Oliveira ed., 373--394, D. Reidel, Dordrect. } \keyword{datasets} evd/man/ocmulgee.Rd0000744000176200001440000000165012017604710013673 0ustar liggesusers\name{ocmulgee} \alias{ocmulgee} \title{Maximum Annual Flood Discharges of the Ocmulgee River} \usage{ocmulgee} \description{ The \code{ocmulgee} data frame has 40 rows and 2 columns. The columns contain maximum annual flood discharges, in units of 1000 cubed feet per second, from the Ocmulgee River in Georgia, USA at Hawkinsville (upstream) and Macon (downstream), for the years 1910 to 1949. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{hawk}{A numeric vector containing maximum annual flood discharges at Hawkinsville (upstream).} \item{macon}{A numeric vector containing maximum annual flood discharges at Macon (downstream).} } } \source{ Gumbel, E. J. and Goldstein, N. (1964) Analysis of empirical bivariate extremal distributions. \emph{J. Amer. Statist. Assoc.}, \bold{59}, 794--816. } \keyword{datasets} evd/man/mvevd.Rd0000744000176200001440000002162312017604710013216 0ustar liggesusers\name{mvevd} \alias{pmvevd} \alias{rmvevd} \alias{dmvevd} \title{Parametric Multivariate Extreme Value Distributions} \description{ Density function, distribution function and random generation for the multivariate logistic and multivariate asymmetric logistic models. } \usage{ pmvevd(q, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), lower.tail = TRUE) rmvevd(n, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0)) dmvevd(x, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), log = FALSE) } \arguments{ \item{x, q}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the density/distribution is evaluated across the rows.} \item{n}{Number of observations.} \item{dep}{The dependence parameter(s). For the logistic model, should be a single value. For the asymmetric logistic model, should be a vector of length \eqn{2^d-d-1}, or a single value, in which case the value is used for each of the \eqn{2^d-d-1} parameters (see \bold{Details}).} \item{asy}{The asymmetry parameters for the asymmetric logistic model. Should be a list with \eqn{2^d-1} vector elements containing the asymmetry parameters for each separate component (see \bold{Details}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default) or \code{"alog"} (or any unique partial match), for the logistic and asymmetric logistic models respectively.} \item{d}{The dimension.} \item{mar}{A vector of length three containing marginal parameters for every univariate margin, or a matrix with three columns where each column represents a vector of values to be passed to the corresponding marginal parameter. It can also be a list with \code{d} elements, such that each element is either a vector of length three or a matrix with three columns, in which case the \eqn{i}th element represents the marginal parameters on the \eqn{i}th margin.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), the distribution function is returned; the survivor function is returned otherwise.} } \details{ Define \deqn{y_i = y_i(z_i) = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = yi(zi) = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}, where the marginal parameters are given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. Let \eqn{z = (z_1,z_2,\ldots,z_d)}{z = (z1,z2,\ldots,zd)}. In each of the multivariate distributions functions \eqn{G(z)} given below, the univariate margins are generalized extreme value, so that \eqn{G(z_i) = \exp(-y_i)}{G(zi) = \exp(-yi)} for \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}. If \eqn{1+s_i(z_i-a_i)/b_i \leq 0}{1+si(zi-ai)/bi <= 0} for some \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}, the value \eqn{z_i}{zi} is either greater than the upper end point (if \eqn{s_i < 0}{si < 0}), or less than the lower end point (if \eqn{s_i > 0}{si > 0}), of the \eqn{i}th univariate marginal distribution. \code{model = "log"} (Gumbel, 1960) The \code{d} dimensional multivariate logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z) = \exp\left\{-\left(\sum\nolimits_{i = 1}^{d} y_i^{1/r}\right)^r\right\}}{ G(z) = exp{-[sum_{i=1}^d yi^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1}. This is a special case of the multivariate asymmetric logistic model. \code{model = "alog"} (Tawn, 1990) Let \eqn{B} be the set of all non-empty subsets of \eqn{\{1,\ldots,d\}}{{1,\ldots,d}}, let \eqn{B_1=\{b \in B:|b|=1\}}{B1={b in B:|b|=1}}, where \eqn{|b|} denotes the number of elements in the set \eqn{b}, and let \eqn{B_{(i)}=\{b \in B:i \in b\}}{B(i)={b in B:i in b}}. The \code{d} dimensional multivariate asymmetric logistic distribution function is \deqn{G(z)=\exp\left\{-\sum\nolimits_{b \in B} \left[\sum\nolimits_ {i\in b}(t_{i,b}y_i)^{1/r_b}\right]^{r_b}\right\},}{G(z) = exp{-sum{b in B} [sum{i in b}(t{i,b}yi)^(1/r{b})]^r{b}},} where the dependence parameters \eqn{r_b\in(0,1]}{r{b} in (0,1]} for all \eqn{b\in B \setminus B_1}{b in B\B1}, and the asymmetry parameters \eqn{t_{i,b}\in[0,1]}{t{i,b} in [0,1]} for all \eqn{b\in B}{b in B} and \eqn{i\in b}{i in b}. The constraints \eqn{\sum_{b \in B_{(i)}}t_{i,b}=1}{sum{b in B(i)} t{i,b}=1} for \eqn{i = 1,\ldots,d} ensure that the marginal distributions are generalized extreme value. Further constraints arise from the possible redundancy of asymmetry parameters in the expansion of the distribution form. Let \eqn{b_{-i_0} = \{i \in b:i \neq i_0\}}{ b_{-i0} = {i in b:i is not i_0}}. If \eqn{r_b = 1}{r{b} = 1} for some \eqn{b\in B \setminus B_1}{b in B\B1} then \eqn{t_{i,b} = 0}{t{i,b} = 0} for all \eqn{i\in b}{i in b}. Furthermore, if for some \eqn{b\in B \setminus B_1}{b in B\B1}, \eqn{t_{i,b} = 0}{t{i,b} = 0} for all \eqn{i\in b_{-i_0}}{i in b_{-i0}}, then \eqn{t_{i_0,b} = 0}{t{i0,b} = 0}. \code{dep} should be a vector of length \eqn{2^d-d-1} which contains \eqn{\{r_b:b\in B \setminus B_1\}}{{r{b}:b in B\B1}}, with the order defined by the natural set ordering on the index. For example, for the trivariate model, \eqn{\code{dep} = (r_{12},r_{13},r_{23},r_{123})}{ \code{dep} = (r{12},r{13},r{23},r{123})}. \code{asy} should be a list with \eqn{2^d-1} elements. Each element is a vector which corresponds to a set \eqn{b\in B}{b in B}, containing \eqn{t_{i,b}}{t{i,b}} for every integer \eqn{i\in b}{i in b}. The elements should be given using the natural set ordering on the \eqn{b\in B}{b in B}, so that the first \eqn{d} elements are vectors of length one corresponding to the sets \eqn{\{1\},\ldots,\{d\}}{{1},\ldots,{d}}, and the last element is a a vector of length \eqn{d}, corresponding to the set \eqn{\{1,\ldots,d\}}{{1,\ldots,d}}. \code{asy} must be constructed to ensure that all constraints are satisfied or an error will occur. } \value{ \code{pmvevd} gives the distribution function, \code{dmvevd} gives the density function and \code{rmvevd} generates random deviates, for the multivariate logistic or multivariate asymmetric logistic model. } \note{ Multivariate extensions of other bivariate models are more complex. A multivariate extension of the Husler-Reiss model exists, involving a multidimensional integral and one parameter for each bivariate margin. Multivariate extensions for the negative logistic model can be derived but are considerably more complex and appear to be less flexible. The ``multivariate negative logistic model'' often presented in the literature (e.g. Kotz \emph{et al}, 2000) is not a valid distribution function and should not be used. The logistic and asymmetric logistic models respectively are simulated using Algorithms 2.1 and 2.2 in Stephenson(2003b). The density function of the logistic model is evaluated using the representation of Shi(1995). The density function of the asymmetric logistic model is evaluated using the representation given in Stephenson(2003a). } \references{ Gumbel, E. J. (1960) Distributions des valeurs extremes en plusieurs dimensions. \emph{Publ. Inst. Statist. Univ. Paris}, \bold{9}, 171--173. Kotz, S. and Balakrishnan, N. and Johnson, N. L. (2000) \emph{Continuous Multivariate Distributions}, vol. 1. New York: John Wiley & Sons, 2nd edn. Shi, D. (1995) Fisher information for a multivariate extreme value distribution. \emph{Biometrika}, \bold{82}(3), 644--649. Stephenson, A. G. (2003a) \emph{Extreme Value Distributions and their Application}. Ph.D. Thesis, Lancaster University, Lancaster, UK. Stephenson, A. G. (2003b) Simulating multivariate extreme value distributions of logistic type. \emph{Extremes}, \bold{6}(1), 49--60. Tawn, J. A. (1990) Modelling multivariate extreme value distributions. \emph{Biometrika}, \bold{77}, 245--253. } \seealso{\code{\link{rbvevd}}, \code{\link{rgev}}} \examples{ pmvevd(matrix(rep(0:4,5), ncol=5), dep = .7, model = "log", d = 5) pmvevd(rep(4,5), dep = .7, model = "log", d = 5) rmvevd(10, dep = .7, model = "log", d = 5) dmvevd(rep(-1,20), dep = .7, model = "log", d = 20, log = TRUE) asy <- list(.4, .1, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.3,.2)) pmvevd(rep(2,3), dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) asy <- list(.4, .0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) rmvevd(10, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) dmvevd(rep(0,3), dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) asy <- list(0, 0, 0, 0, c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(.2,.1,.2), c(.1,.1,.2), c(.3,.4,.1), c(.2,.2,.2), c(.4,.6,.2,.5)) rmvevd(10, dep = .7, asy = asy, model = "alog", d = 4) rmvevd(10, dep = c(rep(1,6), rep(.7,5)), asy = asy, model = "alog", d = 4) } \keyword{distribution} evd/man/mtransform.Rd0000744000176200001440000000320312017604710014257 0ustar liggesusers\name{mtransform} \alias{mtransform} \title{GEV Transformations} \description{ Transforms to exponential margins under the GEV model. } \usage{ mtransform(x, p, inv = FALSE, drp = FALSE) } \arguments{ \item{x}{A matrix with n rows and d columns, or a vector. In the latter case, if \code{p} is a list with the same length as the vector, it is treated as a matrix with one row. If \code{p} is not a list, it is treated as a matrix with one column.} \item{p}{A vector of length three or a matrix with n rows and three columns. It can also be a list of length d, in which case each element must be a vector of length three or a matrix with n rows and three columns.} \item{inv}{Logical; use the inverse transformation?} \item{drp}{Logical; return a vector rather than a single row matrix?. Note that a single column matrix is always returned as a vector.} } \details{ Let \eqn{x_i} denote a vector of observations for \eqn{i = 1,\ldots,n}. This function implements the transformation \deqn{y_{i} = \{1+s_i(x_{i}-a_i)/b_i\}_{+}^{-1/s_i}} to each column of the matrix \code{x}. The values \eqn{(a_i,b_i,s_i)} are contained in the ith row of the n by 3 matrix \code{p}. If \code{p} is a vector of length three, the parameters are the same for every \eqn{i = 1,\ldots,n}. Alternatively, \code{p} can be a list with d elements, in which case the jth element is used to transform the jth column of \code{x}. This function is mainly for internal use. It is used by bivariate and multivariate routines to calculate marginal transformations. } \value{ A numeric matrix or vector. } \keyword{manip} evd/man/mrlplot.Rd0000744000176200001440000000435512017604710013571 0ustar liggesusers\name{mrlplot} \alias{mrlplot} \title{Empirical Mean Residual Life Plot} \description{ The empirical mean residual life plot. } \usage{ mrlplot(data, tlim, pscale = FALSE, nt = max(100, length(data)), lty = c(2,1,2), col = 1, conf = 0.95, main = "Mean Residual Life Plot", xlab = "Threshold", ylab = "Mean Excess", \dots) } \arguments{ \item{data}{A numeric vector.} \item{tlim}{A numeric vector of length two, giving the limits for the thresholds at which the mean residual life plot is evaluated. If \code{tlim} is not given, sensible defaults are used.} \item{pscale}{If \code{TRUE}, then the x-axis gives the threshold exceedance probability rather than the threshold itself.} \item{nt}{The number of thresholds at which the mean residual life plot is evaluated.} \item{lty, col}{Arguments passed to \code{matplot}. The first and last elements of \code{lty} correspond to the lower and upper confidence limits respectively. Use zero to supress.} \item{conf}{The (pointwise) confidence coefficient for the plotted confidence intervals.} \item{main}{Plot title.} \item{xlab, ylab}{x and y axis labels.} \item{\dots}{Other arguments to be passed to \code{matplot}.} } \details{ The empirical mean residual life plot is the locus of points \deqn{\left(u,\frac{1}{n_u} \sum\nolimits_{i=1}^{n_u} (x_{(i)} - u) \right)}{{u,1/n_u \sum_{i=1}^{n_u} (x(i) - u)}} where \eqn{x_{(1)}, \dots, x_{(n_u)}}{x(1), \dots, x(n_u)} are the \eqn{n_u} observations that exceed the threshold \eqn{u}. If the exceedances of a threshold \eqn{u_0}{u0} are generalized Pareto, the empirical mean residual life plot should be approximately linear for \eqn{u > u_0}{u > u0}. The confidence intervals within the plot are symmetric intervals based on the approximate normality of sample means. } \value{ A list with components \code{x} and \code{y} is invisibly returned. The components contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the mean residual life plot. } \author{Stuart Coles and Alec Stephenson} \seealso{\code{\link{fpot}}, \code{\link{matplot}}, \code{\link{tcplot}}} \examples{ mrlplot(portpirie) } \keyword{hplot} evd/man/marma.Rd0000744000176200001440000000614112017604710013170 0ustar liggesusers\name{marma} \alias{marma} \alias{mar} \alias{mma} \title{Simulate MARMA(p,q) Processes} \description{ Simulation of MARMA(p,q) processes. } \usage{ marma(n, p = 0, q = 0, psi, theta, init = rep(0, p), n.start = p, rand.gen = rfrechet, \dots) mar(n, p = 1, psi, init = rep(0, p), n.start = p, rand.gen = rfrechet, \dots) mma(n, q = 1, theta, rand.gen = rfrechet, \dots) } \arguments{ \item{n}{The number of observations.} \item{p}{The AR order of the MARMA process.} \item{q}{The MA order of the MARMA process.} \item{psi}{A vector of non-negative parameters, of length \code{p}. Can be omitted if \code{p} is zero.} \item{theta}{A vector of non-negative parameters, of length \code{q}. Can be omitted if \code{q} is zero.} \item{init}{A vector of non-negative starting values, of length \code{p}.} \item{n.start}{A non-negative value denoting the length of the burn-in period. If \code{n.start} is less than \code{p}, then \code{p} minus \code{n.start} starting values will be included in the output series.} \item{rand.gen}{A simulation function to generate the innovations.} \item{\dots}{Additional arguments for \code{rand.gen}. Most usefully, the scale and shape parameters of the innovations generated by \code{rfrechet} can be specified by \code{scale} and \code{shape} respectively.} } \details{ A max autoregressive moving average process \eqn{\{X_k\}}{{X_k}}, denoted by MARMA(p,q), is defined in Davis and Resnick (1989) as satisfying \deqn{X_k = \max\{\phi_1 X_{k-1}, \ldots, \phi_p X_{k-p}, \epsilon_k, \theta_1 \epsilon_{k-1}, \ldots, \theta_q \epsilon_{k-q}\}}{ X_k = max[phi_1 X_{k-1}, \ldots, phi_p X_{k-p}, epsilon_k, theta_1 epsilon_{k-1}, \ldots, theta_q epsilon_{k-q}]} where \eqn{\code{phi} = (\phi_1, \ldots, \phi_p)}{ \code{phi} = (phi_1, \ldots, phi_p)} and \eqn{\code{theta} = (\theta_1, \ldots, \theta_q)}{ \code{theta} = (theta_1, \ldots, theta_q)} are non-negative vectors of parameters, and where \eqn{\{\epsilon_k\}}{{epsilon_k}} is a series of \emph{iid} random variables with a common distribution defined by \code{rand.gen}. The functions \code{mar} and \code{mma} generate MAR(p) and MMA(q) processes respectively. A MAR(p) process \eqn{\{X_k\}}{{X_k}} is equivalent to a MARMA(p, 0) process, so that \deqn{X_k = \max\{\phi_1 X_{k-1}, \ldots, \phi_p X_{k-p}, \epsilon_k\}.}{X_k = max[phi_1 X_{k-1}, \ldots, phi_p X_{k-p}, epsilon_k].} A MMA(q) process \eqn{\{X_k\}}{{X_k}} is equivalent to a MARMA(0, q) process, so that \deqn{X_k = \max\{\epsilon_k, \theta_1 \epsilon_{k-1}, \ldots, \theta_q \epsilon_{k-q}\}.}{X_k = max[epsilon_k, theta_1 epsilon_{k-1}, \ldots, theta_q epsilon_{k-q}].} } \value{ A numeric vector of length \code{n}. } \references{ Davis, R. A. and Resnick, S. I. (1989) Basic properties and prediction of max-arma processes. \emph{Adv. Appl. Prob.}, \bold{21}, 781--803. } \seealso{\code{\link{evmc}}} \examples{ marma(100, p = 1, q = 1, psi = 0.75, theta = 0.65) mar(100, psi = 0.85, n.start = 20) mma(100, q = 2, theta = c(0.75, 0.8)) } \keyword{distribution} evd/man/lossalae.Rd0000744000176200001440000000247612017604710013705 0ustar liggesusers\name{lossalae} \alias{lossalae} \title{General Liability Claims} \usage{lossalae} \description{ The \code{lossalae} data frame has 1500 rows and 2 columns. The columns contain the indemnity payment (loss), and the allocated loss adjustment expense (alae), both in USD. The latter is the additional expenses associated with the settlement of the claim (e.g. claims investigation expenses and legal fees). The dataset also has an attribute called \code{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. } \format{ This data frame contains the following columns: \describe{ \item{Loss}{A numeric vector containing the indemnity payments.} \item{ALAE}{A numeric vector containing the allocated loss adjustment expenses.} } } \source{ Frees, E. W. and Valdez, E. A. (1998) Understanding relationships using copulas. \emph{North American Actuarial Journal}, \bold{2}, 1--15. } \references{ Klugman, S. A. and Parsa, R. (1999) Fitting bivariate loss distributions with copulas. \emph{Insurance: Mathematics and Economics}, \bold{24}, 139--148. Beirlant, J., Goegebeur, Y., Segers, J. and Teugels, J. L. (2004) \emph{Statistics of Extremes: Theory and Applications.}, Chichester, England: John Wiley and Sons. } \keyword{datasets} evd/man/lisbon.Rd0000744000176200001440000000060412017604710013357 0ustar liggesusers\name{lisbon} \alias{lisbon} \title{Annual Maximum Wind Speeds at Lisbon} \usage{lisbon} \description{ A numeric vector containing annual maximum wind speeds, in kilometers per hour, from 1941 to 1970 at Lisbon, Portugal. } \format{A vector containing 30 observations.} \source{ Tiago de Oliveira, J. (1997) \emph{Statistical Analysis of Extremes.} Pendor. } \keyword{datasets} evd/man/hbvevd.Rd0000744000176200001440000001017712017604710013355 0ustar liggesusers\name{hbvevd} \alias{hbvevd} \title{Parametric Spectral Density Functions of Bivariate Extreme Value Models} \description{ Calculate or plot the density \eqn{h} of the spectral measure \eqn{H} on the interval \eqn{(0,1)}, for nine parametric bivariate extreme value models. } \usage{ hbvevd(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), half = FALSE, plot = FALSE, add = FALSE, lty = 1, \dots) } \arguments{ \item{x}{A vector of values at which the function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{h(1/2)} is returned by default.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{half}{Logical; if \code{TRUE} the function is divided by two, corresponding to a spectral measure with total mass one rather than two.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly.} \item{add}{Logical; add to an existing plot?} \item{lty}{Line type.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Any bivariate extreme value distribution can be written as \deqn{G(z_1,z_2) = \exp\left[-\int_0^1 \max\{wy_1, (1-w)y_2\} H(dw)\right]}{G(z1,z2) = exp{-\int_0^1 max(w y1, (1-w) y2) H(dw)}} for some function \eqn{H(\cdot)}{H()} defined on \eqn{[0,1]}, satisfying \deqn{\int_0^1 w H(dw) = \int_0^1 (1-w) H(dw) = 1}{ \int_0^1 w H(dw) = int_0^1 (1-w) H(dw) = 1.} In particular, the total mass of H is two. The functions \eqn{y_1}{y1} and \eqn{y_2}{y2} are as defined in \code{\link{abvevd}}. H is called the spectral measure, with density \eqn{h} on the interval \eqn{(0,1)}. } \section{Point Masses}{ For differentiable models H may have up to two point masses: at zero and one. Assuming that the model parameters are in the interior of the parameter space, we have the following. For the asymmetric logistic and asymmetric negative logistic models the point masses are of size \code{1-asy1} and \code{1-asy2} respectively. For the asymmetric mixed model they are of size \code{1-alpha-beta} and \code{1-alpha-2*beta} respectively. For all other models the point masses are zero. At independence, H has point masses of size one at both zero and one. At complete dependence [a non-differentiable model] H has a single point mass of size two at \eqn{1/2}. In either case, \eqn{h} is zero everywhere. } \value{ \code{hbvevd} calculates or plots the spectral density function \eqn{h} for one of nine parametric bivariate extreme value models, at specified parameter values. } \seealso{\code{\link{abvevd}}, \code{\link{fbvevd}}, \code{\link{rbvevd}}, \code{\link{plot.bvevd}}} \examples{ hbvevd(dep = 2.7, model = "hr") hbvevd(seq(0.25,0.5,0.75), dep = 0.3, asy = c(.7,.9), model = "alog") hbvevd(alpha = 0.3, beta = 1.2, model = "negbi", plot = TRUE) bvdata <- rbvevd(100, dep = 0.7, model = "log") M1 <- fitted(fbvevd(bvdata, model = "log")) hbvevd(dep = M1["dep"], model = "log", plot = TRUE) } \keyword{distribution} evd/man/gumbel.Rd0000744000176200001440000000311412017604710013343 0ustar liggesusers\name{gumbel} \alias{dgumbel} \alias{pgumbel} \alias{qgumbel} \alias{rgumbel} \title{The Gumbel Distribution} \description{ Density function, distribution function, quantile function and random generation for the Gumbel distribution with location and scale parameters. } \usage{ dgumbel(x, loc=0, scale=1, log = FALSE) pgumbel(q, loc=0, scale=1, lower.tail = TRUE) qgumbel(p, loc=0, scale=1, lower.tail = TRUE) rgumbel(n, loc=0, scale=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale}{Location and scale parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The Gumbel distribution function with parameters \eqn{\code{loc} = a} and \eqn{\code{scale} = b} is \deqn{G(z) = \exp\left\{-\exp\left[-\left(\frac{z-a}{b}\right) \right]\right\}}{G(x) = exp{-exp[-(z-a)/b]}} for all real \eqn{z}, where \eqn{b > 0}. } \value{ \code{dgumbel} gives the density function, \code{pgumbel} gives the distribution function, \code{qgumbel} gives the quantile function, and \code{rgumbel} generates random deviates. } \seealso{\code{\link{rfrechet}}, \code{\link{rgev}}, \code{\link{rrweibull}}} \examples{ dgumbel(-1:2, -1, 0.5) pgumbel(-1:2, -1, 0.5) qgumbel(seq(0.9, 0.6, -0.1), 2, 0.5) rgumbel(6, -1, 0.5) p <- (1:9)/10 pgumbel(qgumbel(p, -1, 2), -1, 2) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/gpd.Rd0000744000176200001440000000360612017604710012650 0ustar liggesusers\name{gpd} \alias{dgpd} \alias{pgpd} \alias{qgpd} \alias{rgpd} \title{The Generalized Pareto Distribution} \description{ Density function, distribution function, quantile function and random generation for the generalized Pareto distribution (GPD) with location, scale and shape parameters. } \usage{ dgpd(x, loc=0, scale=1, shape=0, log = FALSE) pgpd(q, loc=0, scale=1, shape=0, lower.tail = TRUE) qgpd(p, loc=0, scale=1, shape=0, lower.tail = TRUE) rgpd(n, loc=0, scale=1, shape=0) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters; the \code{shape} argument cannot be a vector (must have length one).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The generalized Pareto distribution function (Pickands, 1975) with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = 1 - \{1+s(z-a)/b\}^{-1/s}}{ G(z) = 1 - {1+s(z-a)/b}^(-1/s)} for \eqn{1+s(z-a)/b > 0} and \eqn{z > a}, where \eqn{b > 0}. If \eqn{s = 0} the distribution is defined by continuity. } \value{ \code{dgpd} gives the density function, \code{pgpd} gives the distribution function, \code{qgpd} gives the quantile function, and \code{rgpd} generates random deviates. } \references{ Pickands, J. (1975) Statistical inference using extreme order statistics. \emph{Annals of Statistics}, \bold{3}, 119--131. } \seealso{\code{\link{fpot}}, \code{\link{rgev}}} \examples{ dgpd(2:4, 1, 0.5, 0.8) pgpd(2:4, 1, 0.5, 0.8) qgpd(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rgpd(6, 1, 0.5, 0.8) p <- (1:9)/10 pgpd(qgpd(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/gev.Rd0000744000176200001440000000457412017604710012664 0ustar liggesusers\name{gev} \alias{dgev} \alias{pgev} \alias{qgev} \alias{rgev} \title{The Generalized Extreme Value Distribution} \description{ Density function, distribution function, quantile function and random generation for the generalized extreme value (GEV) distribution with location, scale and shape parameters. } \usage{ dgev(x, loc=0, scale=1, shape=0, log = FALSE) pgev(q, loc=0, scale=1, shape=0, lower.tail = TRUE) qgev(p, loc=0, scale=1, shape=0, lower.tail = TRUE) rgev(n, loc=0, scale=1, shape=0) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters; the \code{shape} argument cannot be a vector (must have length one).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The GEV distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left[-\{1+s(z-a)/b\}^{-1/s}\right]}{ G(x) = exp[-{1+s(z-a)/b}^(-1/s)]} for \eqn{1+s(z-a)/b > 0}, where \eqn{b > 0}. If \eqn{s = 0} the distribution is defined by continuity. If \eqn{1+s(z-a)/b \leq 0}{1+s(z-a)/b <= 0}, the value \eqn{z} is either greater than the upper end point (if \eqn{s < 0}), or less than the lower end point (if \eqn{s > 0}). The parametric form of the GEV encompasses that of the Gumbel, Frechet and reverse Weibull distributions, which are obtained for \eqn{s = 0}, \eqn{s > 0} and \eqn{s < 0} respectively. It was first introduced by Jenkinson (1955). } \value{ \code{dgev} gives the density function, \code{pgev} gives the distribution function, \code{qgev} gives the quantile function, and \code{rgev} generates random deviates. } \references{ Jenkinson, A. F. (1955) The frequency distribution of the annual maximum (or minimum) of meteorological elements. \emph{Quart. J. R. Met. Soc.}, \bold{81}, 158--171. } \seealso{\code{\link{fgev}}, \code{\link{rfrechet}}, \code{\link{rgumbel}}, \code{\link{rrweibull}}} \examples{ dgev(2:4, 1, 0.5, 0.8) pgev(2:4, 1, 0.5, 0.8) qgev(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rgev(6, 1, 0.5, 0.8) p <- (1:9)/10 pgev(qgev(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/frechet.Rd0000744000176200001440000000333512017604710013515 0ustar liggesusers\name{frechet} \alias{dfrechet} \alias{pfrechet} \alias{qfrechet} \alias{rfrechet} \title{The Frechet Distribution} \description{ Density function, distribution function, quantile function and random generation for the Frechet distribution with location, scale and shape parameters. } \usage{ dfrechet(x, loc=0, scale=1, shape=1, log = FALSE) pfrechet(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qfrechet(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rfrechet(n, loc=0, scale=1, shape=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The Frechet distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left\{-\left(\frac{z-a}{b}\right)^{-s} \right\}}{G(x) = exp{-[(z-a)/b]^(-s)}} for \eqn{z > a} and zero otherwise, where \eqn{b > 0} and \eqn{s > 0}. } \value{ \code{dfrechet} gives the density function, \code{pfrechet} gives the distribution function, \code{qfrechet} gives the quantile function, and \code{rfrechet} generates random deviates. } \seealso{\code{\link{rgev}}, \code{\link{rgumbel}}, \code{\link{rrweibull}}} \examples{ dfrechet(2:4, 1, 0.5, 0.8) pfrechet(2:4, 1, 0.5, 0.8) qfrechet(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rfrechet(6, 1, 0.5, 0.8) p <- (1:9)/10 pfrechet(qfrechet(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/fpot.Rd0000744000176200001440000002177212017604710013052 0ustar liggesusers\name{fpot} \alias{fpot} \alias{print.pot} \title{Peaks Over Threshold Modelling using the Generalized Pareto or Point Process Representation} \description{ Maximum-likelihood fitting for peaks over threshold modelling, using the Generalized Pareto or Point Process representation, allowing any of the parameters to be held fixed if desired. } \usage{ fpot(x, threshold, model = c("gpd", "pp"), start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper = NULL, \dots, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A numeric vector. If this contains missing values, those values are treated as if they fell below the threshold.} \item{threshold}{The threshold.} \item{model}{The model; either \code{"gpd"} (the default) or \code{"pp"}, for the Generalized Pareto or Point Process representations respectively.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using moment estimators.} \item{npp}{The data should contain \code{npp} observations per ``period'', where the return level plot produced by \code{plot.pot} will represent return periods in units of ``periods''. By default \code{npp = length(x)}, so that the ``period'' is the period of time over which the entire data set is collected. It may often be useful to change this default so that more sensible units are used. For example, if yearly periodic units are required, use \code{npp = 365.25} for daily data and \code{npp = 52.18} for weekly data. The argument only makes a difference to the actual fit if \code{mper} is not \code{NULL} or if \code{model = "pp"} (see \bold{Details}).} \item{cmax}{Logical; if \code{FALSE} (the default), the model is fitted using all exceedences over the threshold. If \code{TRUE}, the model is fitted using cluster maxima, using clusters of exceedences derived from \code{clusters}.} \item{r, ulow, rlow}{Arguments used for the identification of clusters of exceedences (see \code{\link{clusters}}). Ignored if \code{cmax} is \code{FALSE} (the default).} \item{mper}{Controls the parameterization of the generalized Pareto model. Should be either \code{NULL} (the default), or a positive number (see \bold{Details}). If \code{mper} is not \code{NULL} and \code{model = "pp"}, an error is returned.} \item{\dots}{Additional parameters, either for the model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ The exeedances over the threshold \code{threshold} (if \code{cmax} is \code{FALSE}) or the maxima of the clusters of exeedances (if \code{cmax} is \code{TRUE}) are (if \code{model = "gpd"}) fitted to a generalized Pareto distribution (GPD) with location \code{threshold}. If \code{model = "pp"} the exceedances are fitted to a non-homogeneous Poisson process (Coles, 2001). If \code{mper} is \code{NULL} (the default), the parameters of the model (if \code{model = "gpd"}) are \code{scale} and \code{shape}, for the scale and shape parameters of the GPD. If \code{model = "pp"} the parameters are \code{loc}, \code{scale} and \code{shape}. Under \code{model = "pp"} the parameters can be interpreted as parameters of the Generalized Extreme Value distribution, fitted to the maxima of \code{npp} random variables. In this case, the value of \code{npp} should be reasonably large. For both characterizations, the shape parameters are equivalent. The scale parameter under the generalized Pareto characterization is equal to \eqn{b + s(u - a)}, where \eqn{a}, \eqn{b} and \eqn{s} are the location, scale and shape parameters under the Point Process characterization, and where \eqn{u} is the threshold. If \eqn{\code{mper} = m} is a positive value, then the generalized Pareto model is reparameterized so that the parameters are \code{rlevel} and \code{shape}, where \code{rlevel} is the \eqn{m} ``period'' return level, where ``period'' is defined via the argument \code{npp}. The \eqn{m} ``period'' return level is defined as follows. Let \eqn{G} be the fitted generalized Pareto distribution function, with location \eqn{\code{threshold} = u}, so that \eqn{1 - G(z)} is the fitted probability of an exceedance over \eqn{z > u} given an exceedance over \eqn{u}. The fitted probability of an exceedance over \eqn{z > u} is therefore \eqn{p(1 - G(z))}, where \eqn{p} is the estimated probabilty of exceeding \eqn{u}, which is given by the empirical proportion of exceedances. The \eqn{m} ``period'' return level \eqn{z_m} satisfies \eqn{p(1 - G(z_m)) = 1/(mN)}, where \eqn{N} is the number of points per period (multiplied by the estimate of the extremal index, if cluster maxima are fitted). In other words, \eqn{z_m} is the quantile of the fitted model that corresponds to the upper tail probability \eqn{1/(mN)}. If \code{mper} is infinite, then \eqn{z_m} is the upper end point, given by \code{threshold} minus \eqn{\code{scale}/\code{shape}}, and the shape parameter is then restricted to be negative. } \value{ Returns an object of class \code{c("pot","uvevd","pot")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{profile} can be used to obtain deviance profiles for the model parameters. In particular, profiles of the \eqn{m} \code{period} return level \eqn{z_m} can be calculated and plotted when \eqn{\code{mper} = m}. The function \code{anova} compares nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("pot","uvevd","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters of the model that have been held fixed.} \item{param}{A vector containing all parameters (optimized and fixed).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{threshold, r, ulow, rlow, npp}{The arguments of the same name.} \item{nhigh}{The number of exceedences (if \code{cmax} is \code{FALSE}) or the number of clusters of exceedences (if \code{cmax} is \code{TRUE}).} \item{nat, pat}{The number and proportion of exceedences.} \item{extind}{The estimate of the extremal index (i.e. \code{nhigh} divided by \code{nat}). If \code{cmax} is \code{FALSE}, this is \code{NULL}.} \item{data}{The data passed to the argument \code{x}.} \item{exceedances}{The exceedences, or the maxima of the clusters of exceedences.} \item{mper}{The argument \code{mper}.} \item{scale}{The scale parameter for the fitted generalized Pareto distribution. If \code{mper} is \code{NULL} and \code{model = "gpd"} (the defaults), this will also be an element of \code{param}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when the shape parameter is less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.uvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}, \code{\link{mrlplot}}, \code{\link{tcplot}}} \examples{ uvdata <- rgpd(100, loc = 0, scale = 1.1, shape = 0.2) M1 <- fpot(uvdata, 1) M2 <- fpot(uvdata, 1, shape = 0) anova(M1, M2) par(mfrow = c(2,2)) plot(M1) \dontrun{M1P <- profile(M1)} \dontrun{plot(M1P)} M1 <- fpot(uvdata, 1, mper = 10) M2 <- fpot(uvdata, 1, mper = 100) \dontrun{M1P <- profile(M1, which = "rlevel", conf=0.975, mesh=0.1)} \dontrun{M2P <- profile(M2, which = "rlevel", conf=0.975, mesh=0.1)} \dontrun{plot(M1P)} \dontrun{plot(M2P)} } \keyword{models} evd/man/fox.Rd0000744000176200001440000000163012017604710012665 0ustar liggesusers\name{fox} \alias{fox} \title{Maximum Annual Flood Discharges of the Fox River} \usage{fox} \description{ The \code{fox} data frame has 33 rows and 2 columns. The columns contain maximum annual flood discharges, in units of 1000 cubed feet per second, from the Fox River in Wisconsin, USA at Berlin (upstream) and Wrightstown (downstream), for the years 1918 to 1950. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{berlin}{A numeric vector containing maximum annual flood discharges at Berlin (upstream).} \item{wright}{A numeric vector containing maximum annual flood discharges at Wrightstown (downstream).} } } \source{ Gumbel, E. J. and Mustafi, C. K. (1967) Some analytical properties of bivariate extremal distributions. \emph{J. Amer. Statist. Assoc.}, \bold{62}, 569--588. } \keyword{datasets} evd/man/forder.Rd0000744000176200001440000000653712017604710013365 0ustar liggesusers\name{forder} \alias{forder} \title{Maximum-likelihood Fitting of Order Statistics} \description{ Maximum-likelihood fitting for the distribution of a selected order statistic of a given number of independent variables from a specified distribution. } \usage{ forder(x, start, densfun, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") } \arguments{ \item{x}{A numeric vector.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized.} \item{densfun, distnfun}{Density and distribution function of the specified distribution.} \item{\dots}{Additional parameters, either for the specified distribution or for the optimization function \code{optim}. If parameters of the distribution are included they will be held fixed at the values given (see \bold{Examples}). If parameters of the distribution are not included either here or as a named component in \code{start} they will be held fixed at the default values specified in the corresponding density and distribution functions (assuming they exist; an error will be generated otherwise).} \item{distn}{A character string, optionally specified as an alternative to \code{densfun} and \code{distnfun} such that the density and distribution and functions are formed upon the addition of the prefixes \code{d} and \code{p} respectively.} \item{mlen}{The number of independent variables.} \item{j}{The order statistic, taken as the \code{j}th largest (default) or smallest of \code{mlen}, according to the value of \code{largest}.} \item{largest}{Logical; if \code{TRUE} (default) use the \code{j}th largest order statistic, otherwise use the \code{j}th smallest.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} } \details{ Maximization of the log-likelihood is performed. The estimated standard errors are taken from the observed information, calculated by a numerical approximation. If the density and distribution functions are user defined, the order of the arguments must mimic those in R base (i.e. data first, parameters second). Density functions must have \code{log} arguments. } \value{ Returns an object of class \code{c("extreme","evd")}. This class is defined in \code{\link{fextreme}}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{anova} compares nested models. } \seealso{\code{\link{anova.evd}}, \code{\link{fextreme}}, \code{\link{optim}}} \examples{ uvd <- rorder(100, qnorm, mean = 0.56, mlen = 365, j = 2) forder(uvd, list(mean = 0, sd = 1), distn = "norm", mlen = 365, j = 2) forder(uvd, list(rate = 1), distn = "exp", mlen = 365, j = 2, method = "Brent", lower=0.01, upper=10) forder(uvd, list(scale = 1), shape = 1, distn = "gamma", mlen = 365, j = 2, method = "Brent", lower=0.01, upper=10) forder(uvd, list(shape = 1, scale = 1), distn = "gamma", mlen = 365, j = 2) } \keyword{models} evd/man/fgev.Rd0000744000176200001440000001730712017604710013030 0ustar liggesusers\name{fgev} \alias{fgev} \alias{fitted.evd} \alias{std.errors} \alias{std.errors.evd} \alias{vcov.evd} \alias{print.evd} \alias{logLik.evd} \title{Maximum-likelihood Fitting of the Generalized Extreme Value Distribution} \description{ Maximum-likelihood fitting for the generalized extreme value distribution, including linear modelling of the location parameter, and allowing any of the parameters to be held fixed if desired. } \usage{ fgev(x, start, \dots, nsloc = NULL, prob = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A numeric vector, which may contain missing values.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using moment estimators.} \item{\dots}{Additional parameters, either for the GEV model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{nsloc}{A data frame with the same number of rows as the length of \code{x}, for linear modelling of the location parameter. The data frame is treated as a covariate matrix (excluding the intercept). A numeric vector can be given as an alternative to a single column data frame.} \item{prob}{Controls the parameterization of the model (see \bold{Details}). Should be either \code{NULL} (the default), or a probability in the closed interval [0,1].} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ If \code{prob} is \code{NULL} (the default): For stationary models the parameter names are \code{loc}, \code{scale} and \code{shape}, for the location, scale and shape parameters respectively. For non-stationary models, the parameter names are \code{loc}, \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc}, so that \code{loc} is the intercept of the linear model, and \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn} are the \code{ncol(nsloc)} coefficients. If \code{nsloc} is a vector it is converted into a single column data frame with column name \code{trend}, and hence the associated trend parameter is named \code{loctrend}. If \eqn{\code{prob} = p} is a probability: The fit is performed using a different parameterization. Let \eqn{a}, \eqn{b} and \eqn{s} denote the location, scale and shape parameters of the GEV distribution. For stationary models, the distribution is parameterized using \eqn{(z_p,b,s)}, where \deqn{z_p = a - b/s (1 - (-\log(1 - p))^s)}{ z_p = a - b/s (1 - (-log(1 - p))^s)} is such that \eqn{G(z_p) = 1 - p}, where \eqn{G} is the GEV distribution function. \eqn{\code{prob} = p} is therefore the probability in the upper tail corresponding to the quantile \eqn{z_p}. If \code{prob} is zero, then \eqn{z_p} is the upper end point \eqn{a - b/s}, and \eqn{s} is restricted to the negative (Weibull) axis. If \code{prob} is one, then \eqn{z_p} is the lower end point \eqn{a - b/s}, and \eqn{s} is restricted to the positive (Frechet) axis. The parameter names are \code{quantile}, \code{scale} and \code{shape}, for \eqn{z_p}, \eqn{b} and \eqn{s} respectively. For non-stationary models the parameter \eqn{z_p} is again given by the equation above, but \eqn{a} becomes the intercept of the linear model for the location parameter, so that \code{quantile} replaces (the intercept) \code{loc}, and hence the parameter names are \code{quantile}, \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc}. In either case: For non-stationary fitting it is recommended that the covariates within the linear model for the location parameter are (at least approximately) centered and scaled (i.e.\ that the columns of \code{nsloc} are centered and scaled), particularly if automatic starting values are used, since the starting values for the associated parameters are then zero. } \value{ Returns an object of class \code{c("gev","uvevd","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} are used to obtain deviance profiles for the model parameters. In particular, profiles of the quantile \eqn{z_p} can be calculated and plotted when \eqn{\code{prob} = p}. The function \code{anova} compares nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("gev","uvevd","evd")} is a list containing at most the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters of the model that have been held fixed.} \item{param}{A vector containing all parameters (optimized and fixed).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{tdata}{The data, transformed to stationarity (for non-stationary models).} \item{nsloc}{The argument \code{nsloc}.} \item{n}{The length of \code{x}.} \item{prob}{The argument \code{prob}.} \item{loc}{The location parameter. If \code{prob} is \code{NULL} (the default), this will also be an element of \code{param}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when the shape parameter is less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.uvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) trend <- (-49:50)/100 M1 <- fgev(uvdata, nsloc = trend, control = list(trace = 1)) M2 <- fgev(uvdata) M3 <- fgev(uvdata, shape = 0) M4 <- fgev(uvdata, scale = 1, shape = 0) anova(M1, M2, M3, M4) par(mfrow = c(2,2)) plot(M2) \dontrun{M2P <- profile(M2)} \dontrun{plot(M2P)} rnd <- runif(100, min = -.5, max = .5) fgev(uvdata, nsloc = data.frame(trend = trend, random = rnd)) fgev(uvdata, nsloc = data.frame(trend = trend, random = rnd), locrandom = 0) uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata, prob = 0.1) M2 <- fgev(uvdata, prob = 0.01) \dontrun{M1P <- profile(M1, which = "quantile")} \dontrun{M2P <- profile(M2, which = "quantile")} \dontrun{plot(M1P)} \dontrun{plot(M2P)} } \keyword{models} evd/man/fextreme.Rd0000744000176200001440000000731312017604710013714 0ustar liggesusers\name{fextreme} \alias{fextreme} \title{Maximum-likelihood Fitting of Maxima and Minima} \description{ Maximum-likelihood fitting for the distribution of the maximum/minimum of a given number of independent variables from a specified distribution. } \usage{ fextreme(x, start, densfun, distnfun, \dots, distn, mlen = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") } \arguments{ \item{x}{A numeric vector.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized.} \item{densfun, distnfun}{Density and distribution function of the specified distribution.} \item{\dots}{Additional parameters, either for the specified distribution or for the optimization function \code{optim}. If parameters of the distribution are included they will be held fixed at the values given (see \bold{Examples}). If parameters of the distribution are not included either here or as a named component in \code{start} they will be held fixed at the default values specified in the corresponding density and distribution functions (assuming they exist; an error will be generated otherwise).} \item{distn}{A character string, optionally specified as an alternative to \code{densfun} and \code{distnfun} such that the density and distribution functions are formed upon the addition of the prefixes \code{d} and \code{p} respectively.} \item{mlen}{The number of independent variables.} \item{largest}{Logical; if \code{TRUE} (default) use maxima, otherwise minima.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} } \details{ Maximization of the log-likelihood is performed. The estimated standard errors are taken from the observed information, calculated by a numerical approximation. If the density and distribution functions are user defined, the order of the arguments must mimic those in R base (i.e. data first, parameters second). Density functions must have \code{log} arguments. } \value{ Returns an object of class \code{c("extreme","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{anova} compares nested models. An object of class \code{c("extreme","evd")} is a list containing at most the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{call}{The call of the current function.} \item{data}{The data passed to the argument \code{x}.} \item{n}{The length of \code{x}.} } \seealso{\code{\link{anova.evd}}, \code{\link{forder}}, \code{\link{optim}}} \examples{ uvdata <- rextreme(100, qnorm, mean = 0.56, mlen = 365) fextreme(uvdata, list(mean = 0, sd = 1), distn = "norm", mlen = 365) fextreme(uvdata, list(rate = 1), distn = "exp", mlen = 365, method = "Brent", lower=0.01, upper=10) fextreme(uvdata, list(scale = 1), shape = 1, distn = "gamma", mlen = 365, method = "Brent", lower=0.01, upper=10) fextreme(uvdata, list(shape = 1, scale = 1), distn = "gamma", mlen = 365) } \keyword{models} evd/man/fbvpot.Rd0000744000176200001440000002136412017604710013377 0ustar liggesusers\name{fbvpot} \alias{fbvpot} \alias{print.bvpot} \title{Maximum-likelihood Fitting of Bivariate Extreme Value Distributions to Threshold Exceedances} \description{ Fit models for one of nine parametric bivariate extreme-value distributions using threshold exceedances, allowing any of the parameters to be held fixed if desired. } \usage{ fbvpot(x, threshold, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), likelihood = c("censored", "poisson"), start, \dots, sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A matrix or data frame with two columns. If this contains missing values, those values are treated as if they fell below the corresponding marginal threshold.} \item{threshold}{A vector of two thresholds.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}.} \item{likelihood}{The likelihood model; either \code{"censored"} (the default) or \code{"poisson"}. The \code{"poisson"} method is not recommended. See \bold{Details}.} \item{start}{A named list giving the initial values for all of the parameters in the model. If \code{start} is omitted the routine attempts to find good starting values using marginal maximum likelihood estimators.} \item{\dots}{Additional parameters, either for the bivariate extreme value model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{sym}{Logical; if \code{TRUE}, the dependence structure of the models \code{"alog"}, \code{"aneglog"} or \code{"ct"} are constrained to be symmetric (see \bold{Details}). For all other models, the argument is ignored (and a warning is given).} \item{cshape}{Logical; if \code{TRUE}, a common shape parameter is fitted to each margin.} \item{cscale}{Logical; if \code{TRUE}, a common scale parameter is fitted to each margin, and the default value of \code{cshape} is then \code{TRUE}, so that under this default common marginal parameters are fitted.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ For the \code{"censored"} method bivariate peaks over threshold models are fitted by maximizing the censored likelihood as given in e.g. Section 8.3.1 of Coles(2001). For the \code{"poisson"} method models are fitted using Equation 5.4 of Coles and Tawn (1991), see also Joe, Smith and Weissman (1992). This method is only available for models whose spectral measure does not contain point masses (see {\link{hbvevd}}). It is not recommended as in practice it can produce poor estimates. For either likelihood the margins are modelled using a generalized Pareto distribution for points above the threshold and an empirical model for those below. For the \code{"poisson"} method data lying below both thresholds is not used. For the \code{"censored"} method the number of points lying below both thresholds is used, but the locations of the those points are not. The dependence parameter names are one or more of \code{dep}, \code{asy1}, \code{asy2}, \code{alpha} and \code{beta}, depending on the model selected (see \code{\link{rbvevd}}). The marginal parameter names are \code{scale1} and \code{shape1} for the first margin, and \code{scale2} and \code{shape2} for the second margin. If \code{cshape} is true, the models are constrained so that \code{shape2 = shape1}. The parameter \code{shape2} is then taken to be specified, so that e.g. the common shape parameter can only be fixed at zero using \code{shape1 = 0}, since using \code{shape2 = 0} gives an error. Similar comments apply for \code{cscale}. If \code{sym} is \code{TRUE}, the asymmetric logistic and asymmetric negative logistic models are constrained so that \code{asy2 = asy1}, and the Coles-Tawn model is constrained so that \code{beta = alpha}. The parameter \code{asy2} or \code{beta} is then taken to be specified, so that e.g. the parameters \code{asy1} and \code{asy2} can only be fixed at \code{0.8} using \code{asy1 = 0.8}, since using \code{asy2 = 0.8} gives an error. Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see \bold{fbvevd}). For numerical reasons the parameters of each model are subject the artificial constraints given in \code{\link{fbvevd}}. } \value{ Returns an object of class \code{c("bvpot","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} can be used to obtain deviance profiles. The function \code{anova} compares nested models, and the function \code{AIC} compares non-nested models. There is currently no plot method available. An object of class \code{c("bvpot","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters that have been fixed at specific values within the optimization.} \item{fixed2}{A vector containing the parameters that have been set to be equal to other model parameters.} \item{param}{A vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{dep.summary}{A value summarizing the strength of dependence in the fitted model (see \bold{fbvevd}).} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{threshold}{The argument \code{threshold}.} \item{n}{The number of rows in \code{x}.} \item{nat}{The vector of length three containing the number of exceedances on the first, second and both margins respectively.} \item{likelihood}{The argument \code{likelihood}.} \item{sym}{The argument \code{sym}.} \item{cmar}{The vector \code{c(cscale, cshape)}.} \item{model}{The argument \code{model}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when either of the marginal shape parameters are less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modelling of Extreme Values}, London: Springer--Verlag. Coles, S. G. and Tawn, J. A. (1991) Modelling multivariate extreme events. \emph{J. R. Statist. Soc. B}, \bold{53}, 377--392. Joe, H., Smith, R. L. and Weissman, I. (1992) Bivariate threshold methods for extremes. \emph{J. R. Statist. Soc. B}, \bold{54}, 171--183. Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \author{Chris Ferro and Alec Stephenson} \seealso{\code{\link{abvevd}}, \code{\link{anova.evd}}, \code{\link{fbvevd}}, \code{\link{optim}}, \code{\link{rbvevd}}} \examples{ bvdata <- rbvevd(1000, dep = 0.5, model = "log") u <- apply(bvdata, 2, quantile, probs = 0.9) M1 <- fbvpot(bvdata, u, model = "log") M2 <- fbvpot(bvdata, u, "log", dep = 0.5) anova(M1, M2) } \keyword{models} evd/man/fbvevd.Rd0000744000176200001440000002774012017604710013357 0ustar liggesusers\name{fbvevd} \alias{fbvevd} \alias{print.bvevd} \title{Maximum-likelihood Fitting of Bivariate Extreme Value Distributions} \description{ Fit models for one of nine parametric bivariate extreme value distributions, including linear modelling of the marginal location parameters, and allowing any of the parameters to be held fixed if desired. } \usage{ fbvevd(x, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), start, \dots, sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values. A data frame may also contain a third column of mode \code{logical}, which itself may contain missing values (see \bold{More Details}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using marginal maximum likelihood estimators.} \item{\dots}{Additional parameters, either for the bivariate extreme value model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{sym}{Logical; if \code{TRUE}, the dependence structure of the models \code{"alog"}, \code{"aneglog"} or \code{"ct"} are constrained to be symmetric (see \bold{Details}). For all other models, the argument is ignored (and a warning is given).} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{x}, for linear modelling of the location parameter on the first/second margin (see \bold{Details}). The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{cshape}{Logical; if \code{TRUE}, a common shape parameter is fitted to each margin.} \item{cscale}{Logical; if \code{TRUE}, a common scale parameter is fitted to each margin, and the default value of \code{cshape} is then \code{TRUE}, so that under this default common scale and shape parameters are fitted.} \item{cloc}{Logical; if \code{TRUE}, a common location parameter is fitted to each margin, and the default values of \code{cshape} and \code{cscale} are then \code{TRUE}, so that under these defaults common marginal parameters are fitted.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ The dependence parameter names are one or more of \code{dep}, \code{asy1}, \code{asy2}, \code{alpha} and \code{beta}, depending on the model selected (see \code{\link{rbvevd}}). The marginal parameter names are \code{loc1}, \code{scale1} and \code{shape1} for the first margin, and \code{loc2}, \code{scale2} and \code{shape2} for the second margin. If \code{nsloc1} is not \code{NULL}, so that a linear model is implemented for the first marginal location parameter, the parameter names for the first margin are \code{loc1}, \code{loc1}\emph{x1}, \dots, \code{loc1}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc1}, so that \code{loc1} is the intercept of the linear model, and \code{loc1}\emph{x1}, \dots, \code{loc1}\emph{xn} are the \code{ncol(nsloc1)} coefficients. When \code{nsloc2} is not \code{NULL}, the parameter names for the second margin are constructed similarly. It is recommended that the covariates within the linear models for the location parameters are (at least approximately) centered and scaled (i.e. that the columns of \code{nsloc1} and \code{nsloc2} are centered and scaled), particularly if automatic starting values are used, since the starting values for the associated parameters are then zero. If \code{cloc} is \code{TRUE}, both \code{nsloc1} and \code{nsloc2} must be identical, since a common linear model is then implemented on both margins. If \code{cshape} is true, the models are constrained so that \code{shape2 = shape1}. The parameter \code{shape2} is then taken to be specified, so that e.g. the common shape parameter can only be fixed at zero using \code{shape1 = 0}, since using \code{shape2 = 0} gives an error. Similar comments apply for \code{cscale} and \code{cloc}. If \code{sym} is \code{TRUE}, the asymmetric logistic and asymmetric negative logistic models are constrained so that \code{asy2 = asy1}, and the Coles-Tawn model is constrained so that \code{beta = alpha}. The parameter \code{asy2} or \code{beta} is then taken to be specified, so that e.g. the parameters \code{asy1} and \code{asy2} can only be fixed at \code{0.8} using \code{asy1 = 0.8}, since using \code{asy2 = 0.8} gives an error. Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see \bold{Examples}). The value \code{Dependence} given in the printed output is \eqn{2(1-A(1/2))}, where \eqn{A} is the estimated dependence function (see \code{\link{abvevd}}). It measures the strength of dependence, and lies in the interval [0,1]; at independence and complete dependence it is zero and one respectively (Coles, Heffernan and Tawn, 1999). See \code{\link{chiplot}} for further information. } \value{ Returns an object of class \code{c("bvevd","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} can be used to obtain deviance profiles. The function \code{anova} compares nested models, and the function \code{AIC} compares non-nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("bvevd","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters that have been fixed at specific values within the optimization.} \item{fixed2}{A vector containing the parameters that have been set to be equal to other model parameters.} \item{param}{A vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{dep.summary}{The estimate of \eqn{2(1-A(1/2))}.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{tdata}{The data, transformed to stationarity (for non-stationary models).} \item{nsloc1, nsloc2}{The arguments \code{nsloc1} and \code{nsloc2}.} \item{n}{The number of rows in \code{x}.} \item{sym}{The argument \code{sym}.} \item{cmar}{The vector \code{c(cloc, cscale, cshape)}.} \item{model}{The argument \code{model}.} \item{call}{The call of the current function.} } \section{More Details}{ If \code{x} is a data frame with a third column of mode \code{logical}, then the model is fitted using the likelihood derived by Stephenson and Tawn (2004). This is appropriate when each bivariate data point comprises componentwise maxima from some underlying bivariate process, and where the corresponding logical value denotes whether or not the maxima were caused by the same event within that process. Under this scheme the diagnostic plots that are produced using \code{plot} are somewhat different to those described in \code{\link{plot.bvevd}}: the density, dependence function and quantile curves plots contain fitted functions for observations where the logical case is unknown, and the conditional P-P plots condition on both the logical case and the given margin (which requires numerical integration at each data point). } \section{Artificial Constraints}{ For numerical reasons parameters are subject to artificial constraints. Specifically, these constraints are: marginal scale parameters not less than 0.01; \code{dep} not less than [0.1] [0.2] [0.05] in [logistic] [Husler-Reiss] [negative logistic] models; \code{dep} not greater than [10] [5] in [Husler-Reiss] [negative logistic] models; \code{asy1} and \code{asy2} not less than 0.001; \code{alpha} and \code{beta} not less than [0.1] [0.1] [0.001] in [bilogistic] [negative bilogistic] [Coles-Tawn] models; \code{alpha} and \code{beta} not greater than [0.999] [20] [30] in [bilogistic] [negative bilogistic] [Coles-Tawn] models. } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when either of the marginal shape parameters are less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analyses. \emph{Extremes}, \bold{2}, 339--365. Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. Stephenson, A. G. and Tawn, J. A. (2004) Exploiting Occurence Times in Likelihood Inference for Componentwise Maxima. \emph{Biometrika} \bold{92}(1), 213--217. Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.bvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}, \code{\link{rbvevd}}} \examples{ bvdata <- rbvevd(100, dep = 0.6, model = "log", mar1 = c(1.2,1.4,0.4)) M1 <- fbvevd(bvdata, model = "log") M2 <- fbvevd(bvdata, model = "log", dep = 0.75) anova(M1, M2) par(mfrow = c(2,2)) plot(M1) plot(M1, mar = 1) plot(M1, mar = 2) \dontrun{par(mfrow = c(1,1))} \dontrun{M1P <- profile(M1, which = "dep")} \dontrun{plot(M1P)} trend <- (-49:50)/100 rnd <- runif(100, min = -.5, max = .5) fbvevd(bvdata, model = "log", nsloc1 = trend) fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend = trend, random = rnd)) fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend = trend, random = rnd), loc2random = 0) bvdata <- rbvevd(100, dep = 1, asy = c(0.5,0.5), model = "anegl") anlog <- fbvevd(bvdata, model = "anegl") mixed <- fbvevd(bvdata, model = "anegl", dep = 1, sym = TRUE) anova(anlog, mixed) amixed <- fbvevd(bvdata, model = "amix") mixed <- fbvevd(bvdata, model = "amix", beta = 0) anova(amixed, mixed) } \keyword{models} evd/man/failure.Rd0000744000176200001440000000057412017604710013526 0ustar liggesusers\name{failure} \alias{failure} \title{Failure Times} \usage{failure} \description{ Failure times. } \format{A vector containing 24 observations.} \source{ van Montfort, M. A. J. and Otten, A. (1978) On testing a shape parameter in the presence of a scale parameter. \emph{Math. Operations Forsch. Statist., Ser. Statistics}, \bold{9}, 91--104. } \keyword{datasets} evd/man/extreme.Rd0000744000176200001440000000474512017604710013554 0ustar liggesusers\name{extreme} \alias{dextreme} \alias{pextreme} \alias{qextreme} \alias{rextreme} \title{Distributions of Maxima and Minima} \description{ Density function, distribution function, quantile function and random generation for the maximum/minimum of a given number of independent variables from a specified distribution. } \usage{ dextreme(x, densfun, distnfun, \dots, distn, mlen = 1, largest = TRUE, log = FALSE) pextreme(q, distnfun, \dots, distn, mlen = 1, largest = TRUE, lower.tail = TRUE) qextreme(p, quantfun, \dots, distn, mlen = 1, largest = TRUE, lower.tail = TRUE) rextreme(n, quantfun, \dots, distn, mlen = 1, largest = TRUE) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{densfun, distnfun, quantfun}{Density, distribution and quantile function of the specified distribution. The density function must have a \code{log} argument (a simple wrapper can always be constructed to achieve this).} \item{\dots}{Parameters of the specified distribution.} \item{distn}{A character string, optionally given as an alternative to \code{densfun}, \code{distnfun} and \code{quantfun} such that the density, distribution and quantile functions are formed upon the addition of the prefixes \code{d}, \code{p} and \code{q} respectively.} \item{mlen}{The number of independent variables.} \item{largest}{Logical; if \code{TRUE} (default) use maxima, otherwise minima.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default) probabilities are P[X <= x], otherwise P[X > x].} } \value{ \code{dextreme} gives the density function, \code{pextreme} gives the distribution function and \code{qextreme} gives the quantile function of the maximum/minimum of \code{mlen} independent variables from a specified distibution. \code{rextreme} generates random deviates. } \seealso{\code{\link{rgev}}, \code{\link{rorder}}} \examples{ dextreme(2:4, dnorm, pnorm, mean = 0.5, sd = 1.2, mlen = 5) dextreme(2:4, distn = "norm", mean = 0.5, sd = 1.2, mlen = 5) dextreme(2:4, distn = "exp", mlen = 2, largest = FALSE) pextreme(2:4, distn = "exp", rate = 1.2, mlen = 2) qextreme(seq(0.9, 0.6, -0.1), distn = "exp", rate = 1.2, mlen = 2) rextreme(5, qgamma, shape = 1, mlen = 10) p <- (1:9)/10 pexp(qextreme(p, distn = "exp", rate = 1.2, mlen = 1), rate = 1.2) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/exiplot.Rd0000744000176200001440000000260212017604710013555 0ustar liggesusers\name{exiplot} \alias{exiplot} \title{Plot Estimates of the Extremal Index} \description{ Plots estimates of the extremal index. } \usage{ exiplot(data, tlim, r = 1, ulow = -Inf, rlow = 1, add = FALSE, nt = 100, lty = 1, xlab = "Threshold", ylab = "Ext. Index", ylim = c(0,1), \dots) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{tlim}{A numeric vector of length two, giving the limits for the (time invariant) thresholds at which the estimates are evaluated.} \item{r, ulow, rlow}{The estimation method. See \code{\link{exi}}.} \item{add}{Add to an existing plot?} \item{nt}{The number of thresholds at which the estimates are evaluated.} \item{lty}{Line type.} \item{xlab, ylab}{x and y axis labels.} \item{ylim}{y axis limits.} \item{\dots}{Other arguments passed to \code{plot} or \code{lines}.} } \details{ The estimates are calculated using the function \code{\link{exi}}. } \value{ A list with components \code{x} and \code{y} is invisibly returned. The first component contains the thresholds, the second contains the estimates. } \seealso{\code{\link{clusters}}, \code{\link{exi}}} \examples{ sdat <- mar(100, psi = 0.5) tlim <- quantile(sdat, probs = c(0.4,0.9)) exiplot(sdat, tlim) exiplot(sdat, tlim, r = 4, add = TRUE, lty = 2) exiplot(sdat, tlim, r = 0, add = TRUE, lty = 4) } \keyword{hplot} evd/man/exi.Rd0000744000176200001440000000411312017604710012655 0ustar liggesusers\name{exi} \alias{exi} \title{Estimates of the Extremal Index} \description{ Estimates of the extremal index. } \usage{ exi(data, u, r = 1, ulow = -Inf, rlow = 1) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{u}{A single value giving the threshold, unless a time varying threshold is used, in which case \code{u} should be a vector of thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied).} \item{r}{Either a postive integer denoting the clustering interval length, or zero, in which case the intervals estimator of Ferro and Segers (2003) is used and following arguments are ignored. By default the interval length is one.} \item{ulow}{A single value giving the lower threshold, unless a time varying lower threshold is used, in which case \code{ulow} should be a vector of lower thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied). By default there is no lower threshold (or equivalently, the lower threshold is \code{-Inf}).} \item{rlow}{A postive integer denoting the lower clustering interval length. By default the interval length is one.} } \details{ If \code{r} is a positive integer the extremal index is estimated using the inverse of the average cluster size, using the clusters of exceedences derived from \code{\link{clusters}}. If \code{r} is zero, an estimate based on inter-exceedance times is used (Ferro and Segers, 2003). If there are no exceedances of the threshold, the estimate is \code{NaN}. If there is only one exceedance, the estimate is one. } \value{ A single value estimating the extremal index. } \references{ Ferro, C. A. T. and Segers, J. (2003) Inference for clusters of extreme values. \emph{JRSS B}, \bold{65}, 545--556. } \seealso{\code{\link{clusters}}, \code{\link{exiplot}}} \examples{ exi(portpirie, 4.2, r = 3, ulow = 3.8) tvu <- c(rep(4.2, 20), rep(4.1, 25), rep(4.2, 20)) exi(portpirie, tvu, r = 1) exi(portpirie, tvu, r = 0) } \keyword{manip} evd/man/evmc.Rd0000744000176200001440000000431312017604710013024 0ustar liggesusers\name{evmc} \alias{evmc} \title{Simulate Markov Chains With Extreme Value Dependence Structures} \description{ Simulation of first order Markov chains, such that each pair of consecutive values has the dependence structure of one of nine parametric bivariate extreme value distributions. } \usage{ evmc(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), margins = c("uniform","rweibull","frechet","gumbel")) } \arguments{ \item{n}{Number of observations.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{margins}{The marginal distribution of each value; a character string. Must be either \code{"uniform"} (the default), \code{"rweibull"}, \code{"frechet"} or \code{"gumbel"} (or any unique partial match), for the uniform, standard reverse Weibull, standard Gumbel and standard Frechet distributions respectively.} } \value{ A numeric vector of length \code{n}. } \seealso{\code{\link{marma}}, \code{\link{rbvevd}}} \examples{ evmc(100, alpha = 0.1, beta = 0.1, model = "bilog") evmc(100, dep = 10, model = "hr", margins = "gum") } \keyword{distribution} evd/man/evind.test.Rd0000744000176200001440000000254212017604710014157 0ustar liggesusers\name{evind.test} \alias{evind.test} \title{Perform Hypothesis Test Of Independence} \description{ Perform score and likelihood ratio tests of independence for bivariate data, assuming a logistic dependence model as the alternative. } \usage{ evind.test(x, method = c("ratio", "score"), verbose = FALSE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values.} \item{method}{The test methodology; either \code{"ratio"} for the likelihood ratio test or \code{"score"} for the score test.} \item{verbose}{If \code{TRUE}, shows estimates of the marginal parameters in addition to the dependence parameter.} } \details{ This simple function fits a stationary bivariate logistic model to the data and performs a hypothesis test of \eqn{\code{dep} = 1} versus \eqn{\code{dep} < 1} using the methodology in Tawn (1988). The null distributions for the printed test statistics are chi-squared on one df for the likelihood ratio test, and standard normal for the score test. } \value{ An object of class \code{"htest"}. } \references{ Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{fbvevd}}, \code{\link{t.test}}} \examples{ evind.test(sealevel) evind.test(sealevel, method = "score") } \keyword{htest} evd/man/evd-internal.Rd0000744000176200001440000000737012017604710014470 0ustar liggesusers\name{evd-internal} \alias{abvalog} \alias{abvaneglog} \alias{abvhr} \alias{abvlog} \alias{abvneglog} \alias{abvbilog} \alias{abvnegbilog} \alias{abvct} \alias{abvamix} \alias{hbvalog} \alias{hbvaneglog} \alias{hbvhr} \alias{hbvlog} \alias{hbvneglog} \alias{hbvbilog} \alias{hbvnegbilog} \alias{hbvct} \alias{hbvamix} \alias{rbvlog} \alias{rbvalog} \alias{rbvhr} \alias{rbvneglog} \alias{rbvaneglog} \alias{rbvbilog} \alias{rbvnegbilog} \alias{rbvct} \alias{rbvamix} \alias{dbvlog} \alias{dbvalog} \alias{dbvhr} \alias{dbvneglog} \alias{dbvaneglog} \alias{dbvbilog} \alias{dbvnegbilog} \alias{dbvct} \alias{dbvamix} \alias{pbvlog} \alias{pbvalog} \alias{pbvhr} \alias{pbvneglog} \alias{pbvaneglog} \alias{pbvbilog} \alias{pbvnegbilog} \alias{pbvct} \alias{pbvamix} \alias{amvalog} \alias{amvlog} \alias{rmvlog} \alias{rmvalog} \alias{pmvlog} \alias{pmvalog} \alias{dmvlog} \alias{dmvalog} \alias{tvdepfn} \alias{mvalog.check} \alias{subsets} \alias{fgev.quantile} \alias{fgev.norm} \alias{fpot.quantile} \alias{fpot.norm} \alias{fbvlog} \alias{fbvalog} \alias{fbvhr} \alias{fbvneglog} \alias{fbvaneglog} \alias{fbvbilog} \alias{fbvnegbilog} \alias{fbvct} \alias{fbvamix} \alias{fbvcpot} \alias{fbvclog} \alias{fbvcalog} \alias{fbvcaneglog} \alias{fbvcbilog} \alias{fbvcct} \alias{fbvcnegbilog} \alias{fbvcneglog} \alias{fbvchr} \alias{fbvcamix} \alias{fbvppot} \alias{fbvplog} \alias{fbvpbilog} \alias{fbvpct} \alias{fbvpnegbilog} \alias{fbvpneglog} \alias{fbvphr} \alias{bvpost.optim} \alias{bvstart.vals} \alias{sep.bvdata} \alias{dens} \alias{pp} \alias{qq} \alias{rl} \alias{dens.gev} \alias{pp.gev} \alias{qq.gev} \alias{rl.gev} \alias{dens.pot} \alias{pp.pot} \alias{qq.pot} \alias{rl.pot} \alias{bvcpp} \alias{bvdens} \alias{bvdp} \alias{bvqc} \alias{bvh} \alias{bvcpp.bvevd} \alias{bvdens.bvevd} \alias{bvdp.bvevd} \alias{bvqc.bvevd} \alias{bvh.bvevd} \alias{bvdens.bvpot} \alias{bvdp.bvpot} \alias{bvqc.bvpot} \alias{bvh.bvpot} \title{Internal Functions} \description{ The evd package contains many internal functions that are not designed to be called by the user. Plotting: The generic functions \code{dens}, \code{pp}, \code{qq} and \code{rl} create the diagnostic plots generated by \code{plot.uvevd}. Similarly, \code{bvdens}, \code{bvcpp}, \code{bvdp}, \code{bvqc} and \code{bvh} create the diagnostic plots generated by \code{plot.bvevd} and \code{plot.bvpot}. Distribution: There are internal, simulation, distribution, density, dependence and spectral density functions for separate bivariate and multivariate parametric models, which are called from functions such as \code{abvevd} and \code{pmvevd}. Additionally, the three functions \code{mvalog.check} (checks and transforms asymmetry parameters), \code{subsets} (generates all subsets of a set) and \code{tvdepfn} (plots trivariate dependence functions) are called from functions associated with multivariate distributions. Univariate Fitting: The fitting function \code{fgev} calls the internal functions \code{fgev.quantile} and \code{fgev.norm} for fits under different parameterizations. The fitting function \code{fpot} calls the internal functions \code{fpot.norm} and \code{fpot.quantile}. Bivariate Fitting: For fitting bivariate distributions, internal functions exist for each model. For fitting bivariate threshold models, internal functions exist for the censored and (undocumented) point process likelihoods, and each of these calls a further internal function corresponding to the specified model. The functions \code{bvpost.optim} (post-optimisation processing), \code{bvstart.vals} (starting values) and \code{sep.bvdata} (separation of data) are additionally used in the fitting of bivariate distributions and bivariate threshold models. } \keyword{internal} evd/man/confint.evd.Rd0000744000176200001440000000212712017604710014310 0ustar liggesusers\name{confint.evd} \alias{confint.evd} \alias{confint.profile.evd} \title{Calculate Confidence Intervals} \description{ Calculate profile and Wald confidence intervals of parameters in fitted models. } \usage{ \method{confint}{evd}(object, parm, level = 0.95, \dots) \method{confint}{profile.evd}(object, parm, level = 0.95, \dots) } \arguments{ \item{object}{Either a fitted model object (of class \code{evd}) for Wald confidence intervals, or a profile trace (of class \code{profile.evd}) for profile likelihood confidence intervals.} \item{parm}{A character vector of parameters; a confidence interval is calculated for each parameter. If missing, then intervals are returned for all parameters in the fitted model or profile trace.} \item{level}{A single number giving the confidence level.} \item{\dots}{Not used.} } \value{ A matrix with two columns giving lower and upper confidence limits. } \seealso{\code{\link{profile.evd}}} \examples{ m1 <- fgev(portpirie) confint(m1) \dontrun{pm1 <- profile(m1)} \dontrun{plot(pm1)} \dontrun{confint(pm1)} } \keyword{manip} evd/man/clusters.Rd0000744000176200001440000001077612017604710013750 0ustar liggesusers\name{clusters} \alias{clusters} \title{Identify Clusters of Exceedences} \description{ Identify clusters of exceedences. } \usage{ clusters(data, u, r = 1, ulow = -Inf, rlow = 1, cmax = FALSE, keep.names = TRUE, plot = FALSE, xdata = seq(along = data), lvals = TRUE, lty = 1, lwd = 1, pch = par("pch"), col = if(n > 250) NULL else "grey", xlab = "Index", ylab = "Data", ...) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{u}{A single value giving the threshold, unless a time varying threshold is used, in which case \code{u} should be a vector of thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied).} \item{r}{A postive integer denoting the clustering interval length. By default the interval length is one.} \item{ulow}{A single value giving the lower threshold, unless a time varying lower threshold is used, in which case \code{ulow} should be a vector of lower thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied). By default there is no lower threshold (or equivalently, the lower threshold is \code{-Inf}).} \item{rlow}{A postive integer denoting the lower clustering interval length. By default the interval length is one.} \item{cmax}{Logical; if \code{FALSE} (the default), a list containing the clusters of exceedences is returned. If \code{TRUE} a numeric vector containing the cluster maxima is returned.} \item{keep.names}{Logical; if \code{FALSE}, the function makes no attempt to retain the names/indices of the observations within the returned object. If \code{data} contains a large number of observations, this can make the function run much faster. The argument is mainly designed for internal use.} \item{plot}{Logical; if \code{TRUE} a plot is given that depicts the identified clusters, and the clusters (if \code{cmax} is \code{FALSE}) or cluster maxima (if \code{cmax} is \code{TRUE}) are returned invisibly. If \code{FALSE} (the default), the following arguments are ignored.} \item{xdata}{A numeric vector with the same length as \code{data}, giving the values to be plotted on the x-axis.} \item{lvals}{Logical; should the values below the threshold and the line depicting the lower threshold be plotted?} \item{lty, lwd}{Line type and width for the lines depicting the threshold and the lower threshold.} \item{pch}{Plotting character.} \item{col}{Strips of colour \code{col} are used to identify the clusters. An observation is contained in the cluster if the centre of the corresponding plotting character is contained in the coloured strip. If \code{col} is \code{NULL} the strips are omitted. By default the strips are coloured \code{"grey"}, but are omitted whenever \code{data} contains more than 250 observations.} \item{xlab, ylab}{Labels for the x and y axis.} \item{\dots}{Other graphics parameters.} } \details{ The clusters of exceedences are identified as follows. The first exceedence of the threshold initiates the first cluster. The first cluster then remains active until either \code{r} consecutive values fall below (or are equal to) the threshold, or until \code{rlow} consecutive values fall below (or are equal to) the lower threshold. The next exceedence of the threshold (if it exists) then initiates the second cluster, and so on. Missing values are allowed, in which case they are treated as falling below (or equal to) the threshold, but falling above the lower threshold. } \value{ If \code{cmax} is \code{FALSE} (the default), a list with one component for each identified cluster. If \code{cmax} is \code{TRUE}, a numeric vector containing the cluster maxima. In any case, the returned object has an attribute \code{acs}, giving the average cluster size (where the cluster size is defined as the number of exceedences within a cluster), which will be \code{NaN} if there are no values above the threshold (and hence no clusters). If \code{plot} is \code{TRUE}, the list of clusters, or vector of cluster maxima, is returned invisibly. } \seealso{\code{\link{exi}}, \code{\link{exiplot}}} \examples{ clusters(portpirie, 4.2, 3) clusters(portpirie, 4.2, 3, cmax = TRUE) clusters(portpirie, 4.2, 3, 3.8, plot = TRUE) clusters(portpirie, 4.2, 3, 3.8, plot = TRUE, lvals = FALSE) tvu <- c(rep(4.2, 20), rep(4.1, 25), rep(4.2, 20)) clusters(portpirie, tvu, 3, plot = TRUE) } \keyword{manip} evd/man/chiplot.Rd0000744000176200001440000001654312017604710013544 0ustar liggesusers\name{chiplot} \alias{chiplot} \title{Dependence Measure Plots} \description{ Plots of estimates of the dependence measures chi and chi-bar for bivariate data. } \usage{ chiplot(data, nq = 100, qlim = NULL, which = 1:2, conf = 0.95, trunc = TRUE, spcases = FALSE, lty = 1, cilty = 2, col = 1, cicol = 1, xlim = c(0,1), ylim1 = c(-1,1), ylim2 = c(-1,1), main1 = "Chi Plot", main2 = "Chi Bar Plot", xlab = "Quantile", ylab1 = "Chi", ylab2 = "Chi Bar", ask = nb.fig < length(which) && dev.interactive(), \dots) } \arguments{ \item{data}{A matrix or data frame with two columns. Rows (observations) with missing values are stripped from the data before any computations are performed.} \item{nq}{The number of quantiles at which the measures are evaluated.} \item{qlim}{The limits of the quantiles at which the measures are evaluated (see \bold{Details}).} \item{which}{If only one plot is required, specify \code{1} for chi and \code{2} for chi-bar.} \item{conf}{The confidence coefficient of the plotted confidence intervals.} \item{trunc}{Logical; truncate the estimates at their theoretical upper and lower bounds?} \item{spcases}{If \code{TRUE}, plots greyed lines corresponding to the special cases of perfect positive/negative dependence and exact independence.} \item{lty, cilty}{Line types for the estimates of the measures and for the confidence intervals respectively. Use zero to supress.} \item{col, cicol}{Colour types for the estimates of the measures and for the confidence intervals respectively.} \item{xlim, xlab}{Limits and labels for the x-axis; they apply to both plots.} \item{ylim1}{Limits for the y-axis of the chi plot. If this is \code{NULL} (the default) the upper limit is one, and the lower limit is the minimum of zero and the smallest plotted value.} \item{ylim2}{Limits for the y-axis of the chi-bar plot.} \item{main1, main2}{The plot titles for the chi and chi-bar plots respectively.} \item{ylab1, ylab2}{The y-axis labels for the chi and chi-bar plots respectively.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{\dots}{Other arguments to be passed to \code{matplot}.} } \details{ These measures are explained in full detail in Coles, Heffernan and Tawn (1999). A brief treatment is also given in Section 8.4 of Coles(2001). A short summary is given as follows. We assume that the data are \emph{iid} random vectors with common bivariate distribution function \eqn{G}, and we define the random vector \eqn{(X,Y)} to be distributed according to \eqn{G}. The chi plot is a plot of \eqn{q} against empirical estimates of \deqn{\chi(q) = 2 - \log(\Pr(F_X(X) < q, F_Y(Y) < q)) / \log(q)}{ chi(q) = 2 - log(Pr(F_X(X) < q, F_Y(Y) < q)) / log(q)} where \eqn{F_X} and \eqn{F_Y} are the marginal distribution functions, and where \eqn{q} is in the interval (0,1). The quantity \eqn{\chi(q)}{chi(q)} is bounded by \deqn{2 - \log(2u - 1)/\log(u) \leq \chi(q) \leq 1}{ 2 - log(2u - 1)/log(u) <= chi(q) <= 1} where the lower bound is interpreted as \code{-Inf} for \eqn{q \leq 1/2}{q <= 1/2} and zero for \eqn{q = 1}. These bounds are reflected in the corresponding estimates. The chi bar plot is a plot of \eqn{q} against empirical estimates of \deqn{\bar{\chi}(q) = 2\log(1-q)/\log(\Pr(F_X(X) > q, F_Y(Y) > q)) - 1}{ chibar(q) = 2log(1-q)/log(Pr(F_X(X) > q, F_Y(Y) > q)) - 1} where \eqn{F_X} and \eqn{F_Y} are the marginal distribution functions, and where \eqn{q} is in the interval (0,1). The quantity \eqn{\bar{\chi}(q)}{chibar(q)} is bounded by \eqn{-1 \leq \bar{\chi}(q) \leq 1}{-1 <= chibar(q) <= 1} and these bounds are reflected in the corresponding estimates. Note that the empirical estimators for \eqn{\chi(q)}{chi(q)} and \eqn{\bar{\chi}(q)}{chibar(q)} are undefined near \eqn{q=0} and \eqn{q=1}. By default the function takes the limits of \eqn{q} so that the plots depicts all values at which the estimators are defined. This can be overridden by the argument \code{qlim}, which must represent a subset of the default values (and these can be determined using the component \code{quantile} of the invisibly returned list; see \bold{Value}). The confidence intervals within the plot assume that observations are independent, and that the marginal distributions are estimated exactly. The intervals are constructed using the delta method; this may lead to poor interval estimates near \eqn{q=0} and \eqn{q=1}. The function \eqn{\chi(q)}{chi(q)} can be interpreted as a quantile dependent measure of dependence. In particular, the sign of \eqn{\chi(q)}{chi(q)} determines whether the variables are positively or negatively associated at quantile level \eqn{q}. By definition, variables are said to be asymptotically independent when \eqn{\chi(1)}{chi(1)} (defined in the limit) is zero. For independent variables, \eqn{\chi(q) = 0}{chi(q) = 0} for all \eqn{q} in (0,1). For perfectly dependent variables, \eqn{\chi(q) = 1}{chi(q) = 1} for all \eqn{q} in (0,1). For bivariate extreme value distributions, \eqn{\chi(q) = 2(1-A(1/2))}{chi(q) = 2(1-A(1/2))} for all \eqn{q} in (0,1), where \eqn{A} is the dependence function, as defined in \code{\link{abvevd}}. If a bivariate threshold model is to be fitted (using \code{\link{fbvpot}}), this plot can therefore act as a threshold identification plot, since e.g. the use of 95\% marginal quantiles as threshold values implies that \eqn{\chi(q)}{chi(q)} should be approximately constant above \eqn{q = 0.95}. The function \eqn{\bar{\chi}(q)}{chibar(q)} can again be interpreted as a quantile dependent measure of dependence; it is most useful within the class of asymptotically independent variables. For asymptotically dependent variables (i.e. those for which \eqn{\chi(1) < 1}{chi(1) < 1}), we have \eqn{\bar{\chi}(1) = 1}{ chibar(1) = 1}, where \eqn{\bar{\chi}(1)}{chibar(1)} is again defined in the limit. For asymptotically independent variables, \eqn{\bar{\chi}(1)}{ chibar(1)} provides a measure that increases with dependence strength. For independent variables \eqn{\bar{\chi}(q) = 0}{chibar(q) = 0} for all \eqn{q} in (0,1), and hence \eqn{\bar{\chi}(1) = 0}{chibar(1) = 0}. } \value{ A list with components \code{quantile}, \code{chi} (if \code{1} is in \code{which}) and \code{chibar} (if \code{2} is in \code{which}) is invisibly returned. The components \code{quantile} and \code{chi} contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the chi plot. The components \code{quantile} and \code{chibar} contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the chi-bar plot. } \references{ Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analyses. \emph{Extremes}, \bold{2}, 339--365. Coles, S. G. (2001) \emph{An Introduction to Statistical Modelling of Extreme Values}, London: Springer--Verlag. } \author{Jan Heffernan and Alec Stephenson} \seealso{\code{\link{fbvevd}}, \code{\link{fbvpot}}, \code{\link{matplot}}} \examples{ par(mfrow = c(1,2)) smdat1 <- rbvevd(1000, dep = 0.6, model = "log") smdat2 <- rbvevd(1000, dep = 1, model = "log") chiplot(smdat1) chiplot(smdat2) } \keyword{hplot} evd/man/ccbvevd.Rd0000744000176200001440000000620512017604710013510 0ustar liggesusers\name{ccbvevd} \alias{ccbvevd} \title{Calculate Conditional Copulas for Parametric Bivariate Extreme Value Distributions} \description{ Conditional copula functions, conditioning on either margin, for nine parametric bivariate extreme value models. } \usage{ ccbvevd(x, mar = 2, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), lower.tail = TRUE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values. A data frame may also contain a third column of mode \code{logical}, which itself may contain missing values (see \bold{Details}).} \item{mar}{One or two; conditions on this margin.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{lower.tail}{Logical; if \code{TRUE} (default), the conditional distribution function is returned; the conditional survivor function is returned otherwise.} } \details{ The function calculates \eqn{P(U_1 < x_1|U_2 = x_2)}{ P(U1 < x1|U2 = x2)}, where \eqn{(U_1,U_2)}{(U1,U2)} is a random vector with Uniform(0,1) margins and with a dependence structure given by the specified parametric model. By default, the values of \eqn{x_1}{x1} and \eqn{x_1}{x2} are given by the first and second columns of the argument \code{x}. If \code{mar = 1} then this is reversed. If \code{x} has a third column \eqn{x_3}{x3} of mode logical, then the function returns \eqn{P(U_1 < x_1|U_2 = x_2,I = x_3)}{ P(U1 < x1|U2 = x2,I = x3)}, according to inference proceedures derived by Stephenson and Tawn (2004). See \code{\link{fbvevd}}. This requires numerical integration, and hence will be slower. This function is mainly for internal use. It is used by \code{\link{plot.bvevd}} to calculate the conditional P-P plotting diagnostics. } \value{ A numeric vector of probabilities. } \references{ Stephenson, A. G. and Tawn, J. A. (2004) Exploiting Occurence Times in Likelihood Inference for Componentwise Maxima. \emph{Biometrika} \bold{92}(1), 213--217. } \seealso{\code{\link{rbvevd}}, \code{\link{fbvevd}}, \code{\link{plot.bvevd}}} \keyword{distribution} evd/man/bvtcplot.Rd0000744000176200001440000000336012017604710013730 0ustar liggesusers\name{bvtcplot} \alias{bvtcplot} \title{Bivariate Threshold Choice Plot} \description{ Produces a diagnostic plot to assist with threshold choice for bivariate data. } \usage{ bvtcplot(x, spectral = FALSE, xlab, ylab, \dots) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values.} \item{spectral}{If \code{TRUE}, an estimate of the spectral measure is plotted instead of the diagnostic plot.} \item{ylab, xlab}{Graphics parameters.} \item{\dots}{Other arguments to be passed to the plotting function.} } \details{ If \code{spectral} is \code{FALSE} (the default), produces a threshold choice plot as illustrated in Beirlant et al. (2004). With \eqn{n} non-missing bivariate observations, the integers \eqn{k = 1,\dots,n-1}{k = 1,...,n-1} are plotted against the values \eqn{(k/n)r_{(n-k)}}{(k/n)r_(n-k)}, where \eqn{r_{(n-k)}}{r_(n-k)} is the \eqn{(n-k)}th order statistic of the sum of the margins following empirical transformation to standard Frechet. A vertical line is drawn at \code{k0}, where \code{k0} is the largest integer for which the y-axis is above the value two. If \code{spectral} is \code{FALSE}, the largest \code{k0} data points are used to plot an estimate of the spectal measure \eqn{H([0, w])} versus \eqn{w}. } \value{ A list is invisibly returned giving \code{k0} and the values used to produce the plot. } \references{ Beirlant, J., Goegebeur, Y., Segers, J. and Teugels, J. L. (2004) \emph{Statistics of Extremes: Theory and Applications.}, Chichester, England: John Wiley and Sons. } \seealso{\code{\link{fbvpot}}, \code{\link{tcplot}}} \examples{ \dontrun{bvtcplot(lossalae)} \dontrun{bvtcplot(lossalae, spectral = TRUE)} } \keyword{hplot} evd/man/bvevd.Rd0000744000176200001440000003552712017604710013213 0ustar liggesusers\name{bvevd} \alias{dbvevd} \alias{pbvevd} \alias{rbvevd} \title{Parametric Bivariate Extreme Value Distributions} \description{ Density function, distribution function and random generation for nine parametric bivariate extreme value models. } \usage{ dbvevd(x, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1, log = FALSE) pbvevd(q, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1, lower.tail = TRUE) rbvevd(n, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1) } \arguments{ \item{x, q}{A vector of length two or a matrix with two columns, in which case the density/distribution is evaluated across the rows.} \item{n}{Number of observations.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{mar1, mar2}{Vectors of length three containing marginal parameters, or matrices with three columns where each column represents a vector of values to be passed to the corresponding marginal parameter.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), the distribution function is returned; the survivor function is returned otherwise.} } \details{ Define \deqn{y_i = y_i(z_i) = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = yi(zi) = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,2}, where the marginal parameters are given by \eqn{\code{mari} = (a_i,b_i,s_i)}{\code{mari} = (ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. In each of the bivariate distributions functions \eqn{G(z_1,z_2)}{G(z1,z2)} given below, the univariate margins are generalized extreme value, so that \eqn{G(z_i) = \exp(-y_i)}{G(zi) = \exp(-yi)} for \eqn{i = 1,2}. If \eqn{1+s_i(z_i-a_i)/b_i \leq 0}{1+si(zi-ai)/bi <= 0} for some \eqn{i = 1,2}, the value \eqn{z_i}{zi} is either greater than the upper end point (if \eqn{s_i < 0}{si < 0}), or less than the lower end point (if \eqn{s_i > 0}{si > 0}), of the \eqn{i}th univariate marginal distribution. \code{model = "log"} (Gumbel, 1960) The bivariate logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left[-(y_1^{1/r}+y_2^{1/r})^r\right]}{ G(z1,z2) = exp{-[y1^(1/r)+y2^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1}. This is a special case of the bivariate asymmetric logistic model. Complete dependence is obtained in the limit as \eqn{r} approaches zero. Independence is obtained when \eqn{r = 1}. \code{model = "alog"} (Tawn, 1988) The bivariate asymmetric logistic distribution function with parameters \eqn{\code{dep} = r} and \eqn{\code{asy} = (t_1,t_2)}{\code{asy} = (t1,t2)} is \deqn{G(z_1,z_2) = \exp\left\{-(1-t_1)y_1-(1-t_2)y_2- [(t_1y_1)^{1/r}+(t_2y_2)^{1/r}]^r\right\}}{ G(z1,z2) = exp{-(1-t1)y1-(1-t2)y2-[(t1y1)^(1/r)+(t2y2)^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1} and \eqn{0 \leq t_1,t_2 \leq 1}{0 <= t1,t2 <= 1}. When \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} the asymmetric logistic model is equivalent to the logistic model. Independence is obtained when either \eqn{r = 1}, \eqn{t_1 = 0}{t1 = 0} or \eqn{t_2 = 0}{t2 = 0}. Complete dependence is obtained in the limit when \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} and \eqn{r} approaches zero. Different limits occur when \eqn{t_1}{t1} and \eqn{t_2}{t2} are fixed and \eqn{r} approaches zero. \code{model = "hr"} (Husler and Reiss, 1989) The Husler-Reiss distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left(-y_1\Phi\{r^{-1}+{\textstyle\frac{1}{2}} r[\log(y_1/y_2)]\} - y_2\Phi\{r^{-1}+{\textstyle\frac{1}{2}}r [\log(y_2/y_1)]\}\right)}{ G(z1,z2) = exp(-y1 Phi{r^{-1}+r[log(y1/y2)]/2} - y2 Phi{r^{-1}+r[log(y2/y1)]/2}} where \eqn{\Phi(\cdot)}{Phi()} is the standard normal distribution function and \eqn{r > 0}. Independence is obtained in the limit as \eqn{r} approaches zero. Complete dependence is obtained as \eqn{r} tends to infinity. \code{model = "neglog"} (Galambos, 1975) The bivariate negative logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left\{-y_1-y_2+ [y_1^{-r}+y_2^{-r}]^{-1/r}\right\}}{ G(z1,z2) = exp{-y1-y2+[y1^(-r)+y2^(-r)]^(-1/r)}} where \eqn{r > 0}. This is a special case of the bivariate asymmetric negative logistic model. Independence is obtained in the limit as \eqn{r} approaches zero. Complete dependence is obtained as \eqn{r} tends to infinity. The earliest reference to this model appears to be Galambos (1975, Section 4). \code{model = "aneglog"} (Joe, 1990) The bivariate asymmetric negative logistic distribution function with parameters parameters \eqn{\code{dep} = r} and \eqn{\code{asy} = (t_1,t_2)}{\code{asy} = (t1,t2)} is \deqn{G(z_1,z_2) = \exp\left\{-y_1-y_2+ [(t_1y_1)^{-r}+(t_2y_2)^{-r}]^{-1/r}\right\}}{ G(z1,z2) = exp{-y1-y2+[(t1y1)^(-r)+(t2y2)^(-r)]^(-1/r)}} where \eqn{r > 0} and \eqn{0 < t_1,t_2 \leq 1}{0 < t1,t2 <= 1}. When \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} the asymmetric negative logistic model is equivalent to the negative logistic model. Independence is obtained in the limit as either \eqn{r}, \eqn{t_1}{t1} or \eqn{t_2}{t2} approaches zero. Complete dependence is obtained in the limit when \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} and \eqn{r} tends to infinity. Different limits occur when \eqn{t_1}{t1} and \eqn{t_2}{t2} are fixed and \eqn{r} tends to infinity. The earliest reference to this model appears to be Joe (1990), who introduces a multivariate extreme value distribution which reduces to \eqn{G(z_1,z_2)}{G(z1,z2)} in the bivariate case. \code{model = "bilog"} (Smith, 1990) The bilogistic distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} is \deqn{G(z_1,z_2) = \exp\left\{-y_1 q^{1-\alpha} - y_2 (1-q)^{1-\beta}\right\}}{ G(z1,z2) = exp{- y1 q^(1-alpha) - y2 (1-q)^(1-beta)}} where \eqn{q = q(y_1,y_2;\alpha,\beta)}{q = q(y1,y2;alpha,beta)} is the root of the equation \deqn{(1-\alpha) y_1 (1-q)^\beta - (1-\beta) y_2 q^\alpha = 0,}{ (1-alpha) y1 (1-q)^beta - (1-beta) y2 q^alpha = 0,} \eqn{0 < \alpha,\beta < 1}{0 < alpha,beta < 1}. When \eqn{\alpha = \beta}{alpha = beta} the bilogistic model is equivalent to the logistic model with dependence parameter \eqn{\code{dep} = \alpha = \beta}{\code{dep} = alpha = beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} approaches zero. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} approaches one, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches one. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. A bilogistic model is fitted in Smith (1990), where it appears to have been first introduced. \code{model = "negbilog"} (Coles and Tawn, 1994) The negative bilogistic distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} is \deqn{G(z_1,z_2) = \exp\left\{- y_1 - y_2 + y_1 q^{1+\alpha} + y_2 (1-q)^{1+\beta}\right\}}{ G(z1,z2) = exp{- y1 - y2 + y1 q^(1+alpha) + y2 (1-q)^(1+beta)}} where \eqn{q = q(y_1,y_2;\alpha,\beta)}{q = q(y1,y2;alpha,beta)} is the root of the equation \deqn{(1+\alpha) y_1 q^\alpha - (1+\beta) y_2 (1-q)^\beta = 0,}{ (1+alpha) y1 q^alpha - (1+beta) y2 (1-q)^beta = 0,} \eqn{\alpha > 0}{alpha > 0} and \eqn{\beta > 0}{beta > 0}. When \eqn{\alpha = \beta}{alpha = beta} the negative bilogistic model is equivalent to the negative logistic model with dependence parameter \eqn{\code{dep} = 1/\alpha = 1/\beta}{ \code{dep} = 1/alpha = 1/beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} approaches zero. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} tends to infinity, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other tends to infinity. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. \code{model = "ct"} (Coles and Tawn, 1991) The Coles-Tawn distribution function with parameters \eqn{\code{alpha} = \alpha > 0}{\code{alpha} = alpha > 0} and \eqn{\code{beta} = \beta > 0}{\code{beta} = beta > 0} is \deqn{G(z_1,z_2) = \exp\left\{-y_1 [1 - \mbox{Be}(q;\alpha+1,\beta)] - y_2 \mbox{Be}(q;\alpha,\beta+1) \right\}}{ G(z1,z2) = exp{- y1 [1 - Be(q;alpha+1,beta)] - y2 Be(q;alpha,beta+1)}} where \eqn{q = \alpha y_2 / (\alpha y_2 + \beta y_1)}{ q = alpha y2 / (alpha y2 + beta y1)} and \eqn{\mbox{Be}(q;\alpha,\beta)}{Be(q;alpha,beta)} is the beta distribution function evaluated at \eqn{q} with \eqn{\code{shape1} = \alpha}{\code{shape1} = alpha} and \eqn{\code{shape2} = \beta}{\code{shape2} = beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} tends to infinity. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} approaches zero, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other tends to infinity. \code{model = "amix"} (Tawn, 1988) The asymmetric mixed distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} has a dependence function with the following cubic polynomial form. \deqn{A(t) = 1 - (\alpha +\beta)t + \alpha t^2 + \beta t^3}{ A(t) = 1 - (\alpha +\beta)t + \alpha t^2 + \beta t^3} where \eqn{\alpha}{alpha} and \eqn{\alpha + 3\beta}{alpha + 3beta} are non-negative, and where \eqn{\alpha + \beta}{alpha + beta} and \eqn{\alpha + 2\beta}{alpha + 2beta} are less than or equal to one. These constraints imply that beta lies in the interval [-0.5,0.5] and that alpha lies in the interval [0,1.5], though alpha can only be greater than one if beta is negative. The strength of dependence increases for increasing alpha (for fixed beta). Complete dependence cannot be obtained. Independence is obtained when both parameters are zero. For the definition of a dependence function, see \code{\link{abvevd}}. } \value{ \code{dbvevd} gives the density function, \code{pbvevd} gives the distribution function and \code{rbvevd} generates random deviates, for one of nine parametric bivariate extreme value models. } \note{ The logistic and asymmetric logistic models respectively are simulated using bivariate versions of Algorithms 1.1 and 1.2 in Stephenson(2003). All other models are simulated using a root finding algorithm to simulate from the conditional distributions. The simulation of the bilogistic and negative bilogistic models requires a root finding algorithm to evaluate \eqn{q} within the root finding algorithm used to simulate from the conditional distributions. The generation of bilogistic and negative bilogistic random deviates is therefore relatively slow (about 2.8 seconds per 1000 random vectors on a 450MHz PIII, 512Mb RAM). The bilogistic and negative bilogistic models can be represented under a single model, using the integral of the maximum of two beta distributions (Joe, 1997). The Coles-Tawn model is called the Dirichelet model in Coles and Tawn (1991). } \references{ Coles, S. G. and Tawn, J. A. (1991) Modelling extreme multivariate events. \emph{J. Roy. Statist. Soc., B}, \bold{53}, 377--392. Coles, S. G. and Tawn, J. A. (1994) Statistical methods for multivariate extremes: an application to structural design (with discussion). \emph{Appl. Statist.}, \bold{43}, 1--48. Galambos, J. (1975) Order statistics of samples from multivariate distributions. \emph{J. Amer. Statist. Assoc.}, \bold{70}, 674--680. Gumbel, E. J. (1960) Distributions des valeurs extremes en plusieurs dimensions. \emph{Publ. Inst. Statist. Univ. Paris}, \bold{9}, 171--173. Husler, J. and Reiss, R.-D. (1989) Maxima of normal random vectors: between independence and complete dependence. \emph{Statist. Probab. Letters}, \bold{7}, 283--286. Joe, H. (1990) Families of min-stable multivariate exponential and multivariate extreme value distributions. \emph{Statist. Probab. Letters}, \bold{9}, 75--81. Joe, H. (1997) \emph{Multivariate Models and Dependence Concepts}, London: Chapman & Hall. Smith, R. L. (1990) Extreme value theory. In \emph{Handbook of Applicable Mathematics} (ed. W. Ledermann), vol. 7. Chichester: John Wiley, pp. 437--471. Stephenson, A. G. (2003) Simulating multivariate extreme value distributions of logistic type. \emph{Extremes}, \bold{6}(1), 49--60. Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{abvevd}}, \code{\link{rgev}}, \code{\link{rmvevd}}} \examples{ pbvevd(matrix(rep(0:4,2), ncol=2), dep = 0.7, model = "log") pbvevd(c(2,2), dep = 0.7, asy = c(0.6,0.8), model = "alog") pbvevd(c(1,1), dep = 1.7, model = "hr") margins <- cbind(0, 1, seq(-0.5,0.5,0.1)) rbvevd(11, dep = 1.7, model = "hr", mar1 = margins) rbvevd(10, dep = 1.2, model = "neglog", mar1 = c(10, 1, 1)) rbvevd(10, alpha = 0.7, beta = 0.52, model = "bilog") dbvevd(c(0,0), dep = 1.2, asy = c(0.5,0.9), model = "aneglog") dbvevd(c(0,0), alpha = 0.75, beta = 0.5, model = "ct", log = TRUE) dbvevd(c(0,0), alpha = 0.7, beta = 1.52, model = "negbilog") } \keyword{distribution} evd/man/anova.evd.Rd0000744000176200001440000000426512017604710013761 0ustar liggesusers\name{anova.evd} \alias{anova.evd} \title{Compare Nested EVD Objects} \description{ Compute an analysis of deviance table for two or more nested evd objects. } \usage{ \method{anova}{evd}(object, object2, \dots, half = FALSE) } \arguments{ \item{object}{An object of class \code{"evd"}.} \item{object2}{An object of class \code{"evd"} that represents a model nested within \code{object}.} \item{\dots}{Further successively nested objects.} \item{half}{For some non-regular tesing problems the deviance difference is known to be one half of a chi-squared random variable. Set \code{half} to \code{TRUE} in these cases.} } \value{ An object of class \code{c("anova", "data.frame")}, with one row for each model, and the following five columns \item{M.Df}{The number of parameters.} \item{Deviance}{The deviance.} \item{Df}{The number of parameters of the model in the previous row minus the number of parameters.} \item{Chisq}{The deviance minus the deviance of the model in the previous row (or twice this if \code{half} is \code{TRUE}).} \item{Pr(>chisq)}{The p-value calculated by comparing the quantile \code{Chisq} with a chi-squared distribution on \code{Df} degrees of freedom.} } \section{Warning}{ Circumstances may arise such that the asymptotic distribution of the test statistic is not chi-squared. In particular, this occurs when the smaller model is constrained at the edge of the parameter space. It is up to the user recognize this, and to interpret the output correctly. In some cases the asymptotic distribution is known to be one half of a chi-squared; you can set \code{half = TRUE} in these cases. } \seealso{\code{\link{fbvevd}}, \code{\link{fextreme}}, \code{\link{fgev}}, \code{\link{forder}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) trend <- (-49:50)/100 M1 <- fgev(uvdata, nsloc = trend) M2 <- fgev(uvdata) M3 <- fgev(uvdata, shape = 0) anova(M1, M2, M3) bvdata <- rbvevd(100, dep = 0.75, model = "log") M1 <- fbvevd(bvdata, model = "log") M2 <- fbvevd(bvdata, model = "log", dep = 0.75) M3 <- fbvevd(bvdata, model = "log", dep = 1) anova(M1, M2) anova(M1, M3, half = TRUE) } \keyword{models} evd/man/amvnonpar.Rd0000744000176200001440000001265612017604710014104 0ustar liggesusers\name{amvnonpar} \alias{amvnonpar} \title{Non-parametric Estimates for Dependence Functions of the Multivariate Extreme Value Distribution} \description{ Calculate non-parametric estimates for the dependence function \eqn{A} of the multivariate extreme value distribution and plot the estimated function in the trivariate case. } \usage{ amvnonpar(x = rep(1/d,d), data, d = 3, epmar = FALSE, nsloc = NULL, madj = 0, kmar = NULL, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) } \arguments{ \item{x}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the dependence function is evaluated across the rows (ignored if plot is \code{TRUE}). The elements/rows of the vector/matrix should be positive and should sum to one, or else they should have a positive sum, in which case the rows are rescaled and a warning is given. \eqn{A(1/d,\dots,1/d)} is returned by default since it is often a useful summary of dependence.} \item{data}{A matrix or data frame with \code{d} columns, which may contain missing values.} \item{d}{The dimension; an integer greater than or equal to two. The trivariate case \code{d = 3} is the default.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} argument is ignored.} \item{nsloc}{A data frame with the same number of rows as \code{data}, or a list containing \code{d} elements of this type, for linear modelling of the marginal location parameters. In the former case, the argument is applied to all margins. The data frames are treated as covariate matrices, excluding the intercept. Numeric vectors can be given as alternatives to single column data frames. A list can contain \code{NULL} elements for stationary modelling of selected margins.} \item{madj}{Performs marginal adjustments. See \code{\link{abvnonpar}}.} \item{kmar}{In the rare case that the marginal distributions are known, specifies the GEV parameters to be used instead of maximum likelihood estimates.} \item{plot}{Logical; if \code{TRUE}, and the dimension \code{d} is three (the default dimension), the dependence function of a trivariate extreme value distribution is plotted. For plotting in the bivariate case, use \code{\link{abvnonpar}}. If \code{FALSE} (the default), the following arguments are ignored.} \item{col}{A list of colours (see \code{\link{image}}). The first colours in the list represent smaller values, and hence stronger dependence. Each colour represents an equally spaced interval between \code{lower} and one.} \item{blty}{The border line type, for the border that surrounds the triangular image. By default \code{blty} is zero, so no border is plotted. Plotting a border leads to (by default) an increase in \code{grid} (and hence computation time), to ensure that the image fits within it.} \item{grid}{For plotting, the function is evaluated at \code{grid^2} points.} \item{lower}{The minimum value for which colours are plotted. By default \eqn{\code{lower} = 1/3} as this is the theoretical minimum of the dependence function of the trivariate extreme value distribution.} \item{ord}{A vector of length three, which should be a permutation of the set \eqn{\{1,2,3\}}{{1,2,3}}. The points \eqn{(1,0,0)}, \eqn{(0,1,0)} and \eqn{(0,0,1)} (the vertices of the simplex) are depicted clockwise from the top in the order defined by \code{ord}. The argument alters the way in which the function is plotted; it does not change the function definition.} \item{lab}{A character vector of length three, in which case the \code{i}th margin is labelled using the \code{i}th component, or \code{NULL}, in which case no labels are given. By default, \code{lab} is \code{as.character(1:3)}. The actual location of the margins, and hence the labels, is defined by \code{ord}.} \item{lcex}{A numerical value giving the amount by which the labels should be scaled relative to the default. Ignored if \code{lab} is \code{NULL}.} } \note{ The rows of \code{data} that contain missing values are not used in the estimation of the dependence structure, but every non-missing value is used in estimating the margins. The dependence function of the multivariate extreme value distribution is defined in \code{\link{amvevd}}. The function \code{\link{amvevd}} calculates and plots dependence functions of multivariate logistic and multivariate asymmetric logistic models. The estimator plotted or calculated is a multivariate extension of the bivariate Pickands estimator defined in \code{\link{abvnonpar}}. } \value{ A numeric vector of estimates. If plotting, the smallest evaluated estimate is returned invisibly. } \seealso{\code{\link{amvevd}}, \code{\link{abvnonpar}}, \code{\link{fgev}}} \examples{ s5pts <- matrix(rexp(50), nrow = 10, ncol = 5) s5pts <- s5pts/rowSums(s5pts) sdat <- rmvevd(100, dep = 0.6, model = "log", d = 5) amvnonpar(s5pts, sdat, d = 5) \dontrun{amvnonpar(data = sdat, plot = TRUE)} \dontrun{amvnonpar(data = sdat, plot = TRUE, ord = c(2,3,1), lab = LETTERS[1:3])} \dontrun{amvevd(dep = 0.6, model = "log", plot = TRUE)} \dontrun{amvevd(dep = 0.6, model = "log", plot = TRUE, blty = 1)} } \keyword{nonparametric} evd/man/amvevd.Rd0000744000176200001440000001403112017604710013352 0ustar liggesusers\name{amvevd} \alias{amvevd} \title{Parametric Dependence Functions of Multivariate Extreme Value Models} \description{ Calculate the dependence function \eqn{A} for the multivariate logistic and multivariate asymmetric logistic models; plot the estimated function in the trivariate case. } \usage{ amvevd(x = rep(1/d,d), dep, asy, model = c("log", "alog"), d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) } \arguments{ \item{x}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the dependence function is evaluated across the rows (ignored if plot is \code{TRUE}). The elements/rows of the vector/matrix should be positive and should sum to one, or else they should have a positive sum, in which case the rows are rescaled and a warning is given. \eqn{A(1/d,\dots,1/d)} is returned by default since it is often a useful summary of dependence.} \item{dep}{The dependence parameter(s). For the logistic model, should be a single value. For the asymmetric logistic model, should be a vector of length \eqn{2^d-d-1}, or a single value, in which case the value is used for each of the \eqn{2^d-d-1} parameters (see \code{\link{rmvevd}}).} \item{asy}{The asymmetry parameters for the asymmetric logistic model. Should be a list with \eqn{2^d-1} vector elements containing the asymmetry parameters for each separate component (see \code{\link{rmvevd}} and \bold{Examples}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default) or \code{"alog"} (or any unique partial match), for the logistic and asymmetric logistic models respectively. The definition of each model is given in \code{\link{rmvevd}}.} \item{d}{The dimension; an integer greater than or equal to two. The trivariate case \code{d = 3} is the default.} \item{plot}{Logical; if \code{TRUE}, and the dimension \code{d} is three (the default dimension), the dependence function of a trivariate model is plotted. For plotting in the bivariate case, use \code{\link{abvevd}}. If \code{FALSE} (the default), the following arguments are ignored.} \item{col}{A list of colours (see \code{\link{image}}). The first colours in the list represent smaller values, and hence stronger dependence. Each colour represents an equally spaced interval between \code{lower} and one.} \item{blty}{The border line type, for the border that surrounds the triangular image. By default \code{blty} is zero, so no border is plotted. Plotting a border leads to (by default) an increase in \code{grid} (and hence computation time), to ensure that the image fits within it.} \item{grid}{For plotting, the function is evaluated at \code{grid^2} points.} \item{lower}{The minimum value for which colours are plotted. By defualt \eqn{\code{lower} = 1/3} as this is the theoretical minimum of the dependence function of the trivariate extreme value distribution.} \item{ord}{A vector of length three, which should be a permutation of the set \eqn{\{1,2,3\}}{{1,2,3}}. The points \eqn{(1,0,0)}, \eqn{(0,1,0)} and \eqn{(0,0,1)} (the vertices of the simplex) are depicted clockwise from the top in the order defined by \code{ord}.The argument alters the way in which the function is plotted; it does not change the function definition.} \item{lab}{A character vector of length three, in which case the \code{i}th margin is labelled using the \code{i}th component, or \code{NULL}, in which case no labels are given. The actual location of the margins, and hence the labels, is defined by \code{ord}.} \item{lcex}{A numerical value giving the amount by which the labels should be scaled relative to the default. Ignored if \code{lab} is \code{NULL}.} } \details{ Let \eqn{z = (z_1,\dots,z_d)}{z = (z1,\dots,zd)} and \eqn{w = (w_1,\dots,w_d)}{w = (w1,\dots,wd)}. Any multivariate extreme value distribution can be written as \deqn{G(z) = \exp\left\{- \left\{\sum\nolimits_{j=1}^{d} y_j \right\} A\left(\frac{y_1}{\sum\nolimits_{j=1}^{d} y_j}, \dots, \frac{y_d}{\sum\nolimits_{j=1}^{d} y_j}\right)\right\}}{ G(z) = exp{-(y1+\dots+yd) A[y1/(y1+\dots+yd), \dots, yd/(y1+\dots+yd)]}} for some function \eqn{A} defined on the simplex \eqn{S_d = \{w \in R^d_+ : \sum\nolimits_{j=1}^{d} w_j = 1\}}{S_d = {w: w1 + \dots + wd = 1}}, where \deqn{y_i = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,\dots,d}, and where the (generalized extreme value) marginal parameters are given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. \eqn{A} is called (by some authors) the dependence function. It follows that \eqn{A(w) = 1} when \eqn{w} is one of the \eqn{d} vertices of \eqn{S_d}, and that \eqn{A} is a convex function with \eqn{\max(w_1,\dots,w_d) \leq A(w)\leq 1}{ max(w1,\dots,wd) <= A(w) <= 1} for all \eqn{w} in \eqn{S_d}. The lower and upper limits of \eqn{A} are obtained under complete dependence and mutual independence respectively. \eqn{A} does not depend on the marginal parameters. } \value{ A numeric vector of values. If plotting, the smallest evaluated function value is returned invisibly. } \seealso{\code{\link{amvnonpar}}, \code{\link{abvevd}}, \code{\link{rmvevd}}, \code{\link{image}}} \examples{ amvevd(dep = 0.5, model = "log") s3pts <- matrix(rexp(30), nrow = 10, ncol = 3) s3pts <- s3pts/rowSums(s3pts) amvevd(s3pts, dep = 0.5, model = "log") \dontrun{amvevd(dep = 0.05, model = "log", plot = TRUE, blty = 1)} amvevd(dep = 0.95, model = "log", plot = TRUE, lower = 0.94) asy <- list(.4, .1, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.3,.2)) amvevd(s3pts, dep = 0.15, asy = asy, model = "alog") amvevd(dep = 0.15, asy = asy, model = "al", plot = TRUE, lower = 0.7) } \keyword{distribution} evd/man/abvnonpar.Rd0000744000176200001440000001656312017604710014072 0ustar liggesusers\name{abvnonpar} \alias{abvnonpar} \title{Non-parametric Estimates for Dependence Functions of the Bivariate Extreme Value Distribution} \description{ Calculate or plot non-parametric estimates for the dependence function \eqn{A} of the bivariate extreme value distribution. } \usage{ abvnonpar(x = 0.5, data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, method = c("cfg", "pickands", "tdo", "pot"), k = nrow(data)/4, convex = FALSE, rev = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0, 1), ylim = c(0.5, 1), xlab = "t", ylab = "A(t)", \dots) } \arguments{ \item{x}{A vector of values at which the dependence function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{A(1/2)} is returned by default since it is often a useful summary of dependence.} \item{data}{A matrix or data frame with two columns, which may contain missing values.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} arguments are ignored.} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{data}, for linear modelling of the location parameter on the first/second margin. The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{method}{The estimation method (see \bold{Details}). Typically either \code{"cfg"} (the default) or \code{"pickands"}. The method \code{"tdo"} performs poorly and is not recommended. The method \code{"pot"} is for peaks over threshold modelling where only large data values are used for estimation.} \item{k}{An integer parameter for the \code{"pot"} method. Only the largest \code{k} values are used, as described in \code{\link{bvtcplot}}.} \item{convex}{Logical; take the convex minorant?} \item{rev}{Logical; reverse the dependence function? This is equivalent to evaluating the function at \code{1-x}.} \item{madj}{Performs marginal adjustments for the \code{"pickands"} method (see \bold{Details}).} \item{kmar}{In the rare case that the marginal distributions are known, specifies the GEV parameters to be used instead of maximum likelihood estimates.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add to an existing plot? The existing plot should have been created using either \code{abvnonpar} or \code{\link{abvevd}}, the latter of which plots (or calculates) the dependence function for a number of parametric models.} \item{lty, blty}{Function and border line types. Set \code{blty} to zero to omit the border.} \item{lwd, blwd}{Function and border line widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ The dependence function \eqn{A(\cdot)}{A()} of the bivariate extreme value distribution is defined in \code{\link{abvevd}}. Non-parametric estimates are constructed as follows. Suppose \eqn{(z_{i1},z_{i2})} for \eqn{i=1,\ldots,n} are \eqn{n} bivariate observations that are passed using the \code{data} argument. If \code{epmar} is \code{FALSE} (the default), then the marginal parameters of the GEV margins are estimated (under the assumption of independence) and the data is transformed using \deqn{y_{i1} = \{1+\hat{s}_1(z_{i1}-\hat{a}_1)/ \hat{b}_1\}_{+}^{-1/\hat{s}_1}}{ y_{i1} = {1 + s'_1(z_{i1}-a'_1)/b'_1}^(-1/s'_1)} and \deqn{y_{i2} = \{1+\hat{s}_2(z_{i2}-\hat{a}_2)/ \hat{b}_2\}_{+}^{-1/\hat{s}_2}}{ y_{i2} = {1 + s'_2(z_{i2}-a'_2)/b'_2}^(-1/s'_2)} for \eqn{i = 1,\ldots,n}, where \eqn{(\hat{a}_1,\hat{b}_1,\hat{s}_1)}{(a'_1,b'_1,s'_1)} and \eqn{(\hat{a}_2,\hat{b}_2,\hat{s}_2)}{(a'_2,b'_2,s'_2)} are the maximum likelihood estimates for the location, scale and shape parameters on the first and second margins. If \code{nsloc1} or \code{nsloc2} are given, the location parameters may depend on \eqn{i} (see \code{\link{fgev}}). Two different estimators of the dependence function can be implemented. They are defined (on \eqn{0 \leq w \leq 1}{0 <= w <= 1}) as follows. \code{method = "cfg"} (Caperaa, Fougeres and Genest, 1997) \deqn{\log(A_c(w)) = \frac{1}{n} \left\{ \sum_{i=1}^n \log(\max[(1-w)y_{i1}, wy_{i1}]) - (1-w)\sum_{i=1}^n y_{i1} - w \sum_{i=1}^n y_{i2} \right\}}{log(A_c(w)) = 1/n { sum_{i=1}^n log (max[(1-w)y_{i1}, wy_{i1}]) - (1-w)sum_{i=1}^n y_{i1} - w sum_{i=1}^n y_{i2} }} \code{method = "pickands"} (Pickands, 1981) \deqn{A_p(w) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{w}, \frac{y_{i2}}{1-w}\right)\right\}^{-1}}{ A_p(w) = n / {sum_{i=1}^n min[y_{i1}/w, y_{i2}/(1-w)]}} Two variations on the estimator \eqn{A_p(\cdot)}{A_p()} are also implemented. If the argument \code{madj = 1}, an adjustment given in Deheuvels (1991) is applied. If the argument \code{madj = 2}, an adjustment given in Hall and Tajvidi (2000) is applied. These are marginal adjustments; they are only useful when empirical marginal estimation is used. Let \eqn{A_n(\cdot)}{A_n()} be any estimator of \eqn{A(\cdot)}{A()}. None of the estimators satisfy \eqn{\max(w,1-w) \leq A_n(w) \leq 1}{max(w,1-w) <= A_n(w) <= 1} for all \eqn{0\leq w \leq1}{0 <= w <= 1}. An obvious modification is \deqn{A_n^{'}(w) = \min(1, \max\{A_n(w), w, 1-w\}).}{ A'_n(w) = min(1, max{A_n(w), w, 1-w}).} This modification is always implemented. Convex estimators can be derived by taking the convex minorant, which can be achieved by setting \code{convex} to \code{TRUE}. } \note{ I have been asked to point out that Hall and Tajvidi (2000) suggest putting a constrained smoothing spline on their modified Pickands estimator, but this is not done here. } \value{ \code{abvnonpar} calculates or plots a non-parametric estimate of the dependence function of the bivariate extreme value distribution. } \references{ Caperaa, P. Fougeres, A.-L. and Genest, C. (1997) A non-parametric estimation procedure for bivariate extreme value copulas. \emph{Biometrika}, \bold{84}, 567--577. Pickands, J. (1981) Multivariate extreme value distributions. \emph{Proc. 43rd Sess. Int. Statist. Inst.}, \bold{49}, 859--878. Deheuvels, P. (1991) On the limiting behaviour of the Pickands estimator for bivariate extreme-value distributions. \emph{Statist. Probab. Letters}, \bold{12}, 429--439. Hall, P. and Tajvidi, N. (2000) Distribution and dependence-function estimation for bivariate extreme-value distributions. \emph{Bernoulli}, \bold{6}, 835--844. } \seealso{\code{\link{abvevd}}, \code{\link{amvnonpar}}, \code{\link{bvtcplot}}, \code{\link{fgev}}} \examples{ bvdata <- rbvevd(100, dep = 0.7, model = "log") abvnonpar(seq(0, 1, length = 10), data = bvdata, convex = TRUE) abvnonpar(data = bvdata, method = "pick", plot = TRUE) M1 <- fitted(fbvevd(bvdata, model = "log")) abvevd(dep = M1["dep"], model = "log", plot = TRUE) abvnonpar(data = bvdata, add = TRUE, lty = 2) } \keyword{nonparametric} evd/man/abvevd.Rd0000744000176200001440000001122512017604710013341 0ustar liggesusers\name{abvevd} \alias{abvevd} \title{Parametric Dependence Functions of Bivariate Extreme Value Models} \description{ Calculate or plot the dependence function \eqn{A} for nine parametric bivariate extreme value models. } \usage{ abvevd(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), rev = FALSE, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", \dots) } \arguments{ \item{x}{A vector of values at which the dependence function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{A(1/2)} is returned by default since it is often a useful summary of dependence.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{rev}{Logical; reverse the dependence function? This is equivalent to evaluating the function at \code{1-x}.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add to an existing plot? The existing plot should have been created using either \code{abvevd} or \code{\link{abvnonpar}}, the latter of which plots (or calculates) a non-parametric estimate of the dependence function.} \item{lty, blty}{Function and border line types. Set \code{blty} to zero to omit the border.} \item{lwd, blwd}{Function an border line widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Any bivariate extreme value distribution can be written as \deqn{G(z_1,z_2) = \exp\left[-(y_1+y_2)A\left( \frac{y_1}{y_1+y_2}\right)\right]}{ G(z1,z2) = exp{-(y1+y2)A[y1/(y1+y2)]}} for some function \eqn{A(\cdot)}{A()} defined on \eqn{[0,1]}, where \deqn{y_i = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,2}, with the (generalized extreme value) marginal parameters given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. \eqn{A(\cdot)}{A()} is called (by some authors) the dependence function. It follows that \eqn{A(0)=A(1)=1}, and that \eqn{A(\cdot)}{A()} is a convex function with \eqn{\max(x,1-x) \leq A(x)\leq 1}{max(x,1-x) <= A(x) <= 1} for all \eqn{0\leq x\leq1}{0 <= x <= 1}. The lower and upper limits of \eqn{A} are obtained under complete dependence and independence respectively. \eqn{A(\cdot)}{A()} does not depend on the marginal parameters. Some authors take B(x) = A(1-x) as the dependence function. If the argument \code{rev = TRUE}, then B(x) is plotted/evaluated. } \value{ \code{abvevd} calculates or plots the dependence function for one of nine parametric bivariate extreme value models, at specified parameter values. } \seealso{\code{\link{abvnonpar}}, \code{\link{fbvevd}}, \code{\link{rbvevd}}, \code{\link{amvevd}}} \examples{ abvevd(dep = 2.7, model = "hr") abvevd(seq(0,1,0.25), dep = 0.3, asy = c(.7,.9), model = "alog") abvevd(alpha = 0.3, beta = 1.2, model = "negbi", plot = TRUE) bvdata <- rbvevd(100, dep = 0.7, model = "log") M1 <- fitted(fbvevd(bvdata, model = "log")) abvevd(dep = M1["dep"], model = "log", plot = TRUE) abvnonpar(data = bvdata, add = TRUE, lty = 2) } \keyword{distribution} evd/inst/0000755000176200001440000000000012017604710012003 5ustar liggesusersevd/inst/README0000744000176200001440000000265512017604710012674 0ustar liggesusersThe evd package extends simulation, distribution, quantile and density functions to parametric extreme value distributions, and provides fitting functions which calculate maximum likelihood estimates for univariate and bivariate maxima models, and for univariate and bivariate threshold models. The file CHANGES documents changes from previous versions. The users guide (in pdf) is in the `doc' directory. A vignette on multivariate extremes is also included. A reference manual containing the help files can be downloaded from CRAN. The package contains the following (user-level) functions. All comments, criticisms and queries are gratefully received. Univariate Distributions: [rpqd]gev [rpqd]gumbel [rpqd]rweibull [rpqd]nweibull [rpqd]frechet [rpqd]gpd [rpqd]extreme [rpd]order Bivariate/Multivariate EVDs: [rpda]bvevd [rpda]mvevd Non-parametric Estimation: abvnonpar amvnonpar qcbvnonpar Stochastic Processes: evmc marma mar mma clusters exi Fitting Models: fbvevd fgev fpot fbvpot forder fextreme Pre-model Diagnostics: mrlplot tcplot chiplot bvtcplot evind.test Model Diagnostics: plot.uvevd plot.bvevd anova.evd Profile Likelihoods: profile.evd plot.profile.evd profile2d.evd plot.profile2d.evd The following datasets are also included: failure fox lisbon ocmulgee oldage oxford lossalae portpirie sask sealevel uccle venice sealevel2 venice2 evd/inst/doc/0000755000176200001440000000000012017604730012552 5ustar liggesusersevd/inst/doc/Multivariate_Extremes.Rnw0000744000176200001440000004611512017604730017574 0ustar liggesusers\documentclass[11pt,a4paper]{article} \usepackage{amsmath,amssymb} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} %\VignetteIndexEntry{Statistics Of Extremes: Chapter 9} \begin{document} \title{Statistics of Multivariate Extremes} \author{Alec Stephenson} \maketitle \begin{center} \LARGE \textbf{Summary} \\ \end{center} \normalsize \vspace{0.5cm} This vignette uses the \textbf{evd} package to reproduce the figures, tables and analysis in Chapter 9 of Beirlant et al.\ (2001). The chapter was written by Segers and Vandewalle (2004). The code reproduces almost all figures, but for space reasons only some are shown. Deviations from the book are given as footnotes. Differences will inevitably exist due to numerical optimization and random number generation. \normalsize \section{Introduction} \label{Intro} The methods used here are illustrated using the \texttt{lossalae} dataset, which contains observations on $1500$ liability claims. The indemnity payment (loss) and the allocated loss adjustment expense (ALAE) is recorded in USD for each claim. The ALAE is the additional expenses associated with the settlement of the claim (e.g.\ claims investigation expenses and legal fees). The dataset also has an attribute called \texttt{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. We first scale the data so that one unit corresponds to $100\,000$ USD. Putting the data on a sensible scale assists with the numerical optimization involved in maximum likelihood estimation\footnote{The book reports an unsatisfactory fit of the GEV model to the margins. It therefore uses only empirical marginal distributions. This was perhaps due to not scaling the data. In this document we use either fully nonparametric or fully parametric methods.}. The code below plots the raw data using the log scale for both axes (see Figure \ref{rawdata}), and plots the data transformed to uniform $(0,1)$ margins using an empirical transform. <>= options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) @ <<>>= ula <- apply(loss, 2, rank)/(nn + 1) plot(ula) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Scatterplot of ALAE verses Loss: original data (log-scale).} \label{rawdata} \end{figure} \section{Parametric Models} Any bivariate extreme value distribution function can be represented in the form \begin{equation*} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation*} where \begin{equation*} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation*} for $\sigma_j > 0$ and $j=1,2$, and where \begin{equation*} A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}, \label{dep} \end{equation*} defined on $0\leq\omega\leq1$ is called the dependence function\footnote{The book uses the definition $B(\omega) = A(1-\omega)$.}. The marginal distributions are generalized extreme value (GEV), given by $G_j(z_j) = \exp(-y_j)$. It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. The dependence function represents only the dependence structure of the distribution, and hence only the dependence parameters of parametric models need to be specified in order to produce dependence function plots. The code below plots dependence functions for four different parametric models. The first of these is given in Figure \ref{asylogdfn}. <>= abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) @ <<>>= abvevd(dep = -1/(-2), model = "neglog", plot = TRUE) abvevd(dep = -1/(-1), model = "neglog", add = TRUE, lty = 2) abvevd(dep = -1/(-0.5), model = "neglog", add = TRUE, lty = 3) @ <<>>= abvevd(alpha = 1, beta = -0.2, model = "amix", plot = TRUE) abvevd(alpha = 0.6, beta = 0.1, model = "amix", add = TRUE, lty = 2) abvevd(alpha = 0.2, beta = 0.2, model = "amix", add = TRUE, lty = 3) @ <<>>= abvevd(dep = 1/1.25, model = "hr", plot = TRUE) abvevd(dep = 1/0.83, model = "hr", add = TRUE, lty = 2) abvevd(dep = 1/0.5, model = "hr", add = TRUE, lty = 3) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Dependence functions: asymmetric logistic model.} \label{asylogdfn} \end{figure} \section{Componentwise Maxima} For demonstration purposes we use the data introduced in Section \ref{Intro} to create a dataset of componentwise block maxima by randomly taking $k=50$ groups of size $m=30$, producing $k$ componentwise maxima taken over $m$ observations\footnote{The data may be completely different to the book due to random selection.}. Bivariate extreme value distributions are typically used to model data of this type. The code below creates the componentwise maxima data \texttt{cml} and produces two data plots, the first showing the original data and the componentwise maxima, and the second showing the componentwise maxima data transformed to standard exponential margins. <<>>= set.seed(131); cml <- loss[sample(nn),] xx <- rep(1:50, each = 30); lts <- c(1e-04, 100) cml <- cbind(tapply(cml[,1], xx, max), tapply(cml[,2], xx, max)) colnames(cml) <- colnames(loss) plot(loss, log = "xy", xlim = lts, ylim = lts, col = "grey") points(cml) ecml <- -log(apply(cml,2,rank)/51) plot(ecml) @ The following code estimates and plots the dependence function $A(\cdot)$ from the componentwise maxima data. The first code chunk uses various nonparametric estimates of the dependence function, and also uses empirical (i.e.\ nonparametric) estimation of the margins, as specified by \texttt{epmar = TRUE}. The four different estimates are shown in Figure \ref{nonpardfn}. The second code chunk uses maximum likelihood estimation for parametric models. The call to \texttt{fbvevd} fits the model, and the call to \texttt{plot} plots the parametric dependence function estimates. The argument specification \texttt{asy1 = 1} in the first call to \texttt{fbvevd} constrains the model fit so that the first asymmetry parameter of the model is fixed at the value one. <>= pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) @ <<>>= m1 <- fbvevd(cml, asy1 = 1, model = "alog") m2 <- fbvevd(cml, model = "log") m3 <- fbvevd(cml, model = "bilog") plot(m1, which = 4, nplty = 3) plot(m2, which = 4, nplty = 3, lty = 2, add = TRUE) plot(m3, which = 4, nplty = 3, lty = 4, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Nonparametric dependence function estimates by Pickands (dotted line), Deheuvels (dashed line), Hall-Tajvidi (dot-dashed line) and Cap\'{e}r\`{a}a-Foug\`{e}res-Genest (solid line) based on componentwise block maxima data and using empirical marginal estimation.} \label{nonpardfn} \end{figure} The objects produced by \texttt{fbvevd} contain information about the parametric fit of the bivariate extreme value distribution. For example, \texttt{m2} contains information on the fit of a (symmetric) logistic extreme value distribution, which has a single dependence parameter and three parameters on each of the GEV margins. Using \texttt{plot(m2)} produces several diagnostic plots, including quantile curves and spectral densities. Using \texttt{deviance(m2)} produces the deviance, which is equal to twice the negative log-likelihood. The following shows the parameter estimates and their standard errors, and gives an analysis of deviance table for testing \texttt{m2} verses \texttt{m3}, which is possible since the models are nested, with \texttt{m3} having one additional dependence parameter. The call to \texttt{exind.test} produces a score test for independence, following Tawn (1988). Omitting the \texttt{method} argument gives a likelihood ratio test, also from Tawn (1988), which is typically more accurate. <<>>= round(rbind(fitted(m2), std.errors(m2)), 3) anova(m3, m2) evind.test(cml, method = "score") @ The code below uses the function \texttt{qcbvnonpar} to plot quantile curves using nonparametric dependence function estimates. Quantile curves are defined as \begin{equation*} Q(F, p) = \{(z_1,z_2): F(z_1,z_2) = p\}, \end{equation*} where $F$ is a distribution function and $p$ is a probability. We use the default nonparametric estimation method and we again use empirical estimation of the margins\footnote{Using parametric marginal estimates tends to produce more sensible quantile curve plots, but we follow the book here. Unlike the book, the quantile curves in Figure \ref{nonparqc} are not step functions because the empirical marginal transforms include interpolation.}, as specified by \texttt{epmar = TRUE}. For parametric dependence models similar plots can be produced using e.g.\ \texttt{plot(m2, which = 5)}. Note that because we plot curves corresponding to the distribution of the original dataset rather than the componentwise maxima, we pass the argument \texttt{mint = 30}. <>= lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Estimated quantile curves $Q(\hat{F},p)$ for $p=0.98,0.99,0.995$ based on the componentwise block maxima data shown as black circles, using the Cap\'{e}r\`{a}a-Foug\`{e}res-Genest nonparametric estimate of the dependence function and using empirical marginal estimation.} \label{nonparqc} \end{figure} \section{Excesses Over A Threshold} We now consider all the $1500$ observations on liability claims. We assume that the data are distributed according to the distribution function $F$, and we are interested in $F(z)$ where $z=(z_1,z_2)$ is in some sense large. The methods we use assume that $F$ is in the domain of attraction of some bivariate extreme value distribution $G$, and we focus on large data points to estimate features of $G$, and hence of $F(z)$ for large $z$. Typically we focus on points $z$ that lie above a certain threshold. The functions \texttt{tcplot} and \texttt{mrlplot} can be used for producing plots on each margin to help determine thresholds $u_1$ and $u_2$ for methods that focus primarily on points $z$ such that $z_1 > u_1$ and $z_2 > u_2$. Alternatively, the function \texttt{bvtcplot} can be used to help determine a single threshold $u^{*}$ for methods that focus on points $z$ such that $r(z) > u^{*}$, where $r(z) = x_1(z_1) + x_2(z_2)$, and $x_j(z_j) = -1/\log \hat{F}_j(z_j)$ for $j=1,2$ where $F_j$ is estimated empirically. Following Segers and Vandewalle (2004), a sensible choice for threshold $u^{*}$ might be found from Figure \ref{bvtc} by taking the $k$th largest $r(z)$, where $k$ is the largest value for which the y-axis is close to two. Figure \ref{bvtc} is plotted below using \texttt{bvtcplot}. The value of $k$ is returned invisibly. Setting \texttt{spectral = TRUE} uses the $k$th largest points to plot a nonparametric estimate of $H([0,\omega])$ where $H$ is the spectral measure of $G$. <>= k0 <- bvtcplot(loss)$k0 bvtcplot(loss, spectral = TRUE) @ <>= k0 <- bvtcplot(loss)$k0 @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{A plot of $(k/n)r_{(n-k)}$ as a function of $k$, where $r_{(1)} \leq \dots \leq r_{(n)}$ are the ordered values of $r$. The y-axis provides an estimate of $H([0,1]) = 2$ for the spectral measure $H$ of $G$.} \label{bvtc} \end{figure} The parametric approach to the problem can employ models similar to those used for bivariate extreme value distributions. We first consider the margins separately by fitting a univariate generalized Pareto distribution to the excesses over the threshold $u_j$ on each margin $j=1,2$. We choose the thresholds so that the number of exceedances is roughly\footnote{The value is chosen so that the thresholds match exactly with those used in the book.} half of the value \texttt{k0}. <<>>= thresh <- apply(loss, 2, sort, decreasing = TRUE)[(k0+5)/2,] mar1 <- fitted(fpot(loss[,1], thresh[1])) mar2 <- fitted(fpot(loss[,2], thresh[2])) rbind(mar1,mar2) @ Parametric threshold models can be fitted using the function \texttt{fbvpot}, with the parametric model specified using the \texttt{model} argument. The default approach uses censored likelihood methodology, where a bivariate extreme value dependence structure is fitted to the data censored at the marginal thresholds $u_1$ and $u_2$. Alternatively, a Poisson process model can be employed using the \texttt{likelihood} argument. \textbf{SENTENCE}. Some examples of parametric fits are given below. Diagnostic plots for the fitted models can be produced using e.g.\ \texttt{plot(m2)}. <<>>= m1 <- fbvpot(loss, thresh, model = "alog", asy1 = 1) m2 <- fbvpot(loss, thresh, model = "bilog") m3 <- fbvpot(loss, thresh, model = "bilog", likelihood = "poisson") round(rbind(fitted(m2), std.errors(m2)), 3) @ The following code plots parametric and nonparametric estimates for the bivariate extreme value dependence structure fitted to the upper tail of $F$. The parametric estimates use the previously fitted models. The nonparametric estimate can be plotted using the \texttt{"pot"} method and takes the value \texttt{k0} to specify the threshold. <<>>= abvnonpar(data = loss, method = "pot", k = k0, epmar = TRUE, plot = TRUE, lty = 3) plot(m1, which = 2, add = TRUE) plot(m2, which = 2, add = TRUE, lty = 4) plot(m3, which = 2, add = TRUE, lty = 2) @ Figure \ref{qcthresh} uses our fitted asymmetric logistic model \texttt{m1} to plot quantile curves at probabilities $p=0.98,0.99,0.995$. The thresholds used for the censored likelihood model fit are also added to the plot. <>= lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Quantile curves for probabilities $p=0.98,0.99,0.995$ for an asymmetric logistic model fit using censored likelihood estimation, with censoring at marginal thresholds given by the vertical and horizontal lines.} \label{qcthresh} \end{figure} Models based on bivariate extreme value distributions assume that the margins are either asymptotically dependent or are perfectly independent. They cannot account for situations where the dependence between the margins vanishes at increasingly extreme levels. The remainder of this section illustrates the estimation of dependence measures that can identify such cases. We consider three quantities as defined in Coles \textit{et al.} (1999). The coefficient of extremal dependence $\chi \in [0,1]$ is the tendency for one variable to be large given that the other is large. When $\chi = 0$ the variables are asymptotically independent, and when $\chi > 0$ they are asymptotically independent. The second measure $\bar{\chi}$ identifies the strength of dependence for asymptotically independent variables. When $\bar{\chi} = 1$ the variables are asymptotically dependent, and when $-1 \leq \bar{\chi} < 1$ they are asymptotically independent. The third measure is the coefficient of tail dependence $\eta$, which satisfies $\bar{\chi} = 2\eta - 1$. The following code produces Figure \ref{chiplot} which shows estimates of the functions $\chi(u)$ and $\bar{\chi}(u)$, as defined in Coles \textit{et al.} (1999), for $0 < u < 1$. The functions are defined so that $\chi = \lim_{u \rightarrow 1}\chi(u)$ and $\bar{\chi} = \lim_{u \rightarrow 1}\bar{\chi}(u)$. In this case $\chi(u) > 0 $ for all $u$ but there is little evidence that $\bar{\chi}$ is close to one, so it is difficult to specify the form of dependence on the basis of this plot. <>= old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{The dependence measures $\chi(u)$ and $\bar{\chi}(u)$. Estimates (solid line), 95\% pointwise confidence intervals (dot-dashed lines). The dashed lines represent the theoretical limits of the functions and the exact independence case at zero.} \label{chiplot} \end{figure} We now consider the coefficient of tail dependence $\eta$. We can estimate $\eta$ using univariate theory because of its relationship with $T = \min\{x_1(z_1),x_2(z_2)\}$. If we fit a generalized Pareto distribution to the data points in $T$ that exceed a large fixed threshold, then the estimated shape parameter of the fitted distribution provides an estimate of $\eta$. The call to \texttt{tcplot} plots estimates of $\eta$ at different thresholds in order to assist with threshold choice. The plot seems roughly linear after $u=0.8$, so we take the 80th percentile of $T$ as our threshold. Finally, we use \texttt{anova} to perform a likelihood ratio test for asymptotic dependence, with the null hypothesis $\eta = 1$ versus the alternative $\eta < 1$. <>= fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) @ <<>>= thresh <- quantile(fla, probs = 0.8) m1 <- fpot(fla, thresh = thresh) cat("Tail Dependence:", fitted(m1)["shape"], "\n") @ <<>>= m2 <- fpot(fla, thresh = thresh, shape = 1) anova(m1, m2, half = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Maximum likelihood estimates (solid line) and 95\% pointwise confidence intervals (dot-dashed lines) for $\eta$ at different threshold probabilities.} \label{etaplot} \end{figure} \textbf{POISSON LIKELIHOOD CODE AND SENTENCE TODO} \section*{Bibliography} Beirlant, J., Goegebeur, Y., Segers, J and Teugels, J. (2004) \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Coles, S., Heffernan, J. and Tawn, J. (1999) Dependence measures for extreme value analysis. \textit{Extremes}, \textbf{2}, 339--365. Segers, J. and Vandewalle, B. (2004). Statistics of Multivariate Extremes. In Beirlant et al. (eds.), \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Tawn, J. (1988). Bivariate extreme value theory: Models and estimation. \textit{Biometrika}, \textbf{75}, 397--415. \end{document} evd/inst/doc/Multivariate_Extremes.pdf0000744000176200001440000123640612017604710017602 0ustar liggesusers%PDF-1.5 % 4 0 obj << /Length 2411 /Filter /FlateDecode >> stream xڝYKﯘiXG`8UR$r98>̒\F$b~ Tʁ$@u|{CeSg֔Er&+MԦȜs:%0v|OM:@yw[.Flv3|L3=|i__ybL֖a{Ӗՙ+kWXbY'Zڤg8IUҙE7(>;͸P:CDzLUV#-K5u!9QxaS&&ڼ5ȳ4MJEVGbځAYUIWbKSO=oVWfemwq-\S)Z[-l~ZUmzh_q\@F T@{ ؠHOh׆}Dw ٤U=P2Pv%?/s656hYcӷH+jt橞&AhA2ynhі챞T3g&UO<nc^ &a͍SS/4(/FlUzq""{|:5I#gE@ݎ`;XNm҇س*`&gC0p.ܧɽP6=0ލbdx"@/]C=X4aϝcHdMx'7efhىgid =%@f%[͎R^p..fݙtzVn+ ݸL p FGs~#~ 詁9 f( Y(3V\[Vf4_2ӊO+^n`N51,jKDL$ D0ڛ$DB&7˜އ:ª"]F(~\OLA:e9l_T^#q6mв:ʧR1 `kY+@(J!c|}-} }DϾw]؊Q2ٝeYJѪY)zVGYQ V4<jB<(&.<o& tc|j7Ď+[ȏԟ4枒N:v"e+{_8z=MeU@~'9x j4UtQCJFt ᇨ&6SהY F wO܏ i͗,6\i]5W#aX|=o'3"i/7Zv"れ&ι(ʬ)/`cvPj*eQYa/r;-'=QЯ}\C :L w xͯI1R>AI$ta'^9('zލ$ GuZn^IOZ2=҉٫Ɋ?#|wMSSLN@ qr V~5㺅S{S;(BIpU ĕV.':V^墹Y2(჎拹^>#  \az~tee⥠ 9-kyyAyʠNrU__aB*#C},18p{Kz7st_1<"y'ofKu4}AS(>^56x) ]ݿ3O #6d1ɠt.xmmRB>h0 Z'MVUfH& c57F eg;EV S0B?bo5] =y}f gDtHBg%nFkaUӃr{E^q(~IFu\x:_1A*i( ƈZ4P1r%K'*T\"Ar˽uQ'^~G~ Skvv<إj)>0HP6]/HD+/Z~/eȣwV?$Oj̏ޣş(-5 um >Mk|7_ܲ_"˱l\f*: GC endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 595.276 841.89] /Parent 16 0 R >> endobj 2 0 obj << /Font << /F62 5 0 R /F20 6 0 R /F69 7 0 R /F15 8 0 R /F76 9 0 R /F86 10 0 R /F21 11 0 R /F43 12 0 R /F89 13 0 R /F22 14 0 R /F50 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 19 0 obj << /Length 2163 /Filter /FlateDecode >> stream xn7_y[Y 4)@}iȲԒ\Iѯ {PZ,'OTB8L4L(Qg19bDz/-<~!oWg?viq6/ϞDu~Y eR!0+կn IדFkU K>ow-.[<IO&"Q#f7~Gĺ^cc9! ߸xA\3ܹA԰!M~? Li+ƪ%``V$6$uD!v ?F2fp3+sr9r-p?_N?oc&ӈ7r$H?%y"m(v` t|/K(1@\R_  /6?N~a ZȜGrzGfuOW ĦݰN5" pmo%KeX ,e0)dgg5hacN,D$dq)[ƒSCUEJUTi LoJS6Tq&}1ߗ ]'fx1kc4TrljbY#˓*G#1Cs|+QNQiOyi?=Hz0tNBS}:(f_^]Ф69b4x8>]Ǽ(ڄ o^4&HUW\{o\hl01.5ز7/PeH]S.I*uюj2D8=b~e]M 2Foۦ+am gCA #Y`lf}> j1]w-u=.2B}` u:*2x+iXz]ϻË\ݻtK%]<+]e +x!;/@.,bt^5XnǯlE_`ttj=f!eWKm@eza~M֧{4w*~xz?1{p.ZŸ$jZ+V2\moqurw{14JT}9 'CJ)ԝ`AYhCn/b0!l;ba]1ݗ $C:1Je%H=r ZlF oW8~`"Uۃ|Ͼ˃uCQ025DeH ^1E˻T'vj*b6ER Ѡ3qج0M[ ݵGќ^`ROoX Q:(!{Ȼs ǃjp^ac1N" `.kXn'Vލ&N(4]Qal57uKz DPIOID@]kjqm(GA7TDr?$33(eM{[IjN.}% D(t-\ݴC9 Ԗ)sE+l*_pJ~p0%Z}5NVCocw4 vLi9kGrypZMtn> endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-003.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 27 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 28 0 R/F2 29 0 R>> /ExtGState << >>/ColorSpace << /sRGB 30 0 R >>>> /Length 8739 /Filter /FlateDecode >> stream xŝɮ-Iu@+Ж!d[BUGn%l jw.󀠌W yPܷ*3No~U_k}#Z_?~7__ϯ_w_I_?wwsG1^J_n}ݷ={Mww:]]+n6~[#zJ{fxQ_9"/j4;WF>wG2}!=鎏^c/?}e/2q/v\8އ9';5<dՃ#G8ǻ&r[p|O'8[O9ޏZN7ub9Xu+3~0'^F~2-2$+Xx-cx Gԃ\|*V" [eh-цͥ[{ HڸnXhh1M4qC:[ h UƄwԗ4|MzM Og‰ nX{W8_*lDs|$T}Տ'K}9[q6yn哸Ѽ9Om]NFݰ/f`pt;>+I9/ua'4 nO;`x.&ޘtxgZWj|D GE]9x?ӓV|+se:^L$.x:&fBNIDHy׽Zf ּ2B/ita>/tMt呵p,A?}5;pӢ3|SD@O.) N}jYiT #q2t["K5/CV$RB9*D8AVp=qd>.P[P Ƙ9uQtޘD8 d|LEnGt{ٜU7Gζ^Y,q |+?=qbŃד{pI yE+>)zUB=.-nnn\{N9x&+ w 㕐Tdx<'6 nlP&U[⸚}~7Ξ>YӃ3qL q`|0= 1SV$l%;8YÃ#_d.n9/ %u%8 6\ numX%b f{b:ӠɊSIXagsNKř62{5},JHPs\Ҩ>`3@ G#q+`RN_hXJZăJ'n`͋:F's`:gX"&U!+t:ޠyrXe)v86$hDE՚Nl{y$Zd\$c4tYfLtl$OpqaKx%,1JH̉XӖi3sej:鄆NxPhE.{F؍/~h.ps<y91GR]nI~%^~y?نZTP4U.zy煼7^S)p588z|T&I<j{o'5-sOX83SB.oPqYL,g}Z̥8aϨ\ƍWx\8QD"{z2ę{g=Jp˓Fx8tǩ8)Rbv א'F%&gy7^~2k]bl "1SfkU?1 $\GeJ$K9/U8 t\R"&ZQȊҩ&L$"^x=YwBāoExFt ra8Yj:`*{U۸qh | ϣ5?XLR`'G;t講,0 \::vI:}##s f5/:,RF>pa=](Y9^Od:iLypRGXଓ׍/pxb=V>X,'ȕ'=Q5/#WfhوH9N_ZGĐXO`ghg%?s>ϣo/?8|{yw5Qbyaa4ZS|0NUB&|x*TDjhꂬy4qo~lB[ ep{T0S\H%ъ EU|1I'*@n%^Ĥ1qkw\U(Y&nf%6ں:n8P'SVq<(Ya9+< |Ksვ5J _~-=IֆJ*>4]m T'\6C̄J:F98U t9*Gqj|0\2K@vM Y/)>̹Nid#2TTgu.(.<)wQвYڊ:.9 _,?xyMXO:qAT(5z*xl;2w ga,@.ɂ<1.p8"f}p9P|ଟg}Bok^ݸ'#?#'hdFlO'8  %^  u|H| Z $Q~$](~V`Ko:^9X5+-r" .ZW-JyKq6TQG]4+Ƿ[.pGJEBZ2OhJZr%F -xf^tژ2o*y̋NAׂbCv~9. -sQGl:> V#թ>"մW+E}m A9ݴ]D>h't9.;Ggq]nb;$&̍ G^BcSKU&: k|/;Z6x!Wk*IJA]g/?2<.c0/WtT:soGNbIn^e>:g ^ok~t\le9ϴgPǩ²Jq(g^GeaAk3+۷N}d~pTi?qx9&ns2﬈6۷\qsg~ |  9^48^^~'M層jwRv)IgkF4"pbPL5|r֎/VY)^YAgM~x0dp×׀ =׷)*'^^ uŮ?5<Yp495xOKe^=MrMy7|(33" zBj`*Ӣo2c@҅ w?; v|&]8N۔T~iOH0 |X.p1 K:.׋eU:`,jtfDR]sʐZO&A b!;i۰C م(!iM0ӔDzּ*: bU߽LD6\dZ&9>gi[,09.h,3U# K1k<:*˨ Us5<]&6e8 |eci=aMe3Lt\#d8,gU&m಑:^zM |DEB{W) ; j6xA<.aUԭF>iň-Q#pUgk~AçwـDj1bfС@' W! B&WxrefL,xcZl P 3ψ㢀o_ EeZXA\Aw z]78&)bv|B;m>8 f7tXa8m2~gB Lm.cPa\wF^YKnlǩ]3櫦 :dUK9K;*\nG0tM4 h(7;&YUe -RQD Y|/LԚq PuaJå~>a .hBr60\2Кw BUFcեW]+Lfgгa8+x }(Kѷkn-39bVZyΈLsMXƤ4=5jTO;"8,%5Cayg[ɒ {0/u`StaI{'#Oyey 6Àb0p t:8l|o nVBh8{yV鸄 QZd48MդZ ShQxYBg4-Am  h,5 ioqb $6\3abfO4)M`LhXFaC&n-YVɐ$ldq|EGxy[0ii=H.XS|Sü6(n'ѤPGj_'qS,]08.;XAՃ#O wf{pK O`֋ G*υyqoGFʉ8,2s:dba;,4EI J!/w$o E^I:"]t>&TSsZuj&MO|r?,yŻ_^NJW9%Z,9}\ -}Ң{WG7Hq:%M0-m*ձq.:}]5fyFPS< ENs_fC'F&.>|1RYw0w\lha]fi(Yiƒyאyy'x7Oy GFMlz%SĊԨT9AQ.5 t\O5 `Ƙ+>:.@>xBo+8\6j+,&/K,h'7,%ȍ53Mhv^#C/ŜtS/ݫe {2u3qq kXPKsٙp\4v\RNNr_̉xis02w&>NVXȑsak!Z:[gk+[;mDʖzbTgia+k8`sv܍ܘx],w[y7..1ŖJ)Ev 6I q6|p\34q**;)7V)@xgڻ>5w+NZ33^5d:  ]RKLpTqxPd"8 TI9]՗"3 n9b츰B4tdV-䣈D d jCl$&9*2; 5Ў+zZe:`E/r +}:. ޘ8 tlaXJVV u4Ltr_pVpmآ< NtnYv4p//; f!YQKb Z)JLjt$`QTWZ672Y+"^6.>[,d6\ (,pwv.:hjcWU脞MqrX'&nf#aIBrY^xׄ㰜Re}{@-_Hq:  ״ 4qjep+d)hI@ru6,C Њen4TK۠kpZ3pX2\<:q K"0=Nwю[f9IYe` lD^L+N$Ѽ")dˬr GOo*[RNIZ E  X~U.ȴ肖xlb4Zt_NdtZw.tõr`v 38l m*lzHj1CNE7 JTE-x 7U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 17 0 obj << /Font << /F15 8 0 R /F69 7 0 R /F43 12 0 R /F21 11 0 R /F45 20 0 R /F44 21 0 R /F24 22 0 R /F27 23 0 R /F25 24 0 R /F22 14 0 R /F50 15 0 R /F51 25 0 R /F52 26 0 R >> /XObject << /Im1 1 0 R >> /ProcSet [ /PDF /Text ] >> endobj 36 0 obj << /Length 829 /Filter /FlateDecode >> stream xWKo@WX=9x_~ @pp7%vi33;n46^>FgIPa*+/O/a`aQukhCYrƋ> +r'I "\Z´lqj hjWAgow^R knMĄt~xd+)l<'փVZƚ=8kZ kw'-- QŚ顖X`=Jy]!d"j%!>F}cZ`=O]l OT.vУMųnuكl^ _i>?Q)04dћ[ǂRy':U6=i:Z#C(g\ӛ1h yz9 jEՑ qΜzgZBI=frck_4'@Gg&&R'H4 cCB &}1k nQPcuY :1c ap| >@: @B0pvds1s7jzAHq Ft(!t[%9efaV4Ŧ>qQpw;c`:VTs$mAi ˹5/egt?yX'"H6%81,pۀ OhqqAMNHg'Ч]sC):Qth3f"E m( e[4Pw5 7P endstream endobj 35 0 obj << /Type /Page /Contents 36 0 R /Resources 34 0 R /MediaBox [0 0 595.276 841.89] /Parent 16 0 R >> endobj 33 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-008.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 37 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 38 0 R>> /ExtGState << >>/ColorSpace << /sRGB 39 0 R >>>> /Length 2109 /Filter /FlateDecode >> stream xˮe7)0UIH@ }$QA+/WyUC[ Υu?{۫\=Wo=r9_oOG߮|QoQ돏QkpRfx{5VtpKa3WǩS*>R {łÇ??=!/ %_jwN:R }yeB=4>cʉiv8g2={>?cR&>x2TYSc$L-%ͱjGK:fR>Sif8瞪ofWwq>&7!LԯSY9pIշ!]gOJЀ|_=Q׍?^U&5*bAiuؖg!ȏ6v "jT6*`LCHsNECmlAV{}nUOz:E.}m'jMd6͋x۰*vm/HptiK \ZZ{fa!#x%0l&#vez%0$F*EFA|/HB|&!仈]6.xBMlx&Ȏ8B;W*bg/?eMS3ͼQ8%ptgvJ(qR:@Ev}k@v"<@{n@M"ntq|P ۂv"}?P7 vcQ f F|?P`PpwYz \"P#P&(N(R=e.<P +`ڮ g˧EePWU,ۆE+eHɁ"o`FYEkz ytn, 6;@o~G~@(Rv+n рXJz}0 endstream endobj 37 0 obj << /CreationDate (D:20120828114504) /ModDate (D:20120828114504) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 38 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 40 0 R >> endobj 39 0 obj [/ICCBased 41 0 R] endobj 40 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 41 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 34 0 obj << /Font << /F89 13 0 R /F15 8 0 R /F69 7 0 R /F43 12 0 R >> /XObject << /Im2 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 45 0 obj << /Length 3140 /Filter /FlateDecode >> stream xn=_abDR^;Rev4xǶ=}ύ)q&EX$^ջY>ҤNlvw?+լ̫$-rqۛlxPkQ=t7 ]m_زm͗ێ{ͧ`~Vf,<&1I^UvHכ7 <[e2˔&*e:IJ=[xEn[g/4!n WǞ&0>7h8KncOhq- /F0xSy-ba~^ΏFk=+`k5_҆{~bӃ6&.AA H=6aT+k-wZ@ާ, k0Hz#!ݼT$vLTbX'umG6#l[1ʸ4 -7>!pifpo8sM-pd6E%ir+~2I PNU!}2rG$v4 =*:oD,uTiI Xf+g} Ip}.D;ALIwZ>{wB]*f9H)̈́\/ "n=D$X_?ڞ=Zˢv4aaB l[4?NV5'OgOCN\#rV*╵/]m/\M6?;#?& 9>0.:5R1@0!5_RZ cօHYhe=9Y4{-z;f՘Df/@3;n\jBPos"`w5XPS0tMn)8F95AՕNZ h$3ڞA{~gkȎ\=SOGO8=OXy0dz,2{b ~sj]A 2īV&tBb#n\cJ,--:1SZDI]fpb£ ݽ={YL5$޸VmpӠ}ī/Bf$CO9%LD>E㋕25uR+c'\~pAW>1i-kjw-)"cX,L"{i IOucw3 !#/=K-P9MBg4 %%]օu.3GZfll']0v(zc)*3]U9դg*'c^`^pۃMj6/L:K'7]S^!Ar"2:xRZSdqO(Q3p ʥ1qPIZ8͉8'  'IvHqx[ $T~v p:.%Xf203wu.} XGaƯ~iW1:0rJ]9x$+]d痷aҹ:Quu\{+NNhF؟ns]3sSN$QJWCryr 1n+3\s1_~Vqpllbu3Wr23RH4[MOC~t"F@\OSI|W\VU%5T{#\39.sNbg+ߏ=ϲ(6:61p8K|YltLP^0;jv$.vlpS> ,}Nqj%jfJf+.o$Ed2)A*+"p4K+HGJbub&OsubΊ.ׁ"tfRJrANJ+*^Lg.rki՗d*K@,̑`lV 9-@w7آ!a5 7"\*Qq'+Dq)R]d~A+u0r?Z #? B0**OMl92wz m+Im y6-eMY;Pǻ_YEUT۫Ak$`ϾѠ,PuX̭,dVaά&/9OgUR: 8ԅNx&,oϩk> endobj 43 0 obj << /Font << /F15 8 0 R /F43 12 0 R /F21 11 0 R /F86 10 0 R /F89 13 0 R /F44 21 0 R /F22 14 0 R /F50 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 48 0 obj << /Length 953 /Filter /FlateDecode >> stream xڕVo0~_)Hq 1 6CCdXtk7]@c|;2𓑔EMbI-bp?\,%$cBGg*u>S\HF7Q"]U&˜>>MR]V~ /rUkٴ^%*b\-tD=# 6[Z گpQ][8Qelחۀ.T5EaxCI!F9n] 33:3yekŨ״@0C-Et:O ;J<Ѿ0\/,^% t*n(U#D\yRqyN+Ό^7u7;48.,xO'bKni >~5rFx1;:ob !Kd ƔŊ!Op\ɧTh'z%0 :N̕@#i,c3 7#(0&-kQq0JCrrrm\k;r#9pSrXe*`=hKv׍`7f" Sskt|u!}uO؀{H~5nvԆ:w9=Dg`7;]_U]dr=*`R_u݌Ju7&l´jjDlꍝĻeq_Ș?h>/\ly#%מ8^^wHt.OɆ95O_!TBۋU1 Zޏo`6 endstream endobj 47 0 obj << /Type /Page /Contents 48 0 R /Resources 46 0 R /MediaBox [0 0 595.276 841.89] /Parent 16 0 R >> endobj 42 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-012.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 49 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 50 0 R>> /ExtGState << >>/ColorSpace << /sRGB 51 0 R >>>> /Length 2578 /Filter /FlateDecode >> stream xKf7߯8dc$H ab4[7FC3#ĢUcO*?ۗGN9+~׿땯=~> ?p1K5v|յSf^>VkD:ZjOϰa|4==NR7Ӹ73߼1#y/~G䛟Bڣ6Sz7 l;ZfOMkw>cʜ&r{#BZ-UGIkJ>ݺGKwa|==N=}/o=^H^0=k?~PA#ms쫳K-iע5t(ZV>}Wu*Gd17뤴lϺA ~k _ZdgTΗ~𥯀 ^q[ho˧2A_X5:x?fH_ٗL-_sT{059%> qͻlTreנ)WEk'.CGڰXjiu+v _FuNm'x` =)NdҀ'j~'Xee5<_gu_e=D`#ɶڲPkv{BMl7_7+CNWmy?Lk usq@npa((2No-*)ϗ5eFi?Hm|/Jawn0[ 6V >cl[h@a)(+A^98Z"h-ydMGGKaRtdeiopҵtZAwTV-'L;8Z~AKT8h鶞Z,Z}B49Z,5ZAR砅--Ehi[hi~C z\%Z=2:Z -}YhZ,h-Pah`RYZY㩽"v--]hɎNGKV;h!߃?;ZyDX'~RM-F Ysbw9ji@bJBU7'nHmDZ #p0RM #0%#zȲ12lcK 0B8\FC-bd ;F<v"pXGxN(֑8F8f#igx}BO'jHy 1bى1R|0#Y;HX7FY0m'H+H+? E7F֎_12zx024F1ҬcwTۏady+sBYv0@T #(:FΉƯ]!+0Ic® #Ӯ<#70$4`FĵF`knΕ+sULʫ_y 1W`OW^1N#\/zv%Y?X>4;8Fx#vExN(EۂkKF^XF$o5 endstream endobj 49 0 obj << /CreationDate (D:20120828114505) /ModDate (D:20120828114505) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 50 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 52 0 R >> endobj 51 0 obj [/ICCBased 53 0 R] endobj 52 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 53 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 46 0 obj << /Font << /F15 8 0 R /F89 13 0 R /F86 10 0 R >> /XObject << /Im3 42 0 R >> /ProcSet [ /PDF /Text ] >> endobj 58 0 obj << /Length 3824 /Filter /FlateDecode >> stream x[Y~_򠩬h κʩƕ۩H:fuxvJ1T8C h4>nVEZ=83pUSN? W7zk-\}z3L9|FТgW nopup- d%Un~@ F,*+tav4 ӵm.3}ף,ӭt_p9ޏ'$ؕۇHɫU8|le|z-b-LaQڥ*#;;X˳/?TYny[FEF 'R XoHt_Ž{G_ztOveQW!: DX [;zjX0;^;1oE.SH־4amظ"muiNǼU c^n>;dK,<buAt Ɩ+\Ts(xQmb"gq:9-ږ=eaU +E^w]iڄMYU*7H5kM3fepL@`A5JgǶMwύWzF\:%(E]Kq%4^R-ZczCfO2i!#K^YG~g*H8bgyHOHsrBҴCn#{|#kT*WX)͍+Â>[ڄ ZʒM N /֨tI^ 4oB54m?7k?LCM`FN7MIJafG:ŕt{)YUVWauµeN{K9cZ5 c͢DL'7>tlE/BeD灪nݦ~2$='*d%k9G5EAY,Ԟ:H KA@lzl0ЈL 4Q;\w \`@@$&G %Ĩ5 N 6ǶLqh_hc3!]2b݊ox I$ [Z$rqhU9'8)vf!Y:'𹠳Yσx05dl ЌWf <+t?Dx!0ah#܅^;QJ MR kmSeoPHڋC8`!(sm;^4Ua8|yt%>1VapK?AN@$vp),X.N՜Ft SqLN0ݎЧN&gU)N$ߴe$h▬3hy'gwGSw29omadF· 8`wކϔ舥C#iDukv ~[{LueQ1Ƿt/߷g}>tXBNQ%:׶(mm[ @~,^UIvl zNtQ6 0Z6@ 5n"as^Ὦ@nlz-e([9DѦӁ޵PX &$uj8D\ͩ47sѽ;(hlz6 ^y&dꖻmShsO,0jX{h`"aYB0-# v.97ĸtğ=Uö́]p*&w E r;W˩,GԼ W]}2B_M~.+N8 &Lh]ҁ}׎0 ] &3p >PM_alVgwJcgwY)ļP`KUǗc\Xu> G4R.o+*_v?^6?eW 3-|BYfp}(Bd+MQckϮ~z^=#n+u DOATp1MbM8@'L*wn(:#W(7\R9orkX23VG+x3آHbV}/n6e<X2XmJ4/u"4ڱ2!p]"pjO)Bx 'BVa)|QJ2 . ri閐KdlT Yr1I5f2XH-7!ɇ%-bSx 4lKAbU &g>GͰw{Ix8;%Z Aɖʔ n/;gDEl5A$؄r I] (X똮#Px3[o}Lbz(k2e5 a6IO6,%6Qr-h_E3uB{8;aL^sg=]B;ېsy^x=${andBleŇu07 98!>[%rg `Ӊl}Ukc:wUB]|mh WSs^. ߞbRlL((ql O/m.`zrXL#pPtPk'y>jX_L\(kNeM7TrX7s^,LG2538|+/}rV 4lJc/~E & %'WՋ/{1`0[j 7mۯlT[ז0mF(Qf+tNEN!>=$O&9-K}ɬ$ ogc,t_=L;"o^RF}"XI>h2=ճltU_+}^|+ʹҏ_, jo<$|<O`AUXnAd6@vip.97s_MWC'qdA\3 %j^'$bNdоnV+É)Ct#ohЯM 4$٣!(L endstream endobj 57 0 obj << /Type /Page /Contents 58 0 R /Resources 56 0 R /MediaBox [0 0 595.276 841.89] /Parent 16 0 R >> endobj 56 0 obj << /Font << /F86 10 0 R /F15 8 0 R /F43 12 0 R /F44 21 0 R /F21 11 0 R /F89 13 0 R /F69 7 0 R /F27 23 0 R /F24 22 0 R /F22 14 0 R /F50 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj << /Length 2182 /Filter /FlateDecode >> stream xڵkB-zGhH?q}E>.'$ՒV#y8Kg.*Ӆ֍+\U+murZWU !-i'/ܻ y9Ok ]tq{_4]*X3]nY_O͍mJln|u@{ af rWXgn)#n*f LmUm\x_ ZmWW?7ʹ_lmW~ )9Um&$53rt i?;@شeI:B~eUeu,osXXXmc z ǣ00P#zH`{^@}?J&z=' <} >p,WKxH-Ez_1lE9$6@fsۗ=rr'~a~o\}òaJ;l].e22~p):3۹ HD8FD1&چԚ}E6hfۦ i%%o&|Mlnײ}B"o=Oafhnu&&+@oTTR+I߶J/i }7_ Gs^iY絟1,K1pNɁ|w oɔ$awB߻Oax/4Z Ye/9RێC \h ţ\':Sj!w^P8%m)cMb02dˁZ#1/X?6*^3]Qd)̒ xfnDshЮVaIpZ*0܌\.CÏaAi["ӶѿQeӊ[+tj:[$Pi.tzsu4M^nIiZ5$mp争 ti 7MC*0tl[^RF>>뽑%#֓zߌ";JƏ1"LF5D/LSDo(;JuiةjS(|;Ho(A:yX$0-iŃ-NX$E=He*ݓ􃈳_xoH(Q⋐iۑ^R`ALA;Zu/`RZ k Dv ˴ޛtOу;It6EcB>T!) yn+޼RSx`viruL`\9J qr{^x%0#($f *@S5u؞b&4Az$x endstream endobj 60 0 obj << /Type /Page /Contents 61 0 R /Resources 59 0 R /MediaBox [0 0 595.276 841.89] /Parent 62 0 R >> endobj 54 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-015.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 63 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 64 0 R/F2 65 0 R>> /ExtGState << >>/ColorSpace << /sRGB 66 0 R >>>> /Length 10520 /Filter /FlateDecode >> stream xŝKtq߯e@;ǀ`g/ le!H Yu;By £0>߹Ūb]W~㣭Utk%X`ym ~r0 ^Y^H# g`bCk M"az9^)텉Y`O^ lZNol)dm@E'tſMY/Y"6В-2jr!{rƳ3[nulm8DtBԟ2^.0zV\ʼnԵ7z `ܻ IǞhmz.=u a-<~!IjJ{d¶Vz6 o˩-Ju;#\D9=,szrY*VHw&^+;劼 A/M.=”M,ޠs/i9mV fm-wpd 6=;-KrY̮|r98&63o0k>X^CZ3rO;d@x[D ;7X 4ٮ'jl?fF҆"~bv Sw)kmۇ[ MmKٶ'}ƵMos-|wS2 9Vp8eb𶝈om;%@bL 2Q)*"=0:_ʯ-JgbD:-Vm]= l}0[S[Ri`ِx6򽋨? t 5d*.V51UObkHC/2MϚW8dGMiE5Hni\RP 9lۛ.Zl),P޽a &Ip/g \I+2n@nuxp₹ңn>+~؊'8q8s.Y8m{+ _qzoבn ?mb$0+!Q4 FEČ." ޸X>6'MBnW]>I4i6ݖԄDzM#RwQi zgX7?u/yÑx=ٖ?: zdq/ȹBiVG GKWwWTz*#/p~+V8\pOyqV[ GnKH5'L=hЗdہ/΃wx>zvgqr/;>^r|-"W|oԄPzAxD3&΍hwJhuD79e Fυs;6`{3fNarnt &;m\r7*(jFYcV)IytER%VN8 t|l&ֵE(Yj.6zL&^3bgZ.'XϬlw9GRD'-*Й]0 ?:[bcd>Rcx%m FȊi"dA%$Q3*ե%,ő|] m4-LcfыrZɮ8 u.5[-Yi`Vov/2aQPѲ.5idDã($%>-կ \ U \΁ptx.G7`Ya{;zg]%/-Sbt 7&pif} OAT5@_镠btaGN7Vhy;AqGw<È 4w'Mkg\oW-mxeK*!~=X-V+:Xgpa8Ճo89yCT O4|¤R/qIOA nH .qHZjPE*=,Zрm"O3 A`PʬBzjqX_LP QƉ۲ .@ERVTd> xj ע%R ϩe=:.tg^\io$MSnbT ?GSpQZ7:jLƜ%UZcz*ի@y)ؒIE nY*Phb*{>Y\ng-pHV.H0wVgAԊmtEM,}\{e@u <$*rJu- Cn9 .U2zuj`iQvz@oehεP7Rtf+o̷8lyn 7!1gX:p8.@}Of]Ni G/ ^8,8 5;mǓg*:2~o,3q3]X G'o`3@#S*/9<^83ndo)öwV p/pX#7pkk#UJY14R'&kW.bQx{ӘCMV*Fc=^ 2Z(_[OAOޙ8dCWX`Bz6.Z5C49sb[^M: ٤Lаij"!+ZzHD4ߕ0zo(h9bqXDq's\^ƻ=!}jkc=23Ž;Fwؘh)_fP2Z3`x~s ;^7ƃ8r9^aP;;;ޡcNjPjrYAMi%Z2]fX)d) *ؙq @bzhzv |Maձ%35A-MYƢM/$|qwxҖpZS v D&tl*[1a)mgXc ;`_~e;]gF@sXɛx6*hHb륙 (l㢈'+)}| >$ d#،)FKt <xaU/qo︵8or}axgQO[b ?yhc o/KZ!~0iTPఈB \G_po7S;yG7[ym0)3,a\uxr8lxeG9Z2:yY[1CgazF@;vvULtÍ.tӋrpdҢ21kxIl4W35\9WXEWהh eVĒ8A\NgU0VIqIE뵙kn&?)%pRGm̌> `]jk@gg)ú#K 8.p,(eۧ CDWz҇FkO{~qm6Q+,8aU褜rS;UM듰w[D/^k {skktL!\_5ӵ/+(ӥ̌1 ph٨8p|?4Jdk0^/vxl; :6+-$VkAF/Xh{[yr/p.>"SћND5<1 ,pfG!Nr0FL-J'1p߸z`e/+c_*؜WY4j7jxóik[n|s֡{obNf‘Rxۻ n7b'xgxh,a8L r|xh,\q8 >6c2+YkֱMlwz4(TMMZt}X!f]mHԩ:^3ǧ/yo[x ݔ$xN|6it|Ox>ݎAZJWcjҊmMOggb>3lxp1|idv+E:>`R 'ݴgrlՔ@Y6-L[^nZ'xk*Pw)-MvV4^ӹ| -kVS+(nn(ɔ%uպ!qyΰqBpAT|i&\gPtf.ڄE֮Z gƧך&R5pn3.2i0De!Zr\9gϋ|6. T_BKZ]lk `%9Ʈ!JAKZhqhڸq\bг LZF.xIVa-ua rZ_A_wRIy+evCgdq.1ew,'s >YWf>)Vːp%iϞ+(0Ŗ)CMUпvjBjulЇQgmߙ k4,V89b`M8PJтϒ%IZxe=dʗ˂YFS= %kL:Υȳ6ű-_VF3 u%jxEI7P;+8,h-\@j#CxY ч3\Rkn!k`j#%6b23fd&xfg.nh9Z.o3y܎,-{B + g٪ЙYzdGU (G%.Wݴ0C͊j=DA iM1P5W2Ӑ]8Rw6Y\[u"RuM5DidM1ZK98p2E{ ρECƫ+KEVt&).rIfKa]ŻUA"DӺ!)x*ƥb!rB[΢}ג`lz/Ky.HnZQ Z2+GuS e٣ZfYW0MqйUIaL+ y0Zн7`b=ʯqŵP܇E`Cۺ8lϥKЇYsAqٴؤ_#<`q(sh4:zhMLNCglG]8&KۣiZ^TZCNu t3W32Cؤ |s UgqXFZҴaI$r]Qd\ZWIrY|s:.'J)ZWC?\~ÿ/X6~ߴG}~K_68d+I}Fl)nA{6|v{./O?~3a6?;G7?(]>yɼk_xqi/MJ?lT7Oy_~֐k~0g~|ݿo_owoO!CGy @u^E|qV/c 1)xJDЙOxܤ7'ڏǿ>TΘeϏ??ڿMFK猝$镴dc< _y3'_sT)_Y)}+=8zݼ-2jǸ~}3ZulmUƪj!TE ?_6n6VgV3>Eǣ8kڈ+OcUMߵJW1d= eo2n>]m>_s{ yϜ?e}9˚16{9s㷱fk~W5gq^v_~q7JjmXlm2c OkrUQE_n񻘜EE ~UdRQﯘ~t O>MlȒ1}|!~L$ic,{(-4Tr]v=e!t2Sz.KiޘIv{ܚK>8_l>NSf?jE'L>+vg} k<4Rĸx'1߿V_2_[S_Vsӌq}(C+{HSKfl%ޏx|кo$aL-6&>AmhQfv6_c5:/aXW8bTbƎ"+}K/Xg[|WKW6峱mEklh̅|Y WmENi8;H=Ma+wYIb*TC6[#kuD1k"x}&tƭfwdQ,p}&FZ]%Y|Kq2_˸q26>4qj>ǟ;czy45kqY~UR?Ʃ˗s/H؏6ﱆ|?4*iSé˿?bVEB$:_zdmMc*:Y%{|a9ޟ8Ҹ-ճiؑim~/)us|ODZcv`l/J1|I{=Mv=bȎͿhfx@x2n;RP:x)ƫ(ܡ8qI?ƪ)lx|S2{Ugs;w,m6^|8F9^|>5v_ endstream endobj 63 0 obj << /CreationDate (D:20120828114505) /ModDate (D:20120828114505) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 64 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 65 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 67 0 R >> endobj 66 0 obj [/ICCBased 68 0 R] endobj 67 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 68 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 59 0 obj << /Font << /F15 8 0 R /F43 12 0 R /F24 22 0 R /F21 11 0 R /F86 10 0 R /F89 13 0 R /F76 9 0 R /F22 14 0 R /F50 15 0 R >> /XObject << /Im4 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 71 0 obj << /Length 1710 /Filter /FlateDecode >> stream xXYo7~B#璛6Z4}JdKUVrpV"h`1bOLLjyɄssYl/fYWLgfbDU0XLWSQ޷9) b:?V6Кˢ ow>*?WX/w/pKQ?1O3 D )&UAdRFN$b#Hڌ\1)qeRnL8i0$CiL|s;EˏǖL9\ v&|晹{<}j̋k͔&9ә[ZLg,cR/ݘYP>1.0.xK^\aK4ݏScghL3"@i i@p \⺓L tgga_m3D ʢ*HW1nbQB"ݏc4ܩх:eAϵA1t2{ +%w ^=֎0A5k])mcƺ\pUN1B0^j+*EӫHUlA?0]oм} 4t)a.QaP Y|ȁJ[ڵM~~.I3޷.}IF;R&SR~/Jl*1]d+"̇L;י~{Z"-d6ytCGjr:;w bOhSKY&}^* 23WBr;_ 3p<˕eJ΍5s4%)64Hfk\ P:QsǼ󽦢xG[9Bs`97/i 2HO#'dqd򌴂W#x3|\_,N(O5ry?,z..nMMߟ0oڼRgzy]cZ^v:\4PT(7vBR|ʱliG3]o/8m=x-+EM:x^(pqxK ՙDI8s_[ @~at ͺA {ZNPu ph@Fhkgy$gt8A;>^^: {%BmpdGeg#.1)qGt˪KGQXM-^E(سps`Tl]JTH 05cu sE=)>~#Zv7mM6pp^!6ﯪ4~ BڈS6IyW?zL8$l:~wDK&G~[J@< hb<~(>I%RJb6TTD!" x.>zApV)+a$ BPmFɾ_>8!n Ca7~{bD*~XD0aK4Yo`uf*9^ 2# endstream endobj 70 0 obj << /Type /Page /Contents 71 0 R /Resources 69 0 R /MediaBox [0 0 595.276 841.89] /Parent 62 0 R >> endobj 55 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-018.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 72 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 73 0 R/F2 74 0 R>> /ExtGState << >>/ColorSpace << /sRGB 75 0 R >>>> /Length 10471 /Filter /FlateDecode >> stream xKgKq)K[S-!WbY X"1B34=9*+++2~*߼~߿y{k_׷U_Q_/_??/s*k_ۿ~}~է1yϫ;Bpzq뭱7Z3z=vG,Z~/^235osty+GmkV^ַƞ=Ga^-#3.[oeomQ qf}O;}|1t6 ݯwMCOZK[o!Ly{4m w78!o5u]\ao~wMV<ku"=4Uyk-ύ@Ȩ m` 6c%[j'v>ʭ.DoȨ--V*AݿբOډyk[%wqm5s=d/Skdl>^-fݠI|;k-3[; }?,V۔yaqk'Bzc>*6*;ZZccP=3tށI|}lo툧"늵Jk͇Mb &!}_;0Y%7Lͧ[= w)5a_9^R60Pr^Hx3"at|~saC| Vg<Ƕ`hƶYJY0kv5-Gįٳk;?[Y|_tn@VE:Ŭ]ͧ9rh%nGClm:'YY𢕓,E-VRJlm, 1}2ߓd;rN,^XⰍJ7_Zs;l$+Y9kOh9f% =Ibro!}D} =f%Z󘖼SFt[ +sNdPbn0N; -0N:1"( +\ hkB%,0*OsRtdsFyESޗ'FpwF]p)#cyIGp%*o*7_9p Uޡ#g띐_vWEX*/c6/ HX'\2oyG[N[]mb9oyN8CGwyђ&/A[v>. !|g`q|AF{`ޗ'N{̆i+y_ fq* \4h*QtSpWS=8y-+y#ZOG V>ryЊ<:i8z} .F:̦Ҽp+: lSZx)*Y~:sI 'w Cl^`]U%=2ꆓ%3iw^~,C>0͇3Q%IZt;G$g)pVxNޓarS.MJ (Jtv8D . ڤvG䐊 qlGp;;SRT'T:A|]}>r!j9/2b܉Z^ߩNDq5LD)wA R Sj:&u,S deFF>YP՝ ^],$pQ#w]}yE.gBб8HO#2Gvn0Ey(ǥs =, f;6'T'<˴H<gY,x'帤'P2(wszvVQzRI .?T/Pt#/,hW&,.;*ީNdg^>O%յJ"_ٰyo:v~{Ѵ Lh3\Tn,WEpQ?ˣBSUʄ>F[ }4b oyhD,@5LgBUJ|2թTdT煣!=J2'};΄> qT.S4q^8mzv|׊6|*w˜Q@ޣ }؍NeD]Jt$lյh;|[r7Q}X[QL; E~W_lRg : W &JX};.U#GW/Qeh' ^c6(0ք֨ܽ( [xۑuz:b/ _ُ2ÚP=q5yLKzSa5t :k\8kB 'p=CGzalOeBgL{}#uJD#ϼ53Gm>cE÷ A&$owrdޑZ:4夆5xX*8#-8 XG͆| Lք IL{בScudgI SGptքYo3w/&΢-w!Ĵ&FFޚPKA6+Gmu[p&lG iŌdJ55!xKt /bi58tkB? ۻ@>Du!|%@ۜ [cҞsD1))8* +y%tҚ>zO έߎ^~'MlȻZs&@5f9{qh'`F C"/%8 Nas0`PP śԲ&TpD>,75K|ݪ:'[nsmbYЈeMCb4q"xP.s &--0ٸ 8>U?PՉe'ͻ5uLjչ9"e͏L(Z33/%!EBuvswvvkBaxL(3!_;TaZx&άn'Ɍ {I&6Ȅ$ If5|O*vȄ=nL(e3PT񢎞'v 9j wv] ,5PTR[ssnɄ6-ƴBܳM Y[vO&AɄ’Tu\;Z32/lPtG2BH&[g2Png·Nj9 ' /wx/Y3ЇF{%;}-S0}VÙ&/n' LÈ\^q(;w“oO2jY?O2}PY|y ̞'¼y wyzSBu>dBBdB^@ *U _ܰ˭5vkB GgMh>&&h?hcMh;ք w%`(0;LOxվǚP;rnC v8ab%>5]ܚPչLpY)Xh̷/oM̆mքۑX΄т]΄~O"T#Xj8|@ WyLu#wqLu!g@icMh3߫AowXĞ_p RX'4 o1|lH;N&Ծ,k "\Tވ=|O&t/toha|l! 4o} F ޲MBmj.{?фn&)O8jz8Yu13$+$ܟX2hH\lCx?M &TT5˙PmRn:T<-yl ~>=`d09:Vg2`vx&tȂ+ %\]Xl;} uowE09Rˣy/:vI#hGY6:TTNJ4Ij&Iʄ.ϫOhђ8'fCM(6hB],8:@vl&;hB.2Q 2kթo'VWNIS !2;)U\ ku ҈ .st&tkW&tuW7fSF4 =O ] \ b.|lFX{ф6h 3o3LuJf\7X{Z p6tJCNLc6⮾GߎMr&T_^ .s*>p" ]aʄ.xU.&)ե֬(R \ )ʄc~{3o'/ߢ ĵhBtw :7MO0q: 'u_ע ٢ r OG!q𙧋꜋yM腣Ez4QpeBB EuHf1NZ2M(hB',hn,8+2xaF;LuNXآ &.n\9.RpQs"[Uj8*kфNvʄjѷOgB'dUpeBd'Lu n(7Ѣ N A}B9if,\%8uфNvkʄ^8q&T7wQY\wLuNv:':@peBgcMdT ndupGL&t6фNv=#b6wm=P]ɍ=ng)gJOh̆(U'| %;l&Tp4#i:{{B=%|fO>z8׻0O}Be6iW&ty+: 4LZ/:',MfhE: & ڄ_Tp3U[_1DhB==cQ^E g*qG:ؕ+: թ>ptpQ "8*YфM8Pn8:"8'4f\&tv;R;&OhWSꅆ6P8ʄX٨>pĘO2 ]39`օpӎhB/6F4שOh  {|.3m#\pф[LoW!|lPRI}Bc6H9 MLwr, \6T` G4u\бXH<|_2)8vH$8iG4p< h3ݪ.flpD:X8gǙZ66ͫOhvT(5<&M`:?w9AGf^VG<&Qp2 DVeE ՙ}Eu2b3M,BĒi΄v} "/v`&3Ph8GtQVqO/8ig4] /2:%k9 }?çQ(фޑg;l4f/ġ_:VD=ĩ!ф^8[2zL(CMuJpS2ф'. G4j8{BuhBÄN+X4 GL a- .8\ф*ABvEajcEzH|gsKh/yOM! GMh?oE!C GC QtQjW4^w PB\g8u Gv;Je.M腣Mh݆?m\F GCM'^~ez΄~ټÑ:S;:ULhgi!\XN Eu /.Xф bW4 bi~:.\a8v˟ ʄhBU&O<]|T "Zw4}]&}L]qͫL%>uф^8:hB;>v4qqnյdRuфv(ф Lu&?=fG6f ;GLhZmyjk82hB$v4 't6hgsCݻ螓Mh M腣ѷOgB\Fꦩ&hBn@P4˙:[oY,8zyt&4ZwogB/okȣ,o?:/yhBԿhB%DOW&MFqv>}dw֬x#2IJ}BOӚp4tф6x;фՙYfD}Bgn@/_Mu6Xp:/EV''5Zs fUv9xTh6ф^8RaO?dpeBGަl0>% &T/.:>1$зG_>PMyD+'l>1?фiO48駣ߦ:ڦ:&*O4xޏ32ф1թO`kMhcDW)2iy |:t`+*8D gBS .=(4T[x4 WpeBۃW&TpteBkK$μwR%NቻP9f8Mф> LêZ m'n| [qZ&)lmф>ڧ9&Eub8ME*82ZbyUwt/\T˴9x>ф>w"\PiB}BǫWpX%8sʔ#+FG1a%pSTg9 ?a802ք ן^m9 9jkBKnM(~n o0"8kB'֬ 5ͻ+JV>ټ.OprN=5ҸݚPɂU8&tŎ)?pd6ݚP.{w]t_Z*s+J' }+pdu GW  ܺMaY&TpEO0Ŵ*޲auQȪ[*8b̺5ej^ bo "j]! Gt_&lvMJք ȇVN#1mN}\Y/oMਸ਼[*8emӗf@wDu N|hݚPъ/l~+%"8[[GF{; N@p4tքY"[Z6-ށE7S'pÚPIk0ݽHnFo3pb$\GJhEBGA&Tp G(_e  ] ֻ5&G bMj*̨O48kBGaMhYIJYe5 չˌW55E 0*3wᎾ#م%nf2*^Kg+ΚPiB].1nPO5#~~Xj8|9;:GV:*OyGqfQN<}AQk%Y]y2=ctkBGiʄt5}~53#ٴ&LvʄҸL\c2'aU#G=y,dO\T|7ՙf@pteB5ʄ^8:Oh5&'TfÚ] .s+:Y@ m)R:2<NӚPK<]]nB;gۄ #NQUt}IzW&Tp4qքֳl;:X 6Euv: 5Y5#{^g5e@e⅋ꄝ۲&pb˚PQŋy;+$2\8rt.&Tp$\֖QY\' M JVDɒYք BeMh=W&tdk: ], xS&pdݙPuEVMu*& & y53?? UB ѷS:UΚPق&tK:HO'=N˥#}YZ:6ք NZ g2թbtQjeM Ѽ[Z` 6 թ*|4tTg4LhX(Um8ڼ NcO\AѶ&Tpn'%G my勩=TPMeͶ&Tptɶ&4xnÑpQawqo#J(8*ք]{uzE f+~٘/e&֒mkBIAfӝ -@ f󰦇|`E&TFYz68=pLn( z4Jtݟ%=~_᧯}>ᆮ_+˯~}A~~/yӗUDc.'>ȟ߾_VUk~߿?<{?g>;t}\G~.Vx 0eo_a *~.Ϸ}嫧w2Gxy/K~}~WS:FΟvf}tEMG|<]-Oݞ}5}Rxۏq?~T?.RAYKץd_Wߔ__ܗ|}-vu6x9?AtG'?_|_ endstream endobj 72 0 obj << /CreationDate (D:20120828114505) /ModDate (D:20120828114505) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 73 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 74 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 76 0 R >> endobj 75 0 obj [/ICCBased 77 0 R] endobj 76 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 77 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 69 0 obj << /Font << /F15 8 0 R /F43 12 0 R /F21 11 0 R /F24 22 0 R /F27 23 0 R /F44 21 0 R /F89 13 0 R /F86 10 0 R >> /XObject << /Im5 55 0 R >> /ProcSet [ /PDF /Text ] >> endobj 81 0 obj << /Length 2369 /Filter /FlateDecode >> stream xKo6_E;Cw;@ 졋=X?R˞L"Etv_SG{u3хjFOn&LUQ5;]]_p W=7 e`h}I1i\9@\)^7b8}ϯ70gx[^ó6}˗GDW1r 䪖uv|-$G~<7x^0h=) _2oۄD~zx#[rW?\i^YLi.IJeQ i)쓉?_W?_X3gɡߣjwdh50DLSMogqӟa0\HENЖ/<{*1ne`8 [~(m)rGPD @'Ai2J5>~;ʪΞA!%+BdqtEDtĤ70/b^ϒơ0Hۋ[;= -;lj~}(32nE rfl ]ҹ޶ܰ.=nzBcAAz7nR0nЋrVw"ʈCo"W|sO} "yz#/!l%Q5jl-9 ZEݼcRG$M4a(D(5J&Cwh8xum>vdY<+:XIW!X66s u e.r(kΰЌJd#(h1hPD3 QxAƅO#23]Ua!ɇ?E'q2YwRit@ KL޽֣Ԙ@ɪ6w9#sH a%dKCȍ,P6Q*{>1ީ~ :Re!!%:SY^5_Qz"$s43_Hlsy3wr Vj$-y1jUlPbUEUx N8饚 It-} X莪 II(ljN2˪QUU^]J5ʡ3gc0?Iwʿ aꠔ֟U0He{5!b0֪G~xTH 2PPʚAC. (y_,l|W6Iw[(:R-u[և[K̊ksNgrZQV{9[MlzU,q=A!3@U0O+0!HI@8X GGU\rU1Ay$%v cm.eQSHYE:-q>z SgX fWg6C0?сj 9-og1~Ggzp@RzIMtXDcƾ*-{MWzEm<7Gŋe KKDLzidI˄> endobj 78 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-023.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 83 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 84 0 R/F2 85 0 R>> /ExtGState << >>/ColorSpace << /sRGB 86 0 R >>>> /Length 10713 /Filter /FlateDecode >> stream xŝKuQ߯MMq"@ {K4-(Q}V\F5nv\UNW}wW}Uj~k[~|O~g}ޣgo{o_}K^Krs>cy_+z^4tʻWjimzF^/iW{߹2|m<|W}=ȫ=k$-wK$o.OM;wٓnw_/{K~wrWɋ/{~=NcEnŖ{\˽h|_zq7s̾x-vHyyr|/Wn~e/-Ɋ |n74LJ=磛_׻<<&(nfȪ#|=zui6MZd6Ⱥmm5?д^G1h{u YD%Ұ A.,MB^K7_ܶbƼ/YH_Cs j՘v}I;YyqB[T6raU7 a'p_,Ъj{y§Ǩ]~IԴk >lA.G+jD-ia^-ho[ΓI{.OFi؃/`H>+ۓ |+{Ѓ7p;db.ޙμ d#]?zVxX+ l*K\egf")L(I&? 2P~հ 6 w̦eօ[P_HMtYVy-:+駠gw&W:`;#sZv tyr|kXtr\: zejⵙkHژJ +K2 n[d)P2qYZf y->6O ǣ-@YWw^Y.:d*G .f]|}pI,a?ړ}ڨX>mջGq gm\MZ+Zq}wKUJ*oynK3N(*-ĭwq>h;q{ {Z7RX|^V:Um GlzmQ3-SX%ڇ]ְ5crA8pXxyp_=Cau(}RE͏썣w|@?Y6'eԃ'3s<}ޠ3x>le>|=VrIpAUɤ`Xœg^L,\}8VhU>s^9hIUa ^6n ZOUV7_+Si-h%I#*٪5mN{6G<)t;Y\1zuY_L 6£!-lWgQҊ#9'2mfi뢧zuK|V}#v _q4mWf#pe]y$F}quׁK&p̊^lVks*'} kny݁/hSನu Vy=|TMR<Z{g' -srm?zc7΂NҺ'ոWՃY߸5b8 k3jq;J8x(^gɷ2чd97Βmxz)1-/OqHǙ9H) qJk('A+' n?ڜn}Ѵq|lJvIOx$t+H.r^8isZQʊpԁ &T$y OpV}z\oExFa^ØYOdu۸q<@7>fVd\xG=n|dד9/9#_p`m{wß\@*ĶQ܍}Q8;sF>8iLGI^7gI;c $Vme~'=Q7υ̃GF"Upp*Y?#H9$+`g>8 |?y>zrG;_|‹ӛ<Ŋ[OMD$M>o]* 5_t o5&:B9\}i-j&Am`m#D7yRagl`Wqa PJѴևas.JYWd;b@o^/Z$tlNv:\0\#'ޟ(h3wupkz$;gDUeVd"'pLP'kH@+ѺoU[5]`EMx1"eVo>  *Cse;ЪS W_ : h]X "i;l!A0/6iR_[qmY:i{e}{-']Filè}jO:51c#l AΝSEyKgqT}Nx \ Txmw UKf{Rl5YI=ͷq^hشV`h֙EfNh:s2>ZSl?. r֠/b g7?2tga"Q88x{4{$06U|Gԗq|M7ޠ?a̛q8݇ *F%q,vnE:8 }_p%>zmϣ\*[>Q/gѴ0"2?8 ^ m|wD 6}'ϾqQؑ7\}K=b]>8j@xM0x}tbN޽jƴ˜PfNjΓ}^3 6ZI;/'K]-M_X_0fe8zJpoa`_bYW; n&!W odl\}Jx |i.5 fy<3~p1s܄6'Z3={.o ndGaEm#?%?zOl'# +sbi59xe>8JY98~p&*ou:d*eUڲ:w/jiytEuyKZ'%|E&v܍7x߽*o%o/ _{o^f㣳'lwq:y|/(x~ݷ4䍳Q<$即E>d_Фqft7.ux98NG{ Фq)|qpXxpxMv6n| .?#5aJO;̏;8, \uf] \̓ 4ܿnv?÷zam_kՁ6v26 5\` OQ7Ce&Xiź9omq=-(ɫxA MWyf1'ǕY7o6BQ긎㸥#Qi[&*Յ>nbyy6l8n>aO3L \#d3}pΪZO^i#A sOZSm|DI!W;#S;(w@ Z> xlûhٶz:FlY[ :U2_]  ޽g2e|pxT4:x*t@*ޡ~w\҆8#5{fdϋ@ Ѓw3pBj1Vq /2 N|p&oI)4lN+27qH8rNO <_PTYW| uZxG2ٍ36pN{px^൲ wo?eߖ3Z#xV냶/0D%[q٩D 34竕 >dZ9+u&&%lDr[0FtTn&oAҬٲq =S("y“% _֩@P4B|{OpE>ؤ V  8xZqU98<2Cl[p5?ayBl8N ^IڤFv +epof44k}FքgmLf޲6Лf6*oP8)bnI㋰%dEԁk>7o} | StÞƟyzag;ZöD?8r\-L ZN#^~ mWӃ#JF_pajLdzi+MwߦB8*ViTK0sa*hI*u* v8MKpOim [-дYk׭ZWgBeP%Va%)D?yR̛pvy¤㖴C>[SȜo%CE(n9#G=;6o`F{3(8~?bVe๰]܃GF8<6eͅ*2akf.O h;_ݑ=Z,BG'uw?!LMg>4,Ll:?8H>̛`.7۠zyJkvnfq=E9-QLfJB߽{C CC=)|7VF|4m0Z踎F2 AS6i"ϫp: .:gr#*z 䐤{UguUčlyr87Jp8-7o?8L j܃$hY>X߃G>x :/`>l6i%(ԉm;˧ <],?rs2c(Cs?66`^VWwp y!cnxm*m\BVfX,b;lnnv6oyRS% Q j,hZ_O9*,RG=ٴ l7tڸl4i6P0/D4~X¼doܪ 6n L>Y!QL,n&]2 \ϓixN,{pa*4! #ض2mjb/̇=xc lVp7^&BO^^# ƨfq|:QZC5oV,:M}udz%3@Z,ef![Yv QZL8j4i`WU<脮nX:2:l89-N!nv#aI%P\byV/Pޡ\]Vгw%XBhsavo>jaVv>En"<)hzq(]g+PsO _[MY R^-#ϕ/0+pӆU _ Rʶa~Tъ[9IEl˖LevXIټ2NPևZAGE*Y2+[\ImZes^픚â7Vb l_) .;LI6-R,FoޚKڠӲsR̗qZx%'LA^ac`5#q2EЬmy;Q'b(-3w<Ã>RurGW_gE2?@:4vRgQoogM^&ڃ>Vě`cM(U.nk^vFȒ޺Bp<*o|keLr^!W(c2to-Cm2TqVz#psRE'&l]f*;#\ӥBjimjq¥꼝µ |vl9O|g̢T!iwB6S3$U^7Xײ%TVUtR<9tb-;AGxЦ W!/Szph:yROֻ'!5#%)XB2E%?N#>l#ٛm\'dʅjɬ_~'?]g?[z|Wߒヘ`fU=6#UH9ߵ=r?~wnuK+ޕd_^U/~?S>=d_{]}Ͼ'5%~o/G[^k}UU{Qc]5߿{\_ xK~Q^(ӯ-?y~zo[:C}m?ǫAԭzo?+e*__TKW,gO>U5Y8I Hͷzkw&YY]mXoKzѸ7q}ett{4kޯ_ԋXwO*252:n\66).;~mViw98$ښv] AjχXFݞ'Y~4vnlc y5-ޯxʼn'K]ѩ%eW緫:3߯+5xJiϧ:nc9]Ǫwwk,_[~aBLklIbl3U3gx:M$qvg>oծXc}\J5?X;-klLJZc_]OO}y_{h%y_11ʢ$1!ſDޏ:CևRθךGLwdɢ3׃Q66&3t،h>.Gd gp֋vc_x:%\X0Ϛq%u,^16\Bk\ݙ-ZZ߯xn1BwN^5깾g c\F 2ڱ i/ $ٸk>*%5[,[CٝEa,f,/;Fi~Mci9Dn^%xޙl6X+wq~Sj1nx\UmZL_W=o/{z%v1QcmAeNzdA[W48ࣆV"~zicƌ<6y4H!Yo!6CU_85\k}E %4$h}bƓƾF lCBi1sMBO>H1JCfbu%W_a͆:3Up+l9JHۣ[%hRc :W9 _3ѐ^:&55ͧCvuZF>UuWh(eVq1:6,jkkEKLیqDZ "$V>c}{`߫nc5%k:I2|~W~۞4@'QMp_>^f1au퉨eWlED`^X8`=hn'h!"#p endstream endobj 83 0 obj << /CreationDate (D:20120828114508) /ModDate (D:20120828114508) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 84 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 85 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 87 0 R >> endobj 86 0 obj [/ICCBased 88 0 R] endobj 87 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 88 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 79 0 obj << /Font << /F89 13 0 R /F15 8 0 R /F43 12 0 R /F95 82 0 R /F44 21 0 R /F24 22 0 R /F27 23 0 R /F21 11 0 R >> /XObject << /Im6 78 0 R >> /ProcSet [ /PDF /Text ] >> endobj 92 0 obj << /Length 1946 /Filter /FlateDecode >> stream xYo6_a`c+RHum{؇={Pm%6[?Gi'݀m(Sx<חӋol=ZW#FF[Wh:>viU@\wڻ\vCQp?PA&Pc(eʁЖ6,nKO-Y@yJ  P y,0`xmND |=ɤ6,$^X~f$4Fg jf n7^8 @Y~H4(raU5.>\[yIQ:xveF<,bH{FTB\Ca]y6ɌE?6oIy25EL̘`pJS?}SjQ) "8@DR(`C*c6%!]Ty J1/RWrIVjz ^sf:oWs7Nx6z\'{sP)!gݚ,K܋0s(t;+@Nt5nnepoY I4NxU 2J'o[:֤nи/|{mݰן# Qʠe]=ki$lHi#lmzQ2eHZ<84"x8d1ީCe%UTۇR\6Ί[_`[{6,4D'ʎϚYa>) o94Cy e϶¨ڟnzBTςѬ_9p9ZR[jQΏBɑɽ,4KTE娒R SQD(9)ކ <2Ƀbs;X'U_zi-uYr}7!Suk?d?&x-/E] ҇[2#҅'t96d7I$uc)3jQQ 2۠L!##G*4UCZn|?r a{Z!(MO>LN*!ꚸ7EmHrHN#h5Ӈm}Q;XzI3(A@w3;Lq~D$JE T7|F(q"2F͙ؼ!y(+ T /h} !ePɷ2sdE,0ouMP"{eE }tWMApM'ǭ3clmj#:K6e5N xY,-K<2;'jp͟{z% {(a` ͎CPCp^ i>;م !ދ7o UjxG 0)Ce03XGJM5Sppf, ;s~ C$}Ovf_EgF,q'@onpW)*,g)@v.WskYa^X-Bjv^u`X+G@VdzNN) `p jZVJje<ӠuQ]]E@m`őxgo=^7y84x\{qjX~N޴>EQY/چ3(;3%G`-,B_3uYt{ > endobj 89 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-025.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 93 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 94 0 R/F3 95 0 R>> /ExtGState << >>/ColorSpace << /sRGB 96 0 R >>>> /Length 8569 /Filter /FlateDecode >> stream x͜MqO,ETE"MТ tt)N_3s _EKHI3;䰼~*߼~^:sZǨَ~׿~7'_|y/~z_׫oS7}ǘ9_V?:j>J}1yܧ^G=͜Gn^hf#~U71cGaf9uW;ڊ f?V5Ժn}*帗X3~WkW ]~p9_ia6QN\GηcwZNklo#iu{1uŬ{ x"^{nd3iNJ󭡏c4JYn8N?~0=۟<:z\0{:o(ϊwq>mﭣxǼp诽mV<|`q~'avD?Þu8y^П 8[ٷ>>q3o$/{ǧ t?hxx/}KO=&_:V `ۃYq?+;q5E@KKϴ{ yy¶Îv9vn\lsvH>>3gōx¯ukq=s}gx- |ΰ/}^ 7_?w^G5Ps5?pj,?]z:M|_ #|i0`0^,o4ß_5POUC~uv{v&aw7gvv?Fn~V?yq^^7UV#w]j{  YT|oo]/xw@4{hG/7NCj?8<;KanO c9kqx[g?>s݈ FP-Sx[u-,&a?lf5៛v?4#a{? Ǟ4|?ؐx^ a~hh/k;A?'y|M|8O-^ g3ИOE TAG>Y@xX6.{/|/Uahʍ߷|! ?, |a?4=͋|/ÑF>oC{ p=-L}?2t}4 c_5=kq ha1`9oĿ̰fۑ}x]В~5c_x;x>a^jϩlI;]%爷;zGK/g4j忿J<3}x1oׯ~}2~. {;~頼w?ڧ6>|g> N/WIB {ns3r͉=v[>]sk"Wv[;:OGP`O,7;z>oyw;z>[r`yt84\KYk˗>OǰL<.G?_g|QYO?_W1">t)]}`HjT{(XY"`e)Jv# VꑒvBRI jK Vvpd,W*!gu1Z0+lDjmHR"C7 VuR@$X- b\m8$X  V բAʎQ2+  (XEAU#@HjL%X+U;)Qj' VEA~̆`H/ wz Cc<(XQjLx%X9wC`e+)X!X0x>!8A@`GʟO+ #XF`Qj:$X+OZx V9~!HAvxR|c|(X  oV8_ V>>PjLUㄑ+w>QR|`Mgl VMO=·`$@Pw1`+_Z܎SQ`e$ Vz<A!8P W+'P=H/JV8U-*ǟUKA U/ Vv<+?Z`+lVq(X5 q= V6 oUFJFCк.Xy.XxPp|_(X=C V>a {4%J_|\:QO"f6"-!E,ThOL"E"z D 8EV&Kއ(8{@iL#dC17G1QlεE,vm(2E<K(TC(b 6Pl܏PdES{\PdM %@T(OB% LޟPDk "'Qʁ"fc"(#׆"+pm"$Qdj.(2^Bx"s "}mEV(¹D E4^BI B} "fG*"B["a*(2yBt7lPdp-PdpmPd"z^BIt "kG" "k "%-"t"Pk ExD!4!L̈́"7\{6"fMi+%Ks@o(2uO$* E/EזE:DJ]"KhBYLBAT%B",&,?BE"\P'UQ E>Y#0ʁ"fy'1WNa"{DK"@DŹQH+)\"q6P캣HZE:Q( tJBʁ"AOCaE쟁nDk;a׎"v|\9P_DQH"8PSJ0EM4$=(Pǎ"{@]Hg|\OBvQ/PN"]sD}QlQڱ@{@o}{+7@,cN4#4x*T-W8^&W2Zy^'Zy a*D+O ʓ2Cjn+dhI #D+OR !Zy•Z՝|' m[UʓE+zUD UMa Ѫz4Vz0Vm o*VZhDDWf0Zy˻Ea-U|[݂0hU/ESD+D+_pmʻqnѪhx#Z[w wڄ7sVuP(an"[D'ZE^[aX[caa׉hh7&0'Z0A8AaOXhø gnʇ U?F+f{V>m^pVVR!Zc)p6V!Zcڣ۳>Ѫ:h:h>mFS{{U<-ZF+M:eLoVn##Zյ($!Zeרʡh_uj%fڢV<ЫhuRW:N#E+{V'Wr*Z\)he6V1Z\ huj^\ 07-..+$-A[ÁX³l`qAE JYC3+^ t2}|P4 ̃F7)B@3+ sf AynNoSb9]ڜNB[Kk .)] UܒhQnirTJr뽚e &qr q+8mF-nc8F%n5 +1mIQp+- Nܺ(@[]BV f!1L݇fDž - o¼ ŷA+Eқ\m[ WI=㦻-b;errƙbܥ궸?3Lׇ涘DQr[Ryos~[歛ܶR= n6kmIڅԶ,Biss`TfmIń T3lc9@hlMRbdb_ l;5P0C^[R ڒvmm)قH.TּP>$~Unh\L$Y,d5V4 Qͣ즩$K ō*BRsQ0?7I-q< dBH95;KHq *Ox r))~> ;!ϯ6$@J^6f)$5r!)R[9J[9J[()~ ?7ImI@M@>@J>MRyA?@e}\R$CB6HCI@J9oIl) )n \vtċR"ZZ"rr@J9#)n# 8Y@ۀ@ 8Pr7Rl5 %!< HQ.[9?x &y]8ǃp{nZ))n_[9ې)nc5 3mD.\ R<{,eoTRR<'R{?Hqf=;7Hqf&=}=Jhry{A{@JH)'Rb7Hy ŏQ@/Y)FQ3E4vd;̧e'j$־n[O?d?O?d?kOxaI$mzZWN`=[}[ ͭ^uBskGgw._Tt8}S ?4՘MtfjL>1uVqr՛r{M~k8;ӪXC6!b=+<]R׿R;bLnmۀhM%>"h9@jQM!""{Da3&$Pm))T4SBH(NqhpϓМC-u`nD'CHxKtvN3DӭuVn|St?):M@IANC%"&EN(rItZ$OKStdCNR#%:$:i]E' 3VR6D.N$:qlNZ&iNE[E'+E'L4$PD6NS38!'ѩUS=UbBGѩJT%ɻTiAtE3rONڃK=K :0ن{SBѩ}=$:i NGD$ u%:i8NEt>Du'N^ Yo/) {SiC)5I=%%)OI|pDLVG8˂^G<[<֙j:2:"DIGmL-zE$xlv4- &nDc<_I&k "E3x3|vn437՞[uKkp(r .:.'R" Bdym53Y5\4N~-2)^&)eve2U ̮ o1$[& 2L̪`Yߪg2mXv3  \ɠyj%yr2*&TW+rJb`!)e b&#e e蚄b&2XD>1'm5;LV Ѵ|7ċ}6.U MHJP2N !^P> W GnhFn-*(rk#sȭ}"7!\`ȭ=@!zdKw#\\Cq@.or~t ~*gf9{fOi=Md%{(dOuۚD{(bO52Yž&*D6(_O2Y&jDz\Oin=Mdz(ZO5id=MTOG'iZ=MZ4Q&*eP=Mԩ24Q&D 4Q&DyzNO2Y&JDez(LOui,=MTdQzIO%i"=Mzt,GOi=MԢR4Q& e=M*4Q&jN4Y& Dy,y+d}e1̺,y+ d}e̺,y+Kd}eMɬg㰹 endstream endobj 93 0 obj << /CreationDate (D:20120828114508) /ModDate (D:20120828114508) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 94 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 97 0 R >> endobj 95 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding 97 0 R >> endobj 96 0 obj [/ICCBased 98 0 R] endobj 97 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 98 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 90 0 obj << /Font << /F89 13 0 R /F15 8 0 R /F43 12 0 R /F44 21 0 R /F21 11 0 R /F86 10 0 R >> /XObject << /Im7 89 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 1020 /Filter /FlateDecode >> stream xVYoF~ׯ s-I$VPIhJ"n;3Q"hчB5;|˓GF+&wQa"+}4E$.^Ml&azGQK%3Mo/*ɧDkh#k98D\F:JSY:4l ==ψ&n<Yo>{8@,iY_`^~4.g=_))y?)3v'焝-WD#Ja?dEMe2 P/% "6 rJQݲSJ9A"ǰ62vK8Awv-S(CBiq贈OF,o8D 9{)J:g\k&+B^2mC@e9u2-(6Iln}4u=: #eAPiGH֩pre뎒Nfz n@x\JhC%iV%aA˱-%sw~28F,Ȫ7] Nni;-jIfa* d˖'AJpfyӽX{4fE )>m³J0&  ;guhSbt 0̜W鎇(BgM"r*yVrW {ARl(DU)kSAo1oxqEJJWr/~ѵ   o9ON`,}j;TtvVe~P<69$ԈZ*Z@_i|m^2B#cgwy L܀]:伈 BZ‘ٲTBRix[\ڻ03l̊S޳KDNB;CwJ wjuYPeʗ-Oۇ͡GhF9݊W6yp9ȯ$2VQI$Siu5Ch endstream endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 595.276 841.89] /Parent 62 0 R >> endobj 99 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (C:/Users/ste6an/Documents/EvdWork/evd/vignettes/Multivariate_Extremes-029.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 103 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 104 0 R>> /ExtGState << >>/ColorSpace << /sRGB 105 0 R >>>> /Length 2269 /Filter /FlateDecode >> stream xK+z)-L,>vpt, /lp%;R >TU9r2gdWt8;K 1ců|חt \܏.!*. j-dMCala.xƂC.׸`6Vt&=kkOΫ#9_|L>H9e0(X6gz~ϟ^lmS]J=6>`g"/,(t?<~ǯ~ǟ<FUgc<㯏_?cIɌ%ISxxבVO&5 xkm>]i*e UG%R’ [ 3SvFHVB ATߡ2ꍆ]Mݧj0z2 hďɪSTt 3uΟ^e~2hI VՓ͝{x^LΗjBk'muQSfò]<"AW<%#ieх^{M<#PƧ a%-|bbMYA`,4n'u I8":>':AyqEǻ<L#5.ON~ 3 Lox2Z]FmbTd|9R.K=@~vb>a~f7&2RUP^5SkXl.]b#F ӢlΦ1Y|[z?4 F ~qejhgn:iZght=$BփLc}~ICK62UcDf+ 6>ԋ>Yu~8ͦS1^?B󥮺qjM yD#L~ }#z|Y h QwM?_EX=6>ƶlD:zkV~t}~4[Gx|㩢la,/X91@fw ], (\M(PYmIJV!<À} uf.;,`n \o@ (`HPj=_׆>_0tP (8Xh{^J\@!v,m@a] (Km(~le3( (7V!N/EPxhPx`PP6,m@;POPpv 60׫!@i}JVO'P64}OJ;@x(%n@i(# (W@YڀRvf;@@ޯ'PsJ(xL3T }W6,m@ (HKفnP@tz=@axmj@6 сc@AYԲ?[|IPh'Px-Po.dY@a۶ڹ%!v mg@Iz/Opa]=880G+'86pcЏx 8٘q:8'n@m8o"F؛Fc | Ƕx 8f?K87CX8!98lo:~Rsp}I88>7p98dooشc 겁CPfdэ!iZ>:. ?7ۛ~ |>c ߌ ( &g-c ϵCM _ Ϲ,pp=gǦ67Zf7p|,pp?-p2Ym^B#- oY`v7pK.7p 3p08xAH8X&d`βx?7_!h=8:8߸}Ow|~>?,] M-a endstream endobj 103 0 obj << /CreationDate (D:20120828114509) /ModDate (D:20120828114509) /Title (R Graphics Output) /Producer (R 2.15.1) /Creator (R) >> endobj 104 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 106 0 R >> endobj 105 0 obj [/ICCBased 107 0 R] endobj 106 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 107 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 100 0 obj << /Font << /F89 13 0 R /F86 10 0 R /F15 8 0 R /F43 12 0 R /F76 9 0 R /F69 7 0 R /F95 82 0 R >> /XObject << /Im8 99 0 R >> /ProcSet [ /PDF /Text ] >> endobj 110 0 obj << /Length 648 /Filter /FlateDecode >> stream x}TMs@ W@;8Pĥ\L<֎b8ؖw.ʳ+i3)xQf]UmŬ\gػ%{x݀ɧ5طBz F OҖeKB[X{2U칝o'c`J\4=Vƴb{@MYS;mCFy:VaOQU7־)*4Ldܚ_[EiRF\O{m47AC'~dfZVBC9X,~@j6K'q}|¨vhv NBŒf_1f8vlB~:PNN<[!c;? s:|`օAAܣꙗ]wtYdtgG {8kg'ne{#_;ROcVqrDxdIŭ2'2P 0nu/FRk$t]g9dI endstream endobj 109 0 obj << /Type /Page /Contents 110 0 R /Resources 108 0 R /MediaBox [0 0 595.276 841.89] /Parent 62 0 R >> endobj 108 0 obj << /Font << /F15 8 0 R /F95 82 0 R /F76 9 0 R >> /ProcSet [ /PDF /Text ] >> endobj 111 0 obj [306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj 112 0 obj [799.4] endobj 113 0 obj [639.4 477.1 609.5 852.5 529.4 374.4 671.1 1027.8 1027.8 1027.8 1027.8 285.5 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 799.4 513.9 799.4 513.9 543.7 770.7 777.7] endobj 114 0 obj [511.6] endobj 115 0 obj [826.4 295.1 826.4 531.3 826.4 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 531.3 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 1062.5 826.4 826.4 1062.5 1062.5] endobj 116 0 obj [467 610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7 615.2] endobj 117 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500] endobj 118 0 obj [736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750] endobj 119 0 obj [599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9 513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4] endobj 120 0 obj [611.1 611.1 611.1 611.1 611.1] endobj 121 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 122 0 obj [496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465] endobj 123 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 124 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 125 0 obj [575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9] endobj 126 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] endobj 127 0 obj [562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 593.8] endobj 128 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544] endobj 129 0 obj [628.2 602.1 726.3 693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7] endobj 130 0 obj << /Length1 1655 /Length2 10401 /Length3 0 /Length 11471 /Filter /FlateDecode >> stream xڍP./(^-@`hq)ݥ@qS)wL=K]BUYb82 $%tll,llԚ`W;rdjm   L b q(9<ll66 !);P8\%!^`+kחs~Йypۃ@2dr91\NQÃhqgx] ;;d Wh,Mk˟ x؁A./.n g y%[GßJ0JpC^`+%x+:X6ڹ@^@2jKb vtuaq7K,$! W;_Wqm #K0,YNn yl^Dʬ@n666^> 4f}#%oK ގGK _%:|S`6wA;=l/`, v^QbVyI eƿBG)!x3s9<\ޗ'GTv(` KΠkl} 䥟Aߐyp,ɸڃxg7חPLh ]/"`eO.2`O*& /v`*{G2s/KV@/#GJ;C,~K݁@/ҿ n7ːZ%C.Lz3PjE}|C mMuxK 3bOv%ޑp8.l ͂[a<_iBoBCWSæt㾼?Ӫ BhϿ5!Z2G1-!/Yb!)NkfpE{i?%\- Y0S}eo}DG0MF`C="cҥ?(`AaM5*qM#%D1 ;>dE}z_f]25((U*K,mc,DQ2VXlz^b2<>J!GfP|Qܚ_IC[дH-*8H`rKQBi{-7ҡֲH=)U^2ݼ-)K)>HYzI H|n`ZK Z&ٖk !&6ñ׻0φrM~$?"cSwP, +ϺFM4=꽑U52tC1p6&2M=3wrI37e] CG5z'¾P͇duLJ,m;;@_ dQz\[Xq3[]۝ Bf@btnmtz !$JwWZ0Pv]J%# )n5H8TSz.I5дgb@`{|80kq%.v+aKͿMl5_ܮd읆\gRC}]0KFc`mg/hO䶚B 6c:#Yoˑ)ʇːIAbCl]́9|-YƎ}/`94Y#& Fg $h0׋1Hg%8_^(VAdF:lށ=9z+#+ꎫ / "gm5Q&;uU ȯͱEpmiCqkϐ*UL>8W0ip'' :I#TK`޵>Gp^ۿG8ѓJe}Fx:֢ںIWh#%屐`'<ʏKfMj(0ķu*g!ͮpNaPN Zs:-QAN̛KDr81})w!gt0yב6¹/p=3>kEGcg97]zbXWY{Qlj^&rix 9xCWc%#|bt73 opcWB+˂cE%vٛ0`dO9TDXxiŰeyI$96}*јm026\V^\:1f55Ij2tt!A jI-,&.ǑR*6u/ d"`W፟A,|k,j LJSZ$m6r"6UAAǐTK-ABlBW6-#_Y[@~.QPjtYG.Me8.w[fs:?0W'*@N~*' 'C:;jx$h kc&b^b(԰ClއQQ{|R:zTN# uk@IV>E)|,It`A&pWjFkݾ$[ orq0/7z(('$$>)§Bu`,ζ̭ޏLȌDD' ؠ8~> lȠ) C=☒$OLۘm(W*FqGdx=3Ӥ?FFϥi[v[gOdt]D߄:B՛:#E/tX>ZIr5yt&#ɭW|M`ViAQ3y 1jVך(Q .!)w:)]{7i*.zlz R@en;pUc+EWzVvC UBնIg !0\NR&mH&gkoK Ӻ¶ӝKa0wKQHYi'v =ރ\<ðňi3C_|œi!gG QfϏ[W(k<3[b^e ^|11r!]fR~շV\%y˲4P*A=ɤ\ѠS?8z(bBy#VlPoĈ En^=󚱛~,^*anu-kC&Ҏ9 aR|6v%  a~>\ %Gʅaeo*{ j. I/?u9EImXPߡn< `w65Qm0e/%BPC'~cDuE3QYΆF"UӰUFs}d85K@Ih3/^DꙔ85#)HXߌeSf{BoEbǴy>ݖP.8]14N9oP!e =7 o~Ū36kUjjAeӓ7>H+[,RwQ?iD(:yL>eeSjGu=O8qʇ|5yXH.EEVU#Zc-ۚQ -Hr;8Li v!P/IQ֞,%eչ[fIpnת!kabn>'Q5Y3W[U(&>OIMe1A_o=tV1/ ?t{ C :>48ZR JJ۫)Q7j!ivn mY:U&|XFp ϕh5*4Aٲl*.JܗP#{J"cyfL`!E~g#X(PJj[Xݩ#$+~CfnZ(NelڍePag\lc>E{/+֤} {ybOo`!!Q(1]WKk( dA)8.F4)ՋFz4NOH'奦q6y4)~os"H-j,"n^ؙ@/!m En]ۥ/ˊ-͸dwD vfk.5O4 ǧ)Z*V%"ec%aK Y\U -ɀ=1;EtQ8x8.Z> X͢a>s.TuQa[_8K}9>.64aFb!ϖbQHgfN8F$W:3 ocɔ?.0iZ 5䲅DV3N߼eI@̳4Ip6_\:-fXŕ#M5(;< Hղ_,(U`EZ̫\*|D_{2]dU`﷚nZawm,' ~{S\:_ΟT 4ahëIzz`I([-%UZ MXE@r&өȢ U$@2 .622޷V& ~)r#E^@ $$q}U9E,#6M/=`*kW;} k Gi'\ڒ˔v=]L* 977;Y&eE׉>Ի56s:~|ÔrbJYF7TFXsy:Ê=Zݬ*sp߈.)d$%ٍmuP@]`jSm.TRLvo`O9ZGsYG/9E~44rjO==SGK(DAGf<|l[VET&t|Kp~=(^OIaJ*bqyigEK?)GJfxNĒLAC 1rB_pM`JT񟁟{77nrK_s&vׇEۅǕD!8FS4Z>`D)щCNy.3n;kN. OҸ)6_:Kl]8Y0Ν]+jgIJQkg_׮B۷>Tz]Cp0?鱌W){-ιe#UUyh-Ps+S2+͓MQ}0: >k;1,qaٺdܱ)l*z:NJ`0n M3dX1+ ,9t=ZGVb뇓ZgdmhCnCgnE.XЙ*fκW.TC,N\ȡJ]#I~h>J)ۄ-[ZZȐƇzbe؛ #!4Xؠ{@9?kwM 3˰st:W殦SaPWC$kv{o\SB³O͏cc Țso.+$-H==~ԾKK+ܔmq1[oh8Z|S>1J K;c-Dzhvz>+ԈhkP#ew‰"Tx[+$)t;lbRZ.Bu0*񀿈R|ZJwuTVg b5I{ԝ8`ˣK͉JM̏ݲzPWNd玬V2+Q=g7S#}׎,*QWC0*!K:LwLCM?}5rs9XQ>a("cj45Uem&a8ڭQZ#Vf-:N /?Z5i_Az ^%4t؝rNY/˚OHZuH@7N1JzX ~ =c"&f]#{9YYNW.>^{L8BmZq5tf m4zEϴϹ%}IMWɈ;c.cu˷_֡՗mPIjpOߪ~)T1QΝ(olJ$ /gkHGjm*u͙Y7{mԒ9e57Unj9hes|(}ۼU)͑ Y9.U*R@s rNT6BNC 5]w$1Pso,.z tRO_?9m%]";i$1:1Vl`,zV\4{\0N](޹К-K*Jj|nbxufc*+rdjC5(_ٗ "aE8ON Hï`0fA0SJ29Y-Y'l+?~ϗ9,Tr9Y?PWy31eP?2WZcg^}c{ZE!u&b'YXTLwd=Hu{[Zew ذ!z#]VQUIvQ'֥ӭgA'(&vR}ݳ>fZ)ib݀k1L(̲vAP_ALIzT8UgmeʭhZk` ދ4~]"<^j K=4\LiYb&j ;Y8B ѣ[הT9I QLD{Qt6C"aF1(wנ-e4'd z$AgHٛFG :T, z#,iTÌ%Жf?d1ZhUsD:a>fMZJld٩Ƶl2"h@?}}4fT:<"ӲJ8CxMxiPⷎK4#YK ׫#;Mucº=kSƄWR\W\j ܓ;US҈i0%)tX2+]R"5'l`gE-{ n)CZ;X1o)obpd(tŚ"_N AOSbɛL<$]gG؆H$\^iK4m6|yGp^BNT*.?H8Kae^#ҦӯlLӡ%mb&IUX\mN̎!' po6.2=ab3:N~,}|;g1o(>Tހ9!:!;H1G&*cۯT*F1u:bG 5RAw_JiQNcˑŹ<5 &A_6gMR11Wwv0VH`WOV>3cήUHڏC5EvӁm V- PS|Ѣf f^6]67K  $TJshwH"8K|NG(nL52Vc[\B>˱#pP_8 w8D߀\̜Lꌝ0*NN"=9[2 ԛY/[re4W #zPz _;h'0?PL~ MnPJő [L|*w>GS>J%c+ Zɢ-DnS&b,. ۷6 M rm[]Z|+-oD3: xw)xBv'6wJ|B7 i~ xg=QVw05c*k?;+`;4 є$_< Wu%GLN5h`t|,ADaTrj:(z3@YW_eS/M kL?L #C%o{|+a-{J03*߂!na3ԑݗ.y:rdvXr *sژi8 9=%C!F hv lXUgπ@<(n*$*!56w/ ؉X{6/yN?F`Rg)S> endobj 132 0 obj << /Length1 1896 /Length2 11875 /Length3 0 /Length 13040 /Filter /FlateDecode >> stream xڍP <[݃K;ww,s={vޚt?P*1ٙΌL,|q1mV6 ; "%:_9"& d#M&af`ȺX\||,,69$]Af&H)ngt~G)-Ow-dj (;[m2LA@g A#`ldldh!Dp9[TN@GWƶJcB[P3wv3v6 S lteǀWsL@ Ʀv``䙜ݝ`? m]A6&o %0~LANLN ?jd#[%fv@9MZ^%s2\5 _6o"d@g' 7/Z2@[ >^v2> s+ `2u-@`wXƏ' 3xc3kJUJ11;w#'; do;*:?evֽd6͠h6@?by t7D{")?41ۂl:#hP7ʖ$͵ɳaS-|XG'x- 8? E#bT~v n쐥qpAUüsvW<:[eKl1Z#J?x2$s Ιmf#+l<=Q4{:[j:S'>.15$^,WIQlhd9\PG iǢ@ύ}2XSMJ}v<SϬFN*83Ala= 6ix}k^DLrQۡ}~#d] O@ Zf}:x$,%ڣuh$d(s/ >%xL8f'{ gS/SCxB2.;wuqARx5AcU21xdg}j1InЪ%$NY3ٵw3N\v2pW +  ;W(`g%!o 5ZuX ѧhUo!>RmLloh)2hN*u7G1Bw*UUn-Cj0W(٘0Y?ׅ>Fys0eilԠbnsLa^C# lg 6cɸ]ߛnAUf[HP6ƘNb7%Фb Dp-q-Ϥ|z/ݖIS%ok4G 4[Fs6vwkSJ]o/n:)]pXM\Pm"D/8c|}gsytG9W_ձN4Hh~`a. 'BS gȠ~}q<ũ' 3/d+?Tܺ>+q/oGzeiƼ§w%ᘤFB>R7B ;))8x4ea# 1|2,}K Ë$͈eLs& .56 s? XXzt'[~2&3fgSYv/(|5V򙫙0=od6MG\] < /A.@ޚ6Gl '&ix:771 3ڹXxIjҟmgF t쇸okt} \_WD`1<,HV|sQUy5*6sUu($P;(S~pv\o'f2ti9+k}vp&ŪRX戯?r(b~u4x C+=MTž ~֓ TeֺGe|Pbl$SKW!)sNŅH#2;7F2zkBSM)U@9:-Vjg!FٶH&afgaIq#c{Kb2 -.sJ2 :!ddmId1clx${\n^hkU>hⅿ"D瓏*YI* |ɣӅgHe@#)tj>7 iM.7H 螺*,i7tC.J&~c'OFe8 aԑ=k}\?%),qgɵO#A\lx(".. s\?~f%"b]IH{ ``4ԓ)۲>[Դ(>2CB_Dž3LG+b'}NΰDEWlػ8rjDJG|nc~3D$Cgf-~x*r^c!ZfB-v%tDP0#MD9A$ֻC.UDY{䗧 jQnԭk1-%jU:FqV#uႬZnm#L4d WGNz,ZmFRSy/8wpz|O!;QZw t(aA'R3H_GHsVP6 =pa+־2:r(<$BK 9c .ju;>B9V *f&Ci,r]ڧP:m)7I>h(;3GØ"uW-$2B\1M}ክJ?JT_;XВe2<ƥPNݾ\̟ը3h9rq11njɋJSVeո[&H!)JZD֓O-5z[sfvjǛ$># %F52%cQVT,ō`;ps-o@"wSgX G!1&){V DУ(F.kkhtuGӪm)cf5W|~Y+Ti(:/t}h}ݴM" cI̕[sY"sm*wxۥ4#[d߷殴@ |j:a>6g<āQ`|a<_oB}ꖎ\!ufSK Z-O!4%!HVd'M`)ͳ{ 09;)38c#5si ݞ1DԺ5Fl Ai0vMӨЭ=x_CQSzVw=bcdKe;zavZ$Ur {hlG3_&QBplD;)TSk;yYZԄm cISͪz})k#-bDJwX=+.B qCkh+D/$zY %f,TJ!]K]%L^HEQz:{PYcn (ҙC7=Ibwx4DVZ K%#F7umf&0 ܧ< y?ymذzutNW!GJA0wh2m)iF(-''ڤOp'–}jhɸ(s|cizCj.#e-/˅!ɴQj>S/DzaHNsVJ~z{9CNYRFy*ʯzYf~H '@;>;! -'K#˻ISڵiJN͹K(h 8h2vsuUxןwǛxCҗ:ū.M%6vMѐιR;?~_Sz]F&94"7m nق~Y)%emJT5`*kuPyCpK_3# z Hpe#NwEn;S0mQn[Ia肶.ryx"HV\3XIN`T.2s,udH|Hqfjg\UnJd~gR=$9hzd!,X﷞Ru{HyFuvSZřli͔jx^@E+f0&'wP6BO9XО!;9H튰ZؘZ-!Q~ݚ fEDꪝX <]G~N:^HwA^ƥV Btl19I$j/?ܬDžd3CE}~2D] (;\hNff,v6KĸٌGZ(c)EĤf 9$up 'K< *w=R;^WF?"ކ&U:eEb+$.Vy0zv;.f[[ {.l e{dk-wks_`ɘB۫4jn4AtuG"y܆NOⱾF;)ۢkf(X7\~.{^l~ LFxX3y\]1[v=$ 6gˇq%8HTO'H1gjüHlQ .X⇧A3퓸:&mI㐐F^J)&3Ȯ$8 AJGL."%Κ 8jPdW:de_ -|.֩ !OCWx8a>zxՑ̲f>mIW`e=eX\g|OgT]ץ`{|Ҟf^?QƷJ>Je̟Ni=(mt-OTEܚzT:mp_l6{6+mg5٢Ng;+!\E_`=;$Er@ʛ)`7%oÐ0,kl1W"|WsuI3-3MYujPh25wZkoc`+C\Q{ :%7?̀7߼_tKnr@8AO;fkCYmꄑ]bjF\shrEpqo$>pqxUœeq&Ċ{V̙+Ø?9O+;(P4ZT G/1#pA'2E.Y5DTԹTۈžF#k_ā&ĉ.;}\ n7/@]Z MAy]Z}v$br 8MMZc瞩HZHHc PGw2X55nG.~@e\RZpns.*M jGxiIF PEplR{5g7!Zf8'i *ax,R@ LvT{1'NJRV l}a.w>˳EpŌ|4I*Z.%N_U:j:C^b4-Jc$z(  ~}ѥK-\D9džGHI;[}G62[B(`>F1 &Y fmt`HR1o$S3(*JOHZ"L+)gcBҙF.X_7lלċb+a׺h6rLžC :| \ȑaW;DL%Y=mg nBh&2([$@zID%Ĉw*MW=a w,#EB?x{ !)F Mw]k"QI bazB:Dꨘf)5-V] PT~l6 ORM~ 2kg T5 eUA,e&?ҳ>X[A#~0Q1v?qO-' 7xYf)pċ~i5g -zhR;J*pd!/CZTL?^ڀ/SE]0[+& ҃4#n@luMS)fY^ɮr\@vU^TFT"g͐)W5S3\LF;PXG5SA?GMgJUz/p][LJs\3fB_˵.<6xtg; SKpX߅[kbs=+uBM?zv%&\[kU8wP)҂$T#E5D[,1/Q26yd=1aX /K''/$@ECN J)X"q[$_0Yͩ#RK/w\A܄&%B}HzU kλkw#WO͐7JX`G,D%_`hk<3kBRwƶsmh~^B7_J#Mt )@4c@%.t+'1>źHU{*"yY57𷴏MNb|Mj!h+ŧ&{redvRWH!)J6+_g%=>' uQwNld_q~%g0s+=]~|9Nj|] oPh&AɇnIw܋]V7Ty< paS܌x.5&aVJKA(sp$A7!hyRbT$jS>b;wc!Z{PL>K,Akzk K$MT* Ϯ:B4b7U,QhVL}fB (1Xfֿ٧ Е9@|Ƈ]0j'Lf%CWNfJؼCg щ'aV]'}OD;o!:gm!E?W]ݥ! S8ƞJˆ u_'P̃&hCF@O&+CDi㝧VgOv D7ߎkTPY%ѕW> ׹P0Wf"\4AXwnu%~  K D\;|26aQĴJ԰i᫨SdQ ZlϬjL|} WLO޷× IZV9B=m!{-#x&*sb0fĮw ȿ7f䥂o+Wv1s'Z9 Uǚ{!w1EGs@2QS)3^)b\NeO549w^1Ө#Ӽ5ߕk|K/£ĶTAfދ};1E(r+\Β*GBBO@3G1Ov"޽9,\˃qSiu(7/>ؠ*j VՀ8E}8Z΃k z@>45sk@&5P=jWlK%Bx)2# CrFF7 qhk 6^5AZ4~U*nK& 1aF.dvuN]ZGPN퉰-|dMDG*[z{E:j/,1k5 QUnHwJBn2*6|5%Kۇ,Zmw{u{4N0V[ٝ6&UALVcJh3ȍ)?Q3bk]_Hs"-ӢDjBwcVfd=q6AOhF6L&Kԗa':w+ .G0B(VM/mL qa{ȟrǠL %p~HgEW4!Eﯖ~(N6ޮEoħY߾uŗ%J9vGRWx/ϡRO]5{˳L:7<h)k7`DkDWyS*hX8焖Z^/7E_ʰ^]mD O MDg|wD{? !1έcXV3.~|7QfH_^4[wj΄zOF9y~IL E"%K)RӼG'sA"oT擞\e>=g'u]uZ(d8^|eمcԡ$ժZ6 ~-o+DLxT`8in5iE iPۭܩPG87iu!9ݙS/=}\ȿEyC`f [TUz FAj C/Sz7}|4,Q-^so"]-hփޘ:h2d pCC-"IPz%E0F,21xaz,hhg*Δc%v~$ćS6\-(juWzwmw%":mϲ 5 ˯1C}c{JI |}-M0#pwh%ņe6ΐ0.(]0&x[5, H>ML!^7Vb('Gyƒ Z_y*¹sиki M;'Zy *X \-,n) @Rbd1mZx 1:n LS&M9!߹tܯkݚfuF· mƶ&$5'ѲpɫRG'NB(%Y_R8_Iܽa޼eP5*;_`0&gE[.N]d5%fH99;^ z޶#M캛F]yַ˜d&R8I- I'ÉExTGPy#7B0GV+D!op_P^PMٓH{rƊJt7GPb$X}GIy_"dhV5`*Q=UhNo}~Ar9z̅Q [ޓ'ծp<՗şoD|llFo^/ןuvVM{ efOcT\ɍ '~8& P`*<7K,جC߇ "+Z>Ym0&')~MN!#?ABCUSҔ"akg>|5zo? r0=gdtE fp>-[-#k B*ItaP`?Ϋ#N`I\wAjBX8Z$8Uf:NBՋMؓQyAs#nrpDƢ_ Rr+5>nJX7Hwp@A1!.3#i_DŬ_~YwZ4A1Ln&|qM-;wkkDuul(WW.MܿB9d>6b`V3a :2p-rw@rA6%坂|z?Cl~.Ok `@6AYZܬ>A؜IA @W::dOnd(|[khtx-KnLάav3:A uXE@A%Uqts옢α}AEщ&zY( i)B`G-ymG+X}2I}p?K*h.m[k>jv-BSLQlJgTЊy {(IF6-ưXo9ZQB>R.J̻)(&Zay$"-E%soI0أ.xex#8ېnRjX|> endobj 134 0 obj << /Length1 1486 /Length2 6553 /Length3 0 /Length 7539 /Filter /FlateDecode >> stream xڍu4]׶ޢD 2ekQf;- ;Aѣh{aa疳@0$7Od @ΐ,F;BA[&x @q>>?D8B4y0;w@fD~\ (hی`3@B>&Dzyy\y{iv.ЃC[/- 4/@n! [3 ߺxl!mv@ p@ . f:Cw0tq:+1+l..ҝ}x ^Aavdz n5?[m$@O_DXq@B~_[ (W+Vj}AG'=Ff_#s~=0[8%UWW#_<p B~?۪Tb=xi ?sg-mCCl >!><]+#eg8_\> 큼Mj k5!PFՐ!; Po vmxg( ws@>nt{V7TᶿƏ_HB @>ſ] P9xno/ uj/ Agjo ? (J'N2qK@n[=_7L0;K9ֆ{Ž>"e85hI^2 T.uۉj7nߥSfQ;rozi d70yQ~[CԺFqx8 b\Qҗ7{tk:Y,,R%tܛ<ʥvDgQ)ʚ?e (³|"XsݳF>VVR1;>j|mWȲ]* 0T^y˲0Y(R~ e_P+ KõY.5t*[R[Ì&~ӆ:OPN1 Lv- @ɯ` ].{\oRC ˊ[X 42jj؄ufyxkE2|_J"v5ғ{gA"]NmJgiS:b֤G[#;RΖoEn*=~.3O{(`Ɩ>|yUءa{]v.{0e/Wyѵc)skF1zPYmBlk;\5zZŶ?MkW*NeO"Z{'Oʔ؞'k|1+1oi0仰ʝ0_nz^Q-.-8[w90ط7}bMQh\~'n7P͙gZIө?_1gy9[GJ.[6|̮r5;/ ̬bj56r0%yw`<߲ɺIu* {=U}Ms(`@=@S}!)jG`.i>3gV"Z+#Zo|V&}=^.176s Ns$#4v<7 72g͏RK5N.u؍>se, .') RDa? hrN&織Hsp6TY4߉T~rխ{u@ ~Հބ7hΑvAŊ:cP56^עَ}]qϰ*N.A+Vq]BܗAms')=(9sRå0ΩL[`4T48+<>vakveT84sq,ɩ4I e4K&qu,s"ؔ{8${ْ[q'{K0UB,5KřRİ#NU"qzt?( k:Iq~2HD= ^7j ovuxx[t[ݽ2R]6$Nw\1Zt͓%(&j&]j ͑F"搸L!X>k’KBgiJVؐViyQзn2OA9ӝL!I3`SuJ`>[+]|9RsmvUxGK2X_!ăiK˲\F(uY[cV #;B+3]<[e_c7Th6TTb^+ˡg8͕0%&YK:[.4L fL|au1$SA4;2OB]0 n_I[fD|HS{7id2`ʆk4C<,,nSm9XWeM?Q*y53gc]^% |"lbA{~Bƈ?T; ivOA5?mX ʯf/׋ shf!$i!#nafHxxu6 ji2~#u-joANZ<3ۦϛgf ȿH!i2c&ܽ89WoҒ!_ G'^[ġT>:V͛Ir6%RNSܧҾz?F|߄4`nmFHfv^`W4dkAI4>h[GFnSpc_3J?s7ZxJɥ w\'팸s/F?XY7W!4IU˷@OśϔRcnO߃8Q} aDn|L61ioУ ˖멻\ldI*AFG#~d.I݆k.ʛ<(z5k! o溇zfhl"ν:R-BȧhVDh:W5̶ZsC2"!~i&BZ<=񩦳l⅔˄)D5XwS}VS>GN-6R-&o,]SY#p*sayq/Uqߠ#.'i-:TT ׭J!$k(yʝ՞U.%}n:7۱hǐ/ rB4D(Q>!*ֿuKR3nXZ[P6PУ[l{ed c%wi/8Ac/ǹ1`ZY&1`eX{rRKRǥkA3AǤ*r_ˑi?3v /5{c5|( ĵ׮'d RJ|%һXIVDK9ZFZ5]S 3<ޣH zRR#En5꯾$?ۺvQ%]ְih9 ]cy[MGK`UVt`k]5dD}6v~v$6{qqi cվ {dM\M۞ọɁS;@:^jj>},rCsIL."G4klkG,!Wf03L@a5.\;nBy76!4ilM>TW`i7 :zF;ČNnmMH 2Env`z&vR8+Cps*],m̜>҄FIřL4XM)m*q.++# s L!54pT ~XM + w^H7QOމ\Ʊ; ;ʍs3up*** g3(-Ĕ׈_<\ EplUfgb-VڴT*tp&hWN\CcSD}甶?Epy1fQ{ T;{u `+ұ7BJȔa* u^&=V0w / JMJ5|㸆2UeO;gj.'w[&+>vL&5ܠ~}ӕO**tv++z0">ŧڬ7F_Nj*,>~5 p/;ޯόYZwzx‰i`, ~b _6"Cyvc`9 S.~_5bY1[.I 6bݣwD(0ˎ,".ԩ0 rKGԍ#bs3;h&}N0@Qk]4֬gF{dxuw"J6R/$#OTQ#~$[:-A~q8[_, $sx:3("آq-}!R/zdQ^9%w I<^sgg֑m8,1=Ny/Ӣ><ӻW) >r^YIu*+^hK+Y #21Xe~:vu cǍ#R' OUApϮ@,̔%)DhrC c]}mc?!p KjQ~@%!ǬV1+Y˾$`//ӞEnt/ .'I3ukIIq 0Clk5OiJxmffJϬD)(yk+M5[PesgQĚygJLtxݙuTc;9E2(Ws.,8@"v!LW|"ܻښ4%>f#cm)Ii%와Dtd;ͺ; [~ǧɻγh:ezj-!H#H(* EϨFlSM%CMfQݚVip]UAi-Vi y1"N=zȨ&8sxQ}ěА&LM埍#k3ަJԞu?щ|xeg;'hT7o.9K"N|ʂ*Ţ[ؙ //+ZLWm"ʼ\w endstream endobj 135 0 obj << /Type /FontDescriptor /FontName /KGQQSD+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet (/braceleftbigg/bracerightbigg/parenleftbigg/parenrightbigg) /FontFile 134 0 R >> endobj 136 0 obj << /Length1 1825 /Length2 11672 /Length3 0 /Length 12838 /Filter /FlateDecode >> stream xڍT.Lq)ES"E;w+H`ݽXq()V8.33Z|gI(* ` ==3@TNN ĂJI GJ@xe!j ?ĀφrP+`ab!Ԗ tr iRjb 11G aK-hڛ-3-*P#BP[02:991-&4N{S2l~ Zjj S5wڂ  Q: !>wWvFk{;;y>fq+(leo>1-]?b2Q bYl`gdbm`g#S T]({pZ{@nv@G0o#Tffbd0@P,o qh3=ӏ3@P+ 14_-:YY,Lf&6.RE Q wN_{CgB_y p#(WoE4聖 , `r_S -A,W+e|^a+g310)I@ Ed4sX@P;ًtϻgd|=Oyo ~^C ,-ψ 02XA]={`-q2%AF ߈Yb0XuF1;3~mfN#=xeFNH|;X ̵%nҎ0iG߭_X$blHK98bJzJViOM7OuRǷs3ސbY/$fn3ԻR ;W~Kȸ,Lu;$IiS,KhGk%,Vd8@YAlq;M)l4P>o ÊX~ GqE(V|ͫ>fїӃ+0D)I[RiAn߭.ik=5& aAH,vޘF3xes!2wsVbtWdڭdOOP׿DHVo{}N5ޑneuOw$bh(A,N&? \y\B^̈Jx|XSI+6ftbAiC/'-c#m*&_U0.&8ɦ*9T^֏{3z݌>jَZ~X=1&AP=Lٗ&j:eA/06P#2m(M_qc{wn|kƁFmˠ54].$Y`xc6eYr'#& 5sقkUs)ֺ<+-[%P:o^[Nj><;χ[G\r#(ڥ^:ױHخ8 5s#euԠ7icTSR<ÆWA 9~M8Om׌o=ڱi*U'5\jX0)_Fe4 LE0fVZBWF)K=>[/~ b"9+^u! q5ZAdV^*FaRݛpdvQQUy$8 C.y8)j$* v%O<|ZnOFRprC@~,F%1m7G S=ڎ2_uBpjsY?v:{0sWf6`kzDqx1W~ GZf9tj.hq$VDe/#v =Eڻ4CܷԵbJʆ}v36 /&nRW̄i L&VPTBW#6RIhSDD„&77韗 aM+ k|(*taZ0g-`x90QxS;=~UVKSf0ðyw[͞vֺ}1jIi [Տ$V.i`ާ{aPh+٨.B7esصgY*(^rZY6o\ޘk)*nj).SFhӡ6MtG[ZR%\/UCYFQvs+~%GN<`rb9jx1}*rӐiWXcW[/NXig52v(N'O3K6<.{(,mvpr b=g0?$pTg͝t}/"Q %臌v6#<ճbA!q[6ܱZ4J;a-]*.wx#l BLG8F]mWo!=tb2NL7SGp`9cS.0!=q})L_:ϺЮ:#ټ]Z8jhmeRN]8'NJneYkI>L* =sE7P&}qR}O)gS`LW*jF#Bav>gY6:ٰt^m1Da쪅ERDxQz|sߏ[J7gEpv }\[l0&(EdaC4]fVf%3'F8t |PcS⨿e~%R@e17<̛r˰e<۳ퟚ&۱?P(Q,Ĵ"#=~ AC\~vj}I8[j|PTwUw^ fTf#,>̧(GJ[b:-p k82].:H $߭Wb:Gc^A2ÿv|b D'P LvdV!؏Hy8&7oNȜn 9hx{޻C|/8hYU&ξTnZT2mb]ӏ;e01vo-x06U^n<-:kL¥uԙ9bhp6&&, &ROBW.$z>CF+LC*Q-¿`Mڡ H=57KNQ ⬕$dlqMUt0\*v\ҋmAXnc߬ooao(9qa_зBZ}\c2)w[I5„K:Lko>BFJKDq *p Yv_)G?cBHE9 18g} ~L/[mV=X:/ubKSz'\c(7"j2u4k9-'*S˿l=nxnaSF͢ܖ"&ΐىg&=2a͜xu| 5Ͷ qZU5YH l85k+-ϥ6~ٶ+a85޾h4KtK /BVJtgü1V!,.cxuoɨpg&X: fdaeuvK]|35I| >ΰ`ZH$p/kֳ֨O:F`ñO> <^orͣ/S{.ӒU),sUF۶cnýܚMRJ sT81EQy6mAqew{YB*ٷh4Ouq=>O8 x%=%|[ceW{VGL}*ŎKL*{e}yQ/,B=:(H"MBzV ԍ,`7i^^\*TU!#Bȵa@9D|\*]aŏ7)h/eƿ2% M*Y)`\ԃ>W@T1(1LYmE~xG· Af" \?EĐhGϷ!Yjݝh 0ʺ @;׮A:CkնP!ޏI_FDD(e83Z0-g1k%sfG;F?ՋI Mď_@֜[6.|}o֝%p=*\R+i '3ԥ&aE/mGbQ1Kz4~^BIB%%bxPA"Z&@R+αIjaćx-7O>ٱNPl-{fzWZ;},&y*%\^Akm \dȪzZL :Ir" hÉ?M1a0YW֌791O_}&% ;M/Zr/TJ0Žp}{]{622,Oo,}3G_WP0$ƠL$Z0tȄKFW ܵ@Q>I~FgMji/ީlVhwsJ `ä8V$+.t:s"9 n* 攲!4;yG }ϓ&E!OӉ}кyJ!5`EUa-MEG& z\utr6@>-DA? {iqCbՌ/IQR_.=[;AB_\ h0)2$\!ZFu*#L+{/341P{[[եFK=a [5[uRT;("G]惎^|L4n?fXP-~ZiTۥ E~+S@I $Hs{{/t+H ¦ a:ft>hbF+Wj%awd'ʹ2仈֕U d:9L3/@'vE 1?z[ bx*ӽp&,"?eɂ_ݡ=,w.7* jڞa(&m[=gzQRЕPu=bqrWd {-J,KNT9"ɻS.kod'e5b3@H|r -0rNp>2=K&exD BO}j /iƘ95@wd!cvlթ,x;o#.]]Lji(Y~:e~m991CC-#=צ܊+eކrzkxÅcɕS+JZoʿ?8jdB䓂?<~[|UIM y//:3Ǣ$ C+Qc~Y:O6:&) {Ĉh$Rv;aKq?T,{ G ~to  ++"XϺJs"̌R4LϲS-/4Lq¯tm_<9v'ZFT}n[ :aM8*)69Jp9\ z`#Osݦ|IrxLұ-Q. ˲:k gЍvۗ5!\e:dOCwߍڪ /ODЋIfe(ZhE_ fJy P%ҩbM@? ,H*)0[T x*9Z|~1Pr7hj=ͳ 5/˳!rs"ǯI71ҒJ!:x=G1r.WgΙ!(\L1 VK2ό pNvr|TZ}dj遯SXCv0/#c5d2[V*Ot%^!OGQ >V_W6e5UԧvrN(ivh! o(Oj$iENŸ&g~*eE2@m8de''"vq刓(k1ѰuR;)Ӭ9fea{_/Yt#x'XC!hg5Uva_Lryeluٱ( |Y?.Zs=bK'9?QF(Yg9e8b*A񕟏qDט};XO^-M'Up]3P`֨CJRf >=ӕlӬʇb+?bsǚ+~j{ OLT^GKևӇ"= uozFSn.Ꝇڍv-_ |[}"!4R GxUxwDUuIC TyIiNv`oERh͚Ja;2B{ߓrq[aPwSMKPlS\զ|(= U ֢i#JA؆$6?e J#dO{U E1nhzM9[3U5vţt=c^ "jY9ddLfRKç'Bu$v"O)}+Dj\2B\ӌB_OC7g Qm)SV3#[҄XE?'{%b W5Ξ6@{۽RY<{̯4m`6dswc 寷KDwV v;zL]`=oViA aov8rVGotBLa3;`[Y"basZ&$*SYMK3nimMzLA↸Rޏd# 2i25 ǑIו4as6jbՔ MŹO ,:o*+ 7uAf9[Cu_p6/@.ԅ]zo{4DLZɴRiǭPѽ8Iь0B*c@}| YQq2>Wwȁ/#_QTdx|?3(Ɇva%}Ef>(Upa JP#k7.o&+guv5O= ND!]vE?u B/Z"1ifEXZeۮ~3!j#&G{7,ޙr|)^@:'hnjtQ {tmsj"cp4p %\MfQ,ܭ{EPxJu('ЁvOX^(1Ve)[U ^>ݞcj/:4KD=J8jdꁠ='3)yS JlW`մ[^MU81ZJve1͇j ?Y/gjsL_iQIi~dTU;bUyz`&  *ŜVz{_ྑ34И"6%`HvBp'͊JD2 RL7q 0DR00"Mt9@w4C)G` \VHfXMh;6%LHrG "^]X%`JmjsM]r I6F'f@AcfDS37xE}t)uq)njU].y Go$((jnsڸ}a^K:s7g O6Ds,E 0rG W/XpSl!-fgQnGit.'{RND;;2:R.C#:9%'3[j773MIe+og>%b)~V .ĚcN"ݚZ+uQm>::K*h| uy>3%syJIVBAkc@]ontvq[^.؍'Gu4Hdz٠L x~үTܼ MnWXTIt} Ѳtd+0Xꨪ/7Vp1XsaG^Vv?ya@~ 3ϻ\\f'ڑQar3iqV?E,\MLs=>Rj63±oez%~(JBɱ)p]C Y&7 q Svg6ǯUDr_SPWx[(i7k"\sT7k)#/pD簔kSi&8kR]l0e6MBU{V$W!V`kn)OTڡgق`;&‚XJ/ =!У0'=~]2n* QŒ~6I>aiW0:3}wsz] MigƜ"Iڧ`$zܕS$8f oOwT퀛{f7s 5icu064DrUu`?wDejvtjt2=h!ܐ -!?<ٯ!Dec#PEU A5q$l:kcfC&msvo&B)qq9X~swg1 %z!Z sL3jern@Ij_LgE+as#q*Q8:VT2w9GxOR31jZ4SUeVi]8;ψbwg'_nkPp3$V*OVuk i܎<RTg}鯼NsN$[0fpBʶ4yPևSqׅZ<)/@2c.)YssL,Ioz28DD,ro8Q;K~em栮rX5reÐKӠCxuQ>1#4̡* 7!љb9-]W`"$&~wCx~^J!R-WrjhN ܑ PIej5ɚ_MP=IϏ;cq7H5Yi34bݘ 7䎔pi&GY`>fn YҚUY6,MDʼңZii넑? yܕdIІd$ŋCޞ7PҖO%xgtVd,\En_u3LSJ̷+@H m"Ч(96m^R (6ۅvԘۇ|d|֕}wH}4VK98Z [RfDzQ BbID:|_ ..'f`#+hfC$ׯt}v>ѳBtx}]X%e$kzcO9*, +}c;+h_{Ҍ"M\̌BcjV`Xsh1bn`N="p*,*M14+**x=`b"ZX:خ.pIG%߯ SÃejF}FUHJMLVE>OMͽ#Psҡ (göJ[rBL')(fO(Mc0qǔ4Kz;w(o|m@ t6K>?⿩{p {*HҳhLd9*wN:>4p-RfB7%0J $pxZ]+ԏ7u~ وve?>]u tST@RP@xx|HkGĚ矃콒\ ePV'žϵ%UV %$V=pl}Cmw.vVo{WLFn nUKZ\s!#b s!)s#'ۡex^|w ۨYò8I]&˚y5Hhѧ|tyWʈw W4ͼw5RN,\+S暢׽ W8y'੍Zi4Q3ƨ#+iJFD m_iLc-Alk N87 bl(=GbyV?1$#Z;$t1IBlA7Y5[Wn^Y *+ BmեpxgⲈr)*h)4!xオ%Ù;'{0cn!ŵ ȲS(qkq~,-ʭޮ/ևRasYT ,\^&B6jˌхR ?Y=Vhu=Hr2 ,# endstream endobj 137 0 obj << /Type /FontDescriptor /FontName /KGYKXJ+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/A/F/G/H/Q/T/chi/comma/eta/greater/j/k/less/m/mu/n/omega/p/period/r/sigma/slash/u/x/xi/y/z) /FontFile 136 0 R >> endobj 138 0 obj << /Length1 1407 /Length2 6013 /Length3 0 /Length 6965 /Filter /FlateDecode >> stream xڍt 45 Bkd,#k13 c){5Nc!;ٲE!-"?{s9߹nC[$Ɖ%@@u}}m9 $-IQ8g_j) : u0Ox8@"X^J@ ;b@ ' ԗ`Hw:w} E`y@ @}B90p8]Wzp;Hw$ 4 PF; (8N@#X 8H[xA +W"w0 Ǹ>(=ނIqb@!j"?W+Ў鏲C~0O$@oÿ% D8-FǢ "@ЯNB`>.TW!ljjo,gކ OBm@qxE VF"@oW!ooa}r RG\ } q9jH忭8q= h{"2 ?z;DF,5Qhm;׋CF:Uq'N N\A%wh8kd0, (A\[7߁h $ba_c䀒t{`¿@,{Ho$05+8V>pz/ )SnK=O^H4Κ%@jn9\[#/ ]絍8'}wuy$,EGCr;K#AB]I^WJ:-m/dp)n,5/ .H5ȸvH87s#*P3h@R ULb ?[-Fu#|;l>'M[lVTYIu6ւ& HZ3Zjˏ#ʳ;mMLQv}9,YΣo FQip q <c~7U/8I t'-TA,t=x%PKL[^MP'B^z8Q_9qP1F‹V KaTpfO㨵j3( U^'sjrLNK:xu]m8Ζk%gxH V3 O^K&$( {cW{^nlB[G*"K*e6RojsG݈Ny<>QՑ-?ľ9q}:%/d}=hcR(kqF)% nJʘLy_ `N›՛r*FbM</ӦZ:p3xRp.&ebN;V"v)z>+~\;' )E[z3e(_"mJ,>gn½o{Fuv r@z?H|rMʴpy2YDzV4/'-F$OڽW!y3ҵ#h5{բrbÒ7e]k.j 'Zo&x`r#~,ݏtVE2{ǎgن0(Y&A^qj*U\@T&{0ja 4;ܴ)5*ƥ+8LE6U`Kv.ƺwu(¼iԖg*fz]˸~=崰3Q:wr8e3e vX[~fj$)vlEjFL7v=7W&K_cgZ)Ĉkuq3Qg_%nSq]xERS^O{]-:\V,ybGV91G+ցg7*w믚ɷ>n`fD)xO86qz H|_N 醏hh3;PvW9L ŷ6)x3A"]{wosYO=ve;^1j'MX*HFc&dJ5_.r9]&]2]Bg-!EqAO5pBm]*pqgc}Of,1z0ŌP$¯Fc 6˨YsS4="4}gIer"Mʹ\c`+i2j7Z}/hu9=ch_>-1J-ԓiF.ʝob?9>/fVU;Y]r2`84ث}nǾEï|\|Xg4Oro8y}INDuwS3p,,:KE1 ިN8 XI^F~\Nj5UD*rBzb7hePP;s\5aBMJR{I!n_#꧝t2JNwɏM#T@IrwJxº3!*4[~駮Da?o 3=ko[Lm䛉Olc|tYe,4=+8NI<18'K b0+Kp >Z.UϤ= R^a"E,3' wVy׫cy+4zF kPN{"Qx oFs"ȕD@#6p]#g:;{Lv IȀt(|(͉ 3KܺGjjь^mW{L|=L6 ͊}/̧\jM~g?3KR@p<3G5ܖ6)DN~شdYmm(K (.pQϡN(c K;%]|{h2w&UG,@rpAC҇_W˼fxĘT¡o3\="cOPȴmTȥhijɅר k_$&Pf{Q´'jOtRχcٮz͑5 ĭPk_B?z}0ˆ4b,4neb?-t4\N|]  mdЧؙdHXE=<iP=O64N :%a~0Y!ȟiIk!c&";lwsV\ۤMo[>N^{5h\9m˷1}0lg8\,bTŊ>w83ڨ&j8W @fLufZ ^|qE:$h`M35Sԃ lN7"84-I{L1ID30*^bԛpTIbLpm!Paubn8`ePZ$[m"T.x3GPpmcoz/#\H*PQ8 /7O Q&pgH["QS6UӔ(R0'^Qrv!E0uN< wNc_(Q\k "dO n!XE9ԺgQZ7 2~Wz\3d1g%1PJZe!o8۹:w>#Ky_e2uMկt9bnk*6A}|njhՕlkƯ(-;E[:p}2ݜI ::B7@62*ͭ,vDǶB" KmOgimZY7w}`gq,#,Zlm)Q?(U@vÅVHT|,e¥G!.c{%}P]'@Q;bP^B@ܗ$E{gh},1i .t,IkL2{y@[K\WM B-w%%2<땋8$L馴Cސu:ʀۂPo,< ԅ?+o9*,E;Fgݹ2mdB8a}$rg^U>ǀs3-ir  h% .x뉟^+NKaeS7yrN WFL[v vՠ'$9ooXBhsK&>|}BGP>><*h RNƒ]^Ȕ(W3nt<[jϚH.WtE]Sii}w@THF[S3[t-Amݘc|A RWA'dH݉HÀ>ѻљXG@ꉑ H]G) j/HɍE/R+]ٙk8GRz^$g0\S@@y#DF}l*Acu|a9GIxV;ߒ g1*_hQyX)80J՜?bږs<׵Xȯ&ڭ@4֫  g;neVsV1+Vm=#j`gy125'q5駅9k< %j-%zZSroh SQ鄱e)>®7?K%޼/0V܌ fw%.V^p|׻@>oT|wtUV]^Ty~u'a6M%I*&aVfcxX&?fءJc^#Nj|\J+Mp,xĵ7 EF`6b)=n.>/,|pw6K3op`'^-'wbc7%Z󦹐*v덫$u׺gʏifY'DvW ǥ8D{Ču9=,Jʮ0q?5j%a +'xkz y~V]h nqFVe,X'=MZ 85SꊎCĭ,8\diQD&r>jo9( py0-ZN.6z6 8UtOK%b2&F4sU+95cRdl[;Z62 0Sϧ`͞*pǰ.|nlӍB11^9$RSV x1t/a@DV>l *kTJ l5j3 [(d(}?Wي endstream endobj 139 0 obj << /Type /FontDescriptor /FontName /KFKJAD+CMMI6 /Flags 4 /FontBBox [11 -250 1241 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/j) /FontFile 138 0 R >> endobj 140 0 obj << /Length1 1486 /Length2 7214 /Length3 0 /Length 8214 /Filter /FlateDecode >> stream xڍtT]6"HC7Cww0 0 0CKwItt747Y랳>:ڇNKKiS@"\ n@V]]YqLLzp#O7>G"D 1>9SG"*n$ @_@@sT I Cck `@‚N0W8Cv0'̎P#@ ^**fF;xxxpCPHW[ 6NmЁ`0k/ fL=;8.q0G8@a20Wfs@@ܠ;"!/8`w4ԸўhNa qD!1wb>9 `Iu;Q(/<`nYa-tr!(_瓃 kOE͙Gwq) 0PHOsHg n 0 [ E`p?1n6pO F{ F^H?UVR1' @  Y^-A0U~_D3Hao <SUHww C^0ZvCcBC a̲:Qe43[ƹ@@?pfGCP_G('W 3vP̳tAa)9Pq /| 0̭5<$p ]i x11Am <(G?&F5jm%&eVyNĵ/,i=nqQ);lHvƺƬʨoES?6r3ˬ4kiBOFT_4 Qĕri\|V&5fp-'ߎ;}z2E`(И ތDE| d5:l"qM~z+v:Yx> [gV30-)<hNpQA LlV'TƗg3fOQvsʠ]㵫%bι>'-if[[Yr;葻% ?Fȃ9.`o 6l k~Mՙ&Mhe?nY|&.8RVϲt7@b3ko^g>VT9&3ԨC xW BK$J*ۉXc zNAHE$;#G{𔍍/șx|0S櫇G=Pl +TMlBzHl1 j]:$@Ah ?0 |U~^Րc%Conu:X雏N?Nt9ZRx+ >x+)k:~y G±,D:Fmu'-VTA9Woidr4DWc89B_l7kovh t-COi ݯ/hk"ąA)y{AQY>gG8dq^N^EؗĪnL [Rc2t=iָ`RWK؊aN5H~pb2Db[]8%)6X'5eKE~}j^ShAsv3r BɓX&"ð쥴Xa[ЫF-/7_->7f'axeڭL4킅i܏e 5{8nSM#Աl[-SyhmfeYvqzJ=\,bl-ENO.dS4ዛMUZX\j|u4Ǧ/㑾zom2ρ ;=k C2@y,,*OgL<ͳ*8#zW~ɢ$ woy/:F8{R82׷_ڄ pԈH:$c^.IU{gw~[ v˕?ޏEB/LU;Ɣ}8nXo$çkbe ۏeЀ>_T}d0fg ;^% z߽U%6]ݩi*/^5Xx?S6ˀG\nNGfEMw'JI2jON^5ΕK$|6uO,;kQ_#FhA?s#HGN[&׷fq@Ap``^fYO }BD>5fa^؅%!\JAYyKn}FvJ=QUjܻLzPW?jT eaAYyQjTh79O, /7˷<݋NƍϢq+/ᬩzSiR"zg>r90$(^wi)uR<'X.`.kl@ldK漦9 )y:X(T.>J~7ho.(jZܱFHŘ(ic7`U8, m/8sB+١K\m&ewG|[?e*@ :JOGbKy:pJa?X[ y?15:Ǧ9+&EIb` Hh}9gK|N#\&U빤Bq6p䛒Spv~cA h9LڼLqCu пuC6Wv`q63Y{C}`<;ThVOb J}C}xoہwcZcÖFv8ʏ,~N[tR^aY{Py#CxKR賕Ὅeˆs2ԳR.Oqͮ`%?852}q 0MMeLLd3:~`. ӗua,}0, ~t` aJ~0`QFGQ~5 rױifCF7.dQٱR ݛ/ᚩmF>xVɂcAWAytFqO#7 =.-+&&T·']uF89_SGJR *Ӈ^H7Lݑ L~tvϩ"o`$k㴅`,1fɇuΑ+틟:y/nFDUiCtł  'ߒkQ^;M,&fҞ &T/s4{J8ȍOu]bR%L(eSKKieu \)J;؟ɨ,VvB@Ҷ}گc͝3z݂Pf < Te9o5 pl9QMY=0Qz9y9Kc"rE:`'Ø(N E۷=.'3Tg5Ɵ]WX-mj#S?>g m|&`V,;=ۺ&,vHnBuHcKpK!9$'*V|1]/O09}Ι~ AÓN\`۔h[!EbAMR+zޑx׺`Ζ9da26-|7jӄy+ `#/c} !9?O52M 9q5zj'$ߙDvNfROp0[mY z3U2̏{VNdN2J6/YiR%VlQf'B4_<4gPrzlNʞ"4l{ {KZ?*VBN&pǣi??tu1U4_*[z@V08d;yl<KwC ͘Cwc<%i''{j 3X6<]D$^ zӟ^iY&ۿz"0|b];֘RO=j9 sVjR.1G3d(h[  Y^Lػv={@vԽVʻ3v*GK7`d\d|6.m(n+7~Ԝ5 {5}D0~H7tDGIZɡAEv:(tpEs&uUY[\ݽ_iڧyt6 wB?crLI(Ie<#egǟ3M2v>K \}l+%ozrEj"й}ly# ^YţC9pܸi@pǎ90\e~Hgv U^6Dg|zܔ(|[l K.#Z 8(dNbHN1V~Kcy^gN3݇`募Zv cNɓ8dq~gc%v$o7E(|Oe*dخa40kc)OWj.\R^~W̓S8AGU@d=]#RZcz!m9oJn.^)wQǥm1Q҈}xZKonejB>-2ƦsB2x}z+w6A,}\*>~nM]r胝}(nOqhp~v!/ȪfҌ(XsaQ¤;EoȊF.ױ$֝ĿXg 큡{G텼Sƶpud- JF,b*E}Җ+tvxܝjdSOor{>pf[E'ivbOQT[p7kV_+<S ͞§9o M'EFRU9|5* D]|Y)Sգإc(I=mp۝vڱR+W1v_'\W̙ZCM,93VDLZJFa"u^ƕH=Dbi3( Lu7nq3HՔDVʡ\ɏ o)to)%iD^ o8>EgK<)v&)RW?@m_kAS9Ƴ幀MGKa u/uVVG=6o0ӀżA5.X`݀DP3;>BOZ[tEÇ Ԁ8 thS1+-ytoƞ*HB/w$<70}]7-(4A7`r.BcIk G!2fGܱDQăv^U/XgndAOX]Dy>wծHj3B[c.m6Hh9QA q7s켈-$M_@>q^}%MMhcRQ.}^f#w-J+@A1?#5<(Waa ͲAݛ7dAu=*މ~A""hR!ڞK^0gdYG fsK/a*//q&GjawC2SqS5q:} tӷ:ħs+9uumZΤ?Z8n?y0ϢuUrhЊ$x 4_)_cl}l=a冗j0@3kt\Sx)0#K$d3'AA0ᙘ;Cr:<3UOCUrp3uJW=HJ endstream endobj 141 0 obj << /Type /FontDescriptor /FontName /SFAAHH+CMMI8 /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet (/j/k/n/slash/u/xi) /FontFile 140 0 R >> endobj 142 0 obj << /Length1 1439 /Length2 6472 /Length3 0 /Length 7447 /Filter /FlateDecode >> stream xڍtTk/-! )(!40 0 % -HJ((%Jw ߨ;kݻf<ٿ3m *pW( PVB|@ 1;! KMnA prPD@@(N ia wg@@TR@L;%Ѐ HbvE7j”s$$x~] (hPLE0`C!(r@\%===@.H>8^ E9A 0@`EP Q8C u-+Y௻ _ 0 yCa;3ŇB@0_ g$AA6ߝ*_`CBAs0[E BO 1gN0'/ ݕ1 QW"ńą7 ++Q ÀA ?b$@!!~>oX@` 6{(?1j3| `pOd-~gb?6WP+(Db߿sAj0;8&_kg.ǐ-"@0#ConH0\9`6v5em-忭(f?a ](RՃ,050 `ayV1D/ٲ m(@1H"B~0! f?Ak̢"~_?(_IHw؃~kU@`LO˿ &84]M>1yBRZJ0H,PPyآv9?]T-|ˤnd7~}=瘁e+8QQ K^V"Y[.vr/=9T4Bu[Kҵh$l>Zv ^xʢ)|JYrk,E罶@ lQ?1( (1}Kvc+FJn˶p+\ge3p;WK5YjvL_@|x0<`SvW }aDܾP!MF4𼔖mkix)ϙTp߫;^t!yKeҗm..7ADǙz"scZDX qz6EvtI'm{i3Q>-m|/JJ !>F ]P4YVrY@F60¸hN刿*4:~%^gЭnM<FK~HF̨1Gt!ԯqu{|4s!B"6t~]uDI27jG.o"T%^5a9Md)N71O-y+"NGu>W,)=_]f4Ț3۳w?t% )55?׊twm 2L(r J+ kꈴ^;ŹmHJ ܝ+ו8&r6h|;)cNZhH7zlo! 5=F*״]I\@gBu|~ ʫF9\)5ac&3J÷zXn%:swoH&%F\zmVY80;]&WT*wy{=4=];ۜyAi7bظX#9_nUsN7/ zV'm$X/bP$$s5CNR? 1[Na33#P{\ˇ2OLgq Áӆ]^ܽۑq~vNi^&3]]6&")|U*6V_ҩn8hxog""(H վ"{l\r!cɧ.wqmc =S9Naoǖ7eTZukUcs>i+3iMYY\m7>ٚ1/h:-lD*gI>=&K.yaa`7d|q *0[qj=tV9[ƚ^h\CvK6v|[DWrZODbxzVȸ\P{c|åbÂ7rx|Nk{pi>=Xa.no'a3Т2.!η<8W3[Q,%VpІ}2d;Eep|„~8y.mz<7yf)Xe=V-o:#LbBg'pԤ7t*—4i5 iR5moNULݺ^{^.1v[VAT7d>1i,!qpꤑU1?>gaK_T`@C??3g,N[-$"~4!cP015NuIXfJ~R^N~U5ڝ|/R:_24|`f?"#rzK}9Vr St!J-%>DJvF3XQs6JiFHz2 )4[|{M'>b^+U"dɉC[T O㡉O5RtD9Ͽ.Q+٥9j$<,~DX$‹;~ѓ(.gTb/ayV}.]0"QVBK٥E@-yC<% 7Re-P8q](_| 8Tj|U+$ovжGeGi-Yݷ Iꔓ6FU c*#t꫷>y7e멷.(Qte?J)> 炵Q㉍*KwSt?dӕy@^]GלZַj'4+hM gd43k!|^AwcE9ШB<]@Ԧ.1Cc 0f7ycԉ;E!S S?Ўė]}¼I#Gtnκ/._HĪxZj{__ uO4.SEC ^!; ylMgxz-wާjrnz~8I_=.)XDNӇ`i{{/YǩyaOPd$}e`ea ]P$)p*{tɴhIbry-Idǐ&yYÇh3@1ʮ+o0$pfŰ{n |yG^npEnBzʝRŗ\NkI~nsAӛEN#v sڗe"J2J"4s%~&h:JTEO;AX&#NoǠOiSA=uJ]ޗtN-6d$#i4ٕO s;/nͨ}|;lvw̓>ȓfnV#n×qLsۯJ2D-FKͷ9pE.^ۢv\5/Җzu'0 ~I ]Orx%O" wg'K>Ńi.9}j'Rw e.́'JLE̽ \lUlKVFlž5[$ M穾JMZ툈Bi× VxiMvϜCLnXvYL ƐP9}/]Vh/t0##DEF}Lfa-{\ցB";a+)2^!ZUs%ى8ud۲;]~ԠWRb6F7#68Eǔ 53f,^^vCE[FzL~"96sKR:;{{}!]eÌX ''|. ?F)g.@%plL&D6';gHTCx2 ym,Wk5X,LRDŃh1ɫwboJBY< r6p":5IFۨPT܋bvye&h ܺ&6P^U]j3JBk0,|Иj1Jk]{'d2K\ǟQ,26?QN9ز}eƚ 7$A+M#-rKc\JS+ӟe9(*}U>UY:zP!&"QIЬ]Dmݵ;3Ԯ -Mv UT7<PqqaO{ZMbmw?Q|y+syZUP>p󖧱f.Х+;ȯE:ސjM}gSA+`k1][QEWE( {Ua:oL$;gŭggE]L}IKA r72RoQV746R=?dp\xQg9rW])tCďmB6Y%‹^(ğr2/@VU%F.=qSmx>՛R0wemfF]a;uc0j 7kN 1<?;9& GQ@kS%_[(PH_s۪3% չ<8 (+_ Iܵs`q[S䡢^[|ei6w Ҿ ?(2TITs`O3FvM^eۤ*PM>]]_}1&o1C┬(knR=mSX#YuD7+ q|)n3,76wjA!\jǑމМejb4R[#Dg{ݰɸlwniR=o?X>e> endobj 144 0 obj << /Length1 2617 /Length2 22277 /Length3 0 /Length 23768 /Filter /FlateDecode >> stream xڌP = =Hp  -hpw'ysι$aVwնP3;@L,|qE5V ; "%?bDJ-qg+X&a StV.>Vn>  &E&H)lmi ߯3Z+//7@gk3@ hhfbPw0z +WWG>ff&{&gK!Z@ tvJdb'3&DJ?ru Wg ,6\'@@g88@]Vc?2?rd d \=]& M\MMLL37HL '=3gkGW&kRd ʒ sq{{ /~@3pٽ-`a 2+ s7GfMPV?&`o%:fVrdK `NgmCq1q\݀~>*!̭\@Kko`1 n'@<{f/so, &KO<>,F6N_C n-[bbrxY8x\7xߣob`7yKHo5 ^ Er6UV[_ x=DAvEhbjf `v _ ܰ/-BqoORd`qrLM#N+xĆ6 >ppF\fѿD .o `x/Y_`XҿY7bOo`\#0E7sQ\E<`.*okF蚿8ox:+Xgbz0W~,\1*~#0e3kg37{ ;pc+0s%/?f%xx L ߩ=y ?פ3~?d/  4C\s0%`NeYtt{D}&+xVpەmI%g7$}2JTmG\(:m'B d}v n&GƃRy'_<>W%T1V3 ei,.+#<ƹ'4F+\"=I,{[ìjK. Aܻy╁6b\ƷLl5jѠ:ů;y;ue-XFd5Fјu@bZ6iK?^3(Vǁ>VGӾlwi&`ҏZY$J-wbeXrk&|!ϺU¢ 9Jxʙ{Wtuc}05K[yqV8M~dwdZ<*=i&| I̋D!isbCVwwz8 恷TJ=Pt$q)hH,$`붢B=yGpܦwh~W. ih^Sb-hc]%O ŋ| ${jEp"oZ;i ޮQf-Cuh]k{o@&>McWe𙣯mHE:j]&&"uMCq.sf~24 #FKhDPTFPL:c-H*XbPu#V!hХ I.!y01t*hSގu \JĻ:O1a:fXCj*|u/rh5L}rrT>p \uAZ]dzs2We#RdR)5AiHHSĬ,eg- YkVkyUMMxWܩ8HFy^xp] N@,se9˻)k QƵ~j xߌ`,˗=ewRL;/g 5O{f,Dr,>\)s(\Odxw)?tVqiIDIt"y-ӠFS)LkUsɪPP:|leL~߅{<ćǓbL1p'7Xև斔aS;] JJ+uB3Zw疹UTeq}׿@p{yJ⭙EKʷs"l$""Gm! O͎9K"t6 ab'׎+W`E^;xe|l fv/bm34EI~U}h/1Rpvd=rB@-xm1B}-ekw@ջ#w\2*&SxcFcXzt;5􃦎>AU8ZZ cӨ(L9 <<s!'a"dRRjYVwg/]%m=(Mn`¡vPUygy\&;MU~B7ay3RTqAyhEin^ YdKM9x)Kyc"8QQ䀵vTMԋK!T],ArsRI[3y]G3vAR4pH 1JWQ%/=~B&U}Z(ݏYU+$".iuX`9G<.Uٷ5@QI6q;{xyIO)def0D"9=jF7 fj2k.rI.Șv/*sWyjBp)k ؃J[sBE㐢puJ/5js'řOC7?u~u w Tǥ 5% N^bΧCfdb뛄 TEd7\) w^SKi>YugMz5z/uf3AFr 8H4"y'?!V5)K5/4]4V)4_6)̇lyp:SX_W|͚Nl/zgM.Xv7rse*5O*.N I;@xi1E%ݜqf|&JA F+&of##p_j3W{ɦQwȇk6ax8:&|U~vUeT@F 7 [Jj5&Y*/a ܽBR؊(r`M11 `+99:5W:#,ϊI/˪NPqe)m9os@ ;nAv :}14D>A;ѓެ]*a(u1$ TťЏv4M_êJܐ(_5(Ԫ XMo}ץpX)喙O Hg egtwKs)̊%kZOe -ñȯ[꫆+X2;xpUtf'yab aʦBDp&O#g% !e K|(x칒#49WS?aVdOZC.@k1#i2"\-k!.C* ۑt tA`eKlkՕ_Tzyul]Lc嘑zæN(En2[f/&.KEڧPtz3CtҪ)pfflTY+XCs4ˀ-V| rD7hVAD?v_$Wf#|2l d 0 ?sІlTshLl˼a}4F@C")/Np8Bn}|}!9a2z? Q&n| Tjmfĭ9ǒKaf#ޞYIymUc:μyvg Sh]z"N)@ֽo?lz\#i$i+s F9Gdk(藄#E%ci?șmpE0;Ngn=;Sg'?0tI.Q+^$#3'0`n}1)/b5?^}W> /OCDbr8Y9D 3i0 F&-r.&?_+.Do-L͉vXJ=,oMv.AHc{(|_칕ONs~c D׌G5uT2Ą9{R$Hȯ¨]O3f7.q, :T;a2#B). {YudT"~ZhBgM+#1F ^LGIG!Wa6ÞROcwO:)5^#'%Mr ]eȀrVrH 0>+^?չN(,˚zxEX#y9&id/ܲ:7jג.q <2 ՏE9domK7J\˸ iO3!&oOzޙkI+1`WJmgn-sjG|x#(sAfb|=P\ж2Qz/~nԒMEo곸sл!ѡ$ g¤?~(iDTG}3DH]Gj `WtlU!S~O8+QrS˔roF_Oւz< k:hr 9ϟˠDUJi]eP-{)33v=I%SdAݾ+uU:Jv 9N6)e (Sa g=VIIq;$]X5X`w9{ן//2=cC5s|u?JiνE2 _z25,4[K'3d@泀 Ʈ=p1#e=Xv^:B+YA[}nio܆f; RqV cH<4w6Y]ޥoX_al:fT1_E}Qsu$>A9',*K%4__mX2E__F{I|!.&>j%$d!?e6꯬ hv/- Rn!Tj_S n-!j<8XyoZLSOG񀫼?ŎI{D\ի],PN9_\V9"mm9*Kn,Ho~UX}W%zZ\:o]Q3Iw5?uw륆1$ ? EnR`@^Q mA[$>= ($_1/q %~>"quNyR7T1٤PpT-VRuPUd>Y/B?v ݾv\Ft_I?x(F)TvUĂx *hkq4paJG ?: x")/WFo@aFV !{ 4JdWF.{2`jpyxiӗ@NOQHyHM*P:R1k~y#*g[}G$-lv*_~~p*N޹x,QnO2Acw}ŚywY$&-P>Fw+z5'bfm-i9#^|9Tk7_U!%&1gNmbdu?:90Cۧ(EWw)|Q%u.PE<:"xdô\q- ?>^u[5ƧN¬!VsƩ/uNa"lupX %QAZV۲".#<ތ)ם2y:):|4#i"MrT.:.`_(W!m&P$c2"P#oYcbH6[fFEp.i,;cϫkP?sZ۟k7HPlZϽ0J-޵LOMnOV0V}@{c_%hidzUD:jE=)Yt7oo0hC{Tw꒴ޡs^d6 ]fI4Q&l Hμ-J6gh0WvM39+{ pqUkE^s"(rGJ)]m-q3ɥzR+hq,>\>!+nCEkˏLSbVc%"!s"˝*GƏ^iu~-3s;G9|YxaI}-L$SHQss^d}X=.$s#G{yX:Fb~zNE#CM2xʡ㋼4/ lp L(+hgD_[Crc|ly*9Zd ğ;RHw$3/Uݏ$#bL;?c<2^jD %JJT%(akym'B?.^ps)rn-;bESˇ9XyJ^{ԏ_|XjdOJ?O֮sm0K&j<(hG Δy39 n/_N& k`*w pR>s=|"pܿpRyv**s{">lLʅiȱq+]e9,ާ1ɔ49:4f,jMD z "_ MV^~B+rŝ 2Uvʋrҥ Jy_O7dTK%ϴ:2F#S.P1g:Da0 ٕ evR~S v"DF{S4N/Y]1ssj)t֊t3]I۲'=Ei8Vj unuh{↭9T:"geݽm5.'Ug^k\^h7kÎ+I q9A71=`Jb}54Ƞ#C_En90_BV#ok.{iMg/i1܇SWiΣ1$F"ej\x t}3UFH!6bI P]wH< 3 R²7jW m1۴z8MT`ei؊ &T)I*EJq0h6UX lFs^Nx[ECJmuI =tM.a?1)#ooO_}:[(C14h&I &VhFOm )}/R5*lAJno_.-06f>:X hq4aPj]82ZҟV-ѿ1%-E̡Z#qQ epNcE/CLxtX/sRf,\ lw}WYg ͽwPGq4nT^a:1q+QP \ŇF?V*3Ь\ l(F_M;.ֺ*:GX~8yX5>鹌;;(MdڰJ89|%H8z1+By*9.y`OMv%Ml نI ŻNYݨ%m*?v ~3aTYi (njQ=*v(e-rbHŐK&dQºrQM⌎$_)m9 3#!5{yeJW!}> XÓO80 |}(e)YrVֈ1Y8LC1E?[Pk'>'P2C5-0MW φd\mAмF-lYDZ 췛c;}A8Ş[ܙBy4XH^.uS ,|5ǀ JXAG$9 2vԴs *0Oǧ}|H1ʢH=-4CAVֈ!Cpو܀I8*YZS+5A3.?mCFƛdWyS&@Bf_Cn;dn{oM]0S=P߳I&e&unv)}4-1 DʣH-eecUq)y{]m=@- GIL4[c3T3Bɗ4O55n="8*?"')*h3I=ٸH[md{s%L'ѷjbk8oi-H`}h, 2i3؃Dt Qk(]P]dn})G\|L,s*Q4}Hϝgc# Sy'c)_j@A6[fZObGmma )F f(Tt#d*_%.DEcR Mb^WS)8z/9(uܞM|ce?-+y/^ѻOQ0rޕfZNKHr!Q'"]n`OHTYDݿ2jbP\$dHqдZKJ mPUW)9>] ['(k?e{)%_y3<Rw}9g"a{Y[ٌa}GCJ_>܍0OM\h {ՏuJyfv|yeZП7'℧Qi䘁ssWFPH+yiLlax`x!,1l熲`7DvquQw5?/CuA d.h Y#|-5ql4Ȃ 8Ͷ+ۍ{,,Cc3kxEa <O힄m^:$R nbwL%#oguC7HvO %{mk/o7,bZ}jAFtAͧ}f(7r H4cj'4v{?E֗U%ɏV_يzI"I/H>F7}|pSGؘ 7caB$o&-%ъFqlsHJ!m-vpZiᅻ D1 .{V] ,@wus6*X:/9m˗d b-v;e B&]YYe)׼tto/ȓj-q9S! ]ǂiMhZ'ҰAJ6f3&P}*Wʳ1C&qL N`%msD}'rߣFb^ݭ6SFߣbNh查h`Zxj`Lʅ(^&qa!iUKq"}`o ђ}ݛozm,8OWb~jrBN옏9zx"AxÆb>)~*!Tԓ!ľߢ[tcSH͛Ȇ|6*)$ɃEREdo:ѦS-îI Td;U>7;{+t≑h[.u-RE+ ޷[9Ff}?'f+^0!rLm ȏLu7Y1Lol` *WGi252qj-"eL<у,Kyce?םl%xSN/?6X= wnå{KQVʮt;@٩w.8sv1luMlOr?$d!Fd,!@z7rSPI35 p[` >? z!-i <4×y™X8}?]D6"_:Y! EˍM:t{<މ=#I7~'G>1$VXt%ԙ<)A;mZ1 J5!8 v[z ^׌;j?47ћ )TzfŁ:/Q>y23jlJWZe`t yUI1y@,~;QM4='q2JAc̭[fr#FLQ݈jTGtQDN¤B2QƑ&}bR\! k3 'MIK@*3)@&qB^f(հu%6G7T}?_U0>v.;fEE뙬Wu9i: ґR$=+ȳT$q;!z@&r ])G7w~QLP &9 mA,- ]%~C[ܔjGdNK+w[ƎRaþtn M<(0X<Xe 4aݐw</G\Onaf= ^ݣs+yDJe#dJ ^LQc`4yAb';bx٧WwÇPLGre&谻)$`&l8JTTM1y__ӿE _9qFs{Յ|+D2Un Jձxg6P΍IS&sut2&~:E*ʪ뜛LjR.g su#'ؗJQE2*mOB;j2okm Sˈ4cl ١U8ռ8YWjGܤcS8,C9@NF–H=(t;^qȂ Bb~A.uyUu䚮sgmUqݞQ⍟_pf%7f"ݖk̎n}Sb"M|m7G{4"v2[NKFrY`o V :]Űv$aE7qFa1V -$ [[C{ >vv/7qty^\vKvcѤ$t8Qc=o;E4( H4~+3g+p(@SM0\bl f6 &s+T;f_]$TQm_y4mAr'ǜuD52I-yL-?K#kRw7W<>qe+S e-U*tz! ^k{P@y?@Ho@l>ߠ 9<)jëx"C3n͆B5֞~^qP{-E IZ2-ӝ&#,1k.pK!b/K|!FD>q쎸Oދ4_Bi0r]͈{zje/A4SOo-tyqeC~F 5nNx$zi;U6`vzv)qKc[ACBUIiUdIIp`iF9ރ .T9fSZD7 ܠ4Va;L?pH1˓@cY lKqgq҂ݨ:E&˻DrXE kX+7dȾq3@}@]#>.ۆɮy['Haы%Z?KA(s|sb=;x|f0+ tɊM}pX[&ެ?@R' 5Xy;B36\[26~c^|>:qfR#YLJh|{`([ƑdmUQ35ʉCKĂwܟJH kK?i *Mrϻ[ ngέm7wjcApO[TS1< %,8 ,MDiq1C1bB D{=\b|3- vt\w8]syx8@]qUV2y桴W|P̽gwrh^#=]dUXkK,>qY=l(4_*ռ'>Fk}ae4$Bg<>o B%/"tIPmЖ3t[b{xEatG8!5EQ㜴1[=)}(yn3[v} KP)4 ˖LOnO{Vl Wp|^03'dTD™sy3_/W|tZF~ +{1pDbN?W`ؚ}M ϶{N7~i?'}kQ*LP=DeYMAd ʶ,{Q"cmc6{tʵ%`4e@@)\ B j5u( $;1`o![9 qK5crB@)fjm(Y,.h/J㭫"at{fLH~2[|Bh^x.Ojma!<):!9}A(eO|WWws^L6GJ08môjnE\ș#PlO1 ռ8Jދu_= f<#Ќc[NYUH m4{bWs9~HC%K-'8Â^|qYۭ.e#~<*Vo{nqBT"m jo;4;Ӷ)X'zT{B'/`N8},| vAH6]ߜxB]JVWlQ6P" hfh891p,v *W#x?8o, E͢1n/a&8EIjrb [2"_rVf^NVJ`?T&1p+VK|@_$s j ʟMi$jWAd_xkfSkԿ)EtJ]') #)wm ź/ANQ³Vr͎6T+q(!*dy]B +&f0)24O}=BEGaӘ.ufAT_}o B;d%ItU(BP>F?}apYAR]>qȼV(.;<|ȕ;TPKqHPƓӬxn+Ү&*\*R!H.9^j_:X C4vZjA"7 周D7Ŋ(vn2A |%Bg@h\4zNzcQdMa@<=RKYA/ L\7^*Wh.56 љfA l9tw|ƬqkMRI~zg3BP^ _qWiG?68>(,UxҠjk wq뤎ku$)x;y{!cQl)KǍ3_CY-T_llנ2  | %F?\Nj 2 asO{JΡf\ETW(^dNX'1q^K*zJj 4'5jP0D2t~=}`(M՚Dݦ5m:"?fx6$1ӐCW$Ul9N7Pǩڷ-쑹I=(#g^BS qhf9LN8& ^ +\}.J2 w?`l+3Ũ(qߤ4wD o5W ϥY}܁Q]X_>P=kix:q0Tȥ;ª J}V ý:.xZ-puۑ2-SPlU ʓ³QEj"&K\H(ɀ<5gҖRo7~Wd ϙy{_ &׺,{"&| C"4-x:oxĊCWasd "Oqc˭SBqj$ߗ67HC9ylN%rƂXuJ n7- i8D3ş&  cd=bᧅa'19LZJ˅CY w+j|+/$Txlx` C*vG-2tf4&+ (J}*DgѠ .K+`4TD-RlAaE% fpl<&҂s3p+Mg@hs3˕;m!Eo%"%a-p2k%`/o{E ![F Q[@!yyFm8忎͞1wȶjIRԸ %A&$F!0q8萑.O#hTTû[r-1PYP>\/FxF!n hAm6*0#0/ʃ +36氖WcFV)}u EŦ0buc6ezd5‹M=Qoe\1}VeAP|31}Qx)>yЍ;\Wԣ`bǃOMPł;\YnDNfdTWʒP{{dnL8[5g <&dJsDWkA5Pi!' KME˓8SƖj{YwE#tRhq %x Bi\R@@pag4hVnK:"kh JMHa5!#qlءֈ{eJx{Se)O? YR茪#G[b+Oّ%WE8̙*mR.H_hoEbL &ÏgUgjĠGyC7pIlsa֨wp1bSIeFOh+{t Fyaek-(&Bd9jbnٶ=mpcv㠎K. /YƘ7wHG ac3@ۊNDJ,hJdmJPgVҏUlp6$z^IXQ0"!!\p\|knTgxW/Pxy+$+k32uYT,\KL. ʚӫi!e;~;C s[Ű:nB%}]-ݰg |mn)"ѕX3xq*"/PEVG?nC+-/XW:cPf'#|yˍ=sĎދi2,E_rc5yw%1Z+%cj" P,︾8?\ &Fsz}+*c".W-KwEstS P}O?'[[pK*IeDZ):|5^Ę+ab O4wtOK!`x@#YQ/ L=P[/B:흧IV|zC$`^ )~UuF/87"]<3R:lB%P8`%-촽?bܘ"@DPAq -,< !&2" BnːL -(@.S3wZyw^! U.4 n}U9]fViʹN$;j$s:gq/D Q0OrV>d;g.Did\TJxE{[\6fZΆd_91v'圃Gʊ~r+U?G{%B!H/O1n .q#=+AloVU7"bMe{R)si#nؚ?>Pld+Jst]lj0G!FB-[F@7PNc5v9OޤFwW)SA)Lm\pZ\@Ï%Z5 Cqǖ`׿.}F_G%!+VVOT<f`w&¯@7Y$0sV6SS)ƷX\˾'&Qb{͜cOW=͵ԤG _=`xެ4<>2*x^%On&C*RJIMwZ{_3'r C,'ŭ=l3zSX?޻\Kf#d#Q.b'/LS_-is1kjYLY0JΜnR`d(G!Su6du@g3TJUd-ֽDD)yc/Sp.b|W3]pi_6B1nAR~>^E;mahywW\1 _GAO?cCWA揭l` ;oWl`'=U֥kjĆGhVqtCySε *ch%ѻ#_zǤi ۗTR8Ho%Q\UN1k -4Zl÷P[.><k}Hh^:q$/{xf*n)H[C;/ʠ 6Ϧ7PO,Ϳ (DAXI j7dQ^@8!Z\&I“=ԔS<^Cq:`&9-dv]bت'6vL+ף@H>䇑Qg.)7/@Tʛ7paj| dnSBe8 endstream endobj 145 0 obj << /Type /FontDescriptor /FontName /ILIRKY+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/S/T/U/V/W/Y/a/acute/b/bracketleft/bracketright/c/circumflex/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/four/g/grave/h/hyphen/i/j/k/l/m/macron/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 144 0 R >> endobj 146 0 obj << /Length1 1647 /Length2 8795 /Length3 0 /Length 9863 /Filter /FlateDecode >> stream xڍT-ݚ޸,x 8 4Ґqw $@=푙3skzUujuh59,@ N7'P y9@t0Au;AD Þlr氧85'@ <@"9s7@3:9{B62 `dp q -!5s-񩢥@ yW f1[Yݝх j#plZ  dMn':@]n `K+ <h+4A?U `57':;asKK'Ggs'b; 0;b;鼹9) /Ob ;\8])rN4ey#sAݟ |'ן7kqrx+$\t!7 eBLl@0?@\x:pr6?1vvrX?AO?.n :77 l Xl?Aˇ=F'q?3~?KCM_IWOdd<|~n@,?zPbC/U01,$e-Ǒ?S6mv+IɮPsz d50퐆8=Fd Y)Sz08=훥{tW@O%!NV_`{~ZP+pqB`OGO|NP7*m F.˿zB-O* s9 >p9.ȿSr?r|/?}< / O}xkPӫFy,g,ECjCZ)96O0lc𞅶`Te-C/Sqϥh6ף$|sg5};qhO>*4J-7>z* o\5 {=Jæ7_nU +э~X<ɐg5EAgb?gF% w?p'zk\ǥ̐ x[f'UwI2t8mmd1akS] {b0*LFʅH6zE)ѱ6/hAeCD…]# Xǯ!uS絃LTkeKRGϩcĎ(ش!Yz=`eIL-`&=pwQvhcPyXk!H|%%G-q]p32y ]Jfzn3o&ƀqO }W}{넥UBxhJq׍#ĊWEWU"bO+OGO 8b628y&="/ZX}~)t.Zm{x9L ބ!¡_SR+DNjbZu!MRa}{@.ĝxj.V):7S^ax0k"3Km KؼPc/{ :1ne: MϽ 6=+vl0Ǥļ[G28Fo3gi[H;\0ҽ1Z5z%$__^`vM\|8װw%Scg]Rȟ1 ~^; u:ozP>SF#{Ɛ9'5i^60[[J⃘R9V2> =X WilhI(DtW%i>Ĩ͖hs &|rMglF,}gA(hf\E ]3k6FCʬOFdunHrPäjmrxj7ݳ5VM&lǣeYT⌭g*=.BL k#{ϒxkgIIS$G $ |ǓF~_gNyẀNJCh9S`,{ܖɹ||#m7V04/HZɧxVfcG*?:7'^Xt8vFewaeT>QjQ$KBeM"l1{ϨU)J\I|iZsJ+&P7u~+P.G Gl:Gbkc~7e@&td@i^} u ~%jto IR]׆*Aêiy3=fk; }tΙ΢rJ!qlpGI" \fR9DpDC|Me*!2o^OU+I'_&-ݺN*nHbEK9+T0T3S|w(z1WO#P,58 -f!T)w3{VO̕{pf8+Uhy]DA{ ØȆ.cюK99%0û#&N2%^v36SxTnn-~1r,& 3煍a.FMW6{&}8?k 53c(,*_ l;>٭ ,ӰUx^*aR/3JʤkR;L *HV2 m€OHo`=E %Ѯ쓳"!O;+5#JEL+Edxu4a!a{stph_4tmr|fnUih4l4XFk+5 Sk"LHQ$9z~Sn*.jvqH&C[@^GjGϾw_ZF^Y-2d_9XEKhZDq@ w`Ht E6C T ~+1V y4x]E,דdβ?pنbѦZ4o&j8}YʚL3b{k*_I31&Fpc`W$OH;Ʈˏz]uՔoū*i %@y~=!K9Р} ?ny@ڤho4%ZrA&MNsWDWyt+]=#I=,bNZSn@Dֻ 3q=i\ĘmSB[^ ACU)g[%v!!.hlż9T/ QHdĂj?B/W3v_#> wlz("})w;KG[$SplG_rU;Ϥ>Yq=|2aיr(/({Sv>mའ`-,=RU2O](Ko7J^:hQ;FH 9j66i҉4t?ى{]ls)BD VuZr zYΞ45x]oJPGs[^BťO+~u:}!pPwe~d>A_2 3_($!U,Uqa~}afdǹly9 zٴrܗweE4CKύ}?)vu& :j>tCy͉?hv?Gig2yQLƯ>bb7p׷DNLlFkY*>-n9 e5Q%Ԥ؊m @;K%w;JL|F|q4ÉUEaPTA UdĴ0#jf[5TgSV?H#@?%QB%QRP+NbSw Nkv`2\`WvaQ9 GdĐ1`]\3^!Z~z:Kk]w_D|Kp$Bɟ}NƢiiGEwнsr+aë{KDUHE@K1KpF u眺qBrqMYߐSIsBƟEEʩWm]\- hQ4dˇ Z5$1^sEK?Y5&Z-j&7aV2MS*81@Y~"zt )uw? ]ZWn,^,Uvyca Qc#|Eo6ԄM¦ϯ]c:^h~]N&ZZffEM١dDWSFff![z"W_b]JT.Y=. a$ BnoYc~Tw|T5zjis.5hoV"+e $ KXP*/x8$,X)%jY`ms'V#6qף䜑c$ݾGA}Kɫ$q򚫺>|Q,I~)Q4$()˕HV0wAse]D/ʥ+rv@"gB\@NGH H]߇Oes TTdxZ~hnk,Uw뛚 8 q@uRVi{Ե<|ORO KX鮿Ne#(thFi,;`lɶ8R庡rSvS?icG"SiC>h\l7q\]i8;SnMP U>PTџJƂd")N9aor磛i Yzwq~ug\M릑,b ڍO_NI+kQ S#d {y}Ʀh3:89WlEfj 5Pf$+ǏeּPNjV31hV5 I7(;I" h8p+Z>7:(f&V&sEK}k aC])p^H9ilϓ6(皂K֔'ϑ5p+\*yDiթ/wq֎F)뒭}#(,D1֚A ohўb[ѡ33{>DOȴΐd 6]!ƋMe^LbѴZ/2estPMaҮEFW52]aS| NAM<'ۄzz6-)Qt ыm /Vo&$PÂ>{NI-!g~e􊦩5/:%29x$㹖T͊.̽DRsiyqLB7#=޹pop ^c :ȵF5l{+=eTG.r7Bl`(V#+ VIj.N~<\=F C T#"c!J*E$bwt 9#WM*Vt (}h'ܰ Ts r%?T`Lة=X?f|PAz֣*ˬylK^9C%C[uN`z:]W%#V6Y!ߞ7 GDuB+w41JJ"ئGd ksi:}k}^6m Eu傭yګcT^}{xx_ }Ue<ޠ:e2`Dc0A׫i!J_n÷Nċ?<{g>q;\Athڦi1ߩ2rnw>8_;jH} fh=l-_4r+_x lc/+tl8$Bud<QcD  KvlV"^A{K5U_a&;k(Yj(2KΌ"NO *3R彴o7HErIm.HH;OFU+un(.7|CLATJ3nԟ=4:'2uOת J,_SqPY=uΊdEua6G>]¦ _KpAKzV߆՛ܴL4u($xؿ^1vri._Q2`u *p|"_]쏾+o!J'Xu+hs|mF"ql.lAͣ(_n WBtHp?8v~aid 8G0IVtZ U@mp͹0Sxy =-SI `XA GOAGj?kte%Ϟ8=_wM=[;QBBKe@6VK>^ m@5ځtWeίzN"ҿ)r` WD%|퉁YTu PJz:=n8 أ9FhXnRz_J)zFκr˲hj 5հc o>֘u?ڭ:a&8e~TPҘb5JvQU3ǒ,};UN@&>|22˹w3TM*u~?Xy{p]Y ?}s\cB@p85%Rt*lsf %*NE4ZMBSt1NPJПQ>3 8[P_b%nJF=a'~ V% 8cؕXejGOeZ T©|cRTw5/כ8!>V0ie >NW94ygfx9IZ~b07rk=]>:]ۑ䇌UaN#h" ym׶g̥[ ⹲͜ߩi 4!ht,*RQBsF|$%}r!h9 {UOkWŦ[Rz`Pq^H=:~1+wFȴ>zXﻅcWhr*.8tˈ _iۥD71vP}ذvm7( IR7JEkW KdF ^E'S1N%0~:X",mK>\{?;K hwrܯu˹d %l[ HcTެ`R Vgy;~BN#}+[l*3P + hI.c%6㵻"FPbיNaGnj+%@ɌCJ AE > endobj 148 0 obj << /Length1 1620 /Length2 8959 /Length3 0 /Length 10011 /Filter /FlateDecode >> stream xڍP\-Cpi @tn @볽׷׷QkHXA-@P + @JEΉFG vseFHn6is Ptwpp8x9 `+ +@ IA]6n`cp- %ܼ '+ѕb# 4A U#Ofhtm[v-'x68-A w8@KAg38X9.W@KK  23# }z@;d%4gst;G.@ +,C߿5be +w'6 Wȳ  '9@^lvvra~fuX?Ah@o#4 `ClY0bo&B }l  dORepy|7pmU? P{ᯉa g) (ߘ)M!Ywnv+YnS} d n鐀8F, dvSB9`H py,=/)Z1w< Y^<<_yV6u{N<XC]8Q^߈7i}s߈YlAN  /`s|.|6 7_ /_y y9l^j-@ /%,R(̮:R̓e{Tdn[/wr2㗏!.WɃ]8K2 T_k#k4ݛ%hNl7͏KRh{p ۮHΏ#U[}8bv[^%I7:qEt3/X(PN/Ǟ^*5\|{;\ABKbHL7%,]= {9GyYK3 !,ᛸYYm1byu oC$8jJk{gLy<L„Kߊ6 ߨћ[]6f.^1ymNrGQ(x~p(%?{bK#%}=t|9JDE~uI-.Yfʢ|5/\_ 0ŒaZq﯃j_gG5^>q d $Z&-2A"0f98=#hScѢV|ZE;q믪y 'bWf`QZ lyp-7?lv([^A]bbD|JL*g ' \X` oDI31Q$]%zZ+ʍs: >,L$T^XYGgH㌱z&k4$m:cSyÒ \lG*aRL3ۼuݏ{:x/& cdcIxjL*&_UzH]~]e.1񷚈\!?Bf턒%Tô_l6͔*$PBM6MDթ(ȅ/S#Ϸ`md f 3'$~/q*&H:I>fB`ߩ#gd"}5&Ced]Zb8/%!N&&~MoRp4ahqN@scl36aFN ;!p9سH@k/t3ȍozv52ü7OY%]!m! TdR{TbRF?N!LSQ1fPlrgCdiiLe/#R7siLX2WH֟Q8[3ex\B%ї.Y{!kM E~{/B>+ IGh,ɍ/iτl uO~zSΐdיgTc]藛t_:f$\_ĉƶy k}Cl5]jOG:f%l&i䐩wsR˱-҅rz,7m|al7ztcM׶ཱིvG*mbm3 mJw+!ͺC`㺾ǀ-8'z2$㢆,EtѽEJ$xw6rQcR okYYrHPFHW -k妽^5mIaz#7:.EQuWn?zu|-x[\_$hizve׍lN%O+KS1=|>S.1f]Υ!;-޽'%bVhiU] m)M?cpW_^NJ<r?* =6/BY{;CZhN&So@o@M ކ供jc],`׫ȧW) s]DQ=e(FġiVk߳A"a޴7 P0?UV3nH).5}|HMvF\BBy0 |>P1F@)Uy4Igq^jr렠VMի~*=Q(R_yehIr.<,xxYœ`"Ĺ JngѤ9<ಬ]eGoK j-eL~Y7Z *I>YYG PءRs4M^X2GšHw WkƩ"GJ)o|ydHfԍLmzI*Tcm"JS[a諎VGm~JLn4<<ӺƖ"6 ʓNpP0Čl}}X q^ᣌ:*xZdz,"cFz(/݌&K?A`IvD@#/EA2%5ctBZ5+]+_% uH {nwL[ϐ"5q-ЭSf%8E;YЊ|+ԫϾZ,~թAfVte-V<ЦRzO@hET8B ܐ"&VơLe戔mG`n1RCd!Z$O}ĊvymEtB3$T޵Tµ-uK/rC>wGT?5msG5dEC o!jvo~%l7}<8סfW3mɢ'x5[p!͙&jH>$NvX-'5z`z2U&O2m⏕~Dz ᐫVF?(]zP07я0Rh mB7WԊ6S!こp8~qjnhp[*O6H\AP\o;O LH?*B5= ԯ,;1\F dV]#UfH/i;,뽛Rwk>FCFADʻY 18^at#;/JV",>W#]HԊ̤i MhjVj[(OB00!L*mgURc?(Mml(LQOPK)+Ьrp@Dsw&63=7 \xD u>5|}3&XV~3H]4x%_S,>3Őɩ_څdE(ΡLjwDZ#zvǠ-i\7Hv&X^hO+o " #}a8. >xurm|Yhϝ0|/=h@m{?Y޾vD`Y$aQ&?Œ"bPX<$%VuM5#A"JVXO%a_ :7k +͢1ꍬIߦ,I:'i|ev`WэGV$a{HEzD|>h5'%Vn@% ZV#&sp+u_b&FYsSQ$]rqدYtx 27أvśgplI= &7`xe\5 P .Ԫ^{ {p@oć=.5f3^_jmzȼ)!0XrۿKK ذ}2v']Rьe:/o ITmN/ݕ! t| <\Ay7٢6GKy GO]T\K)ʑS ;ײQ-2:e5 w($W!uk6HƚI*4t4(pj'!%݆MoM/:W WMPJmxZI;,F !% q\5d1 iiwsqr6>^k5cGMC)ŧoNo4DgЬ+5yȵf#QKNy"GsvY6"^{yV27.E걚Y +)H /n)0U:˝?uc쟵fU{&mvcwXP<^DfKFٽ/W/Hr^}I; n{I:kxZ;}h-x[JàFKH0)X #."8*r\<3 2+FէE5рe /}KP}+A6u _zcRgAf?䕹PuTFÍz)m몿H\% "}ה#I.`M_+L:Vf9XMu̒RcƂ \7D9~ȯZi礍}{|iE ϦSuvgˢVz#e L^CCDi5THV;"6RfĊ.Ƃzl# `v ZtH#;)Ɋ9aD@7v/@l??Dz_cV+WWitm)WQ9)%qEa i-HZz5?RLx^>x,lGb _=أ᠍_$J[2yu}5"Sa@gjn!藊#{_i!%G``wDL4̐\g~ouΑ_شN[M}iW:|鉡y8*+& h:9KWn&eI!2[xMyGHJS58)|fE4A5*dՐǍ~nޟTka4' K\P)Ѱ>ZR#䞰ѥx'fR:'<|Rw&>sLҫL(N31hN QgR_ mk9b|?byM(th4Gmf$j>BXӤȚZ^Uq}D窝 {[iK TJhë́Ca]` aljx0O?8uQν?+* -X d\vdmA?{*_JǠ}0RڀaH[2@M6UBXRJF!/^|PRՋpi)E't<&}5CEf8YcW ;NSL#d:r5ڱnj'.c{gNAL6 Zcj*XV@}ؘνƏtW2KH2/-6贚S Țq<*x(Y2Gv%9 ifdg\Θyg+d<Ǎ}M٫l`-8Z(c"U\#_eɆTEnn)Z{VkSM^_OBUIf""KxI6r@}*3a&k÷e_,CbR~):׭|%XKRbTܓ/џO)5SƲΠai˕x*{ooevX/7vg`5*E(69mӽqӻT ̘-ߘט1e+d7GLDUބQ?9i{+ܚ™ݪ&lR΃QNPW|ژCV5pS2g&tX)={Db&qȯCe>`;bĺ>RFZ1OKi4Ŗ}Ei`tdo.4F2m3ĺ۰dCYT_[QdJQѣFAoӊV^T|h!\N+V/@%=[_m5cp'iG*ʂA^PBe© `k'OX0|؈kv -odwčN;>e/: rL;9[ZmA9S(ClE)'&KqEJރh)v/ :nՁt[lp kj_x_ZWE زO{~:|ef36]͡{ɲn.6{^kR4.ܫ&GZ5'LDSbfB(S5% 8hvWTbpPF—¡bQ0aZr7IyPX_j.JRq?mX[ _B70q {oq".ꚢgϑ^S2 t`{*[ÄM!aPM AI,^YJ;q`k˅p_*/h|'aDFe3K_ϡ%)iv}{=ň6NӹwS ~~:^Si=erz:[Ɉ+"]b2RvץE ~/WUP^#tTo$>(P>Q;H:IuOS6?!0Q%ZnWV%-\D>2<6^*vxQ0DžUZ.Qu%5)VKw-2NueD󪾁hL}6oh6N%:m8u?|{VFa^3"ېkٓh[ S -k#$hauD<^\~CJLA@OBDLWg9"RP>Ԅf!J~MHo~5ɡv>ܯg69A֓NʹI;jO$/C KIR+Ô"U̻^툄7zc{^:fޙW{-8%r ]nsTBi )O/qa#K"&jS$zxh6\r7ʅY"רs")6hrq<MniAY /(EW䋈8ӆN ١xH]@dOS5&cS߾1>;R)Q>nW4oѓ%ucP|0>|h'L3geHQ5IKbi)Α݊7:-ۇxƸO;+3)$ FuYc3Ш>}{ƞ*5ay^):]g%Uu%˶JKjwL,5]:BZ ,Xɯak&܇-Mƛ>j "|dA8kTT4zJ}j 6j!aCwɢxkz&ĮQI%P&NAcAϙ A>ۈ!4Rzfа;V߮,B"zc>FϲpGc^8}zq!(֏G?! E8xET(\k׻7U)OL=qoFӨirwO陜~^R'5nVd"pY/D#$|ZAp% q ,Fï ۴6Ҩ.fkcK"qlj{.Q/eZr Szhݔ Ud%Gh6uD,AmUZmg S@s۞3@Ev ^ԏQ꼊X*'ӳJ)_&řsq75C_t-2 KTw $LPs}Z2 ՉŔKM4>dF/i't"XBzbJ32x"}V>rz^}#~˘{wG5Gnf1N/gBh ;q"1eI(&6y!{A[fK>1UZ4LKMӘCGcunGLX:hlrkJ*LۓEc 5bԘ|PQO#5_6 B '>٢jC o屡T/ܢ\DG-?h$o< m~pI˶9tݘHs3*~<yǻ]P)*m6X63WB C$D> 6ȜW7#NyhyִzueN풺 -BQfO`Ox5 ZTkrjG-:J_KUZUJr88ôaWxXA 峉^lIG0?c9x|V[~$0L05ʍ$$דVF`)V"tj>1 endstream endobj 149 0 obj << /Type /FontDescriptor /FontName /INQIFJ+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/E/M/S/a/c/e/f/i/l/m/o/r/s/t/u/v/x) /FontFile 148 0 R >> endobj 150 0 obj << /Length1 1447 /Length2 6648 /Length3 0 /Length 7629 /Filter /FlateDecode >> stream xڍwT> #FFZAJc6F7 %!%!!R"Ht7sx빯9g@vcA%=\B2]# ,*&+hG{ PHP Sbpn($@@$d 2`0@ B]! }'g ^"-- Pr0( 8p' c +3.#,-uB@o`_tzP7obB@3O 0Ñ8y5tFJ@`(7w(t8"\}u! @(\< p~+8~!/¿.Y 頂rs#1SE0ܭn c@:8.lDF/W;@8q?~P/8;rap'8y4 }^B¦ZF mRVFa~"`8H$qg_PğɨtDhx ?DžP8, giWE]o+/c!\}TM. 7v51ĺp[51Pd(!\D: w0@``һ"p3ex:ǍҿTCPfND\E>v?n8ߺ !Q\G/B꧸(@2(O߀4@c@8{`h4n`W_߯g&Q0J7Wǀ+OfЯ=OHSBߕRV==v\O᫟gF#+ȧ ")hr{Y a3~0A>ݱw]܇* mQǦ!< &+GǮ ]i% l?-\;](7`bdExtz)Ki>%C\y}Wqdx 5cbZ$'ek-a5I6{DcE7wm- n)Pcd5HcVd]eޒ4W|+ݚ;4q9Zq,M?KH>NLRx:&dw zVA75'S?H'+wT|Ҭ"a`ɸG#HyrFdԩS消!IUSܜ,?],M>H$cY ծN>BM*JVKTj`MxhF@4-(^~it{muO%Du7Z;Ֆ♄ K{"ڢ|>'ia\, ϑ!ްLyɿJ(I:Jl,lu-pSAsS?l{[fAnEE n]=a'GzoFb*28%VoYE\P$pqDVd{V+w=Ki8Q? _Ok,+3(o_hF乜}ݕ`jgEIwP{mߴn:9^\(hDS~Wd[ik9-G5t!n7ET}J{UlGy]L1|TimáWIEAF=dR?m(kOnEX@*R^Fy`eؖNպ=ŽYKxCjEݰ[d }ޖ}`Jpc6iyI ?qЫ0<2 wFq[ߣfN *|s]sr# ̠֬CEl+ iv].n@nc-y"Z>nOYt0xpEoy*/@geWa{Ζ2UW3$ljڭ:̈́Q.w Ho+=`.Tn@tgR\VߙUȑcF<LջI2p24KD[}tB &8IN3[oyD9_׶к\PKJMF7om/@ta2@]DlCјeǦH+e[^T[TOuFA .bDZMx)n )ưJ - ⷢ=hDY[W=`= ɒ>ɶhw/VbS&Fwx;gWj٣kfթNx1"@:{`m=nL{ -]-˂$˸'w}ZG'><-Cb--|w\u<'D[}繎z[)egȆ5ICS BeXQǽ+Nԛ|Pً[{ssn ,=)ݧՔq&Z,A+O.],*> AvIg.<o1Y 7 "=F,9^(CCL 8xxd;/HaB0GKM9!*w? RJ3J6p~ |߭st5oRӡXmhd97ߐַdGLmt* En{oA (uBƎnw;H7\& yT./ْL<#5*mǪA~|n?7"/gaswP-\p;%.YrطvV̅ܛFP4mdJ¬3SKSFYM1OsϴQD&qN')8k0#8eaTW ),?RltĘQ"M!'BW}o 8eL9]+`ҁ.]tNz$+A'XI!y7ADm2ʘO/,ۙ0xO KnXǐ7Z?pSˡumTﻪdQ3LQs$ՉQ%+xt!kѶ+{ MNmxUok.*U{B/YӋ<2|6bl{-XؚΌR 4l{ɡ^mtG'3O}YC*âVm!9}͓SiCJrðKg>j ?y.GQ:S-؁֏Т&L._2͝f6< S +_tfXde{J'q!}Ezl*oHy|YN6<ۅ+Zq;l:7 =KџuLb}і}88aG2z+ЕդX1n/ykHo/4쐫%OQ*ow@`CL+6`2ßéK?S\\zA)?s V`,=Û/-45?sk%j >6!V|=bί쏡0jj<%PUeh }ψJh/ge.֥F6uyߟ>sMPn|DcSFᵣr6 זF1#"|m8/ssE3 ֡ӕyʱ-EYuB<Ј+']IP}GKУbtDqXnR"y<w˖}~9B~k]kszyOIJQ"T"* R)ŞY7l l!0 ۍ}n2I-i+٘B|yOU3?Vg/]Opۊנh59)Nx iT3Gn|Y0*CO}G;aM5v=o5}ym:^Rw7۽q3qĕ'y]]5֭l*rV/.a)TrSl3r3=Ĉ7?EQ\S9uMe7 $8:t'!&g_h\*8Jݩ"K OV} S[`L+;79Mv>%*I[-T42[^EC{:nWc!3JapϦ($hQD+?5p}qd} |V]+6EH[D&ݍz?M endstream endobj 151 0 obj << /Type /FontDescriptor /FontName /UJRPBG+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/five/four/one/three/two) /FontFile 150 0 R >> endobj 152 0 obj << /Length1 1509 /Length2 6994 /Length3 0 /Length 7998 /Filter /FlateDecode >> stream xڍtT]6H 1tww CH7tH7*]t H(]>>}kֺk}s, zp#y_K-(..; mmk#y5`>`rD \%x]yapn0 ;/koa,#G!e l #Ac7E~_,K}T< V_jiGV0d_@&ف=\۪Fv<#U ;=0+Hz ҃l^uFwd~@VP[ݯX>#w? 9@޿ !!= +‚>{0y|qϞ"P #HzW?H?#"^I#Kylqgaϝꟷ]xlJOl=J񛇷{\brf?[ɧ'~*@ VDK~UV+q }t8kxmqMBD z&E$S礽i@xRԈ}w_rI5av$=>wZ4?>^,Ӵ`uR7TˏV3a0rL*T$}%%O*w;J {_dԲ#YtZ%lU1IL{RRl>حXZNDk*wq0=/XTu:pO>:gG J[Hcby,UnۋnN NZ( 0OP#wMNFG@"|0V/@ti-J[ {IU|YU\?FMREt|3 $XOln hЮ ߐ¾粂W&9em];(ٗ.z#Bu-tQYz%;Cn&W4ƀ~J̈iO*dFfHGv3-6Sbܣ-_H;(_c="{Op~s6KȎ2R1.y [\jc~$Z@K$ԽQ8M*:솨iY69m*Վǧ J{04(>^ͼa{NjJf_b>"{I_&}n.z~}`~ԩv DA|X4Xq Q̫Q;VLTsd 1w&U@싵Ȥ{Yr i,0x.y|UΜ%+$2? Qjgv8tq`oz#i۱zLib3E6\nu-9ȃЪ>SMp%i,u:g \1ܾ=gn@m=Z}Ї^ECtv3P@%rpXǩ4q?cx.yp.pDdHʩv|j>[#&j2cEhT2q Ƈ41`4fpGw/ds|Ϳi)yY/7;V$%%I3Ee]o+\'T^ΌGĈ @o &̶sKl$`bR|Xw髼W 8$b(vMZ7AhSiSnId8,?齥G}Ew7ufp7l#O'٭J^ ܵ3^ݯd/) V3Op}ƳS9~tE^6ս1COslV[ܽߪgf_1Z8n f+4`G/0<<)p>-s*wMΏcf[6PN1g}ν5+bI):gxpgp 9eoR;ӵl.6rS LK$Ţ\$8fN{e9NNz-]+N49_iDVW- Gg),}' orPbXuQ\`u_b׵>nJWg~ˆnw{Fj1ZFaU4?Zμ<jA̓![ Y\<Ke_UplG:jb>/%#^dhA6>9ǹ883>\ah4͔ MêBw˨٫tRzח3+X4zpx!G>>JT)qoy_m 8)J|ΔLzW7§U]Z &¼x9pT͵k:bghlWҹT]CyL$tyqϗTas\9%ny}q}djz$ V,A_2HۅOmDIӖ,m'^Q`[!4r*>dtciz1SUQWTײjQ+b+*#{V?#: 89'{(Vc:Cr¯|qgK?Ӱ Q<'`-kjl1tfjr%86e2?jAM*2+n .5FÏMn+\Z/Zn|#Y!E]e2eq,$q+MH={|è =TgC~fU\]Vx2X]=].*fXRz =x T3),~debZ1m+Fu[wK ҽ&qԩ2QpjvIxM~ԐN!ޙQ2d4!WRgJwlcƢ씒x=־ wml..u@a$!Ɩ՗:w#67ڢ--˛xș5Q J񝲖?S?Jnߒʅh6-:e9gOdRsTC [2Un|D˂s XE4u9 A&٢\ׄW!cbKk˿3 tR}<H%f7eWY8V2"EMns`hI. צ"3%' [\I{Q).Uu*ت-,gh(#s!e//-o-},oaVEx+B0+^U}1޷e}I26V}ᖥ5;oC7l  oF­Q|-8|BB8n֔6tj!̮X|oɔX +5UVE40ڗtTuNu>߽(w%*0)nΤ3=XfMtR\ +8cawqem0A'V6ބ9}ώ(e8n܏}HV&爩] Te[pED~3䱞)vtj%$#gs=fm}+93Ygs!g#9C݊1 sFC_? obdoqaDjh'w@;IgB:UykWؘ5klRr22T\ı2S<,I} i'd &l5?%44V.$Ԃ9FNı=E%4̌?y.|`b,"]mvV=$g/{huZLvb֊I2i@N̲uDl25›r%\s'vZ bH*7F!Bm(a WfbVHBJO"̷98—;#. e<~%Yܝu/kS97\H[z( \cP;f$K_0n鷕3wK#TuXxҏ9祷+ߔƫ]eXTG}v1{ 5NJgXKr뙍~(y*K(Fuԭw8]_:"s԰s8G].3:Q+TYpX*tki+;?*qɨn쓁l*g~CY %mڟW_ETʽPg_ dڈ} ٳ"M%Eᭀs<+3tkz4Z=,fNSI>,v3H?XU$AH|fx*c];ZP\LVX#59ؓn8%HcQq0In'Z6.gp"?՚"ͭ1+sED@ q̝>ۢ( la[ސKV[*D~W=Mh>RҁE2}ͮW X}z t :0 .Y8~3;@-ZhBbv$ˉYj1CXZc˗d>ݪ% $v8(NKMޏ1:G(k`}@ B+/:vɎ0eb߹>%Ԯ G]~!f>O"8q*Ý=Lpbɟi"D SG[ޢ!RI&۸MWD~ZCu X]1)aWo#B{> 2CTͥj^ ͓wm"ƘxJo4cjE)5TzT8DuTQeVs{`i '>>EP}+j>G#IX7灯f}=ܺfj-nQ?ϘpE5_\Eh.Tw€)Ryh%cp^)9gLј73W}1Cኳ`Sr.Ѻ5ǿY}Y`εr]r͔&u;4̭z:wǹz2noN:{ov4Qw "/#N?KD(}tx'^KaS_xjå}^HKxa|)#+3t̵x<H[ejq'p-ǝE{R]d3Iʴ|`G/7ah[Fj>ҖF W&|)UXV'z4r.`ۋ0ĬZIs5Fɿ}e`ي@k`f!S&UjPWn"c.4֣ GqZ:|uiM2N/T'q[.3^EL CPg`TqB\nU㊠N۱39Ͱ뫌t]6msApI Aow1WZ3|R!+nj0̃$G>@Kr,&> endobj 154 0 obj << /Length1 1981 /Length2 14293 /Length3 0 /Length 15500 /Filter /FlateDecode >> stream xڍTk gζ횚lζɜ4dOɮ&ۮy߷ֺSy~$* "@I{;Ff^2B/):ގC&na&goqX8yYx<1wY2v@g8 1{O'Ks [sPXxxv,MrF.@ۏMl*&@ Aohdhd.HCpt(Nn@S_tF1QT-,%V7sq7r>6&@;W;Sn,@h/c] #@v;:yZڙ,mIYFz_F6FnF6F'nQ}7;g'KgFgK2vb@;gt|TݓZٻylfigjSW&5;KGW->Dṕ.fff.V0`+o%_}ffpFn@+O"8 hniO1_Nc0ߓlxcws$E5&_ `afp}|7RE#ODi;3{Ͽ(|?4=^ o1@?clyv7EZ?Z#[K?c#?jr@SKWv1 ;sYhhbbO>X-zf ,Gk&OGV?V37kX98FNNFp@o4z=&F;{=__0I%q1$A,&I08LE<\&7qG̏G*d_rt XLf?_JBX?HZ?xY?3?aH?9uxlf.HY-zWQ{j,&??H|r~p~t~t~dG}?2~75quH'cf@{Z|wIY]4 NOH)45YANw")#}(k;Է+įǭmIJ>/ ӻpK?~L4 0 :ZvP:r#)?Hy4 -*p~)aQ ,3Ξ!ra E@E˙z'I=a+8^܃KC~6>M-z*]Zcɣ8>m5R]Kr@Iue-N 5_]ج]fwfVi+<3 y.:o뚼=ly92 _?cYm=j`J0ZksŔjhߦi)|&Zvr=+X<~v//6CgJ0NHR兕 !jgԹ=ҥXEjuWm 3Ma/a2]P td'$"SX;aħy-̚&VdhMl&*9J-J}0)?e:* 5Yƭ}}2/bn)vTQPmSާ1 5mɠ2COÍisS tZw/a5Ϫ{+2RCw/*=fAQbDBlfxQ@}yI2(]?#)Ieޱ:/Wr)|Ek9;@!EDGn4劝pښBNz#oPfϛ#ue`j/wּy1jGƀmލļ4c_t̨U"&ofo>7-0yVx;p*{:%36EF??A{.o}媞%}̢-^GP$lj1ac]g!HkÀeQܐDnqls[\=[J*7L=74 L]Ü#E#+ȼ5oȟe pFwm|~C0h՘[sܛ[(;Ǟgѕ]AZt4bL3UsxwK=ϼw۠RjCLRr@ō 2-I[W;Y$m% ~cyv3-a Hj%- ?8=?5sqXD=PJ8cdK2^N"GK!|XSEQD"`#-p;"^i8w@w{. ]ӁO~U9/YwYY+bAPV曞R@ ʠA{fMO}?x~ŭ?nnA[T.ܲ&8DkZ^@ܳP* oue6jd#hD=FI?NȄ}ݭ t/{9tsa+¯ZώVGJ%R5 ۆwR݂Up{RgDF/l870|w3E)sܿH_Ut' +~N}`"4\ݲ[,=L6pԸ1QQeGFIzzqLT03f/'V'J|eqK~ii! Ŭa})Z|AX%mu`V4< 9q?0mq] g`^o;(yFY%v"Hp|CϦj~w4HvW7i=U4$wi}y4p=-ږVPgA砱ׄјKr9̷ CZp~B笠?qEDmJl1a(M}F&IJ\ۦ=4cudd5(*,Kq=T9sb[L1iYPB9@ئir;"ަ9q_KiR]$phKȍ͏u$o|oU7}lȻ4P$R.Kf2z0k4N,1LYZZ,"jjo7;Nߛ&AwlV9xPT;ah +rIP Lx`pux%"ϹI[?:W/S '$}SޓwC&-GBS@~o3DIbaQkD+ƉZƘ~AO.*HqnmF%-/vH !x-j [3H,/T6:&X|ش흤xۮqLd}M<:u[rD8ӱj J❔v2l;cDP T*>$I*Xy#%F2*1!G$[ P(IU.v0ՒK㌄ GL5(@Ludbl}A&!*żi`B-54aNU+ @̐' %m h钐t܍^].n7Vƻ萔V=7i# ă 0̠o^{P/ioԈ\Tm,ݪ[՜<Q߯\nRyʷ Am$6)0>eDtS.3&=oIْ茴ΥIIau"Ժ٥S'5,ܲktBX6:Cq-<Z*k֌n.nVWJ2h#01LzSrKls:EhN|{fd cǿPd0Ya›cˑ~+%77nBKpI3޸HU QtmmP[DHo| ősfY8˘J)חCd?,Pd:2+Z2ei`)WuKCwvqSJI~%p?($U03>6}vE.uc!9mt64gY ^R)6/|&YtlegJЗӲ:]"1MҷsHԥɮcwd„_ul|S[7u?v#q{{WOM:#OB T=&^ z/_a|fd B ?O0&!(Cd%+2|hjwkbO|i,am 3̍K{WoSB7E_XKJUD| km`ec5w?ҒMF+d_o %ZhAоi1X5RS*4ܑ4b?V3qof2:8I\b魊&eA9GJۥ+Hw`c)'f^GFk׿DǫMˆFu#I_Jפ$pcCi4I&Boh2CSuTζv!ⴤ]O r|a9+HL9/\StLG{G-l%! jtJdrDIQ O٭')9U}{5/*攚ѐ ѥ' r?]cˮkz+7ƆB-r{+5ITvz\/O>GZ֑)TɫE̛`@ (alaJΨ݁ilc<|"eL3DuY8 F1'kBݹ% MXD bjK-|-J.o;:QڛhV?2}؉1SKgwcN¢Յ!0{9,:1cc|7AID7 =1w~?Y#9CĨ- ]I& Lo}8_2tp$R~1ٜoS Nzo \Ho>:縫 晴(R.Ҹs˶ssLQE9)uDKr:~*i䞡,%Y7U$S>g |cεN@~cspE-= 3M{0|m ۽h`urׯ'P(!{Toe Ѧ,w#&iQ ,+%Q R yWvuNf8RW;a4DFCddV#%k}yEZzLRKqVYʛ*sCVI7o܉ӟ.řC6!i6#XN)-նr؛ZK]ZIt4I3 w3Q<`oJe#"67 G3on+nՖ8ϗ*yHV=~ hGreNAzTY-{nh4ݗFE5Dn~49jy>N.Y k bag6YTSSZ|c`pŤu|]#`O'Wي?#cW 7̞d9+dd9Vp_udkv-r.,O$z.ؤ'?к #j*U}K^cs>Rl0".=?9rtοu,lef$s;X-uX/~3ȗ q[(1ЄOPͼht˝xD`q`k.bu߬ݕA@C*! ֲ8Oڦ2wY4DMR#/^=YV5@u!g4U bn40Ot犑=N\*Ք.pyS\@.rљ+03o^?-8 ޳ɇ,-r8eX+Ux>Ѥ>a-0 W^$_:%3K8 E ˁ=c׆~ M~ڒیpLQ Ut&3ysd޺^`~ʄLSz}̰ӚmA%im.(y2wbK|l.5JMaZƵc-|v `RD>=2FXZTv|Hқv vX$>]$p[BQp5t8̳y8ARBjXZhZHwsl 1Y8|{ 1rOQZ5 xzݶH;gOzGs rOE>G1hyڬv^ آB]4a?V4>gG}_9Npյ&-e3flu|~򊡡t_QC*`Aibo :UY-X#Afo^hvlC,8G3=|9sVǰ Ev-sbGtl1E~YcUj.ϖuzIP'nT8M8wdv ճWKzGֵ"*ROv nH^ QxڇC[X✰k5Y'sQє8;b2\RC< >J{8#ŚNyœt*lr@f&5UJ=1{])ɖ(rv3k2z6]0޽Ht+PN%WasS0t彶'[D"]hc96Do@+ w4 "U)~f iQU%HUjGM}Y/DDW|*ۊ޵VqXlAѽ 'r|2 >1=B+Z zBAD[=)6],SNV+"}>{!AĦ:l˭PMhx6fO@U3OyF'w.qn|Oh32 _KXHVtzV6vutRU~djGWIʬ]Ӝ_8uPl sI&{wgx%,)2:Z8Ӭ̻c]B&]G3Q!i16K&Kv ZPn2K L3 }?=FfvWhƯ4Er}Phjuƪqͯu@e2 뚈ԡT/0:<x ʛFSfK(1EQ?]dwbޭ_i[ [NzTD*d&eSogDh*=[\ aYL/ȨV@@덙\ VbK-/6PL Mt%e7J\)FG T5,}fnxZn T$/ P``2ѫ h߯BNjhٸŒOkĠ.щQs w6Yo̙ӷѸ8^GDr,3j͕҆OgҮ]GoO<%|kHR*Lȯkp˅QY.=8x de^rA3Gӱd%~fQTU}%; TfoR(׏]qe:z[GGtAnR M+pqQOR2Fp9bs94 i"O֕RkMys-xņZ(+{/JLh(=+4V*L6T]4iO#"rj;QQD`!V݆Rj0Ϩ'&+q*dhtiޒqP_sVb)o¨O톧4:@Je6-imu2 Σ FʿtJ՟@~!xºuN·QR]0Z"*T'3S>6gV^qvׇp 8 jZo/Y22Be`Eid*72 漄Qޕ~FBZF>IWJ!t/[PGb@҆˛*ȟp΃]غik4՛ e$J7%])䴹세GB8SVGdž`.iyH AE^`^Rd#W~luwUZOdx]z?`IGg@w|UY1V+sɳk ʊۻ؃TE;tPi{~0t Eޡf2 AF2*F8l=]"˕zB6VE_MFj"q _]Hسh5ِJ8K1妯@qS QvN8ŭR6d/fjbپB[rHl-9x 8SArat}aGhL;LEA%3ۇ - Wp&uNTO)xUZh*7g*>֭@\q+:]G|*y -mSI&۴ OЀx4hfT%_"XgPB0q+I 9Z%>z%=HR9ďY%/LenX֏g?Ya-bG"D5_`fΕ!3APj0lQ uM#v0 94]r)?+-=Bx]rQ72yD4z4(EHbD{ѩj㯊\4Y5<cKP@ӗu!y:2̷oYϘ(Gfh{ +ԠBDkP8vIrbNlyyҧQrm2@;6J!>h oV|} ΰ4Uhr%)KQR S-x|>  b?ۓ: wJi8 Gi' [ҷv͏.ղDL7Kf@lc{oSa=g1U%O@$,H[q<, "OzB5^\|+ci-Rl`M7U(SyL#;B.Aȵd ȪM8t ?SR"0-Pȓg9NWMB$?ܹAfQJM]y,ITFF pJy|5)H! 9^JXD$ ԺѕaJ/ GԞAezg*6dlT@KfM%ءhWDEI6Yv 65!v .V }';'{h`IC+ar|W=˹|vLT,_Q|LRŴn Unzgq /~'҄-jn=Q=_䳲: I}R-;zv$P+zSMZtHXQ=%UkK ѽ'ͼ3+v㖯 9fzv~}`z"V wt/J6/_]9)`q#O_FUdf&Qx1ɹd2a@T+g [>(0>gQՐ>͋3JtR 13MAꨅ\F*_*etOӞ'NL>Il2~CEީClC˥~֮ c 7׹/yгdBW/FKeh!JEOuC0ZuV*VMe\^딧,-_N㦌K mNDQۂe%T ǟX0rTѶIu.K圚62) Е5FCy#TR&!>~qBj)hKɢTt*T}>(9ҏY u#F9=ۥr;GPDYDz'[[n5TA=+:Wg& Oa 'WK, .i+8QɊ薶-'PUcѷ5^B|w?]=M*H_+,}X# 5hQ 9/c=f=n-6L"&Es:Jp]j'Ȭ$ -P@S8V3n@m МV, # wKH V9d fܨ% (>x Bup, $_,nS|6[n4=.V2r5insHtUuQAcu7b=)|V 3R{GDgx*ä'0#SiCM9זG+)|#1FtĊa fl#UoSl;X3hzaK"> endobj 156 0 obj << /Length1 2407 /Length2 14766 /Length3 0 /Length 16178 /Filter /FlateDecode >> stream xڍct܋/v&jlmsbf6v4I4͆;ݽ~k֚cgȔEMnL,|15yuuV ; Jj1&nUptȺX\||,,6 :M< LYG+hh D.f&7+=ȣ@/4VnnN|̞L&L.B Ok7+*4Nhb;9&*Xjn&.@`gmtp);] 5y?`<V&ֿW!kML,v@<#H$W&I (fjbjm;Kf@p0s:"Oh7-upt--~bĬ`f tp t̬;QvdM>|]M<7w?Fsk37)uh k/ hY,_3͙ͬ*/!BwEEl,F6vv+7 oCEU6ox0(`O/ohl> 'yR[VI/ $L+lw7В(8Vg7W,"geU hlff v@eGWm-ȸ Z{p0s4l\oШqr|YA+kkLn (C? rqE~x/Yo`#6`V8@ix&Ȼijbfjgj @ipCgJo rah()f!;(SsG;;H1 )o;hұ 6~$b"o (?  ? Tߣ*:A\ql9F|PDRv6ȘrV tDtT-';D z3;"Tn@s4DG=YAc+["sߡ*ee'|9dvr<? (2?tADRN n]y]z?l!dgҸ}s'@aQij-#(IWփTK ` ŀ$8ajPC:`%HK?>#աP s yCHR ^`1 P8Mpx:SԲ_O0:0D9fäM uʸ:Ǿ=ZuȽb(*yP2t$OA)­- ޓY\rtF&VShb#~9ۚTigm5J١^4g7a{]_00JXs2@1n,RR0 M`r'lŌ,-; ADv:R4_n7[(w;P5Yz%4 ;E=,}C4t m²e9%Oc& ԉ+%5g8p(MLxаӘGj+I;BJȚV">4u )!LEz`Fb0Eeň=F̴ż&M97ԗ0ve gD=xG;W'5sQe S̺4n ff0S1ڹSftvfqqTF|ctgh-;C807sˇI$d.QԼ<6R ã? (ftbԬ-Th}v W d*iާ}I\d] -&1b:Ae3: bZW/eoWD9__˻9>GĸRd2[t؏ZE͘-8#A|>!J/XՒΗ$/Vς)Y_O"ifgFzX|.ΊӢDԋ[azf?HwJ(pǴ\Q5 3w7stB<hc@h"Z0y29Uh8lFR3HrT 2ou Gr*q 1[5Y7odo k~Ai#di)܏5;gXd䢔0T=K`.J^qTH;L_'r|7g=fNa|R1`Ab c#^02qF8黦A|S"aUw/b\lN UMiS.R~c5qA$TfK-հ,3s-Hmr&j4M"0cEόMZg|=Uׯ^yW?0sCx2^3IqLZFS'Bfd(vbeb],t SLf_"Mv |/x•=(Esǰk 5EmB&>tr cǸ`H9/݅,njtS~m3>>֜ <(؛>8&|hIK^_uM[6Tԙh2^(GsVGu>_FA.[A[Us|!ݱs&wu^,GjNgs䁂G gH%%,}E}w9X# jňUJ"X_&!5=+j`ص{:#Sy}y$ W׸X9 "=卝5F@.+BTs;U"g#{13_?Zjc8S')wC'Ǐ;YqKU[K1kqX|ԒQ ~53.WM5D[.Ք!0sf{{#hۋ2Z|g 4rCwreͼ0=Jdf iL:׈)UM#)q0+/vm 1 FZY'm޸kXsI|q&l8Sk .fJoB7Z=Dao!>ucKM3oji|x%.Xx )u aAb^7 p>kX4:WSANLpc y U'}Ʀ@j{$39C9@;ss&ax AuCKeX4eHc+'Fyl+a'ft/&M(`2 gNMP@+pe[ת?r4Kc,?x^!76Xs<پɍ4rWivK6fr"-IBN}S(}/+k 96asQ2`M*CL%!5]GRb HXW43'zua ψLMb??G켕|D3DP> ʇkrܽ3oo.xzC tɩb޾O!Ep]LEJY?ݨuvcmk=Ȉ_sǦfM>XLV\TYiC'=(I$u`5fquCT\)(ӕDH!Oc< nľebA$j=4uAyb o5ٮ8F?KfO~ HiAD~0}/ o&= Mp N|˒X0ׯ7=qW0&Z[=NM$b!9mZإxV Wun_F\j{ g7fSԱ&wwSmB1RK2@N!zw.Zw_=#_5gWd.?Cǖk2n8m?xS#M1aڏڕ٭BQxvc0EKX-3}>ZmH&苀bu%2ڱgqgP6mA@>?YpPnͣ!]4+ +-6gx%^)i{ ܯ䣧9mckbl,J&Rȷ㯕G=aɤr_4ni٧VvItYFa|eprtȦmИ:BHVW{!HYA@SQʁܮ&A.{xyӤgH+@NR asohO 1C=# ލ`vxqAһN-ټXwwO)k"2+YHӧ6>ޤ9q =hroψo$&q|CUcQXށw0ڋ֪WIfC9a WDE_P|p?fLwvi>͟$hzYr3*JV@О|{C7ax5d2?ki$v%F%~^tМ_ɵZ3h#(-8i)=d*c8!Ǒ݄ gT(SMb"I`ߢZpΦ AN[-f#OODIWW[f-6}}{FDJNS8OpnvcQxxU׹#[ ,,h(2K[ld\2+h?ѽjML'G#( / ɠ;~P~Fhp4z+Ћ:$}N1smj؎[} bZmTeĮ]#`{mmxEAFQOzޠ,^i{vd"B z8 <+]oR#,FRT/{TM?\HVI Q3=8Ű2zi}3u ARL aJ>G*a@GwcYz;$ `be2G`,W>ziJc `^\Ga!ӥos_|<-HtӋ5oS]UJWJJtgU cTP RZF07̓ΩܥC>4<55wo2sʆ|[ wbhLtFlG.L!#ha'ud~ \!&@껰4~4)X@R}ٿ4M2+rhj,m pS 2!~B>NV5!ha\lbeIIWnj ,m ݪ3+{Q͈T-:G5o̓mdICxJU-Hޱ"2^Ĥo8}S99C{C~0ih

Ȓp1qFwg?5HԤNT5ry#P]$~{ YP'5JG(\}B"j`F3'FS mSC/t2 b*&я"wgvC=CGX1UG5N_the(^;L+cQ|%- m9 Y߃Hq `l1˟`^5aCߑBz't"n\ܴn@B%'lnWF Jb T a5l#3yE/,pn>Q?fz&GkIy֟Ua?$TĘvSx6Ec5[X*)I#U,v Sx91Ye}O)b_4u9;l9ǗrJ[B[]3s\9YBQ|-<<7R'd$P&t}ۊQ+l98,.`DȽ8n:8ʂ'Vߩk"))`FE=¹әLfP}6i/%fGtEP/MYqOnvhlD:3eSoX 4OZ˙P Tt+*;#b{`{Z՗v^v~b  Z2?Qg3n>pGwafJ)^)@b/lwEX&VVdI]>!u$mrm8zwN?ͿZ:~'6!kTNYC)PVK LUĞA'g*~U ~B<}Jͻ }&N}v(PFeϵi]FίhhTܲ*S70+ܴ/gH.f![C=}J}쵽6VP=t3 dZ|rDH L=~dPWW$len3 aI z,ECVAN`AyÊ꓇ DW5M&!]uՄkF'zZs*Gxein4X~R [a6IE!laMgb7-v=x3y=g1/t`9x؎qIˊGڴne;K}kT<ÜZR%1gakC,W;*HlaDI"NK~]/On*OTgI5T+څD7Pa^ wzmY^7>I2,]C{Gm~./TO论6ݙ/k?Oi?kD+h~8};k iG*n4^Ð@,%=J !ܶ heaFQO_ts<H % _:F namWE7UuLmx;u$ޕg{h4Ut54&u7VknmuU״I mìI#p%uDFa.l =ñI;e;zdhq7f0j bm![)OGF*֟!T|_h_Jr0h7T}`.{ק  Rվj)x'փFh? hf?/#cSXXH;CRZw'ؼRˢu]`i4o ~BMtS3O:(,;_i 0F+sf-AgIKM3ܔFV7@sKV)1%F31qlደza-!Tt9o{ppZG]kj-XBoNs*up13f`mqC7 |F%X9v4+ rB.C##Ik`hrDDC LiAftւ4fTO"pGm2yHcw;ʗ+9 ɩBx}-Am14Z]f D!AܪrMt] vAaa2 3)Rz)N<CBۼ|Hg+U~ӓO/&\4\sֹ4+: 3fN4q{k|Kv huo"|lZ~GCoCx9Y]ݾZ3k3/w -]Ģy)n=k*7 s]~blHdlb[xv`kPS "UCjnN곙G˃ ĐqAyW%7oIƏ9U&`qƭ? <5`@a3ƒ",wz`O@Eeg9ve \gS2UWVbAKJ+~^u cVRϔr8v HګyVv:kkE9敾.s0s 7ާ.6z%dvdoHyTI5l}Ӡ\iG,F6PJnl_ߦmPTܙ<Rߏ<)Lx붼`V MNDid|#L2sIuޥLҤpffG#&´աrƤ R~MCªlHӖ\ユiND gApS\; :Y2 ~$ìݼ5]"O=!ۤYEu,c16|"Җgc@',[w047pn chIy +}= c/M1Ɗ()v-ot@-B%Me\$,ܔ"܉R&{5kw+yd@#LZbu-*_բ- -Nq) 3}6R ):ڰFBFϙgO]'E"Ew~ I%'D5jϩ&rMѶգԛ6b c(tk$ȟ n.(D>nɒwB.L k|\@u3d%w 蔮w^frGMZȔKq/`޺+(ʧ$bdz] >04 iX n(}qP 3vZ8`,F 3 E L?a[A~<z}pk2:*]pGك?Z"Gdil~W7΄$)t)pR2r釻 u4(~*u̘ *jt _]Aɠ3=~N<2f O=|HW=ƛ]0E_U;|,f;u=(v{a dBW@v ;u+_co)!cY4|e+#ƚsŤ]?%VvZmt9EqKŭN1y61_bJr^b{<;5 ,wLdyaLMim ߏ#1g춱eFU{]A$ -U% 0g,ibC+F)q!2ç+~vZhLhx~J!&O IAj8KϪBqōIiRd>M*E] NXjbW($6)sp SAiTgf_YQ mgX'+;q p;]|6(bGnbzk8Fk<#X' YC.;7e?p6Y֢CԎҷNqlEM4.#Ki :` 䐱![9~O3Ǽ" 6x'$8HSeM9-곸rLfgL<J —3a7ovS.<4gYeS> TQ)n g)drƒmu(?sh2|W˲d"kfB?;ߌ Yv(Is$M \=k ow&gS8BXxw3:~I ^g|S,+:80|kCsQ++P"M1Ιĸ|ڒ A*m}SHCa7PK "C{͏{"d4)q]gma{5!O*guZ5w+\珴Lz[b}+Q?<˥!,gIXLj!GJϳ`HM &THU8b܆Gq1WͼqdCT[Rpo90\7Stw1T;۩#ir=s i/}g^P;:"@:ՆDȾޞSba0{zAM\?J*?;e}T/ZԒ{@-;_1oUECm=}!gmxz3 iӑYw(*?Tâ搢e%r5heqR9>tWVuϚ4ySxH:h&/4)vӸPS܀щJ죢p,3Ym߆`ܜy\ Y Ip\zp;'I ]u<,%%sh!5]Nѳ5ۣe#_?jjJFİ H]&×tJqC룸~a.U z\n#eO\(lN|겖lmτ*YjR''Ȕ l[ p\ƼGnPoV*8z[5ֵOyTW+IiDڎfy8A^Nzm2d1Kxran*++Z>]Qہ޵ƝHȇYx5wNTQF\ęП*K͕6.Hlv{S0j}lq``ś̫iN[/,rJGW"`C0sV]}; 6'xl;?/+W}( QLֶF`Qz߿PQ,ֹOҊk;UQ\:땩ETj5OZEQ 6+ڳoX~1NW\#Kj }AHZ<vS[1=6F?s endstream endobj 157 0 obj << /Type /FontDescriptor /FontName /TRLEDQ+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/A/D/E/F/L/R/S/T/U/a/b/backslash/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedbl/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/zero) /FontFile 156 0 R >> endobj 158 0 obj << /Length1 1516 /Length2 6778 /Length3 0 /Length 7794 /Filter /FlateDecode >> stream xڍxT۶5Dz H{ޒ ҫAzGzޤ+H /z ! Cܡx(Al(LrB0 _X_Db;"P0@CY>nPG$ߏv_LLw8@ZHG "0@?RK:"||^^^.7inЇC?? !v(Q05nPo9%?~_O(pϿOGH[S?10/ 3ϿNoQ][GF5=  M2 (=CPBwO){`9?v[(JHlh!PoǐZ zU i9J^8 8nٹق 0=,m<M0CſQ{;% F]$CF5d@nn(oա}@ <$*N΋g{gm;:t JɺQ7[e扼 hby?ՄEonjj>Mi`S`YuɈ$=Nң'12gKy<.'S}Ll( aLCuc<3ed^GZēgzM`<_w|4m@iFpu9 :ch eRz;ЅByZ"MK*!A&m:Oǚ=BRy}r kMv`g]d 8 +?feͱOC>MݻNL}|)/ cp|- e!UftZ}A |mH_ r&8Ѥ+{^R;RcN%adǚ#!/a6P??K[ELVlq)XtPs-Sx\, Q9}r V4 ӕtEͻz}߰N4mJԑ׻3'"FeO-~9o:7k2EnZ2z꠿-m[ ݈SX19A] efy+[ߘ}7~KG[VMǮ?*+Ȉ7X N5y`2TZcH\@^O}tY,SWG>>r;)hD>Z+=h%-4M+4U:Ѽشh[VPMc@^]|^?[)0-akf&O*@MR }G5rDVؗ!YHαRٻF/r7~ V.auzcU U˕UoH40.N*P#2V<eRHK,`֜M=XOC4+k͝7D5KLFggۑSҵ¨hZ&/ :.C$2 5iLӆvx&LXdhd)R H!\eW94=hT%sް/9&I@-B"[,du"m j+ mk$~a! BP=Y%ٙg)+RE[~YYi{_. س)nYZDS"OBi>kD]?r֑>7$qE(=[.H 2#Y DGs k٩%(,-aŽ5,/qcÊ#pM-zT:UpSDnڵA4iJ'|%p:+~)|ܒg'0/jzpX66l(M9v>8qίP<ؑ[<ZºvUvPhmy7H"S'ʳϺGXX SQNo"eegDqYn"3iX l.熎S=s=M,gxj 3Ykpjy ɎXUh}ä"@Pr@xg_ G:6}xZJYL$DÞ1[&?G&Z{i4||g4ۢ[*6К|o=Z‹jxN*ۅuO{Oh҇Fs6@JKѼ#1\s%@C22h߳biO'&cO4OJFhΒ_gbwlF)A>mOȌ.EsfMΩ=+@8j\{;㯛_-yg)|٬GwvINv@xbEc9f#!,*o1:0NEqDb;ż|8^<^8MsoEN;|o@8۟W.0 BK^Ďr@- #B>& gk8|_hXpVr/tqXYGRWЯ?xݒo[X3o=Wm&E}H5XSч*>TzZYY~5Mg<-" 嬥;0ڽ#=ԙ-9Io1G/j$EG1,_lчbdv6&Gq~t1yaΰ3?+qEsbH}"ƼD]V>/Fs|2۷6{py=/36{OH_g=[K)C|v '>=\wwSpH9ڦ$FH ^^GZ"ݠy#HDl]FzO=@ == OOĔ ۩Y*wyaZ ^+94$k<\9Xy엫5*(WujM1pLl 0wKMxu$d w[ܩ0/,jBMbn$ 5 r BJHFpn)`v?"BɹؚJҮ-/kc覰 *Ϧ$Z<8>7H|o5zrUiLzh_2oPz뽆lidrZj?PoB׵ހgyA@!ғB*▪"1 F!5>;#oRp cU6pސ1'DfIJ%4=MR(GXP幽D, \~,9̱{|/\g16ʅ7e|}nLOxl!;o:^K< > |g_$\Gle=bЈr*-+!&5J̱^0 ji|,|yMptFTfcǎS%C0,T ;7iӕ;QSC.&L\̋?VH;?\\Xޅ1jRꈾ*OҨՂ&@$H)MK4$ L)ƥ$R,V͓T ܊\?t,f&Ю葱zvkW>15ƌ+hҐ<=O L1Ig~T=.fHD=|%;\3Ra1)v\TyܑA]O9f8˘p+Zu\W\}J:#Fkě):YډMJ;n`v&NߨHr7&\TN;kme߬y%2Bl1Xp;厷_NYOң+`ᔸz9 ^SbӐDudLthn.cg]]]=ww[r?h簮/ir …kB-(/ ପZ+r⇚HB Ϧ- /6^m@rx҂:_hO&dĊUP*ahR>1]H4u8;{opgo38HJ4&$aEn=I<=+HfԒEY\;'ځ>[g&L_M*59<.^_luV4yݕ^i˜w rNtgβW Ciio晫 b Sb#|%DD㾦U}W„+F,\ɋpkDqTf!NuG,~*X>;QiI_,=ԀnHϠ:YY_aYn6$X14xRLNm 9|<?\>Afwn 1C*Gq q.zogsN'V*;E99xyO.F۟",\'ץCx~Q^c F5|uv7x+s#1]U"! S饚ǏD{>+k##;B.%"rv/̴̺^h@Ωt-Lŝv5KĒ l|J|SR+낎ӂ!0UWT>٠iRRMhҗx5%8WTUc TXQSY=aJȞ,x 2_!e' endstream endobj 159 0 obj << /Type /FontDescriptor /FontName /OPUNLB+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/braceleft/braceright/element/lessequal/minus/periodcentered) /FontFile 158 0 R >> endobj 160 0 obj << /Length1 1440 /Length2 6268 /Length3 0 /Length 7246 /Filter /FlateDecode >> stream xڍvXm6RiPF")-tnFlN%yN)A$3?;wW}72q r@U=cK ,&H 6C`H4J9bPS~zhP (*b`ߎhP ꎄ@@m4 p]0H;{ߏ@>?PTVVZW8PA (gpWAhW >{ENDuƂ;E~!g4B`w0. 4Gb8(NHG _h wA~;v9(Ht&B~Ca0 D"@; 'NE:Bh|<t>;9xGC ]pX4SVGU ?5$:(?HOp7S !p@I, DxE~7rA2 |\.x?C#8HaD#^㛏Az!`DlQN^q_ Uc Ceߌ=>`$PTTF(-- woP(ɨz?yߟ]4^ o _+Y_ qsree?PgpC߮ߣ#ݜ۪Ce,Gb =p$f[H_ Bȟ7> /~`[o/?T?OLR `^0^dbxoCx~h g[Ł"(fma<o?8(Da /wם@x"`q4L>uha2w4E%XvFJx&^^NuU/ޟj0*|dܗEᠧukflszʦpvN&l7$@}1itrRYvJ;OŞ‚{0ƒ Қ*yfe:tF;Pie:Zĥdvuo贗K2ykg'v3?ԮHJN`z3KlֵLm<޽S{X49- {zFchzd6,xfC{I*ηWB//agNcnUJ2lfuFvH%a΀"OqQ{1,&9<,%SL׼@ww=kS"t\\Y`+Cb/^lKq~(N@6QWNj̢!%]+2v 8jʭ./9s%Sn~l kg}7,pp'(&g_R=W(&j6+M)O4.y]|hf;nI6[]A%$ b 2?DKF|_[*KUׂ>^AAT0 u}f2\^!U{lvpLVZM9t˲aT;T?[āAZh')=$>@'c鋾9%ҫ=P/8J 4)xz”aJ1 Y7XDRc9h %)%(\~%6t;yW?d{Kr^;7!(d%]$d]7xsD`X`$j)wױI.Bdϓ~p"W.wlY]/ܯh &`Ĕ!m2lNYt޲4ҫ>]( N^ә{0~QWBI(7\9 l (eJ[˺&v*({\r /bRswUE HC;u8M(b]FEQ#j߼% b.Տg,Ͷ+u#Ocn]rXk}# u# uԍȇ>=F|J ?Rt^tMr5o>J1vnR?ASr^L`>˫ֳsÎsEPy Z̷ݟ^ym5**vryXI`9P^xI/m?6֙y@}(w%G{EIiԝ%:{`Et~'ĻoHuAֺu0%hF h9Q;hKւėea/R,F+Zz``x;b&.i|,,6|.Ue̒oXQ&Sk  li.$]aɏ]|+?I#R F6^ק#d2M"V#[hUߓ ImF{g!}x{ԭBYѮ7UPt&Vb^½& i'ҠsM)nSf{8Y `[njd6 >oK(|oح0}ױ.t [έygLдC^'k삻]`9g*f:Dfd&mKN!aoOb"|͈v'D8Ổ,_b],]_0yvJ^I$Y^tC1}x7k@^?@n "yղ[PEa806;ݙoadf!.gn-&>ݲ&8~_|EfiI:,$c)S8˲e[1-vn n&|ÊOAR/1̊ϔ9!ut ZdX2}Z"X=NMwR3v&y7G#X1/cj ro#^ ՏxcKl)0\&O.-K8# /֌V9}GX9{#\j#f{ M Yq4矼O j6'CPO̫Ks4 J=Gځ/v>G;T-Ը#?zWآ j%GLGJGnR_xgȝR >HUȰ^F="7tchtٖt=G;'zҩh+ Et} *jxY*r|eA%cy TߢQeK-}Hrm{Ѧ2v~y|8Ei5go59:$RYxJCl^.W~ѩv Sړ& 'T&w1~%fӾd7߷_%+㍗q{X>Otv2_^FҒLj#{:2ezfW>v6 "VcS|hl)1eS]5 rRk$> QCy(T1-ohyQc/{7љ"2˩ՕkdT=QSTyӂ\l D{Ϛ dmH"_mI𳱄1hC4]EgG4&k^r^}#KW[1&4 Z{3wKkw;L]0DZNS,D~4 /1D^ӎYPꮁ@i,}Uߐɕ}{ Ro턮,険t3 W>98>;y_Y1a]1V< )Ys44&7+?"<'TWek`,UHNVu"8y!aK3SbW)8';y$25Gxgf=C)u RpES a0ZLI]["' !< 2D<]) VƁAkuJ1O[5ى2fo?Kpd s;:ݻ'ft~Y?-;+:#Ws^G[c%lCL& ӥ)+RRf!NKb_= (=] )vIN lkzV{:L@X} i7S?XOXqB3"mR6Q93et_1Vi!]FD.ݹ)TP:&^VKF鴃+U9jȹKŽ#鬢J>-񦚭 _u' #lۖPkvW/0'侅t/ZG~gVB9s_پq"AД<%gEvEVy\[@Ұabi&l O4ҩ-n?<>`.-9ET'Sd0ve/Oig0^x)0 Hi&UNtsѠu G$ձK.,䱱gQ6{͸/mS&鋓.M5(9I|=~ 'q;~q$4s+4%=\&8"u :Mf|"&2'EoOdMTl_: 0 XJrԂV6wB3tz\v%!?# 2z!Ǯ0v }3=s1Kڋ}okuШ\$hǒd3Yd'^C:hR`oZXIvxƁd@nV-F eu3g5D*B&2jHKm"6GsZt_b'ZFکn%/ Er JAV%=3*CwU`qlyʃ~d =ߚdg).Ei;3۞PFߘxR[ V\_xtL JއϾPnL;ew-#ºp⒉6W_u EH=:uHuuyv ݷ wum.U%9kf\*ߗUJ0Ny:1U2tfr4#O3l62-$&B[{2*EZzwgL* } pS9]U(,b P[YZT5]%O#+H|ɖZUMKMcM- #(?D]Aw9Y$@vj H Ү*X4r}*_tMɚ9PAwYVQ@eZ,۟<]6@[a˧zx93ɵP7ڇk:.c r ZPWdMi-Ɩ|ŎrrV9nz+yQ3=7VD1 p?R!P76掼W9#uқp?d=9vG8muFL[jZAdcْV*O?$ۦh썘Dԙ_Q!t˯ym=z8@R\f}, 98eJAw,9Ԩ .k3  d<(Έ.ɀ23[fuئpƩ7?4{TcXSHWLph /dѹnzσxHKbÜm[R&_\O .u{~eRsV2 mv4}2]զȍ`.X>"U*:ܰqٝ| r~s΅'y PoN|m;u)CEltdc@:][BCWr%cۆ]L6?Kҗk^oY׹K5W_{Ś?&6Dd˙v.lcRMlQByxEVxn~]Oȓ\_gm !kOY|- ylH>g\PIkEW_(D5f勍[nVp1VyEԅfDf%YBfAw!95}5NK>ߕ.RR{A\NLLO`c>$ꗞ&x qm9h"r\jM:5S>. 䑭WZn0pO+Zieq]ڒؓ ->{Kp߫TNpE,Q UrЂ$S٫ߝ?*r}5(of2?TYٮumpd] o,OC/_wd Ht&\5@֘پSWIXiQ[%:ϰP؛83x&<"tw`(1 I_pqD těkD,}/jQt. endstream endobj 161 0 obj << /Type /FontDescriptor /FontName /XCSGQA+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet (/arrowright/asteriskmath/minus) /FontFile 160 0 R >> endobj 162 0 obj << /Length1 1393 /Length2 5902 /Length3 0 /Length 6847 /Filter /FlateDecode >> stream xڍuXm) JFiɱ mlCAZ: GPC:xwwDZ~yNj#¢@a aI(Ip(PWB°Uwt %]a8qN0W|G4BA0J9ph!!OOOA+VqTzqN0, ]a xNpo x! w$4uhw~ ܟ쟅_`#HGp@03`09l`hV G( "(WWܟ[d](O u 2AajB&?6G(an@Igyco4SB `pł=`@^P89‘0k1p/%=a /k<($_R7Rи|**(/4P@Z\ (,,&o`́t@c8<ЂdsV q#-_)7oH?`W8O8,tQxq ; [ʺ0(80^HG<Abp: 5 N(=p$qY 𪃸o,Ϭ`xQ]$>q {@x}2¼~($D)@HvT._bWHo]GT,h H N9\U 2Xd0st`˻goSDr;$*Bihqf0=j^"~Z{54ܷzDT7!"2$QJٌDcu4K=BM6b~Y`)Rxvt?u:eO*3u?e|"S:pRD!Km{ZzYh[I\YuFévŗnE (2{9yh{f&1n D'r]O#f+\TмȮS~*9^V?'ꏷڇirzO~%6AC_ HB'4 /_dgo1#dGJs<j)7Ё[2A18IXca%yW ǮKIr+@2KWyҥ!<](r^tˬO6T{/֬#YI.L"<`e+ܰ%嚴ȂD㗜M@@y_U%DdYTXi(-kbCCDQRYo Xzr/:8l?.n[$N G[ Ozl֤g+>*ޛ@Z9/?~v (wx3.pf3@pswZ8gNez5[?iJ{VVop<~Yj`FvݠUl"~@SڱFZSR Pzah ԓui Ӥs69$^t;<'|mJ.nR%s|ZU%y*-$(9ɣ< >yQjiQ|?]==iI#gyGbNE05h_JT',oj9۸hcj76{O>92ߪ ʠ' nkԚ\ɔg /גMKņMJkN9RyEKF^P^f6,HG͝Q cfc?\U庾xio{ΦLDҵ쒡ro/`=az2#N *gwb~^LH$wx幮{iz(Zl4TU Aؼq:W1MRe{s:9!3LdLs O@oːNTmk^⻚&&/p2 YoRs$J,7;ʟ8M^gM/ibHx+[R*ժK4ж-,^B_)u'wz#Ђb'] jsH7]o zTm^BFЂ8 `QruO۟T;gb#^ymqv* /B 1T!ug S]c}> _pM!݋[se'FOFe)?AoqQLښg=<ĸ!&ecS#z7|;]ck()sCjCy5j7z'tje"%=s*̌j@zU{ō0ɒa}-03/̣/dQs琉de<ô( N[3oM.K|s p}Jke6G-}欂` rl _rkb1Lrj|`-vhT“c1ѹF}ױ;GUQ3EASw=ɭ4+$y{@ǙjZpbv¦2UVSԍ^WGRXjtZiRĦE.cԀΊÑ.qfuիsVX(1לlzNq¹cyTmMlgd=[VKCOGe٫A.Fk ^kΔG:B^{=0>s*X#Μajෆ|9wFq >m$Kr_g>]V>A=|ow!-c)y0,j@RᣍL4'$]BI0.o'dFS Q[Axt-V5Ȃr\]BGB['pΰVpQ]0GQ\,9.TG,@lή5%\K?4zsn0-xI\-ve<%p92]nW\%쩠NqNJSMlnEfW9޵5e^QI~42\ &z'iko,"s?sy+&yU#PlBٴpyyN$f84Tvx=<o#%f1?Q+@Vd*z+y :~n2ЧRO>8"9Ubu" 34Օʷ˺}YdĬd77m|eeb^8un//U6c_tESs\iH J~=V\pP}ϱ󃄖~n۷$bQ DkTX]d^y͝fEBirO ̉\7nU-J̖g( G{4bo[(~3ɍqAv㽓a!OKFR]s bfL`r> MKmDk4I᥋O#oy3#MD -AffdJ: p }vzƄmpFBz 7޷4$^=[ܞy@6]?*2vrBAے  WξZ;BM.xzyc0ȇX]M5w}K~`cV>eDg{/eHvcxmNL^a/>o(ΘyqcbKYȸj5RGF)FJ@ bE/4:\D>A?-cIZxmIFk}ee07K.WV@'0@H>x\zVa*xy؉=̨CdpJq`x\KFx}߯67onX3Il}6 & <:gGg,mvB&5cbrSNr3 Nb v lFX4~LdsDV-1e[˼{qC 魵tF+(2 Sg]pS/1ހyQ.UL\g2Nª-[qf[1(=7N2 ({5p)@"/HqUb^/1ѝU+[o)N:N"ׂ$?rPaĪ) <҈yu13M4P<1tib2͟!}9&$Mp?UQz*989n 20ӭ:Gت'<&۔=^K 9b!ҁOӘiLBkW%m1|凡:gR&2 o/t{!n[5{5c5 p23)nԷk(,!Eujb:'3/nSd:Zo4璽Q.ZMHC4rdjQkߴzW37`|<"yӖA_q֦ /Ѹ|˗bKwx㮰6fISGsIu6/nQY'^[JwʷSC endstream endobj 163 0 obj << /Type /FontDescriptor /FontName /FSFYYG+CMSY9 /Flags 4 /FontBBox [-29 -958 1146 777] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 43 /XHeight 431 /CharSet (/minus) /FontFile 162 0 R >> endobj 164 0 obj << /Length1 1759 /Length2 11895 /Length3 0 /Length 13009 /Filter /FlateDecode >> stream xڍTZ.w/ݝRH Z\ ({V[qefZg}BG&eC06.vNa'NsKNt `Xȸa2Ysس Pvup99ܜB2d@V5v2 @<]@6<:-\BB. Ks0@f t|hiЁX0 (j 9 sp;B!.6Lw ]܀V?(ScGڂ)t 0ws Y.`+ 9;@GIe+ps;t68:=A`5АWeyX`? gs7sų䥴 t9P9|r`+# Q,h|7 q{ YVаru]J<#|܂3aiG]O'J?| Ng@_5j\\T7BX,a b_. [py¬ `bUi7,SRZfqqy?栿GD%5 'awu<cN>N/%oHO=_#oyv=yCkjkՀV W*̟wD lgqx&/<9@n?s&Aϙ9>W3(yK9 y yyL!(R@ds?`"au>ٚJS/*=BaŎ0RP!Y*LRjbEz*9;Mr 7z|+{Z+9mfQ2\)XeX+k73"H/2.!>)#ޔh9pᣞY{9aO>o?dV5 o$]wRMѧTmK˾)}q_Q6[vX4kq/{6vveq#<-E?$̯ۖFq-Ze q><cq\dt7uG%oS2MaҾ:y7ctBMJ_+ҙYl.!+2݁Gg?8M2lκr^~5[I0*\kmP+6I1Ajᦼ@8+@F и(,ڥav E]A3D=n{(T/ _fKHC;: |*&}O΂ﻎq ˍ9l.&B4 ;߸nڛ. K15¯o ď?" ھ!ײI1G~nɃe>-jJ_4iz{RLגr?8"cNO8FB'ׅ> /wKqIhՇٮG}1L=lA͵hB5o5Rߎȫ3 GH:UNQ>g<(~Ӥ~"-c.--Ǜ8~V.xmo:x> ˒RS2-yJ/BB/ae(PT('-r.vi. *1Y`oӕ# Jf'2R}ݽvdXZwE#Fz ]7JN!.*G'Kn ~Ǧ 8SxH; 8{BKݲ`>t]ށYXQ|"ȭi"Fw0 X!mB4D ĻOCxř×QV*LeBweF[=mugQiH_Uiug\ }oӶӳ+g3T!wFTB=,떞z3鈛et|l}[j!4P|]܈JǩBz˾BK7'Y;U :jT.x禁*zxJ ^ s7kUbVdy=Ea,ŘU+D)aoKI5j[isvCGQkGE._b3Mnb%s_y~CUkof;a(ĶΒR'΢qϊW6M`c3n&q-d =ʿ Cn-弲ܩh/)];}H y9uO',te}dq잏 `UMKXsime#Ǚ]ӪjdhU{z`_E+CԆCjY9'UXRScq!F@8"Cܣw0PKL r>W䥅G@jO"^a'~q8&eN$% brb55)x;Vus{cl&M%hvuA4*J חnh$ot\TpYաNO.\+.2auXڵ'mSoQ*0#V;꩕#Yk1Bt V~ xPv Ś6/Őq.?ΪmOڧL=b/³>\0Z9}}O޲R r*=Srr;7'_ ƒ*<..I .m#_ dk:/""[g@SMB"*SJFC=Tby+<`OU_qςjqzz/ % l[f[TW%x>Yx̦ tN7*7*Te]Qޢ[<&Q5JS5 1[+zҍTXҾ%,.w嘞7|[^Ѝa q/x*$<(k_%N]".[y_o(zGK }4j_qN4jd0>p3JlэR^}1;d|M:3"mNmL!wZqT/r~]5QIf{MAkqݳҐ!.w GNJ1ʫhڤɹșߕ:X|bL=T43@IDd3i-zEa|c=$+QI3Kek"jY#|^G5ǣ5fJwcn`~7,{xERb>¬n1G.1(uD>&u4G!ܺ](C}2ߏc4ކVOM\c =\V1mEl#F Y&Yq`u[uY\3,Y"Mf4%5g?IoR k?>6TON p&cy8q-׊~>ZKUA~%w:0OdDhCv#^ D+nw̟TLDɛP K;+(d_4}MZ䳳ٳNtaЩDl;!0\za֎}aQU'GHg ivB~xDz1tDSLӽ]Vzzl:'&܆V|7PZ:Kyfԕ 8^{3sXhIA;M< ͇POI' R14禹EGAt3º o άc7̇\/MW]8{\DѦ G+jd )v!S5-xp[\(>ц v~}^n+Tmjװ7OaBB"J$^#|\p|{Y49!!+ھ["nC[oovД[],Ј*4tzD&,h[Z&NnR͵<؊lm4s\D gT(#a:(Y:Xfss/ٵ6BUEpݹ{|UD*Q eXQbba K]$O_Fb[)R; Wޛ^cYMNS|$KS2͔Q5Dv,֝^=豋 :1n&yq'~(mboFך{=Ë X4ѡD~tO<{ۏ4jD h:I}ɸY1WR6e#iy{K7WgOJl>DM#_s-: BjěE)6W2Hٌ =wG ہP4LPEq.v,b2zYU;uVv- &dX܁SJ?Y /]MW}2i:Y_qvIkä?Yna|(vh0߅Q$7w#o'XF80M|h,Q$i&%c0Mш2pT@}ĵh)ܛ8S,[~l9n1#[x° 9˿m'Dt5dZKIpK 5|'1))Vۻָ} tJ}:˒`^ڦuʃk *):A$b x{%B[#$"D8H8vc3N8EkQZԁuoPsBQL/1ҥ XA#[S2P.g> `yUcXncZ7LR.: ruq 4 F9qZIv: jI CI\CZD_]6d9)9V _2p3#+5"Kgi7W9z%?V %8,o 3x:ӎtb @Y{ؤ;QsE97K c6Na|Nl/fL@μ:(LsXkUjVHn?W=+PLM _moJq My@)TfôOa 4& A()qzO_50G4W(MuqTѵ ^s>#=۱#3-nYejIadol:Vƃa1Kc->oNv>I0rr\ׂ% }~/Fq+?ܲǘ\"=m$/~2=G+a3-,N>@[2iJ+Sh2@ 6J_x{|^EA\`]6.NJ7;5R(};"~4{r,C&8 Cv5f%u3ΒwjJ.rPl*B%1 i_#oVķoF}JqnxTᨵIn:6AF,M(S[ψQLr5i+ˉn޺(;eè36v~'K#hkT> Mq)hq֝ -Jl.v6,u+!}ݺr@Pe;-:ͬk7u_֏ѵP}_K~6P@0\2^.&8t>rǩ"e0v燋.QԗvFE8d'N[oU'_~á*O}5# @[өý^cnEbI9`HD=Ӈt ?3t5\#\+ ιμI^;sӂíW6h+cJF&,J(XBW+ŷN޻n5-+C2 ]-l׏cŰ!xˏzO,#rбw(UvH]^x icvH80=߹?۠1CX*ce<Fo2Q=:I _u7봷=1n߷lfG~rV??̓?U,e/5].:]dhYʼn"W)O'Z|7zgC)mƢ5BVu87PU땶cjhnAG|8-dSO BG^2, ꢍXHDEqesmuK 8 Ǧ; I]2wcکR9ٶn}"I۴ 2Dz!n gp~14W7]P>˜[s8T`-.XBbn(}1{!*6V݀`-`}@5PEUd#.p]/~0 MHˈgiēs=a?bI(IE`64Tk!171hBۼᗕ9&e@+|o soߑ`߾3>ݖo%{Ruf)e_9cE#8ʟőIleeY"# rC{Kg@?G(4hq!\#o7r7ic4ݺKvJ]M|${egj!@^(/y :{^#Wm480.44wUZ&{vtʴӍ#HUT"*D uIj.F> PZUoj 3B\-{؉"qGipEd.ilW"@jb"gq/#cP7M젒}i'Ǻ3!/QF !\~={oַBpF*#c㸉9g6GjPcr?ܾheˎ#p } x&s R(W0[d\ jmks)eͤEJ΂t=( Eb5:~A:/mMfW/ܖ Cu2_BZ<`9"gۖ H{n7g[ \{D~>8*>O8KJ\Cf-[["Vm pPC7cJ q)ke)꒫Z$MJf-4E<,0U^ ${VxN[}EFv; :ݯc2ދxEc؁^b|)`,QS[23_H]M`{7imPY֯umJPѼ*KDpLi_ҚDw{ j~ߦđ&r'#R~~^#>2fR,콕úygvdyNRt5F;#Κ}HrxŘ#39_$TD%@gn@MK zQi7m,A| Yn~["0@&9 -gu@OlMsu.>ʎ,U$5b>5^׉IњR&rq9e:g3<|+~A mM^*E`߷| CF01a)?%6[@_Kj5XBʁH!$bsa/St"ݾωqtaaBX(4vW2)K7;̈́ხ^-}v~Q}ӌ`z`<4^y1(Gh3S Za\!&ŻevAֻOUKZ<;eܱQzVD5Dlr*7og aE:Bѵ ԩlu=Ze9< ,m?')MϕیS#W^W`DH|uEQ G/{`Wo A/k²|< q-"WٶJoU`y9D( ۄD./@נ"fN:`w{[݂>/ zl̄WAgiS1bRg{lue-^Jb87k#[\:}Uћ&ʉfCֺSPh^kQ.OjO ѻǰNl4 9Lam.oRmu?՘-2o=]J/S'MjD/.c֨A}r֏`851ƧȠf}3FlXy^Џ-òpR'gUjUɺ݇R<BɡF2WSy ]>4IF x/Bm͙db͸>i&mJykLޢHųA .p~}I$řd*?>Dep9ꋽ/\< Ӌ%"U*0k&QBsen v%rz<5>#W] ?l/^KkT(Fh/e)[ Wá;#ph68àdf\v^_d,.tזUgOv-Q(kxoHv7'X}sҞskz"njkRC\OiNjYk/RcA@~tjXZz?wWK'3"zc5zitHZq%V2#j6^vZ +1Jҥz=5} Ҝ3aR"+65ZD;tWv2(iVQjn|0I. Qڰ-hBMj> endobj 166 0 obj << /Length1 2298 /Length2 15666 /Length3 0 /Length 17024 /Filter /FlateDecode >> stream xڌT%z gMvmvmM&Mm۞l7ooſkG<)[S;׿(|?4\>*ff adc4vE][z m,=m.!gqTsX_DžٚYN@E gc7?cnma Ts112[})N[(fklg1  =? q&@W@ok`0sklDB? q8X>>,8 3AT>2AAL :W5@"`v/͟#%O?;|\>j3pGv.p01Co7&)c@X|,?hA%~xZbp?Hl?ꏊ?|ψX-~4uG? Y>;9MAC0}wC/tGw>̝>?yT\18;1nvph?G?]?Z2x#Gx??\=?'n _tí,[?T M͑iRy8vK ]SگbR:K%h,13> 5ʥ;J;t i4K&rUfnlRlm,|[r/di%¨ ,F*zB.3nY)LFk.qR:>x={Z%,S77q<~0pG9hy[[)QmXm&u049(}n|ˌ>˩S9}w2sD84$dFT/U\mF _ztFW~;\kr<{5xX'NJ4Zǝi!E&pd/p?J4i? ;/}6LbFStt1=Я)E/B-BMauWv00?7l Wl@gl<'ZS/B.T2iSNE&uxrLI׉X^9wmqjqeQ᪨ڰ rQ# rb.EGθEKz1I†uhA99jw}q5z=X{S/Fnov< USEBFem251#ׇ._mq/קt.ĊJapbr=+("F|[լB۷Ҽ[r)#l6f3VXp+7BRah *6zsї]yzvd4yGT}MZDQ >?`A)@1>$+w2q`U շo(SL2Tц|yޢL~4=d')ۨßAgT@q֦ŏjc[Ŧgf1~Ԋ) $}O~[ IFdvܝP%X &ʹbZål~| PhnL/,FRa=͵wLsK֎# MNɺsy-()JbjTUWc3uS> vsѭqgzA=)څPNV)b+BAfSneh !=X:.Ԡاy(ǦsW MZв@ ^|@7Y&FrնTbpyFπ2b& LMEyZnC feDA/ٛt z?o1S p KW+' **njvѤf܈S۝FUgA*DG5t,s K (z 6zUUcl%w>wL_1@Y[ H[ZP؇o RAi1ߕ}Q)/f8UxT#3 ? Ē9rCu{gug#ߋYi}H什*2ٶf03ZwM($TrlkK\CB;L4 ,%u=͛0C۝Rw$lv"vk}e@N)/pv |Q3Q@PfW(W\@5_,c!~YghZ,*R}d - @]9;CPMʤq"Le'>_!uɁڧXh*zg)GzH Qml  vGWxn#)'zky  6i w>n ' O'@ku\g.b~=R-4@]R{? Fѱ 9j?iܓ3_|?{S6T ,@&)Wl\31t9h~^\$]x`QZ]N(3zC ĀBSL٨jɠi*)^1>M<^_ln1qh?;9'8:!i]rf+cxå3r@$&#g);)zs6+i'k pP"G:th½~w V?VL2:6HU'g ߣRP,8B 㙞 nS<ƒ[=*z FZ8D!w>C@:=BYm rbyEzb@[q;ӏ qޕYӃ2TeQd =%7\EY&}4X YCW ?_9ޑ;^c6]eShCmrg5ש%@ϴv.#)Gsp#iwc9)@a6:)#CTӸ-9Mwo9 8fğ7)C5rޛ2/MgŢ{+ds&P~H G,j°mFz @jxr~Q|9MtG+vK\SEke]=쨅'<%˂m`4a[ukxUy:Nˮʍ}zh ´S܂zJ$UCjMR+- nW(iY& TaT qDSlOf־)qlZU2S|*{W'&pl NϷk ۭVx.f~>IӉ{U] R-S ^zt&XO(3WKs*Kv(qp=[N 挭`|@skz 'Kz^9vT=.q >F~t""B]t7.o miIYIqUkYNdЮrPGKۖ\R_ S٢֑$D<ͣV)Rp VTa͇R࿅0avB3G(j8s'Ugp'-35x(n! x(/~=It r"N}%ԇ5I.S%"`wuTW k |XjaƐޖ[-?s68,pm&rPFb%-8N9w/z8Nhe{ yb<8n=sEQٰ^||$cb=ٛe}f} GDCy=~v֥AGҔ*6:L6 z2M1ػSO8NiHkdRlӨ9n};FIh.p;0 p\ΟC\,&v{ IEuf,"AfAk7;ypX<ŷX4U$GS|2t>+] g+m U Yb?Kbq(x$D#} ݂%JL5Á-ț)H'$ ; @Vs^̀pj>,J V6}\G0sT8~ w-OD£߬AGn 0\]dU&yKۯ/x5M 2zCM4D6-f\ELGg_*R*NGT]QV mV֤pJ 3v;OJuiWA+q`}j@:E%:|/P.hoܞM[Ybt\I}0YQgy=^"B&j6_r?Ka,$J0dHsIŀ̾m4S )@_װ5 RrI3Ro pM?07bӶ[G+ή 5 8Yn8F)O1DmO^60 g0*B:>bf/~rd)5tdYмEhkQtUˠ@Z_jhgzjKV| è+PN;N&CjvF-خm %g!;N_eS >ӢԢ~蟺fÑ: x?)9ݐɠiĸ]"FJ/J 1xL/.J6-iqmG3X{5fvυ>SǦ솷'Ȫl mincR@Sf8nXQWb^?:!.09a/';r}[~X?u7iCIb}Fzg^vxy3\Oך70=ox>M\%OXw@iܘ6Jq4]~ H]֏P1_8I_[dd0#B!X%05prjO%m2·k ]O5fHepKPD@.t%B'TB<. Ϣn{(IG urF-x ЕA3:!g %R(Xi'1|Hc)9܁:>t'E)kJś9@ϭ3n<3 \UG*(^kKZ;\R:d8sPSmؐGj+#r$PUԙ7.k$n7#eRo!UcʍrsUZd×5PBt8w ο`Ʈ9pgyq% 4sά 8ji8eE՝zq'*?3M${Mzv]C? ?]RZ܉+,ˆ-E#DuFd1G OAq?`C"3+arDM@i} <hW6N^W%Bo.1=ҴԎPCe1|/%J#6+U} -7H 8cY GaY㾎!58#/VJf:w>+ى_X̲l?DU3Pt n9LFc\,y؀GL ޷JG|XP4L<}=US5 7OXFۖɓCzۻ-F;JVnǷ i*?'ZsA)椎`G7m3X"aF>(M:=ЪJT&L38cۉ|'wK};Y贜yx*, dzk*a`{ Dh*hE0S;or*7ၴ7ooՈvKṪ">\8bU5F̟fңnTh\j*L0x3޻ #ў7U'h Yf1VQ,VXj^fG #4HQtiC% x^U o"1}DN;vp,B`eHW+er!/`[=zu2Θ"snv_?=6d'7z/H;H[šm!}E؟CܣjRɬ;S,sOn8ӽm[^~8#EF~o}#_2UI;J%s'.lTߩׂw=sn.yDcmw*oQ.mh=L4^3.[ <7wL^Hʠol_&bْOT/]6dSZvt%Z32 jxA ;MJ)Rlh_W l;3d^;dKm;qpY+ OE37)CVo qަ/s)o[Bw v`fFFO6vLp)6zКQ4?li/d~}|0H k܍Ze삼YNgWV!An +-١`%8R\%$He?y2_0flX;bT iZmW.߲+TLouM{>eTU(D~Fc׍PT/}b&"7:t.i1$Q٥HT/|~0TR˰a^}lZIEJ/GvKoM֕DjWF;AS rlHdU<颥NF >rm9zG]6xL&* [~z>aOKQp|6R F,k8\'RP_>XfU.dkH>M+Zw_`\p* OJR= 9hJMd؉?AC'wg[&|Q!nږƻC (Zl8eѯgrG"-YZ9M^U1OܢUD3W3jaw5NxDx6/}hJ&F$>MHP6vLDn}^R; Q1yTyW9C4_#-E@6,lg\Qys=AUe4q!2p=8 9i~X3$ݗ PgDUE]HmE$5#>h}fjgf%^4LvN׷Ob K:e2- y#_Fbb,o.泸W;wkX~|vCeZ0 wg\,SB˘ax3v\Yr@+D I:95e\ MK,v"V N>;%Wb nK=YF>בPǍt>:X&դ.N_-,ŲLAK&<, k3cvtlRۭ5B5DĻQk]`.ks:|:<e/~=dt*iu 1GMliBwut'}v$qR%3wO~&.r,&`ziW9`O! 4 % 0ug‡pn̓zOI$\jl|s&HVk4$C-.ݳKZ54Y }Zڳ|YILS`:tn[4Bv k޴فF3ߗվ^S2p`0( TҼ9vJU8*Vۃ4] Ε7!^K::“x.{G]qսq6b;{ZO" UOԸDE$0Wwimߪ4qQ0ytf3ڮ$\dH^#+]RgȹywHxgQ+K=~H@}HˊnRTSuW n<TdI aUbw^x8ȼf[do ecQeSۍ=*) F"̓IխOygGM+9hZ,zxoP <%/-tkߛ; (5-Ōyڹ-n3F~<_UXlmā=d7&)k}ݸl8]lNR Gٳ|5|ެS4k8?6NrʸL!={|IH wP-tp~D~I~E‹&r*4iHGu? z|$pXQ"dT&xyYSKf!r:bNuܟTCKGΈ +?L*C)N3SIRvSȾ|ha*;tfJzsde|DٱVzu y]z;. 3#lZ|#@Fjus͏Z@QV<>Db~M՟Kܟr:7 J Up)"Màv~C=ӬGѕd~'avlSK5Fఇ>"SpNs^|D~tp(d&;"7Sܥ(qu]m y3rgG9J ]EI[g4#9KErbJ*6p  x@<:il:P&Z.U +!q߭UU\i$^%jF 쯫o%HFpVXBs VC] !6.rCrRi^l~~B 1ؿ&(LRny+ 4ŢdjQ vU6HʊuMtس׽(P}U4wHTz8z*#̘:{C-~/*kgiu_bi+ M?ΧX@-Ke#Rb6/l&q5-J jqENۛ;Q6#vuN(|(Zi m0 (CB7F,>h#Iݩ !t?DŽA\wc &f&0z/LN: .LpSl}AHCa3+\$IsZo3 `F\@u2qh|rAwJKfr*uɟҦp@̮:*g2r}f;S9®cm5.k3rzTk:^[V-nT6JHPl]rs镩nSJL\l\{ Zݗn$[;:(jJgtXVVm;^5Ō 4(C '>/rzpn?KuKt*]e{o ;[6lxZ OF{g af^v@Fϥz<,BO-g7G̝nUY5VZc.sڦTɐ~Q4a:_ZlXk7<1n]ܒ'.VW~3~ (uۖ`>3IW"gnhoMZE.}Yt`6R5 Y~y"6Ǻb|Ǒ[ XٻxVL Sajqⓕbqyn {ΨzDUQ{#{ѫ1JOtwk3y8ij=x4K8Ӭۺ-*h> &iO;}a&h$\!VaUtJny+tP~n$4P^eHp lDe)UFy c^'&hU㱂0bǦ5-C;dG` a-u)cFWǜ;Mg]Elm{}&ʵB՛NX^Q!2O9< u:[(}F5Ika"k̏ Ɯƿr葋]gE8o5j ةNM^9!U2oW8-J<8~X>@dOM/ˌ9Z/#d1|-l%c t5Q2s~Zd֥6{*K"B+Z] !ΣMI-UeL@}iE"%ޝ7H uKwFS MTG [mI>7wϝ+jFc5j5 []#8`˲h=Ѫ ҶcjV:Zq;Ƒ,SɳŜv3ѷ[s1/S||A|hz['abG r6& DڛDnag.:dO:p8_p1D8|| `!)L1_ƈ@;:4_K(Uً H-^_y5wdƎF ?;D#&N˯voWxK' > xl{@H{1Ն1lt <,<m@=V?Z:@TOڍ<yS+#ac 4śhp~AYI/@Z;fD6\ɺFiW>Lxc8gcQZJ9e/\u-ˆsӏfC}Xu>8#q>3j-͗KO iV4[wy8,<#Y}](fr}Z%քu_ܵ==> !fE<ۚN$!>ؖ=ޥL3 T/6{dS<ۆ~~N:PeF`OJL0KBLyfKm]'(kn>ʔFwׅO>y:f-ЀK9yHNL7$L*SY]G߰S|"ft=M;-9L׺,S?9DlAwN#DYnNCeyc*qe~pZ݌IEOte:2F!l[{K$Ψ ^K.Cr"'}3k$U_ j*"O[5<*I(Ċl\& ͨw-P:qMuRb)6d> /' $K9\c${aK}- "-_Sм\ aJ)EpD91Іl?C&$tH3rN ظk3%7gN;RϤ]i ($"`FT`"?cW>|`w;^ųKz. ʁK_#EZė5 G';$mNUmQ 8?.|<ǻ倁D'{%gObcIկ'jm F"[` Z:,f)8T$v* 2i8،9.e!Zo{ZG=qVL<fO˯J O⛱dD{'G!]l ŬuF[ "/Й`O wpɝƶ%2$VZupDg/.w"!vrtWZXcgJFp ;h̾AQmc@-nz ;-/'] !З֖NOU4ᮐq [r+ ~ϾH&t**D_W4+CD`?H/bVad>ms^wIm}֪TO#3ֻ z#cm0F-}`-p!Yi]%`Q=.  mD[UG2b< bWsV|`? !:M ]"i$:Ė:IYIBuy$Y IQhPiBisܣ,fJ+ t׊p6H}WK:Z ߥ5+VbRkb : hVRas8^y혛K8 ZQ ;,Nq.Y>n*|;렯{u?ަmV12`O'\,F|foZhOs9-XҘf:Cy~}qW}@j :ja\ovJ?t-!z7=F kmTzy|>&Nf}IpgHLIN .^5DE5L6v%\Da eU%-=o~1yy"%!z߸3>g endstream endobj 167 0 obj << /Type /FontDescriptor /FontName /IQJFXE+CMTT10 /Flags 4 /FontBBox [-4 -233 537 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/C/D/E/I/M/O/P/R/S/T/U/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quotedbl/r/s/seven/six/t/three/two/u/v/w/x/y/zero) /FontFile 166 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NNICSM+CMBX10 /FontDescriptor 131 0 R /FirstChar 50 /LastChar 118 /Widths 125 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /URECRK+CMBX12 /FontDescriptor 133 0 R /FirstChar 49 /LastChar 121 /Widths 127 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KGQQSD+CMEX10 /FontDescriptor 135 0 R /FirstChar 18 /LastChar 27 /Widths 118 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KGYKXJ+CMMI10 /FontDescriptor 137 0 R /FirstChar 17 /LastChar 122 /Widths 122 0 R >> endobj 24 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KFKJAD+CMMI6 /FontDescriptor 139 0 R /FirstChar 106 /LastChar 106 /Widths 114 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SFAAHH+CMMI8 /FontDescriptor 141 0 R /FirstChar 24 /LastChar 117 /Widths 116 0 R >> endobj 25 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MROPXZ+CMMI9 /FontDescriptor 143 0 R /FirstChar 33 /LastChar 66 /Widths 113 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ILIRKY+CMR10 /FontDescriptor 145 0 R /FirstChar 11 /LastChar 123 /Widths 126 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OMWHUG+CMR12 /FontDescriptor 147 0 R /FirstChar 44 /LastChar 117 /Widths 128 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /INQIFJ+CMR17 /FontDescriptor 149 0 R /FirstChar 69 /LastChar 120 /Widths 129 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 /FontDescriptor 151 0 R /FirstChar 49 /LastChar 53 /Widths 120 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WMGSDI+CMR8 /FontDescriptor 153 0 R /FirstChar 40 /LastChar 53 /Widths 123 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OMFBDX+CMR9 /FontDescriptor 155 0 R /FirstChar 11 /LastChar 121 /Widths 119 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TRLEDQ+CMSLTT10 /FontDescriptor 157 0 R /FirstChar 34 /LastChar 121 /Widths 121 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OPUNLB+CMSY10 /FontDescriptor 159 0 R /FirstChar 0 /LastChar 103 /Widths 117 0 R >> endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XCSGQA+CMSY8 /FontDescriptor 161 0 R /FirstChar 0 /LastChar 33 /Widths 115 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FSFYYG+CMSY9 /FontDescriptor 163 0 R /FirstChar 0 /LastChar 0 /Widths 112 0 R >> endobj 82 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LBKYFB+CMTI10 /FontDescriptor 165 0 R /FirstChar 46 /LastChar 121 /Widths 111 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IQJFXE+CMTT10 /FontDescriptor 167 0 R /FirstChar 34 /LastChar 121 /Widths 124 0 R >> endobj 16 0 obj << /Type /Pages /Count 6 /Parent 168 0 R /Kids [3 0 R 18 0 R 35 0 R 44 0 R 47 0 R 57 0 R] >> endobj 62 0 obj << /Type /Pages /Count 6 /Parent 168 0 R /Kids [60 0 R 70 0 R 80 0 R 91 0 R 101 0 R 109 0 R] >> endobj 168 0 obj << /Type /Pages /Count 12 /Kids [16 0 R 62 0 R] >> endobj 169 0 obj << /Type /Catalog /Pages 168 0 R >> endobj 170 0 obj << /Producer (MiKTeX pdfTeX-1.40.13) /Creator (TeX) /CreationDate (D:20120828114730+10'00') /ModDate (D:20120828114730+10'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.4535 (1.40.13)) >> endobj xref 0 171 0000000000 65535 f 0000005159 00000 n 0000002617 00000 n 0000002505 00000 n 0000000015 00000 n 0000337741 00000 n 0000337600 00000 n 0000336606 00000 n 0000337459 00000 n 0000336464 00000 n 0000339012 00000 n 0000338022 00000 n 0000336890 00000 n 0000338303 00000 n 0000337882 00000 n 0000338162 00000 n 0000339155 00000 n 0000017440 00000 n 0000005044 00000 n 0000002801 00000 n 0000336748 00000 n 0000338448 00000 n 0000337176 00000 n 0000338590 00000 n 0000337033 00000 n 0000337318 00000 n 0000338730 00000 n 0000014288 00000 n 0000014432 00000 n 0000014516 00000 n 0000014614 00000 n 0000014649 00000 n 0000014743 00000 n 0000018702 00000 n 0000024260 00000 n 0000018587 00000 n 0000017678 00000 n 0000021192 00000 n 0000021336 00000 n 0000021434 00000 n 0000021469 00000 n 0000021563 00000 n 0000029027 00000 n 0000027726 00000 n 0000027611 00000 n 0000024391 00000 n 0000035054 00000 n 0000028912 00000 n 0000027879 00000 n 0000031986 00000 n 0000032130 00000 n 0000032228 00000 n 0000032263 00000 n 0000032357 00000 n 0000041758 00000 n 0000057918 00000 n 0000039193 00000 n 0000039078 00000 n 0000035174 00000 n 0000055822 00000 n 0000041643 00000 n 0000039381 00000 n 0000339264 00000 n 0000052670 00000 n 0000052814 00000 n 0000052898 00000 n 0000052996 00000 n 0000053031 00000 n 0000053125 00000 n 0000071933 00000 n 0000057803 00000 n 0000056013 00000 n 0000068781 00000 n 0000068925 00000 n 0000069009 00000 n 0000069107 00000 n 0000069142 00000 n 0000069236 00000 n 0000074677 00000 n 0000088934 00000 n 0000074562 00000 n 0000072113 00000 n 0000338869 00000 n 0000085782 00000 n 0000085926 00000 n 0000086010 00000 n 0000086108 00000 n 0000086143 00000 n 0000086237 00000 n 0000091255 00000 n 0000103386 00000 n 0000091140 00000 n 0000089114 00000 n 0000100215 00000 n 0000100359 00000 n 0000100457 00000 n 0000100560 00000 n 0000100595 00000 n 0000100689 00000 n 0000104761 00000 n 0000110489 00000 n 0000104643 00000 n 0000103542 00000 n 0000107414 00000 n 0000107559 00000 n 0000107659 00000 n 0000107696 00000 n 0000107791 00000 n 0000111503 00000 n 0000111385 00000 n 0000110656 00000 n 0000111596 00000 n 0000112053 00000 n 0000112078 00000 n 0000112305 00000 n 0000112330 00000 n 0000112558 00000 n 0000113141 00000 n 0000113741 00000 n 0000113816 00000 n 0000114469 00000 n 0000114518 00000 n 0000114889 00000 n 0000115492 00000 n 0000115595 00000 n 0000115966 00000 n 0000116369 00000 n 0000116996 00000 n 0000117427 00000 n 0000117833 00000 n 0000118160 00000 n 0000129752 00000 n 0000130018 00000 n 0000143179 00000 n 0000143479 00000 n 0000151138 00000 n 0000151412 00000 n 0000164371 00000 n 0000164681 00000 n 0000171766 00000 n 0000171986 00000 n 0000180320 00000 n 0000180556 00000 n 0000188123 00000 n 0000188352 00000 n 0000212241 00000 n 0000212744 00000 n 0000222727 00000 n 0000222994 00000 n 0000233125 00000 n 0000233375 00000 n 0000241124 00000 n 0000241364 00000 n 0000249482 00000 n 0000249748 00000 n 0000265369 00000 n 0000265702 00000 n 0000282001 00000 n 0000282477 00000 n 0000290391 00000 n 0000290671 00000 n 0000298036 00000 n 0000298285 00000 n 0000305252 00000 n 0000305477 00000 n 0000318607 00000 n 0000318886 00000 n 0000336031 00000 n 0000339376 00000 n 0000339444 00000 n 0000339497 00000 n trailer << /Size 171 /Root 169 0 R /Info 170 0 R /ID [ ] >> startxref 339720 %%EOF evd/inst/doc/guide22.txt0000744000176200001440000030006112017604710014553 0ustar liggesusers\documentclass[11pt,a4paper]{article} \usepackage{t1enc} \usepackage[latin1]{inputenc} \usepackage[english]{babel} \usepackage{amsmath,amssymb} \usepackage{graphics} \usepackage[round]{natbib} \bibliographystyle{jrss} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} \renewcommand{\thefootnote}{\fnsymbol{footnote}} \begin{document} \sloppy \begin{center} \LARGE A User's Guide to the evd Package (Version 2.2) \\ \Large \vspace{0.2cm} Alec Stephenson \\ \normalsize Copyright \copyright 2006 \\ \vspace{0.2cm} Department of Statistics and Applied Probability,\\ National University of Singapore, \\ Singapore 117546. \\ \vspace{0.2cm} E-mail: alec\_stephenson@hotmail.com \\ 25th March 2006 \end{center} %\nocite{frantiag84} %\nocite{gumbgold64} %\nocite{gumbmust67} %\nocite{jenk55} %\nocite{joe97} %\nocite{kotzbala00} %\nocite{mont70} %\nocite{montotte78} %\nocite{smit86} %\nocite{sney77} %\nocite{step:sim} %\nocite{tawn93} \section{Introduction} \setcounter{footnote}{0} \subsection{What is the evd package?} \label{intro} The evd (extreme value distributions) package is an add-on package for the R \citep{R} statistical computing system. The package contains the following (user-level) functions. It also contains the demo \verb+soe9+, giving examples from Chapter Nine of \citet{beirgoeg04}. Univariate Distributions. Density, distribution, simulation and quantile (inverse distribution) functions for univariate parametric distributions.\\ \verb+ dgev dgpd dgumbel drweibull dfrechet dextreme dorder+\\ \verb+ pgev pgpd pgumbel prweibull pfrechet pextreme porder+\\ \verb+ rgev rgpd rgumbel rrweibull rfrechet rextreme rorder+\\ \verb+ qgev qgpd qgumbel qrweibull qfrechet qextreme+ Multivariate Distributions. Density, distribution, simulation and dependence functions for multivariate parametric extreme value models.\\ \verb+ dbvevd dmvevd pbvevd pmvevd rbvevd rmvevd abvevd amvevd+ Non-parametric Estimation. Calculate and plot non-parametric estimates of dependence functions and quantile curves.\\ \verb+ abvnonpar amvnonpar qcbvnonpar+ Stochastic Processes. Generate stochastic processes associated with extreme value theory, identify extreme clusters and estimate the extremal index.\\ \verb+ evmc marma mar mma clusters exi+ Fitting Models. Obtain maximum likelihood estimates and standard errors for univariate and bivariate models used in extreme value theory.\\ \verb+ fbvevd fgev fpot forder fextreme+ Pre-model Diagnostics. Threshold identification and dependence summaries.\\ \verb+ mrlplot tcplot chiplot+ Model Diagnostics. Model diagnostics for fitted models; diagnostic plots and analysis of deviance.\\ \verb+ plot.uvevd plot.bvevd anova.evd+ Profile likelihoods. Obtain profile traces, plot profile log-likelihoods and obtain profile confidence intervals from fitted models.\\ \verb+ profile.evd plot.profile.evd profile2d.evd plot.profile2d.evd+ The following datasets are also included in the package.\\ \verb+ failure fox lisbon ocmulgee oldage oxford lossalae+\\ \verb+ portpirie sask sealevel uccle venice sealevel2+ \subsection{Obtaining the package/guide} The evd package can be downloaded from CRAN (The Comprehensive R Archive Network) at \verb+http://cran.r-project.org/+. This guide (in pdf) will be in the directory \verb+evd/doc/+ underneath wherever the package is installed. \subsection{Contents} This guide contains examples\footnote{All of the examples presented in this guide are called with \texttt{options(digits = 4)}, and with the option \texttt{show.signif.stars} set to \texttt{FALSE}.} on the use of the evd package. The examples do not include any theoretical justification. See \citet{cole01} for an introduction to the statistics of extreme values, and \citet{beirgoeg04} for a more detailed treatment. Section \ref{uni} covers the standard (non-fitting) functions for univariate distributions. Sections \ref{biv} and \ref{mult} do the same for bivariate and multivariate extreme value models. Dependence functions of extreme value distributions are discussed in Section \ref{depfun}. Stochastic processes are discussed in Section \ref{stochproc}. Maximum likelihood fitting of univariate models, peaks over threshold models and bivariate extreme value models is discussed in Sections \ref{unifit}, \ref{potfit} and \ref{bivfit} respectively. Three practical examples using the data sets \verb+oxford+, \verb+rain+ and \verb+sealevel+ are given in Sections \ref{egoxford}, \ref{egrain} and \ref{egsealevel} respectively. This guide should not be viewed as an alternative to the documentation files included within the package. These remain the definitive source of information. A reference manual containing all the documentation files can be downloaded from CRAN. \subsection{Citing the package} Volume 2/2 of R-News (the newsletter of the R-project) contains an article that describes an earlier version of the evd package. To cite the package in publications please cite the R-News article. The article and the corresponding citation can be downloaded from \verb+http://www.cran.r-project.org/doc/Rnews/+. \subsection{Caveat} I have checked these functions as best I can but, as ever, they may contain bugs. If you find a bug or suspected bug in the code or the documentation please report it to me at \verb+alec_stephenson@hotmail.com+. Please include an appropriate subject line. \subsection{Legalese} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details. A copy of the GNU General Public License can be obtained from \verb+http://www.gnu.org/copyleft/gpl.html+. You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA. \section{Univariate Distributions} \setcounter{footnote}{0} \label{uni} The Gumbel, Fr\'{e}chet and (reversed) Weibull distribution functions are respectively given by \begin{align} &G(z) = \exp\left\{-\exp\left[-\left(\frac{z-a}{b}\right)\right]\right\}, \quad -\infty < z < \infty \label{gumbel} \\ &G(z) = \begin{cases} 0, & z \leq a, \\ \exp\left\{-\left(\frac{z-a}{b}\right)^{-\alpha}\right\}, & z > a, \end{cases} \label{frechet} \\ &G(z) = \begin{cases} \exp\left\{-\left[-\left(\frac{z-a}{b}\right)\right]^{\alpha}\right\}, & z < a, \\ 1, & z \geq a, \end{cases} \label{weibull} \end{align} where $a$ is a location parameter, $b > 0$ is a scale parameter and $\alpha > 0$ is a shape parameter. The distribution \eqref{weibull} is often referred to as the Weibull distribution. To avoid confusion I will call this the reversed Weibull, since it is related by a change of sign to the three parameter Weibull distribution used in survival analysis. The Generalised Extreme Value (GEV) distribution function is given by \begin{equation} G(z) = \exp \left\{ - \left[ 1+ \xi \left( z-\mu \right) /\sigma \right]_{+}^{-1/\xi} \right\}, \label{gev} \end{equation} where ($\mu,\sigma,\xi$) are the location, scale and shape parameters respectively, $\sigma > 0$ and $h_{+}=\max(h,0)$. When $\xi>0$ the GEV distribution has a finite lower end point, given by $\mu - \sigma/\xi$. When $\xi<0$ the GEV distribution has a finite upper end point, also given by $\mu - \sigma/\xi$. The parametric form of the GEV encompasses that of the Gumbel, Fr\`{e}chet and reversed Weibull distributions. The Gumbel distribution is obtained in the limit as $\xi\rightarrow0$. The Fr\'{e}chet and Weibull distributions are obtained when $\xi>0$ and $\xi<0$ respectively. To recover the parameterisation of the Fr\'{e}chet distribution \eqref{frechet} set $\xi=1/\alpha>0$, $\sigma=b/\alpha>0$ and $\mu=a+b$. To recover the parameterisation of the reversed Weibull distribution \eqref{weibull} set $\xi=-1/\alpha<0$, $\sigma=b/\alpha>0$ and $\mu=a-b$. The generalised Pareto distribution (GPD) function is given by \begin{equation*} G(z) = 1 - \left[1 + \xi \left( z-\mu \right) /\sigma \right]_{+}^{-1/\xi}, \end{equation*} for $z > \mu$, where ($\mu,\sigma,\xi$) are the location, scale and shape parameters respectively, $\sigma > 0$ and $h_{+}=\max(h,0)$. The GPD has a finite lower end point, given by $\mu$. When $\xi<0$ the GPD also has a finite upper end point, given by $\mu - \sigma/\xi$. A shifted exponential distribution is obtained in the limit as $\xi\rightarrow0$. It is standard practice within R to concatenate the letters r, p, q and d with an abbreviated distribution name to yield the names of the corresponding simulation, distribution, quantile (inverse distribution) and density functions respectively. The evd package follows this convention. Each of the five distributions defined above has an associated set of functions, as given in Section \ref{intro}. Some examples are given below. They should be familiar to those who have had previous experience with R. \begin{verbatim} > rgev(6, loc = c(20,1), scale = .5, shape = 1) [1] 23.7290 1.2492 19.6680 0.8662 19.7939 2.6512 > rgpd(3, loc = 2) [1] 2.483681 3.666805 2.837809 > qrweibull(seq(0.1, 0.4, 0.1), 2, 0.5, 1, lower.tail = FALSE) > qrweibull(seq(0.9, 0.6, -0.1), loc = 2, scale = 0.5, shape = 1) # Both give [1] 1.947 1.888 1.822 1.745 > pfrechet(2:6, 2, 0.5, 1) [1] 0.0000 0.6065 0.7788 0.8465 0.8825 > pfrechet(2:6, 2, 0.5, 1, low = FALSE) [1] 1.0000 0.3935 0.2212 0.1535 0.1175 > drweibull(-1:3, 2, 0.5, log = TRUE) [1] -5.307 -3.307 -1.307 -Inf -Inf > dgumbel(-1:3, 0, 1) [1] 0.17937 0.36788 0.25465 0.11820 0.04737 \end{verbatim} Let $F$ be an arbitrary distribution function, and let $X_1,\dots,X_m$ be a random sample from $F$. Define $U_m=\max\{X_1,\dots,X_m\}$ and $L_m=\min\{X_1,\dots,X_m\}$. The distributions of $U_m$ and $L_m$ are given by \begin{align} &\Pr(U_m \leq x) = [F(x)]^m \label{maxdens} \\ &\Pr(L_m \leq x) = 1 - [1 - F(x)]^m. \label{mindens} \end{align} Simulation, distribution, quantile and density functions for the distribution of $U_m$, given an integer $m$ and an arbitrary distribution function $F$, are provided by \verb+rextreme+, \verb+pextreme+, \verb+qextreme+ and \verb+dextreme+ respectively. The integer $m$ should be given to the argument \verb+mlen+. The distribution $F$ is most easily specified by passing an abbreviated distribution name to the argument \verb+distn+. If \verb+largest+ is \verb+FALSE+ the distribution of $L_m$ is used. Some examples are given below. \begin{verbatim} > rextreme(1, distn = "norm", sd = 2, mlen = 20, largest = FALSE) > min(rnorm(20, mean = 0, sd = 2)) # Both simulate from the same distribution [1] -2.612 > rextreme(4, distn = "exp", rate = 1, mlen = 5) > rextreme(4, distn = "exp", mlen = 5) # Both simulate from the same distribution [1] 2.2001 0.8584 4.5595 3.9397 > pextreme(c(.4, .5), distn = "norm", mean = 0.5, sd = c(1, 2), mlen = 4) [1] 0.04484 0.06250 > dextreme(c(1, 4), distn = "gamma", shape = 1, scale = 0.3, mlen = 100) [1] 0.3261328 0.0005398 \end{verbatim} Let $X_{(1)} \geq X_{(2)} \geq \dots \geq X_{(m)}$ be the order statistics of the random sample $X_1,\dots,X_m$. The distribution of the $j$th largest order statistic, for $j = 1,\dots,m$, is \begin{equation} \Pr(X_{(j)} \leq x) = \sum_{k=0}^{j-1} \binom{m}{k} [F(x)]^{m-k} [1 - F(x)]^k. \label{orderdens} \end{equation} The distribution of the $j$th smallest order statistic is obtained by setting $j = m + 1 - j$. Simulation, distribution and density functions for the distribution of $X_{(j)}$, for given integers $m$ and $j \in \{1,\dots,m\}$, and for an arbitrary distribution function $F$, are provided by \verb+rorder+, \verb+porder+ and \verb+dorder+ respectively. The integer $m$ should again be given to the argument \verb+mlen+. If \verb+largest+ is \verb+FALSE+ the distribution of the \verb+j+th smallest order statistic $X_{(m+j-1)}$ is used. Some examples are given below. \begin{verbatim} > rorder(1, distn = "norm", mlen = 20, j = 2) [1] 2.284 > porder(c(1, 2), distn = "gamma", shape = c(.5, .7), mlen = 10, j = 2) [1] 0.5177 0.8259 > dorder(c(1, 2), distn = "gamma", shape = c(.5, .7), mlen = 10, j = 2) [1] 0.7473 0.3081 \end{verbatim} \section{Bivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{biv} The evd package contains functions associated with nine parametric bivariate extreme value distributions. The univariate marginal distributions in each case are GEV, with marginal parameters ($\mu_1,\sigma_1,\xi_1$) and ($\mu_2,\sigma_2,\xi_2$). There are three symmetric models, with distribution functions \begin{align} &G(z_1,z_2) = \exp\left\{- (y_1^{1/\alpha}+y_2^{1/\alpha})^\alpha \right\}, \quad 0<\alpha\leq1, \label{log} \\ &G(z_1,z_2) = \exp\left\{ - y_1 - y_2 + (y_1^{-r}+y_2^{-r})^{-1/r} \right\}, \quad r>0, \label{neglog} \\ &G(z_1,z_2) = \exp\left( - y_1\Phi\{\lambda^{-1}+{\textstyle\frac{1}{2}}\lambda[\log(y_1/y_2)]\} - y_2\Phi\{\lambda^{-1}+{\textstyle\frac{1}{2}}\lambda[\log(y_2/y_1)]\}\right), \quad \lambda>0, \notag \end{align} known as the logistic \citep{gumb60b}, negative logistic \citep{gala75} and H\"{u}sler-Reiss \citep{huslreis89} models respectively, where \begin{equation} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation} for $j=1,2$. Independence\footnote{ Independence occurs when $G(z_1,z_2) = \exp\{-(y_1+y_2)\}$.} is obtained when $\alpha=1$, $r\downarrow0$ or $\lambda\downarrow0$. Complete dependence\footnote{ Complete dependence occurs when $G(z_1,z_2) = \exp\{-\max(y_1,y_2)\}$.} is obtained when $\alpha\downarrow0$, $r\rightarrow\infty$ or $\lambda\rightarrow\infty$. The distributions functions \eqref{log} and \eqref{neglog} have asymmetric extensions, given by \begin{align} &G(z_1,z_2) = \exp\left\{ - (1-\theta_1)y_1 - (1-\theta_2)y_2 - [(\theta_1y_1)^{1/\alpha}+(\theta_2y_2)^{1/\alpha}]^\alpha\right\}, \quad 0<\alpha\leq1, \notag \\ &G(z_1,z_2) = \exp\left\{ - y_1 - y_2 + [(\theta_1y_1)^{-r}+(\theta_2y_2)^{-r}]^{-1/r}\right\}, \quad r>0, \notag \end{align} known as the asymmetric logistic \citep{tawn88} and asymmetric negative logistic \citep{joe90} models respectively, where the asymmetry parameters $0\leq\theta_1,\theta_2\leq1$. For the asymmetric logistic model independence is obtained when either $\alpha = 1$, $\theta_1 = 0$ or $\theta_2 = 0$. Different limits occur when $\theta_1$ and $\theta_2$ are fixed and $\alpha\downarrow0$. For the asymmetric negative logistic model independence is obtained when either $r\downarrow0$, $\theta_1\downarrow0$ or $\theta_2\downarrow0$. Different limits occur when $\theta_1$ and $\theta_2$ are fixed and $r\rightarrow\infty$. The remaining four bivariate models are defined in Appendix A. Density, distribution and simulation functions for each of the nine models are provided by \verb+dbvevd+, \verb+pbvevd+ and \verb+rbvevd+ respectively. The argument \verb+model+ denotes the specified model, which must be either \verb+"log"+ (the default), \verb+"alog"+, \verb+"hr"+, \verb+"neglog"+, \verb+"aneglog"+, \verb+"bilog"+, \verb+"negbilog"+, \verb+"ct"+ or \verb+"amix"+ (or any unique partial match). The first argument in \verb+pbvevd+ and \verb+dbvevd+ should be a vector of length two or a matrix with two columns, so that each row specifies a value for $(z_1,z_2)$. The parameters of the specified model can be passed using one or more of the arguments \verb+dep+, \verb+asy+, \verb+alpha+ and \verb+beta+. The marginal parameters ($\mu_1,\sigma_1,\xi_1$) and ($\mu_2,\sigma_2,\xi_2$) can be passed using the arguments \verb+mar1+ and \verb+mar2+ respectively. Gumbel marginal distributions are used by default. The arguments \verb+mar1+ and \verb+mar2+ can also be matrices with three columns, in which case each column represents a vector of values to be passed to the corresponding marginal parameter. Some examples are given below. \begin{verbatim} > rbvevd(3, dep = .8, asy = c(.4, 1), model = "alog") [,1] [,2] [1,] 0.07876 -0.7971 [2,] 0.01091 -0.8113 [3,] -0.10491 -0.8831 > rbvevd(3, alpha = .5, beta = 1.2, model = "negb", mar1 = rep(1, 3)) [,1] [,2] [1,] 0.7417 1.085 [2,] 0.8391 1.825 [3,] 2.0142 2.280 > pbvevd(c(1, 1.2), dep = .4, asy = c(.4, .6), model = "an", mar1 = rep(1, 3)) [1] 0.173 > tmp.quant <- matrix(c(1,1.2,1,2), ncol = 2, byrow = TRUE) > tmp.mar <- matrix(c(1,1,1,1.2,1.2,1.2), ncol = 3, byrow = TRUE) > pbvevd(tmp.quant, dep = .4, asy = c(.4, .6), model = "an", mar1 = tmp.mar) [1] 0.173 0.175 > dbvevd(c(1, 1.2), alpha = .2, beta = .6, model = "ct", mar1 = rep(1, 3)) [1] 0.1213 > dbvevd(tmp.quant, alpha = 0.2, beta = 0.6, model = "ct", mar1 = tmp.mar) [1] 0.1213 0.0586 \end{verbatim} %The logistic and asymmetric logistic models respectively are simulated using bivariate versions of Algorithms 1.1 and 1.2 in \citet{step02a}. %All other models are simulated using a root finding algorithm to generate random vectors from the conditional distribution function. %The simulation of the the bilogistic or negative bilogistic model is relatively slow (about 2.8 seconds per 1000 random vectors on a 450MHz PIII, 512Mb RAM) because each evaluation of either distribution function requires a root finding algorithm to evaluate $\gamma$. \section{Multivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{mult} Let $z=(z_1,\dots,z_d)$. The $d$-dimensional logistic model \citep{gumb60b} has distribution function \begin{equation*} G(z) = \exp\left\{-\left(\sum\nolimits_{j=1}^d y_j^{1/\alpha}\right)^\alpha\right\} \end{equation*} where $\alpha\in(0,1]$ and $(y_1,\dots,y_d)$ is defined by the transformations \eqref{mtrans}. This distribution can be extended to an asymmetric form. Let $B$ be the set of all non-empty subsets of $\{1,\dots,d\}$, let $B_1=\{b \in B:|b|=1\}$, where $|b|$ denotes the number of elements in the set $b$, and let $B_{(i)}=\{b \in B:i \in b\}$. The multivariate asymmetric logistic model \citep{tawn90} is given by \begin{equation*} G(z)=\exp\left\{-\sum\nolimits_{b \in B} \left[\sum\nolimits_{i \in b}(\theta_{i,b}y_i)^{1/\alpha_b}\right]^{\alpha_b}\right\} \end{equation*} where the dependence parameters $\alpha_b\in(0,1]$ for all $b\in B \setminus B_1$, and the asymmetry parameters $\theta_{i,b}\in[0,1]$ for all $b\in B$ and $i\in b$. The constraints $\sum_{b \in B_{(i)}}\theta_{i,b}=1$ for $i=1,\dots,d$ ensure that the marginal distributions are GEV. There exists further constraints which arise from the possible redundancy of asymmetry parameters in the expansion of the distributional form. Specifically, if $\alpha_b=1$ for some $b\in B \setminus B_1$ then $\theta_{i,b}=0$ for all $i \in b$. Let $b_{-i_0}=\{i \in b:i \neq i_0\}$. If, for some $b \in B \setminus B_1$, $\theta_{i,b}=0$ for all $i \in b_{-i_0}$, then $\theta_{i_0,b}=0$. %The model contains $2^d-d-1$ dependence parameters and $d2^{d-1}$ asymmetry parameters (excluding the constraints). %The logistic model \eqref{multlog} can be obtained by setting $\theta_{i,12 \dots d}=1$ for all $i = 1,\dots,d$ (which implies that $\theta_{i,b}=0$ whenever $|b| rmvevd(3, dep = .6, model = "log", d = 5) [,1] [,2] [,3] [,4] [,5] [1,] 0.1335 0.2878 1.07886 1.55515 1.310 [2,] 1.7100 0.9453 1.02070 -0.02553 1.527 [3,] -0.3376 -0.5814 0.07426 0.10906 2.827 > tmp.mar <- matrix(c(1,1,1,1,1,1.5,1,1,2), ncol = 3, byrow = TRUE) > rmvevd(3, dep = .6, d = 5, mar = tmp.mar) [,1] [,2] [,3] [,4] [,5] [1,] 2.803 4.6415 1.8531 3.5569 8.854 [2,] 0.751 0.9704 2.3328 2.6537 1.233 [3,] 4.641 1.4321 0.5825 0.6041 2.021 > tmp.quant <- matrix(rep(c(1,1.5,2), 5), ncol = 5) > pmvevd(tmp.quant, dep = .6, d = 5, mar = tmp.mar) [1] 0.07233 0.16387 0.21949 > dmvevd(tmp.quant, dep = .6, d = 5, mar = tmp.mar, log = TRUE) [1] -3.564 -6.610 -9.460 \end{verbatim} For the asymmetric logistic model \verb+dep+ should be a vector of length $2^{\verb+d+}-\verb+d+-1$ containing the dependence parameters. For example, when $\verb+d+ = 4$ \begin{equation*} \verb+dep+ = \texttt{c}(\alpha_{12},\alpha_{13},\alpha_{14},\alpha_{23},\alpha_{24},\alpha_{34},\alpha_{123},\alpha_{124},\alpha_{134},\alpha_{234},\alpha_{1234}). \end{equation*} The asymmetry parameters should be passed to \verb+asy+ in a list with $2^{\verb+d+}-1$ elements, where each element is a vector (including vectors of length one) corresponding to a set $b \in B$, containing $\{\theta_{i,b}:i \in b\}$. For example, when $\verb+d+ = 4$ \begin{align*} \texttt{asy} = \texttt{list}&(\theta_{1,1}, \theta_{2,2}, \theta_{3,3}, \theta_{4,4}, \texttt{c}(\theta_{1,12},\theta_{2,12}), \texttt{c}(\theta_{1,13},\theta_{3,13}), \texttt{c}(\theta_{1,14},\theta_{4,14}), \texttt{c}(\theta_{2,23},\theta_{3,23}), \\ &\texttt{c}(\theta_{2,24},\theta_{4,24}), \texttt{c}(\theta_{3,34},\theta_{4,34}), \texttt{c}(\theta_{1,123},\theta_{2,123},\theta_{3,123}), \texttt{c}(\theta_{1,124},\theta_{2,124},\theta_{4,124}), \\ &\texttt{c}(\theta_{1,134},\theta_{3,134},\theta_{4,134}), \texttt{c}(\theta_{2,234},\theta_{3,234},\theta_{4,234}), \texttt{c}(\theta_{1,1234},\theta_{2,1234},\theta_{3,1234},\theta_{4,1234})). \end{align*} All the constraints, including $\sum_{b \in B_{(i)}}\theta_{i,b}=1$ for $i=1,\dots,d$, must be satisfied or an error will occur. Some examples are given below. The dependence parameters used in the following trivariate asymmetric logistic model are $(\alpha_{12},\alpha_{13},\alpha_{23},\alpha_{123})=(.6,.5,.8,.3)$. The asymmetry parameters are $\theta_{1,1}=.4$, $\theta_{2,2}=0$, $\theta_{3,3}=.6$, $(\theta_{1,12},\theta_{2,12})=(.3,.2)$, $(\theta_{1,13},\theta_{3,13})=(.1,.1)$, $(\theta_{2,23},\theta_{3,23})=(.4,.1)$ and finally $(\theta_{1,123},\theta_{2,123},\theta_{3,123})=(.2,.4,.2)$. \begin{verbatim} > asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) > rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) [,1] [,2] [,3] [1,] 0.52375 -0.8844 1.4898 [2,] 1.16174 -0.4368 -0.7404 [3,] -0.03737 1.5139 -0.5996 > dmvevd(c(2, 2, 2), dep = c(.6,.5,.8,.3), asy = asy, model = "a", d = 3) [1] 0.006636 > tmp.quant <- matrix(rep(c(1,1.5,2), 3), ncol = 3) > pmvevd(tmp.quant, dep = c(.6,.5,.8,.3), asy = asy, model = "a", d = 3) [1] 0.4131 0.5849 0.7223 \end{verbatim} The dependence parameters used in the following four dimensional asymmetric logistic model are $\alpha_b = 1$ for $|b| = 2$\footnote{ The values taken by $\alpha_b$ when $|b| = 2$ are irrelevant here because $\theta_{i,b}=0$ for all $i \in b$ when $|b|=2$.} and $(\alpha_{123},\alpha_{124},\alpha_{134},\alpha_{234},\alpha_{1234})=(.7,.3,.8,.7,.5)$. The asymmetry parameters are $\theta_{i,b}=0$ for all $i \in b$ when $|b|\leq2$, $(\theta_{1,123},\theta_{2,123},\theta_{3,123})=(.2,.1,.2)$, $(\theta_{1,124},\theta_{2,124},\theta_{4,124})=(.1,.1,.2)$, $(\theta_{1,134},\theta_{3,134},\theta_{4,134})=(.3,.4,.1)$, $(\theta_{2,234},\theta_{3,234},\theta_{4,234})=(.2,.2,.2)$ and finally $(\theta_{1,1234},\theta_{2,1234},\theta_{3,1234},\theta_{4,1234})=(.4,.6,.2,.5)$. \begin{verbatim} > asy <- list(0, 0, 0, 0, c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(.2,.1,.2), c(.1,.1,.2), c(.3,.4,.1), c(.2,.2,.2), c(.4,.6,.2,.5)) > rmvevd(3, dep = c(rep(1,6),.7,.3,.8,.7,.5), asy = asy, model = "alog", d = 4) [,1] [,2] [,3] [,4] [1,] -0.5930 -0.1916 1.0211 0.6113 [2,] 4.3522 -1.0050 2.3618 -0.1875 [3,] 0.5805 0.4443 -0.5958 0.9717 \end{verbatim} %I will end this section with some examples that may be helpful in deciphering errors. %\begin{verbatim} %> asy <- list(.4, 0, .5, c(.3,.2), c(.1,.15), c(.4,.075), c(.2,.4,.25)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# 0.5 + 0.15 + 0.075 + 0.25 does not equal one; the sum constraint on the third %margin is not satisfied. % %> asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,1,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# A dependence parameter is equal to one but the corresponding asymmetry %parameters are not zero (the first `further constraint'). %# One possible alternative which preserves dep (and still satisfies the sum %constraints) is % %> asy <- list(.4, 0, .6, c(.3,.2), c(0,0), c(.4,.1), c(.3,.4,.3)) %> rmvevd(3, dep = c(.6,1,.8,.3), asy = asy, model = "alog", d = 3) % [,1] [,2] [,3] %[1,] 4.627 2.9125 0.9414 %[2,] 1.200 0.1556 0.2048 %[3,] -1.159 -0.8749 -1.0340 % %> asy <- list(.5, 0, .6, c(.3,.2), c(0,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# The fifth element in asy contains exactly one non-zero asymmetry parameter %(the second `further constraint'). % %> asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog") %Error in mvalog.check(asy, dep, d = d) : % `asy' should be a list of length 3 % %# the dimension has been mis-specified (the default dimension is 2). %\end{verbatim} \section{Dependence Functions} \setcounter{footnote}{0} \label{depfun} Let $z=(z_1,\dots,z_d)$ and $\omega=(\omega_1,\dots,\omega_d)$. Any $d$-dimensional extreme value distribution function can be represented in the form \begin{equation*} G(z) = \exp\left\{ - \left\{\sum\nolimits_{j=1}^d y_j \right\} A\left(\frac{y_1}{\sum\nolimits_{j=1}^d y_j}, \dots, \frac{y_d}{\sum\nolimits_{j=1}^d y_j} \right)\right\}, \end{equation*} where $(y_1,\dots,y_d)$ is defined by the transformations \eqref{mtrans}. It follows that $A(\omega)=-\log\{G(y_1^{-1}(\omega_1),\dots,y_d^{-1}(\omega_d))\}$, defined on the simplex $S_d =\{\omega \in \mathbb{R}^d_+: \sum_{j=1}^d \omega_j = 1\}$. $A(\cdot)$ is known as the dependence function. The dependence function characterises the dependence structure of $G$. It can be shown that $A(\omega)=1$ when $\omega$ is one of the $d$ vertices of $S_d$ (i.e.\ when one component of $\omega$ is equal to one, and all remaining components are equal to zero), and that $A$ is a convex function with $\max(\omega_1,\dots,\omega_d) \leq A(\omega) \leq 1$ for all $\omega \in S_d$. The lower and upper bounds are obtained at complete dependence and mutual independence respectively. In particular, $A(1/d,\dots,1/d)$ is equal to $1/d$ at complete dependence, and $1$ at mutual independence. The dependence function of a \emph{bivariate} extreme value distribution is a special case (because the sets $S_2$ and [0,1] are equivalent), and is typically defined as follows. Any bivariate extreme value distribution function can be represented in the form \begin{equation} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation} so that $A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}$, defined on $0\leq\omega\leq1$.\footnote{Some authors \citep[e.g.][]{pick81} use $A(\omega)=-\log\{G(y_1^{-1}(1-\omega),y_2^{-1}(\omega))\}$.} It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. Dependence functions for parametric bivariate and trivariate extreme value models can be calculated and plotted, at given parameter values, using the functions \verb+abvevd+ and \verb+amvevd+. Non-parametric estimators of dependence functions can also be calculated and plotted, using the functions \verb+abvnonpar+ and \verb+amvnonpar+. Some examples are given below. The last lines of code produce Figure \ref{depfns}. %Non-parametric estimators of dependence functions of bivariate extreme value models are constructed as follows. %Suppose $(z_{i1},z_{i2})$ for $i=1,\dots,n$ are $n$ bivariate observations that are passed to \verb+abvnonpar+ using the argument \verb+data+. %The marginal parameters are estimated (under the assumption of independence) and the data is transformed using %\begin{align} %y_{i1} &= \{1+\hat{\xi}_1(z_{i1}-\hat{\mu}_1)/\hat{\sigma}_1\}_{+}^{-1/\hat{\xi}_1} \notag \\ %y_{i2} &= \{1+\hat{\xi}_2(z_{i2}-\hat{\mu}_2)/\hat{\sigma}_2\}_{+}^{-1/\hat{\xi}_2} %\label{transtoexp} %\end{align} %for $i=1,\dots,n$, where $(\hat{\mu}_1,\hat{\sigma}_1,\hat{\xi}_1)$ and $(\hat{\mu}_2,\hat{\sigma}_2,\hat{\xi}_2)$ are the maximum likelihood estimates for the location, scale and shape parameters on the first and second margins. %If non-stationary fitting is implemented using the \verb+nsloc1+ or \verb+nsloc2+ arguments (see Sections \ref{unifit} and \ref{bivfit}) the marginal location parameters may depend on $i$. %The estimator is specified using the argument \verb+method+. A number of different estimators are implemented. A short simulation study given in Appendix A compares the properties of these estimators. The default estimator is the estimator of \citet{capefoug97}, which is defined (on $0 \leq \omega \leq 1$) by %which must be either \verb+"pickands"+, \verb+"deheuvels"+, \verb+"cfg"+ (the default), \verb+"tdo"+ or \verb+"hall"+ (or any unique partial match). %These estimators are respectively defined (on $0 \leq \omega \leq 1$) as follows. %\begin{equation*} %\exp\left\{ \{1-p(\omega)\} \int_{0}^{\omega} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x - p(\omega) \int_{\omega}^{1} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x \right\} %\end{equation*} %\citet{pick81} %\begin{equation*} %A_p(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\omega},\frac{y_{i2}}{1-\omega}\right)\right\}^{-1} %\end{equation*} %\citet{dehe91} %\begin{equation*} %A_d(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\omega},\frac{y_{i2}}{1-\omega}\right) - \omega\sum_{i=1}^n y_{i1} - (1-\omega)\sum_{i=1}^n y_{i2} + n\right\}^{-1} %\end{equation*} %\citet{capefoug97} %\begin{equation*} %A_c(\omega) = \exp\left\{ \{1-p(\omega)\} \int_{0}^{\omega} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x - p(\omega) \int_{\omega}^{1} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x \right\} %\end{equation*} %\citet{tiag97} %\begin{equation*} %A_t(\omega) = 1 - \frac{1}{1 + \log n} \sum_{i=1}^n \min\left(\frac{\omega}{1+ny_{i1}},\frac{1-\omega}{1+ny_{i2}}\right) %\end{equation*} %\citet{halltajv00} %\begin{equation*} %A_h(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\bar{y}_1 \omega},\frac{y_{i2}}{\bar{y}_2 (1-\omega)}\right)\right\}^{-1} %\end{equation*} %where $H_n(x)$ is the empirical distribution function of $x_1,\dots,x_n$, with $x_i = y_{i1} / (y_{i1} + y_{i2})$ for $i=1,\dots,n$, and $p(\cdot)$ is any bounded function on $[0,1]$, which can be specified using the argument \verb+wf+. %By default $p(\cdot)$ is the identity function. %In the estimator of \citet{halltajv00}, $\bar{y}_1 = n^{-1}\sum_{i=1}^n y_{i1}$ and $\bar{y}_2 = n^{-1}\sum_{i=1}^n y_{i2}$. %Let $A_n(\cdot)$ be any estimator of $A(\cdot)$. %$A_n(\cdot)$ will not necessarily satisfy $\max(\omega,1-\omega) \leq A_n(\omega) \leq 1$ for all $0\leq\omega\leq1$. %An obvious modification is %\begin{equation*} %A_n^{'}(\omega) = \min(1, \max\{A_n(\omega), \omega, 1-\omega\}). %\end{equation*} %The function \verb+abvnonpar+ always implements this modification. %Another estimator $A_n^{''}(\omega)$ can be derived by taking the convex minorant of $A_n^{'}(\omega)$. %This can be achieved by setting the argument \verb+convex+ to \verb+TRUE+. %Some examples of the functions described in this section are given below. %The last eight lines of code produce Figure \ref{depfns}. \begin{verbatim} > bvlsm <- rmvevd(100, dep = 0.6, model = "log", d = 2) > tvlsm <- rmvevd(100, dep = 0.6, model = "log", d = 3) > abvevd(seq(0,1,0.25), dep = 0.3, asy = c(.7,.9), model = "alog") [1] 1.0000 0.8272 0.7013 0.7842 1.0000 > abvnonpar(seq(0,1,0.25), data = bvlsm) [1] 1.0000 0.8634 0.8158 0.8392 1.0000 > abvnonpar(data = bvlsm, plot = TRUE, blty = 1, lty = 2) > abvevd(dep = .3, asy = c(.5, .9), model = "al", add = TRUE) > abvevd(dep = 1.05, model = "hr", add = TRUE) > amvnonpar(data = tvlsm, plot = TRUE, lower = 0.6) \end{verbatim} \begin{figure} \hspace*{2.5cm} \scalebox{0.25}{\includegraphics{depfns5.ps}} \hspace{0cm} \scalebox{0.3}{\includegraphics[0,100][260,580]{depfns6.ps}} \vspace{-1cm} \caption{Left: Parametric (solid lines) and non-parametric (dashed line) dependence functions for bivariate distributions. The triangular border represents the constraint $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $\omega \in [0,1]$. Right: non-parametric dependence function for a trivariate distribution. Darker colours depict smaller values, and hence stronger dependence.} \label{depfns} \end{figure} \section{Stochastic Processes} \setcounter{footnote}{0} \label{stochproc} The evd package contains four functions that simulate from stochastic processes associated with extreme value theory. The functions \verb+marma+, \verb+mar+ and \verb+mma+ generate max autoregressive moving average processes, and the function \verb+evmc+ generates Markov chains with extreme value dependence structures. The function \verb+clusters+ identifies extreme clusters of a stochastic process, and \verb+exi+ estimates a quantity known as the Extremal Index. A max autoregressive moving average process $\{X_k\}$, denoted by MARMA($p$, $q$), satisfies \begin{equation*} X_k = \max\{\phi_1 X_{k-1}, \dots, \phi_p X_{k-p}, \epsilon_k, \theta_1 \epsilon_{k-1}, \dots, \theta_q \epsilon_{k-q}\} \end{equation*} where $(\phi_1, \dots, \phi_p)$ and $(\theta_1, \ldots, \theta_p)$ are vectors of non-negative parameters, and $\{\epsilon_k\}$ is a series of \emph{iid} random variables with a common distribution defined by the argument \verb+rand.gen+. The standard Fr\'{e}chet distribution is used by default. A max autoregressive process $\{X_k\}$, denoted by MAR($p$), is equivalent to a MARMA($p$, 0) process, so that \begin{equation*} X_k = \max\{\phi_1 X_{k-1}, \dots, \phi_p X_{k-p}, \epsilon_k\}. \end{equation*} A max moving average process $\{X_k\}$, denoted by MMA($q$), is equivalent to a MARMA(0, $q$) process, so that \begin{equation*} X_k = \max\{\epsilon_k, \theta_1 \epsilon_{k-1}, \dots, \theta_q \epsilon_{k-q}\}. \end{equation*} The functions \verb+mar+, \verb+mma+ and \verb+marma+ generate MAR($p$), MMA($q$) and MARMA($p$, $q$) processes respectively. Examples of calls to these functions are given below. The \verb+n.start+ argument denotes the burn-in period, which can be specified so that the output series is not unduly influenced by the $p$ starting values, which are all zero by default. \begin{verbatim} > marma(100, p = 1, q = 1, psi = 0.75, theta = 0.65) > mar(100, psi = 0.85, n.start = 20) > mma(100, q = 2, theta = c(0.75, 0.8)) \end{verbatim} The function \verb+evmc+ generates first order Markov chains. Informally, a first order Markov chain $X_1, \ldots, X_n$ is a stochastic process such that at any given time $t$ the probability distribution of $X_{t+1}$ is independent the past $X_1, \ldots, X_{t-1}$, given the current state $X_t$. The \verb+evmc+ function generates a first order Markov chain such that each pair of consecutive values has the dependence structure of a parametric bivariate extreme value model. The main arguments of \verb+evmc+ are the same as those of \verb+rbvevd+. The function \verb+evmc+ also has the argument \verb+margin+, which denotes the marginal distribution of each value. This must be either \verb+"uniform"+ (the default), \verb+"rweibull"+, \verb+"frechet"+ or \verb+"gumbel"+ (or any unique partial match), for the uniform, standard reversed Weibull, standard Gumbel and standard Fr\'{e}chet distributions respectively. Examples of calls to \verb+evmc+ are given below. \begin{verbatim} > evmc(100, alpha = 0.1, beta = 0.1, model = "bilog") > evmc(100, dep = 10, model = "hr", margins = "gum") \end{verbatim} The function \verb+clusters+ identifies extreme clusters within (stationary) stochastic processes. A simple way of determining clusters is to specify a threshold $u$ and define consecutive exceedances of $u$ to belong to the same cluster. It is more common though to consider a cluster to be active until $r$ consecutive values fall below (or are equal to) $u$, for some given clustering interval length $r$. %If $r > 1$ the clusters may contain any arbitrarily low value. %To avoid this problem a lower threshold $u_l < u$ can be specified so that a cluster is terminated whenever any values fall below (or are equal to) $u_l$. The following code uses \verb+clusters+ to generate the plots depicted in Figure \ref{clust}. These plots identify clusters graphically. If the argument \verb+plot+ is \verb+FALSE+ (the default), then \verb+clusters+ returns a list of extreme clusters. \begin{verbatim} > set.seed(150) > x <- evmc(50, dep = 0.55, model ="log") > clusters(x, 0.8, plot = TRUE) > clusters(x, 0.8, 4, plot = TRUE) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{clust1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{clust3.ps}} \end{center} \vspace{0cm} \caption{The identification of extreme clusters in a stochastic process. The clustering interval lengths are $r = 1$ (left) and $r=4$ (right). The threshold in each case is $u = 0.8$.} \label{clust} \end{figure} The function \verb+exi+ returns estimates of the Extremal Index of a (stationary) stochastic process. The Extremal Index is defined in Chapter 3 of \citet{leadling83}. A more informal treatment is given in Chapter 5 of \citet{cole01}. The extremal index can be estimated using the inverse of the average size of extreme clusters, where the cluster size is defined as the number of exceedances that it contains. \section{Fitting Univariate Distributions} \setcounter{footnote}{0} \label{unifit} This section presents functions that produce maximum likelihood estimates for some of the distributions introduced in Section \ref{uni}. Peaks over threshold models are discussed in Section \ref{potfit}. Maximum likelihood estimates for bivariate extreme value distributions are discussed in Section \ref{bivfit}. For illustrative purposes Sections \ref{unifit}, \ref{potfit} and \ref{bivfit} use only simulated data. Three practical examples using the data sets \verb+oxford+, \verb+rain+ and \verb+sealevel+ are given in Sections \ref{egoxford}, \ref{egrain} and \ref{egsealevel} respectively. The function \verb+fgev+ produces maximum likelihood estimates for the GEV distribution \eqref{gev}. The first argument should be a numeric vector containing data to be fitted. Missing values are allowed. If the argument \verb+start+ is given it should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If \verb+start+ is omitted the routine attempts to find good starting values for the optimisation using moment estimators. If any of the parameters are to be set to fixed values, they can be given as separate arguments. For example, the Gumbel distribution \eqref{gumbel} can be fitted using \verb+shape = 0+. Arguments of the optimisation function \verb+optim+ can also be specified. This includes the optimisation method, which can be passed using the argument \verb+method+. Two examples of the \verb+fgev+ function are given below. \begin{verbatim} > data1 <- rgev(1000, loc = 0.13, scale = 1.1, shape = 0.2) > m1 <- fgev(data1) > m1 Call: fgev(x = data1) Deviance: 3650 Estimates loc scale shape 0.127 1.125 0.224 Standard Errors loc scale shape 0.0400 0.0321 0.0248 Optimization Information Convergence: successful Function Evaluations: 51 Gradient Evaluations: 12 > m2 <- fgev(data1, loc = 0, scale = 1) > fitted(m2) shape 0.236 \end{verbatim} In the first example the likelihood is maximised over (\verb+loc+, \verb+scale+, \verb+shape+). In the second example the likelihood is maximised over \verb+shape+, with the location and scale parameters fixed at zero and one respectively. The maximum likelihood estimators do not necessarily have the usual asymptotic properties, since the end points of the GEV distribution depend on the model parameters. \citet{smit85} shows that the usual asymptotic properties hold when $\xi > -0.5$. When $-1 < \xi \leq -0.5$ the maximum likelihood estimators do not have the standard asymptotic properties, but generally exist. When $\xi \leq -1$ maximum likelihood estimators do not often exist. This occurs because of the large mass near the upper end point. The likelihood increases without bound as the upper end point is estimated to be closer and closer to the largest observed value. In terms of the reversed Weibull shape parameter $\alpha$, the usual asymptotic properties hold when $\alpha>2$, the asymptotic properties are not standard for $1<\alpha\leq2$, and maximum likelihood estimators do not often exist for $\alpha<1$. When the usual asymptotic properties hold (as here) the standard errors of the maximum likelihood estimates, approximated using the inverse of the observed information matrix, can be extracted from the fitted object using \begin{verbatim} > std.errors(m1) loc scale shape 0.03999 0.03214 0.02479 \end{verbatim} %When the usual asymptotic properties do not hold the \verb+std.errors+ component will still be based on the inverse of the observed information matrix, but these values must be \emph{interpreted with caution} \citep{smit85}. Likelihood ratio tests can be performed using the function \verb+anova+. We can compare the two models \verb+m1+ and \verb+m2+ to test the null hypothesis that the location parameter is zero and the scale parameter is one. \begin{verbatim} > anova(m1, m2) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 3 3650 m2 1 3669 2 18.8 8.2e-05 \end{verbatim} The deviance difference, \verb+deviance(m2)+ minus \verb+deviance(m1)+, is about $18.8$, which yields a p-value of $8.2 \times 10^{-5}$ when compared with a chi-squared distribution on two degrees of freedom. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+, \verb+profile+ and \verb+profile2d+ (see Section \ref{egoxford}). By default the maximum likelihood estimates are calculated under the assumption that the data to be fitted are the observed values of independent random variables $Z_1,\dots,Z_n$, where $Z_i \sim \text{GEV}(\mu,\sigma,\xi)$ for each $i=1,\dots,n$. The \verb+nsloc+ argument allows non-stationary models of the form $Z_i \sim \text{GEV}(\mu_i,\sigma,\xi)$, where \begin{equation*} \mu_i = \beta_0 + \beta_1x_{i1} + \dots + \beta_kx_{ik}. \end{equation*} The parameters $(\beta_0,\dots,\beta_k)$ are to be estimated. In matrix notation $\boldsymbol{\mu} = \boldsymbol{\beta_0} + X \boldsymbol{\beta} $, where $ \boldsymbol{\mu}= (\mu_1,\dots,\mu_n)^T$, $\boldsymbol{\beta_0} = (\beta_0,\dots,\beta_0)^T$, $\boldsymbol{\beta} = (\beta_1,\dots,\beta_k)^T$ and $X$ is the $n \times k$ covariate matrix (excluding the intercept) with $ij$th element $x_{ij}$. The \verb+nsloc+ argument must be a data frame containing the matrix $X$, or a numeric vector which is converted into a single column data frame with column name ``trend''. The column names of the data frame are used to derive names for the estimated parameters. This allows any of the $k+3$ parameters $(\beta_0,\dots,\beta_k,\sigma,\xi)$ to be set to fixed values within the optimisation. The covariates must be (at least approximately) \emph{centred and scaled}, not only for numerical reasons, but also because the starting value (if \verb+start+ is not given) for each corresponding coefficient is taken to be zero. When a linear trend is present in the data, the location parameter is often modelled as \begin{equation*} \mu_i = \beta_0 + \beta_1t_i, \end{equation*} where $t_i$ is some centred and scaled version of the time of the $i$th observation. More complex changes in $\mu$ may also be appropriate. For example, a change-point model \begin{equation*} \mu_i = \beta_0 + \beta_1x_i \qquad \text{where} \qquad x_i = \begin{cases} 0 & i \leq i_0 \\ 1 & i > i_0 \end{cases}, \end{equation*} or a quadratic trend \begin{equation*} \mu_i = \beta_0 + \beta_1t_i + \beta_2t_i^2. \end{equation*} See Sections \ref{egoxford} and \ref{egsealevel} for examples of non-stationary modelling. The function \verb+fgev+ also has an argument called \verb+prob+. If $\verb+prob+ = p$ is passed a value in the interval [0,1], \verb+fgev+ again produces maximum likelihood estimates for the GEV distribution, but the model is re-parameterised from $(\mu,\sigma,\xi)$ to $(z_p,\sigma,\xi)$, where $z_p$ is the quantile corresponding to the upper tail probability $p$. This argument can be used to calculate and plot profile log-likelihoods of extreme quantiles (see Section \ref{egoxford}). If \verb+prob+ is zero/one, then $z_p$ is defined as the upper/lower end point $\mu - \sigma/\xi$, and $\xi$ is restricted to the negative/positive axis. Under non-stationarity the model is re-parameterised from $(\beta_0,\beta_1,\dots,\beta_k,\sigma,\xi)$ to $(z_p,\beta_1,\dots,\beta_k,\sigma,\xi)$, so that $z_p$ is the quantile corresponding to the upper tail probability $p$ for the distribution obtained when all covariates are zero. The \verb+fextreme+ function produces maximum likelihood estimates for the distributions \eqref{maxdens} and \eqref{mindens} given an integer $m$ and an arbitrary distribution function $F$. The first argument should be a numeric vector containing the data to be fitted, which should represent maxima (if the argument \verb+largest+ is \verb+TRUE+, the default) or minima (if \verb+largest+ is \verb+FALSE+). The argument \verb+start+ (which cannot be missing) should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If any of the parameters are to be set to fixed values, they can be given as separate arguments. Arguments of the optimisation function \verb+optim+ can also be specified. The example given below produces maximum likelihood estimates for the distribution \eqref{maxdens}, where $m = 365$ and $F$ is the normal distribution. \begin{verbatim} > d2 <- rextreme(100, distn = "norm", mean = 0.56, mlen = 365) # Simulate yearly maxima using normal distribution > sv <- list(mean = 0, sd = 1) > nm <- fextreme(d2, start = sv, distn = "norm", mlen = 365) > fitted(nm) mean sd 0.685 0.959 \end{verbatim} The \verb+forder+ function yields maximum likelihood estimates for the distribution \eqref{orderdens} given integers $m$ and $j \in \{1,\dots,m\}$, and an arbitrary distribution function $F$. An example is given below, where $m = 365$, $j = 2$ and $F$ is the normal distribution. \begin{verbatim} > d3 <- rorder(100, distn = "norm", mean = 0.56, mlen = 365, j = 2) > sv <- list(mean = 0, sd = 1) > nm2 <- forder(d3, sv, distn = "norm", mlen = 365, j = 2) > fitted(nm2) mean sd 0.483 1.042 \end{verbatim} \section{Fitting Peaks Over Threshold Models} \setcounter{footnote}{0} \label{potfit} Suppose $X_1,\dots,X_n$ is a sequence of independent and identically distributed random variables, with $M_n = \{X_1,\dots,X_n\}$. Suppose that $n$ is large, so that (assuming certain regularity conditions) the distribution of $M_n$ is approximately GEV\@. Then for large enough $u$, the exceedances of the threshold $u$ are approximately distributed as generalised Pareto, with location parameter $u$. The function \verb+fpot+ fits this distribution to the exceedances, and hence produces maximum likelihood estimates for the shape and scale parameters. The value of the threshold $u$ must be specified by the user. It is typically chosen to be as small as possible, subject to the limit model providing a reasonable approximation. The functions \verb+mrlplot+ and \verb+tcplot+\footnote{Both of these functions are heavily based on code by Stuart Coles.} produce diagnostic plots that facilitate the specification of $u$. The function \verb+mrlplot+ produces the empirical mean residual life plot, which is a plot of the empirical mean of the excesses of $u$ (i.e.\ the exceedances of $u$ minus $u$), plotted against $u$. If the exceedances of a threshold $u_0$ are generalised Pareto, the empirical mean residual life plot should be approximately linear for all $u > u_0$. The function \verb+tcplot+ calculates maximum likelihood estimates for the shape and modified scale parameters using a number of different thresholds, and plots these estimates against $u$. If the exceedances of a threshold $u_0$ are generalised Pareto, the shape and modified scale parameters should be approximately constant with respect to all thresholds $u > u_0$. Threshold identification plots produced from the example given below are depicted in Figure \ref{threshid}. In this case, the threshold $u = 1$ was chosen. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{threshid1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{threshid2.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{threshid3.ps}} \end{center} \caption{The identification of a threshold for the (generalised Pareto) peaks over threshold model. From left to right; the empirical mean residual life plot, modified scale parameter estimates and shape parameter estimates.} \label{threshid} \end{figure} The following code generates $n = 500$ independent standard normal random variables and fits the (generalised Pareto) peaks over threshold model to the exceedances of the threshold $u = 1$. The function \verb+fpot+ performs the fit. Many of the arguments of \verb+fpot+ are similar to those of \verb+fgev+. In particular, either of the \verb+scale+ or \verb+shape+ parameters can be set to fixed values by giving those parameters as arguments. For example, an exponential distribution for the excesses (or equivalently, a shifted exponential distribution for the exceedances) can be fitted using \verb+shape = 0+. \begin{verbatim} > tmp <- rnorm(500) > mrlplot(tmp, tlim = c(-1,1.5)) > tcplot(tmp, tlim = c(-1,1.5)) > pot1 <- fpot(tmp, 1) > pot1 Call: fpot(x = tmp, threshold = 1) Deviance: 40.5 Threshold: 1 Number Above: 76 Proportion Above: 0.152 Estimates scale shape 0.593 -0.211 \end{verbatim} The fitted model \verb+pot1+ gives the estimates for the scale and shape parameters of the generalised Pareto distribution fitted to the exceedances. Also given is the proportion of values above the threshold, or equivalently, the maximum likelihood estimate for the probability of an exceedance. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+ and \verb+profile+ (see Section \ref{egrain}). The peaks over thresholds model is typically extended to stationary series via declustering, which corresponds to a filtering of dependent observations to obtain a set of threshold exceedances which are approximately independent. An empirical rule is used to identify clusters of exceedances, and the generalised Pareto model is then fitted to the cluster maxima, assuming those maxima to be independent. The empirical rule, as given in Section \ref{stochproc}, is defined by the function \verb+clusters+. A model of this form can be implemented by setting the logical argument \verb+cmax+ to \verb+TRUE+. The clusters are identified using the threshold of the peaks over threshold model. An illustration of this technique is given below. The argument \verb+r+ is the clustering interval length. \begin{verbatim} > tmp2 <- evmc(500, dep = 0.8, margins = "gum") > pot2 <- fpot(tmp2, 1.5, cmax = TRUE, r = 3) > pot2 Call: fpot(x = tmp, threshold = 1, cmax = TRUE, r = 3) Deviance: 101.1 Threshold: 1.5 Number Above: 92 Proportion Above: 0.184 Clustering Interval: 3 Number of Clusters: 41 Extremal Index: 0.446 Estimates scale shape 1.657 -0.272 \end{verbatim} The Extremal Index is a quantity briefly discussed in Section \ref{stochproc}. The estimate of the Extremal Index is simply the number of clusters divided by the number of exceedances. The function \verb+fpot+ also has an argument called \verb+mper+. If $\verb+mper+ = m$ is passed a positive value, \verb+fpot+ again produces maximum likelihood estimates for the generalised Pareto model, but the model is re-parameterised from $(\sigma,\xi)$ to $(z_m,\xi)$, where $z_m$ is the $m$-period return level, defined as follows. Let $G$ be the fitted generalised Pareto distribution function, with location parameter equal to the specified threshold $u$, so that $1 - G(z)$ is the fitted probability of an exceedance over $z > u$ given an exceedance over $u$. The fitted probability of an exceedance over $z > u$ is therefore $p(1 - G(z))$, where $p$ is the estimated probability of exceeding $u$, which is given by the empirical proportion of exceedances. The $m$-period return level $z_m$ satisfies $p(1 - G(z_m)) = 1/(mN\hat{\theta})$, where $N$ is the number of observations per period, and $\hat{\theta}$ is the estimate of the extremal index if cluster maxima are fitted, with $\hat{\theta} = 1$ otherwise. The value $N$ can be specified using the argument \verb+npp+. For example, if observations are recorded weekly and $\verb+npp+ = 52$, then $z_m$ is the $m$-year return level. If \verb+mper+ is \verb+Inf+, then $z_m$ is defined as the upper end point $u - \sigma/\xi$, and $\xi$ is then restricted to be negative. The argument \verb+mper+ can be used to calculate and plot profile log-likelihoods of return levels (see Section \ref{egrain}). %The peaks over threshold model permits an alternative characterization in terms of point processes. %Suppose again that $X_1,\dots,X_n$ is a sequence of independent and identically distributed random variables, with $M_n = \{X_1,\dots,X_n\}$, and that $n$ is large, so that (assuming certain regularity conditions) the distribution of $M_n$ is approximately \text{GEV}($\mu,\sigma,\xi$), with (possibly infinite) end points\footnote{If $\xi > 0$, $z_- = \mu - \sigma/\xi$ and $z_+ = \infty$. If $\xi < 0$, $z_- = -\infty$ and $z_+ = \mu - \sigma/\xi$. If $\xi = 0$, the expressions given are all defined by continuity, with $z_- = -\infty$ and $z_+ = \infty$.} $z_-$ and $z_+$. Then for large enough $u > z_-$, the sequence $\{X_1,\dots,X_n\}$ viewed on the interval $(u,z_+)$ can be approximated by a non-homogeneous Poisson process \citep{cole01}. %The approximation leads to a likelihood for ($\mu,\sigma,\xi$), and hence maximum likelihood estimates can be obtained. %The likelihood can be easily adjusted so that the maxima of a given (large) number $N \leq n$ of random variables is approximately distributed as \text{GEV}($\mu,\sigma,\xi$), so that e.g.\ if observations are recorded weekly and $N = 52$, then ($\mu,\sigma,\xi$) corresponds to the distribution of annual maxima. %The point process characterization can be fitted using the \verb+fpot+ function with \verb+model = "pp"+. %The value $N$ can by specified using the argument \verb+npp+. %If \verb+npp+ is unspecified the default value $N = n$ is used. %The following code uses the point process characterization to fit a peaks over threshold model to the simulated data \verb+tmp+. %The models \verb+pot3+ and \verb+pot4+ are equivalent; the estimates in \verb+pot3+ correspond to the GEV distribution for the maxima of the data set, whereas those in \verb+pot4+ correspond to the GEV distribution for annual maxima, assuming the observations are recorded daily. %\begin{verbatim} %> pot3 <- fpot(tmp, 1, model = "pp", npp = 500) %> pot4 <- fpot(tmp, 1, model = "pp", npp = 365.25) %> fitted(pot3) % loc scale shape % 2.6839 0.2380 -0.2108 %> fitted(pot4) % loc scale shape % 2.6065 0.2542 -0.2108 % %> fitted(pot1) % scale shape % 0.593 -0.211 %\end{verbatim} %Also given above is the parameter estimates for the model \verb+pot1+, fitted using the generalised Pareto characterization. Let $(\tilde{\sigma}, \tilde{\xi})$ denote the scale and shape parameters of the \text{GPD}. The relationship between the two characterizations is then given by $\tilde{\xi} = \xi$ and $\tilde{\sigma} = \sigma + \xi(u - \mu)$, where $u$ is the threshold. %This relationship can be seen in the above estimates. %Under the generalized Pareto characterization, the parameter $\tilde{\sigma} - \tilde{\xi} u$ is referred to as the modified scale parameter, as plotted in the centre panel of Figure \ref{threshid}. Unlike $\tilde{\sigma} = \tilde{\sigma}(u)$, the modified scale parameter does not depend on the threshold $u$. \section{Fitting Bivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{bivfit} The function \verb+fbvevd+ produces maximum likelihood estimates for nine bivariate extreme value models. The first argument should be a numeric matrix (or a data frame) with two columns containing the data to be fitted. Missing values are allowed. If the argument \verb+start+ is given it should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If \verb+start+ is omitted the routine attempts to find good starting values for the optimisation using maximum likelihood estimators under the assumption of independence. If any of the parameters are to be set to fixed values, they can be given as separate arguments. Common marginal parameters can be fitted using the arguments \verb+cshape+, \verb+cscale+ and \verb+cloc+, and the dependence function can be constrained to symmetry using the argument \verb+sym+ (see the \verb+fbvevd+ help file for details). The \verb+nsloc1+ and \verb+nsloc2+ arguments allow non-stationary modelling of the location parameters on the first and second margins respectively. They should be used in the same manner as the \verb+nsloc+ argument of \verb+fgev+. Examples of bivariate models with non-stationary margins are given in Section \ref{egsealevel}. %For numerical reasons the parameters of each model are subject to the artificial constraints depicted in Table \ref{contab}. The scale parameters on each GEV margin are artificially constrained to be greater than or equal to $0.01$. These constraints only apply to the functions discussed in this section. %\begin{table} %\begin{center} %\begin{tabular}{l|c} %Bivariate Model & Constraints \\ \hline %Logistic & $0.1\leq\alpha\leq1$ \\ %Asymmetric Logistic & $0.1\leq\alpha\leq1$, $0.001\leq\theta_1,\theta_2\leq1$ \\ %H\"{u}sler-Reiss & $0.2\leq\lambda\leq10$ \\ %Negative Logistic & $0.05\leq r \leq5$ \\ %Asymmetric Negative Logistic & $\quad0.05\leq r \leq5$, $0.001\leq\theta_1,\theta_2\leq1\quad$ \\ %Bilogistic & $0.1\leq\alpha,\beta\leq0.999$ \\ %Negative Bilogistic & $0.1\leq\alpha,\beta\leq20$ \\ %Coles-Tawn & $0.001\leq\alpha,\beta\leq30$ \\ \hline %\end{tabular} %\caption{For numerical reasons the parameters of each model are subject to the artificial constraints depicted here.} %\label{contab} %\end{center} %\end{table} The first example given below produces maximum likelihood estimates for the (symmetric) logistic model. The second example constrains the model at independence (where $\texttt{dep} = 1$). The estimates produced in the second example are the same as those that would be produced if \verb+fgev+ was separately applied to each margin. \begin{verbatim} > bvdata <- rbvevd(100, dep = 0.6, mar1 = c(1.2,1.4,0), mar2 = c(1,1.6,0.1)) > m1 <- fbvevd(bvdata, model = "log") > m1 Call: fbvevd(x = bvdata, model = "log") Deviance: 728.5 AIC: 742.5 Dependence: 0.3526 Estimates loc1 scale1 shape1 loc2 scale2 shape2 dep 1.2121 1.3831 -0.1813 0.8404 1.4005 0.0834 0.7202 Standard Errors loc1 scale1 shape1 loc2 scale2 shape2 dep 0.1540 0.1091 0.0673 0.1537 0.1144 0.0614 0.0624 Optimization Information Convergence: successful Function Evaluations: 47 Gradient Evaluations: 10 > m2 <- fbvevd(bvdata, model = "log", dep = 1) > fitted(m2) loc1 scale1 shape1 loc2 scale2 shape2 1.2231 1.3776 -0.1914 0.8367 1.4083 0.0868 > std.errors(m2) loc1 scale1 shape1 loc2 scale2 shape2 0.1543 0.1089 0.0725 0.1565 0.1163 0.0670 > c(logLik(m2), deviance(m2), AIC(m2)) [1] -376 752 764 \end{verbatim} The discussion in Section \ref{unifit} regarding the properties of maximum likelihood estimators for the GEV distribution also applies to all bivariate models. The usual asymptotic properties will not hold if either of the marginal shape parameters are less than $-0.5$. %When the usual asymptotic properties do not hold the \verb+std.errors+ component will still be based on the inverse of the observed information matrix, but these values must be \emph{interpreted with caution} \citep{smit85}. The value in the output labelled \verb+Dependence+ is the fitted estimate of $\chi = 2\{1-A(1/2)\} \in [0,1]$ \citep{coleheff99}, where $A(\cdot)$ denotes the dependence function \eqref{bvdepfn}. At independence $\chi = 0$, and at complete dependence $\chi = 1$. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+, \verb+profile+ and \verb+profile2d+ (see Section \ref{egsealevel}). The function \verb+anova+ performs likelihood ratio tests. The null hypothesis of the test performed below specifies that the margins are Gumbel distributions ($\texttt{shape1} = \texttt{shape2} = 0$). The deviance of the constrained model is compared with the deviance of the unconstrained model, and the p-value is calculated to be $0.78$. The hypothesis would not be rejected at any reasonable significance level. \begin{verbatim} > m3 <- fbvevd(bvdata, model = "log", shape1 = 0, shape2 = 0) > anova(m1, m3) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 7 708 m3 5 708 2 0.5 0.78 \end{verbatim} In the following example I attempt to fit the asymmetric logistic model to the simulated data set used above, which is known to be distributed as symmetric logistic. \begin{verbatim} > m4 <- fbvevd(bvdata, model = "alog") > fitted(m4) loc1 scale1 shape1 loc2 scale2 shape2 asy1 asy2 dep 1.2097 1.3928 -0.1853 0.8421 1.3831 0.0773 0.8331 0.9996 0.6925 \end{verbatim} A boundary of the parameter space has been reached; the maximum likelihood estimate for the second asymmetry parameter is one. This may cause difficulties for the optimiser. There are two solutions to this problem: the second asymmetry parameter can be fixed at one, or the \verb+L-BFGS-B+ method can be used. The \verb+L-BFGS-B+ method allows box-constraints using the arguments \verb+lower+ and \verb+upper+. The following snippet illustrates both approaches. \begin{verbatim} > mb <- fbvevd(bvdata, model = "alog", asy2 = 1) > round(fitted(mb), 3) loc1 scale1 shape1 loc2 scale2 shape2 asy1 dep 1.212 1.385 -0.176 0.834 1.396 0.086 0.867 0.693 > up <- c(rep(Inf, 6), 1, 1, 1) > mb <- fbvevd(bvdata, model = "alog", method = "L-BFGS-B", upper = up) > round(fitted(mb), 3) loc1 scale1 shape1 loc2 scale2 shape2 asy1 asy2 dep 1.212 1.385 -0.176 0.834 1.396 0.086 0.867 1.000 0.693 \end{verbatim} \section{Example: Oxford Temperature Data} \setcounter{footnote}{0} \label{egoxford} The numeric vector \verb+oxford+ contains annual maximum temperatures (in degrees Fahrenheit) at Oxford, England, from 1901 to 1980. It is included in the evd package, and can be made available using \verb+data(oxford)+. The data has previously been analysed by \citet{tabo83}. I begin by plotting the data. The assumptions of stationarity and independence seem sensible, given the plot (not shown) generated using the code below. \begin{verbatim} > data(oxford) ; ox <- oxford > plot(1901:1980, ox, xlab = "year", ylab = "temperature") \end{verbatim} The following code fits two models based on the GEV distribution. The first model assumes stationarity. The second model allows for a trend term in the location parameter (even though the plot appears to show that this is unnecessary). The \verb+nsloc+ argument is centred and scaled so that the intercept \verb+loc+ represents the location parameter in 1950 and the trend \verb+loctrend+ represents the increase in the location parameter (or decrease, if negative) over a period of 100 years. \begin{verbatim} > ox.fit <- fgev(ox) > tt <- (1901:1980 - 1950)/100 > ox.fit.trend <- fgev(ox, nsloc = tt) > fitted(ox.fit.trend) loc loctrend scale shape 83.6617 -1.8812 4.2233 -0.2841 > std.errors(ox.fit.trend) loc loctrend scale shape 0.5557 1.9675 0.3650 0.0707 \end{verbatim} % Moved for graphics placement. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph3.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph4.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph5.ps}} \end{center} \caption{Diagnostic plots for the model \texttt{ox.fit}.} \label{oxdiag} \end{figure} The trend term not statistically significant (at any reasonable level). The stationary model \verb+ox.fit+ is retained for further analysis. \begin{verbatim} > ox.fit Call: fgev(x = oxford) Deviance: 457.8 Estimates loc scale shape 83.839 4.260 -0.287 Standard Errors loc scale shape 0.5231 0.3658 0.0683 \end{verbatim} The fitted shape is negative, so the fitted distribution is Weibull. It is often of interest to test the hypothesis that the shape is zero (the Gumbel distribution). The code \verb+confint(ox.fit)+ returns the 95\% Wald confidence intervals for the model parameters, roughly equal to the fitted estimates plus or minus twice their standard errors. The interval for the shape parameter is given by $(-0.42,-0.15)$. The corresponding Wald test for $\xi = 0$ would be rejected at significance level $0.05$ since the 95\% confidence interval does not contain zero. A likelihood ratio test for $\xi = 0$ is performed in the following snippet. The hypothesis is rejected at any significance level above $0.00053$. \begin{verbatim} > ox.fit.gum <- fgev(ox, shape = 0) > anova(ox.fit, ox.fit.gum) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) ox.fit 3 458 ox.fit.gum 2 470 1 12 0.00053 \end{verbatim} Diagnostic plots can be produced using \verb+plot(ox.fit)+. The plots produced compare parametric distributions, densities and quantiles to their empirical counterparts (see the \verb+plot.uvevd+ help file for details). Selected diagnostics are depicted in Figure \ref{oxdiag}. The small bars on the P-P, Q-Q and return level plots represent simulated (pointwise) 95\% confidence intervals. The model \verb+ox.prof+ is seen to be a good fit. The fitted density is close to the non-parametric estimator, and most points lie within the confidence intervals. Profile log-likelihoods of the parameters can be plotted using \begin{verbatim} > ox.prof <- profile(ox.fit) > plot(ox.prof) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph7.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph8.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph9.ps}} \end{center} \caption{Profile log-likelihoods for the model \texttt{ox.fit}.} \label{oxprof} \end{figure} The profile log-likelihoods for the scale and shape parameters are the first two plots of Figure \ref{oxprof}. A horizontal line is (optionally) drawn on each plot so that the intersection of the line with the profile log-likelihood yields a profile confidence interval, with (default) confidence coefficient 0.95. The end points of the intervals can be derived using \verb+confint(ox.prof)+. The profile confidence intervals for the location and shape parameters are approximately the same as the Wald confidence intervals, since the profile log-likelihoods are approximately symmetric. The profile log-likelihood for the scale parameter is asymmetric; both end points of the profile confidence interval $(3.64, 5.12)$ are larger than the corresponding end points of the Wald interval $(3.54, 4.98)$. The joint profile log-likelihood of the scale and shape parameters can be plotted using \begin{verbatim} > ox.prof2d <- profile2d(ox.fit, ox.prof, which = c("scale", "shape")) > plot(ox.prof2d) \end{verbatim} This produces the image plot in the right panel of Figure \ref{oxprof}. The colours of the image plot represent confidence sets with different confidence coefficients. By default, the lightest colour (ignoring the background colour) represents a confidence set with coefficient 0.995; the darkest colour represents a confidence set with coefficient 0.5. Let $G$ be the GEV distribution function, and let $G(z_p) = 1-p$, so that \begin{equation*} z_p = \begin{cases} \mu - \frac{\sigma}{\xi}[1 - \{-\log(1-p)\}^{-\xi}] & \xi \neq 0 \\ \mu - \sigma \log\{-\log(1-p)\} & \xi = 0, \end{cases} \end{equation*} is the quantile corresponding to the upper tail probability $p$. The profile log-likelihood for $z_{0.1}$ can be plotted using the following. The argument $\verb+prob+ = p$ re-parameterises the GEV distribution so that \verb+fgev+ produces maximum likelihood estimates for $(z_p,\sigma,\xi)$. \begin{verbatim} > ox.qfit <- fgev(ox, prob = 0.1) > ox.qprof <- profile(ox.qfit, which = "quantile") > plot(ox.qprof) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph10.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph11.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph12.ps}} \end{center} \caption{Profile log-likelihoods for $z_{0.1}$, $z_{0.01}$ and $z_{0.001}$.} \label{quantprof} \end{figure} Figure \ref{quantprof} shows profile log-likelihoods for $z_{0.1}$, $z_{0.01}$ and $z_{0.001}$. The extent of the asymmetry in the profile log-likelihood increases for decreasing (small) $p$. This is to be expected, since the data provide increasingly weaker information in the upper tail of the fitted distribution. If $\verb+prob+ = p$ is zero, then $z_p$ is the upper end point of the GEV distribution, given by $\mu-\sigma/\xi$ when $\xi < 0$. The profile log-likelihood for $z_0$ can be plotted using the following code. \begin{verbatim} > ox.qfit <- fgev(ox, prob = 0) > ox.qprof <- profile(ox.qfit, which = "quantile", conf = 0.99) > plot(ox.qprof) > confint(ox.qprof) lower upper quantile 95.78 113.0 \end{verbatim} The argument \verb+conf+ of the function \verb+profile+ controls the range of the profile trace. The profile trace is constructed so that profile confidence intervals with confidence coefficients \verb+conf+ or less can be derived from it. By default, $\verb+conf+ = 0.999$, though a smaller value is often appropriate when the profile log-likelihood exhibits strong asymmetry. The 95\% profile confidence interval for the upper end point $z_0$ is derived as (95.8,113.0). \section{Example: Rainfall Data} \setcounter{footnote}{0} \label{egrain} The numeric vector \verb+rain+ contains 17531 daily rainfall accumulations at a location in south-west England, recorded over the period 1914 to 1962. The data is not included in the evd package, but it is available in the ismev package, which can be downloaded from CRAN. As usual, the package can be loaded using \verb+library(ismev)+, and the data can be made available using \verb+data(rain)+. The plot of the data given in Figure 1.7 of \citet{cole01} shows that an assumption of stationarity is sensible. The example given here follows \citet{cole01}, pages 84--86. \begin{verbatim} > mrlplot(rain, tlim = c(0,85), nt = 100) > par(mfrow = c(2,1)) > tcplot(rain, tlim = c(0,50), nt = 20) > potgp <- fpot(rain, 30, npp = 365.25) > potgp2 <- fpot(rain, 30, npp = 365.25, cmax = TRUE, r = 7) > clusters(rain, 30, r = 7, cmax = TRUE) \end{verbatim} The first three lines of code produce the threshold diagnostic plots given in pages 80 and 85 of \citet{cole01}, who subsequently decides to work with the threshold $u = 30$. The model \verb+potgp+ reports that 152 observations lie above the threshold, giving an exceedance probability estimate of 0.00867. The estimates and standard errors of the parameters of \verb+potgp+ agree with those given page 85 of \citet{cole01}. In \verb+potgp2+ the peaks over threshold model is applied to cluster maxima, where clusters are defined using a clustering interval length of seven. As there is little sign of clustering in the data, this leads to relatively small changes in the parameter estimates, and relatively small increases in the standard errors. The final line of code calls the function \verb+clusters+ (see Section \ref{stochproc}) in order to produce the cluster maxima that were used for the fitting of model \verb+potgp2+. Diagnostic plots can be produced using \verb+plot(potgp)+. The plots compare parametric distributions, densities and quantiles to their empirical counterparts (see the \verb+plot.uvevd+ help file for details). Selected diagnostics are given in Figure \ref{potdiag}. The x-axis of the return level plot gives return periods in units of years, since we specified the number of observations per period as $\texttt{npp} = 365.25$. The small bars on the P-P, Q-Q and return level plots represent simulated (pointwise) 95\% confidence intervals. The model \verb+potgp+ is seen to be a good fit. The fitted density tail is close to the non-parametric estimator, and most points lie within the confidence intervals. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{potdiag2.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{potdiag3.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{potdiag4.ps}} \end{center} \caption{Diagnostic plots for the peaks over threshold model for daily rain data.} \label{potdiag} \end{figure} Profile log-likelihoods of the shape parameter and the 100-year return level (not shown) can be plotted using the following code. The argument $\verb+mper+ = m$ re-parameterises the model so that \verb+fpot+ produces maximum likelihood estimates for $(z_m,\xi)$, where $z_m$ is the $m$ period return level, as defined in Section \ref{potfit}. Horizontal lines denoting 95\% profile confidence intervals are depicted on each plot. The end points of profile confidence intervals can be derived using \verb+confint(prgp3)+. \begin{verbatim} potgp3 <- fpot(rain, 30, npp = 365.25, mper = 100) prgp3 <- profile(potgp3) plot(prgp3) \end{verbatim} %\begin{figure} %\begin{center} %\scalebox{0.18}{\includegraphics{potprof1.ps}} %\vspace{-1.5cm} %\hspace{0cm} %\scalebox{0.18}{\includegraphics{potprof2.ps}} %\end{center} %\caption{Profile deviances for the shape parameter and 100-year return level in the peaks over threshold model for daily rain data.} %\label{potprof} %\end{figure} \section{Example: Sea Level Data} \setcounter{footnote}{0} \label{egsealevel} The \verb+sealevel+ data frame \citep{coletawn90} has two columns containing annual sea level maxima from 1912 to 1992 at Dover and Harwich, two sites on the coast of Britain. It contains 39 missing maxima in total; nine at Dover and thirty at Harwich. There are three years for which the annual maximum is not available at either site. I begin by plotting the data, using the code below. The plot of the Harwich maxima against the Dover maxima, given in the left panel of Figure \ref{seadata}, depicts a reasonable degree of dependence. The outlier corresponds to the 1953 flood resulting from a storm passing over the South-East coast of Britain on 1st February. The marginal plots (not shown) suggest that the Harwich and Dover maxima both increase with time. The last line of code\footnote{The function \texttt{chiplot} is heavily based on code by Jan Heffernan.} plots estimates of $\chi(u)$ and $\bar{\chi}(u)$ for $0 < u < 1$ \citep{coleheff99}, as depicted in Figure \ref{seadata}. For bivariate extreme value distributions, $\chi(u) = \chi$ is constant for all $0 < u < 1$, and $\lim_{u \rightarrow 1}\bar{\chi}(u) = 1$. The conditions do not seem unreasonable given the wide confidence intervals in each plot. \begin{verbatim} > data(sealevel) ; sl <- sealevel > plot(sl, xlab = "Dover Annual Maxima", ylab = "Harwich Annual Maxima") > plot(1912:1992, sl[,1], xlab = "Year", ylab = "Dover Annual Maxima") > plot(1912:1992, sl[,2], xlab = "Year", ylab = "Harwich Annual Maxima") > chiplot(sl) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{bvgraph1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{chi.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{chibar.ps}} \end{center} \caption{From left to right; Harwich maxima vs Dover maxima, estimated values of $\chi(u)$ vs $u$, estimated values of $\bar{\chi}(u)$ vs $u$.} \label{seadata} \end{figure} The following three expressions fit (symmetric) logistic models. The first model incorporates linear trend terms on both marginal location parameters. The second model incorporates a linear trend on the Dover margin only. The third model assumes stationarity. The \verb+nsloc1+ and \verb+nsloc2+ arguments are centred and scaled so that the intercepts \verb+loc1+ and \verb+loc2+ represent the marginal location parameters in 1950 and the linear trend parameters \verb+loc1trend+ and \verb+loc2trend+ represent the increase in the marginal location parameters (or decrease, if negative) over a period of 100 years. \begin{verbatim} > tt <- (1912:1992 - 1950)/100 > m1 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tt) > m2 <- fbvevd(sl, model = "log", nsloc1 = tt) > m3 <- fbvevd(sl, model = "log") \end{verbatim} %I'll leave you to analyse the models in detail. %In particular, notice how the trend terms affect the parameter estimates. %Marginal Weibull distributions (negative shapes) are estimated when the trends are not included, but marginal Fr\'{e}chet distributions (positive shapes) are estimated upon their inclusion. The maximum likelihood estimates of the parameters can be compared with their standard errors to perform Wald tests. Wald confidence intervals can be derived using e.g.\ \verb+confint(m1)+. Likelihood ratio tests are performed in the following snippet. The p-values confirm the statistical significance of the linear trend terms. \begin{verbatim} > anova(m1, m2, m3) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m2 8 -29.2 1 7.26 0.007 m3 7 -9.7 1 19.56 9.7e-06 \end{verbatim} Quadratic trends for the location parameter on either or both margins can be incorporated using the following code. Further testing, using the models generated below, suggests that a quadratic trend may be implemented for the location parameter on the Harwich margin. Despite this, I retain the model \verb+m1+ for further analysis. \begin{verbatim} > tdframe <- data.frame(trend = tt, quad = tt^2) > m4 <- fbvevd(sl, model = "log", nsloc1 = tdframe, nsloc2 = tt) > m5 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tdframe) > m6 <- fbvevd(sl, model = "log", nsloc1 = tdframe, nsloc2 = tdframe) \end{verbatim} The code given below compares two logistic models that are nested within \verb+m1+. Model \verb+m7+ assumes independence. The maximum likelihood estimates are the same as those that would be produced if \verb+fgev+ was separately applied to each margin. The asymptotic distribution of the deviance difference between models \verb+m7+ and \verb+m1+ is non-regular because the dependence parameter in the restricted (independence) model is fixed at the edge of the parameter space. \cite{tawn88} discusses non-regular cases, including this case, for which the asymptotic distribution is one-half of a chi-squared random variable on one degree of freedom. In these cases the argument \verb+half+ should be set to \verb+TRUE+. The resulting p-value is less than $10^{-6}$, and clearly the independence model is rejected. Model \verb+m8+ assumes that both marginal shape parameters are zero (or equivalently, that both marginal distributions are Gumbel). A likelihood ratio test of this hypothesis provides a p-value of $0.72$. The hypothesis would not be rejected at any reasonable significance level. \begin{verbatim} > m7 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tt, dep = 1) > anova(m1, m7, half = TRUE) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m7 8 -22.9 1 27.2 1.9e-07 > m8 <- fbvevd(sl, "log", nsloc1 = tt, nsloc2 = tt, shape1 = 0, shape2 = 0) > anova(m1, m8) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m8 7 -35.8 2 0.67 0.72 \end{verbatim} Diagnostic plots for the fitted (generalised extreme value) marginal distributions can be produced using \verb+plot+ with \verb+mar = 1+ or \verb+mar = 2+. The plots produced are of the same structure as those given in Section \ref{egoxford}. Diagnostic plots for the fitted dependence structure can be produced using \verb+plot+. There are six plots available (see the \verb+plot.bvevd+ help file for details). Two diagnostic plots are depicted within Figure \ref{seadiag}. \begin{verbatim} > plot(m1, mar = 1) > plot(m1, mar = 2) > plot(m1, which = 1:5) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{bvgraph7.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{bvqcurve.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{bvgraph8.ps}} \end{center} \caption{From left to right; dependence function diagnostic plot, quantile curves diagnostic plot, profile log-likelihood of the dependence parameter.} \label{seadiag} \end{figure} The model \verb+m1+ fits the data reasonably well. There are some minor deviations within the conditional P-P plots (not shown), but they do not represent a serious departure of the empirical estimates from the fitted model. The profile log-likelihood of the dependence parameter \verb+dep+, as given in the right panel of Figure \ref{seadiag}, can be plotted using the following. The argument \verb+xmax+ denotes the upper bound of the parameter. \begin{verbatim} > m1.prof <- profile(m1, which = "dep", xmax = 1) > plot(m1.prof) > confint(m1.prof) lower upper dep 0.528 0.887 \end{verbatim} A horizontal line is (optionally) drawn so that the intersection of the line with the profile log-likelihood yields a profile confidence interval, with (default) confidence coefficient 0.95. The interval is derived as $(0.53,0.89)$. Further analysis with models other than the (symmetric) logistic yields the following conclusions. The two models in Section \ref{biv} that include three parameters with which to describe the dependence structure (the asymmetric logistic and asymmetric negative logistic) are inappropriate. In both cases, the maximum likelihood estimate for the parameter \verb+dep+ is at an artificial boundary, because the fitted model is close to a distribution (obtained in the limit) which contains a singular component. This is clearly illustrated in the density plots of the fitted models, which both depict a ridge of mass extending towards the 1953 outlier. The logistic and the bilogistic models have the lowest deviance of all one and two parameter models respectively. The dependence structure of the fitted bilogistic model is almost symmetric. At symmetry, the bilogistic model reduces to the logistic model, and so the latter would appear to be preferable. A likelihood ratio test between the two (nested) models gives a p-value of $0.93$. %Models that are not nested can be compared by adding penalty terms to the deviances. %The penalty terms take into account the number of parameters fitted. (If both models have the same number of parameters the deviances can be compared directly.) %Three commonly used penalty terms are $2p$ (Akaike's information criterion, or AIC), $p\log(n)$ (Schwarz's criterion, or SC) and $p\{1+\log(n)\}$ (Bayesian information criterion, or BIC), where $p$ is the number of parameters estimated and $n$ is the number of observations.\footnote{Since \texttt{fbvall} compares models for the dependence structure, $n$ is taken as the number of observations which are complete (i.e.\ not missing on either margin).} %Any bivariate extreme value distribution function can be expressed as \citep{haan84} %\begin{equation*} %G(z_1,z_2) = \exp\left\{ - \int_0^1\max\{y_1f_1(x),y_2f_2(x)\} \, \text{d}x \right\} %\end{equation*} %where $(y_1,y_2)$ are again defined by the transformations \eqref{mtrans}, and where $f_1$ and $f_2$ are density functions with support [0,1]. %In particular, if we take the beta densities $f_1(x)=(1-\alpha)x^{-\alpha}$ and $f_2(x)=(1-\beta)(1-x)^{-\beta}$ we obtain \section*{Appendix A: Additional Bivariate Parametric Models} It can be shown, using a representation of \citet{haan84}, that \begin{equation*} G(z_1,z_2) = \exp\left\{ - \int_0^1\max\{y_1(1-\alpha)x^{-\alpha},y_2(1-\beta)(1-x)^{-\beta}\} \, \text{d}x \right\}, \quad \alpha,\beta < 1. \end{equation*} is a bivariate extreme value distribution function. If we further constrain the parameters to be non-negative we obtain the bivariate bilogistic model proposed by \citet{smit90}, which can also be expressed as \begin{equation*} G(z_1,z_2) = \exp\left\{ - y_1\gamma^{1-\alpha} - y_2(1-\gamma)^{1-\beta} \right\}, \quad 0 < \alpha,\beta <1, \end{equation*} where $\gamma=\gamma(y_1,y_2;\alpha,\beta)$ solves $(1-\alpha)y_1(1-\gamma)^\beta=(1-\beta)y_2\gamma^\alpha$. The logistic model is obtained when $\alpha=\beta$. Independence is obtained as $\alpha = \beta \rightarrow1$, and when one of $\alpha,\beta$ is fixed and the other approaches one. Different limits occur when one of $\alpha,\beta$ is fixed and the other approaches zero. Alternatively, if we constrain both parameters to be non-positive and set $\alpha_0=-\alpha > 0$ and $\beta_0=-\beta > 0$ we obtain the negative bilogistic model \citep{coletawn94}, which has the representation \begin{equation*} G(z_1,z_2) = \exp\left\{-y_1-y_2+y_1\gamma^{1+\alpha_0}+y_2(1-\gamma)^{1+\beta_0} \right\}, \quad \alpha_0,\beta_0 > 0, \end{equation*} where $\gamma=\gamma(y_1,y_2;-\alpha_0,-\beta_0)$. The negative logistic model is obtained when $\alpha_0=\beta_0$ (with $r = 1/\alpha_0 = 1/\beta_0$). Independence is obtained as $\alpha_0 = \beta_0 \rightarrow\infty$, and when one of $\alpha_0,\beta_0$ is fixed and the other tends to $\infty$. Different limits occur when one of $\alpha_0,\beta_0$ is fixed and the other approaches zero. The distribution function of the Coles-Tawn model\footnote{\citet{coletawn91} call this the Dirichelet model.} \citep{coletawn91} is given by \begin{equation*} G(z_1,z_2) = \exp\left\{-y_1[1-\text{Be}(u;\alpha+1,\beta)] - y_2\,\text{Be}(u;\alpha,\beta+1) \right\}, \quad \alpha,\beta > 0, \end{equation*} where $u=\alpha y_2/(\alpha y_2+\beta y_1)$ and Be is the incomplete beta function, given by \begin{equation*} \text{Be}(u;\alpha,\beta) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \int_0^u x^{\alpha-1}(1-x)^{\beta-1} \, \text{d}x. \end{equation*} Complete dependence is obtained in the limit as $\alpha = \beta \rightarrow\infty$. Independence is obtained as $\alpha = \beta \rightarrow0$ and when one of $\alpha,\beta$ is fixed and the other approaches zero. Different limits occur when one of $\alpha,\beta$ is fixed and the other tends to $\infty$. The asymmetric mixed model \citep{tawn88} is typically defined using the corresponding dependence function \eqref{bvdepfn}, which is modelled as a cubic polynomial. Specifically, for $0 \leq t \leq 1$ the dependence function of the asymmetric mixed model is \begin{equation*} A(t) = 1 - (\alpha + \beta)t + \alpha t^2 + \beta t^3, \end{equation*} where both $\alpha$ and $\alpha + 3\beta$ are non-negative, and where both $\alpha + \beta$ and $\alpha + 2\beta$ are less than or equal to one. These constraints imply that $\beta \in [-0.5,0.5]$ and $\alpha \in [0,1.5]$, though $\alpha$ can only be greater than one if $\beta$ is negative. The (symmetric) mixed model is obtained when $\beta = 0$. Complete dependence cannot be obtained. Independence is obtained when $\alpha = \beta = 0$. The asymmetric mixed model is often referred to in the literature because the dependence function has a simple form, and because the $\beta = 0$ case is historically important. However it cannot capture strong dependence, and hence it is of limited use as a statistical model. The extension to an $m$-degree polynomial can be made, but this is of no statistical interest because the additional parameters add little additional flexibility. \bibliography{bibliog} \end{document} \section*{Appendix A: Simulation Study} In this Appendix we use the tools in the package to perform a simulation study to examine the small sample properties of non-parametric estimators for the dependence function $A(\cdot)$ of the bivariate extreme value distribution. The estimators referred to in this Appendix are defined in the documentation file for the function \verb+abvnonpar+. Simulation studies of this form \citep[e.g.][]{halltajv00} typically use the known marginal parameters $(\mu_1,\sigma_1,\xi_1,\mu_2,\sigma_2,\xi_2)$ within the transformations \eqref{transtoexp}. In practice, these parameters need to be estimated. In this study we seek to replicate the behaviour of the estimators when applied to real data, and we have therefore estimated the marginal parameters by maximum likelihood. Figure \ref{simfig} depicts the behaviour of the estimators of \citet{capefoug97}, \citet{pick81} and \citet{tiag97}, which we subsequently denote by $A_c$, $A_p$ and $A_t$ respectively. The estimators of \citet{dehe91} and \citet{halltajv00} are not considered, as they produce plots that are indistinguishable from those of $A_p$. The first, second and third columns of the figure employ simulations from (symmetric) logistic distributions, with $\alpha$ equal to $0.5$, $0.75$ and $1$ respectively. Standard Gumbel marginal distributions were used in each case. The figure shows that the estimator $A_t$ is abysmal when estimating dependence functions with very strong ($\alpha = 0.5$) or very weak ($\alpha = 1$) levels of dependence. The estimators $A_c$ and $A_p$ give more consistent performances across different levels of dependence. The estimator $A_c$ appears to outperform $A_p$, as the estimates of the former appear to cluster more tightly around the true dependence function for each $\alpha = 0.5,0.75,1$. The plots can easily be generated, using e.g. \begin{verbatim} > dep <- 0.5 ; method <- "cfg" > abvevd(dep = dep, plot = TRUE, lty = 0) > set.seed(44) > for(i in 1:50) { sdt <- rbvevd(100, dep = dep) abvnonpar(data = sdt, add = TRUE, method = method, col = "grey") } > abvevd(dep = dep, add = TRUE, lwd = 3) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.18}{\includegraphics{npsim11.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim12.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim13.ps}} \\ \scalebox{0.18}{\includegraphics{npsim21.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim22.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim23.ps}} \\ \scalebox{0.18}{\includegraphics{npsim31.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim32.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim33.ps}} \end{center} \caption{Simulated non-parametric dependence function estimates. The grey lines represent estimates derived using the estimators $A_c$ (top row), $A_p$ (middle row) and $A_t$ (bottom row). The thick black lines represent the true dependence functions, which are (symmetric) logistic models with dependence parameters $0.5$ (first column), $0.75$ (second column) and $1$ (third column).} \label{simfig} \end{figure} which generates the plot in the top left corner. Only the first line of code needs to be changed in order to produce the remaining plots. The second line of code establishes the plotting region. The simulation is performed in the \verb+for+ loop, and the last line adds the true dependence function to the plot. The \verb+set.seed+ function sets the seed of the random generator, which ensures that the simulated data sets used for each plot are comparable. Let $A_n(\cdot)$ be any estimator of $A(\cdot)$. Table \ref{simtab} gives median integrated absolute errors for various non-parametric dependence function estimators. The table was constructed as follows. For $\alpha = 0.5,0.75,1$ we simulated $1000$ datasets containing $n=25,100$ bivariate observations, using standard Gumbel margins. Then for each of the $1000$ datasets we estimated the integrated absolute error $\int_0^1|A_n(x) - A(x)| \, \text{d}x$. The table contains the median of the $1000$ values, for each value of $\alpha$ and $n$. We have extended the number of estimators to include the convex minorants of $A_c$ and $A_p$, which we denote by $A_c^*$ and $A_p^*$. The convex minorant of $A_t$ is identical to $A_t$, because $A_t$ is always convex. The table again shows the poor performance of $A_t$ when $\alpha = 0.5$, and particularly when $\alpha = 1$. $A_t$ is the best estimator when $\alpha = 0.75$, which is not surprising given that the estimator only yields adequate estimates at mid-range levels of dependence. The estimator $A_c$ outperforms $A_p$, confirming the impression given by Figure \ref{simfig}. Taking the convex minorant of $A_c$ or $A_p$ leads to an improvement for $\alpha = 0.5$ and $\alpha = 0.75$, but a considerable worsening for $\alpha = 1$. This worsening is expected, since taking the convex minorant always leads to estimates of stronger dependence. The values in the table can be generated using e.g. \begin{verbatim} > dep <- 0.5 ; n <- 25 ; method <- "cfg" ; cv <- FALSE > nn <- 100 ; x <- (1:nn)/(nn + 1) > a <- abvevd(x, dep = dep) > iae <- numeric(1000) > set.seed(44) > for(i in 1:1000) { sdt <- rbvevd(n, dep = dep) anp <- abvnonpar(x, data = sdt, method = method, convex = cv) iae[i] <- sum(abs(a - anp))/nn } > round(10^4 * median(iae)) \end{verbatim} % FOR ENTIRE TABLE %\begin{verbatim} %method <- rep(c("cfg","cfg","pick","pick","tdo"), 6) %cv <- rep(c(FALSE, TRUE, FALSE, TRUE, FALSE), 6) %dep <- rep(rep(c(0.5, 0.75, 1), each = 5), 2) %n <- rep(c(25, 100), each = 15) %sim.all <- numeric(30) % %for(j in 1:30) { % print(j) % nn <- 100 ; x <- (1:nn)/(nn+1) % a <- abvevd(x, dep = dep[j]) % iae <- numeric(1000) % set.seed(44) % for(i in 1:1000) { % sdt <- rbvevd(n[j], dep = dep[j]) % anp <- abvnonpar(x, data = sdt, method = method[j], convex = cv[j]) % iae[i] <- sum(abs(a - anp))/nn % } % sim.all[j] <- median(iae) %} %round(10^4 * matrix(sim.all, nrow = 5, ncol = 6)) %\end{verbatim} \begin{table} \begin{center} \begin{tabular}{|l|ccc|ccc|} \hline & \multicolumn{3}{c|}{$n=25$} & \multicolumn{3}{c|}{$n=100$} \\ & $\alpha = 0.5$ & $\alpha = 0.75$ & $\alpha = 1$ & $\alpha = 0.5$ & $\alpha = 0.75$ & $\alpha = 1$ \\ \hline $A_c$ & 210 & 415 & 110 & 104 & 198 & 62 \\ $A_c^*$ & 205 & 363 & 340 & 103 & 194 & 168 \\ $A_p$ & 243 & 469 & 211 & 134 & 242 & 113 \\ $A_p^*$ & 218 & 357 & 554 & 126 & 215 & 285 \\ $A_t$ & 393 & 189 & 983 & 334 & 155 & 830 \\ \hline \end{tabular} \caption{Median integrated absolute errors $\times$ $10^4$ for non-parametric estimates of the dependence function of the bivariate extreme value distribution, using datasets containing $n=25,100$ bivariate observations, simulated from the (symmetric) logistic model with dependence parameter $\alpha=0.5,0.75,1$. The estimators $A_c^*$ and $A_p^*$ are the convex minorants of $A_c$ and $A_p$ respectively.} \label{simtab} \end{center} \end{table} which generates the value in the top left corner. Only the first line of code needs to be changed in order to produce the remaining values. The integrated absolute error is estimated by evaluating the absolute difference between true dependence function and the non-parametric estimate at $\verb+nn+ = 100$ equally spaced points in the interval $[0,1]$. The function \verb+numeric+ merely initializes the object \verb+iae+ to be a vector of $1000$ zeros. evd/inst/doc/guide22.pdf0000744000176200001440000157645212017604710014531 0ustar liggesusers%PDF-1.3 %쏢 6 0 obj <> stream x[{\UWlE_٪HKI_EPäe:(BLiIiHS*("/7(IT\iiĴ)\x=w}d& ||yw9,;^(el\wnN mN!OźsR(U3 [a<.n[sOF-+[W;_c'SSvɢe'gzo?3Eo}Ku5cKi鷟znntl:2835k W_}B.#/^6[Z 홵{.!##Ha{ϻ4>e4>BC?]Gήb[7qLJ>XY._l*YtoO1(4[Iװ, >@7@+oUt$Ȗ\v3wsg暡-pH;S|ast}炐?]eW 0V#Gl +iۺ<=w]ռ4m{#4G,Vv{f{g뺞|,E]6(/o w_مtV]"$u{Ic`uSA[Kk+QԄt-!~ r zDN9qnv3E{6V4tKKm톛nƁCQ¡ iNF>|Jg m>9|KMZz퟾3>{筋?7x[##ɸy_Yy_2{vW+}m׿W޳;w޷t)|ߣ(# B%w5 l{@Y;vvt}в#RTҾb 8,`w1# HImZ I'?0Q`H WTyʶ \m#dg_ q6ThÑSB7=;1cwLpl9w[!dia"faYI濶j(O?ܾà>]T>'#hF0* Q$@O{ 33ʾ2TU'$1s >8HCDM7!6qB{~rI9 :XHC/% ξRG (aVN_~4ѳTjYXEDErU8 WI؅zs-fEK̟1{IDy2Җ &LctiN C@DuD$/9_^ WWskn dQy7vLl0;Wq.7h- <ɑ^US\+~>eb,_x h8\\FW6\NDmh} C'_5ӝ=o֘lkU ?$t%Ƥۛ6s? "jn7) <go$Y0@23|o6D!v#2$᪃Z֕vʎ,͗0akƸQ ZFG P+1PKXd0, ݩBy.$F*zׯF ٠=\4М>^e/{w3 M47!jV >lyA|-EC3)>رO!HHrg?q'\>f&t5BԐezpb0.1N'Aa]34\S12 |^V5<>khY|ѽJsk&=Y;qunYOO̊?Wr `еN] G>7P$x# "-?ҿaP`w)q)Ymd`FzU),)l. E{CR.ҫʃT@GuL xЬK5Vx U\٪%АHvHm<& =ozcT :Tf\v';>SO* ~;甸 ]9 pP`QEYyuM U1G9撼D&.@ TwL ZXېA,qAUz`˘3GY?4T#hL-m s~d `svX)r!%$Dp53bP0 $ ]lkyv5xԆ`/C'WJru`^UjMdQKZAoMf,ǶԶ'tX5m/\YU7W_P|Bx{(`93sgY"f ᩓ9;GnP HcEq*H94kԹ /i}(Jz#v7@ bVzFbƢ3~Sc+=vZ< C+!#}e>ITFm4˭1fidr3%^Y%kjA^Igm ʨ9&枧}6Z-V4OU]cN&J+g'd@O4FO# mZk_bֱVp6CWO@Pζ$֫^"ned2pNl4v}>2DGD_)1=A+>Mj'=mi7:}=; nZaE\1 )_L'oɖe'A0T+, Bˡ-'Kq0DgilePdqۯuL;690HcPۛH2SQ3/VUլ!L#Th( Evu 6yU5aXW]E|ĝr"$ӥ١ФIf&J𾰼ӺgG^Ĕ'uI&p>$]xpz/Gv K,;4<^\FKf0Jr4H=B>LƚFg&9;ierM^i]>>3dDe 쵑qB,$9s u=4?rڎwh2d}xzy0m Fm;b$endstream endobj 7 0 obj 3952 endobj 255 0 obj <> endobj 256 0 obj <> endobj 258 0 obj <> stream x\{pTyORCMiP[wk-s t#jfB x8i$2L;p6!Sjk&kjf񌝒=<ޕ@Lcs{uQơ#&&2}&9\jБARI,n& (S:شJ7K61}:w{3NO}qz_=OŊSk|av~̺},?'㐓*$ 3Y.eUnL?An V~+ӫ8_v xGƿVvoa+P>-pzr9{/[xۭ')5 / z.]fP8}=S|n,NT-2:u#+ = :ϜeLEvB.Bjuoal,RE^Rrō[#^og|]9/2`I/wի:o-sc,tl($qM4;[r\OӲ]HZCXj$eu*<{n幁fnjF-r%sݣܦ\WdJFK{/)s n|˜HIzՒ.cx5`+$׭Tx @3R~PQ6V l-GF?낹I rѳmq詴܀y=FjچvEabuTzy4;|˸>_E|a:+~tH? {Nf;ȟS_\J9e+H0ƻy}䴜#8Hcg&x,ՅǪ:שHƔ4qް8h`wlSXPk~ʂ# T0Vn M-u%oԚKC˧Vjܖozu(E{\Z`c5p߶6J%)G\8HRq X*h=f(/~e*?xaT f02X3ܠS"O" }8HOg3۞ۑAÎCK¾9&"Vz5(` X %) 8zxOU3 5qcb&GJg<\om6ϱ5na.MXyr?oF$űosXd+os7\_V3u1>< NJ7PwS;bpT^B-A"nҢ,P%Z!H(9:KH91g2'RCM@YJNL,gVʨ㾊NcJ 9y5P#̗cib`?VmArS:^v@*S`y$V@cjwaj6nj'TVE&oXơ 82Y3@4,7/*Kv%p.`ĉQxi~F Vkˆ ?ӧi_Q?'+UCy aimU,]RoUoV|f)s s @JqrAq#l 9B/D= )|-MM8aT2 q +ӊo[!֞.G7 G*ߢ[[Ky˯zKK0biyU)vR @^n !ovHQ#qL q^o+2b{3> ?uIݸp+'n^ĢF\% Uqb: cHƧ_ףAƴ&+\/\549꟮m=4Os>&1tv9IPP@d[ %Z.2g0!=9[$A|i[%-,–eh$g9i!ʥIU\J8*yjΟn˔l 0r#Mkgp^H;( 8FqAHu dENmhs[3)JQ>$w#t׵Ǵ-_xAH\oocާr2ZRYCYK/ pyIICz\=Q5*nʁ,Cj:+R2E!)oY} /j/dA4 SDc5ʲ$'vҽ´>QAuWXYJz,E3T'9I@yh4:l:|bUǢ)vihBR:rSRw,Hk׵n[en8h3HTߋBɁA6¤*ȰLaqKOH'l:ɯzoJߔft&[m] _i Y}rhUoVlvP,~P$C9DE U:QP:E"=ĝ{[/ yme[pN} 9iHHX㿄 ru5~.)ZpFO&PX?ҐP\'!,Ƭdka m,Ϻ2sB,ʷHi㉪,`zPwŌr$־"EX.C} %MA bQC=V;mX29찁y۹WfK*„1\L- tQo]}t^U<Пjކv# (\8G6m~cN3]{^ k▍CdaK1#82ؽ,|;|\.m۵v{šv>mΡ#ѵ|U{zfPGxi4Tv𡇇PzC֒'۶,v}#tȁc;?m:c$ídۥl4ʿWendstream endobj 259 0 obj 5199 endobj 346 0 obj <> endobj 349 0 obj <> stream x\ypUaL)tCg.äa^rݯ8"XmHBxj1D$,Il!EDZ-J1 MB[H%B7t޽-o?O &=s~qkq3Ƥtq$LX"2=1KtSeuⒻ{ȲW/%/dp=.~OL_CMуR?+=Է5HV}ö-z)q!}>}vyXܸ U#aߟ{u ՏuBd8tэtKH9d J n/j'}XcGMx[Ӓ!O?n$WWK~ ַ6w5ϫG%|ܕԥjt]Jƌv*oOL}ꯥn$0E2cfP!|NNr*uӏ.H~OX3ud}e9)RiM}_>jC kCk1}Km~%OOSb)ì[*3&M..\m|o6PqycRu4.*~2*of6>+;{ okWǨLM=?8k }t~Jcb3lׄRoRTyGzfƅjRF.gDLʖ?=z2sM+ ۺĔCmKxdKWԃت޾]JTI`GUBu*Ϸvt-oY[r2 ݶ #w̐g[تoIDʠ\fnDꮒBvs6J!N* v1FKJy+[m `E՘rɈ{#Dg+N ,j- p os6z m"hD5h;A9gѦ̐Ð na6d{R T(CЗa )0/c) 䱌E,X(-04:v/$'BzLD6|F7 >A̩o|E匙Rl-cɀkYTEon4!Tۧ[*O6TdPn#ō5Xdah&%2CI=_]~5GHd UrjiFeJZ<3͵W $f+0,[" !%/'XHdž  "b0ZCQ'^"rSk6zJl~_Ml6+A*Ec]٭`=B_3\(F/bh:v$N9 TU.6+dR20e Zn\NU`:ua:NޔĒ3dzH!y83Vo&^ ˶$Ջ#4E͟k6ҧuPT!u%_ t.!Gջ; ,|&RKYp j;|fY@[,ϣFOcE֎5{(80Zvz/,\eJOT2G z?P8ěUgl:׋ÕXy]18rX82pD\En?jG]i.(>MLF$B)-WA'֝p+ '4 cIK2Ĺ- %z~{Kf!%ݺ G%_ bR>:!VzrY QprVrI MC3_U "yYCPԺ^[SOn-jZ̩&aߎ)rقI9 - fA[|.*d4 *\ް}0SSݔx|KPeF#x`Jv"*y#tT,?@BFu`@ # S@b}.H9!7@)[bjSdV1dȐ2f# RF)3*WK8^T9ȱK:P`λ)c*ACxn 5ut+C\Ŋ:|ߗ2a(Q%vE*VڎƤiLwk4N3"K7#{{ |P V˥y} s)Ŋ^nCؼ="|͕;%ןhmNccը !*c*V:rZ_&޸vo=bl*Bm_d{<6 ;IZ787`xMhbf mB6he9%ej%i>@"D!2%1%[$+ta 焁$H6H"9gC=]0C[oﻠsY dg3OzYWXmtsL3uVZ! xJ}̄U#v4a4]iq//ɓֹ @֥!ld* flS3+i̜XC=ueZ8(kA5¡dm8k.s?AԼ\+wsk^yA_yaPd c0h6s B wB:$.3T?G`~j +`TM犈z3U|MUpޜoogyaa]yt{T %g1a"SYSt%MbDgHf|ba5`p9\,u+5~Ȧd .xkFQw==v-Of {\D[ibEx+;̸a_ )ay,rN0oo|q0zc٨#\]-܅+t;D@u(!(?#BzPIV$NkbPm̆J/?O#;RW-X߂#Pi;Os%.f.ѓ~_ok_xEzB~@&DoݬƼvے*,ˍɈlM>q6U9'c,(o#GTN.5ƶ ,¦ i(V!Lkt̪ QFia̱#yqTiw5jpNOLf2#[i")[\f+*po6{Ʊ;f:=2^5%:! ud~-"QcvOj7]'0ڍ4Y!rXTl֔n<+@A,:?Vc!50kRs@<'STlRϫiݩi~5!;%L[v㚁kjn))h}JBO2E"ESs?* p &HS@z֥B݌a}x+jV,Sф\d&19*%c_%M7WnRhk\,}re8*Eam ;)\LAa_@-Lь `$_%X n-p`r2S7o"#+pnXl<ۡt/z |0 5+5*s1 N%gcFK My%6̔(_YWƲoAv7͑`*UHe;G 3[8\p)>#[MI1g]|C]U}Ɲo7+:1vrOQI4q>Ծ oπUO6y  l%QI) /^.x""Z!l>T.H/>3þv_? ߳/JN؞g3 _Q=E=`ECg8}ކfzNF,[<VfkI@MZZieP .i?==LQ(…}x3ǞnEPHJ3EdJ.R(:TKGwߊ.:~PX]{&Q:YvM?vsNh;}{+sU1D})Pz"695}g2frLp?ʕSSP.82ʹ15  p\Ϡi@{{KFEKKRSNvL##+jT#g@FUB8GUkਊ3$߰ϊh_;-xendstream endobj 350 0 obj 4674 endobj 443 0 obj <> endobj 446 0 obj <> stream x[}l]e^tPEkqsy%nDhݵ\Yn-  j #q45&F4)c-0>~[Ce_k3^Wחw⟮5k2v]'f"5 =u+Wv`gx]uJ/aWc8H{e]'؎GL.M?Nlz섾[C=nL4L?o#nM6̎1Sp̡Yt\xMf'WY,) z@MXO?4Bj980Z~q`X$v9=kB]KV9&@izNw9*Q`/7k€PA Ҙ/qbt|,G_OQf[`~.;Li8T}teDutLLO$wabo e섉d4S RBTuʫ2r_s[(\sr!4qQ SIx + ehTT_u,; b!i.2Z +ۍ ԥå?T&;h`6fF%:HU^BXJNUĪi`IMGTC9MSTŸW3&IJMRTz|49㍦SS Y:ilf6}}G݌Fkl>A!@̟vo+m,_NtrNnloWW,J;\.GOI&ub=`G7r,Q3I + $44Y0+ Xfd6u'/ Av",CF$lykk۠za( ^<%x"g`=V׳qNڴ-l#W)hb~ !Ov%٣G$f ^|Q7^ {.XlfC._(#%zQqdII~I?I AOׯ-J[;1m1A ˼%@19?뺞'_}qAGS74m]B Y#D۬X"Y`T$|®#^u%xzC4v[p`ƫ)'/Yv>C'ׯ%08RV"45^W~ ɰG4O5?;$l_T\+/'\ mЂM:.1HslһmSdK?@*7A|o5sEyOFm4Ĕ)M[m- s%c^-z(gƔ* vv=ڲ~a7Q VHsR4#Ez =Zt'S~Fu`Q*y)6phFU끫,Y Ҋ@&(DI .T;'C$CNJ E< H3Pk^h/Ɖ#gNDvڈPxl~D`Ďe]oMMx woDMmM|M8kj4$q,g9SCTH!l8'*뱤%RZ4s@.y@AnHzqJoxZ`4ABuݽ5c/@HYВxq(DRUII jC*Sn[&Ap` N 0L2CDυ2̃hf[vt|sEx7j` ]hs ;)/W_ o8(XvB} +FITv+Y{`)̘=VN 0I *PK c͉RGKSPL, Q`w2f&'[F򇙬Zۅ+&NH87*UcJ#j/&/f_S7CctM]ڻkwk5tZN '6 h8Zj8od&Ed1 ,˼|V&Ct,i8T| H|&FlT? V'\Ou0H6H#㖔9 nnl o^ p&QwP xKŠ|Sw ܆Dņ eB Wʗ%]`Ie=װXwxO\\\Pmp;7ͤȣ\̓G"qER07Uyx+_?SMr,"# qm; +ضHcY#G]Vo>],HXJUA=gܦ)spWsqe>;!>b9#bCOVش{fdSåͦnUnkR2- ?䔷ɴp5~<5~S uIIA68|䚼jҠOs,{08靣Rhhs1p;c C7"/Us~uE0s~k7Ҳf*Se`uE}\Nnd]zf#x#ӣ3v|7h845~<2x^2ɠi:?PTϑڙ GUC/R RWP, d^ $ʑlu~BW:C%bag4PRӬ|X52Pr\OR*bWɵҎEKv>J+ r 3-et-Ril3rEeBe'br,J"15Bvw];1>dJ+)-&N#Z0!r 6R_N)^L_i,Ħ˸gQ'.Ko1YD=s Az1v.[7;0OyuV< Gі,痡lcy(6Nw8ޱmpSvu='nUˎN j4 )Zh6)A ac ;t*rڡA\чԕI"YADz\ fpjE .W]_RbzNw@+ '&2~=`r a~nQwFZde%va 7QKj|Qڼ|}X6)'N16Cّ*yӜy\GØtxbY57"v)Wcjdun(@ӦLQ> endobj 485 0 obj <> stream x\{]yob$**AQtSt] s}}:xkX~]pb 4F4R< ܦ8)mJC@E6^hqIgskSs\:{P[qZ%1f~tʞ#1#'޵G^<.W_eݪ4$ɣv*0,jYǺS]}?ɉV;O>h(퟼ 8(~[7{8@p>uwpg?G9b,Ko^4Q HhKȿ~C$N/̜/ex̂=so(o=Y[Z ~"fk. X=+w`K`;a.uxAw- ;-"(ae`_[os=/zrwav}8ifq8!@*_ؠOq+52O p tm8MB/?ʟ41ޝV 8ʷ?3[ⴰ{{6jx`2Vip⫅qz^*qBGX#^_Lǚ"1f)_skWd|2bh_ʽݽ=p%՞mE:Z&ߏ ?iBkTrHS׿cph_'( C9 z6VzzǫU-3dƿ&q]7-V_pE5{^5_}=Wl;Co PKtP* k_!d@L&ZE%,!~n?y.o Rql e2FyH,a(k-B$"ɏcH^{A^8P. d#߷c|51lM`k[ #ZGY1(rZn =(%2PnNZ׽qzov֣z&E^DŠxhzET#%q6I`jɨ8J 904JY휫ʷQF6VN܎O|LKG~vb^GG4V -}m_a/-N7#*~Zc'hc >ZB)D4~' =)@%@.X"jrXew SR O`T,$R`cF0~'D)`e ͺV+ 09RJl=K^^tDɅکom\ٲxeWhY|s,.uRZVޔ+H; ~ÀN|24lHT-waߚ~ZڇiPUЭ\[͚nkв,͞S D⑋f$5-Y?NP;Ȓ _nH̽ 5S^ jPu'0QڄEa:jB  NV:xH!4u|A3-\"Rh< /)^cF hwBYQt) =Av^toiA=/Ωx}S46Y_>l'Ҵ_VXYl2y_qXn`s-lFb Z!|`*8EVj \=S!XQ"aK Ȥ\uI85fD3LB61xPZĢgxnLce|O,B%UlF&AvIB;-|QCiǴX%;(zV(7,\UvG5*|V΄\jqmP$#@Oா ,]Ib"{eF u'+Л58@RĊ'*SCSA%HC[:+vL]ڳ&Jg" [[, `;`Xt Xbw Y;=;pVp*@VN87ݱ(E8&L3{,˛?:ZP-/z^2.s:{) tZ^N -bNâqP;L#%I= fZb[/=u&*UkO_)"0T\1F 3?!(Ykl0uxO(HcUV U#eA;mI7O/ySX VD ޠ~1;;?qF1Y.ԧ4Ta6I5[a27u U)pV1ڼMևJsXFKl?t %OHPPq,gzх6]͖Ld_ fjr]*IӅfL 7;D/d>wRϟ=|^eR)RO,GF֚^ 3Y82 Sf)$9cJ!0(IR[: c{ ix0 Q&?ix>{2xϱfr_d  SGGE2ШVI;+s?vӪhÔ[Ս hpf>Q& 8S yVeuDc9->?C$sej)`͛nQs(HOTPc+E% Te25ڙ!)!D fPZ gMa{9QR8Rä4(sd2UZKQty͖,Р=˨WFͱV|+t79$~S'.,#y,QWiӸLIn(iBHeZG|tq |Iz;H"$Cglԓ:N⟿vHd֩,#EU>eSH,`d0&FPMdMmb KA6ϰUMT[Otl/1 %9F߾7s|P݈JecKlnD vSBn0Y$fqRS7 4X"А [ Gѧ՟ۺY븥+ZLBYij%lN>#rѺSCkOA7ιbن } ?+ ( \b֥KC*D}c CMGA2G6WUJm]6@&cP̡)qb@gR̝7Gomu V/%G1-y#u䙩2 zaͽY=PҋrlEE˦o_ftUܕHvҫd\uT,<%DYsT8םГ*rqbLCS9j-Ime4^gNm4Jm8{ai6GG4N2F(Gs xIѷ(D԰q ב!j˗&=gzxh!뒛;|ί[~ /owwnKj󙘹m=c$ElPDoE)ңʱ; 퐴ٛӌ:>y|KnR5ɣhGAgVճ648u]VK-c)׾'P3ǧSͼj 4, k0}˜{Ƅ4LAkXe }\ŠͩƣԋEɹR樱nS]r~̜8٤CqYvz *c^4T]!fjuHR!K0Њv:̩sSB|#73n-2YQHl2OF 'Z+cstȥA ڍwJ䃇+#j0qbEWKVe*f^#@`w{'bts7vnS!ǺhЈ`%IzFh4Va\r(g<^ PFb^ƫ쬂K4 ϨI %<ӮiHW.c?T&w> endobj 535 0 obj <> stream x\{U7X H*es e[Ͷn(nYBo KԪy@ EGU@RbRvAvkCM4w̽w ig<=~c?߁U_S *-7V f59GᜰP^\|8.H|Isq1\4UO,^:Z ]@, ;4$;;ZN T1[W>$ŷ"cYeFz@-2`[X2$jE1֧`+ulF#5K;İ0E[%j2׃[S^+ t%zU0"yK/wQ,>ڢ8Ra©i1 9lPPk.chR04Q9UrNI4b`>0A4Juk\4!tWE+Cm-Meۙ^{'Cu ~c9 ? =H %e!/ȵ ȳ!D︈UV, OLhS yāQ{CgW[5윔pARqgTHlSH(A!>7-wCNz_MuylaŭN\jgU 5(B6dZYt#ϯa4 tiԌqTEy(6yJ)9 m] ƙ`5~rYEvx3@R'<<[F+ XT_B(//lҞtql "-H˃:BBfԣ˶سxe2L)"|18rV&接%c)l `kj\Ղ-~e@_@Hp켌<8 qIID(IERhDbz,?0dpƚ zLF=[%yM+穮X(w짚-8ۈM54< z8#} u|\ר/&6BzZ.H#CGMꨛ/ pOUu"ΒZ?`Yy KsLQkpJ`@)FpC+9>yuؙݜE w"@Y6u{(0$ӎbێ|OSw\';)Acmd#d\Nhees=[yw׋,|Jsw۵ VV$U\[EwJ4>"E*v==_U˪Z! Q3fn 'AZ@p2^ !Oq~fnn!@B4W'?ЀYLmMm.E/PyETw rQyP=VЙjmOĸDaQHRNj8hh` &92DꟄ0aK314cFH1yO$~VLml~Q'պlrX$ٞ`OtGɍy_vR> B;1Bx9n~tC08WjVɺD((i g:4 ̹%'sZhP6'fNJg,AB Jeg@ d .[*)VRWsvw^F>a]KZ'aMwt!'io81[0 ֒s7GjKeK7$!9/bmY@ y9 <Ւ't BD*-Yd F7H{׳T\¨Vl .kE"uanw$MpXp*I |5]vjY ᕏC@puJ[9MwElMepνpςF$Y_tNQcj7eؠ2BN̜f4ٔ\c!ICwC#.4m$ZՑh:5h!s|2}̦yHS CzLPZ FN8pG:QN8B (DuM$O44G;q>[q8:(W6:tꏼ߹!҆vZoWI%RMT6% iSf2F*ʆiذ;`(8MMZTP7ޟRj2_&A$h *ٍ]7VVh>VLt'By&ޟmA캷@4Tj\>8&cbuYh~o} ! |k=ح'^n:aOVr'CC5JU| G۩Fb(J9=_U[몏 M j΋#+"M0 2ddʒ?Ec`J?j O!KgHD9^oS.,j^_endstream endobj 536 0 obj 4579 endobj 561 0 obj <> endobj 563 0 obj <> stream x\}]E^LJ$6d1 6KmHKͶneeq ݭ] H"J5QQJ-#R)iZmwY83gǻoHӴݹgΜs93Uh?ߡ---ED m)\ѴLW9--OU6Al+z*Oq'I7y:FTl_$?^@!b>"W n,͝0PfCѾ%OՙšgIN=_2:B=Ƨ`~#QJr=%A GI$U+{+=nÝ]FT<$'#^chJO~<]7͊6J4˧"Uz6uV2ywkAI:.fT0Ӷ(K3Ju _M?6)S9_/B4Ӻa#g!/n!z{l8 &wlXPVϡ5o^yUc`6Ftz %9ك!DYb+ qGϬw]GW' Fߒ.oM`Lyy]n~l{=nLRqkk!C:j-P#?#sCunLkk쇂>a/MԆvmW?g+򣯝/JX׳SIp*!<z)XbG=B'A6MD4㓵oMŁ-g GwW$f,쓻'@@FGԀ =b(fEҁAjB/el ixC`xHoxh+bBb%x\{~IU|ybDKOL|BYPE]D7  u^|9i!ZUC5sw\i8six%h˭ 412܄4 pҾ bW8;NvfA(T"x4lܩpY 6Ms+UY^^ah+;ʼom){GO0 \!+'R 9'Y7 jaSW`!]8ɫ cuЀ,(Eۓ_n>ӶrcqBa~-卅/~ (&|4bu|[Y/ί 0]km7P[looWV K$pTka^ 륌Vl52F,&)˫j cNs sA*$|`}kd1%G8SN/9nYbJ*U|ȝf!0's L*L19' Kh?ZLZOB>âs$m\@!k δϴVߪvAaV(HRǀR`j{ˁڐkYLan잰ֲ4-hߏZHa;.SL 6"6S_NXUޖx RFi:#>TdLZR!w0h ]GK퓀GaH8~㿷al~D>}`sa }ZѕpNcZނqSq0k'!JBc"1i*)vQǘ)V3uzT3y ʼn*Ri֞TTͰ^(BN]"`Te8m&[kāsq\:) e}`mfqiG'l;Hhf la Ƴu.__ 3M1TaG_Lpfoq{35~fw3q8zS6Z9يp Ӧ䲱8p.LإǿX*}~mI3~L{A;-w47ȏ||?3I K&Xr ~ KNmWaԵ=5aXT7oKтc``Y8e~*u @h0hat}pA6Y82'_ǫX3IJ1io>4dv`ɽ?g@C?zBTGYƾaҀ B|t_ 1!cFzhr!1u ,D1\5wH*)j/2q-:\ H kxjI-tKK l@E\i!LHA'+7vQ]rY@WȽ"nŧ;bERC<bhpi&Luq2쮲t`̵&VY/מ?X%Y@.&hy7v8]kH̼$XB&,\MI&`ET8#lD{cIS3Dynt+1GqI=ǯX¨o]/̑5 HPNʢL ʄbDY*}I@$"`k1\"H b3|a GG<7ƈܛqlPd6[C9< v<\&pR5UfX מπ׃zVj]B6 c+08)Hm'UZ2\(S䥩P<;*r\ʁNPDa8QK!G8ёP21^"+)Em cE:| _*0&&e_V@kUpI6wrd< UaҗvNa@,O$A(!>%#Q2aH&eLf4IaV4ud! 1>!;V塛oDh7=Qef*  :?83? ?KZe?K#Ax5a336ϲ gf?&ٝC[FE/c R~Aй l27R("Vߴ7R]EiM ;9Iݑz"*?)&NEHZ'.)Ci{tPȩf>A])(*@P |6eI6/1]^X9Y1%Z)c}ڼsSY]#9]v\;Gx]7-!4_7| Bűre*+El$LP">.bH?Ș:&Z]ĞU?#Űc{9 Ï]fv7^E0]%vh6xN ;JȨ.!S^uJ"~N@US1-e5b"A wj@İjpE,2Vb.1,%L(,v֟ei{}1.L7r7@ !L5sBp]VHhU|Jd4FķA2fufR KV[4$Ghc1}Aoe#Dhĝtbr# @&%\'X'i3|-4z^Y?FY_zHɝn OlH XY u$OΉs^dwNtBۗ1_ISba\)}Wud 'Gv^Y=0k(0Ojm܏FgMBS1G2韩}}q_r 8SKF+6k6/a9kd!>@g8\QռTm5rㄐ@y.ĸv 8NZg%U!2(,/31l_fRF.).xgW-bǩ[6~Zv^4~\V1~eƭj%uds VuM乍&]iGQY|Kj$ىRֹ$f^zEkB> yJqmږvA_endstream endobj 564 0 obj 4946 endobj 572 0 obj <> endobj 574 0 obj <> stream x\}pՙ8쎫3:Bo1)!B!$T($a-vvk%HѮ. ڲuu]TZÇ}0 <9y-4\T;\;Ck\KO킖 ԪykĹ0\ϦچeZ_6L+L{m"O ^rc'kL֟4:택ZO4O/-HLʣf;0:{#9|.љ߶g_z׶}'UۓM:./g~3{b@k _Ϛѯ Dt|gdБ){.`}r:PEGz!/}}}FK^0ƋSC` 3͵+0uJkMwسj@e3k9PAznM$b@p|cR8]Ԭza%Y&-1 Ȫ۹"bx~A{C@?7B3r0t6`Hz9LJȈꄜM>mfz]h'! Yd^ņ(zn[wrDdۨ!4|Eiwjv=L پ+a"֢8~bM1A  Є&ܺLm:10$|o1N7*pQW!I\.rOȏen<5zZ| +܋篞X3yKa]ٚ CMԮ~",)X?sa<揫Sor- f9o6|ekuWx0VsNEc5ʢ}8 ̔&?[06oOLh\}MrD6Z%ib}֡ڞ;_cQu-Wem;x+MʳHrF _]V }Cց]?]]g!ZW.mGđZ"rU,/V* z!n8O9"*m>$Qk!9"sL$ ܩfd<"@3B ?[D4hpN:p X3}BPSii5Fs#9_0e d7p1|4QTzSt98Ikc0,2G:5(qp:kN*I qW;{=&g>?R|SK=(ZSGmMp%qJ=I6b0!V3*T+nPA@;f>~(ۀb1#XquΞ V@AJ"?P/7Wj@ $S+AtF2֬E&L{4+DAOF4BݰN7>#ő13‰A"ɞ.\ma:0mXuRT"⎒4èH3%*=5 @D:UO\(o2xRdؕz#tSpKSNh kV8[9T ظx=Խ,0!4 9 %WUFMAQSWerbx *=u`,\vSGua#HQ9sjBnRMJ4~f!6mg4ʹEtQvx3nXs8e7deR0O*ZϻQfIxun_DsK_]6ϲ?6uxDމY%P(hEY"Rkg~Ȁ H(k5>S#s4)}k);&!?1•(, ؟nB{ĥ"rJ%/KT6ir/JjXҢ'GˬF)j?4lXWz]/Ӑr ԫ:}:ab)I2n ]NZS RLh:Ǜ(!lJSU{ƴT*Y5W(q\ч'fJʩ<:8ډ ?WN}YzGAH`]+l8z%H a|7szK#`@]k.gkR .]QD]vx5jΉ(YTQD$THRTPIU5(AP!ɜ<|Ά.ʤ(ʑH׿ڭ1!rZ=DLq=+v\ |[}/}{F?;"SF(,io’ '+f羹;w؂%xq0SU@oeφ&}7V?yH%tɠ,V&)py`yqvظnDf=[j ^-6.[VؤcX50<_Up:bL5Ż-!CV~D}IGWg`#Ħ. STV$zr Ɍ{^hREN}Ŭ^0$ҋ0lrLAԀ] %eU4ɐϳ]l#H|w)xԏ޹ {OV`HU{N=RA,(ao:iT q|Vs/Ա<92ƮVeK8z'Y;#a>+f{Hx.ɭ7FGA)4R%5R ^eYen7PV.:ur]xDnI:j$z®X;=Ͱ;CSq!Г.xwf4 cʙei53R),|#_Z@-P' 6CL:1!CTomv| fhi8EŵiYy 056͗ q6ϮGo*]3V4 '~!xIs5?KE$a('( DO+Qj#sԯRjV/\սJRo^cQVVքʎʡ J/H bZ~7㖰z89]3 0E*lYhVj/XSgn2(~FAǶ^A , r}{vaǏ  ϫs7*+#8.6ƅ_٪Ę|1U!}a 1dUrW1X&D%Vҥ(M̞ qbZ,2/@oɜ! h4PI@OARϯ/qcpyK=jm|\_ʼny5eS<oNGTDYηEWn"D4id{ߔ}xzEJ{ ߏ .\.Q${ڶVS0e mÃ=%@abá-"v=b1^͠u9 ō1]`ZqN'JR!`y|`* UEQٝlPi}zoY"*[ ;=a VcRē݆8raj!G pv6(tT?R!GE4 gv *,14P%w_XBt8;%|0eu ԜYI5TujV+{ O{fe#Md@iұoAY"_e%$f6B&VS*BȒXSxa.Xb2Q< Ҏr@Lu,C}tŻV+y"f[r]>PtlTaos„U<>8ń:RS%=U"hJ uX@gS!FQDe0+_{%(/+gχ3qUѢ^EX10?̮C՜%˜{{7GDTp7,v'A@}~9f@|+95oSH@`N:F9x-;LDdzC.sEHUzfX `Ϋ7ygΫBFs~q!B)VOJXm~bã8PCg͡ucI3~d_(U-H{>b vE6`{|ک ը1M~!@PҠ.scZV#4d~R~ͪ+F'; e"5z& /ꄯ- k5u>WUdžKas {cqˢ:⍠mN۸勠7jOLO# ZWvX{yiu7E1^Vi .-aA_\/ oAm[yEK`Yo ǀGo3 9|Kʐwӏo `o t9SIp$!uH&n|v@B(l4F@a껙qo/MЊб$jB5W[,jk67O:ww4"g~ ݾ?-[7uLbf€YEg~ pkcͰ]LFm/ EDi(YYXLendstream endobj 575 0 obj 5727 endobj 623 0 obj <> endobj 625 0 obj <> stream x|]wU)|YA%Ubϙ3s Q2UWK^zakB]E#$ԪԪQ,Ĩjj dH5Jq)ʼns>̝y)*wwf953v|;վ9lv7=l7/z/9m7]!7ߩnN9ߏ}wt4f7MlN-/y5޲mSjs"nͮ7U;~yDջfe}e囪_Ͻxmfwin?3*Oy-M]V9YN ۦr a_vBfۖ[n9SwK}4vnqwK9mwK7v:Tvvv-nnicѩ[P_5ܲv9]n8ܗnAMwwSىv:[Nv4VQnWwC[oʿ;9 {ˮ;m| iqj?m͓rK{:fSmwKzMૺޜ[ʽ~97ntFwK9׏-j[Nsꮈr9>=- `Y&]y6U9ó랅fDN-\z8vr=-{ -+q[twK#ݕ\W׮qK$ܝU-sy~p˩?p\=ϧr8)ߵr[W[jL/Ǵ.?ci_r5Wٗ t8ru`A5)G۟\M)׾l}>v?aﮑh!wE!W+ǴmfCю!Wrȕ`|sx~rul5r;NꔷĐ+!WHs9rhِ1fr\C{ِkUφ\[69du4rmƐk2rihdȕ3b89y}%\S}z:h7)w&ss̕30s]?Lܞg1Wj;-t˘ם׵tȕSks-@cʱ9kLfʕ4r]Mr5fC<1ki9ږ~Ǡkrеdt]w~\wt3:0fm̳6w, c٠; lu頛2 ɪtncMa Q0Gʠ 1gA7> 0#Ƞ2n<t *\v9ɬry2)7L`Ð/0\^̸Bp̀ˋ|qcckXb\I|c[l̷۸A2Mto;5-vqY-_Ʀ?N7dLېChVx^a.L7 }9Ϛn(Yl8X7uwS׉YSɍݫU;i˵|;]wVS58^/U+_-Wp~V{6\^{+u{mA1eW/2DRݟhe*G;—-;OUƓXK/ y Y5qY8_9?>RF0g1}&F0̥9SUM]Ad}@Hs =" =Az@z@z @Ka1 deDUU].]@vacUXeңңңZS?H/D@~Av1zAr' nOy4CHF>sz"tO ?@v`?#:1˘Ǻ޲XsVVs8,6zzt{Y ҳg%HJg$V) S(HODv):gh< -H7S =[AzlzvBO]nlيѳgk";[AzlيuDG%4|n? ~=H{ }dvB/n =Azd=F{yd=Fw݈ٱ$Av|Uݽp9pH_}^®D6S.Dv9% S"4?r][#k+][J$V)rJdH/Dr9h[XW2c"xAz-E Az%+dW2c"x ҋ/.^^ xAz/.^^ xGt.}N՗f ̅9ҫW?H~^ }mvvaB8H~^ՏѫW"AzՏѫW?H@~ՏѫW?HDׯu?O~}4va-/.lV~Ҵ-[H@El-"-{9{}~H |~H l~1x亗^:Gv ݅@T@tҍ. l.](n< x@`tҍ'o< x@`tҍ'm< x@`daZGm#8̶g^&=۝XA [H0na @ L6V~ ȷ0ma@%- [H0ma@t [H0ma@t Kd[H0ma@-lDOB/=CR$'[[4KJH?`'+t3i/ 0tKdH? a!H7@^>|gΈs$HD􅇭{&L 3 =${戺/=̶o}C~Pu [4HhnѠ&+4t -[t ߢAEctg|5HkUn ݢAE ]d2F*H7bnĉ,tދѽ${7bn ݈Ad#g5+9^:~PO`.l A Ԛ0Vh-[:Ht«3V;H#x"AtKٖ-[:H@tKٖ-[:HDtKٖ-q:ҫAtK8 ]$p`q{6o~A"slOd~:WHd~"ؾɾD'}?lOd>HD'}?lOddOd~"ؾ}D'Zx~"پDV?S+(GүIɱ`2H'H'H'haNN@>A@6A0:A@:A- v gO@>N@:N@6N0:N@:N@:N8-|j%ՈD2N.oz>[@:[@:[@:[@Z#889R~ItC5 bϨX#*N0:, Ҋ*FSNFSLat0aɓi tFђƆRIat$щ4HatqDQFatalbfOO#ߺ| ƧPBatFFN&n> c'V bt;s_/Zca0VcAIQgȆFhɨV@:@:@60:@:@:X\`dhlKd d 3-5kq q r r V mXt tlԁtaiq75#\GY_׌2KH~B+H+H+hxeWW@>^A6^1:^Ak +H++F+H+Hk"   3d^}ttt9t[xx $uDNsdZ0 h f``` |lct\a333d33338`````D6A:A61:A: i-{x{    V.Hn ``````-Om[9ͱ>AG>+ttt֏|V#d##~      |tlcttt'ґёґG>HG>HG>H6hgzo5>A:A:A:MSS$S,ґґґ?"g VmKY'9OLF#AMaXy Ɓ0a e ¬O, Fs@a,F3@F@AtFwxwj~x=YsF3Aa4 Aa44F+aӾ_yAc9 ƀx ! f0Z#3FaY@`ol˴~ OMyg"@"@#@ TlrͱBH IQY" <+,P4Q4R,S`4T4U4V\`dhlWY+ K x{jIdyyfDL{$EDa(WXI$yfDeҶ ҧCii-U {c(ffff@y@y0 LxgXa??"< < < << < <<4,`444$̃3H3H3H3H3H3H3H3H3O"< <H#H#h}bF,F,F,F,F@@0#+4b%҈҈ш҈҈#H#"F#H#H#V"X X XX XBsHsHsHsHsX a9,b@iKd9 9 9 d9 9 9 9,00000D@@0@yiiiiiiiiKd9 9,0000Z9 9 9 9,HfJ0000uX9 9,_/n{혞}Hh,MV臷@@@@@ ^ob;ʆ@@HHFHH] t t$ãHH^"z z zz z<444V{Z{O4,4@ S}=44HB F_i-|v>@Β"+4'ıj\]Ȗ_4X4[4[4[4[$[mجWyYhiLdd2e˳ }db4N$N^>=[&l l ll lȳ%H%h{='LL L L L kA 444zL i,$HbYpffbfbebdIɩrlj!8gVhpipipά ȃ3Ȃ3F3Hs" Π,@S4H_Yipd-ۧgggg@A3+48484848484848' ȃ3H3H3H3H3H3H_?-|Zqggggggg ΁S gXpipǠO9L5+48,8c48$8':mcz*ZyS~exH#8H#8H#8h}gFpFpF@A1AYii,#8H#8"8F#8H#8h}AA1Ay"8H#x }WG@rud,&ۑ#8H#x }`sEpFpFp\ ϲ< 44>ת$tuXvfG xPB}" ,'ZsDYiO$>DG$>D=WȧSXOd>zDIOc>DCBB}" $ԧPB=HC}"vYOd>DYDAYOd>DYOd>DRzϠܾ5ԏheYOd>DIOc/'ZszDKL1&\a>DYO6 ,ԃ4'PHB,˟'Ӿ{K_duiX.zg86 Vh=i=i=-  DZ@Z@Zy=Y=h=i=HdFHHA     WX=i=Y=h=i=d/'FpygzzzzzHA        կ {c7Idd/'ZXd ̟h6'Z@Z@Z@I4@ QXtFZCLPK9e1Y]سZ4@Z4@Z4@+hhhhѢҢȊHh}`   @^4@Z4@V40Z4@06WƎȊHȊFHF / - - }e - - - -hhҢҢҢҢҢҢҢ!@-[N`NNNNNN`NN @]::H`-sBHFH`d sBHFdiHtEL ZĈvxJ Vnl~lB H H h}1a@^L@VL0ZL@ZLY1i1/&bbbbȋ H Ȋ F h}1aDVL@ZL@VL0ZL@ZLy1i1i1i1/&bbbbȊ HI /& -& -& -& -& -& -& -& -& -&$bbbbbbbbbb! +bbҷ6@ ?QfϘMZ+,Ҳ@&Z@ZYYiY{E y4Ҳ4ovjGnM{miWB;H;H;Hho6cv0v0v@@0@YiiY{Tj/Wh   @;H;H;X"` ` `` `w0VhiiiKd ,w0v0v0v0v0v0v0v0v0v@IhiiiiYhii   dQ_Yv;yiiiY{TI0)j;H;H;ޣh-I@@@>Hפ zw0VHѡZ B ҷ6A"/% - m -Y&jn r v z ~ ц Ҋ ҎK&H[&jf뙠E4AZ5A5AV616AZ75A~MP"m  -VNVhii5A% Z_?Y gE?AAA"+////ѾҾ"H"H""F"H"Hb  틉///b//ҾҾҾҾҾҾҾҾ"Hb 틠}AAAAAy_L$}}}}}}d}}}}1EE4A"+////b//z  틉VEVh_i_i_닃^ 틠$$W I}}}qv]KupZ@Z@Z@+؁؁؁bbbbȊHHȊFHH] /v -v +v-v -v -v؁؁a؁bbbbbbbbbȊH] /v -v -v 8)H.DR0Z@Z@Z@Z@Z@V0Z@Z@ZyiYKcرBHHȊFH](vbbbbZiiIt6~u@ $BiI;K:>-Hc111: c c c ca%:::::::HFHHX"c c cc c%::HHHh}c1111ֱ@^IhiiiiYhii u u du,?ߘ+7&::::::!+aױ\au u u h.s@ QCaY߆b0څh Mh0^X 5( 0ځh c (0h0Z~X '60Z|0{h c'0y'60Zxh u'0Zvh UcM'x 5'0Zr¬8@+Nm8a~F``nFMm6a؄^jMm5aԄN34aф^h..)֙0fh ]&U dH9(&aƄJL0g$1`h %̺XKoK.gWȱ#KXB H H HI /( k(( (`ҲѺҾ’ H+ : FK H[K - - -. m. . . -/ m/ / Is<ǀȀɀ.H F H H H H * F; HK H[M 5 5#mƚ H H H H F h}p@Zq@q@Vr0[+$Ң3i1h(h86{Q@Q@Q@; +юҎ: H; H; : F; H; H;J ( ( (( ( (`ҎҎҎҎҎҎҎҎ: H;J ( ( ( ( (Q@Q@Q@QyGI$d$r7b@QXGiGiGiGiGYGHG9ЏҎҎQ e (N3F$]aDF+++Hˆ+HB" #F#]aD&zWtIW0 #0" +HˆwHWtIW]aDFt+Fˆ+$0" #0" #0" #0" #0A׻ˆ+$0" #0" #ZqIWtIWtD&jWtIWtIWt] 0" 3DF$]aD׻\ #0" #0" #f5`\ aDYWtIWq0 #Z1[b9Y   $ Dj+444ф҄>H>H>>F>H>H~ O M KM M M,4,c44҄҄҄҄҄҄҄҄>H~ O M M M AAAAyO$      d # r?"M<4,᧱҄҄Yqt=F>H~ O8; ﬐?"k`rbv)\>"g +444rVh.i.i.dBS HS HSK O- K-M- M-,44,`444ԂԒR HS R FS HSK O- M- M- M- M- I-7I0 0 0,€4Wp@Z@Z@Z@ZyjI*d h+8 M-2i>ʜh}`f f f 'xxxYae f oC},x\B@B@B0B@B@By i Y h i i Id))d)))$/}{$i$i$ ) M! M! M!,4RYBJS&n)E\XXXXXX_uYhU{{{ϵO+ttȆ?H?|]{iIGttttttt'ȇ?H?H?H?H?H?H?H?hӸ Mr,,Ma߇Y tёF'zatyAtYQF'yalF٨:3<06;o}IZ|atrwatlѩFvatdщF6u׃iFuatTIf thљF? =:aA:bA:cA:d٘Mdd=.H'.F.Fg.HSGp"k  |tttttttt'! )0HcNeee6h QO7+ttt֏WVxxxx d5WWWWWW6@>QA:QA6Q1:QAZcA:D CCCCCCCCC4!zyw'*H-H(H(H|^|?6Kd/ZhC|6Kd/46D6K$/D6Kd/46KdoD2K$/D6@:Kd/D6K$vs0ILd/D |2u,}d(''O3+t`t`t`%u6X +, ,,D6@:@:@60:@:@:Jd  d  + {O/N/N/N/N/D:@: dl̔}gc1Z,|,urr1at„F;P(at fT&,l %N 0:WX cS%0:SHO0:P< $N0:L06K( >uT Ce0^ C$ΐ0:B $Ώ02>z9-}h"[:+tO]:Hun쁼)l7v~6"Xo AكlvZFw@t |}"t$]`ttIQYaiqypffҗ@ @=H7{n f=m AlK]< Act.$6nn ۸1qt7H7nn ݸAq~d-Xtv 8 ZdOfn nA݂t -ȶ[n nv -ȶ[n nA-ȶ[n nA&-ȶ[n nv -HrWZɻ]xlKe -A[4>d3RY%HwK|ne"-A[tn%Hw@[tn%HwD[tne 2/K..&;\,н+n]at .nUat ` l e cVݯvv Yѽ*nU*nTal Tݥ&=*nQa[WVadCir-3y0нHw#nG ݏ@!]HDt'VHw#nGl?: dF'nPwjn_i_tَ˩J H7F'&O+tsK \@`ts6n. \@`ts%' O0t?~]Us/z{ڴm ] OdWx"K ^x\aWx"+<\i OdW OdWx"ƮDv'+Wx"ƮD2fn/ey ҋd9OzLpV ҋ7_ x1zMd/H/^^ x1z/^^%WWjtLeuKH/9H^e U~,K\"@zɁ䒻}k^ ݳK̳_7I HH?o0Z/^2 d@zɀ F^%*UH?><;~7&S4H7=ZOi =AzJSd4FOi҉) StNw7՚>гg%HJ yY ҳ2 ;+1zVLdg%Hʳ7: Z =@z2dsHϡ@~9;H6h)+ȃȃȃȃO3̎EI߻Ÿ cc O?hi*+XXX X{-ao!L<=9Ody";g'jO%9Hҫ }r@Kaw|Hv[n!xZQy;/tO^wr?S.ֻJ&-ۆn5kӂ~}\h13>-V8}?{[%{w٬C|CoWf˷{g5g~*Y _~7y~x}\ }d?>x_K[?JdSكo'Ys}F @byx7/Ճ˺_9վ#m=O7҃νt֟y˻7bySUcGwwPvS|lkw9|g_xٗ8F?8*LJc{sG;OXޟ8R.h7fwLn7!a:80 !v֒Dzrp89n{_a$ǧLv{/{%Sz?̧j|R+'wh^[G_ykly}+9;&cqxz]8_֙^j[M]Y{7{-Oݳpv;9-H⬛9wϠí4vq_ ,cxO܇N{{<D:{;YN.~gk:/J+#y1ĬÕ5>HNivmPnw:JUW~|xhp8y׎ǫ>v?{zL 6tTy<}"Xv On{q/v Dip쯬M O$s~W#L91>ƘsȖS̻_Jr{{ >&=K+j-Kw~;߮l(,G/<}):5ӶRNri*&/}ms{c;|O tD?s/~/k>5 l[Ӧu:>KY|qnk~_cwR9kxlީոg߂_\~uaQiw{}w۟ȇf<՞G>>E8\04vMz~eK.Μ|mJڟ|Mg_ճukR}^%/o6>|q*9j|t( 5w}xO~%f|03x<>1 )$ߙ}?؟ww2CulQ> 8pwɿ:#Gg0y>H rEP˺wvE|a>wv]\;]g{oNذk.blͳ%;fCs..6z&gϗ?7<LJ:KOQ~0lh|jQ?ʻ}å}k~#vi̧>Oe 5`w̓Uu4?>3DPCWz}_o?v?c}|3_}k?ʻvod/zm2yys|;>|h`|v|{KfZ}[ϜA/{W{}.d1o ]o7ɛ&7̞_u!KE =|{] 6{?'/>z /[k]oW[o}xuÿwO zos+{?gzrߋ׿U~x܈Z?Pq{e8'nRU++N֜,-m8`e>3 q&L>mۻ%sw>x2WO'y{L^yc}Gklgw;>/Iy?~ rC]{s{؟}pGn8k=s2I۳h8_ᙪ/Ԛ<!޴5phc|ٟ?]&Z=ioȞ6+Z1W 6J>U9|r>ɻõ#s!C||cOG);?O??gq-? <>Q tܺ^zP=sw˓WK&tIJ~+3867?F2j}#D[];2OFUb̜|޿|>Nt^nF=?L5y-gV9W5?v7li 'awwIO܅>Y7l#lȇjky m?O 㪜!Å6Nԯ}o.;{?hwh|stqݟ޳j|^^?_},/{aPl{]Wݝkb>m)||תJMmqݕ$vo[l#?nڏ7ðYSoyw'"Bendstream endobj 626 0 obj 24221 endobj 641 0 obj <> endobj 643 0 obj <> stream x\kl\uv"ـ մX[RX{}u Sy|65DYSH pFhæ !ObVF#8~RiQ V`&ݦyϜ;waؗ;w9g[?ۦۦsgjmww\mM](]Qߨ=$r?h~wOQO??w~9+e%9/dO|cypGW>#{;;BIaNq?o 6ᣌ(cc@q+T405GپpI~ГsٜR}9~όĠّZ2@Rn#clłЫZ^Z75̻\#0rs&#c|`YEʾF`EQBawz0ғOk?A8)`Iiv^[bşb9{L:1Z|'$᱿|0{{6R݀|[D;vr{8eUa{|g&sS(z_>8dơ\!i]\‰ .|-?&cQ&+(]GFCBb 8x:?c8|"NʐM2X䲈\ojB zm\ 9-@# MD Egv\ }""JKa,a& lgcsyc3 u } $넏I.0 Jh ,XQ8G|h CŸ(iRsؚ4wV*#fA46 92=zž_פş-9r @=z^8?vYNI}yAalF(s{%"sAMMcxb̀Gi/1ÝW$]BM5Woܬq_/ix5vq(:"yON4tU:oA)Pٛ :^Qi6$x23{qDpBuÏ 6S6ᔐˈ 2 d:C0^ƭ8֨R٨䵀O2Gb]T γ?h;Δ~a+\R85rL?vVDHÕX[pPqA7(pi(;v6$noiy0G 1l$Zr k6Rvڄy 05 -@6}tiI(j/|Ì.e^:ur# FAaOoqXG/vx1DF侉w}Yo[}')QE(>\Q`Q7Xs6˓W~_T-ّro-rQ#xdp2̿`ceohL }Y,#mF|aCO*Xm&Z]jEtȋC^*t;J_mpȳAE(X.dG/Mylę0o( oԋF< hi. K? `uhCf.ų549J;TXѳ ژEm'=5:d  p̜Ua5 iI;c;`n-*w&7BjoL.J0O8=ʛ"|}}4g*An龕{nsLk4W[yb+| )+wX/y`%tEs΅G ;mOPù3E SrLtq,'jp!@ϖ;_B͖7%`ɛ|`֫8n 95w3RH(NLYJуte1xK`;>߂Җᘇx{5AW`' ur1WfR Jpj1$\3:rN76aW2 +c kΊ⦓DA )*fg rBJ;.$*\?tCXSsqsO ]1 z`)ҥ&ߙoWLV؊ t:BFQfZE CyVNK{-G8Dv˞* T#]v3n> W"g -y٣|tf"'U]}QL9s%֢'~k3\2j>h?y(_}Z5~oKLۃϞ|Y Wh^S-?w-ԍpU>(r)|e9R, ]j1 $Qs pӪPC|eby&4;@܉ɛ)8ԸR=轲cyzyAf:W,ձ3惘^?2z=&¤;yaU_Gεɡx=Cd7"dཱྀf}C.zm'{F )ga'ub6? M#~Y9A~j~5?EOtPz~f7Bm|RP>>Ԫ,mEm1١ub0ohK{V\aW(;aC^n>6l3_^ׁZB\,}Zs*C+nŘGS+gɼ撢5ڦKڳgBLu _||$ u/QPi0Brhruե|*Ub),'k*vjmAut^7sg,g0+؏W1XFbZ4(| !*eudp:{HE B2:"nډ0ơm̋U"@!T{dH :T ة;y\"{u2]')Ԯ}*niiu_z '5kT*T$tߊ[:F1rIajwWSTu-+ӗکU<P>[>~:aM_#q5A貑Ԓd`*2ϲj`L|>9:d6rߍNIW6VA.GX>pU[] Jk+R-]H3@]s(.8g< <mRG},~5%M @#yaWG=FN5>Oϝ(>#3͏ِј©Ꞙ&kC:{ Rw 5(:`}A85gi7aWE.qQs۟m, ӉYL[D+HJA%_D멶,M&;ƭ~`'E2AC0P+Ftxc5G(1+bS !2Z'+x~QCY nrwJi<ầ}iŮ4Iߟu` 5WDui$v;I ؐw3XTyaԒSDhuU>htoϾXZ&EOVxO~` ":]vyAu_v J. cNLKF#FV*uCuSȶ!S"%)Ar؂JIMRJ_|g=׫=T/t/_Sm-v;`|˦E|̙=[nbd֜ V;${nƥ.k_>v3YvU<"^_~ʑ" [H\Xoj]w,25r1/]Bt5KƓO_.v/B\E "Φ/ 66iq[[ +)VGxb% ;*;񆏳Ok#S ƧzVE~ʩUrH~SÓswisuc)Y5?{iyÙ<ھbx4Ԓʅۊට(PAr륒HcO| #.DV|vyx8?hqTfd#/;qad 1KS fuj8ҿ{̏?+k̿tCy~ ݪ+ Mד^RїSL@clu ѰaEk. h͟%(nUF9,WUIFiV~B絣5;9t{qG!ݑy?pBh)ŕ8"Dksq΁94VHZc+kNv5Jr7K9?e~ȀB9ɿ/#=lA}غ» 7Q[:fЄX0ƫ͍B|]Rs( I[ }L/ȒC=EMŵ|G q 4ԁ]YM1. w+jS /endstream endobj 644 0 obj 5513 endobj 652 0 obj <> endobj 654 0 obj <> stream x}mfu42jPuQhj9뜳Ar[0=xPAL7xlqbJq%(H Fi  V6uT'Zb}{{VQk^{罞6ao\;ة{?~*ʼͺwT%nW^:mJ7S:~TجKg #š7u{s4/{:=Kh+4cڻSM]6+mrc-+ukX7pmɄ1z\M-0zFqeˬ)oJ/#NFC4>棺?`O0 3 ,&ИYC6AN6Q8y3+g1S , !kuxX`z7U|>f: |y?kB,@jL8b:6L%(JdREkw:C5VsI8]cE0ì'VVh+Lj9kaKkPut!K%`Sj@>_1Qְ3|_թMQ^ӺyO'Ϳ|DMJXeʛ5R"Pa͠Vܲȩ$1* YP}Pi3 Ƥ!4jH&!Qn[^!Ǯ2gp2KB &+a]>씅$`3aOrmPZ]g L%sE<%ٷ`Bs"{33FџpxL G/$'ybH Dy 8>wsօR[y]a%&+.i Zi*K%`piIY:LFZ8zwZDZ:l] .Zj tAVXVoAh8f!d#2(Mvp"tk M8e Zq`5(̱T>Έba̽*(#RaqOS )rJ)=%P(n/mf(s0-`}IHfV* QÔ*Ϡ\ʞΘ$<;n˽`MZoHW]S.vnBc@ By}bX8⿓'GY?ɩ IVIiHE!)5):Orke™  R(X[&+,[#]H:}!>+{MfIT@}?5)mYEƁp^ p" %F&IPs: FS8`Z4hX*Qܶ7`]&j1̛Z&(@V4b>!5AwXNJƀ!YDyq/58vs /)ƌ!A3DfvH$9\9 V̓0v_0$ՇzDjA9| 'AʀF ι3L@J=AH(Iɫ+MI^뵦g+.~nZfZPSyt9 H΂5,\j4jh*Qjl0sat't[3P]l.H/:S Ǽ^YHM1 s,*Cu& 5D-93T3_W2 r`? [!LlDg{e%64B2BZ>K`-ITS)ƀkJ1.f$4u;nt60$Շ'տ|TM*< _&ahXx&\TΛP$pR; mte #eY{L<jA iw`EG8ɴNy@Fr)4I8JrnluY((I}H*1 nYNz#nS~DF O(@*>6LFZuˬx{@n^@q"*UF4"xLE!-n0yaIPf Uh4)6ʝz}!>3cǙkoIT@S}?7 6B2TlZ:lJIwi2v'I,e*'^Vi(TBT 6s"'LTD\hLTɯ'IgAhj,ur>F $4nm[yBGk %f\ 'FJ$`tfrvrxQCPZ V{g ^[HʆH*.q)MFKE J/k+-M*}4قm=7(T 05W|(qp8k!+49I 2cohA Ԃ,JXlah--[m38l2UT wȚD 7T"c S]QC0 R-vp 4k#P%,+.p2mN ^[H€oE=:(Ħ.vn]ٿ4TtMC&rb4z-I%-(>(NVR!4jH&aqnTX`; c)V=^ѹNx6z~a.4;dA񂰳$ʋ᩺T&`v8-Z`ʭ}ni(GZ|ޯA@ %0T8] %$4y9.asR*XӨ!Aƨ|+e 2x} *xkL[&!؊ LHHʾCsJ2⭱iN$ʫwz;7ߔ(R*0Nl >LO^HRd 3`{m%:LI+霦Ij&cTNQ L,b$LWrIxN!㹪/$K&񙾋s|͛_ތWTϠ+*Ņ M^Wy .iB5$ (Ղom aRgŹ y)S{+JB'hYi1 rzCSIhbah-HcMPV; :Hzc| ;^[i2(KtDyq/58vsJBւoaq*^q @)K^TS$`>:FEq"5 a>^h*1 nBk\*TW؉dWF'I@,(>(PBY*`54 (Ղom& Y1.h2OIr⹧ I^:X:LIPh2D[ q?Ir9cLM`z}%>3J׊3yp I&~V ;>.8䨄7WPAx"ѷNQiQsU{Yf ,^ƨ.fnZπ6NahRD{*` 3$x'տ|TMi,0R8x+`)e#Y<-8UFj'OG'~Y/R S ·ШAh|+e=WpqU15RE7n$vGX$P (m|Cf!iԐ TSNL,t%?"H) ?1m`[q ?0q:?"hN sA4)ņ4N'5oI~DP=;9ۏ]nu؏T؏T؏TɜGuڏ+[_'p9G[?"ZdD@d̀ 瘟Yau~D F|@'2?!K-y7!/=f?2`S,8o\(dbPy-~J7bCF{>z!Of_ Ϳ|_W_G>toܧTdC }, |dߢP R- E7_d?a'u}{>{e%)h~je坫188@SNo  oz>8t} ܛ վA-Hr C@:~y@Uzro7 o.߂Px e '8 @}-qC›(Tb)²O}>'|ww}0 `qooo> A@M@C?LV>p`pF+87 7ط(TBT C;m7_`R$}p^}d}&@~.]գFFo짒:>jDSo4#jJ*C~*(P^?!ԡEׇX^=y~cܾiY+\W8y'wpa}«QB`f͇[*&oa݂ypp&<\=\B^{p`}'<~/p}sϟ-8s7!9tp} _v\贍<}c0Acg=\?aA "<\c޾~/OPKx~0aB(TolLF#{{@:~Ba'锳͈Lx|-pZ>/)/\?F+p}wp}{>8Nyvp}qߔ o\r +aup}U>8@F ]:~'8~/p柿[x&EK 'o ܛ>;ս~׎#\?!iI=\V\Z0[*7i~ǡZ=C~0ؾY`0~pJ[iY~0>-냕ׇ8P~Y`0~pJ[Xio 'zlpO=\:~Btx1noPZ~i \еKiY;:T,Zl- ?ۖql@p}-L\qloo> oQD*Bڂ'<9~0>9C7~!}hC -~Zo \!쵳7\D>_S}Ty ^{~0h׷TS:z 8ot,\Ek-~8"\:>ZfAJXbah-z1p`!ox|p\?OX;~0>`d![\Vo> oQDNBނ:{~cT\Hp} as 1d<\1oo 7 7}^}.\qmt\:~"Lo pi,n>l T`OpCh{{~ ,\qm,0Pu\?O7a4p} =\Lp}i-+kupMpf]ͻ|b$73^up}0:~^p}c0ܾ3+\)94T<\1n'3|{ _\0~g7vp}C`\?@Go!paY00Eas-~qlg#v\?r8 7 7׷(Lb]u cg<hfׇVx~c0hAqwBz~3\bppa}hC -~cog,:~*3wp}#{ a77 oQDBނg`=6<\:>'o Z Mf_-(@=h,`ҡz`}f,W~׃A{46>=X5>zك1|`}ju`}``}?;F@c0ھ~-pX4#X{ X|a`} RX?<В7Ķ8;7 ַ T ]pyQD!;m]K"b^4IdaKԢCrސ}=G@h՞T=^&%C9L^d:v LE͜8-$imE-ahPW?w{.pPw_~P `:5.u@R_~ Hs^jr7 "d߅g[/SGⴗNth` D@?r%$/a {[ΞKL-Cʱ(Jڱtyw4C?*?U""UM?w؏ ̷}UoU8?x_L[:O~[}'7tϿIV{-'{?S972H{Ϻ#/̕gox_?Q't;bb>t_Q~a eg`+NS5mn/.JWsAn,Dz;OFS&q2 ,?KDuΝ vd{7I_Z3އ.[jU6?:j2IU2X9X9Xv9K;_sB$$~g9[eC>IiN7!R\FI- g;(ؕs%_EiZ 1;[TZQg=OúlJ//V8 ˛YX9 !B٪)56M {}_=/{Nਢ k)~'tγ]lV|k^٭[S?<}[I祝/@,@'h)rxùVSjj{x^Ց͌7xnԖp$5Yֱ/r̕S}hB{rZg9k'vtoHjZu\uGrRr gA.a~W_ :㢡W^%~% }/⤦ y/|ސ5{oRjˌL?D)@Rh:o{۱UXG\3Dw.bj4N'ltl\vL,Xqtҕri!-gL +O~'ZQ;$[7~crQ07k S0&ɮU'a>v˰}VKm/GZz+SԆv:mjU P+|󖻯CbQp2cFhuG9. isv]v%!=3̐zNiyݝ9wXjȢnƖiwh-9.@ųgIxl1]s!kJ)⚏Z(mEZn;O 7uEOa~t:[_nR;$ͳ8Mܝ2tZNv_;{B8/;ukMFg6-"ҮOepMM O^ XK#~Dz&uݧ"kV y ;[~n=o@Ȑ.gCN=(㠻q)}7ORi{RٷbOoWZy]{1Nxŭ;&t®4'w¾+&q7ӏߢH唎iuqʝM}G%əvbt/rDwrJaX#@qv{agMY T+w3_n2xA+cuiu|؇>M-Vۇ57oӘ[]mM8'Q{E=tsDiex$yKϿ: ٿ+n_'{0 0Nv;#kx==5KO}/; Cᷢ72ݏ'?^wF>wKql[04;$"[/n#vnm>ḭ/]2n_:.d^,%> endobj 667 0 obj <> stream x\o]GuGP`A.?im6zɝ-ixZ{@Yll X.R-~">5!bT$Yf1JC\EB3sf̙w{ }w̙wΜIt3E;}p`v`o郵O7nL՚;#7',o.j̓アy-a`"jּc`ykr>|v cf~zNc7^"9=p3o:Xl,џx>T=:R<"o^#ܻ[t o\*Yx:Wet[`[ͱ] -x}hLk pУg79g=NeV;4SZUAb_8eS3~#;jǾ֧m#F=8M]#uTLฑCVNv3!8𥶇ѹx]4-ǁv %[~jbvcLB"6iu1JN͙#S53H; 6rm~#r%6za  -qKʀ g(0!KCi_;aE^;Fe|u~賚Ȟ?yX:njI9e`bTu\Oyɬq՜XXsN  (3tc`wbSKXȄV>)mB"X"H/ӆԷy|IoTh˱ISM{$<řq:i#溁bt%fNT j|-.KRIHko3&Y?ҘGj1񋬚{UZ ?Y-:4#{۳uXzXPZ+51ٮJ;v yHBqV݌I, C%M'>~V2'#ΌN6'@# P밗/g44;. ߀Ur3;JV)L2iu5&o3X $=+y' ljFXi~r_ b3tNzރS:]rY`<`u$P~*.nZ<܇NC (B刂pJо]DO[B݈P=C }i] ?J6ynzJ@M&i"Jq=}l%'zyN@hlRZZ +2"kqӝFmOg1MW۞?qB`fh5Mm!aWr#`/{\ġROb6 %^>SbNZt'm49k그dNX`_ߠ u7!iWQnrkqՑF8% GדmIXoCW]y':× 1]ͥ3toۀBO`WJx_T2Г0XeZ/+yyܷ4Vӱ{e1!*IAU5量е9:{v4|^9K$+)oǒvABF(*!qfDUҞ'M~Vۅjh43UxJ+z<47S9t xW{za\ktۨ*"v(Z2mXLSQoS:^\Ɋ).bKϝL| $33z]]F3ֆ %΃g]-'=S2 ac ^[wNJg=,)VO; HѬ.U]*K<\3zf~aE0Tɠ[~{n2e6N'~w@:OfeYlW43U3g/l&KΝO7viӦTeXWs_m:s4)&0ñx˨>ܴdtߗ&Bn^;r=*£By.l ȯ.E{x3Ǟ ›tuyXfA'/B|j_Gpk_x ǹa C'w<3$4}yO_Q՛֟nGZ~Ib\]Z1B9q?yxze3 \xMxWLjJdnrjZ}K>+È[!]=qǟ Fl}SNj[bR#$NBQ4iAuik[):U.g_7]NԵMs(ʓRGu9G4~pU^IJ'lLH4ľ#8<\m 躥ïipΞbl~@s$=;:Qȭ*=7)D=NTܦy^<39"u:dhδj J!]zz}X,6Vw_k`PxWIJ>\'1>:.[L29bȳ {s\פDmLώQyK᳛Lo*AZl|U4&Yw3LCus( OcȯdQ>yؼqԁ?6&01$辏`{ponMH;t>9M{;Jdx;ЌGk{DjvMQl )xMj%R{ƬS%g% Pi(R͞qFF#J),fZcC]F׌` V`=*/'i}9y @l^x~ f5?4 QW_H)f(,Eo-#>M(]K}{beqG~jL^sD:J'c OٹW(4g66xYPS̟$bcj/@c塅t{ !);׭ fs;iư #ߠC7kQm X(ǛGO]KUrw4!(ik=7Β e?[옫c>-kn `*6T"ERg^zJ$Zȸ]̺>\sXP*'M4/bhjGAlϞkk1uԸ83qt3Ռ_勸[-8 z9Ф/ǿiv (endstream endobj 668 0 obj 4744 endobj 679 0 obj <> endobj 681 0 obj <> stream x\l]}!UED+ 4k#߷j0d'*mc;yx#6-GJ&4 m!hKAPZu ֱs{st{^9< 54Z_7JTwL؟{GfYnY"z0~A~q4R$3MHL)˟}  KD!prrRBG`4@Dȋ |#q{RXIA?Dhmu¥_ۏXnFATݖBŅ \xJ|yJ_A˹߱-/c* |qHI~}N)ovN H/}`;ߏ-Pe>E?=PJ Y~Nv*fR>1P৥c`QzV ]T˝Hf5l}i=Yxٹ~%%_2e6,XɣEx0=`D*:o /澒̋qDQԯ];O8;\GtmV[7|dOM \R[TH7nyL6<1I \J$3 ]RZdsL%!Hij.A^DE$N'>"qVo.U{o dԧP۵bHhgԱ2 }X1ٽfpmCp% 5f Jj W"AlrXE5@ 5Zzpona .S܉L rע=ok|RA0]Yi=\[vpļЄ~ YR顜b^1aNx}C>uѦJ*^إ"ڈۧ7 s*1X3PZ<!JF1d*,&jw|[a``ۥYBje 8cw!W3=aj P%fn!FxB z3E|}+^%k~A.d?z&)lb}-b*"Vo(9%Y\\k 駦 ,d U)eL M@>*Ȳ}]- IIa07Y_ ޟA7t1-.I0B V)i4{$Cpʈ64P(/1ֿ8Ҕ[@2 z[قn' <~}d |-%ڏsB|ޘ903&iIni'~E7<02AP`OϲbK>$f˾c`Ӵ!'I~V=@Ÿ46:b[D.mQُ% 9//Oq"F&E Cl*2fQ.鑫JG=D`N\v(,ULg5yB1OIXfI*~1؀L^,uPW҂ mZ 'jV_h=Er@ :1 SPZTQXC|cO;}eJnwu ƼlgL\BvxMOs NLԯd񭃀xc3R.I7 #=I]§[G`WB*b&Ϯy.kȍ(Tf[aPj?Z"a}U.6i{Ara:뀊A7\z`:׎hIxmV^}i1etK7IjP!+_#©joT݅wz""Sۭ0#5sh >;h)U5"Q|WAK*wh4xQz3x~>TХ'sr\jAwpQZRqc֥Mvǐi@85Թ3zP<%ڑKO AHȔ8 pfڵ1*.Oϰ4 , Xe0]'K*3zPv^SeL-䉧>MN: /5{6yFYQ:!>d1z*tE)bE2-o!H&hTDyL082c\[b/vW"xgH͆5TX6M 8꠴򠕬97/a JBEb34pS3d j콢Z^2<4 ɡ?A>`jTy=uI4t8 Er $@H3px) ae 茝+Y<)gVlsLTHs*R]4+#g1+z6x'H\BnTvQZ8,v Cӎ@Zv/-8fjj ^6!]QA ʞy,^Q$"^_g-I;F-$X7<Ex7HPsTbF뿚;;|!"kWXOC-QAE"؊&txbsI t &!l |SYHMJ3,b.AvKD];j5$&2Ki1F~h=N)P__8E""/ARp)YzWZѣ鵵zINԮGnI[.&ݥK%Н_k9LsX #E":u<6MfIG[gk-"k'42LpW*5F72D'mFj/*ja"L[B[8H@vy'#pFEjĉrGNy*_ޓ3XG&NpH9tYmWe2HKHS1IqipU`Cc-*L&[4e'Gvp (%]>"@U.J>- vrWS=pϨ5iH*&o!gz}|ߠŢ+j.cQͣ,loVKOlbE'zpvd@/28J9|9Xh_}mmVb[x_ZGP, r}Fl1I: @kBDaႛ4eiE.G**\H09\E=nOl[e޶z0ư}jgX0W tu@e7MG5!}Jty#WF?Ü̙א@p"0B4|iDeu2f;sZ2N3+[^İ'N_/\[{͔-mģB٠ v#_ TWM $UQ2 Ij p[8# :n{F1JQ7^)]I%u'k;aTʊV "iEk"{h>Au1Yf2UXJg&OBvOi^y`1ptg˶Q)T3;o.i*vm T.JH8ԕ-r&*/d7ث7}6[8:Xc[5oWOg:tti˹ݗw_x A>kh6sMEt)Tdj+Hx|?vѶy*2tA%ARߢآٙomS%B.4 gT !$)X݋ ƆҕS,#L_}˜/:@د=}SQKG!ڸ60Lt?Ͽ{6ɡ,GOJ Z/5ŏ.)Vz GKؼuaEp>~P ?i TMֺ-PnӀQn5Nc2W'0zȰD $LrĴˇeZ[󷼳x̾w[h+̷2ueE4Yp~endstream endobj 682 0 obj 5721 endobj 693 0 obj <> endobj 695 0 obj <> stream x\olEzDi8H \(+Rq;p;7^QucNbK]ˇFi>.ʧ w#Jz(DRՖ;Aǎ+"/}g~wg~yf6?у--9~=,lȡ\"1nsq?m.h\Jnr>&8S d{swEE"P-Xwz=K>=z82ۓ ?P~?̓/+;F?a?dԧ>6Ȇ fBٮf==xGȉENw4\bypM]?*V !P nIՙbh+wGgn|FSs:tK*8-B\缿@'^ͧui7Fg֢#cf]8>U@:A*QIXDbpq:0Hr {W2`"1Fk!%DB|_?bS<:%H7"3]X5$JS`S \zb_O9$ADט!?ua5p*t fk@Oyd4&͏B6C$J[XCr!6'IydmJ&q3$Hu^SQ0-HYbenO_ӏa L8;,eRRʁͮ_$ůΥ5W!CB2cKSa}~k?5R`#!7w^g0L`# Wq&K!HW8WӐ LBD]=1(CO1 }Ck%y~K^BUI$goX|<&q yANa#M U_+|}uDXRD_6$HB5xQC[]fq6:c/{EF]EFi-҆X00Yah1{]l/676 k>g 64f#&J/:O/IwWǟR(+Yσ?1]%o}dOzy?]`V~Eivv%b=+/~Kmo i}Nf޻{+JPfvMoLVܶK#ď;t;?L%{+h= zb=ãO`v\wl3J`h8VQsiG~lk}UfA"rB,W`L"qY$Z?x٘fA`dːsn=~I|gi@9|l:pNHګ{D$eKDQzG@*&~>a*LƠPCQ=]S$5T [&tF!:C8d,v/쌽M%Kp PŖ'+=Q@jWe:]R)TG6 Rf`>sҖ)j ÀEF6}ʧJyro &{^bXf/"%#X6򢐶(yS@N ViEOq&X"wR1]t}s|L'liDL*vi?4suLuw;P-Xn7i&[!#كd~ eQ*usI9++fK֕xXiJ)XAaN ֞1AEpZ Sw̰b!YrK0ÑӶklWcLU' kV^gitlt.4/=xOu*l1!i2Z@%ZRpMyeq\r JkJvZ6̻>n-W)ʅ }E< /Ђ N?s9@k,H;zUJoy$d^jħ *hĶ+VkvLHx&V^ftik)1zS/(35 8}AqFM6!m}. MKiEæm-e:fÞ2#hI{C{D#ae)Tf  ٲrl'v 0cjD*>X1V-b~PX" pG;zb[itAoޗmyNRN/Ѡ'2+ ;IvЈTOsGFW ÑВrV)g r#𔾑y:Ƒz!ARggyw.̎(~.9XSp]NmR\4@ۡ[mSwKV+: xuF"+&,klL8rj{x\Dd3[kVu\v/"6De Wl~a傒@~;"EBP$jz&YA$GBREsLf˙hpںY<5̙is SїJU'hy`?Yu%ȩ$J<4:B:>NTz/ڟ9G^8ؐ|<$u;IZ%~(LxC21pHkJuyk:mk6wJ˩Xd)kqGETEWmB,˔^uAds==j9A'B^7rʛ\YCgU`1q={2ySb!WӮl2_v^ː^eR])؂7+jB{x0DnѹV4t%y'AjH#B64iTyn`ɒ,3a$*R$]'dY`90pI +hqN˦|2eUT!~󑬺[_V:mhhX[MšW #װTQ e&*zvBܕ jloy,5dk_uaIkF&w Q$DV"C?8%2~kv272wǹeЕ HAG&Rh䬌fPr0o8Oڢx#-ws;O:̼O9OFevjJuC' |+% }#W2x(:"׈QRVKA.r \.?(:ap)_e+pC+Z9PiU:.6NjY,a!xXN#7)Uk˧2>%>eΉYy5+c{R@.O줱,֢.]@#eW#ͣGɰ͍r%1Y hy|JD>ULq d[7b̕KM9|lu-^,$@'Ac9]vo:ئUaLP$`v@\̓z2yKL!f%i0i㥙|{ӚD9G.A U-Y\114Mz%[5եdfK@Nn~@7?F)!YwO(DU Ǟ9ky)QwfI=TA^FnQqVՓ"5 ;8v* :s;VBm%(SWO`yͫDqۚ[LjI1#{J۱Z y-P9y˛V _j&B6)3)\R.[("qbSg*|&ʇ){ ;tص;4Y_U^f*z_<,ԦDdbdQ8=t2VtűRQAGJ "(\$}?s{U2ޞ,e8Nnup9[=ALT:ah "Y(A҅!>-8xDmN+裫ժ&vBY1 LVBșpZJ6_Djn:-*11 J*Zi¾ݦ_8@#@|ä2:|KdfPOLo`i^6l(xV޻Eѭ:r5,u R5(CA&~J&a2kѵ\0QÚ0^5gݒ' wcUp 2Pw荽޵=R.M4 k#4~٥]g8]!o3X~^@OL$Fkȅ*:+*̛'Uu+.3T LNF8oV@UAUxk ܪKu&ڜPyF])Zgaӂ8xqiGnt ސoΚ}== ,\VԾ58e@+|X`I;onP1:WX'԰r1VM Ҭz6 Xlj,޴Yhݍ5>!Q&lnݵhJ[k$r\zl_Vxv_ea,+Jxuf4Y% /O}89ǵ/b¾ Y'8Hb^ cp4qĝ/3PhE^mSup㿚K|:.3{Bw%;M:R>/yh))-WGmI.Fi!P[:wlٗ?e9ԲH߲s{Gwnc)-/z9_]AA}|ȿqoh}Yc_GN;غII6 ?ٿ|n?~endstream endobj 696 0 obj 5298 endobj 703 0 obj <> endobj 705 0 obj <> stream x]U5TE D1 CgbdR d4әs:9BJ+C퍤DҖE(-C(mGLK`"H\ߵk=!1Zgln]yʣte]|jyjg.h(Kgy9[KRz[9'eAlD$f4lo*yEo$KZl@gJ:V.$216b%e-%GT:6zٙdc"uioԹ $[Xul6Yc|VI;OF:]gS=F&c!֦-WNIe+Zmlx^(ih)MJ& c ؐtmeX g&+@G,YY![H2tM]j·IE*" HłΤ.VmkXjX(:tY&$os顢V$k&&#ICP{PR2t}m 3lBMxdMɶ7,Vn `DMוt!ɰOkek嶲oEI%agjߒ&.k-`,6),~dE=m!T%\5VضRR!mIԊJ6Y짒M&>ؖy*dcc&:&œk t5PΦkl^4Jt?-Eg֎IKޙY<&3*夃HN@BZmJew"asL20}:*GLd,Si,?Jdl]b1&d'C!1A|YꇕU6,;;Ƅ,l,-PE&2u+o^t1dWKGvMc-2VBĒ1JH򔇎 HئfcJƩ~@[6.Y}HX,lIcV1~ s:.42K=[Q-~E7؊* $݊*lYc-ܪsTBEU4% x-Z x.GUf s ~A,$;d锦R:*:bIWn끥wĒ-K1e4VPXLG~X1dReq@yf+̏Xl+")<^EGeNjl6$L7Es **sup$sl+pat˔('4Ef>ֺ*YL: QPh.j[dZȔ׿~E8de I,\TYƮEf;Ԣ pOoaO88;1RݧJCv`j$[t]5]N\Jte+f6F  lDhaKY=k UzܢJf3 "XY&:W 6e>*+I;w!ѽXۄbȝh _N—=\ =UM:gg{O (*Ϊ!#787>uto,C{o{$]螬 a>{7GF=E{螙1o=_"GtO|%Gt,a{@^Sw%D`5ѽP{xyݫں7^q!=U@r&Ƚ2rx츟{e ރ MvV:;5`{8W3vOʉSrb y K'vr{=ٽNKSxD3{0RȽ6{}%6ɶ9vEr& CrJ`t+;T@r&ۘ^_)7 totor ro #h_wvoG3rS5ؽ|dlo{5%'#ݓ@=,$[+nPvrL'Ztt~A,н&ga,C=x 4twtmBH SOA&tOaLry)9{1dLXlx{p2e{pV#Cgpz:/KHvOiLzqLl 7Gvo 'тݓSgvgfzz9׳3h;5\ٽ61Ɯ݃qfz Gv4ٽ{m R^xӂk)>`5 k~gp梀^UlރoU.!Uw&\Ul6gwx0|L0|8 PRXdpn#ç@ 5JMђ|' _, Rq>BX>@>cb.W%vdqld#W)_ HC|5 p,b~0L|`ؐ1cH|=SR n{:Gzo8^A#SxB; x9^s4涔Z:5!<<{~,x9sJU?WxPx;2#W*N^ƅ=⋿{ל!G ,ʔWa2 +sxSü'Hx=0/{X?3x$*{(u8{XJF!*btsߠ9W6w ;w=,ὒ$wH^xd aX!E"TRx!R=/0obSGt-{Y>CP)r.[2T0t(91Bd$dtؽhtt+iu^c{x+uÖ>&vPÁdfpX(c$-g@Zp4{pnEro炝N!k"Y$uP4%{{7@Fގ97stk@#5/н45> н@_k~ot^%^.nup/`B{SHAB=`.4s{/d4 =PN5nqh-b|raDj/N89$dAC{"FA{9/hĠ=\< ێtLt c~)uKA{z%g$6 Cp&EEhJ ڃW>s$ CMWw C{2B{s_pg-a$wȋ=LǠ=m;g^|޲H0:%% b($oC_YcCW  LuB`pb,"{9 啬{[Uu^Ee{9NHaYGC{E`MGXȀ=+{C"m2`o'zg{CFu k=r"\t&`"=Vq{ىLTAFzP!5E`/a r|t%FJك$=4IE2{.A$a;c&f/Ց=Dп>!3B{>󆢎V6{"S%1T u{#J&3F1!{y=C~/'fb}կ(1do8@Pbd_U*` 5H9f9f9f_XYcp`eݚe* U4{Q\eMn*w\eM[8& /NYYcsfe]ZeʺIdVeVX~`WGvXwpdNY=?QeJ<J#Js&ȕKn+տ r +ȕT +?S&"?J\ tIa\I6=:8:>::Hh^I\Qj+ú")\I(f6ra;%\iX@)Hte:+mӏHFe64rExcF(TN3oˑ\Q$+#rre[ɕl+n+2Mm r0ȕ WZ\ ?R+G rH䊴Aɕ`RJU3ȕ2e!߆&['WFc\k U3g/2Y2H ɕ_N,+zzȕߝ\ 2=\Sb +2rEcȕ>+c68[e`E#+b+#V@U [ƙb+ßtle'-7/V? jCVp Bh;3 tsYi~ fX`@Zi9ޤ""3ib+ lY5|S+VEZR}% j.J' L 3[/V`749Vz[$q+}ss+}^ lD N~}+0POp9+0}%J \y\Qh"W1w+09qb Lz; WF5N(+a3r%^r\ٙ'WvJJׇ\+8}grRH \i~+-A/ȕOp9b. WjtHxɕ WjPNF7=<\XO*1P+Bfv%u ve%ؕ>Nٕ^*+}J%^FˀWzG`#J蝳4Nx+=ȰZJ2^q:2xqve,'NiM`J Еdd+PήtwܗJ Jv+L+](^+խTgo^ΟRX9k+f!R7>J%JW[c+S+:ZQ;V !Bj?AeJqթrljb+%-b+%qlfNl'fNlLՊ cV{9c fL tL p(KJ Oc+%pn'ErVW\qcWQ1+x@qbWpH$]+1=C1k: V0eWVI@@:镃+8Nxg~ @QW qTXW t@M&g+ ]MJYb+0/9RW@!z;Bp%6WT| bέbT 79+};I1le[P_ / ~=b+2a+ gr~VPFA+xVcV#JZAk!vV®X(r+ݏ@~[k-WzOW +=^u#Hq+Oe,JIsn&trc6ɭ  =zԍ[A2NvW!t9(b+(n*Y [7`U3 Tț۳De .| tlaSϱ8'P[ы[Q 84n@~ pl#\VbWpjB+K'K V:/[$b+%.)P;RCƯc+2",M+X$7I!Y4C*&AuT` (qle kc+s+#rn%~*#JqnNJn9ȼ`;#Ib+N!/d!c~GcWR*Eĉq+2+nɕ+p.o `Br%;`䊾{v WU\񖙓\AE\2Ip- (ޢaxyTbzBjÁ䡩۵vI'M3CSdLM풃֖N%kxMLJzūrD\tE:Geʏ:u|P(j vSQ>h*tskurRe I55*}; +_ez MwLs)ϝ^L#[jEql;gN^:;62Ew_@uj`9E9P3OꕹA7/xlFaGk #Q.Pw)\M)M z{uSV}MA"%[zhp*X!,q?1u30b_:@MH`V[Uׯ,e!0GT֖CοGYPvL[CY{AY ci:AeӮЗk6odƄ=x V*>ت| *j寓&)-R2Jנ} -s;G=}B +*U/|*sI{Zj_%RH|Kȵ146aCcPRS˜K^JOaܹ֭ԕ_JDa Sx쀥5te1\G=yXڕ(+D-ZX͊yMyNQ&i-lP:h:a1\R.sF /kx)=V7f|JW `ː #alTqg þE[ #6A>O Bx8jBiowirٌFd:o e(:2gaaBSka5VOfg]_%GjQEtC0|ftklmN!+UH6=uyX1zn{#V+)3?}Kȷ>46aCc+\zSHiˆ0^JKV|opQۙlB*x[IL.s <4%:<,^ Rz s=nM0#l!)Qj7BlEy_G̈ΐu%{R-}?^+[GDۺ x2hYmSꔾE?G}.U)7>U4K^rTȶ"L52%AA#P*Hiˆp /0jڑcI,yW6V[n@Qڜ- p NQ2M"<,,+x=g>GIQm-ni?JYXM§LSp Q|Oas[<f s=n0V]葠 ؼFޖ)2j[}&=kr[M!ͺȃYi-˼zjx]3?1mE0]z /!u Bs߽pPkfA0\43`،5͊o:O O oK#zXS "x{lIqOUESJZ%#S#Qpic|+ἵ %$%H7iQBǴ#l0I[CWl\-$HmtlvM=0O:0ۺUVМ/RYPbx1=y'> S|VHvokNuࠣ~><ŻuRc Sfg[SB/pqH 8ӷzPQ ]\GrX : !+rkuoƪX?Zоdot]Bjұk\o;y9>vmm ג|?s*K]@~;9=."\k~T3|~S-EQwVٹ^`RI>zS 8z@xQEewIWkOƖ\){, _ꉏP^xe.jrS˜B ,ۍ5/~U!?%/YX]WֶkO#[$Jj1 2Raub&4$4ܣmMk"BPrKYu\G+clAh{֮`؇2k%.B7gr/CK9//y s!,u@?cSdE?w/şKo2dC> ZY$uC#@v6Gp1#.jecpOY}{7/Gl0vVrIWkNeZ9pkmOÍ]R⺧P9y,+x=Z3Wbv;|JA ѕzkkl|ta恂d )1y0(,U گF ,ǟJncmُ/Oõa`)B)fs"uuMrH7[g\9g?dӯNҘ+{)d 'm+B$SW+CpGjUd_mG ~nOÖpj2aa`!\!JZX͚9b-B2 + #b0cOÖbdVROaY<,^ Rz s=Mldqw-v'#s,|y ={(!+{ޓ+O(şKo]axRSO."d{ZF䄏,#~tO߂gw/GoU5/n$|ǂaYGvҦ\.YS=e0bK\kG?fD9mmVv2i@(d|ɻد<}nxkK%,RXnvZ${X/~w ͐@Iݲ?ΈWF=(C0heӢDO,e3UU塀W|Dn Z_ylX)B](j6J4)Btk^ho=i3; O!&O3WbJb6Vs p#bHɁ|nEpD`a~2pI4g?]o5 %n7sn^"8~twxz%oU7 O>񄺏~Ғ}OrqKBhNn8rX=9zd}OӚT_` UяN d'w=hNδ,5{2>u'Gj$Hy9ų\Bz^R<oE GwT']S7{]5eo[>}U}SZQG_}ެQ)I-Ub{ E{^y/䭿-5}YgfwNkPSߪ ( hBo}ޡEKܛ8cAk]}4ϾL?z7T[oxhڗϛq2B|vlIF/l.S:=yzy;!yi' 9{ "_ vYIȘh۲^6/j65Z6Uku9Gtf}OrѪxH{ʼnwE\q4WoAתcQ2si>p &תi+x6~ 飿;/}OHώy8xW?̫5[?%[ſ {7^:S^?ߟd`[ڔwo.'^{ ^O?p,=?5tkڱw_/N=W?GxZ֊/53iS֧QOڽ7>MrX7gMqO}6%FiLED9f;Ve[q#6WԊo{q\\ȿ~ޫؚm{,Wwg:i2UOKM=O6Lvbrۻdzrf~/y9e"d7LR=ն8šֆrɉ]cߞ}Wyw|f9҇۲?/ ?:*I8{#_4n a滮vKK;tIu4P8q~wC}y O<7`"{>|CvtD^[ zl]_TbP+^nuOVο/'AoIx_V> ]jB{nB[/.\I(Nx|Iv:70kl^-۔>3!y'9DL?i/OȊs#o[vL;1xhmMrʽy&lw:] ‹ǭ8{Nd~MVowGlYN&vڗguhex辰C]>#_sF:J5x-3î|=OحV#Sߗ^xݓ\ wAGli6XO>㴮ܗ,>(.\-[E܈rs⫷zʾ”}n}'-b#5=d[rhM N5N d~ij;`iO?M׾nR5֤K>ӚsހWn|룏p(xr/n7ۊ-M ~U菨qC\4Ɓ1^v>|Ǵ]dRJ-\J_f{e/re>0ܱyY>CԆyug9NQ%m|Om7z==rRM]}_^ydݙN6=.eV|~_No-i;.߷T /ߣ!&𯎙m\rQ +yh]i;{_/$a=sp&G%Owُ-_dWOsLQ7~~׵W~/S"\/ï򨊗<J' 4vIg>/V^/{g^-{}쁙]HW,r f|J=rP)Kz .w$ ?e^ʔ.VS0<;fю1Jm;SMv)x?|кm9yI6mGSI}|}|dܥ3Gs.QG.T-_ÈGDGDtd!uʶթOpo01[;}7~~riQ\Fzm_yZU^nџH^L3}j'߯~p E_۾m_J“?}1endstream endobj 706 0 obj 17839 endobj 714 0 obj <> endobj 716 0 obj <> stream x\kUuNV -FEA>{UOlr;3̋>bOr$1uL]n#OcLQ"#"TΏF~Dk#"V^s 3R!}so}OpwrWLL?j]]#f4$D䶨}6ﺽO5Z=5cuǷǘ鉳_ߑDa[/&Aj![_c8^PQ mޔcǿvG"h^S40vg׽=gH|Ei?#!vm|V>jmچ+OP~X,_7ڀ=m:K`<>ڏ_lۣ !4[hZ $_Y{srhBsS%c!%:MU n~}4 kLx[,w#;ϭtW,-س~U ?G7ɧ(j|G _b|_i˖r4G7io;0>1~&{p{-/ȾXJ5ux\ L=W/1k>8L{hdX247gN#0CCQ-d>e¿3i1e+ 5O"GLvx|;>Ÿ;.oL~Gƪ5ݢ5"vUcSM95G6+ B-Zh!8RoMIhO Գo7`D̨yi KRXpScG侐$.FB5k3_J%7Ԫ~)$"o2i/ia!4Q{LI^j~çms\# ZrBa(G)usHJeq9Q\*QTS~>8}r1~fs&FF{yȭάhguV^+r,slcR=3 yt6<$' GJGfwLj5=@?V LaFɀS9J#dM-a߽oeKb+,A"йYB`e@FOh@{hZIȢsZPݳ/V#)89y^mG1bwjLN#_Xzc{6h*܉O>"XCScFM3 GV>}@YQB ZP+ͨ 힤ʹ#z !]0\YI [~1\/&Ċp0#?"$ϥe'ZxjA-QqTf b\\]>TKOİP9𣠃zΪ: v2Bŕ, q%Җ `ۿ[Og0sn )GVwHW<E|Av01vrOSİS2Mɡ,1Wѝ ۘ=#t!߮P b=ك E`\)bd{N.j疋p'Csubv ዗!pdy biʁ u;@fs&|ҧѥ6sRijA-=^eKt1g4gqfj AV0H؃+ݪ%,ŞT$ʕ*UqUP0`'jS)jbJ"apƙ ۚFq 7v 3Z f %qBm7&W9S9?5ipt2IS[Em# Y7q!'b< .oW MD`*Cok<uRXz)ӐN/װ([k◭%Y3̰:>_@["S_'PU?΍szɓh[|@ 1FXvT@X.=h?!# E~k5 ǟ Vä5>,1Xٛťt $Ai65\ىd=eFK A- *+ ;zDUۆ/*&l)IZ5#Ъ-bV3{Y#m=Fǽ5D@=5cu)c3܆7L"*@>!""6klZ2Y_!|i3I%Q3;cizNJã^:A6"zxKh<\Tb*nKM&dU -ηr%`AbሐTp9 prC3 [AdNIg T[}&*!Feb+(ϔ FË:\iدT#\4ccE1S-2ÝNȯӕ~H0k:9ɉQy’"n?s?CF׏:=*BZ78L]"-^>֟g|_ qDƆe@+O;sP7kSqՒ3!!sJu: NXب]F'D ״fX ׉i-;-W:Nӎz$#t/J }$Qx1Kn$UQ2N 3 (>< %ETJL[^]2!j.Ou ۴eV:,+! ;{EhXQ'U2TQ6ܵX:uQE &L -v*ԍ`EAsoNvA=$\ 1ݣwz@! ,2v! ZP@mɍűsEɭ\8Ͳ0(3?X6% 2ܾKlSa>S1JRlhd23r)IgұAV6_qj-M KԺp-^\7-exdMX [5^Z7wmFAS\Ф`5]8y0ޟ=hnk\9j}<#ݹ SD7Zk'E16xG&Je|θ9DS(^{,fi@oƊuPP0qz H㑫9(V*@I=%杒H='~(.Sߞ]śT?/wAmWn56,,Հ %৅e QRʴ?v#7d&8M;m )G E!A\~9W*@˖w:Pf^C" OV3 !U ^6Muko_m+aW&/z}:%D-!TԓԎeB\Ci$@Ӣ҃N+uOb !2B=)+k(8_ <9K~i591\ i:E.qzU3ʫķ]s۪0IYtʽ;yF0Q'TAC̪UX؜2dj IO ɫԚF/nyf}֗SR8 OynVi[/kG8= G8hscCsJ+;}U72kSofqlKIu7ReVLp/y #|b:R07r9"jҋ6DXox1uV J!꺕 K̖U' Kl63?Lt6BC8s(w'+_\i*1ȋ['1I d&Y") $U`rNQU@DUs}tU$}9"z2Z^ҵfO$^+S P RgWRnE8  @"ZF6+l,[zuŒZE\ =_ RH,ik=BZOmF̋:,Pn;epMo$x!~b0y '{:v bWۨnX LPޞ[TcTu "駋~ec~w(iCpiÉP~Ýmw"ݟD7%ڂFn{qԌ~oHϻ2ӎF\Ţn Qm]p~P6W?FT}[[xby_H@LI'vxWM4lCS|Y?,'endstream endobj 717 0 obj 5468 endobj 721 0 obj <> endobj 723 0 obj <> stream x[[l\jU)!֔" mZΙsOtkǗ8T)6nҬة HB%OC⦦)U#H H#xM myhQ>Ϟ>vO(ɞ3?|;v;c?>-6߱7cgf14G۽Lţٷn-i 03\grX2yL=~g03|اt_J ;^>9<KzQr]kTt<Ëtm#9b2@Xϒ׋1WjMSi//^tO, lTPy+{I{Rp+{;gΎ^9ה&^O Ph x( }IXseƈ A0jՖզ(RŖU6ܶ͵FUǗnuJ#ߴӆR5z"C9gG] <,T!w^_"{tuHU4X=_.,A`rB;p/2~݈L02_`9[ʋea溱F.dK\+I\K)h vEcyyjVe 19UPvl=qL>g#בNxz8e;<8L*i~8ˎ+UxRȉI]glax|!O)%LX7ߝxw$zw%x.iÀ>lX4k5#ٞ-9'-pQ 'WQh4K-7 rpEB?!+YeXY>ˎ?Z+h$Ss;C O.:i[uʩB )3Orime/!3);땔T IXI_HẈ«3Fy\]}(VXGߥxTڑ|QZ"؀(}BLZр>[;1 O.MR]\ SnZ)ܴƋžфMZa:pIO\TsR)4-XmYi4mզզp |%!7`w`ޫy_`b|} J䂺nV\0 һ) "Oz;_z@Vлf"Q(=W!O5dI!B<(/v`qHmG*^jh)C㪰 VA@l7"500U |@l]t'x>9^+ꤺ:B=,XR d|뉷͇R i,X㋑ wˏ({ {_#lO{X@5Q]_eb5lB(W*u15z^'̭!Ρ;xbÿ?:Qngzt4~Ol ) c=x_=c3#<*)~̏CGm88\^p6^?݌-UZKa?2+:4J3~?$eScY!~ (`AO]tPzQqHz8ja=aq2 ڷ&d., 'H4z ~@dޥb_mT~C ٤o8{[x1`'0RT3/:n/"H B6;Cl!j [F"@xR١k!0B $ kM;AsN‹ ">VO-֝qV^ǡ?̟UӖwO^V>}kr(a(% ٦Eka`=F1\f=DJc"@#K9oI]-!.($o&SC{'ii ?εa6Egk_ _I!fhxG;łO}# ˼ooLN:PdN[{mD0O<q. /|Yِ[.ɭD7|,4n'H.}P;/FW|(o.-ԎK3fRWGSBl9_YqgA۸0C;Ix[#xKIJ/Rb󕩁[5 R1p|5]i^;n~_] =u௚B @^JF1y endstream endobj 724 0 obj 3811 endobj 726 0 obj <> endobj 728 0 obj <> stream x[]l\.PBE)Zh]{}H1&ڍ8ŴT"Ч C!u%JH(q/HH`11A818jug݀ZF2{gf9sΙqns3' 54d\L]lތ)%iOg-~u, 3Y}Ʀy\|ÌxUpڤj^#+vS7֝/ ާ}h>X{&7e2D(e\7t3YȖdF;kO=tNHɬԗ`~T${qffy7`?ϚD=:B]p M6d ʸdMI&2XAHؗ?WoLCM/H(sg SS. _9oR5AMį]\F+Ň705{"쉃3AOE`|nkpSD;[ Zƌ?X1>:}[ʃLxXEn{H;<Ŋ2*>]ŽbB<slKZh`kt]?GY#IlnT(rJy&%qiZ dsgdp'YB) J]O_%bb!*I69?Skz鳬#0ٰ4ALfn |A>G%vo^ޅV><]"^{+) ^`\X֔96beDGEmhXT\D]#2TYq- %ynS,XmIʒ% Wnsg1 &KpCV|g.gۧL27e8 p1Ϟ}fT|:׫ɍ-4K;R&CbQy/ƒMiAQ'ë\xx>y9 Vz{(_ZMFĭKʕ`,eC6uBݧ:7=:=6%e~8@^I6Fax8Ubg2V9ysG&Xb\a pޱ95OtTtlU Lq9kY:PGΕSi&kxτ vE~$BM+`N3y e9K-AfsV49ML_rf;Š=318n~Q j_5xZ| PMy#ac6OB}4Su;΁ ."GIqFeyTFFѺ#7 =y.Hd-2+pܴ]5;jAAѨC u4w` #a"\KMJϵMd$0E(|WA慈uX4zXW$QGHNOLHYSEz_go*$bj>4"urɿO3\X1 %^7P4L;vi4 C5|,gib u iiY[)uhv D>>sAmtj6EFJ{Jȗ#diFԿR>aSMHT#3[>1 ۏ[)}eYh7'mPq.^"AQ_ٸH*s4y܆d0zɎnobc3C ;+X0(gqٻZvI7r4 G2՚Fu(6YkcJu w#7Ҿɟ1AM{r3!{cRJ?aN*|Df[bmvt6܂12D"9kOO#Oay.Rz0\)D^aPbP!%גHgڻ`]DsBܵ耜%#JGӘ_@MFBh# b7`\ CPj, [.49]#XM?ZakU6 D`KSaK']~Z<g!*Fu=MӣegwZAr;H<>e""RUq;*,BmNE99 jpfpIr:UC+1T.L߲"H'm(]"67B6ouUtQ@j%/y[E.d(. OqLs+'mM24^1d[ubmf9"â;Q]4rn>&fS {Z3魯Ӏ3]O\ܯgf~5K $*Ђy S;cp2x 9zvDDXpEqZ)~Y)22 ) vl W¼Bf9i5ߐ`}I &ze}5I.>c}p6%{<601O~a~h\{ޣ xݱO U݀sK~Zx_h+zj ح!SK;Qv≵t!ߍh7&͢yZG x SC*-lo160X,+sm[e OOSr3 Հ_ҕ/S^( e.&Wi]o^QNƞ$L.'3$}E*OrmihfxWԝy'h6 | ͜ͼ DfTH<]-6%˒]e飬㢄w]#[KJB3,9j!ۄy_- ,_ʶmC mupuXw|YEw v1!z l#t4J.cVuyP#<ݾtn`{;$.ֳj:uP;0XF4[ۅ;"ۯ* U;mJA!Bna򃵆XiJ][+wh{3qT]ZR#-tpa 628ѴFxoׯ{SZ \ʈCP>~MuBufzMKIii wC|}}S>G9,Ӥ` ѿEL~"K#|ڒXȵT#i2D ,t _~C(rdz EffjM;Rh}Lċ/Ȟa􀖓VG+c5AQ"a]Ɛ=+u.fJE%u/>zsL ,HWHb)N%4' W #vVu. 4gmɧ-A ҵ¸ڴ<@fr?>wB-ƃU~zD'LBPU͹~z!4\a w(++k3.QrCG8LőzX$#6tNo\jb$u~pOC$~3s@O}1/KD>$Z*rԈܴɦiY - (3 U7p~ˌ%w4x2{wm.3_#vr4lB\i-aMȨP&?%!n(HƖ-ޕ(A^d V mKcbakǩ=)sʃDnh:šc^%VB*~8\>..%Wag&\[O`vqc@k@#<5X"mtڳFMBF8Ud4A䳆><>d bI!Vq+BHĨ~k1WU%tV4*thM$F-epRQ6k1qdXӷ~$W)oDw NkW:rڛ_}1 =/&, e{Dsnno-RYfX ١9\: d"?XD Eg qT~^V bۦK2; ~{A1`ݑfV:Nr6N]qk?##%one P+;e[)T*4\h琼%M˄ڊ w?sӚU$a۰L+Tg%ـ$zݟ#_G8$wv|Q!0jf/0T_vizx>ОIj`i.2rU3[\AWmї"\rjb rPaDRrmn IZG)(PWk X^^}B8nl}|Xj`\ U oҀ" .GiǬ2b_fKendstream endobj 729 0 obj 4426 endobj 734 0 obj <> endobj 736 0 obj <> stream xݽ[vuV(ܰ@E_= a1Jx^X!2iiKFV@Q䢇 ѫ=@u4HR7\h&l8 8MZϳfR "{fgϞff_x/?_*sOţֻG0Q&&'OS w??3ޕ6q &Ey+'cmI&*@7/e ^NQ&h7D)/gs":~s _g{j˝k^֚ecuMCK)5_\mjmgsj_~v\lo_Jq?W{;گܝ!mW_٘]mSDXN1w߅>߭=~I{ku_1z73px_ZA}hœ6JL=xSO<{0Wǃ?X!a1/`Fyc* ;s)p6'A8 I!9# pwg]}-?l}}7%}X{{ {BosmhCt針8\W xO}g^}⣟yy ?\ݜǃgœWY?s?꣓4[ԹN+Wco|_>hde)c[cb1]Z")N˻UqF+|8D@VN8XfO`:T\%|gZ巑F;C}[-h.5JsS5=E$VLtII;HUb'!2gq"ʒ0MZЋ<"&&iVLJ'P"ok!^b"`A#Bl5:t*=JV]ݞœ+O3_ok'RHqv `Rx=DHjoͨOHʈk5_ e%Be:u //|ԉe+ `%;t -~#< Lo)kf14dbF8:A90gy LB |"!Wː!d1cRI#OQm!1(cB+ d8Io1 >.LuR]Aޫ$r:<"A}JjO힦5 Keu@D\Z1IL#nzt~KC|BY=KPՉZYXNcpϩ/v4u?HjG'VpAJ\ > FЕ P-5͑+zRÀB2$il#gD;"` GFR9C&͂_R.X9I:Yo><$Gh0JK N~1j\ӫ5.q5.q/8xi8W0.K?%*zKf^j8+*{Cf̦N`E`,NdR Élv(ZشÉlvx6Nᢺ'Y<ĉlXIR-*ߏ7lvxSÉlvJ)6;b~rv8ih18O,;f"v80ĉlhм%NdEW%ovhD.qD Vf%NdEUo,qEolV7[U3zS[ ̆)NmLq,9!Ⴐiܲ1U:;fωqtE;\",ivx?7fj f`mp #3l(>;Mp" .fw/8f$ NNY=,p"Kw/ﰽ{9Mdylwoͬo"+Q MdH o =:~lRxf\o"$D6[|NjfݷD6{̱lHd&C\lD6 |ԃ,lf9'-v[x |b-pCގi7[(gmvl6!oGi4 x;ZH)nm -n[)7m*odA9g9U= nXOugU@q~~䓿SEч㨹bʈwp=aEc/0RU5Lɼ(gܑT(? ##bN&sIQTʼ[)wIj8hNWBbZJTb*W0FQ:1;& 5Y:,(ibB &g"ͮ:!IOhDd<+%bcwd QD $4e09z:} ?d}Uj&K!/E9Ye34KR쿖 $ 6z1'NsJf4q(?JcQ$a ò$Uf1|pY\4҄QՐ 'T!CN3ϕ5tPȺrzD૮ꚥ.7WjM"(2 ,b)E ҟY2j*+.*BTe [_ISk :O ƫ Q%E5=EϘɩڝev 2P%)<ǕZM{9~}|~|;Eى}T0$șcKU{r#6\]8sC2k(3'D+2$6!<_yxFu( i'&Ƴs3^p 5Ҏ3╜/ڼu4g$c$=Oi9ЇcOWeD H^;*~R!vpdcLzOoy@ъ9ޗ 0D::{y#,;j$%.̪P?#A #C :OBTfvhH4CF:㠒en[ͤP"{yMZ5'@;ԾK~*?(QM 4d$>*pMjPHZ뵩U5I@ DTM9o$7é>Kǡh"sD4OS9ꀙHҘȐk4"TMb"ta%FEM`5!GH, GUEm Ě:7ҟ-t5rX+\$yYш9p"d"E$ETMq"&uDs"Q@| 8;'hGc^KB7)WfX;eԣ 9vT@֝l3GU痘Ip$t ݙ¤IT) rBAwJ^ڝE8:_ :NqQE4tq8&w/Aǡ|6LDD4$UD9> UUDM:U5yC3V eA$) {|DPO怔2L5{O ɉ.'GϦ H暀9Yn[A:SmGgdT|/*hu7*HR_q7HfY[G쇡d^]Z\:JwN0_&H@'0x@L}z71h!h)0T$2CB%4׆rT1A sq%5Ad#"Ix_`D2s&X6EFb`K"U @{CVn27>X;<ȵEx's1XU撬T]>i$#2GAJ,eF̭$5Fc1$i=HE!}a^ Sewn~M-Bb[EK ) wKv鄕dQ!${C.ZJHt*GtrdF4e~$he>NA|@5|9&)1r%,X%êˡVrHZ\u9EM QU"ZY#p zb&0vť;CYlPCY G!g`1$1G^|2P$JDoOң ɲVי- )T׵C A$ DPY;ZJoBVY82jȢl"\&YGJ#Ő8[(aam+6*F.X '-(~oWDIȩDӔ%{HhVѪa  (tL++r.7Z]$[itANW+N]xX$6802e3}Сӷz u9i%l' }g{FD)rc_q:W I$k]o!֡$rG]DN{]Dde;t,W3ֲؠ7<'#UGo BqxIݼˋN<[sK75UѬ$>GmGe..^?U_aUӦ"^$rZ`vع^R+ܱ8f(d k'L˯bjL9Sz0gv:c$~4LB i2/iD=;sAdP̓ c!=.Œks2~G)Bbǀ4Y6*ɴk=Fa|Ѳ#Gi?Ķ9Պser Kٔ a%qI5+8Y{(;h\E7&GC&IvvlLԀ: )pK_ t܇7tP92y#23kd@}Ǩ:Ӫ$LJ*9Tٗ|_sj@";l 9C$KZsQ<{HeƔD̮RcТ3s҉bnudOh>\Dr:Y&B$9JY9 $!VJ켔9A=c-9ϳ2ZkB2i@T봟%dV+lїSD#6ȖsBb)\NQa $+I4ը}j_ UJ}%Qk2ԭߡPɒSт6CF؜?Zg :y Pj3sbC[ͥZJ/tDIUMTm !Q4{]+饑TE6*cз7KF®LLc:Tŕ۪ےᣩp2bZ/94 ܈@㖰^ v{3^m UM"иb% V:YL-şQ 4ིN4ִ2eqʊH8h;fyͪ2e5(-׻G 9иGȝ&RZrV~-4GOƭ4*4nZ\Oh~n/i̸ef^=;:GB/\-fjhCD"WZM(['9Z., 9f1I 6h,.YdS<9)wؠq%#WfNf$wh\ɿ,/Y7߰M `f+h\и2ϱ4kƕyʠ[#kIvh$mN4L14L(u+W) +s}h\M b+h\ƕd|Rɇٔ#Bvи15BW%Vf-Ǖ(,,Rи=[$iJd{arfKZӦ@D2|tb+(cZs,;,h ]l_yvmizQUsQJ[DGFyuZ7 LJ]?Fin=-3!Wbptն ]wQ }(J^80IMW}5B%mYK]BX-8ʘ=*sC/̈=: :giHRڌa ŁeoaG]! ԼKo'2VzsBZjv?[;ؘ&s ^3Ujr-Ӻ[M+-z4$2#;u")H>uVbYU$bjV1Uj*2U-cMRTy[-(HVeҪ" \Wwj)J~9֪VX\;v{ݵ~{纲[E?f:6KkLGղ{B?YIk^ \ᷥj(qϥ[`i("Yf;n\8)%Ϲn\R+ x]0I+;S8YG,9;Wb%ykv\WoΔnշZw1_%P%#9pe">VASii"xqK(֯1cCFA+4|<ުqQmd| 9 R$i%`ԃU'YUkz9o7 K !e{f=hV=D4!k@Jf>yH?G:q@^,NQZVC-+MEJ%0JV\LWdSPy0U^SeLlC-+u/@#XQhz,Rt]+E%Z=)u}/`Yfy,عKf=_Ċ8#s@I\^LT:YVl`Yb+] H뺙HA12QQeiV;S(Ya{[UrVRYY"fSYT"Xʡ |9݆ϰp;߰a9+AmC2fؗddN=p-D}Mjr[ .ge)k ,g\4lW`~p'Wg+,ge^3(1n*F,g%wvۡq#6g>ܛD,g2c)VnK2#}{J,BtZ-r\]8[ܩK?g.f'd6HF1%gLK2י$بxxL ".0 B29;]ɯOFݗ8X8(x`$H,g5wQ]Il6WplweRՇ_O8.'Ӊ׈to1wG52#j2B X/ N A֞xgVv0P Y2gάD~6[QYNX%jI.`*^Yq@?~"^0РUϞ$`ȉ%: n@-"9YY' FdWEI^Jj%x1N :葯O6d$wWQ*߼8]ҥR)1(ִ,\^M^mJHphBB9`!4~0*#@Rc6LjXa#!V9.%53)Vn"b?$'">SMi+KQ:L^*v8A{aGd,~k #hGـ)+Q/!OwX!Y 9]5@e8 ;ܳ8^bboXwDC|VL$H7ȌRaV*ZEFhˌVZݢEh+߲]Jg=&0.S"B잓EhPH67c 2 O2#`ɌжFh[^ƊcE+lrZG$er:/1H R8 .!8o28^NDd_ַ]9TIFः,/9(xrsi9ђɩH(yQ4NqN95"'s ߳(bEZ O0ٱpUUpx9Hprzs!g359UGnYNT2)X,TxYse9YŷE9Ơv4F:9刳&^4MN$l}7Xhk%հE|;p)JWIA'gGHz9j3rN$c9Qd:},sMVH82>c[ٜ2O Y,NNȎ7n~#kx̱6YW#OU$7dxStI"DSt;M$ˉjY<@U[NVWyL|f=]lj7I䜂rZ7xIZb\ H{Y:ezƏlqkc}.k/)X^rw&X,cyYQ((M9 rTT=U=ejpPn?X2nE&aS8H5"eMְpybAD>UҕI"Zue,/'Ef9>vyruBɋHڥd Ge=0jwο+]_hRԃkLNBÂͽrOLMW8Y<#(̄ZFNb-Yuʂ=mS$im~ǒmqÆN'˾.fmLR1q.fӼ! wǂINU{PɒY1ˇo{J3'dkXB79 2]|N[V/z,T) dd0xVJ՚O;ٟUxE$-Pdp`,RZY%K3K7jضJ- Ұ:#I=KA>E|˒,H\EZxճhADw|L9˳&Wv\^A$čBW0KTsE 'ő-}!`UN#SHqH"E+K`^,H2+&,*ʽhG)&f.RYH6+{vB2*GU$MaajYfUl[e)KQɵص䬆U+gNyg8%74{&ZBd3i<*AC,vbr2=-YȷeF9MÀVHғWt,RP XZxPCHPf*pD=<-+zi(H ( B* $Dh[A``w9:gC, ;>rJ ezV }'ԫGg=)D*YRN9 rhE!y&B -#ZypO'k"rnMdJ^]|%HcQ@+OE/,߁!h#!w|H$2ˁ㗳VRDžx8d=c3dz߅Tx*E\'㏳ INhAii S|JNJxm<;D 4iI}B6C$lbpH( ]k ȧc![Q9Ze:M %5Sq*Nz/&&WT@8Ngkn[[H`W֐ EPIzpp~RO e'@!S} N=1耊eŹ3X rd#H!@| $ɮ\rw4b;Lu1qFmH,U]#FD1a $WV2'9 fiF7zsNؽydG,HPSϔz5-0 !"d'xu)`'ΎM"4@NMR&B* x?8%$o!ՔYH^BʬD}}0 [rTRv+*Y0d8̃礧A@RC^Y@(Hz7ڌ '@RV=L%aRX`0"U{ӇEq%Wܔy$Kt & MQ\G06K *k\Ңfo\ 8UNc٢!k+ EzmFzv@N(a|b5H2 (C%a}+S"Isi;U& m)+„UD KuD, O+ȯ} HSH66 `Nr&KOYfwS:6\~2{o~qtj1'/֘Өz,WCX?AY'|%rtNϲّ_vxQMJT3%y TDZ U+~c'bUպ`_1i1Mq)g)Nd3KJf'eMrf7ə1^pJƋq.5:sfK$xkf׋3 lƸIz[\oWlә╻o:SegL'28~oVZ4ĉl$lf+X`3w,ܥ-!o]QiW99ۛo"b V3fw[-ke=VRXw;kް3m [E[6Md3-o-(D6[,"0 lX}ۧ7&?8og*G9֣os{rبoomćg˝?\'{#hߒ .C;_-OOgO>\`E?w[xˇ~]?qg[BY㾁XqX?gLo>k׾;͆e>u'$]>|*C/S ՛c(B|K/v mq̏!~om\?'o.zNjC37iWLh_{S;1k}m6i>;ݏ_}w{?o1??Vm_2w?]&少1|Hw7Cᝋ߻HxT7'eߤ:Z^W|G^_+8_2q7{|7>[?n@9 O`ΚsdoG  x]y}GMqr?;y#;hRgG~CT+JCqLW86jlӨOc4Eo/m" /~N{}ɸi4eڞ?NrV4!i~泏^~'~iܶ˜;}}Ҷ slyxxO w<ڗ. ~G`{ޛ9{^/-{otͺs mCQ< /~WHHwHiZg׷zŶO83qrXA[?F3_/{|>B{~⯽&c =&~ 6h6߹bk覥V/}zx [x7Ӱ2).lTE a\t؏-6焐sCo c@;?gS*i~}3gaF?odxMi~4l^t '}ظjiTef~h73j~rӧhnwy˪1:MM‡zfg{;v*٧7ڦ()>iygYR-nN1=}_/=K fN. /+/q'~Z|)+~ǟ{C2clp}'܅}cO<_sҮ譫BV9F@/?O%q1~ϡEwUOtsq=)AI&NT*E-n{5ҳ^򒿡Vc;kӜuN92~rN_=>Is&yS=;{ouyY޾_}믿+sB^]yGlaOЙH{͉8W_<)~|?̮Oalk󻛼?0_Vᄉ'L]WeWub+},!a[?b-6{?iڬ{rj_ӑ={uh{F̉^g~?&~i}^fssJ=_*yO gЋf=x}d{3|~bC80$O'ߦ VO7}:5b?8RG uoEd-;ZӦ6uRPӼ+.z_^o>e͞\tNJ|y^cɏ)߿ތmI{__\Ag.}iݾGO(+|h3~ oT|jcjZaCy//m}ϱ{|gGbx{˟z>I86c ӴYp4? ς31 9[/cO Sendstream endobj 737 0 obj 17898 endobj 751 0 obj <> endobj 753 0 obj <> stream xt}cWR ef83~EVcnծVۆ(R%֮N#RR MnҺHz>hNʲ\;a}B ι>Ϝs3무rBH̜9:ﹾw̓?7ソv?8?v݃ns<>8 qC=lr>8AЕ;nrpz~arxù0|<=8u <;?؏?wNecc+[[bNvAWn96v mS}9=8O;we_ ~s//p8}tv\ ]otS^+onƝix8~-Wne{l>>u톽 ^n7_Wߖ=_~{8 }p(ƟOa]bmy}]6}~A7l/od5mѷ^ޤ]<̡wzS>ù*u>p_rW? ݱ.cy=ˋGixzK9t!ЗC92_åZac7RaԍCynN]yA5zv?~>Cx^nch_ޢrp{OSױIbSʛōw;L\x/>˅<_K2S EԟPN}?!qԌab↩945qĔap?\pgy!gmovx7|8],a?Owe?'/{uw-N;}Qw> #Og^.cxs,a2ܔK_'|O~>O}'_^yMΆK0>Oy"ˁQ_71_=foou2o|+e>r#CX=̃ ;滵;7\"6ipWFy w]pCVW+vP[xm%;So>Wa_<$\<\SSw%e q5<~aWk@CҦ˱p!}SXX%@zXwy?C }Nv>=.!c pan9uޔUr5)1s!1 rQߏsWkxʏr."v>^zJzzcrMrz -H!-]4a]D1ʵ}ͱf]vv8ʫ94-z[\<֐(CﶻhGu} C}^O}}1lW~*GB_y[>\k[ecj<>+9<>[o9FokSᰬ7\yvժu\^ƮEI]o<]Wny<"O}<]|ٺ۝j ;c c+@K֣bBjʡ~M|fQ}[B@Q˵H(xMql0.'h9?_A;[zƀ8_>m:.LJT?ENT2QcL-UqW2Q[&jqE!7B&K&Wnm*C9B奩7n&yp5^ȹB8tv!q îajӦajΧqb↉dMXWx.=(y))pyOzns~ݝ辌+Kcz.\X;W\-UB78xy2i!&oZ|ybغsϓ'?Ǧw7\}B;=AyD喉: -u*oų>5~>cq]x«2lxET2M1|ؗ0 :7?^F SS$^0qBSq*>R01,iH059\94?wƹa{7*cvqvB\*Xm2 ߞt34J֟oi~#A:ΑRݶ鈻oR)a.뛔dL^|ulcrpP/O<>:y忞[dGsT> @Wg + }*24|lS}o> s}ڗ㻹O T>+t}uOG>AܧC9t(]{݊}:WSO+tnS_>]{@69ZsC  ӏs tڵhd뎆jm +#Z{t*[{+{TY&\w4Lubܣf k6wT[{nr+xh0qټӹGͶGپGr5h[ 6nѰFb,ahb,`1֯W+c튱tXpXb,[1VV5+ƒcFc\Xb,V1֪KU*B5v*2cHXb,Q1V 0ڧS)Fbm4Xb$L!֥a,K!VR5)FbE XXb$F!֢IQ(FBb +# HB@1OgO'# BOMOg O'H i4AAڠ @^ Pv(HC% i4Fy4GAڣ R)HM (i,i4LAZ MS)Hu} @Yb4QA֨TU*F26;lVe+Fdኑru,FC6,FSd-јYb4gAֳ Zm5Yb4jAVZu-FdedmѸYb4omomjmhچѲ aF6fm0ai EF6l0Za4fhV)FK6l0abhĆц [l 0گa4_hx Fӵ/0a[Eׄ cD6keF5j Za,V,k h4 sLq^+5Ejm0APXѧa,Oh8 m4i JKX* cQDt׷W&* Y .iLA mS)Hy BiQA Tfj T*HK ViVA @ -V&+H ji[y\ڱ H=XXv,B%HS- h͂,g1ڳ Zm IG.^1Z Zt* έ +].Z hwxx1 k^Fo#lo0Za4xh [ FK0ڹa4sh F7n|9n[6m0ڶa4mhنѰ/oЮ YF6Fmm0|)m E( v1HgyA &Ax^ c1XwJk ^h01:S P4R,O)ff3f1Z [Mqw tY;ctX4<ݵF>1:O jX\ ybt"*:g4:! hJat5a4hEш F:t 0x>zF9s-0alF96sM0Za$CalЊ5"h*iah&WZSw{9r?9q :\q 0bqx0]Ʋ8WŝsЛ8%q-06DWNo4h YãmpK Zal8Hs DgE(W 8p ڿ -@ m`F0H+ iAA a0H{A "i&iA bbHcV&ϵ:ǥׅƬ~y Ui!돻i.YeV2H3dPY)c4A@ZecZMf53F9cgv3FdYxkg3_Ty?c4AVИ hr^6[XGc4AVM㱽8t5a4hEш F:t 0x>zF9s-0alF96sIyuEFS\W78#LcVyKU1-V9*L+9Frm0AX >cyD a,q ȋs@8Vq5At8/E^ ^a,z0w60#i id%B8Z<5*8Ep%ocK Za,hAZM ht"gNdH93'dNc͜v4_;v4AVi,ICN$2:HIn%R:t1^j:t"4+:uODiVEuj4ՉӬBihm[׉h^zq]uM0Za4hWѬUF:6u5ahPў9Fk:tmj,'ql{ E}\p 0/f1n~:рF9/d^Vt{h:WF9vs Za,h3yfHs0AX,Vcdm)WD;9er[ƌ[~a,2f}#roq 8qm0Al3}n"f"c Hۜri,i4AZ Mc1Hu <} @i!4A dV2H2yq*> Zh{F5m$j/0Qc[ީ>`i14A̓F3H n ri:1 g36kAc4AhU4F3dYᵤ1 ki4heM5A jʢ kj-nNiV1֠exZ1-1@ۨ0x[ѴeF:vu0Za4hSWIF:u0ahLYu gڐ7f a.u9&t5^a4wh=xFӹ/0aX6jcD9%s]QT{9r0AX*a_¼YX&J2Ck#Dfe a,hYaX2:.cYd}AوbVq bv1He 4i4AZ @ d2H HI%/2h5L3H'C#ǥ׵Ϡo>wK er f3H ji6y8A kg3 ~h@Z[pMh54F#dьYGc4-i4Z1 ZYpi4F+o$5ȚQ ZU`ju5FcOk5f}\5FzV^4y^4A k5Hy Ҽi^i^4A k,bVkϵ.ѓ!(hPcRzFiwK k5C/v;3 k5Hy Ҽi^i^4Ak5FdyѼ6 k5y h^Zpk5F2 k5he^Wk5F* k5hu^ kf k0i^i^4A k5Hy Ҽy Ҽi^4A׋-t*.:=·JԘ/T'Aky Ҽ4v k5Hy Ҽi^4Aׁ0 k5y Ƭk5f7L1 ko7LWk5f]^-1 k5hu^ kf ko͵׉,A׉,Y^'Ndy:u"D D׉$unaSىVujƾ[m";ʼƷ&KoىNmH"D׉VujD D׉,Y^'Ndy:5H:u"Di,I^N$yfe^-X^'NcyH:uubr[ NcyH:ʼN/y:uy^:u"4:uDi,k6мN$yfu^i45{H:5Hy Ҽi^4A ku k5h}^Ek*{k|c"/Nd'jLdw;D krlH"ku k5Hy Ҽi^4Aׁy= ku k5Hy Ҽi^4A @׋-t*.:=: jLdwD@k:|kHNy Ҽk5Hy Ҽy Ҽi^4A k5H:5Hy h^,1N2]'ѼyѼY^c4Aטyh^Ҽh^V5\dyѼk5F^V5XdyѼY^c5[X^E9Y^c49{ Ҽy Ҽi^4A k5Hy-5[1ڼ7&K٠D~yؠy׼i^D@ k5H:5Hy Ҽi^4A @ k5y Y^c4i^c4Ak6:5F:5FЮD0 k딮h^,Ѽs]U"k5Ft;Hc:5hu^5y=ku k5Hy Ҽi^4A [4[{uؓ D@kߘ/NdN}Hy Zhk5Hy Ҽy Ҽi^4A k5H:5Hy H^_;t"y h^Ҽh^,11h^,1ׁrl5FdyYxk5򺚵yh^,1נy 0׋tf [)ѼY^c49{ Ҽy Ҽi^4A k5H>cyּk|c"N6נyy Ҽk5Hy Ҽi^i^4A k5Hyy ҼkOd,1 ku k5v^_|"dyѼY^cѷu"y h^+)_'h^+*5FdyZ"Ry -,1 kp5gAׁ^ i^4y^4A k5 嘡@kr$l5Fdyik5Fd帼46y נy k5hu^5:5y h^jsyy Ҽi^4A-5Z6÷&KD@u"2l5hm^5Aׁ hh4hh4,1sEigF3Ȣ\Ӻ4FAfE3FdьhY4WӈfE3FdьhY4c4Aac aкFk4A ]Z 2^C!C! i4A ap a0HC! {{tj! ! i4Aw)bN4y'z-A6=Yc4A @ a0FCd!Yc4ic4A a0FCd!YWa0FCd!Yc4AaS|G;_[iz$; ?/oḹo SK|GwPOz_xKO7>3wj%!{>`?í9>by5/੯n˝oǛӻnwW+'e]>q_`1m|hwO}͟k/7~]]^In=+Ɵ~7ޱ>?=z[; ~߯=_qq2˻?8k?y^˯<+/sdR?({xt]w6N?poi~>.lom?'s_7*+O_=?gte n=r_|L߲`~=߹I'8ɷ|=a_{Ow+:g(w7KӝxQ}/g~eS& Iկm_e.~oW+V_qŇRǶ.ti>`{?OΛo`}ޖ-]ƚ{z}Y/ޕ~v维U37םFg4ݙ]O}nˉ-.Wٳx'󥇿ןp\'aA;ēneH́+A;yY} Yz'_}^ݲ_~%v]n$W>X٭{m\vkOD /^-GG^Ǯ\ï}+c9W?P,?#Ivo?'{y=>Z0K|.gr0kxQ_[ү%*2S{1Nqys7?]f瀼9Pw7ޔ'G'u+~d6Ƿr9` )r~6_dhYt'Ŭ'_Owc_;b/g˩k?pBnxyX)Ḱ!g2 1Su s uzLZ^~<г&p}q_fr+w?zWz/kZ=C3fg~z6 r)Jtuw>xuIuR&t[43匨/DǶ-t9_UO~3ՔqL|_)/ao<7mK,s5.sVZm'cF_ƴ{qvq91yBOLw(s^yE~6nxM1-*o W%@wp]c_,3Ox}9Í'؞"P.JT~vm7s^HzCNqp c\~I^{ů.pX{+Fos{n|s\[GalY^2<ݾY3o~|cwNo/͍_}7Kn%NpyEnLo0hvowk;rז2#: 0붫/S79\,}Yg9W[J>v76R6bv,W|r~tn2ruyg=d7YGC6\13?ͱ?v:6^>sCS<;5~'I薗.E$ݟbg/3\<8Z7~|iÍfd;Z4^>DK?og{!fq 4X^N)[8rVq}DGnO5FvarI~}q޸q7ǧ_o~}G6~f=}>,o}{/W_{qoL}GXɅaVgfoq/Ec^c P]`j؝ OV}X;TO1yV(|%cOlSux̊W~םU_<"]{w#p="9O[axۯ0)o ݽ}Gk+ڡuy^O[=zt|LޤÚ265)Mϸʫ=>KyzW+UOOx pZ\~NN)~C8+};x?weēKo9U[m}{/6+oxWͷ鏼9]}vb: '7|)\2z)h;0ՅL"Ի~v%׏|=Ǎ{m9柟SWg4'\|wOgưt|^Òzrn8aP`v4GV=|kb/sʱYi +or´|h^uH9;OW>rtg/zxn/~+lo/|dz~~H8F ODž Rwklu_=wuZ'rKex//?_7/&3[]gߕ}KIj3ߍ+' oo9[du9/98wF=g_ߝ`_s#?6RqHR2s|ky]k˫0{]_Na{8։јڎxg{?aendstream endobj 754 0 obj 25310 endobj 769 0 obj <> endobj 771 0 obj <> stream x\}YDTsSf\2wGNffgPt?3 ʖ4ԚX(_aL,uْZHѥhlH &X19=޹,s<=y1;98'40psJ87t ^F;鑎psrpoq`9ah,.m0b^cgzO`'glj"D?VQHP"Rr:醖VUxsfhءbBհ\JXG3tQti~(aa$haH(4~7HQM1ꡠUp/d`K 0r X-: R*CˀSx Z(9 Acx?$]HF^Kr bBx FK{ M@Xqy Ւ?GAaPgaIH`*)l$RtHQ 2-|QQ1L9<):K@ʠ:0D 7t!\ŁsD0eXIO hU "A ;ge )@01Iu@RTpI438ag x_ 3x4?* Qtv.OyvN@=!E(<욕6V7Q:*db d\ `̼,)ฉ,G@Llxapr<0U,AoVAAD/7@1 #SdpR XIy3; 6W~LŮHVi(KkHȄJb*ah =\q>[ur \6s{`m} `TYo|$[0M1.5Kqsmc 'Rk,WxOGy0'j(;Dy<y \;s4HdB͓TgfEV`G j :⏬EMCmP!( UvT]**]qOAv(XFk'XBD_9uuacv睷 \{x|G"\ V YR1Vu3Vyٹ(e؁D4u乥'&KʆV,mu+V"tRGʩxfxlP>'0< >b;Q)tD<"RcHL[KF̣Sad A;YQ$?#K4bdi>"2v2%:0 AKA Т1V:F=x1  e`c:%ѳ%S"#c̙$?+? fdd(Fƞ;hFrd,co9IkMg|Zp݅./b4.O"֠+Ρ#.i4uqF >gX쇂YlP/, Qbk:2,v"E CBVp16>F!a\lG6aWq -蕭`J%jlœOڻTLSb }96rʰ.D*T;vKɃʄW8y1CU2v3ͼYԂ]1o]3ػbYb%B'Ezd{i5x`YB6kdm2mpPHAx ԞPZrLJ&8IH!,&oJ0Kd)0S48 3 V4$o2314Qfv2(xIx(xIz)*!NIs 9^.yEF8O:1s OlH'NP%2102H18% L1 u*Ω':e8G:Rёp֬]'4V$M: u괖&N:#ys9/cN΄s^N8Ś18%18%ɱ@'[:A1 x-' Lj4Ch4C9qKY8/% 8Q3E牬ddpK@xgG\\B"E"N;M ; pK:^8PqK9;^0ce ؤPd}^92t>Ae2CTIn-yalfڼuyi?rh_8V!ϟ! WX~hKޖH\ GX^L'ۙ *62"aТb-lB}u%n\Pkؓl}4ՏKRc"} @X>?p/f_Kw6#.T%3dZa=GVE׸$|,qp=S*["ܮ ܵ+7&Rf=];pz]גtP,E~#GiGlA|C<9eA`JEì%칵~Hw:FKN$eRުTf;IߕGMl1OqԛYd6v/rݶQwckldkG[M!L}u|~[,>jst֧5HEZVW& p"ս{nXRh8|ç~-պ=kܦ{WָVCXQ#XWOq9JނڸBZIm]ݟ|WLsH~%I~Bf/B_:mNo}|pN]ϘTx0筱r*F1A|N.rI⇌r{q "_}u½o ٛ408/ FL?22D~'l?Gχ^*,炲7t6vzG~jN\C'x%ϵK_U- ݕ'7lumոB>p&6}OTwYN*z[mڵeMW}nb~ [?## )PO.Ps8GIxzB_7*[HeK3bs_ύ'_"62F=1ws;3xߩy@\¿[q5s>V_7Wtb,vL 0K3wQe+7?pGTβ5 ^'1Ve kD+AdtЈz'7԰UՕ*,UfQVE(*xVLS'Zڜސ35hV7'NG W{WWlWvŊ)i&u국sF癍]h=5дb PvVQ岪Ǚro*ҍܔiGnr6 Ym3>iC&e_*62H7+5dJMuRi@WHشxgjvq(çy(jis|;Y,Bݡ(oB Wpjt3W=`uO=M&#mOM67t{MLPkP/?B]p{!ofME)׭<=I'OUi`Oό*S3 ?i=_emQc_?zEӅIpOjf\I|u4d1X[p6g[FAjHվ8 )e4_C9XLU-:b 6R$NRb}nzwiN7x145L...տMZ)'uS޷_~q_|SX'eu槟}SKOi`275_yrMW=Z׫~(I}3m- ڨz}G5Pю"bSCc{TE 5d{-#ײv&t-kӯe;m]˞H_^c@bTew11Gm}ti}eC7_HB^v[X9]N=p<jGĞISL&^j{%=Qw3vϭtG.]A|M<ؤbkbN_.8._ZZ@S -g`O4= ,ҫ:EXu?/h@594|N]q9j7/mw%[&e̙k!ޱ ]B~Nյ^9+k")QYFHW ;^ߡ] ;D{ɾC.K\Z1WtGt/IcLߦhRg^k^TZ7N60}\Jm%Ar#cTf;qv$uKr@]_%}i7[R{}wvDU9yzw#_zT2R;ϯf=ˡGT%&<&9c2=@U,+WKHkalC؎"?ŻIo=ff Yݮ'n k7~zUs5~ҭ.;wxzse#Y1R;sN0U)f MIrc3F]XEk]8G/{f-,Ng 6zX\uꋫzĵ{+}8 n&ӍַIW7Gu#_]vQѓܵxzv%[-?_*BEכ^)'g z{!)T_3tUbeV*׎џ|,go^ ɿW~sa|;7.j3M屃@eO6F~M_cݴvkVA OGO޿ʿZJ&$!5?}h5WKdeW\wm^ʾ/LψEeѾIb*K\zooKP^PLh]<7̣ƻlk`JftQ]? D> endobj 789 0 obj <> stream xmouJF@EbcͿg't6oyu|2:q8f0ZŊk|@HdjBRG 񩔄D&c$Zϳ;w6UB9su/kޮ­M}>!|o՘Ul>Z Q Xd @ߏL]W-WCP$#O.(VծB<ʐtUNYUΊYOJ"jW9ST0 9"4-u5IWkv Yujr5ꅮz+_;1~Q;fK=gī$MqtAW 9JlEtv.<uХ= tUrtEH*[Q'] U;+zN 9hlEt__e2'Vr @U$Gd+ |ϩ[%jUrD U5k9Gɫ]F?,-D*[u4 bhaW]:”,K.AvA6&-D!)Ԏ&uMG=iMYϸP44.T ]{<~\*9ʫlAuTEpTTEI%GMu-.DrֵQW|M]U?U~rYW*iu5Y׸AW2}j*I[Eقb9֟QW\t uU87퉂Ӧ=lAF;R"[PG]CF5C/H&%(쳮$[3fQBԫtuRJYGck{*&}H(Ů2])$mU$e q*&m*B; QR(Nm[@Zu碫+uԅ%ޢJGMh\]IW~qC~DMU:WEʸ殒(UwQ"m]$e oѕTrUWق:WV+䨫u/tkt ]]EWUQXe ko{"j.k70awVs|@ D qqd":Ȼtc:Dž rDeEW9ʫlAua=h*hbz:;tVڑd"P#6%qTAXD fc0/zl01JJZ”LAGd0kEقb9SW/tԕVق:ʘg*ƀhP_YEقb90UZb6 |P41,D "/*[PG]]EUQS_Ds3.NEܣ4UV]2_P# vm8ڵa5"  " ߰(I Z"Z0=*D;ZʔLA#m H%P gqN̪gEI0{1M | 0C)J0-"gד\E`z ?ڬ#jcㄢlAQ\//:誫lAuuT QBD;SMhbQf "ư6wX}5e J\nW l&# rD+^"$QwGd+ jGEUsyRQE֩#B$m+~x x¨hh!bz ])Y ~tԠWyJĪrJ@EbV=\g=BnԶlf!׋$9  rDEAW\e++, }+nBTe {n-DG]׬V̢0SO_ c?ӹD\EbV=\EZ%>Ì#B% BKAE14Θ`(VeY!!'t¨hh!b̸ r{qb(VU?] VAӵ y iQ[ah!b*8aLQ_W̮{o Lp ~тA!`=f$;{@%e=:3*8ɎXKLjh1d=Rg|*/@;l< u҂X-"{A (# rDuEW䠫Ρt2Xj@%urƎJ}AU^`Y{:3*OPL,$.C-Z(MUmMe-UϾiAV4< يB9ߦAW^e+ꠋk󃮱VԪk6 9ϑ#FE+F 2rS2bY يB9*Nh3ۃVԪK΍ihX$}U ߢ]cUW7vԧwz<ePϴƳ}; [Q(Ծjо;uU.C$jG9ORD00uG{*l^'y([P,ԾԹzIB;=¢ŋA{,r@%Kl@sգ?hbXB*a*jZTuUAzc'd޶ud+ ګmU5^jZ+ä|lV߽p,5Uj%ke_y?pL'L~Pdۆ[G]տ}J^]^~_w5iJSy8c )UEvym*X'd+ /$n_QъBo^t}~ﯶRX)WzdaTel?ס\rw:6]3>A}?dO}("+d&!+D TyfbG5(& :_hvXt1}?,pzu`Q""j+.! tGZ\By. JcI]Bs:I|*&pL7G`24gN ^롸 cy%a ]ŷڠİ s)3`of.wO|W🀴FWi#ȼG7š T~}g`  k5j)5LBۨA]xs!.wǠv սJ\pV۝~Ylx{nCz1Csc1 ca0.i-Ա'2XܕͼsB=fLT-z, &2OuY; *S`Ïy 2jkxxODY"b$K"ż^FTTEp">]ЁK\iWAsA'$@B woHDt$HMqc̔³^?![D"JT>t6;qK}C^8cfĜ7cRol1ݏ,6ۇ}Yrǣg w;tҟ{yȓwh*v>&&tn   "-@>jaON/BFph ^r8<^۹c>ڼX7\ ]q1%DetfbFHq'G[c王RKg .tJjp9RDI\cW0O1]8YrJڗMhѝ !>*1s!|rAŪ`зx'v(>AQVJt2 Q读b $ 3.6NHanLU@B/, HVRUV a\7_s QI"5 ( m7X ;eG^C41wLөgČyrG#u:B[mw2F̪1ө%s0w@<D7oE6fOWY@DQlxIdM`Txf|/%@P  9b/%@?&  b_J"+7#|!P lF`QK@{K5E+``FR(3^M[*1~p-|t/ѽM"/I|+uJ[c%:?1*J[mk؝}(S~Jƚ?;-qױ Xm2%ؽ &c !Ac_yn=bwd 4QSF{dܛTGR3GU=aV}YxM[Gn D$F+ojM7"M]3ݟϓP9Q;mZ -S|BW- cO dRxgmVvF%L鈨`yTe'=T[Ļ@Dvڥ5~s A7Yq0'?Yʦ?b2PM-' Vi 0%m'UY$"IPL;SV˵ډiYh+jXKT`/4Woi\%ӥf;21 HsvY@Py2=M`Z A#ތ7r 3}B _HjzDt\rF'JSBbF@óٹJvb(K=`4sctY Fr${u ,Bdw)HX]dĈ+L0[YbAg1bTsl&7顄9'Beh:)w}:fp/0x}V%{,c[YC<w5սM"${CDTdveHi!Ra!3%Nu"H̿D杘\7CddDzq9_YAI#u4Qqf k2 WTzEӅ%)08$G͖P Ϩ)6{ Ʈi<(\ gn 0ihJVޝ8!Q>K,rpXtKhqF9Fɘ|iRIR`;>It${C=oS&}m=H4žke fr憇&dw$$F54204E#ze"m;k ;C L-<.Pv%'38;:$=o4h= t.~2b"y~6ؙ]>NF$  Ĝ3䬴K23K9H$1ijAO!x9H\'aҜ1Г1-JeAB*ubs*A Fca`. zŒ JIv!h.NLΐzD v m;;$'͍7?$A%& skF SAHdF5%.+Ir59tC!gNF"A-8&9UأE.U|%0 2w^F!CU%I|kl Ε6݌ v"e?Y-카FEBL0N̼%j1852I 0sH'r.ȹH$$E"b1:@޿1gVj~iќKa\Ǜc&ݺ*j>kϱ|r}EnmтƝVl:n94wE"AιH@ 1ɆA)̖yc`X2́ u41&{`ϯ%owUF[rWDMv[ ,?䒉y\_ F\PJ[A.YPr3\N߼dsl.Qc6 FI$_ʥNQ3YKј9MJGԻNo315XQՋ>S; CnI 1  BtjcnPK㊬3b:?+qiS'64vz3_p3p>f|9$P5g,SĞ7F K#Ng~P]%/VCj`Ϩ)iuF!vA014cSRDwJQN PX g ^A|Pe;$ "[P|P祱KV]K9Q~QPZ@0DT#U}X|k4@7FtTdvfFEu!*Dā"J#Zf]ϔ{f3ͅPN+ř|xXWwfpEU߼o@|&[("IfU;1Uz^U==R o(h#顈ߐFP$1CvIn3=b4q\ zdALS=Q͊ՃHcIC)`س*~`cՐHsJy 4&Hp"rt n?N%UaShؐش,I:   R ilwCȚZ0RgP֨1W@%fTxa[c\^0uiUyo@*s5E!tĐB4pjjp񯂬^D_CČi1lͦ5IC$i' ;5[FLE]ƮPK6b_hVLo 1 "c_UkefYq>vIɠΦjAxf8xi^u.z$;|eĮBK$qWq`ޒ^tJa9C髾K/qMe I2 $D FJz6I=Lq;# VvF!*%Ucŗ/I$P(6OHW QψCJP=6P9' c?4$(uK6`"Avd1pfd3I7$nĞ,SV# >Sž kɉ)Ќ9מmYU b(b Dq2'쒍ik<Д'Dž5$)V=!Z̢ly'D[)J [av *doX#"\` N-fƭU4)/9i>LoFA H#l*ȶnCʝA\KO1ә?#FWz S8b x o*b>z%DL21mCڠ1*dۢ'Ydo uKr(@O-L[ HKpM.辖bkbP>ڣ#+%kRCX5Kׂwgo% ES3/Œi'#Y~ꕱL따%K\o /K X0YPX&J2,$5@+v6ͿƓ7V$dOQqc)OEЫ^h&F9 x 6t ֱŦLc͢6ob4opʎNi^t.ӛ)ku4u(Fc,x=b+0 a3zՏ^ f]O,RINAMcL.ɺԘ$b*b@댬G[ JIEU2A"cJ1R{$4c1y"d[%nwf)IiC[$:3k#rA]Г",7:ԙxoJ%T =DRduTļ*)0R,E2{J"%ٓ^Òk(wJ-42<5В!Ii f*$H %%P 暤R)[I3IRB$kdA̠ia$y-Cs=ܗ!KkT)i4-\' ( \$W~G"JUk Fݟެ)$ѨW4kj.*Ͷ`FЈzF0MF+_c/Mk-agdx 1ÚXf(=Y3ޓDcL oQSE$Fӫ@RM̴3m,;#37|Pf h=h_;'Ɏ3X9( (%xfVd@W2z5[İK2O*gl]qf|ˣ g B{48^%y 7-0.q%fϭ=GI2bڌ.]B|Ju^Li/A>5o97F{vfChfKðOVS}+@a/PK\˜>wجZۇ߾up-`%*7D`iL̬ u㠤1a7:R^V5,KPla|kæYa-F=kX7$Z ^am`7 -5za`73Pz=,%SOLaXp,Ǫ40yg<+#}>];0{C=sjc ><\*332 s*'9uԻbA4}\1ĈI΍6xX=7xyqa%;-- ŃO?n0Yb8ٵj,l+,v 0MR39mR8 Gb b. guv{]R&_~yʝDh4Uevn~&OfRLB ;׭2 H֮Zf]Pb ӽE^>g4JZ s2ΨZTQ[te7sEW^!b׭1"\qwOҊwOLHi fiK!bzcw ӗBDLhS W.0SX /'lLU.00.z:gBԃtPө,Xե*$/aZ+,)zf3ъYsiv 1YM@UG:6r:񈧱X2T3.ƒ]}zvwzr¬z ݬt-pGJD1a5C Ϯb&lE{*sI/Q# _`Ee)D 1&8a8a,)zqzRfztL=})D k2[Q-(#S4*[P]a;U]U0nNUU_5Qy3jѕQ.JUWXla.ގqUVق:je jՕ/C,E<fhbXf[UO}zFZ` ƫ&^(K!b'N :5Q-(#*΃BQWv(~rDqAW]e ꨫtn~ZuQcR[1#uтA!`f'э0퀀d"Iy^߳jhX0=]`Փт9)~pBLdp,zRz~t>>}}x}qYԥ0Vܵ%lCİ1v<فv-߳g@R>`Rވd^>9o$\Y>ӽw y,?\} zeY~(~[j8rDeOLT~ga-GT%@dK+ Q-(#貦UW^eN]f(jUr@ɦ#k7=ւlAQhlg-B~,* Ԫ(刪y*JK!bxz4U^$;ӂIp48%0M ä"^zWق:2EHYt W':nWt Sy7ԫ~dz83fQBČzg == ==K=LzFzL=oFGncMd+j^6tzKԢ_el(_]m-GTt?Ck9_b꣮VAH.^rqUWي:hk>(VƉlEmQţ+nN⻢ĉlEQ*[Q]; ˨$o [Q[_PS=lExz(FAPDetUxrY]~nx@`BX0!rE\<F98P(^p_"1qPɂy"xo+)M WcU~rJr ' rDuJ+<c0SO_  ]Op]EbV=| #Ѓ6% bёS_gS}^FY`}/d;ڣ9(VUZ:k-U2n͚Y$6܉;s'*2%Ƽ*P(#VC:*lEtu޿=uFVԪF~eu.Q#hJ1xq;״_.N8؍lR: D5Ќ YJN Děp'3*Չ꼣z8U]m-GƁꝽqPe Ӷ&ۼE+= ɹ=@`PAG[1igQъvEjNo֛ԪEQъBpY #e*i~D~FQh' 49׾-<ʮR}Eb^9+ UD &ϸxDdAh "o w%紫øìzp5^A Nh ScRC1( '' SV̢'ߦш/z z )+[/aqu1M EQgAS[e ꠫H*Zm4Tu-߰rl6-lAPt֌@eӘS0ߵlEP@8tj2Ԫ+rȼٹ0$sMGtFm\S35Y"Mo_YGk J;ɣI~S Gx"kLLQQi ^sx$JX.^7&Q5Qi rqm] {U.C"\ĉBgyRV*sYx/5'V76I"g2*=KaPJubXr^\2/\=1,(:rJC)YP5rkל.X0X吹yJԩfֺzkK˵S{k9rev1nxYTH.,3uȎ {UA(pj)sh!xP|>+S7#+%J!Da1GNjGX nƠ $'*NY;ѫ7Pp_n݄nfc&nxqT֌ po=yϝ宩νHX?UN=jt~ҩolAV|fW}P6ԥ~Lg>8+!̏eAfz-HR(Tl<~0Up0u8xT. W@T"UD`6вY7AG:7 M{\)DS%詑q:7f~ DeR-fꊚT}&1 Sj bb"0}PrSjZ>e)sZoX71z,1"^U"<%}BJ1XIghH)TQB]ݍ3:X1 2l0(NY)Q 4$(eYN Ԕzz7P*rƢ5#TXK>im#3#uRМmr-t,1Zc⅄qn(HZ%{d|VDxYj(IF )n-d̂6H"RI>1HL%R4Sdl䏒 ˆހ)z9VDߐ)`#Q )۪<LCZW0x4mYNʤ"Rc67#"[fuG,$ϣ!?ñefc% 3XUͭ d^/*d6/Ӽd@w5ҫXi5"H"=4YXVOyS$Iվq,6hV{ y 'T H9+Y{5.AМ%E|yRc=1y٘g+N&-I|#nf*N&^="G[G6jUVOC2ڴH@LZ1gknI, ~ʤ\$wT-PRIKߵ*I@iɕZk ȋ =%.2iIFLDc#1_m1)ڡDGtLx)50ݔ7;X I!A ⵛ*aȧ;qt(EAn'1ڌa߆n( ("~hPyEX_^M+xx9 ·7َv|,OF'#*fs'y:F>RK ?En枿BL+DD5^Z_K^ňu^;bxWneߘgaC3"b#XB#g(S ( KL>@yy]Cw`J zz'RmTT=fsE3B,qcm9:.C&6 Obvh ͢=S>Ra7!u^󢅤y!\%zWV &m -$*YE6[/:'*m )aA)Nцna7zu1?CJh]@Pd@L6\Y'Pxk`{ 9 gk)$8Az&Ȝx]@El6(3C:9&rxb._DExZLQ4^Y)DῢP#Κ֑kW!R2B2YlFdž¤lcݼ'/ K,}A64B  A &? . yF٪D!JJEFL1ZcAVBT$˨&WdZ iDYSwwQnT2I Y= HNW*ICG$3 Ftߓ 5@ !(aCU`/IzD7A?H:??a*Rma>tsy,K8qZ'+o$Q%D5Fs2 o˴"1°=5:ĄFwFB*d<,(` 1͡K Jp>'y5?ZpG͜7!ԃ)x'| ԱYKaќ7#})-24"$)QTjc"[>$ň/1rЄ:FL7 IҪ{Y<s5%D!K泌t5 ]p$)K#LSlo!%?-p#!.+90' <Rt)2Neh[.c,(tVU6GQQs Q%$D#QJ;!.h$xē8s*W6yHU˜ߍ*<}0+vxe\EXUN}xPI4^s P7 %h; c3o%DSnCQ8LyzN'G17}Wuv--U /%r lr g)l1Vt 15EZ\ѣ:zBkJM<7h!*1 .\u**B98dוּR/rĻI)!cؽ'As&*Rt QU;ۯqUk*Qe,(cT- =HijU=s*jRXnN4}aH2#-..jHYȷHϫ9nL˜ 99D:l&jfr1b !%dyScdƼ+4,fTRƌ,}\=$87mg$nWttiGBE*QǺ_l. y3 *(D޺XśY297{9.ʥDQzpJW$T#Uz{6MJ%ghz`\s>/?;94FOE #\"r]R $C]P&Ju2$w sw!w+:'w4rwa/ {k$mF$:(^o_5I9 -$x-M3]cnHP HNݕ)3rwD'eIp\EEv<|]U ݑ&Sf.R+?ޕ! Q'O, f1s;&vWɨh@'!v8;fЀjU}I1.'wǰaDrw9x;a@N )u癬"I&Umcԭw+@FYąoB1KI|aܘK ALu$JkBDI^ǖn܇s4"B@Ĺ/elm%ԮRJ$mi UfdEe㢘m{ͣmJɒٖFbW)a&q= J6Һd)$iH]ah!HRBh@R]S!߄4VF a~&*_H[J:Z)݀ "z v>dtnCF ocsØ/GyF527,jdncr<1*W7 (^¦+Xi* J"7ںމ8NMAkWp>ORɍIQ1qܘ~dnQM27AM277-,)ٻ Q tSR Tf2z&HgB7KB75jI{ijfh9p>7fl 3MѹٙJsT3>7/OB,ΰ:'A\fe]|n>8msRF%Ni&b\erAN薙?LF:|Bt9[ c|nuWs%'+ dskC#sM%N98[BB $8!!Avctn'?F6F:-Iƌm6Q:Ln$?N趙 ]͝F査 MIC#s6Cݦ0'sœŨN#s{T}8σ='sUrϫFȹЩ}.t*.w*wdN dL$͛qFRBy3+#r)DgY% 1`ےƥҸBHf;y\JTS"K P r< "U> D"7'Fb 0 rs6Ȉ\J+wSiG!߀ƕXLR܌IR\ fAgԹj2"݅ȅ #rN.< ![6K b- @[+ f.d(e0-CZn6E[mGFߊ9[Jemam'\ad2Emz@@$72 Ѭ?n}KG(W$'ަq׻"<b_BS>Z u"%?k0ģ~ޮݤdERo=o~{}oz}Ǟ@I_K dSf}y_‘/װg>:7+/ٗGP7Ǟ|G}sTü󵏢29 ?οߌ@u̳ooai_[m@̯7<%C!xohho6ox+?T;͏~T {O|;=>Qi+ׇ{C}IV;e]{'j6u[:thO;,.'VTao$M~Pa}tT|Ci{S֣w͡_]WR3 kM^?o̳w?G7Lx;5m{~nGzFb%]ÿox9o-s4f^Ojii{oF]l]zfK|Ӏ~8}bGc^nQl1>ٿ_C񎳏h0vc}كO~AMS#O}"׎;O_v׳η4ߝ3O#jKvo7i_qp<hsx?ʷ[ O&Yw?_-WI #|PrMM5c@̄],4G|5O@w.K \5$6&zMoh"Ύ.f~&2:ocvC[ٮe1[XysF ~:OuO_Aog.d_nD/3ỹ &Z )}j5>Eߡxt}c=t[V.oԥVl=幘}{W|eg=yB泇nc4sl.[ATzKOOco5,hڻ HӐ |.,9 }^mwxO)qgO鯺 &.6uS|x_> ov@+O9 ءakJqLi.%~ס5N+4s#_8a<g1_x^<6kZt`~??|֯K_yK;~~kj QKi导[oK\; $5~0ZEN?g?=o_?k|]ݟ-K?.Dc3>k/3fo;N-fJCW!җksxK~JZMZ>˩X{a +دЂa%g*1rCZmfSmwcN{ۯqU{tWXH_30kw. ϶ڽۈWvOM̼>w>YJֿ̍\<ŰRKqD%l]Սo>kX0_xl>~3  hAIi~w?p]euůQ~x(@}-u>}$ ZE'tP}V+dm܋n]a|so#Wd_G-ͥܫ^,_ln4y;MO]ıR2|zA_}VD a1@/z1vr{m|0o>װ}zoُC9;4ҝ'ނpP 3?E6\f-Ͻ4S8~'?ڴvbqCz+^.gkng,c\UoZ'_"ٸOJ/w7h19 !{G7 w4Ga =GfB~ 4MׇMn} Ob-grŞx'#vn#j+W [w=7ƻ! b#!v+kw]}dymJglpSBK=CҕtSKQ֞\i}{~W‘lv2ʩ;k{ځi۱M瑛vDu@-\M N S2W5^t99Cߋ+ sע_s&_< k|Y濊\kmlG,?wm4>[}-QrߨgߙQuՍ}|kfU9'g}s3N^&1wXOGD3=X֪&w~>ř_{_n'~6MN,g-j 3|8C6fo8[LOB`y/mss70Gmmي?V|E]\l 8[,_t{vz4ғ*>xg}x(7:27|"Ioݾ_/]FOsޱ[O8Eay(rf] |}Ƿ.-}T>Cvdy ?I,ka_4ov+%[c>N:h|oG~x5rjH{6o5v\=5zNIBO|蹗'9v[.۽ «b4sQOxћi?MkWec}{6sn?`LOY 7[!AXn(}o:|%ԭ}i 9L9 }+t: ea7meQߌO|]sEʹdPE lt̷\7%卫W5:hGTOSSH$?GuѿG!`c\\^MQkSOsE8䕜X|z}GnKL@@Ì~>C~^ua Ka[O[Y3<ϐ}̧Ӥ|},Ny~Ż0}գ?:endstream endobj 790 0 obj 25586 endobj 804 0 obj <> endobj 806 0 obj <> stream x}mGu_T7MVnIZm׺g&@7ݽ k޵]ЅRm^T)$R%0 MV o5%cch iڪus.HIwg3g̜93ϳӆ[\s=ιQfÆki7qA;icJ!Cz{6JNkRt>͡yӼʚK!mxm79i _ L>ṕ#Zۈyq% sHG-us| З wɭ@B\H ڱl0o c4XFkC,0qH(Da\ykؘ5h"خP-'?u,Meŵ>8{˛ZHS"r+ .t8?㾵i"&7˙F}9YP#t ?+C0r"=y#IGPA@T7ڨۘ}`ʖCo(4W5mCP R9ǕA7ǕSǕag߶SG/Mߏkݟs?9F|\VB.- hF `m xڸ06VCȡi|遅;|0qng)BT:hmO|`aAb|`yɒ\,V=z8@QøV:B'YŽL oA"b&,BLH;w| g t`kg QCqa<93I22L8Oh=%d0cНxҹmaYFA<h=F{P!m!R4&p1žI-i桐& A-;i=^(>tBT:,Ah Z C4KF&bv~x1O^('GJAoPۨm+mQa4ms\-u Ogq*@1g`e SMG-@Bq?ҷHM^>?&&[kI ;g~@m{6BNqffLDR1M5 u4[;4/-h|2~ ?TdZz-ȡAe?!NYGph^M0~Oh*r1" 6 @,Pht@gԶ`B(XMsX81"9mRa\MKƦZDUe֎n(P8Vlڊ][VPV -8+q6JZH3#y̌rMqmm%c]rìMh"e0c \t(?bO 0s1!iy~gܶK)Zx:8A+ C/@>2١v 1 U%hQ~6wԍlS瞷Jō6^Ŀi(f&/n"g %/{*s(u#?JMvpq$(2rhm/GzpмanS)BT:ĕ[x|gfQպVƟ҈JR*qK3)=8ESD1FU4<h=l0qnÈ&R4:ȱ!#(:rFqc+hCk7tz EO:GW*EP):8kPR@kk=3HFE,\h396)^NCk4B{!LU hr3ueFOxjlpQM) s3a 6yaB)a\qRL^4=  A'd:}P={i)$:NA<I+4spGJR*qo D:AϳAcN8 Ŏf ҡAt(ȧGi]BL]9ys۸hB86a]>mBB (k[`vB?fKS-Wm0_+ooS"r3 { ]!8qt5QہW<MFކn?7j'GG\薻y@DOܶ>P))m.y7s8oR(JuBk!/E:`To/E2&7b Ik߷k'@ T`?;P`]hMPX`蜡]Cem*I{TNk9h 2hjsp "Ra\_W!kiۤ/h;uB~=+_9O}A>3F߄wcՉ`1yKz ANz Ba7Hz Uu:vtŝ{թ.9z vW+3{ Vu➽oTa߼\Ò}o^;PB9{9E |4s R4HgsqL0a&}(MdhJa+qf+fr݀ XAo'Cp߻~Gvw>x^\U7p.,g ڭ={w73JWXry7O?m oOe|ƾ{U^ ?w8-uc>ӥ3'v *L 64qhA:DKu/D<0?{ u|+PA ۈ^g ؑތLp/{\"S?R^zf%G=@:vp=gFt1SnjWHywPO!ůN1VbY*HN$Ucg)\@.Vp};؟&H*ݫҠ9u9>FČ86Gwh v2iǧSD~ۦ;zɹҭK'CS3?FDS(yTPN U1T +*eǺb aƯ|b@O}w%󒾲s3PU1q7E/5hwb:,͌ȐpRT0 oH\Ȳ5 ݡ-Ͷ}vZ1ՋN;= "i?օ&\Caѷp]VĤ&eqzpt\p40A`p0"Bc0=QBNKӫ#j`zSL/9ȉ+L/)JB0[`:z;Q[sT 0kBcI;dJ/ㅸ ޜ Q|_,JK{ Q2+Z)oP: 8h1:nY1m=wl-'Egzm5^HqEDAaA~}(X^רPQzuQzu#Tu ԫӔBz&Lz%ujHpH9 Hh^zu@ֈ8Q + YVHȡA yzA1@JXHʦ`2 !A+/}3 xʸ;) Jnc^!;-S}(8ύK6O 8)96_7BA_~hy hƴOsxǏ$-"u4IQEmlBn/}3{Gs8Z1Da5-y]g&lљ-"gW‹0Th ޚW1|=i_/gw=}Ѕ5K5SA~aЁpZ:\1'5tvFّ@qP[o<0ƺc ?՗<v[CFжaǶ<4 [ƺΟ 7.-pnǎ; lZLc_ <<ٟWu{O<-@յ!3{2OW}KM[y<79{-)q&N\x qHv Jup a[+Nwj3 )"xdJU==vԊ20rj|{8<Dу0ᗮf0nj$ل]ctˆzS賻-&Kvm(-F6 X<,5e 7||'^ G=@mGҙWAA#bOiF׭I#h?@&USj,./7=j#Tå+a7'aG8/_gGt~2Qb~;sf :IZ˟cUPpl: k3 @O~dp( KC!ңϲx]/0x~w7=gYD80&^4Mи:Lw^5c0M'Js۸/>*4 |iЧ//7}p>JPVGh0ziv3Wv+ڪժG9By]l6Tv0|߼xhgn '[?^?PxC?x`8E8aԡ{jG5C޳`eWx6+w=rsz *B=ګOo~WZӿumC GةXv6/pƐdߐھ&J#:Sc@Np|rȻO=.a/Qcsx,ώU2Э*d3uel CFq.TDyldw-yLr+Zo=zO=~f7UUR.XZ44Y}ӻrE}'4p؅=y˓ۼ8$#qgJ=pr}1'9%v̗uUnỺW} Ch+OT6U^^RP&qa+VyX剽 rVNaɾヲG}hWuyV'9zUIZfk5D?, B+H0RIM%5"~li^s,nrKۺo6Y2^H7+O~&J XGctw}LJw,%"ݭ򆹦˖ྰ4 >ϋ`77$vX|N[VW)6)VY7;+|{Pr:Mscɛ;+xc?熻?7aES_8&âfLq95pNALC/aZm&nO+Z ='N.ySOxZ6+Qª.=b lan d]hne|B[w3 #t#Xa=%iKĺKy|%Jl@g;ՋG|nF:({vR϶_  زu!uقU!6!vrEaytwˤ>yG Ţu/PdFO,l"oѝ>jP~/XUX[.q n"k~[!0nH+]ڥ +u*?7>Oyƒ f2テWI%t;!. ]E[ E|%s'feJ.fKg!GPI;sU|ȍU{op?:O52?+P ŧ0t X?Cԝc۽ݞ.T-(|stpy]Qd'Oos05E<)ٕj_^iIA(1v˛߲978}}wyMx~f?g_c80ڄdB_W`J+Ա]JU-%Ucp@ͪ5V@rN$lY˯:nEKKYX/YS¸SUY#ȇ`IJZ~ٶ|04p_P8]sw{?.B!_AY ky$f˨sC6=A<:/?//o}v_?y尯?՞];3 r>/:j(EgGxE>K17o?TɘɄlNFE ٌavidSe&%8J,5 -+'L5G4ޏ."gl")§t|<::w|#/eIfjyA)-^-gZnW]8)hR/]uKU`YR6|f J`)Y*[ZEyfܥ4'˴r^Z×lmW&Ɵ@Z=wtyjy6 )ח2@ķ'K|FM=>!)ysݾnn%Y疤f/ F.>~|I*=0(Cރx3sw|1z7uf-߀&y}zBƻukڸ˜車|5W\\/=ۮ=~Mm[;ײȋ "_3 #%?z.B%Uï[Iɝ8qT=0^7@(N؎v> endobj 833 0 obj <> stream x\}lUTSX‚!HZSFb3M]QɺnvY%ÕE$_J18%Ȩ:|*nc,1L |=V@et=<߿9Ϲm~cmMM%?FhZMrhOBn#$nKJۚZ{4)J4𝦖OgjGC=TzSb7nLd@Nہ: ')Q3L1>J_;wx^bEXZ Jm>p?Wc},5sI$miL F{j Cx2U%xPX}Z@w36RD(1dWw-H*M.ޙv{=^u'XGrm%?a\D0'R̙YMg1ũ=ID +@TTo+ʔ͜j;ҙp $ Z(z*n_ bt-~p$B`}G/D|y|D',~綢xf<ːG}wWd!eTi^(q-+a3-K+Y; =<4*MJ$:XfRS%}EUDvRiWJF*ŽHVW_r3]b֕{V*e$V-G/0.!xI28 sA,X;X>aVf1?ғvUN"XbxV3@.V -ٕgX 5Qs2zC-(M͉ L0b7g=$R9iu,Mfq@Q 4pNQ=2ڌN[pxN+(,(6T覹koP-[0cg5pevXDl_܎/@(wh0$_X-~GƠ1Ě:Kgew:B9Es#ђRu@,͔~a>~(Y%+zчK6U ޱ6Js3Ćיbcq\dvzI8}^] rȡ5?36@N\n$f@_<-5AB9Q) 0W~i^׾pe)I),IDߏ9*kj8VD5Yg4-~AK8G*,]I)igP{*ʎ &@ *wݳ"(gՄvA859Bur 6Ye!!Kt3:np-)!IE&i%Ft$2On>Acؐ]+IC]TX8 H\ܺ;2`e HbCeVɢ{- &~E-AkMT)yq9RXr-Nck$d 9RVċP8s -tp'o:_$;A8\D:i;\0]6A1zI%AHU佰M\|Xa!Y^Fne3;3c_uqocW'DЧ'ϖfq25#!`D<=_0sQd0\uf$*޸} \2^qYUP& 71ty[Ż3iK!vhz(9߉SRspq1Vul? B% Mt;pZ BI#TBE6}R҈O -\95Tq&o.<"r i]:ݜl[@>R_S_* endstream endobj 834 0 obj 4708 endobj 837 0 obj <> endobj 839 0 obj <> stream x}_̧uR/ D/ꃊq_?o*rR@q85I[Pp+EW; )MEd7 @ 4pQ$@<;oo RU933gfΜ33gtSg3=e]Jm];ch+_rr\Fygcgqow>x&/ƜcCK i\=s \ei+zf&'LE/;5XQE5'~?~ᣟ>c,&Hx=}t6|\עCƴ_ޏs)kj}~-mc8ZqLZX MW x/m*Vd۴'6 ;-|fg]]l(xA@qe:VRr\AM{C(Ḩ0"qnBJ15d++ JYHI lȠ[M(+d[J cn+'RJJ*Q $E5&JJHJfeNY# l|HAiY)+$k3DJ2`Qr̲6iu@I%ZZ.6ׄu^C弥`R9e`ʢ&QP{ !/`]&kee(4rYe=w.wL\qSNJ U4Bβ؟ Qǖe%HYe+EDy R&%[cle8 -odQRuQ:vda,6 NR"RV>$뫉U)2O%( HUw_oJRJ2kbo*&zYl,c5 +aXHe4Pb%J)]/ wVj^8ao/"hl&E)I/jh}0Zj]6+&,|x1}īH*:z7€GfZS–uNvc߰N=8D5uDbj@]\tboD/4dn:9Q:}utv;nYwV⭣]ch' w2MT;QaZw]x'6 2"N 9 awÝx'1nw< +m;vxeD%ǻ.kǻ.Qﺨ%Zw2nx7Zx7zx7$x7Fᝏtݘ :ލYx7f~XwcލUx74a;ז \ s;܁wC޹nCw6svݶY<olx& fc[w s4nwMp0IxVw;7ܹp7 v p`΄xSN=Ʀ}lJǦFBQMO G"K }2WbcWpH%dqG9(Q+mC۵E{ '/! (p",lZGT "˩QQ"G[`5\p(td hfiBRVht(*6{0,} ^kԲm]i'9_ռ6Qd#ln,Gb8v 2oAo-Hۻ>X2zQpdgBK .ָU 3, Ek"G6ս [}sZox^}'?$) bn%'$H)괵LkfEn3Lս֕8:7Ϣ. ..瀺z"Agw"Sũ aVWlpHU[%uV=},Cbka?G8Ȫze.x%I)eT2 R;8-F⌈-2jä-aHcrZ"RQTCt Q>ZD,9z&=kO"Eu% XD /x9V1B: m]hWh]Ȋ]Q;CuػzIvL;(kE4Ʀ>s ͑['v x]Ơ,{e0!aHm G+Sё J]T0)ML)i d;8bWu5b}X5 yHl#Zej`qL$݀jئaey8v-le6#z[R8Ki- ޼*k5]Us_vKЃ.ZT@6jnCQZW]- 12jRz qR !yQb wa}^@͋ RA`(ef P( NV/],*8YΠRyIb{<4GST;ruG a0n%O Ij'SVԕgҍ;.8 EVɂt: ˢv'.mխU~f|gҙѿzj"vn5J)!R,U^{$0: aT}ιGQO[ҙ`t^/=(kBEAjZV`eVOL$!at`ˮHk`ՑgQvL>H\0( RH[ Q]ha"Et +O 8=[W~vHVԾLgp^~[EhȐ24BYG-4y->kqz2W2W~',H}oC^_wR 'v&zHKa% Eձ):~Ͻjr^~(޽CAIhHhZA) +%X̴qkуA G!!eE-(}q WIz{ +[j͡Q\,?(Ae%2z Q=ĥt(*E4bqpf~G3mE zNqdj!՞%"%"q?haX/u"[,c-e L p)8tbkb;(U0Q"ִd$T\84QԘ#} V>(8"heׇQä.ʣ]5(py(;'nC)n~Jp -X}7 .\(˾Lq*s~ȦyY˝6fzC9*{m+7U)SZRkd]&W嶽@&p4JHkT`)&`)h ף{ʖcHm-Gŋc›R^*]yje(=n2G^ x]6qo-Բe0!aHm Ga$3ck% )/ т̰B (h}ݵ0C}JGk!>XVkR8Ki-Òv<(&J#|AP423Gy׀AArEGٺw`2z Q 3^(9Ӊ(W5Y%"M1 m4Ɓ(Sml\1Tk -.X42Z ]ڊƃ!)%ekP`h~,y=F%"۸eZI l<2Qonm" ąu'L\kX4q 5y<ǔJD 86?LFR<:%{$y@< Ɠ'tّ>N}9.5>jY2 'h (AhLd pJݗf6Kwւ<+`M%[`[RtMxa-ㆨK@nPbG;:lYV-r4 *>y`_A/ʾ~>]*4HJ)ǼS}6Pdau5EӔpA](֪%RIzN)L>0(zJB^JxvHB(6s3\I x!#(Şhĵv\ׯ0gEJǹS( c–k`-Ze[S ݪ|(l:)>i)ɞ~%k9ɑ?U d[%;>ΓId}$&JXL#n`@;j($9^V@-Ǖe\K@6`9u[)d!B+[x Wh ,F D+h<8 !ZvioBd@_34qY.j^Q^t\ oSvѮ\yOA3،5`.&/©Ȥn_U[ PiS&r )55 J-f0`볽׬ʳ"۠`'` :/DMxM>!0,fASV^ڕ8_ ; &"*crV~0@(q{8,"C(mfO+uR](?kEEUf$2#ah/avÐ MQZ');kgY9{xhS{Jlxkp#dZ5ցk9"v` #D=Jnѻ=>CV'6vOF1[Zb U̙34M g˨oaF c"=4ҠЂ48ՕiRPL }j jm\g&q0 %wD bZ VBZl^j9K"T7]ð%Xd-73AfR(1-;.kZVXoDz DؘL:~wh' %s@Qp "Eţ^ݿX.>"^#xUFD}[  Z{%V(s6"`lq~d-fj>AcP(S"ܻ +?`%8D5= a@DLy}1Rͻ \A|C![%0w#] eeol [Q`@u~e;(~fP~,hʺSZ=zQ EJ ʭ(I)KGXP66fEnlAɼCD$ ٺX+Y7d4kpMrvJ"G./6GSƵXDZ3pc sb|kCfqWvĢ %,0KeDx$&.PFB ʞPvjIҢQ9$G\xcuFB2;l񺳣Ae3c0Sz0HŀH2,ei|9;8EYlLKc*lb1$x @)yxdY7{iniwoiT\I h?Ƽf%`-UX`r/ݢQlFHV֩-Kg;4@fι(Z3S\S@&H_3pVRhRx"Y6aPlME1 ^0wx )M,4jʳ1 kWg ӆsSL=OMWk:( ʍP.v H99 AN(ѐ*xj' j9n,1Zqf$b!.mj+&E'eQ5^xyO{k9E"Pe{R1Bz0v9b HߚkzeT%0 YsD*8͌JJߐbSu52!/JՌl3:ł>kG .6hOg 3XFFdV+EuZxziqDxz3x"+uo%w{`j͒9> \,>iߢ[hRmIxt-d4#mD>b vħ!#\]PgLk/=xxˋ8dGq)| Kcya\V'H~PgʰxmL^lC͔R̾\Y_e <]wn[;}'ZŒjh Aa—wr-Ui%gQ̶c歖SK41nҴeb NyZ"BEH?Z6G-'lrBsϤ3 NoIG̓lģTEeŚ(z Puwck!Oq`lUeqZѻnKLZ%3dzv`z,F.X׾ɒ_͚F*Ae(}.#;_8g 9㯵x"2#Ĺ uzCs 1kc}]KJD,dWB[sg KzkiUh( 6mZvL7 .P̃"׎0P%r>lJQ?3*뎧y쫐urv]:.XGdJ"Z5#afg2:̯~8(M/dz^aG8:HfDIxڐ$ "R(dw ns 7< _iP9rM\2qkP&l gaּQ&.6䄉g?in3iԌ͈kdx+Y?g8gcv|m;S2K6dچۢɗ:'@N tZ9n|m|kB?amo|G$V6vC?IsO\<٫]yc>|ؾp =O<@+{Һ^gdN4;>M)}Yb[\_N+wqky%V (K,ʒ6RG#w=yǹykDTg{}\wPb*AcsGVp!J7!+imY*[Z[չ0g-^GP17Лf_<>CF.#M)޺j;\}s?4'[W:-Cgo@[ yy^.\弥Է~etVc/k}PG/ˏng%hYdOPѭ'*XMgiL w){=3ns1y^/Oyb}|[~(C;o-d/j1p-ȟ89Xb'#<2?t-U5_[f/>o{3НOzh[/{芵)o/b^Ǘ=Y!vVչ(wø G㺍i|/Ic~u6vfv%/sslN7TLqnGnm{A^ֿŽ>m;Cw޺c_c!\nꭻv]C3_yiW~/|8ꮝ>m}^w˯?7t toxͷ͸o=ݨgRzJ-YB''+ϟ3;c;Tq=Y+^s7XxeRc'85"?AOoo6DI7_b4NP=-][ #G,~KWx|Cbz=y'.}swK%}?=`iڣIT ,ڢ:J=1l\S9n᳆F8iԵ6bЏ܆4ˉ3Ӗ-_}ߕ{oiK#Q)7}'ޏ\~Rĕx+^ <8q/!df6TNTpϚ sS|{MnUiUJ,_}(m_/| nxnggo:$~(VE&-ѡd|=|;}b?OER;ۯlg=ۑɅu(eN)DeMF=śRo唞8w"έbtc[I&n&=&'Y2Ns)R?w8Wo\m;gZՊel*1 h?B kFmm72jLFmy=[kKxߤEnNuVJ{SRoޔ)c0mbO Mn dU槮(I~ej/u`};0 >Lrpt8x]ܐkl1JfSzsձbuVuK7X:}穸Ǥ@;7 ST+[?X3x{n;ŸnQ/~ܐ4:XI3"nƁcAΉʙ ?3\M%T<f*\6BK \nW.$Kk*W Q{|O:@&7؇'݉Xw"Οt'b7owFEԯR67RvP^paeRBvO@F!؞uخb{v/PSwvP}FFtswl-WTaz]Bj5[Q)9}lcCdmq̪.D=.ٚl={+w%>_4=>YwS#٧^wZzJwe<Ǘ/> endobj 855 0 obj <> stream x\[l]ՙBFA% @ѩcڷ)؎80$lӆR iq %S *ipZmhat:R_TT!̨/]9'qgFH8{}mT;гԳT!3PVZ!\ZHþ&q_\/T}~_ IVTM(.l2̲|n~zb0 ީ)Vs_F}xhY? ׋r{$ԣj󓣽gŨ8Q]zؖZ C消[('ػ1]?H=)OCӃ_:RآA5m?GS#E &6=;6Fijaŝ9'<ԇc\#ͱ7{Œl% CyV!1ys .I&/) A'2[ 28!NayX R Cbm8.-*rWl&׿УNG3RQC8ygݞpH4<[@r?6& b5m^ CG瘁Miһ3P&iq[*FbPטX5 W=R`K3H' X9:˳7{>NH')56}i\R T@D| Z0!>.%E<d+LLO-jDŽd36p! ybth Rzxa>%R"d_|vO*ym ֔dJwHZUxļ9&-Q5,S=f^ E6Qb."}dU3,HY!^N}Ъa ҈ { Ȇi,Ǡil7rxV'J.T2(](Z\2G&zdC#vkڜy 3"K341^Elp1[5v ~>VL)uek_˟ y g&wo%ؒFr571\w/]9<*Q?s. G\0LJd#F D1~[jⱅNzu)Kf"WhL ,B}(L0^Y`%,_ e8y\5y!TE-ɖ&Oݨ 8ء"BR#o̵<~|P:bPǘ&@rv?sʨؑ3n v_SFÜnfhڑ뤕P+,v^&6s8+FR:;<]W&,[J,@HX_[~F`d=HY]bfʥ8O^֐&Qfi(k |c(xɳYGl98II%8*{!bT9I(3T a~mZbϽ٩A%hi!"ʍW(+f4*;4 *;N縭{1mc2Rs|5XNr^CUpiy6d'“mGUrĔF%٤ûcfLO vm4r㾛 rbzAqc1w61¦|kroYv!G1 L9>TzďT̥ŏH%bYeaȅtrt%pB'oc3BF d32m̾ĆI>|,6eȝޟ.RE~QbYyfUI' K ,Xg%ʖ6(@ዾJqy$6&_)Kl9X^a5MbԱ+uqI/6-qE&l8S+Ѻ=JPc1YFΞ"8y{kչW=E?a{CR91W3yi>;+얧jOl~-hkS|}{k'#WVЯ<xEwnnE$ole[\,3|Q,*S'Fk|c,LBM8=01ƱV˗z[dF3,6W>AQ&2;8&g|& a;=ʝ(暌m / S$;rMaaͶЀ_9ϾTu'{ZX"U}3ǟDʼLΏS"$h[:Y[U*@&ȘƵ<ཱྀUN-Ow#dl/iL M;GdrD ;K`f'KeOW5ORg~;SWIwٯ]+NɘeQ7V!k $(ϟ58NU},l9,9cC( +8VYNm_6"*\EUT%(Af>pnQɑ@ߖJiSoX gOt4nut YOjmmpBH>$>Hҁ0!)A|_ǰՋ?f'Cٹy4b-tqDxTms$UKkD} !|IGv_"qRq@EBx B%c"֏C&ZE":)&zJ`q#bp:Cb]2G>N+٥{6ϡNjyi)Ύ`8qC$$taS-vhhKV-f,)V=<ҁ.RGR^otV3UNC0s6,V¼]*j/ !Sb@vKn#UV)oubMbz}r;en?͔":y+!>4DPG KA6Jsiu+6Abpohh[S5D/SDUiB pRPvʆiu;d545mTAgk}wDQLƼ_fHo5%[qτ86tBНx]ԮLѴ$#nsAj.Ɗ7'v)CkZ:U1 ̡aHE72 _XO;q[,,"|nK^$V.!AٻGLD289h^' {鲽!/ÏY\!.w>ރ?yA!KF- JEe1 8 &ג[)hXjC@nI =vX***,B&T]$Tj?Nw : -@B]dIR~yqa',V^hDAC\CaLQ hT,MhnPAnAAcB͞ O/J [q(y%J[m.YFVny~WݗXl[f+ez".+ĈPW"$$|=Ke%E%htwBZsuEE|]ufn:tWь.EbbfڀS$3,6?R=x;$%^b#=v/&oe bQ" FR`_O" PѦҹWc;JPg \dAZ|"d(B/w9%Yq&$C٩XHZ-hj%RAzF;5DИ癩 2_+NWL$.xz$.j]7 Jv .8CKt ,*nmzJgmV,RzY-BfʝtV2((Kft!f:aJEJIEatPJ;͉J-a |]mr 8 RoXH_k16\'f%|@6'p Щ& GsX٭Acݴ͆Fby-9(/='a(~{5M{~OiHlLNJ^ᠹ@XQmW($|*C_"e%}k2&Ժ43 Ɵ]vZ+z@6 FEJj-9Ou `R!+І@2t aLNvqZ~s1d 1܀WpssIv.Hqv# jnۯwdO 7)qCܮ7-g|Wբ h0/s+9ߧ# 5X_,1]ܩ^ӳTϸ>1%}L:r? =v]'鿣BzM0Eٵ=;wy ?v>+YԗOŢsQ:i֥sio,DH[6' ɴYԸ?Zq wPOi8D(buа=E[IsU[$8:>A+9O唸>KbRee aMI_"8LIо ߶[l!=:"Ǧ[k{&шg~}o~۵N'j&w[os$O+ؑ &a㶱=}(#Cw+iXP.aSiac@==Jendstream endobj 856 0 obj 5585 endobj 865 0 obj <> endobj 867 0 obj <> stream x\kUu+M\RiE[]ٕzt=*OIZ:|Q `ߙdfa'qIm&&n1`PWRJUTUiUU~׾g{9ko=x%#gssL>]TKzZa'!D$IJ}kSOuqR,j:LJq]BP`qc&wwQ$7R&оFu_TVgaeb aWWhcYLN^뫳[=B +Đ+|Ga#w?h>E"QğJ0y"OE_~Ԅl,dRoAV !H,!)))v,|5=":4?Cz^,]=*}GD,5J"DS~Sq JwhXRڛCiS>5$;x|l|1 2J1D灵 kHzLځ)ZS^6 /yr?҉ k<^㞩 X azJOt</вN-FjYIjѲXˢEѲJU#A$YP*A jwTHSK2\J, /I>e\Rl0V"fƧFF5o4Hл]K3Jb )SJ t+ vS0V pc3Y:"#| 픙9e=B0=(YT #P{-:wv62$U/J.y*=:eYD0ď9aVVbA>pz}%)jQbV%qwۀZЏg~sji$5|>&%\FNhEq((AԾ:O(S8=gV RSޖ"^A|xÍ嘇[RaWM%T^0} m_c3 /(aL]-8PnB49Xp9+,49]K }sNJ’ԠRX*%?t"YFb>Z +k Hc$JY )86>TXmnuHx#Ʃ͎.~1lFmkmV;JYV&%WŊq"d'BgMsmy"'R*|q$i<xB^Q%ܐdhMIG`B @{QNqGH3uh6=|}BJX7#g@:S>%I>$:%!߮zRܛo!MzpxǫyIY*uL%ĥb4Ż\X)Ex_Fj2!=H/20]i^J5HBJ2IZ<)H ؅Yk!^ j_j$ĞD{hnXyON \n I}T\,)%əbF9SƜG6S@i00f ܕX"8L8j<)!Jy,0Ö3X]-k-&><+ցt-3 At~=OYqbf{Om^f8_| c4݀ƣLv513&ySVr8"ΤqׁG,RAI"8XdR}_j2b[:%Evռ!B62fh& ց^u̦`ό[k>0XiT7SefYhSS軋bԴBNT7 {*M˾Xq&%R{PUp9R!Ν*=\ElgF0K l~Q|YKPNݔTA;ՙX5m AlFgC|DS;!R w8bF;U셥?Fxݝf}=Jxߗi1 3=I| '֝|9O]Phboq/=/c2L)>-̪Lw Մa;R 4 :FznA <ϛM<)o}pJ>8/ 6 JjۊļOY(IЏlN0 0h@.NnD5?CC8C]Z/h6k QI0 Z Q GW>YjQJH"'Fz鮇Y"2F2fD`M B,.̕Y]cɒ1gl"xm0D&\X^UL 6A&mv?nlChćQтgA刓HсȖMuB\z勉m__~ҹ~{5tn[| m؛W} "V:Ry [\ѽ( P 3yyHwpb6 07H<_BxZe= <$mgaݯen8!86Ibek͓;yH<p6oe-m~үpIZXCCܜ4ǎUW'N{7C$AD?Tmm3GΙrgFšllj`6:x#Դv{xW'2/&k +h旰`(: ƛ֪2unݏ׫m_S;tndC>}Wy|!|w|#3ܭ~ H?k0۲;t ^ ,ORs&)ӂƶ55hxE8?Hail2;KFG,'yV_Fi+:ȓfw}#tpƎHF^Irݞ.@VƋb 09sy3|=^z=loYa.1^ʿM2+T5E%H+ 2,Y m;/Jx ?֤ԂP-~XT ŦǪCp5DQq5A [y#׈4xljQ}[UOc,~f8mꑬ<9,ִ.tg_9B~S2 {?ہ uzuP^ 3(eM^r\C3^ sor^ St_Xn~Et0pz1JqVS81kuoa[>τ}BG\ל@霆[#{HGu*o:O1tp:>@28NRk/G'۰_rX|h$J̳=_Q2f,+8ƺq@;r^3%s3MJ*+bV>x8ctvrV :&wΑs> endobj 908 0 obj <> stream x[oTVR j)ՊbZ|g;}l86mack]% ^LN"%U[D'786ʟڦUTT)/;{w~;ss&Fм?su[(+ԉ)?lQOؖL뒏}qN%Kْ3"M{6GO5Zx_&Uwmx`ݒ}ҡ6ߺ?8r_#3l4wv|6Sާ٘ 5}yC?:!dO,Np}\-Ӟ,+2}^C7 l?W鈶!*xߖ+^ꉹ|%Nay?`2DʠrvϦL[tYȐzٞge}Q+r64Xlώ.]#\2tM  ydӥ!C׉NHCiLr-YmZ2yfBSWPl-%և|j|ׂm"5O^<4וπ\:hEP!C!P+W燂,[l1Pqg~b+ͤ O |LL6MN`ҢǾ쉁}*Q#Nmn(-‚ Z|vw;~C \1 Ԑl-?Nc|瑹K]E…hmS4kwSW4p;%~񜶔hk(l =< ':HY(s?l_&mB,g)ІCg1d"@4Zt~L lM5:,ƕ\n| EaA%~4y~7K^q}>8S/Hw%<; ta]lf،/7uo<6da($Nrbfd b/1g8G #à;yzR5:SX,Mwm`W븀~hKXNCס.l()e(KnA~4bgC#⧯#P:4C6ķQ 8T"Qd:(|xKn-[b/ӕ|XmFXUSX=翠Aa66./ARt9e#rmbA~A#0|{_GS(#jN4}"Xw(ۖwpDgq6U+;BpE_UY՞-eկH B*S]*Q*Hܠ"=șvAw-=\$LϏꙖC2|`:,meP%I sUO!fJ9ݓ wP|FZ_IB+ƫ,qm ך@$!FA_6 | &+Z VfClHCa\Q1cEYn.l"X3:V T-\% hO״qYAyFu547|<rp!^h(X KJ$9< Sσr!@3E87c} 5h{k~UO4Bح gӓq '3ļzCaQ^V RZ8蚏 HC7(Gظ2C\U! gVnLyf-<5qկo@h.أ-4*8ԙ!`c[ K=ߊS)"28!?"/xĖ-CtiȷT& 2a+IEU\c%)s 0U]k,vr3ߔ, 0 w% s4BD]C_;xDMqX1r `okJזuMI' 8G'EpL6ZE6_E 0˱B.Edyr2lX>rp/ĊB¢3 L]?W(%P> [ЁV-^xgk|+D 7S'!BÌ: `ORY+wO^3"!߆*2Qu7=5adEL dA7G?"WeʧcpV SLF Dh!@ 8ڳtPdiPH؀e M\ZQѡ7o=:s]50¶bOk1"@0o0#vI~Yq*'9 82tJjXa~" XIb2j#Z_ 8jfwBJM7MT0CSdv@eY=S"eTۙKtI!DH{A&ҝ(| Cdءx( :  **HtIѡ>Cˆ~6-?=3N6>JG3*&خ`N] C| 0JMi5|XLAh&ԑWWيOrKDV¬0glhFKW7`RJ`AH`C| c9w,!1(; HR U<ɮ{}"fT%]Wƒ^֊iuH7S&4X?^ ԄR_av ~HEUXvSd~= u8BPGҝ {o"k6 p5R;7P壙0ZB#ɢ}rvav#Z88R|n=uq-Iw]ab9|h+il}Qu*AY} e'Ұ@+%T,p&B c5 ' ziigўmkO偸t"5|I(NVfSuLUXE#0LT?ڋRSբ31qc/I "+):;p1(Š$L;kf%::w;yNendstream endobj 909 0 obj 3449 endobj 921 0 obj <> endobj 5 0 obj <> /Contents 6 0 R >> endobj 257 0 obj <> /Contents 258 0 R >> endobj 348 0 obj <> /Contents 349 0 R >> endobj 445 0 obj <> /Contents 446 0 R >> endobj 484 0 obj <> /Contents 485 0 R >> endobj 534 0 obj <> /Contents 535 0 R >> endobj 562 0 obj <> /Contents 563 0 R >> endobj 573 0 obj <> /Contents 574 0 R >> endobj 624 0 obj <> /Contents 625 0 R >> endobj 642 0 obj <> /Contents 643 0 R >> endobj 653 0 obj <> /Contents 654 0 R >> endobj 666 0 obj <> /Contents 667 0 R >> endobj 680 0 obj <> /Contents 681 0 R >> endobj 694 0 obj <> /Contents 695 0 R >> endobj 704 0 obj <> /Contents 705 0 R >> endobj 715 0 obj <> /Contents 716 0 R >> endobj 722 0 obj <> /Contents 723 0 R >> endobj 727 0 obj <> /Contents 728 0 R >> endobj 735 0 obj <> /Contents 736 0 R >> endobj 752 0 obj <> /Contents 753 0 R >> endobj 770 0 obj <> /Contents 771 0 R >> endobj 788 0 obj <> /Contents 789 0 R >> endobj 805 0 obj <> /Contents 806 0 R >> endobj 832 0 obj <> /Contents 833 0 R >> endobj 838 0 obj <> /Contents 839 0 R >> endobj 854 0 obj <> /Contents 855 0 R >> endobj 866 0 obj <> /Contents 867 0 R >> endobj 907 0 obj <> /Contents 908 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 257 0 R 348 0 R 445 0 R 484 0 R 534 0 R 562 0 R 573 0 R 624 0 R 642 0 R 653 0 R 666 0 R 680 0 R 694 0 R 704 0 R 715 0 R 722 0 R 727 0 R 735 0 R 752 0 R 770 0 R 788 0 R 805 0 R 832 0 R 838 0 R 854 0 R 866 0 R 907 0 R ] /Count 28 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> stream 0 0 0 0 112 121 d1 112 0 0 121 0 0 cm BI /IM true /W 112 /H 121 /BPC 1 /F /CCF /DP <> ID &ː'/5 ,4_aV޽x~{k_k^__kk^z_^_]zazׅۯx / EI endstream endobj 11 0 obj <> stream 0 0 0 3 102 124 d1 102 0 0 121 0 3 cm BI /IM true /W 102 /H 121 /BPC 1 /F /CCF /DP <> ID &t <#PP[M7}7=_Ao_^?a 8 j#A EI endstream endobj 12 0 obj <> stream 0 0 0 44 54 123 d1 54 0 0 79 0 44 cm BI /IM true /W 54 /H 79 /BPC 1 /F /CCF /DP <> ID &0t AEA3 ?i7 0/upAd2uc p  Iz%5yy@u'!C@ EI endstream endobj 13 0 obj <> stream 116 0 0 0 0 0 d1 endstream endobj 14 0 obj <> stream 0 0 0 44 61 123 d1 61 0 0 79 0 44 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C DAC 7>oIA[}/ k_P w\:\5K 8!~@  EI endstream endobj 15 0 obj <> stream 64 0 0 0 0 0 d1 endstream endobj 16 0 obj <> stream 0 0 0 45 53 121 d1 53 0 0 76 0 45 cm BI /IM true /W 53 /H 76 /BPC 1 /F /CCF /DP <> ID &%[ a? o[ xw+%`c EI endstream endobj 17 0 obj <> stream 72 0 0 0 0 0 d1 endstream endobj 18 0 obj <> stream 0 0 0 1 18 49 d1 18 0 0 48 0 1 cm BI /IM true /W 18 /H 48 /BPC 1 /F /CCF /DP <> ID &߇~~y/T( EI endstream endobj 19 0 obj <> stream 34 0 0 0 0 0 d1 endstream endobj 20 0 obj <> stream 0 0 0 1 110 124 d1 110 0 0 123 0 1 cm BI /IM true /W 110 /H 123 /BPC 1 /F /CCF /DP <> ID &ji "`Y B"5#?A\ A cA}_^ /߂)&<v {^ap?m{]ypI O_ |0`x2' o*/d EI endstream endobj 21 0 obj <> stream 123 0 0 0 0 0 d1 endstream endobj 22 0 obj <> stream 0 0 0 45 80 123 d1 80 0 0 78 0 45 cm BI /IM true /W 80 /H 78 /BPC 1 /F /CCF /DP <> ID &C?0^AA> o<- n~WrP#m_  EI endstream endobj 23 0 obj <> stream 0 0 0 7 31 121 d1 31 0 0 114 0 7 cm BI /IM true /W 31 /H 114 /BPC 1 /F /CCF /DP <> ID &&Xk / ?l,P EI endstream endobj 24 0 obj <> stream 91 0 0 0 0 0 d1 endstream endobj 25 0 obj <> stream 0 0 0 1 79 123 d1 79 0 0 122 0 1 cm BI /IM true /W 79 /H 122 /BPC 1 /F /CCF /DP <> ID &H ?.2ADL #@AAAh Å߬xH0O/Kxav=5 0` Ax0 .AT3d@ EI endstream endobj 26 0 obj <> stream 45 0 0 0 0 0 d1 endstream endobj 27 0 obj <> stream 90 0 0 0 0 0 d1 endstream endobj 28 0 obj <> stream 0 0 0 15 51 123 d1 51 0 0 108 0 15 cm BI /IM true /W 51 /H 108 /BPC 1 /F /CCF /DP <> ID &N W >A>o?2H5?} EI endstream endobj 29 0 obj <> stream 0 0 0 44 69 123 d1 69 0 0 79 0 44 cm BI /IM true /W 69 /H 79 /BPC 1 /F /CCF /DP <> ID &C ς"Ę@H]}&[M&}&o o_p=va[i[ivm }2f EI endstream endobj 30 0 obj <> stream 65 0 0 0 0 0 d1 endstream endobj 31 0 obj <> stream 133 0 0 0 0 0 d1 endstream endobj 32 0 obj <> stream 0 0 0 1 80 121 d1 80 0 0 120 0 1 cm BI /IM true /W 80 /H 120 /BPC 1 /F /CCF /DP <> ID &ԃNMa~zۯ xb.P?1 EI endstream endobj 33 0 obj <> stream 126 0 0 0 0 0 d1 endstream endobj 34 0 obj <> stream 0 0 0 46 80 123 d1 80 0 0 77 0 46 cm BI /IM true /W 80 /H 77 /BPC 1 /F /CCF /DP <> ID &x5?|oJ?H7 վoX}x[|'[ׅP=q V EI endstream endobj 35 0 obj <> stream 69 0 0 0 0 0 d1 endstream endobj 36 0 obj <> stream 88 0 0 0 0 0 d1 endstream endobj 37 0 obj <> stream 0 0 0 3 92 121 d1 92 0 0 118 0 3 cm BI /IM true /W 92 /H 118 /BPC 1 /F /CCF /DP <> ID %oMB U/hi M|~ ~~_}z^x% 4 wc&@  EI endstream endobj 38 0 obj <> stream 148 0 0 0 0 0 d1 endstream endobj 39 0 obj <> stream 0 0 0 44 70 123 d1 70 0 0 79 0 44 cm BI /IM true /W 70 /H 79 /BPC 1 /F /CCF /DP <> ID & < h<&D =C'?L4-zQj7߰0upc AT U[iv al@b 7D@ EI endstream endobj 40 0 obj <> stream 105 0 0 0 0 0 d1 endstream endobj 41 0 obj <> stream 0 0 0 44 61 123 d1 61 0 0 79 0 44 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C K C @ &oW\++kAO?߿ v %0Da/! EI endstream endobj 42 0 obj <> stream 77 0 0 0 0 0 d1 endstream endobj 43 0 obj <> stream 0 0 0 1 78 121 d1 78 0 0 120 0 1 cm BI /IM true /W 78 /H 120 /BPC 1 /F /CCF /DP <> ID &Bj +L,5^p^ׇ_]'K?a{^k7?oo~߿5& \Րc EI endstream endobj 44 0 obj <> stream 66 0 0 0 0 0 d1 endstream endobj 45 0 obj <> stream 81 0 0 0 0 0 d1 endstream endobj 46 0 obj <> stream 0 0 0 44 73 157 d1 73 0 0 113 0 44 cm BI /IM true /W 73 /H 113 /BPC 1 /F /CCF /DP <> ID &k Y5'oXx$|~IoX}O5u 붂  X</.E+'z (=@7xX| M_]A林a`0b33 !k` EI endstream endobj 47 0 obj <> stream 0 0 0 -8 38 165 d1 38 0 0 173 0 -8 cm BI /IM true /W 38 /H 173 /BPC 1 /F /CCF /DP <> ID &ikKX_z_^_k~}a{{x}{{x} EI endstream endobj 48 0 obj <> stream 137 0 0 0 0 0 d1 endstream endobj 49 0 obj <> stream 0 0 0 3 116 124 d1 116 0 0 121 0 3 cm BI /IM true /W 116 /H 121 /BPC 1 /F /CCF /DP <> ID &Nx ?k߿ J?߾ao}zz ^?WX+߿^O>|/XxK@ɀ EI endstream endobj 50 0 obj <> stream 50 0 0 0 0 0 d1 endstream endobj 51 0 obj <> stream 111 0 0 0 0 0 d1 endstream endobj 52 0 obj <> stream 61 0 0 0 0 0 d1 endstream endobj 53 0 obj <> stream 44 0 0 0 0 0 d1 endstream endobj 54 0 obj <> stream 0 0 0 45 80 121 d1 80 0 0 76 0 45 cm BI /IM true /W 80 /H 76 /BPC 1 /F /CCF /DP <> ID &ԃNMap׶V(_m/ @:  EI endstream endobj 55 0 obj <> stream 79 0 0 0 0 0 d1 endstream endobj 56 0 obj <> stream 0 0 0 8 63 121 d1 63 0 0 113 0 8 cm BI /IM true /W 63 /H 113 /BPC 1 /F /CCF /DP <> ID ɪgkl?w?o߰o|6CLoooxo߇(' g Tp6޻Awl%vK-aᅐ.@ EI endstream endobj 57 0 obj <> stream 150 0 0 0 0 0 d1 endstream endobj 58 0 obj <> stream 0 0 0 106 15 121 d1 15 0 0 15 0 106 cm BI /IM true /W 15 /H 15 /BPC 1 /F /CCF /DP <> ID &pqɪXk @ EI endstream endobj 59 0 obj <> stream 86 0 0 0 0 0 d1 endstream endobj 60 0 obj <> stream 38 0 0 0 0 0 d1 endstream endobj 61 0 obj <> stream 0 0 0 -8 38 165 d1 38 0 0 173 0 -8 cm BI /IM true /W 38 /H 173 /BPC 1 /F /CCF /DP <> ID 6Xrjxoo}{xo}o{{___^X____* EI endstream endobj 62 0 obj <> stream 0 0 0 0 95 102 d1 95 0 0 102 0 0 cm BI /IM true /W 95 /H 102 /BPC 1 /F /CCF /DP <> ID )ԁ ,4Bïa/x~~k޿p޿޻  wh/{v ߽_> stream 0 0 0 2 29 102 d1 29 0 0 100 0 2 cm BI /IM true /W 29 /H 100 /BPC 1 /F /CCF /DP <> ID &.`'x EI endstream endobj 64 0 obj <> stream 103 0 0 0 0 0 d1 endstream endobj 65 0 obj <> stream 0 0 0 38 54 104 d1 54 0 0 66 0 38 cm BI /IM true /W 54 /H 66 /BPC 1 /F /CCF /DP <> ID &\|<! A&o |'Շ׭ P$Wk .]^zvX0[ %_$p EI endstream endobj 66 0 obj <> stream 37 0 0 0 0 0 d1 endstream endobj 67 0 obj <> stream 0 0 0 38 53 104 d1 53 0 0 66 0 38 cm BI /IM true /W 53 /H 66 /BPC 1 /F /CCF /DP <> ID &` 0F> stream 63 0 0 0 0 0 d1 endstream endobj 69 0 obj <> stream 0 0 0 1 61 105 d1 61 0 0 104 0 1 cm BI /IM true /W 61 /H 104 /BPC 1 /F /CCF /DP <> ID 0 `ݐ ń@ᣨWH MaO7|?PeA~_j4edu K -aDeWD4QYN, AuD"W__T__\0a{] ^'!@ EI endstream endobj 70 0 obj <> stream 108 0 0 0 0 0 d1 endstream endobj 71 0 obj <> stream 0 0 0 13 43 104 d1 43 0 0 91 0 13 cm BI /IM true /W 43 /H 91 /BPC 1 /F /CCF /DP <> ID &\'3 7oA Iɫdo EI endstream endobj 72 0 obj <> stream 71 0 0 0 0 0 d1 endstream endobj 73 0 obj <> stream 54 0 0 0 0 0 d1 endstream endobj 74 0 obj <> stream 0 0 0 39 66 130 d1 66 0 0 91 0 39 cm BI /IM true /W 66 /H 91 /BPC 1 /F /CCF /DP <> ID & _O:?(X~A~)}O?7/a/ VOA{ x<!dCD EI endstream endobj 75 0 obj <> stream 62 0 0 0 0 0 d1 endstream endobj 76 0 obj <> stream 0 0 0 2 66 102 d1 66 0 0 100 0 2 cm BI /IM true /W 66 /H 100 /BPC 1 /F /CCF /DP <> ID &.i0_ך'_kƽ1^AO EI endstream endobj 77 0 obj <> stream 75 0 0 0 0 0 d1 endstream endobj 78 0 obj <> stream 0 0 0 39 66 102 d1 66 0 0 63 0 39 cm BI /IM true /W 66 /H 63 /BPC 1 /F /CCF /DP <> ID &.i0_ך'_)<ix31x/ VD9G EI endstream endobj 79 0 obj <> stream 0 0 0 38 44 104 d1 44 0 0 66 0 38 cm BI /IM true /W 44 /H 66 /BPC 1 /F /CCF /DP <> ID &! 16@o}?O῾O3 Aap\h FхC*mᯮ0 !A`7 EI endstream endobj 80 0 obj <> stream 76 0 0 0 0 0 d1 endstream endobj 81 0 obj <> stream 0 0 0 38 61 104 d1 61 0 0 66 0 38 cm BI /IM true /W 61 /H 66 /BPC 1 /F /CCF /DP <> ID &\  PMo `}&zo&oo&&_/z -mva,2 EI endstream endobj 82 0 obj <> stream 53 0 0 0 0 0 d1 endstream endobj 83 0 obj <> stream 0 0 0 0 66 80 d1 66 0 0 80 0 0 cm BI /IM true /W 66 /H 80 /BPC 1 /F /CCF /DP <> ID &C eC H OzM&|'>z?K ֿ`k᭾` 0]b`@ EI endstream endobj 84 0 obj <> stream 0 0 0 28 47 79 d1 47 0 0 51 0 28 cm BI /IM true /W 47 /H 51 /BPC 1 /F /CCF /DP <> ID &A@@Fcz I޷_ .Am[ EI endstream endobj 85 0 obj <> stream 0 0 0 29 54 99 d1 54 0 0 70 0 29 cm BI /IM true /W 54 /H 70 /BPC 1 /F /CCF /DP <> ID *7j2Ԇ)5 |S}?A|+ ~ᯯu_ 0l\01  @ EI endstream endobj 86 0 obj <> stream 0 0 0 30 52 100 d1 52 0 0 70 0 30 cm BI /IM true /W 52 /H 70 /BPC 1 /F /CCF /DP <> ID &fЃxGn-(xh???$߾?-?>׭¼-@ EI endstream endobj 87 0 obj <> stream 57 0 0 0 0 0 d1 endstream endobj 88 0 obj <> stream 0 0 0 29 37 77 d1 37 0 0 48 0 29 cm BI /IM true /W 37 /H 48 /BPC 1 /F /CCF /DP <> ID $MFP?X W~X0p€ EI endstream endobj 89 0 obj <> stream 0 0 0 4 24 77 d1 24 0 0 73 0 4 cm BI /IM true /W 24 /H 73 /BPC 1 /F /CCF /DP <> ID j2'K  EI endstream endobj 90 0 obj <> stream 42 0 0 0 0 0 d1 endstream endobj 91 0 obj <> stream 0 0 0 28 50 101 d1 50 0 0 73 0 28 cm BI /IM true /W 50 /H 73 /BPC 1 /F /CCF /DP <> ID &' 7xX}> stream 30 0 0 0 0 0 d1 endstream endobj 93 0 obj <> stream 0 0 0 1 55 77 d1 55 0 0 76 0 1 cm BI /IM true /W 55 /H 76 /BPC 1 /F /CCF /DP <> ID *&( a?u|0 W]cQ0 EI endstream endobj 94 0 obj <> stream 0 0 0 10 33 79 d1 33 0 0 69 0 10 cm BI /IM true /W 33 /H 69 /BPC 1 /F /CCF /DP <> ID &Ax#6~OĄ^M_  EI endstream endobj 95 0 obj <> stream 0 0 0 24 42 75 d1 42 0 0 51 0 24 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &A@' z+an]Al-a)    EI endstream endobj 96 0 obj <> stream 112 0 0 0 0 0 d1 endstream endobj 97 0 obj <> stream 0 0 0 0 97 102 d1 97 0 0 102 0 0 cm BI /IM true /W 97 /H 102 /BPC 1 /F /CCF /DP <> ID &SLP<|$p@AoIoI >o oOk޿v6iv ]Km- Ka   Π`/IlO EI endstream endobj 98 0 obj <> stream 0 0 0 5 44 78 d1 44 0 0 73 0 5 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID &/} e}aݷ >m>- ~w %visA8b  @ EI endstream endobj 99 0 obj <> stream 0 0 0 5 44 81 d1 44 0 0 76 0 5 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/xo`&o 0[޿Kzm/\<-a.ab k  EI endstream endobj 100 0 obj <> stream 0 0 0 5 44 81 d1 44 0 0 76 0 5 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/3zMA0z_K ׶`^=Cgm߷ Xa` EI endstream endobj 101 0 obj <> stream 0 0 0 0 73 75 d1 73 0 0 75 0 0 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID !AIC;P0 a~ ?o~a߇_^^__^^ץd3  EI endstream endobj 102 0 obj <> stream 0 0 0 26 42 77 d1 42 0 0 51 0 26 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8`@ EI endstream endobj 103 0 obj <> stream 82 0 0 0 0 0 d1 endstream endobj 104 0 obj <> stream 0 0 0 28 49 79 d1 49 0 0 51 0 28 cm BI /IM true /W 49 /H 51 /BPC 1 /F /CCF /DP <> ID &zz i7~@ x>AFzתKK] B  EI endstream endobj 105 0 obj <> stream 52 0 0 0 0 0 d1 endstream endobj 106 0 obj <> stream 0 0 0 29 85 77 d1 85 0 0 48 0 29 cm BI /IM true /W 85 /H 48 /BPC 1 /F /CCF /DP <> ID *̫?j2P /?…4Ng[I`郮Xapb0H0@@@ EI endstream endobj 107 0 obj <> stream 0 0 0 27 55 75 d1 55 0 0 48 0 27 cm BI /IM true /W 55 /H 48 /BPC 1 /F /CCF /DP <> ID *&( a?F\01XaI` EI endstream endobj 108 0 obj <> stream 47 0 0 0 0 0 d1 endstream endobj 109 0 obj <> stream 0 0 0 0 38 77 d1 38 0 0 77 0 0 cm BI /IM true /W 38 /H 77 /BPC 1 /F /CCF /DP <> ID & *0~MB d$;߿ adž ) EI endstream endobj 110 0 obj <> stream 0 0 0 0 48 80 d1 48 0 0 80 0 0 cm BI /IM true /W 48 /H 80 /BPC 1 /F /CCF /DP <> ID &0H la4M⾴elQ]' krK2 8\. ]u.] dJ{<@ EI endstream endobj 111 0 obj <> stream 74 0 0 0 0 0 d1 endstream endobj 112 0 obj <> stream 0 0 0 28 36 79 d1 36 0 0 51 0 28 cm BI /IM true /W 36 /H 51 /BPC 1 /F /CCF /DP <> ID 0?NGu:xKAr א, @@]_kfpx EI endstream endobj 113 0 obj <> stream 31 0 0 0 0 0 d1 endstream endobj 114 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &A@973>AH<ZO~_av4mp_ x`!WC[ EI endstream endobj 115 0 obj <> stream 0 0 0 -3 74 75 d1 74 0 0 78 0 -3 cm BI /IM true /W 74 /H 78 /BPC 1 /F /CCF /DP <> ID !ML F[ a~޻_ikv^p=_׿x_kka@ EI endstream endobj 116 0 obj <> stream 98 0 0 0 0 0 d1 endstream endobj 117 0 obj <> stream 60 0 0 0 0 0 d1 endstream endobj 118 0 obj <> stream 0 0 0 1 25 77 d1 25 0 0 76 0 1 cm BI /IM true /W 25 /H 76 /BPC 1 /F /CCF /DP <> ID j2 j&  EI endstream endobj 119 0 obj <> stream 48 0 0 0 0 0 d1 endstream endobj 120 0 obj <> stream 0 0 0 0 63 75 d1 63 0 0 75 0 0 cm BI /IM true /W 63 /H 75 /BPC 1 /F /CCF /DP <> ID #`5C P_|4~@=}t4(RZ EI endstream endobj 121 0 obj <> stream 97 0 0 0 0 0 d1 endstream endobj 122 0 obj <> stream 43 0 0 0 0 0 d1 endstream endobj 123 0 obj <> stream 0 0 0 1 54 79 d1 54 0 0 78 0 1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &`4|@~}A|mi|.}0i|0 Bx` j&  EI endstream endobj 124 0 obj <> stream 0 0 0 66 13 99 d1 13 0 0 33 0 66 cm BI /IM true /W 13 /H 33 /BPC 1 /F /CCF /DP <> ID &w{|!]a EI endstream endobj 125 0 obj <> stream 55 0 0 0 0 0 d1 endstream endobj 126 0 obj <> stream 0 0 0 0 74 75 d1 74 0 0 75 0 0 cm BI /IM true /W 74 /H 75 /BPC 1 /F /CCF /DP <> ID *LZjD0_}萾/_K%~ / _%_ƟAC)GX_ EI endstream endobj 127 0 obj <> stream 0 0 0 2 74 80 d1 74 0 0 78 0 2 cm BI /IM true /W 74 /H 78 /BPC 1 /F /CCF /DP <> ID &P ?<@@ނ| zPOoWAă @ EI endstream endobj 128 0 obj <> stream 0 0 0 30 52 79 d1 52 0 0 49 0 30 cm BI /IM true /W 52 /H 49 /BPC 1 /F /CCF /DP <> ID &\\-?>O}?A_ 8@ EI endstream endobj 129 0 obj <> stream 39 0 0 0 0 0 d1 endstream endobj 130 0 obj <> stream 96 0 0 0 0 0 d1 endstream endobj 131 0 obj <> stream 73 0 0 0 0 0 d1 endstream endobj 132 0 obj <> stream 56 0 0 0 0 0 d1 endstream endobj 133 0 obj <> stream 0 0 0 2 36 75 d1 36 0 0 73 0 2 cm BI /IM true /W 36 /H 73 /BPC 1 /F /CCF /DP <> ID j /&R?@ EI endstream endobj 134 0 obj <> stream 92 0 0 0 0 0 d1 endstream endobj 135 0 obj <> stream 0 0 0 0 47 78 d1 47 0 0 78 0 0 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &1O߼?{?{ >pmW@ EI endstream endobj 136 0 obj <> stream 0 0 0 2 44 78 d1 44 0 0 76 0 2 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8k Xx@z zM~z4q_Y]u\4  _?`g EI endstream endobj 137 0 obj <> stream 0 0 0 0 49 75 d1 49 0 0 75 0 0 cm BI /IM true /W 49 /H 75 /BPC 1 /F /CCF /DP <> ID &G!``)5_ ?ao ?ao   EI endstream endobj 138 0 obj <> stream 0 0 0 67 12 78 d1 12 0 0 11 0 67 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &ۄ/k0P EI endstream endobj 139 0 obj <> stream 59 0 0 0 0 0 d1 endstream endobj 140 0 obj <> stream 0 0 0 0 67 75 d1 67 0 0 75 0 0 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID &gMBaiG Ax/_d @ EI endstream endobj 141 0 obj <> stream 0 0 0 48 28 55 d1 28 0 0 7 0 48 cm BI /IM true /W 28 /H 7 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 142 0 obj <> stream 0 0 0 30 12 77 d1 12 0 0 47 0 30 cm BI /IM true /W 12 /H 47 /BPC 1 /F /CCF /DP <> ID &ۄ/k0X8ɮ@@ EI endstream endobj 143 0 obj <> stream 0 0 0 93 67 99 d1 67 0 0 6 0 93 cm BI /IM true /W 67 /H 6 /BPC 1 /F /CCF /DP <> ID &|^MR EI endstream endobj 144 0 obj <> stream 0 0 0 -2 72 77 d1 72 0 0 79 0 -2 cm BI /IM true /W 72 /H 79 /BPC 1 /F /CCF /DP <> ID &k!c d1S@|Ξk@H"気Z KR(AyABH `fo  0I1M?WA+/׿?ֻl$;j|6  ^{ !)v %[iv mlgX`ǐ/h  EI endstream endobj 145 0 obj <> stream 0 0 0 2 92 77 d1 92 0 0 75 0 2 cm BI /IM true /W 92 /H 75 /BPC 1 /F /CCF /DP <> ID *s`jD0 \[ a'FH0o & o[I'oaA8qL  EI endstream endobj 146 0 obj <> stream 101 0 0 0 0 0 d1 endstream endobj 147 0 obj <> stream 0 0 0 0 57 94 d1 57 0 0 94 0 0 cm BI /IM true /W 57 /H 94 /BPC 1 /F /CCF /DP <> ID &?(Ap؟ cL> EI endstream endobj 148 0 obj <> stream 0 0 0 -5 50 94 d1 50 0 0 99 0 -5 cm BI /IM true /W 50 /H 99 /BPC 1 /F /CCF /DP <> ID `cĉ EI endstream endobj 149 0 obj <> stream 0 0 0 29 80 94 d1 80 0 0 65 0 29 cm BI /IM true /W 80 /H 65 /BPC 1 /F /CCF /DP <> ID & JfT׿?)C |2Wb/0A EI endstream endobj 150 0 obj <> stream 0 0 0 3 50 96 d1 50 0 0 93 0 3 cm BI /IM true /W 50 /H 93 /BPC 1 /F /CCF /DP <> ID &Pzz5 0^ ċ5>  EI endstream endobj 151 0 obj <> stream 0 0 0 29 56 94 d1 56 0 0 65 0 29 cm BI /IM true /W 56 /H 65 /BPC 1 /F /CCF /DP <> ID "GMB?O~u_o66})5  EI endstream endobj 152 0 obj <> stream 0 0 0 28 70 96 d1 70 0 0 68 0 28 cm BI /IM true /W 70 /H 68 /BPC 1 /F /CCF /DP <> ID &j nOD N(| k7޷ސa}>>_=o a.m- a 1 `fi EI endstream endobj 153 0 obj <> stream 0 0 0 -6 79 96 d1 79 0 0 102 0 -6 cm BI /IM true /W 79 /H 102 /BPC 1 /F /CCF /DP <> ID &t:C`9&&  D`A\RI _H?O\6k0`Ȁ[bipazx*i EI endstream endobj 154 0 obj <> stream 84 0 0 0 0 0 d1 endstream endobj 155 0 obj <> stream 0 0 0 29 80 96 d1 80 0 0 67 0 29 cm BI /IM true /W 80 /H 67 /BPC 1 /F /CCF /DP <> ID &j!C`IV??H7)pWVC9? dt EI endstream endobj 156 0 obj <> stream 87 0 0 0 0 0 d1 endstream endobj 157 0 obj <> stream 0 0 0 28 60 96 d1 60 0 0 68 0 28 cm BI /IM true /W 60 /H 68 /BPC 1 /F /CCF /DP <> ID &t F<zF| AoXzO^O_l5ֿֿ~C(? ?߷톶Xaa_C. EI endstream endobj 158 0 obj <> stream 67 0 0 0 0 0 d1 endstream endobj 159 0 obj <> stream 0 0 0 -7 35 94 d1 35 0 0 101 0 -7 cm BI /IM true /W 35 /H 101 /BPC 1 /F /CCF /DP <> ID &BU+9O=?( EI endstream endobj 160 0 obj <> stream 0 0 0 0 47 78 d1 47 0 0 78 0 0 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &A(? 1Cb? EI endstream endobj 161 0 obj <> stream 0 0 0 60 19 78 d1 19 0 0 18 0 60 cm BI /IM true /W 19 /H 18 /BPC 1 /F /CCF /DP <> ID &|ɮkaa EI endstream endobj 162 0 obj <> stream 0 0 0 -4 134 80 d1 134 0 0 84 0 -4 cm BI /IM true /W 134 /H 84 /BPC 1 /F /CCF /DP <> ID &pg4AAauS.mo<'}~>i յO >O o? [Hr`7@ EI endstream endobj 163 0 obj <> stream 0 0 0 -5 67 78 d1 67 0 0 83 0 -5 cm BI /IM true /W 67 /H 83 /BPC 1 /F /CCF /DP <> ID &"hAyh_ W`^?P?"  EI endstream endobj 164 0 obj <> stream 141 0 0 0 0 0 d1 endstream endobj 165 0 obj <> stream 0 0 0 23 61 80 d1 61 0 0 57 0 23 cm BI /IM true /W 61 /H 57 /BPC 1 /F /CCF /DP <> ID &@i|A 0E8p }?a ]AqLZ ? _],6.= @` EI endstream endobj 166 0 obj <> stream 0 0 0 2 43 80 d1 43 0 0 78 0 2 cm BI /IM true /W 43 /H 78 /BPC 1 /F /CCF /DP <> ID &ܠ' <.}&޾!ā5>3? EI endstream endobj 167 0 obj <> stream 0 0 0 -6 30 78 d1 30 0 0 84 0 -6 cm BI /IM true /W 30 /H 84 /BPC 1 /F /CCF /DP <> ID &D\_A?_[ ( EI endstream endobj 168 0 obj <> stream 0 0 0 23 43 80 d1 43 0 0 57 0 23 cm BI /IM true /W 43 /H 57 /BPC 1 /F /CCF /DP <> ID &R?K>/jAp/׮Ay $Z kPe8aAG_k.%  EI endstream endobj 169 0 obj <> stream 94 0 0 0 0 0 d1 endstream endobj 170 0 obj <> stream 0 0 0 23 54 80 d1 54 0 0 57 0 23 cm BI /IM true /W 54 /H 57 /BPC 1 /F /CCF /DP <> ID & 0z#| 7}&5M?IC:_k.a-a`0  EI endstream endobj 171 0 obj <> stream 107 0 0 0 0 0 d1 endstream endobj 172 0 obj <> stream 0 0 0 25 66 78 d1 66 0 0 53 0 25 cm BI /IM true /W 66 /H 53 /BPC 1 /F /CCF /DP <> ID &x)?Η[&} }azҸ EI endstream endobj 173 0 obj <> stream 0 0 0 -5 66 80 d1 66 0 0 85 0 -5 cm BI /IM true /W 66 /H 85 /BPC 1 /F /CCF /DP <> ID &9@_ xA@P T2 tA^ᆻaw 'k"7#ra? @@ EI endstream endobj 174 0 obj <> stream 0 0 0 24 66 101 d1 66 0 0 77 0 24 cm BI /IM true /W 66 /H 77 /BPC 1 /F /CCF /DP <> ID #AQDxA |C  >o ?_]iD%†B)5 !Q EI endstream endobj 175 0 obj <> stream 118 0 0 0 0 0 d1 endstream endobj 176 0 obj <> stream 0 0 0 23 52 80 d1 52 0 0 57 0 23 cm BI /IM true /W 52 /H 57 /BPC 1 /F /CCF /DP <> ID & 0<"0G&x[>CLQ~> aiq0Y 0gP EI endstream endobj 177 0 obj <> stream 0 0 0 -5 65 78 d1 65 0 0 83 0 -5 cm BI /IM true /W 65 /H 83 /BPC 1 /F /CCF /DP <> ID eMD$}~/ //KK]\/?a??aD.  EI endstream endobj 178 0 obj <> stream 0 0 0 24 61 104 d1 61 0 0 80 0 24 cm BI /IM true /W 61 /H 80 /BPC 1 /F /CCF /DP <> ID &!<E8a7z_]d .-E>N ȡq{:@azMڗߧvv G)`h  EI endstream endobj 179 0 obj <> stream 0 0 0 -6 49 78 d1 49 0 0 84 0 -6 cm BI /IM true /W 49 /H 84 /BPC 1 /F /CCF /DP <> ID &(X4w}}xoo}7&Bia`Xb`^Az EI endstream endobj 180 0 obj <> stream 0 0 0 0 71 75 d1 71 0 0 75 0 0 cm BI /IM true /W 71 /H 75 /BPC 1 /F /CCF /DP <> ID &(C3]<zz i\G EI endstream endobj 181 0 obj <> stream 0 0 0 -7 25 102 d1 25 0 0 109 0 -7 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &_KK KK]~zz/߇a@ EI endstream endobj 182 0 obj <> stream 35 0 0 0 0 0 d1 endstream endobj 183 0 obj <> stream 0 0 0 28 55 75 d1 55 0 0 47 0 28 cm BI /IM true /W 55 /H 47 /BPC 1 /F /CCF /DP <> ID "$ .aKnv_ Wo֖]>h^z ^7X<觿 EI endstream endobj 184 0 obj <> stream 46 0 0 0 0 0 d1 endstream endobj 185 0 obj <> stream 0 0 0 29 55 79 d1 55 0 0 50 0 29 cm BI /IM true /W 55 /H 50 /BPC 1 /F /CCF /DP <> ID &Cj }aoz!p_ I EI endstream endobj 186 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &lo??ֿ-zz%pKK KK EI endstream endobj 187 0 obj <> stream 78 0 0 0 0 0 d1 endstream endobj 188 0 obj <> stream 0 0 0 -3 52 73 d1 52 0 0 76 0 -3 cm BI /IM true /W 52 /H 76 /BPC 1 /F /CCF /DP <> ID *&(nP__z_ z^_^/}5+? ?DG EI endstream endobj 189 0 obj <> stream 58 0 0 0 0 0 d1 endstream endobj 190 0 obj <> stream 0 0 0 0 77 78 d1 77 0 0 78 0 0 cm BI /IM true /W 77 /H 78 /BPC 1 /F /CCF /DP <> ID &Xh,?nPނo[y5C ¯_z}z^ xA|.'@? z/Az^AcH@ EI endstream endobj 191 0 obj <> stream 125 0 0 0 0 0 d1 endstream endobj 192 0 obj <> stream 0 0 0 0 32 75 d1 32 0 0 75 0 0 cm BI /IM true /W 32 /H 75 /BPC 1 /F /CCF /DP <> ID j!X`H@@ EI endstream endobj 193 0 obj <> stream 0 0 0 -2 73 78 d1 73 0 0 80 0 -2 cm BI /IM true /W 73 /H 80 /BPC 1 /F /CCF /DP <> ID &C C5azc}|%? K hѯ 6xk^pAײ@) A@ EI endstream endobj 194 0 obj <> stream 102 0 0 0 0 0 d1 endstream endobj 195 0 obj <> stream 83 0 0 0 0 0 d1 endstream endobj 196 0 obj <> stream 0 0 0 2 44 78 d1 44 0 0 76 0 2 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &Df+z`߿m~{O\?|$ߧ&=uKK]av+ a`€ EI endstream endobj 197 0 obj <> stream 49 0 0 0 0 0 d1 endstream endobj 198 0 obj <> stream 93 0 0 0 0 0 d1 endstream endobj 199 0 obj <> stream 109 0 0 0 0 0 d1 endstream endobj 200 0 obj <> stream 36 0 0 0 0 0 d1 endstream endobj 201 0 obj <> stream 0 0 0 30 73 79 d1 73 0 0 49 0 30 cm BI /IM true /W 73 /H 49 /BPC 1 /F /CCF /DP <> ID &(0 4< -?O_>Vatw>Xx_U? D@ EI endstream endobj 202 0 obj <> stream 33 0 0 0 0 0 d1 endstream endobj 203 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID &R?2A5L0_!FA  @#:UAFu5Tt cᐋMP EI endstream endobj 204 0 obj <> stream 0 0 0 28 45 79 d1 45 0 0 51 0 28 cm BI /IM true /W 45 /H 51 /BPC 1 /F /CCF /DP <> ID &A81^<'$ =A7ah/ _] paw[_ ad<@ EI endstream endobj 205 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID &03=<=?_ 'Kk=~rT恕m^ p\2=7[_X`a@@ EI endstream endobj 206 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &ȣ4O8Atw~~i?>Caz>_ [4   EI endstream endobj 207 0 obj <> stream 129 0 0 0 0 0 d1 endstream endobj 208 0 obj <> stream 0 0 0 2 67 77 d1 67 0 0 75 0 2 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID *@A$rj a^/_3#~zxK0PR0 EI endstream endobj 209 0 obj <> stream 32 0 0 0 0 0 d1 endstream endobj 210 0 obj <> stream 0 0 0 29 37 79 d1 37 0 0 50 0 29 cm BI /IM true /W 37 /H 50 /BPC 1 /F /CCF /DP <> ID & G3'>վc$X>h(? 7oݷ~K ?bkf0 EI endstream endobj 211 0 obj <> stream 0 0 0 8 31 79 d1 31 0 0 71 0 8 cm BI /IM true /W 31 /H 71 /BPC 1 /F /CCF /DP <> ID &0a?$brk> stream 0 0 0 29 46 79 d1 46 0 0 50 0 29 cm BI /IM true /W 46 /H 50 /BPC 1 /F /CCF /DP <> ID & >G5 oo?w!;mv k&` EI endstream endobj 213 0 obj <> stream 0 0 0 1 25 79 d1 25 0 0 78 0 1 cm BI /IM true /W 25 /H 78 /BPC 1 /F /CCF /DP <> ID &x&G_~Az EI endstream endobj 214 0 obj <> stream 0 0 0 66 12 77 d1 12 0 0 11 0 66 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &-=>  EI endstream endobj 215 0 obj <> stream 0 0 0 27 55 97 d1 55 0 0 70 0 27 cm BI /IM true /W 55 /H 70 /BPC 1 /F /CCF /DP <> ID &kk B?@AA $ǫK>MF׆ 0_+4<@ EI endstream endobj 216 0 obj <> stream 104 0 0 0 0 0 d1 endstream endobj 217 0 obj <> stream 0 0 0 0 50 69 d1 50 0 0 69 0 0 cm BI /IM true /W 50 /H 69 /BPC 1 /F /CCF /DP <> ID &8@i 8OcZ3'~M{_^]cax0^?2j  EI endstream endobj 218 0 obj <> stream 0 0 0 19 51 94 d1 51 0 0 75 0 19 cm BI /IM true /W 51 /H 75 /BPC 1 /F /CCF /DP <> ID &3aZ:6x ?Rk׵!O[_r ypk?5CaނO]kR;`xb/ta  EI endstream endobj 219 0 obj <> stream 0 0 0 30 51 77 d1 51 0 0 47 0 30 cm BI /IM true /W 51 /H 47 /BPC 1 /F /CCF /DP <> ID &6S'? IOA'[BO5I EI endstream endobj 220 0 obj <> stream 0 0 0 19 50 91 d1 50 0 0 72 0 19 cm BI /IM true /W 50 /H 72 /BPC 1 /F /CCF /DP <> ID & jD#?D o0M_k\Eu5%` ab( EI endstream endobj 221 0 obj <> stream 0 0 0 20 51 69 d1 51 0 0 49 0 20 cm BI /IM true /W 51 /H 49 /BPC 1 /F /CCF /DP <> ID &@(@ :Z2?H}c_T EI endstream endobj 222 0 obj <> stream 0 0 0 19 57 67 d1 57 0 0 48 0 19 cm BI /IM true /W 57 /H 48 /BPC 1 /F /CCF /DP <> ID &ΦBMRY. ߕZ b"@HI5I# 8 EI endstream endobj 223 0 obj <> stream 0 0 0 0 50 69 d1 50 0 0 69 0 0 cm BI /IM true /W 50 /H 69 /BPC 1 /F /CCF /DP <> ID & )D o0M_k^ ⿮}/0^ / k EI endstream endobj 224 0 obj <> stream 0 0 0 10 45 77 d1 45 0 0 67 0 10 cm BI /IM true /W 45 /H 67 /BPC 1 /F /CCF /DP <> ID &_! EI endstream endobj 225 0 obj <> stream 0 0 0 19 50 67 d1 50 0 0 48 0 19 cm BI /IM true /W 50 /H 48 /BPC 1 /F /CCF /DP <> ID &?U }}diӔ)BqU5<@ EI endstream endobj 226 0 obj <> stream 0 0 0 20 53 67 d1 53 0 0 47 0 20 cm BI /IM true /W 53 /H 47 /BPC 1 /F /CCF /DP <> ID &`)_> stream 0 0 0 8 40 77 d1 40 0 0 69 0 8 cm BI /IM true /W 40 /H 69 /BPC 1 /F /CCF /DP <> ID &GzU1? k  @ EI endstream endobj 228 0 obj <> stream 0 0 0 -2 44 67 d1 44 0 0 69 0 -2 cm BI /IM true /W 44 /H 69 /BPC 1 /F /CCF /DP <> ID &? X| EI endstream endobj 229 0 obj <> stream 0 0 0 28 42 79 d1 42 0 0 51 0 28 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &@?5G ޿ :^\ _jCf>Bw<5XkΡ@ EI endstream endobj 230 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &%TȞC<>kZ&@@ EI endstream endobj 231 0 obj <> stream 0 0 0 17 45 79 d1 45 0 0 62 0 17 cm BI /IM true /W 45 /H 62 /BPC 1 /F /CCF /DP <> ID &?A? &5UɪY EI endstream endobj 232 0 obj <> stream 0 0 0 30 51 77 d1 51 0 0 47 0 30 cm BI /IM true /W 51 /H 47 /BPC 1 /F /CCF /DP <> ID &vkI^}_[kKa-د o>FJo zMzFPᦠ EI endstream endobj 233 0 obj <> stream 0 0 0 0 54 72 d1 54 0 0 72 0 0 cm BI /IM true /W 54 /H 72 /BPC 1 /F /CCF /DP <> ID &O_ԟA =/A>/5_xav<>*0^A EI endstream endobj 234 0 obj <> stream 99 0 0 0 0 0 d1 endstream endobj 235 0 obj <> stream 0 0 0 18 51 69 d1 51 0 0 51 0 18 cm BI /IM true /W 51 /H 51 /BPC 1 /F /CCF /DP <> ID &D`@.-~H-t kcA` 2 S/N ~[ ad8p EI endstream endobj 236 0 obj <> stream 51 0 0 0 0 0 d1 endstream endobj 237 0 obj <> stream 80 0 0 0 0 0 d1 endstream endobj 238 0 obj <> stream 0 0 0 29 51 77 d1 51 0 0 48 0 29 cm BI /IM true /W 51 /H 48 /BPC 1 /F /CCF /DP <> ID &%TȞC<RG 5&X  EI endstream endobj 239 0 obj <> stream 29 0 0 0 0 0 d1 endstream endobj 240 0 obj <> stream 85 0 0 0 0 0 d1 endstream endobj 241 0 obj <> stream 0 0 0 0 62 75 d1 62 0 0 75 0 0 cm BI /IM true /W 62 /H 75 /BPC 1 /F /CCF /DP <> ID "5t k4G "? EI endstream endobj 242 0 obj <> stream 100 0 0 0 0 0 d1 endstream endobj 243 0 obj <> stream 0 0 0 1 72 81 d1 72 0 0 80 0 1 cm BI /IM true /W 72 /H 80 /BPC 1 /F /CCF /DP <> ID &C n4aAA}$A[o 0[[__ m[ m`Xe !_ @ EI endstream endobj 244 0 obj <> stream 136 0 0 0 0 0 d1 endstream endobj 245 0 obj <> stream 0 0 0 0 56 77 d1 56 0 0 77 0 0 cm BI /IM true /W 56 /H 77 /BPC 1 /F /CCF /DP <> ID &?3 G> >?AFxOoÇ`(O EI endstream endobj 246 0 obj <> stream 68 0 0 0 0 0 d1 endstream endobj 247 0 obj <> stream 0 0 0 30 13 99 d1 13 0 0 69 0 30 cm BI /IM true /W 13 /H 69 /BPC 1 /F /CCF /DP <> ID &w{|!]a. @ EI endstream endobj 248 0 obj <> stream 70 0 0 0 0 0 d1 endstream endobj 249 0 obj <> stream 0 0 0 64 14 77 d1 14 0 0 13 0 64 cm BI /IM true /W 14 /H 13 /BPC 1 /F /CCF /DP <> ID &_[[P EI endstream endobj 250 0 obj <> stream 41 0 0 0 0 0 d1 endstream endobj 251 0 obj <> stream 40 0 0 0 0 0 d1 endstream endobj 252 0 obj <> stream 0 0 0 8 45 77 d1 45 0 0 69 0 8 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID &Zdoov>a{{<7  }?_ v_0K W-0`|@ EI endstream endobj 253 0 obj <> stream 89 0 0 0 0 0 d1 endstream endobj 254 0 obj <> stream 0 0 0 10 52 77 d1 52 0 0 67 0 10 cm BI /IM true /W 52 /H 67 /BPC 1 /F /CCF /DP <> ID &%5Ig .^u%ooȊ=cT EI endstream endobj 260 0 obj <> stream 0 0 0 0 55 78 d1 55 0 0 78 0 0 cm BI /IM true /W 55 /H 78 /BPC 1 /F /CCF /DP <> ID &of0a}o;߾k { aa.OwKU^X`ȀX`Y @@ EI endstream endobj 261 0 obj <> stream 0 0 0 -5 86 80 d1 86 0 0 85 0 -5 cm BI /IM true /W 86 /H 85 /BPC 1 /F /CCF /DP <> ID &j ?10+Ȁ" ް7MA[ }?O5x_Kzw zKzKa `,2 Xx,3Ld4 EI endstream endobj 262 0 obj <> stream 0 0 0 -5 66 80 d1 66 0 0 85 0 -5 cm BI /IM true /W 66 /H 85 /BPC 1 /F /CCF /DP <> ID &P DA'  7_~K0\y ?P EI endstream endobj 263 0 obj <> stream 0 0 0 24 67 78 d1 67 0 0 54 0 24 cm BI /IM true /W 67 /H 54 /BPC 1 /F /CCF /DP <> ID &"hA?(оd* EI endstream endobj 264 0 obj <> stream 106 0 0 0 0 0 d1 endstream endobj 265 0 obj <> stream 0 0 0 -12 52 108 d1 52 0 0 120 0 -12 cm BI /IM true /W 52 /H 120 /BPC 1 /F /CCF /DP <> ID &2 j{߇{x߿~aڀ EI endstream endobj 266 0 obj <> stream 0 0 0 24 67 80 d1 67 0 0 56 0 24 cm BI /IM true /W 67 /H 56 /BPC 1 /F /CCF /DP <> ID &/ a AD~?P=5rp.D@ EI endstream endobj 267 0 obj <> stream 128 0 0 0 0 0 d1 endstream endobj 268 0 obj <> stream 120 0 0 0 0 0 d1 endstream endobj 269 0 obj <> stream 0 0 0 20 14 67 d1 14 0 0 47 0 20 cm BI /IM true /W 14 /H 47 /BPC 1 /F /CCF /DP <> ID &_[[Xkڀ EI endstream endobj 270 0 obj <> stream 0 0 0 -9 45 77 d1 45 0 0 86 0 -9 cm BI /IM true /W 45 /H 86 /BPC 1 /F /CCF /DP <> ID &֯߿߿?~?߼?~~ ?a@@ EI endstream endobj 272 0 obj <> stream 0 0 0 39 37 47 d1 37 0 0 8 0 39 cm BI /IM true /W 37 /H 8 /BPC 1 /F /CCF /DP <> ID &5@ EI endstream endobj 273 0 obj <> stream 0 0 0 8 35 103 d1 35 0 0 95 0 8 cm BI /IM true /W 35 /H 95 /BPC 1 /F /CCF /DP <> ID &>Lfz??B+X  EI endstream endobj 274 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID &>Azz4 _a,.Ap. Ȁσ 'oȴNv @@~,05 EI endstream endobj 275 0 obj <> stream 0 0 0 -5 82 80 d1 82 0 0 85 0 -5 cm BI /IM true /W 82 /H 85 /BPC 1 /F /CCF /DP <> ID &k jI| )<- ޓ| IW¾s\(xd;k [k~07*~<x0O5y m\@ EI endstream endobj 276 0 obj <> stream 0 0 0 23 60 80 d1 60 0 0 57 0 23 cm BI /IM true /W 60 /H 57 /BPC 1 /F /CCF /DP <> ID & >@ x zxFC`=7 ɯx\5zz/kaK`ȺAF EI endstream endobj 277 0 obj <> stream 0 0 0 0 32 35 d1 32 0 0 35 0 0 cm BI /IM true /W 32 /H 35 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 4 28 100 d1 28 0 0 96 0 4 cm BI /IM true /W 28 /H 96 /BPC 1 /F /CCF /DP <> ID &Fc|'l;TjzHf3=?P EI endstream endobj 279 0 obj <> stream 0 0 0 4 44 80 d1 44 0 0 76 0 4 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &  xFaH7@ӿ _K.,d{{v ?]޻Aa'+a``@@ EI endstream endobj 280 0 obj <> stream 0 0 0 4 44 80 d1 44 0 0 76 0 4 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/F xF >ޡ~}_ ^[l%`Zz -&~z&?_/vh-K ح EI endstream endobj 281 0 obj <> stream 0 0 0 0 60 78 d1 60 0 0 78 0 0 cm BI /IM true /W 60 /H 78 /BPC 1 /F /CCF /DP <> ID &CK_&fg@~?? ߰ { EI endstream endobj 282 0 obj <> stream 0 0 0 0 76 78 d1 76 0 0 78 0 0 cm BI /IM true /W 76 /H 78 /BPC 1 /F /CCF /DP <> ID &l5???'Too ߿ |-(o߯&?A Ip% EI endstream endobj 283 0 obj <> stream 0 0 0 -4 42 106 d1 42 0 0 110 0 -4 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &k~~߇߿ EI endstream endobj 284 0 obj <> stream 0 0 0 0 54 69 d1 54 0 0 69 0 0 cm BI /IM true /W 54 /H 69 /BPC 1 /F /CCF /DP <> ID &|PZG5x__aoׯe AI  EI endstream endobj 285 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID & Cx |@& ?|?N ENkKpa. % 0^ /C c)f>f~l4 EI endstream endobj 286 0 obj <> stream 0 0 0 79 45 88 d1 45 0 0 9 0 79 cm BI /IM true /W 45 /H 9 /BPC 1 /F /CCF /DP <> ID &_@ EI endstream endobj 287 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &=+ zDŽxH?OTFoO_ -޻ݏwP0^d a` / EI endstream endobj 288 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID &܆> A >t 7>A7_îsRi|0_b`P?O6?om[_ ,`p EI endstream endobj 289 0 obj <> stream 0 0 0 -4 70 78 d1 70 0 0 82 0 -4 cm BI /IM true /W 70 /H 82 /BPC 1 /F /CCF /DP <> ID &w Q ?AQg@ EI endstream endobj 290 0 obj <> stream 0 0 0 -5 31 78 d1 31 0 0 83 0 -5 cm BI /IM true /W 31 /H 83 /BPC 1 /F /CCF /DP <> ID &D@@ EI endstream endobj 291 0 obj <> stream 0 0 0 -2 59 73 d1 59 0 0 75 0 -2 cm BI /IM true /W 59 /H 75 /BPC 1 /F /CCF /DP <> ID !@> stream 0 0 0 20 51 93 d1 51 0 0 73 0 20 cm BI /IM true /W 51 /H 73 /BPC 1 /F /CCF /DP <> ID &3 Ozz~}a>7~x_/|/o߯$__?/(A24Y5V EI endstream endobj 293 0 obj <> stream 0 0 0 3 79 78 d1 79 0 0 75 0 3 cm BI /IM true /W 79 /H 75 /BPC 1 /F /CCF /DP <> ID &\#k>H]C_o ?޾|/I~^ 7z޷GC\3Ip@ EI endstream endobj 294 0 obj <> stream 145 0 0 0 0 0 d1 endstream endobj 295 0 obj <> stream 0 0 0 45 53 48 d1 53 0 0 3 0 45 cm BI /IM true /W 53 /H 3 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 296 0 obj <> stream 0 0 0 0 25 26 d1 25 0 0 26 0 0 cm BI /IM true /W 25 /H 26 /BPC 1 /F /CCF /DP <> ID &<aFy`,=q EI endstream endobj 297 0 obj <> stream 0 0 0 1 62 66 d1 62 0 0 65 0 1 cm BI /IM true /W 62 /H 65 /BPC 1 /F /CCF /DP <> ID #?MY@fE涿_ ]0?l3 /K^_ ׏ / EI endstream endobj 298 0 obj <> stream 0 0 0 3 20 66 d1 20 0 0 63 0 3 cm BI /IM true /W 20 /H 63 /BPC 1 /F /CCF /DP <> ID jdkXR@ EI endstream endobj 299 0 obj <> stream 25 0 0 0 0 0 d1 endstream endobj 300 0 obj <> stream 0 0 0 25 40 68 d1 40 0 0 43 0 25 cm BI /IM true /W 40 /H 43 /BPC 1 /F /CCF /DP <> ID &c=XFfA ?>5Z__m-oXa[^ EI endstream endobj 301 0 obj <> stream 0 0 0 2 32 66 d1 32 0 0 64 0 2 cm BI /IM true /W 32 /H 64 /BPC 1 /F /CCF /DP <> ID &䏵f`ȗ~_@ EI endstream endobj 302 0 obj <> stream 0 0 0 11 29 68 d1 29 0 0 57 0 11 cm BI /IM true /W 29 /H 57 /BPC 1 /F /CCF /DP <> ID & xFmxA?O$jh} EI endstream endobj 303 0 obj <> stream 0 0 0 3 46 66 d1 46 0 0 63 0 3 cm BI /IM true /W 46 /H 63 /BPC 1 /F /CCF /DP <> ID 899Zk3O`/0XQ  EI endstream endobj 304 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_az}?O:A~"h mX6,) EI endstream endobj 305 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID 5SAAau-ް^ح]k 7=+7ނ,=ţZ EI endstream endobj 306 0 obj <> stream 0 0 0 25 42 68 d1 42 0 0 43 0 25 cm BI /IM true /W 42 /H 43 /BPC 1 /F /CCF /DP <> ID & U[g1LB{?~M~~`Ad!.<X2p  EI endstream endobj 307 0 obj <> stream 0 0 0 26 73 66 d1 73 0 0 40 0 26 cm BI /IM true /W 73 /H 40 /BPC 1 /F /CCF /DP <> ID &N( kk3NMI ` @@ EI endstream endobj 308 0 obj <> stream 0 0 0 26 45 84 d1 45 0 0 58 0 26 cm BI /IM true /W 45 /H 58 /BPC 1 /F /CCF /DP <> ID Gԉ6c}0AA_](U_&  EI endstream endobj 309 0 obj <> stream 0 0 0 25 31 68 d1 31 0 0 43 0 25 cm BI /IM true /W 31 /H 43 /BPC 1 /F /CCF /DP <> ID 0)8Oa7L:Ac_D".,#X |ɪmv/!  EI endstream endobj 310 0 obj <> stream 0 0 0 26 32 66 d1 32 0 0 40 0 26 cm BI /IM true /W 32 /H 40 /BPC 1 /F /CCF /DP <> ID !8/k?xmlB50 EI endstream endobj 311 0 obj <> stream 0 0 0 26 46 66 d1 46 0 0 40 0 26 cm BI /IM true /W 46 /H 40 /BPC 1 /F /CCF /DP <> ID 899ZkuD` MG ( EI endstream endobj 312 0 obj <> stream 0 0 0 3 47 68 d1 47 0 0 65 0 3 cm BI /IM true /W 47 /H 65 /BPC 1 /F /CCF /DP <> ID &AO97|a:AL-'_H?_/kkͮ^/OA  EI endstream endobj 313 0 obj <> stream 0 0 0 5 20 66 d1 20 0 0 61 0 5 cm BI /IM true /W 20 /H 61 /BPC 1 /F /CCF /DP <> ID jdkMKO EI endstream endobj 314 0 obj <> stream 0 0 0 25 42 87 d1 42 0 0 62 0 25 cm BI /IM true /W 42 /H 62 /BPC 1 /F /CCF /DP <> ID &@.0zށ}MS_ Xl.=t @z< ZrtЁM zih597  @ EI endstream endobj 315 0 obj <> stream 0 0 0 26 46 68 d1 46 0 0 42 0 26 cm BI /IM true /W 46 /H 42 /BPC 1 /F /CCF /DP <> ID &9 P:Ai/DMG  EI endstream endobj 316 0 obj <> stream 26 0 0 0 0 0 d1 endstream endobj 317 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_a<f}>:< &;{~k` , EI endstream endobj 318 0 obj <> stream 0 0 0 27 63 68 d1 63 0 0 41 0 27 cm BI /IM true /W 63 /H 41 /BPC 1 /F /CCF /DP <> ID &g003յk}> -Mx~TIoz t5  EI endstream endobj 319 0 obj <> stream 24 0 0 0 0 0 d1 endstream endobj 320 0 obj <> stream 0 0 0 27 37 66 d1 37 0 0 39 0 27 cm BI /IM true /W 37 /H 39 /BPC 1 /F /CCF /DP <> ID &A"z [ /_m-  EI endstream endobj 321 0 obj <> stream 0 0 0 27 44 87 d1 44 0 0 60 0 27 cm BI /IM true /W 44 /H 60 /BPC 1 /F /CCF /DP <> ID &,Aq7~?___ pS/ EI endstream endobj 322 0 obj <> stream 0 0 0 17 38 66 d1 38 0 0 49 0 17 cm BI /IM true /W 38 /H 49 /BPC 1 /F /CCF /DP <> ID &XA<'>axPCMP_ڀ EI endstream endobj 323 0 obj <> stream 0 0 0 9 36 66 d1 36 0 0 57 0 9 cm BI /IM true /W 36 /H 57 /BPC 1 /F /CCF /DP <> ID &׿~?~@ EI endstream endobj 324 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID &5G2 YB©Rj0 EI endstream endobj 325 0 obj <> stream 0 0 0 27 35 66 d1 35 0 0 39 0 27 cm BI /IM true /W 35 /H 39 /BPC 1 /F /CCF /DP <> ID &!P!tpO_%#!d@xKZ@N (c8H? θ_@ EI endstream endobj 326 0 obj <> stream 0 0 0 3 24 74 d1 24 0 0 71 0 3 cm BI /IM true /W 24 /H 71 /BPC 1 /F /CCF /DP <> ID &B8Zh-/z/x_ܚ}{p EI endstream endobj 327 0 obj <> stream 0 0 0 11 44 66 d1 44 0 0 55 0 11 cm BI /IM true /W 44 /H 55 /BPC 1 /F /CCF /DP <> ID &N|!Z't _jk]}f Mj  EI endstream endobj 328 0 obj <> stream 0 0 0 26 43 88 d1 43 0 0 62 0 26 cm BI /IM true /W 43 /H 62 /BPC 1 /F /CCF /DP <> ID &@/!!( @5L\.ap\ =z('O 'kc<3 EI endstream endobj 329 0 obj <> stream 0 0 0 27 39 50 d1 39 0 0 23 0 27 cm BI /IM true /W 39 /H 23 /BPC 1 /F /CCF /DP <> ID &_( |@ EI endstream endobj 330 0 obj <> stream 95 0 0 0 0 0 d1 endstream endobj 331 0 obj <> stream 0 0 0 9 42 66 d1 42 0 0 57 0 9 cm BI /IM true /W 42 /H 57 /BPC 1 /F /CCF /DP <> ID &@-?Ms ߷ǿ EI endstream endobj 332 0 obj <> stream 0 0 0 3 23 74 d1 23 0 0 71 0 3 cm BI /IM true /W 23 /H 71 /BPC 1 /F /CCF /DP <> ID &;5A{}.^^AauKKXU MP_ EI endstream endobj 333 0 obj <> stream 0 0 0 56 11 84 d1 11 0 0 28 0 56 cm BI /IM true /W 11 /H 28 /BPC 1 /F /CCF /DP <> ID &zTz/ڀ EI endstream endobj 334 0 obj <> stream 0 0 0 11 46 66 d1 46 0 0 55 0 11 cm BI /IM true /W 46 /H 55 /BPC 1 /F /CCF /DP <> ID &5G2 \ij@ EI endstream endobj 335 0 obj <> stream 0 0 0 27 44 66 d1 44 0 0 39 0 27 cm BI /IM true /W 44 /H 39 /BPC 1 /F /CCF /DP <> ID &O|-koM___Oɪ EI endstream endobj 336 0 obj <> stream 0 0 0 54 13 66 d1 13 0 0 12 0 54 cm BI /IM true /W 13 /H 12 /BPC 1 /F /CCF /DP <> ID & EI endstream endobj 337 0 obj <> stream 0 0 0 11 38 66 d1 38 0 0 55 0 11 cm BI /IM true /W 38 /H 55 /BPC 1 /F /CCF /DP <> ID &(OA'BQ5A~A'Ӈ}AB  EI endstream endobj 338 0 obj <> stream 0 0 0 27 43 66 d1 43 0 0 39 0 27 cm BI /IM true /W 43 /H 39 /BPC 1 /F /CCF /DP <> ID &I,0NuP)\ xA|u>\fC.G\?iK[  EI endstream endobj 339 0 obj <> stream 0 0 0 27 42 66 d1 42 0 0 39 0 27 cm BI /IM true /W 42 /H 39 /BPC 1 /F /CCF /DP <> ID &Cah<>QPaa5H_@ EI endstream endobj 340 0 obj <> stream 0 0 0 11 42 66 d1 42 0 0 55 0 11 cm BI /IM true /W 42 /H 55 /BPC 1 /F /CCF /DP <> ID & TS!{׏ T>MPP EI endstream endobj 341 0 obj <> stream 0 0 0 9 42 66 d1 42 0 0 57 0 9 cm BI /IM true /W 42 /H 57 /BPC 1 /F /CCF /DP <> ID &AG NMVN ?_ik =q~@ EI endstream endobj 342 0 obj <> stream 0 0 0 11 41 66 d1 41 0 0 55 0 11 cm BI /IM true /W 41 /H 55 /BPC 1 /F /CCF /DP <> ID &v95_# /|P EI endstream endobj 343 0 obj <> stream 0 0 0 9 37 68 d1 37 0 0 59 0 9 cm BI /IM true /W 37 /H 59 /BPC 1 /F /CCF /DP <> ID &Ia_?(}7Ok]kd4k̄Q py4Q@_ Gpxk^/W & EI endstream endobj 344 0 obj <> stream 0 0 0 11 43 66 d1 43 0 0 55 0 11 cm BI /IM true /W 43 /H 55 /BPC 1 /F /CCF /DP <> ID &(ɪL ޟ'l?)5J  EI endstream endobj 345 0 obj <> stream 0 0 0 56 10 66 d1 10 0 0 10 0 56 cm BI /IM true /W 10 /H 10 /BPC 1 /F /CCF /DP <> ID &Zq~MR EI endstream endobj 347 0 obj <> stream 0 0 0 0 64 94 d1 64 0 0 94 0 0 cm BI /IM true /W 64 /H 94 /BPC 1 /F /CCF /DP <> ID j}>}~o߿݃ f<7~a#(' |%Uh,0awKv kaa"@Q@ EI endstream endobj 351 0 obj <> stream 0 0 0 -5 112 96 d1 112 0 0 101 0 -5 cm BI /IM true /W 112 /H 101 /BPC 1 /F /CCF /DP <> ID &Fm5e@?"}ޯzOo~ yAD3 EI endstream endobj 352 0 obj <> stream 0 0 0 30 75 96 d1 75 0 0 66 0 30 cm BI /IM true /W 75 /H 66 /BPC 1 /F /CCF /DP <> ID &f O ??>j[I o[+ [_ }B%@g!@ EI endstream endobj 353 0 obj <> stream 0 0 0 28 73 96 d1 73 0 0 68 0 28 cm BI /IM true /W 73 /H 68 /BPC 1 /F /CCF /DP <> ID &Aː_\H qCO ymn!%  ,__ᤸA-*_ @@ EI endstream endobj 354 0 obj <> stream 0 0 0 28 62 96 d1 62 0 0 68 0 28 cm BI /IM true /W 62 /H 68 /BPC 1 /F /CCF /DP <> ID &u ^<xAo@7?Af__L`߿ׯ~ ,?m]% Y ` EI endstream endobj 355 0 obj <> stream 0 0 0 -5 108 94 d1 108 0 0 99 0 -5 cm BI /IM true /W 108 /H 99 /BPC 1 /F /CCF /DP <> ID &;igaFwXeaAq2y~ 7oo~~o~__z/}xKK2el 6x EI endstream endobj 356 0 obj <> stream 0 0 0 28 53 96 d1 53 0 0 68 0 28 cm BI /IM true /W 53 /H 68 /BPC 1 /F /CCF /DP <> ID &.t?%¾k |Cx,I%, --r . 94྿{] .|%3|@ EI endstream endobj 357 0 obj <> stream 0 0 0 -6 79 96 d1 79 0 0 102 0 -6 cm BI /IM true /W 79 /H 102 /BPC 1 /F /CCF /DP <> ID &t @} @FDA!7  \0Apa.j1 >?>  EI endstream endobj 358 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?>aᇾ|=>P EI endstream endobj 359 0 obj <> stream 0 0 0 2 106 80 d1 106 0 0 78 0 2 cm BI /IM true /W 106 /H 78 /BPC 1 /F /CCF /DP <> ID &`5Mo>O/ ׇտ_鰗~?0OA[[J·_ z_S߅O A$!0  EI endstream endobj 360 0 obj <> stream 0 0 0 0 77 80 d1 77 0 0 80 0 0 cm BI /IM true /W 77 /H 80 /BPC 1 /F /CCF /DP <> ID &\ 20aAIzW^|H }}o o]5O .D` EI endstream endobj 361 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &_KK K_Z_ֿ ~~ֿooo@ EI endstream endobj 362 0 obj <> stream 0 0 0 29 48 79 d1 48 0 0 50 0 29 cm BI /IM true /W 48 /H 50 /BPC 1 /F /CCF /DP <> ID 8=wM>oa~߆oa<7aova> bi> o 0n EI endstream endobj 363 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &lo Z__K Zip EI endstream endobj 364 0 obj <> stream 0 0 0 36 73 63 d1 73 0 0 27 0 36 cm BI /IM true /W 73 /H 27 /BPC 1 /F /CCF /DP <> ID &?ڀ EI endstream endobj 365 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID & >o=/i5X_ɪXm.4,X2p EI endstream endobj 366 0 obj <> stream 0 0 0 30 55 77 d1 55 0 0 47 0 30 cm BI /IM true /W 55 /H 47 /BPC 1 /F /CCF /DP <> ID %CUpp ^kíb^z&oҽ[?MHA EI endstream endobj 367 0 obj <> stream 0 0 0 29 55 99 d1 55 0 0 70 0 29 cm BI /IM true /W 55 /H 70 /BPC 1 /F /CCF /DP <> ID $7j2@jC_F?G0}龿o_\&֘AD4YO &H EI endstream endobj 368 0 obj <> stream 0 0 0 -82 55 180 d1 55 0 0 262 0 -82 cm BI /IM true /W 55 /H 262 /BPC 1 /F /CCF /DP <> ID &˅@hXKK]ZX_zx_a.XK ZX,BÃ\< oo}~ooo@ EI endstream endobj 369 0 obj <> stream 0 0 0 47 66 52 d1 66 0 0 5 0 47 cm BI /IM true /W 66 /H 5 /BPC 1 /F /CCF /DP <> ID &ɮ EI endstream endobj 370 0 obj <> stream 0 0 0 -82 30 180 d1 30 0 0 262 0 -82 cm BI /IM true /W 30 /H 262 /BPC 1 /F /CCF /DP <> ID 3  EI endstream endobj 371 0 obj <> stream 0 0 0 -82 54 180 d1 54 0 0 262 0 -82 cm BI /IM true /W 54 /H 262 /BPC 1 /F /CCF /DP <> ID &˅.KK/p^^aK^zz_^__ /^o ?~~o~ ?o~߾o~oÀ EI endstream endobj 372 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &M00aat;A=Mowwѵi|0 ! EI endstream endobj 373 0 obj <> stream 0 0 0 0 42 78 d1 42 0 0 78 0 0 cm BI /IM true /W 42 /H 78 /BPC 1 /F /CCF /DP <> ID & G:z8aoH=&Mz{xu q an/? EI endstream endobj 374 0 obj <> stream 0 0 0 -158 54 104 d1 54 0 0 262 0 -158 cm BI /IM true /W 54 /H 262 /BPC 1 /F /CCF /DP <> ID < {==7߼?~ox~ap/k~~Z___^ֽ~x_ֿh/ZZ u]h.Z]h-( EI endstream endobj 375 0 obj <> stream 0 0 0 -158 29 104 d1 29 0 0 262 0 -158 cm BI /IM true /W 29 /H 262 /BPC 1 /F /CCF /DP <> ID &@ EI endstream endobj 376 0 obj <> stream 0 0 0 -158 55 104 d1 55 0 0 262 0 -158 cm BI /IM true /W 55 /H 262 /BPC 1 /F /CCF /DP <> ID 8 @k >><7XX@Aakֺ]~xZ]ka, X Q  EI endstream endobj 377 0 obj <> stream 0 0 0 -11 14 23 d1 14 0 0 34 0 -11 cm BI /IM true /W 14 /H 34 /BPC 1 /F /CCF /DP <> ID &w1& EI endstream endobj 378 0 obj <> stream 0 0 0 29 97 79 d1 97 0 0 50 0 29 cm BI /IM true /W 97 /H 50 /BPC 1 /F /CCF /DP <> ID &@m< `= OGBh 鰂|- L: ^a7_i~_C&5o&]`m. kL[2,<@,0D EI endstream endobj 379 0 obj <> stream 0 0 0 17 66 82 d1 66 0 0 65 0 17 cm BI /IM true /W 66 /H 65 /BPC 1 /F /CCF /DP <> ID &X,X@Aap`a .,X\ X X@pPrk> <0x|x`x0a >@ EI endstream endobj 380 0 obj <> stream 143 0 0 0 0 0 d1 endstream endobj 381 0 obj <> stream 0 0 0 -114 56 213 d1 56 0 0 327 0 -114 cm BI /IM true /W 56 /H 327 /BPC 1 /F /CCF /DP <> ID &kAipX%Z %Z_^k/ׯ_ KK (‡ɮx`{|= {7o{ow@ EI endstream endobj 382 0 obj <> stream 0 0 0 -88 47 -12 d1 47 0 0 76 0 -88 cm BI /IM true /W 47 /H 76 /BPC 1 /F /CCF /DP <> ID &A@Fczޓz7a7O?kivx[il0k[ EI endstream endobj 383 0 obj <> stream 0 0 0 7 66 94 d1 66 0 0 87 0 7 cm BI /IM true /W 66 /H 87 /BPC 1 /F /CCF /DP <> ID &ɮ Y` X.X \, XA`A`pa p 95 > <0x|x`x0ap @@ EI endstream endobj 384 0 obj <> stream 0 0 0 -49 46 147 d1 46 0 0 196 0 -49 cm BI /IM true /W 46 /H 196 /BPC 1 /F /CCF /DP <> ID &ېդ, @Z]kkֿaxZ֖AaBrj0xo{} =Ãy EI endstream endobj 385 0 obj <> stream 0 0 0 -17 29 113 d1 29 0 0 130 0 -17 cm BI /IM true /W 29 /H 130 /BPC 1 /F /CCF /DP <> ID &c Z\--p]~p/__{{x}w EI endstream endobj 386 0 obj <> stream 110 0 0 0 0 0 d1 endstream endobj 387 0 obj <> stream 0 0 0 -2 35 36 d1 35 0 0 38 0 -2 cm BI /IM true /W 35 /H 38 /BPC 1 /F /CCF /DP <> ID 0x?rk}i{!`lm>y,aᰟa?'/M;O @ EI endstream endobj 388 0 obj <> stream 0 0 0 12 51 16 d1 51 0 0 4 0 12 cm BI /IM true /W 51 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 389 0 obj <> stream 0 0 0 -2 38 36 d1 38 0 0 38 0 -2 cm BI /IM true /W 38 /H 38 /BPC 1 /F /CCF /DP <> ID &pOXk&6 /ÿ&}oav48a@@ EI endstream endobj 390 0 obj <> stream 0 0 0 0 31 57 d1 31 0 0 57 0 0 cm BI /IM true /W 31 /H 57 /BPC 1 /F /CCF /DP <> ID &zޓ~MﶾBixaxa'@ EI endstream endobj 391 0 obj <> stream 0 0 0 -76 29 54 d1 29 0 0 130 0 -76 cm BI /IM true /W 29 /H 130 /BPC 1 /F /CCF /DP <> ID &{{>~ ??Z ֿ_ֽkּ-/uւ׮ EI endstream endobj 392 0 obj <> stream 0 0 0 -2 47 36 d1 47 0 0 38 0 -2 cm BI /IM true /W 47 /H 38 /BPC 1 /F /CCF /DP <> ID & #P@G4{z:D?@OQ|;}d>uj<5جX0P EI endstream endobj 393 0 obj <> stream 0 0 0 -31 46 165 d1 46 0 0 196 0 -31 cm BI /IM true /W 46 /H 196 /BPC 1 /F /CCF /DP <> ID 8 >Mpo{x|7=> stream 0 0 0 17 66 82 d1 66 0 0 65 0 17 cm BI /IM true /W 66 /H 65 /BPC 1 /F /CCF /DP <> ID &,ɯ  < <0|<<0|0` >]a  X.X \, XA`A`pap@@ EI endstream endobj 395 0 obj <> stream 0 0 0 -16 40 114 d1 40 0 0 130 0 -16 cm BI /IM true /W 40 /H 130 /BPC 1 /F /CCF /DP <> ID &apX@K]z -.Ah,.}4P_ # =a{p EI endstream endobj 396 0 obj <> stream 0 0 0 -16 21 114 d1 21 0 0 130 0 -16 cm BI /IM true /W 21 /H 130 /BPC 1 /F /CCF /DP <> ID o EI endstream endobj 397 0 obj <> stream 115 0 0 0 0 0 d1 endstream endobj 398 0 obj <> stream 0 0 0 -76 21 54 d1 21 0 0 130 0 -76 cm BI /IM true /W 21 /H 130 /BPC 1 /F /CCF /DP <> ID 5 EI endstream endobj 399 0 obj <> stream 0 0 0 2 40 132 d1 40 0 0 130 0 2 cm BI /IM true /W 40 /H 130 /BPC 1 /F /CCF /DP <> ID &ifу|xo~o  %_ָ..A` EI endstream endobj 400 0 obj <> stream 0 0 0 0 36 73 d1 36 0 0 73 0 0 cm BI /IM true /W 36 /H 73 /BPC 1 /F /CCF /DP <> ID j /&R?@ EI endstream endobj 401 0 obj <> stream 0 0 0 7 66 94 d1 66 0 0 87 0 7 cm BI /IM true /W 66 /H 87 /BPC 1 /F /CCF /DP <> ID &ɮ=C&x`0a <> <0|<xanXK ,,., \ @X@pa  @Q \( EI endstream endobj 402 0 obj <> stream 0 0 0 27 62 77 d1 62 0 0 50 0 27 cm BI /IM true /W 62 /H 50 /BPC 1 /F /CCF /DP <> ID &Af0=`70I c{f}}j^u47Ol$CA\@ EI endstream endobj 403 0 obj <> stream 0 0 0 -5 18 105 d1 18 0 0 110 0 -5 cm BI /IM true /W 18 /H 110 /BPC 1 /F /CCF /DP <> ID &7  EI endstream endobj 404 0 obj <> stream 0 0 0 9 73 82 d1 73 0 0 73 0 9 cm BI /IM true /W 73 /H 73 /BPC 1 /F /CCF /DP <> ID &`4??d4 @@ EI endstream endobj 405 0 obj <> stream 0 0 0 -3 45 96 d1 45 0 0 99 0 -3 cm BI /IM true /W 45 /H 99 /BPC 1 /F /CCF /DP <> ID &1xG W( AAd(L D1X(:n !WU&ͦ<fa8!ZCk=>,! EI endstream endobj 406 0 obj <> stream 0 0 0 29 58 101 d1 58 0 0 72 0 29 cm BI /IM true /W 58 /H 72 /BPC 1 /F /CCF /DP <> ID & {cA80?`>w?~~wᅰ  EI endstream endobj 407 0 obj <> stream 0 0 0 -5 42 105 d1 42 0 0 110 0 -5 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &է?~{?o~{?o~ EI endstream endobj 408 0 obj <> stream 0 0 0 30 59 79 d1 59 0 0 49 0 30 cm BI /IM true /W 59 /H 49 /BPC 1 /F /CCF /DP <> ID &S<0x,= >V0_ .ۭvClJ 8  EI endstream endobj 409 0 obj <> stream 0 0 0 -5 17 105 d1 17 0 0 110 0 -5 cm BI /IM true /W 17 /H 110 /BPC 1 /F /CCF /DP <> ID 5 EI endstream endobj 410 0 obj <> stream 0 0 0 -19 28 34 d1 28 0 0 53 0 -19 cm BI /IM true /W 28 /H 53 /BPC 1 /F /CCF /DP <> ID &5!{@ EI endstream endobj 411 0 obj <> stream 0 0 0 -26 32 55 d1 32 0 0 81 0 -26 cm BI /IM true /W 32 /H 81 /BPC 1 /F /CCF /DP <> ID &e~x~{~ EI endstream endobj 412 0 obj <> stream 0 0 0 -21 36 51 d1 36 0 0 72 0 -21 cm BI /IM true /W 36 /H 72 /BPC 1 /F /CCF /DP <> ID &X3 -*{oaFC. ~ =px{ EI endstream endobj 413 0 obj <> stream 0 0 0 0 56 57 d1 56 0 0 57 0 0 cm BI /IM true /W 56 /H 57 /BPC 1 /F /CCF /DP <> ID &l Xe@ EI endstream endobj 414 0 obj <> stream 132 0 0 0 0 0 d1 endstream endobj 415 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &h<L>? wwr?߻fs1k ߿JH EI endstream endobj 416 0 obj <> stream 0 0 0 0 86 48 d1 86 0 0 48 0 0 cm BI /IM true /W 86 /H 48 /BPC 1 /F /CCF /DP <> ID $&ɨ3Mw4ACppaa. ` PbhQ!p @ EI endstream endobj 417 0 obj <> stream 0 0 0 -1 50 50 d1 50 0 0 51 0 -1 cm BI /IM true /W 50 /H 51 /BPC 1 /F /CCF /DP <> ID & `OAH6zxO Bo?o0~ x>AEYEp0AaXad0 EI endstream endobj 418 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?h-.Aa-t@@ EI endstream endobj 419 0 obj <> stream 0 0 0 16 97 75 d1 97 0 0 59 0 16 cm BI /IM true /W 97 /H 59 /BPC 1 /F /CCF /DP <> ID &yA{` Aad pkւz~/ EI endstream endobj 420 0 obj <> stream 119 0 0 0 0 0 d1 endstream endobj 421 0 obj <> stream 113 0 0 0 0 0 d1 endstream endobj 422 0 obj <> stream 0 0 0 0 45 57 d1 45 0 0 57 0 0 cm BI /IM true /W 45 /H 57 /BPC 1 /F /CCF /DP <> ID &zo =o` <>o =oa\,X],.X\ ,X],.[ EI endstream endobj 423 0 obj <> stream 0 0 0 1 29 87 d1 29 0 0 86 0 1 cm BI /IM true /W 29 /H 86 /BPC 1 /F /CCF /DP <> ID &iZhZXK____ڀ EI endstream endobj 424 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &A@/A >xIOzu__ ^ x`_00^A߿ 0 ~߰~ %5 \ EI endstream endobj 425 0 obj <> stream 0 0 0 64 19 93 d1 19 0 0 29 0 64 cm BI /IM true /W 19 /H 29 /BPC 1 /F /CCF /DP <> ID &Cɯ>~AְP EI endstream endobj 426 0 obj <> stream 0 0 0 31 49 57 d1 49 0 0 26 0 31 cm BI /IM true /W 49 /H 26 /BPC 1 /F /CCF /DP <> ID &Zq~Mu/]~@ EI endstream endobj 427 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & =?@ނ ?xI7A?4x_]zxk  bk ma EI endstream endobj 428 0 obj <> stream 0 0 0 8 37 77 d1 37 0 0 69 0 8 cm BI /IM true /W 37 /H 69 /BPC 1 /F /CCF /DP <> ID & O<uk EI endstream endobj 429 0 obj <> stream 0 0 0 1 29 87 d1 29 0 0 86 0 1 cm BI /IM true /W 29 /H 86 /BPC 1 /F /CCF /DP <> ID &n.5{xaoo~;__,/ ׬%QUP\  EI endstream endobj 430 0 obj <> stream 0 0 0 10 45 79 d1 45 0 0 69 0 10 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID &@@@bp~V{]Y, ^ { p`\W y$x*{P EI endstream endobj 431 0 obj <> stream 0 0 0 0 30 86 d1 30 0 0 86 0 0 cm BI /IM true /W 30 /H 86 /BPC 1 /F /CCF /DP <> ID &|L- EI endstream endobj 432 0 obj <> stream 0 0 0 1 30 87 d1 30 0 0 86 0 1 cm BI /IM true /W 30 /H 86 /BPC 1 /F /CCF /DP <> ID &5 s5@ EI endstream endobj 433 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & /=GQoH0o=~ id3` *fksN~[ g@c@ EI endstream endobj 434 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &x}<>|g@ EI endstream endobj 435 0 obj <> stream 0 0 0 8 49 77 d1 49 0 0 69 0 8 cm BI /IM true /W 49 /H 69 /BPC 1 /F /CCF /DP <> ID &-?GpX\6Mp?5 EI endstream endobj 436 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & " < zAta? z.z0`,[X x#:8 M}>a0 / Xa` EI endstream endobj 437 0 obj <> stream 0 0 0 10 49 77 d1 49 0 0 67 0 10 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &ɮ/ wσ!ޟCk EI endstream endobj 438 0 obj <> stream 0 0 0 8 51 77 d1 51 0 0 69 0 8 cm BI /IM true /W 51 /H 69 /BPC 1 /F /CCF /DP <> ID & Oj_s!f놿_ EI endstream endobj 439 0 obj <> stream 0 0 0 10 49 77 d1 49 0 0 67 0 10 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &y5D^?wɯ  EI endstream endobj 440 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &xA|>> }%]td k3! KZ"ࢎVHVxOv ^}T\/ _@ EI endstream endobj 441 0 obj <> stream 0 0 0 10 50 77 d1 50 0 0 67 0 10 cm BI /IM true /W 50 /H 67 /BPC 1 /F /CCF /DP <> ID &k_!??zςk!ޟpXP EI endstream endobj 442 0 obj <> stream 114 0 0 0 0 0 d1 endstream endobj 444 0 obj <> stream 0 0 0 0 49 67 d1 49 0 0 67 0 0 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &8 A[q|!&B/]mdyw@ EI endstream endobj 448 0 obj <> stream 0 0 0 0 49 67 d1 49 0 0 67 0 0 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &;MS@>?}ׄp0o/^_KBTFp EI endstream endobj 449 0 obj <> stream 117 0 0 0 0 0 d1 endstream endobj 450 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &X%?yvC&@@ EI endstream endobj 451 0 obj <> stream 0 0 0 0 53 69 d1 53 0 0 69 0 0 cm BI /IM true /W 53 /H 69 /BPC 1 /F /CCF /DP <> ID &ܜ6|x@oAA (A "-?&5 EI endstream endobj 452 0 obj <> stream 0 0 0 0 39 67 d1 39 0 0 67 0 0 cm BI /IM true /W 39 /H 67 /BPC 1 /F /CCF /DP <> ID &E5K  EI endstream endobj 453 0 obj <> stream 0 0 0 2 78 77 d1 78 0 0 75 0 2 cm BI /IM true /W 78 /H 75 /BPC 1 /F /CCF /DP <> ID "5 C]h=? >^@ƒ% EI endstream endobj 455 0 obj <> stream 0 0 0 2 90 77 d1 90 0 0 75 0 2 cm BI /IM true /W 90 /H 75 /BPC 1 /F /CCF /DP <> ID )9&d3*T_5ۅ][l%߶6mva߆=>B~aAվzM<+}7` 5qDo EI endstream endobj 456 0 obj <> stream 0 0 0 -11 13 1 d1 13 0 0 12 0 -11 cm BI /IM true /W 13 /H 12 /BPC 1 /F /CCF /DP <> ID &&~ @ EI endstream endobj 457 0 obj <> stream 0 0 0 58 69 96 d1 69 0 0 38 0 58 cm BI /IM true /W 69 /H 38 /BPC 1 /F /CCF /DP <> ID &l4M09Powo8wwMV/{:Pc> ` EI endstream endobj 458 0 obj <> stream 0 0 0 0 76 78 d1 76 0 0 78 0 0 cm BI /IM true /W 76 /H 78 /BPC 1 /F /CCF /DP <> ID &@2q@D1M @A7[ |?{j?w# \ EI endstream endobj 459 0 obj <> stream 0 0 0 -5 39 105 d1 39 0 0 110 0 -5 cm BI /IM true /W 39 /H 110 /BPC 1 /F /CCF /DP <> ID &Ӑ4(Aa//a.@TGL<7{<>xd04@ EI endstream endobj 460 0 obj <> stream 0 0 0 -5 39 105 d1 39 0 0 110 0 -5 cm BI /IM true /W 39 /H 110 /BPC 1 /F /CCF /DP <> ID 3e&} ~aC[4-u k.Q H EI endstream endobj 461 0 obj <> stream 0 0 0 0 67 75 d1 67 0 0 75 0 0 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID +A5 H r 4?߷7w?+ EI endstream endobj 462 0 obj <> stream 0 0 0 -27 25 48 d1 25 0 0 75 0 -27 cm BI /IM true /W 25 /H 75 /BPC 1 /F /CCF /DP <> ID j)AZL _ EI endstream endobj 463 0 obj <> stream 0 0 0 0 56 48 d1 56 0 0 48 0 0 cm BI /IM true /W 56 /H 48 /BPC 1 /F /CCF /DP <> ID $ME( _P(a. p`Ԛ  EI endstream endobj 464 0 obj <> stream 0 0 0 0 65 75 d1 65 0 0 75 0 0 cm BI /IM true /W 65 /H 75 /BPC 1 /F /CCF /DP <> ID #`5 , ~#~~?__}xK^2kP4` EI endstream endobj 465 0 obj <> stream 0 0 0 27 38 75 d1 38 0 0 48 0 27 cm BI /IM true /W 38 /H 48 /BPC 1 /F /CCF /DP <> ID &~MFH  ߭a|1XjMD  EI endstream endobj 466 0 obj <> stream 0 0 0 29 55 79 d1 55 0 0 50 0 29 cm BI /IM true /W 55 /H 50 /BPC 1 /F /CCF /DP <> ID &h3? z80>`Az 8MU7a[;^_d-aw{sl> a)A EI endstream endobj 467 0 obj <> stream 0 0 0 29 90 79 d1 90 0 0 50 0 29 cm BI /IM true /W 90 /H 50 /BPC 1 /F /CCF /DP <> ID & af a݄~= ~wA{~߻Çɪ߻~zzH 2] V   @ EI endstream endobj 468 0 obj <> stream 0 0 0 8 33 41 d1 33 0 0 33 0 8 cm BI /IM true /W 33 /H 33 /BPC 1 /F /CCF /DP <> ID &\h0  EI endstream endobj 469 0 obj <> stream 121 0 0 0 0 0 d1 endstream endobj 470 0 obj <> stream 0 0 0 40 20 121 d1 20 0 0 81 0 40 cm BI /IM true /W 20 /H 81 /BPC 1 /F /CCF /DP <> ID &ƾZi~]x_^_MW?=n EI endstream endobj 471 0 obj <> stream 0 0 0 -26 20 55 d1 20 0 0 81 0 -26 cm BI /IM true /W 20 /H 81 /BPC 1 /F /CCF /DP <> ID &/a߾__K~ZzAikP EI endstream endobj 472 0 obj <> stream 0 0 0 47 35 100 d1 35 0 0 53 0 47 cm BI /IM true /W 35 /H 53 /BPC 1 /F /CCF /DP <> ID kٰo߆}{xa{[^I[kmaN  EI endstream endobj 473 0 obj <> stream 28 0 0 0 0 0 d1 endstream endobj 474 0 obj <> stream 0 0 0 43 13 56 d1 13 0 0 13 0 43 cm BI /IM true /W 13 /H 13 /BPC 1 /F /CCF /DP <> ID &/( EI endstream endobj 475 0 obj <> stream 0 0 0 2 44 98 d1 44 0 0 96 0 2 cm BI /IM true /W 44 /H 96 /BPC 1 /F /CCF /DP <> ID &h = ~}aႿ~?A2c?ռ ( EI endstream endobj 476 0 obj <> stream 0 0 0 46 35 117 d1 35 0 0 71 0 46 cm BI /IM true /W 35 /H 71 /BPC 1 /F /CCF /DP <> ID &B:z|߰Mymۭ]ad6~?C2@ EI endstream endobj 477 0 obj <> stream 0 0 0 0 145 153 d1 145 0 0 153 0 0 cm BI /IM true /W 145 /H 153 /BPC 1 /F /CCF /DP <> ID &7{4lka<2ᦟl?~olpa?~{o~oolka߽oo >t׭ptׅ tX^ xj]zA-%, P.tZA~D јHRzD+> EI endstream endobj 478 0 obj <> stream 0 0 0 0 38 57 d1 38 0 0 57 0 0 cm BI /IM true /W 38 /H 57 /BPC 1 /F /CCF /DP <> ID & rz_>Kb g}B>o>x`׆w"~ EI endstream endobj 479 0 obj <> stream 0 0 0 24 56 47 d1 56 0 0 23 0 24 cm BI /IM true /W 56 /H 23 /BPC 1 /F /CCF /DP <> ID &(5K EI endstream endobj 480 0 obj <> stream 0 0 0 2 35 57 d1 35 0 0 55 0 2 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID & xXz7ނ O_ ޿޿K ,0 EI endstream endobj 481 0 obj <> stream 0 0 0 150 50 228 d1 50 0 0 78 0 150 cm BI /IM true /W 50 /H 78 /BPC 1 /F /CCF /DP <> ID &0x?~o}ڿ}u|/q3kݾd1~wa῰ x3  EI endstream endobj 482 0 obj <> stream 0 0 0 15 54 80 d1 54 0 0 65 0 15 cm BI /IM true /W 54 /H 65 /BPC 1 /F /CCF /DP <> ID & @]._h/ׯ=O&M7{{!D`Ȫe$ EI endstream endobj 487 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &\_!Cx"TNaoI߻ /K\%lhp 5oa oD"Oz׼/]r/:Xb$GeU EI endstream endobj 488 0 obj <> stream 0 0 0 -5 97 94 d1 97 0 0 99 0 -5 cm BI /IM true /W 97 /H 99 /BPC 1 /F /CCF /DP <> ID &+; 4gu|?a9CH߆~~ / f K?8foo~/_ |/Kf~.;<@ EI endstream endobj 489 0 obj <> stream 0 0 0 -5 94 94 d1 94 0 0 99 0 -5 cm BI /IM true /W 94 /H 99 /BPC 1 /F /CCF /DP <> ID &!!3I 1߇ F>!__~𾾾 2 EI endstream endobj 490 0 obj <> stream 0 0 0 30 78 94 d1 78 0 0 64 0 30 cm BI /IM true /W 78 /H 64 /BPC 1 /F /CCF /DP <> ID &jf zᆖ KoKۭbZ_\'o[A_o Oި8  EI endstream endobj 491 0 obj <> stream 0 0 0 29 123 94 d1 123 0 0 65 0 29 cm BI /IM true /W 123 /H 65 /BPC 1 /F /CCF /DP <> ID & E Y eAú kar X5L4=xbh5 A AC EI endstream endobj 492 0 obj <> stream 0 0 0 -5 111 96 d1 111 0 0 101 0 -5 cm BI /IM true /W 111 /H 101 /BPC 1 /F /CCF /DP <> ID &Hf O????ȅ׫}~/[ M+[V_^++JWO|/o׭|/"ĉY  EI endstream endobj 493 0 obj <> stream 124 0 0 0 0 0 d1 endstream endobj 494 0 obj <> stream 0 0 0 -6 36 94 d1 36 0 0 100 0 -6 cm BI /IM true /W 36 /H 100 /BPC 1 /F /CCF /DP <> ID &BUW@ EI endstream endobj 495 0 obj <> stream 0 0 0 29 51 100 d1 51 0 0 71 0 29 cm BI /IM true /W 51 /H 71 /BPC 1 /F /CCF /DP <> ID &  o|o E?C>>}5P?owx^ { k ! EI endstream endobj 496 0 obj <> stream 0 0 0 -2 33 36 d1 33 0 0 38 0 -2 cm BI /IM true /W 33 /H 38 /BPC 1 /F /CCF /DP <> ID &l >}"_5['lk l € EI endstream endobj 497 0 obj <> stream 0 0 0 -47 45 3 d1 45 0 0 50 0 -47 cm BI /IM true /W 45 /H 50 /BPC 1 /F /CCF /DP <> ID &8  5[3a `A @@ EI endstream endobj 498 0 obj <> stream 0 0 0 -58 67 17 d1 67 0 0 75 0 -58 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID &.z`eUOD|4\I,0^@oKo{ o^߯Xo o]--.C I @ EI endstream endobj 499 0 obj <> stream 0 0 0 1 54 79 d1 54 0 0 78 0 1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &l[io6n߶îoiw ~ok}/z/zׯ X%@ EI endstream endobj 500 0 obj <> stream 0 0 0 1 26 77 d1 26 0 0 76 0 1 cm BI /IM true /W 26 /H 76 /BPC 1 /F /CCF /DP <> ID j)@녏MD@ EI endstream endobj 501 0 obj <> stream 0 0 0 28 49 79 d1 49 0 0 51 0 28 cm BI /IM true /W 49 /H 51 /BPC 1 /F /CCF /DP <> ID &3`[0oI&,>&_ .[ip` %!``@@ EI endstream endobj 502 0 obj <> stream 0 0 0 28 50 101 d1 50 0 0 73 0 28 cm BI /IM true /W 50 /H 73 /BPC 1 /F /CCF /DP <> ID &' 7xX}11@ @@ EI endstream endobj 503 0 obj <> stream 0 0 0 0 74 75 d1 74 0 0 75 0 0 cm BI /IM true /W 74 /H 75 /BPC 1 /F /CCF /DP <> ID #a?j1,&AăF EI endstream endobj 504 0 obj <> stream 0 0 0 4 55 77 d1 55 0 0 73 0 4 cm BI /IM true /W 55 /H 73 /BPC 1 /F /CCF /DP <> ID &Cj }aoz!p_ I`OL@ EI endstream endobj 505 0 obj <> stream 0 0 0 5 28 60 d1 28 0 0 55 0 5 cm BI /IM true /W 28 /H 55 /BPC 1 /F /CCF /DP <> ID &1=;{"?[_?a@@ EI endstream endobj 506 0 obj <> stream 0 0 0 -72 44 1 d1 44 0 0 73 0 -72 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID &/ }aݷ2 w}}{8o]V͆W.ïa. b EI endstream endobj 507 0 obj <> stream 0 0 0 -75 51 23 d1 51 0 0 98 0 -75 cm BI /IM true /W 51 /H 98 /BPC 1 /F /CCF /DP <> ID &\<%Ko:b`u,  EI endstream endobj 508 0 obj <> stream 0 0 0 -22 29 52 d1 29 0 0 74 0 -22 cm BI /IM true /W 29 /H 74 /BPC 1 /F /CCF /DP <> ID &k_Ek  EI endstream endobj 509 0 obj <> stream 0 0 0 0 48 79 d1 48 0 0 79 0 0 cm BI /IM true /W 48 /H 79 /BPC 1 /F /CCF /DP <> ID &L7>zL>A7~}?ÿ]`{? 4`€ EI endstream endobj 510 0 obj <> stream 0 0 0 0 45 78 d1 45 0 0 78 0 0 cm BI /IM true /W 45 /H 78 /BPC 1 /F /CCF /DP <> ID & pPx zށ7?7MuxO!? EI endstream endobj 511 0 obj <> stream 0 0 0 0 68 77 d1 68 0 0 77 0 0 cm BI /IM true /W 68 /H 77 /BPC 1 /F /CCF /DP <> ID &2'"ta_H?& 2{zwnͦ0 8k@ EI endstream endobj 512 0 obj <> stream 0 0 0 5 28 66 d1 28 0 0 61 0 5 cm BI /IM true /W 28 /H 61 /BPC 1 /F /CCF /DP <> ID j!@F@ EI endstream endobj 513 0 obj <> stream 0 0 0 2 65 69 d1 65 0 0 67 0 2 cm BI /IM true /W 65 /H 67 /BPC 1 /F /CCF /DP <> ID &RA#Cw]>'a_tێookmpaDOnA8p EI endstream endobj 514 0 obj <> stream 0 0 0 -1 22 88 d1 22 0 0 89 0 -1 cm BI /IM true /W 22 /H 89 /BPC 1 /F /CCF /DP <> ID &Z uׅ.^ֿ ߿ @ EI endstream endobj 515 0 obj <> stream 0 0 0 26 39 68 d1 39 0 0 42 0 26 cm BI /IM true /W 39 /H 42 /BPC 1 /F /CCF /DP <> ID 0 ^i؟>mwl>{oc{> <7E~{ Ȅ7O8 EI endstream endobj 516 0 obj <> stream 0 0 0 35 22 75 d1 22 0 0 40 0 35 cm BI /IM true /W 22 /H 40 /BPC 1 /F /CCF /DP <> ID fc>j\? EI endstream endobj 517 0 obj <> stream 0 0 0 56 11 84 d1 11 0 0 28 0 56 cm BI /IM true /W 11 /H 28 /BPC 1 /F /CCF /DP <> ID &zTz/ڀ EI endstream endobj 518 0 obj <> stream 0 0 0 35 28 75 d1 28 0 0 40 0 35 cm BI /IM true /W 28 /H 40 /BPC 1 /F /CCF /DP <> ID &0 0;aaoÚ:}7 { o[ %f@ EI endstream endobj 519 0 obj <> stream 0 0 0 -1 23 88 d1 23 0 0 89 0 -1 cm BI /IM true /W 23 /H 89 /BPC 1 /F /CCF /DP <> ID &g{={}/_k~p]h-u]u EI endstream endobj 520 0 obj <> stream 0 0 0 31 62 56 d1 62 0 0 25 0 31 cm BI /IM true /W 62 /H 25 /BPC 1 /F /CCF /DP <> ID &?cJ@ EI endstream endobj 521 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_az}?O:A~"h mX6,) EI endstream endobj 522 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID 5SAAau-ް^ح]k 7=+7ނ,=ţZ EI endstream endobj 523 0 obj <> stream 0 0 0 26 45 84 d1 45 0 0 58 0 26 cm BI /IM true /W 45 /H 58 /BPC 1 /F /CCF /DP <> ID Gԉ6c}0AA_](U_&  EI endstream endobj 524 0 obj <> stream 0 0 0 -1 34 89 d1 34 0 0 90 0 -1 cm BI /IM true /W 34 /H 90 /BPC 1 /F /CCF /DP <> ID &nD," KK}tioo7ʘ EI endstream endobj 525 0 obj <> stream 0 0 0 41 57 46 d1 57 0 0 5 0 41 cm BI /IM true /W 57 /H 5 /BPC 1 /F /CCF /DP <> ID &E( EI endstream endobj 526 0 obj <> stream 0 0 0 26 43 86 d1 43 0 0 60 0 26 cm BI /IM true /W 43 /H 60 /BPC 1 /F /CCF /DP <> ID & :G&a~{Wy GE> stream 0 0 0 13 62 74 d1 62 0 0 61 0 13 cm BI /IM true /W 62 /H 61 /BPC 1 /F /CCF /DP <> ID &`3>Zf EI endstream endobj 528 0 obj <> stream 0 0 0 -1 34 89 d1 34 0 0 90 0 -1 cm BI /IM true /W 34 /H 90 /BPC 1 /F /CCF /DP <> ID & dكчo|7|衿#BX]-/_\ YZ\  EI endstream endobj 529 0 obj <> stream 0 0 0 0 25 57 d1 25 0 0 57 0 0 cm BI /IM true /W 25 /H 57 /BPC 1 /F /CCF /DP <> ID &LaKA€ EI endstream endobj 530 0 obj <> stream 0 0 0 17 56 84 d1 56 0 0 67 0 17 cm BI /IM true /W 56 /H 67 /BPC 1 /F /CCF /DP <> ID &PH7AoECA ~+_p]u0ml`}l"xzx1! EI endstream endobj 531 0 obj <> stream 0 0 0 26 73 66 d1 73 0 0 40 0 26 cm BI /IM true /W 73 /H 40 /BPC 1 /F /CCF /DP <> ID &N( kk3NMI ` @@ EI endstream endobj 532 0 obj <> stream 0 0 0 25 42 68 d1 42 0 0 43 0 25 cm BI /IM true /W 42 /H 43 /BPC 1 /F /CCF /DP <> ID & U[g1LB{?~M~~`Ad!.<X2p  EI endstream endobj 537 0 obj <> stream 0 0 0 16 45 73 d1 45 0 0 57 0 16 cm BI /IM true /W 45 /H 57 /BPC 1 /F /CCF /DP <> ID & p-Aa K-Ah/=0 <0=0ᅆ EI endstream endobj 538 0 obj <> stream 0 0 0 0 70 95 d1 70 0 0 95 0 0 cm BI /IM true /W 70 /H 95 /BPC 1 /F /CCF /DP <> ID &C^σQ?߰?oo~?x EI endstream endobj 539 0 obj <> stream 0 0 0 -4 140 95 d1 140 0 0 99 0 -4 cm BI /IM true /W 140 /H 99 /BPC 1 /F /CCF /DP <> ID &s_td5ᄟ? O 7M [ 7 O8OP EI endstream endobj 540 0 obj <> stream 0 0 0 40 39 97 d1 39 0 0 57 0 40 cm BI /IM true /W 39 /H 57 /BPC 1 /F /CCF /DP <> ID &pGG5}Oۿ] ~C,@ EI endstream endobj 541 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &MAh}C?x۽}ɯnm]6 / ߿?!_~AV EI endstream endobj 542 0 obj <> stream 0 0 0 2 79 77 d1 79 0 0 75 0 2 cm BI /IM true /W 79 /H 75 /BPC 1 /F /CCF /DP <> ID *@I@prj ? ? uX] #?op{^|}2,uʘ\@ EI endstream endobj 543 0 obj <> stream 0 0 0 30 13 77 d1 13 0 0 47 0 30 cm BI /IM true /W 13 /H 47 /BPC 1 /F /CCF /DP <> ID &&~ ?^~5K  EI endstream endobj 544 0 obj <> stream 0 0 0 -5 6 105 d1 6 0 0 110 0 -5 cm BI /IM true /W 6 /H 110 /BPC 1 /F /CCF /DP <> ID &ڀ EI endstream endobj 545 0 obj <> stream 0 0 0 46 22 102 d1 22 0 0 56 0 46 cm BI /IM true /W 22 /H 56 /BPC 1 /F /CCF /DP <> ID &=75Aoح  ڀ EI endstream endobj 546 0 obj <> stream 27 0 0 0 0 0 d1 endstream endobj 547 0 obj <> stream 0 0 0 4 28 79 d1 28 0 0 75 0 4 cm BI /IM true /W 28 /H 75 /BPC 1 /F /CCF /DP <> ID &OAO~5C;߿ ] a6^? EI endstream endobj 548 0 obj <> stream 0 0 0 9 41 61 d1 41 0 0 52 0 9 cm BI /IM true /W 41 /H 52 /BPC 1 /F /CCF /DP <> ID &@hρxAh-t]kK__%A65^x}|=P/L EI endstream endobj 549 0 obj <> stream 0 0 0 1 59 55 d1 59 0 0 54 0 1 cm BI /IM true /W 59 /H 54 /BPC 1 /F /CCF /DP <> ID &|y#pa~o}\|-f~ 0Av*pP EI endstream endobj 550 0 obj <> stream 0 0 0 -136 27 60 d1 27 0 0 196 0 -136 cm BI /IM true /W 27 /H 196 /BPC 1 /F /CCF /DP <> ID &<?L7@ EI endstream endobj 551 0 obj <> stream 0 0 0 90 11 116 d1 11 0 0 26 0 90 cm BI /IM true /W 11 /H 26 /BPC 1 /F /CCF /DP <> ID & =*=rj@@ EI endstream endobj 552 0 obj <> stream 0 0 0 6 26 50 d1 26 0 0 44 0 6 cm BI /IM true /W 26 /H 44 /BPC 1 /F /CCF /DP <> ID &f7߾]km1^ o cy EI endstream endobj 553 0 obj <> stream 0 0 0 -48 26 148 d1 26 0 0 196 0 -48 cm BI /IM true /W 26 /H 196 /BPC 1 /F /CCF /DP <> ID ?@ EI endstream endobj 554 0 obj <> stream 0 0 0 -5 42 105 d1 42 0 0 110 0 -5 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &kK/Zz_kK/Zz_k/Z/j  EI endstream endobj 555 0 obj <> stream 0 0 0 -5 103 105 d1 103 0 0 110 0 -5 cm BI /IM true /W 103 /H 110 /BPC 1 /F /CCF /DP <> ID &O3~9}~?`>mm!>{oK ]ik uZ K k]h/ <]}U pP]‚YD + EI endstream endobj 556 0 obj <> stream 0 0 0 27 17 87 d1 17 0 0 60 0 27 cm BI /IM true /W 17 /H 60 /BPC 1 /F /CCF /DP <> ID &]iiat]kK_ɪ7{  EI endstream endobj 557 0 obj <> stream 0 0 0 31 19 74 d1 19 0 0 43 0 31 cm BI /IM true /W 19 /H 43 /BPC 1 /F /CCF /DP <> ID &xAw;]Xk EI endstream endobj 558 0 obj <> stream 0 0 0 27 18 87 d1 18 0 0 60 0 27 cm BI /IM true /W 18 /H 60 /BPC 1 /F /CCF /DP <> ID &>{|=>{_Zָ]-֖ EI endstream endobj 559 0 obj <> stream 0 0 0 71 30 113 d1 30 0 0 42 0 71 cm BI /IM true /W 30 /H 42 /BPC 1 /F /CCF /DP <> ID & | xGzAOkA4 EI endstream endobj 560 0 obj <> stream 0 0 0 -1 54 100 d1 54 0 0 101 0 -1 cm BI /IM true /W 54 /H 101 /BPC 1 /F /CCF /DP <> ID &e&{~o߇{{~o߇xj  EI endstream endobj 565 0 obj <> stream 0 0 0 2 49 77 d1 49 0 0 75 0 2 cm BI /IM true /W 49 /H 75 /BPC 1 /F /CCF /DP <> ID &G!af7߿߷?߿߿߿߷?߿߿}}> EI endstream endobj 566 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &Ix#‡ ނowMu K ooN< /_[il  EI endstream endobj 567 0 obj <> stream 0 0 0 -20 37 34 d1 37 0 0 54 0 -20 cm BI /IM true /W 37 /H 54 /BPC 1 /F /CCF /DP <> ID &6SaNl> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/3zMAC·/놿 &^ |{^EߐO m0 @ EI endstream endobj 569 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8k XxF`IM~z? Gkv /oE? ?   EI endstream endobj 570 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/F xA[7-in[a.]5׃A-+L>_O_ߺXm a!``@@ EI endstream endobj 571 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8S|<#A^a /k0\%ֺ Kzsa7K]p Kb  @ EI endstream endobj 576 0 obj <> stream 0 0 0 -74 47 4 d1 47 0 0 78 0 -74 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &ʄ{x߾*}S  EI endstream endobj 577 0 obj <> stream 0 0 0 0 64 96 d1 64 0 0 96 0 0 cm BI /IM true /W 64 /H 96 /BPC 1 /F /CCF /DP <> ID & @La`<|@ $?wjpapX^/}x4|?^/^ G2 |>_3φ`6 EI endstream endobj 578 0 obj <> stream 0 0 0 29 79 122 d1 79 0 0 93 0 29 cm BI /IM true /W 79 /H 93 /BPC 1 /F /CCF /DP <> ID "! "DqA o uK50 a~RjA EI endstream endobj 579 0 obj <> stream 0 0 0 -5 89 94 d1 89 0 0 99 0 -5 cm BI /IM true /W 89 /H 99 /BPC 1 /F /CCF /DP <> ID &.3 >  ^?_/}}}|/ 3el_ EI endstream endobj 580 0 obj <> stream 0 0 0 27 64 77 d1 64 0 0 50 0 27 cm BI /IM true /W 64 /H 50 /BPC 1 /F /CCF /DP <> ID & a# xAAxN  Aq7N]8oopUaamnP EI endstream endobj 581 0 obj <> stream 0 0 0 -76 75 2 d1 75 0 0 78 0 -76 cm BI /IM true /W 75 /H 78 /BPC 1 /F /CCF /DP <> ID *BjG@j:!(߷ ͂߷l?77w?~}x EI endstream endobj 582 0 obj <> stream 0 0 0 -190 57 137 d1 57 0 0 327 0 -190 cm BI /IM true /W 57 /H 327 /BPC 1 /F /CCF /DP <> ID &u֖uu__A~_ֽ~_~K!ɪo??{a{ᇿ}{w EI endstream endobj 583 0 obj <> stream 0 0 0 -202 57 125 d1 57 0 0 327 0 -202 cm BI /IM true /W 57 /H 327 /BPC 1 /F /CCF /DP <> ID > N>oo|7߾~ ?~߿߇ox___^kkֿxZ_A~]~Zx]kZ_ZiZ : EI endstream endobj 584 0 obj <> stream 0 0 0 -202 56 125 d1 56 0 0 327 0 -202 cm BI /IM true /W 56 /H 327 /BPC 1 /F /CCF /DP <> ID > prk=>{| kZ]a--tXK~__/_Z]-.EAUpP EI endstream endobj 585 0 obj <> stream 0 0 0 -2 65 78 d1 65 0 0 80 0 -2 cm BI /IM true /W 65 /H 80 /BPC 1 /F /CCF /DP <> ID &0H? }@,>&`{M{~u,!# У! p& ( Ϣ0jap 7_~v?x`y@ EI endstream endobj 586 0 obj <> stream 130 0 0 0 0 0 d1 endstream endobj 587 0 obj <> stream 0 0 0 0 75 75 d1 75 0 0 75 0 0 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID &IOP %__/U*A/ү TA~/_%6 A~ ?/P<K)gɪ  EI endstream endobj 588 0 obj <> stream 0 0 0 30 40 77 d1 40 0 0 47 0 30 cm BI /IM true /W 40 /H 47 /BPC 1 /F /CCF /DP <> ID _'2jÃowwo}~a߿mp]@ EI endstream endobj 589 0 obj <> stream 0 0 0 1 37 79 d1 37 0 0 78 0 1 cm BI /IM true /W 37 /H 78 /BPC 1 /F /CCF /DP <> ID &0xXzMo_>a ?m [H EI endstream endobj 590 0 obj <> stream 0 0 0 5 27 79 d1 27 0 0 74 0 5 cm BI /IM true /W 27 /H 74 /BPC 1 /F /CCF /DP <> ID & z<޷??x_džA  EI endstream endobj 591 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &g M~·o߿ɪp_p4a0P EI endstream endobj 592 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &l4}MV p?ϫnǴ  a@@ EI endstream endobj 593 0 obj <> stream 0 0 0 -7 19 103 d1 19 0 0 110 0 -7 cm BI /IM true /W 19 /H 110 /BPC 1 /F /CCF /DP <> ID a#|@ EI endstream endobj 594 0 obj <> stream 0 0 0 -7 19 103 d1 19 0 0 110 0 -7 cm BI /IM true /W 19 /H 110 /BPC 1 /F /CCF /DP <> ID /@ EI endstream endobj 595 0 obj <> stream 0 0 0 5 59 66 d1 59 0 0 61 0 5 cm BI /IM true /W 59 /H 61 /BPC 1 /F /CCF /DP <> ID &H?#  x_&_޼C  EI endstream endobj 596 0 obj <> stream 0 0 0 27 44 68 d1 44 0 0 41 0 27 cm BI /IM true /W 44 /H 41 /BPC 1 /F /CCF /DP <> ID &hOO0?M_??ީCo EI endstream endobj 597 0 obj <> stream 0 0 0 3 44 66 d1 44 0 0 63 0 3 cm BI /IM true /W 44 /H 63 /BPC 1 /F /CCF /DP <> ID &NPB_.+^߰~߃~K&@ EI endstream endobj 598 0 obj <> stream 0 0 0 3 45 68 d1 45 0 0 65 0 3 cm BI /IM true /W 45 /H 65 /BPC 1 /F /CCF /DP <> ID &18ao >!7L>Kis5a1 5 EI endstream endobj 599 0 obj <> stream 0 0 0 27 45 86 d1 45 0 0 59 0 27 cm BI /IM true /W 45 /H 59 /BPC 1 /F /CCF /DP <> ID &f _Aa'~3]aooaoT  EI endstream endobj 600 0 obj <> stream 0 0 0 26 52 68 d1 52 0 0 42 0 26 cm BI /IM true /W 52 /H 42 /BPC 1 /F /CCF /DP <> ID &I9(<CGzDjߠ }ɪ}_~W:@K A~Ce  EI endstream endobj 601 0 obj <> stream 0 0 0 -1 6 89 d1 6 0 0 90 0 -1 cm BI /IM true /W 6 /H 90 /BPC 1 /F /CCF /DP <> ID &Mu EI endstream endobj 602 0 obj <> stream 0 0 0 3 36 68 d1 36 0 0 65 0 3 cm BI /IM true /W 36 /H 65 /BPC 1 /F /CCF /DP <> ID & G=`~A?ooMW?ÿ߶0τC EI endstream endobj 603 0 obj <> stream 0 0 0 6 36 66 d1 36 0 0 60 0 6 cm BI /IM true /W 36 /H 60 /BPC 1 /F /CCF /DP <> ID &/~lx?m߿݇`ooool>xU_ka- - ,0X0 EI endstream endobj 604 0 obj <> stream 0 0 0 2 38 68 d1 38 0 0 66 0 2 cm BI /IM true /W 38 /H 66 /BPC 1 /F /CCF /DP <> ID &VM7㽇&?][km1j  EI endstream endobj 605 0 obj <> stream 0 0 0 65 9 84 d1 9 0 0 19 0 65 cm BI /IM true /W 9 /H 19 /BPC 1 /F /CCF /DP <> ID &oʘɪP EI endstream endobj 606 0 obj <> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID &@y W0}oa /޿wvl%C EI endstream endobj 607 0 obj <> stream 0 0 0 6 25 68 d1 25 0 0 62 0 6 cm BI /IM true /W 25 /H 62 /BPC 1 /F /CCF /DP <> ID & z==o}[&?[~lWc/@^@ EI endstream endobj 608 0 obj <> stream 0 0 0 15 46 71 d1 46 0 0 56 0 15 cm BI /IM true /W 46 /H 56 /BPC 1 /F /CCF /DP <> ID &d1 ֊D X]]ip_֗Q)OSɪ}xdI[7  EI endstream endobj 609 0 obj <> stream 0 0 0 2 42 69 d1 42 0 0 67 0 2 cm BI /IM true /W 42 /H 67 /BPC 1 /F /CCF /DP <> ID &! `ɨ@.A~_Z.7O`&AXK\ Z C Z !/ 5.]|1 ` EI endstream endobj 610 0 obj <> stream 0 0 0 -1 22 88 d1 22 0 0 89 0 -1 cm BI /IM true /W 22 /H 89 /BPC 1 /F /CCF /DP <> ID &Z uׅ.^ֿ ߿ @ EI endstream endobj 611 0 obj <> stream 0 0 0 5 54 66 d1 54 0 0 61 0 5 cm BI /IM true /W 54 /H 61 /BPC 1 /F /CCF /DP <> ID $3j)@il|6~/KԃT)@ EI endstream endobj 612 0 obj <> stream 0 0 0 6 31 66 d1 31 0 0 60 0 6 cm BI /IM true /W 31 /H 60 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID & @?7~߇i>~c__z____{md1H EI endstream endobj 614 0 obj <> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID &@P!O%[ .\0\6X@<'ΏM& __ [  EI endstream endobj 615 0 obj <> stream 0 0 0 -1 23 88 d1 23 0 0 89 0 -1 cm BI /IM true /W 23 /H 89 /BPC 1 /F /CCF /DP <> ID &g{={}/_k~p]h-u]u EI endstream endobj 616 0 obj <> stream 0 0 0 1 63 66 d1 63 0 0 65 0 1 cm BI /IM true /W 63 /H 65 /BPC 1 /F /CCF /DP <> ID #=R4~{> stream 0 0 0 26 54 68 d1 54 0 0 42 0 26 cm BI /IM true /W 54 /H 42 /BPC 1 /F /CCF /DP <> ID &3ς xL4̳1>a7m݆?_~׭j  EI endstream endobj 618 0 obj <> stream 0 0 0 3 20 66 d1 20 0 0 63 0 3 cm BI /IM true /W 20 /H 63 /BPC 1 /F /CCF /DP <> ID jdkXR@ EI endstream endobj 619 0 obj <> stream 0 0 0 25 40 68 d1 40 0 0 43 0 25 cm BI /IM true /W 40 /H 43 /BPC 1 /F /CCF /DP <> ID &c=XFfA ?>5Z__m-oXa[^ EI endstream endobj 620 0 obj <> stream 0 0 0 25 42 87 d1 42 0 0 62 0 25 cm BI /IM true /W 42 /H 62 /BPC 1 /F /CCF /DP <> ID &@.0zށ}MS_ Xl.=t @z< ZrtЁM zih597  @ EI endstream endobj 621 0 obj <> stream 0 0 0 11 41 15 d1 41 0 0 4 0 11 cm BI /IM true /W 41 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 622 0 obj <> stream 0 0 0 6 31 66 d1 31 0 0 60 0 6 cm BI /IM true /W 31 /H 60 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &uB XA< |'Aƺ^}oK  ___v\O~^K޼0+^/ ?l?~~~ w a Kbk 5 EI endstream endobj 632 0 obj <> stream 0 0 0 -6 70 96 d1 70 0 0 102 0 -6 cm BI /IM true /W 70 /H 102 /BPC 1 /F /CCF /DP <> ID 6F/!%`8>:w}=0 IZ\ m1@@^C`. a%\PD 32$PkUK&Umj` w\6 A0 a?<@ EI endstream endobj 633 0 obj <> stream 0 0 0 -6 80 94 d1 80 0 0 100 0 -6 cm BI /IM true /W 80 /H 100 /BPC 1 /F /CCF /DP <> ID & Jf/uKA}_ Uد / ~?W@ EI endstream endobj 634 0 obj <> stream 0 0 0 -5 95 94 d1 95 0 0 99 0 -5 cm BI /IM true /W 95 /H 99 /BPC 1 /F /CCF /DP <> ID &`g22h ~#,߃i7_𗯥|/X> stream 0 0 0 27 58 97 d1 58 0 0 70 0 27 cm BI /IM true /W 58 /H 70 /BPC 1 /F /CCF /DP <> ID !Oj3@>8A =o  mÇ_yz 4aa ` EI endstream endobj 636 0 obj <> stream 0 0 0 29 47 99 d1 47 0 0 70 0 29 cm BI /IM true /W 47 /H 70 /BPC 1 /F /CCF /DP <> ID &1?#~6T }?m;?5߿~~{~FIaa  EI endstream endobj 637 0 obj <> stream 0 0 0 1 57 100 d1 57 0 0 99 0 1 cm BI /IM true /W 57 /H 99 /BPC 1 /F /CCF /DP <> ID &g8k>, l[zvÿu} m׿[zX~;9B! w EI endstream endobj 638 0 obj <> stream 0 0 0 58 43 110 d1 43 0 0 52 0 58 cm BI /IM true /W 43 /H 52 /BPC 1 /F /CCF /DP <> ID )ǓS3i{v;|}mXy뵆kh0 EI endstream endobj 639 0 obj <> stream 0 0 0 -46 37 3 d1 37 0 0 49 0 -46 cm BI /IM true /W 37 /H 49 /BPC 1 /F /CCF /DP <> ID &p!Sz~/@p1{<`ȅ< EI endstream endobj 640 0 obj <> stream 0 0 0 58 35 110 d1 35 0 0 52 0 58 cm BI /IM true /W 35 /H 52 /BPC 1 /F /CCF /DP <> ID &^wz SɯoAs oA@ EI endstream endobj 645 0 obj <> stream 0 0 0 1 50 79 d1 50 0 0 78 0 1 cm BI /IM true /W 50 /H 78 /BPC 1 /F /CCF /DP <> ID & `aސ7{;wxa᰻<17k ~ W~A EI endstream endobj 646 0 obj <> stream 0 0 0 -2 56 75 d1 56 0 0 77 0 -2 cm BI /IM true /W 56 /H 77 /BPC 1 /F /CCF /DP <> ID &?3 #MB]o7AB  EI endstream endobj 647 0 obj <> stream 0 0 0 58 45 96 d1 45 0 0 38 0 58 cm BI /IM true /W 45 /H 38 /BPC 1 /F /CCF /DP <> ID &l|4r 7~& <{^`aa` EI endstream endobj 648 0 obj <> stream 0 0 0 6 34 77 d1 34 0 0 71 0 6 cm BI /IM true /W 34 /H 71 /BPC 1 /F /CCF /DP <> ID &φ><#7~ĈNMVC? / EI endstream endobj 650 0 obj <> stream 0 0 0 43 26 96 d1 26 0 0 53 0 43 cm BI /IM true /W 26 /H 53 /BPC 1 /F /CCF /DP <> ID & @p޷߿l? ?55f/@ EI endstream endobj 651 0 obj <> stream 0 0 0 27 56 77 d1 56 0 0 50 0 27 cm BI /IM true /W 56 /H 50 /BPC 1 /F /CCF /DP <> ID &A`0G筭 ߿S^~<=&w~~}|5@ EI endstream endobj 660 0 obj <> stream 0 0 0 0 68 99 d1 68 0 0 99 0 0 cm BI /IM true /W 68 /H 99 /BPC 1 /F /CCF /DP <> ID &5~o> stream 0 0 0 29 72 124 d1 72 0 0 95 0 29 cm BI /IM true /W 72 /H 95 /BPC 1 /F /CCF /DP <> ID &` Y p a}>}a0. {uTxArXa 5 QC|Co [’/K[څa<<1:!5C:k P` EI endstream endobj 662 0 obj <> stream 0 0 0 0 47 71 d1 47 0 0 71 0 0 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &+ ޷&A t_k o0pao0[ EI endstream endobj 663 0 obj <> stream 0 0 0 0 50 67 d1 50 0 0 67 0 0 cm BI /IM true /W 50 /H 67 /BPC 1 /F /CCF /DP <> ID &qwɪy)}>߿߿z~ׯ/(ꠤ EI endstream endobj 665 0 obj <> stream 0 0 0 0 45 71 d1 45 0 0 71 0 0 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &@@t ៭?a{] XkkadG@ EI endstream endobj 669 0 obj <> stream 0 0 0 30 48 77 d1 48 0 0 47 0 30 cm BI /IM true /W 48 /H 47 /BPC 1 /F /CCF /DP <> ID &k2~|7 {y/  EI endstream endobj 670 0 obj <> stream 0 0 0 0 49 71 d1 49 0 0 71 0 0 cm BI /IM true /W 49 /H 71 /BPC 1 /F /CCF /DP <> ID &4|0z$|'3L_|!?mp_]D.h_@ EI endstream endobj 671 0 obj <> stream 0 0 0 0 53 67 d1 53 0 0 67 0 0 cm BI /IM true /W 53 /H 67 /BPC 1 /F /CCF /DP <> ID & ?ɪ ^C3\{O?[?U1(_rj@ EI endstream endobj 672 0 obj <> stream 0 0 0 -19 48 48 d1 48 0 0 67 0 -19 cm BI /IM true /W 48 /H 67 /BPC 1 /F /CCF /DP <> ID &bd_Xc߿_|9TWPP EI endstream endobj 673 0 obj <> stream 0 0 0 -53 54 0 d1 54 0 0 53 0 -53 cm BI /IM true /W 54 /H 53 /BPC 1 /F /CCF /DP <> ID &UQ &թ5 im im im_GޓzMIޓzMIޓzMI95 @@ EI endstream endobj 674 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &I<C@zMWxp\q] O >}yр EI endstream endobj 675 0 obj <> stream 0 0 0 2 73 77 d1 73 0 0 75 0 2 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID &_3C ~~ý ߇{~>o|7|ov ~l<;}ol= 7  EI endstream endobj 676 0 obj <> stream 0 0 0 43 73 69 d1 73 0 0 26 0 43 cm BI /IM true /W 73 /H 26 /BPC 1 /F /CCF /DP <> ID &pV'?~  0{`ap. P EI endstream endobj 677 0 obj <> stream 0 0 0 -47 60 3 d1 60 0 0 50 0 -47 cm BI /IM true /W 60 /H 50 /BPC 1 /F /CCF /DP <> ID & 00# o{p9~|oxzH6ba`  EI endstream endobj 678 0 obj <> stream 0 0 0 0 61 99 d1 61 0 0 99 0 0 cm BI /IM true /W 61 /H 99 /BPC 1 /F /CCF /DP <> ID 6 j#ƒ` =7APݾÇ[+ w0{}6~8Xz ,0.<0X0 EI endstream endobj 683 0 obj <> stream 0 0 0 26 68 99 d1 68 0 0 73 0 26 cm BI /IM true /W 68 /H 73 /BPC 1 /F /CCF /DP <> ID &Y> >}F~4o?pw!ka @ EI endstream endobj 684 0 obj <> stream 0 0 0 0 68 99 d1 68 0 0 99 0 0 cm BI /IM true /W 68 /H 99 /BPC 1 /F /CCF /DP <> ID 8 |{g!4~{!}|+釿p]]~u1} [}0`] vt-+ ~  @ EI endstream endobj 685 0 obj <> stream 0 0 0 41 42 96 d1 42 0 0 55 0 41 cm BI /IM true /W 42 /H 55 /BPC 1 /F /CCF /DP <> ID &@c(  }>5m- % ` EI endstream endobj 686 0 obj <> stream 0 0 0 -16 58 38 d1 58 0 0 54 0 -16 cm BI /IM true /W 58 /H 54 /BPC 1 /F /CCF /DP <> ID &>~ɪo~߽}?<߀ EI endstream endobj 687 0 obj <> stream 0 0 0 -1 34 32 d1 34 0 0 33 0 -1 cm BI /IM true /W 34 /H 33 /BPC 1 /F /CCF /DP <> ID &l6LaL`~wm{ax EI endstream endobj 688 0 obj <> stream 0 0 0 -1 34 32 d1 34 0 0 33 0 -1 cm BI /IM true /W 34 /H 33 /BPC 1 /F /CCF /DP <> ID &g0.{mwa~wya k MRkA EI endstream endobj 689 0 obj <> stream 0 0 0 29 40 79 d1 40 0 0 50 0 29 cm BI /IM true /W 40 /H 50 /BPC 1 /F /CCF /DP <> ID &JaaoH~ޡoW?^<0o~xw `׆ V ,( EI endstream endobj 690 0 obj <> stream 0 0 0 29 54 79 d1 54 0 0 50 0 29 cm BI /IM true /W 54 /H 50 /BPC 1 /F /CCF /DP <> ID &l2τa88})~x߼?m`׵b @ EI endstream endobj 691 0 obj <> stream 0 0 0 29 38 79 d1 38 0 0 50 0 29 cm BI /IM true /W 38 /H 50 /BPC 1 /F /CCF /DP <> ID & 𷠁a>wvMS\2 /Z_`h5~{\P EI endstream endobj 692 0 obj <> stream 0 0 0 -2 86 75 d1 86 0 0 77 0 -2 cm BI /IM true /W 86 /H 77 /BPC 1 /F /CCF /DP <> ID &2PC:gFA_b#MBGPw߷o P`† %yD0 EI endstream endobj 697 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &`>CBLA~ o[0?^'^]a{iml[ %džk -p~>oMA|uo aavu - U  EI endstream endobj 698 0 obj <> stream 0 0 0 -6 77 94 d1 77 0 0 100 0 -6 cm BI /IM true /W 77 /H 100 /BPC 1 /F /CCF /DP <> ID "PPPD ^kK_5%/a7?ao~oc@ EI endstream endobj 699 0 obj <> stream 0 0 0 -6 102 96 d1 102 0 0 102 0 -6 cm BI /IM true /W 102 /H 102 /BPC 1 /F /CCF /DP <> ID &SiJ0D3 0D`e< A7|$ޓ[}|-0ISj\=턿޿ =v޷][ ޶ ApvAXb ![ !  EI endstream endobj 700 0 obj <> stream 0 0 0 -3 97 94 d1 97 0 0 97 0 -3 cm BI /IM true /W 97 /H 97 /BPC 1 /F /CCF /DP <> ID & 3+ ]_^xx]@1 # EI endstream endobj 701 0 obj <> stream 0 0 0 2 109 77 d1 109 0 0 75 0 2 cm BI /IM true /W 109 /H 75 /BPC 1 /F /CCF /DP <> ID &8F?[FAkam\<=D^ \=~{Wmw.onl~y ! EI endstream endobj 702 0 obj <> stream 0 0 0 5 56 66 d1 56 0 0 61 0 5 cm BI /IM true /W 56 /H 61 /BPC 1 /F /CCF /DP <> ID %`ME'܃t{~^^^^A8oCo/(RP  EI endstream endobj 713 0 obj <> stream 0 0 0 0 51 67 d1 51 0 0 67 0 0 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID & Ӌ5K#//_~?>jp EI endstream endobj 718 0 obj <> stream 0 0 0 2 93 77 d1 93 0 0 75 0 2 cm BI /IM true /W 93 /H 75 /BPC 1 /F /CCF /DP <> ID )4aj) 5kO^ _ C': ?i_ao_x_a+Ai_ B EI endstream endobj 719 0 obj <> stream 0 0 0 -27 30 -10 d1 30 0 0 17 0 -27 cm BI /IM true /W 30 /H 17 /BPC 1 /F /CCF /DP <> ID &ؿN\0im\0@ EI endstream endobj 720 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID & _ Dd|p A; o~x 4 wGQ| H/u'z ~%[[h.D VX0Xa~C+X EI endstream endobj 725 0 obj <> stream 0 0 0 29 63 100 d1 63 0 0 71 0 29 cm BI /IM true /W 63 /H 71 /BPC 1 /F /CCF /DP <> ID &f$!C 'l$p-C]aXop~z}F??o޿L<+|'ޭ&{O { j  EI endstream endobj 730 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &t nO(|  <$޷7oa__vAa[X0X0_  EI endstream endobj 731 0 obj <> stream 0 0 0 30 21 94 d1 21 0 0 64 0 30 cm BI /IM true /W 21 /H 64 /BPC 1 /F /CCF /DP <> ID &3( am`#=? @ EI endstream endobj 732 0 obj <> stream 0 0 0 -7 55 94 d1 55 0 0 101 0 -7 cm BI /IM true /W 55 /H 101 /BPC 1 /F /CCF /DP <> ID &!**J1?o5+ᅐk  EI endstream endobj 733 0 obj <> stream 0 0 0 30 19 93 d1 19 0 0 63 0 30 cm BI /IM true /W 19 /H 63 /BPC 1 /F /CCF /DP <> ID &Cɯ>~AְX?kj  EI endstream endobj 750 0 obj <> stream 0 0 0 -7 78 81 d1 78 0 0 88 0 -7 cm BI /IM true /W 78 /H 88 /BPC 1 /F /CCF /DP <> ID &  }GI0H??^W aozz[ vkh/ zlVA'``6o I߻pwoA_|i>?0P EI endstream endobj 767 0 obj <> stream 0 0 0 0 72 99 d1 72 0 0 99 0 0 cm BI /IM true /W 72 /H 99 /BPC 1 /F /CCF /DP <> ID &Nf$z4/& ~ J7 8H:&D1oK0M^~?I?zz]\<-޻_a,<-m.aKa,2ǐ/h  EI endstream endobj 768 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &Df+0~m{_>{AzxGW;B| ~Q_z]] a`€ EI endstream endobj 785 0 obj <> stream 0 0 0 45 10 55 d1 10 0 0 10 0 45 cm BI /IM true /W 10 /H 10 /BPC 1 /F /CCF /DP <> ID &Zq~MR EI endstream endobj 786 0 obj <> stream 0 0 0 -1 44 36 d1 44 0 0 37 0 -1 cm BI /IM true /W 44 /H 37 /BPC 1 /F /CCF /DP <> ID &_>` ? o& % w<@ EI endstream endobj 803 0 obj <> stream 0 0 0 -5 113 96 d1 113 0 0 101 0 -5 cm BI /IM true /W 113 /H 101 /BPC 1 /F /CCF /DP <> ID &x(5JDx'f [kK_K^%. 50  ~ _~}}/ׄP+u\.w0lrd ~  EI endstream endobj 820 0 obj <> stream 0 0 0 12 39 16 d1 39 0 0 4 0 12 cm BI /IM true /W 39 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 821 0 obj <> stream 0 0 0 -5 84 94 d1 84 0 0 99 0 -5 cm BI /IM true /W 84 /H 99 /BPC 1 /F /CCF /DP <> ID &WA?f F EI endstream endobj 822 0 obj <> stream 0 0 0 29 43 67 d1 43 0 0 38 0 29 cm BI /IM true /W 43 /H 38 /BPC 1 /F /CCF /DP <> ID &ahLl?k{w&?|?}a5` EI endstream endobj 823 0 obj <> stream 0 0 0 24 76 67 d1 76 0 0 43 0 24 cm BI /IM true /W 76 /H 43 /BPC 1 /F /CCF /DP <> ID &np}pA|__@ EI endstream endobj 824 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &&Cd?a #&5@ EI endstream endobj 825 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &_o?'oa'>O 'kC@@ EI endstream endobj 826 0 obj <> stream 0 0 0 27 36 66 d1 36 0 0 39 0 27 cm BI /IM true /W 36 /H 39 /BPC 1 /F /CCF /DP <> ID &@@@E z^]` @ EI endstream endobj 827 0 obj <> stream 0 0 0 11 37 66 d1 37 0 0 55 0 11 cm BI /IM true /W 37 /H 55 /BPC 1 /F /CCF /DP <> ID &bP EI endstream endobj 828 0 obj <> stream 0 0 0 5 39 69 d1 39 0 0 64 0 5 cm BI /IM true /W 39 /H 64 /BPC 1 /F /CCF /DP <> ID & < > stream 0 0 0 5 64 66 d1 64 0 0 61 0 5 cm BI /IM true /W 64 /H 61 /BPC 1 /F /CCF /DP <> ID &ɨ`[M4 iČ  EI endstream endobj 830 0 obj <> stream 0 0 0 2 57 66 d1 57 0 0 64 0 2 cm BI /IM true /W 57 /H 64 /BPC 1 /F /CCF /DP <> ID %̄ɩ {MH&3 Do;k L ( EI endstream endobj 835 0 obj <> stream 0 0 0 14 39 32 d1 39 0 0 18 0 14 cm BI /IM true /W 39 /H 18 /BPC 1 /F /CCF /DP <> ID &B!`† Rkaa,0 / EI endstream endobj 836 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &<#XxI&}C|+Vҙl0Mx0 ga?7a ǃ @ EI endstream endobj 857 0 obj <> stream 0 0 0 0 109 101 d1 109 0 0 101 0 0 cm BI /IM true /W 109 /H 101 /BPC 1 /F /CCF /DP <> ID &g S {z_^?޽{؅kjtk%~_K׿vz\5޽{޻]z_k  EI endstream endobj 858 0 obj <> stream 0 0 0 -72 97 171 d1 97 0 0 243 0 -72 cm BI /IM true /W 97 /H 243 /BPC 1 /F /CCF /DP <> ID &x7?i߿߿߿ {~߻޻ X5f( EI endstream endobj 859 0 obj <> stream 0 0 0 -23 44 50 d1 44 0 0 73 0 -23 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID 0 5_-7?F{L?ov{x__^G_af>߾[ w1  EI endstream endobj 860 0 obj <> stream 0 0 0 -31 58 41 d1 58 0 0 72 0 -31 cm BI /IM true /W 58 /H 72 /BPC 1 /F /CCF /DP <> ID &` oMV_ooj`^ pA@ EI endstream endobj 861 0 obj <> stream 0 0 0 36 13 105 d1 13 0 0 69 0 36 cm BI /IM true /W 13 /H 69 /BPC 1 /F /CCF /DP <> ID &o~o?_&,&@@ EI endstream endobj 862 0 obj <> stream 134 0 0 0 0 0 d1 endstream endobj 863 0 obj <> stream 0 0 0 -72 60 3 d1 60 0 0 75 0 -72 cm BI /IM true /W 60 /H 75 /BPC 1 /F /CCF /DP <> ID "_j!5!!_\ @ EI endstream endobj 864 0 obj <> stream 0 0 0 5 63 66 d1 63 0 0 61 0 5 cm BI /IM true /W 63 /H 61 /BPC 1 /F /CCF /DP <> ID % ɨC܃so~߇ׅ_^-HD*JA@ EI endstream endobj 869 0 obj <> stream 0 0 0 0 61 80 d1 61 0 0 80 0 0 cm BI /IM true /W 61 /H 80 /BPC 1 /F /CCF /DP <> ID 0 S!} n'w& '~r #2A? k\FT _aAp!{~ ]aO 4 EI endstream endobj 870 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &J >VOo{߆a, EI endstream endobj 871 0 obj <> stream 0 0 0 0 51 100 d1 51 0 0 100 0 0 cm BI /IM true /W 51 /H 100 /BPC 1 /F /CCF /DP <> ID &|5O0> stream 0 0 0 2 75 77 d1 75 0 0 75 0 2 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID &U!oo!߇p~|? x}vgY EI endstream endobj 873 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &<f 0`hkm~A߿v¿}?a;Zt? mp1( EI endstream endobj 874 0 obj <> stream 0 0 0 29 81 79 d1 81 0 0 50 0 29 cm BI /IM true /W 81 /H 50 /BPC 1 /F /CCF /DP <> ID &l  >#>pwww>5xm; oj^X5☦+hAz@@ EI endstream endobj 875 0 obj <> stream 0 0 0 30 22 77 d1 22 0 0 47 0 30 cm BI /IM true /W 22 /H 47 /BPC 1 /F /CCF /DP <> ID &Jz} , x Xa@@ EI endstream endobj 876 0 obj <> stream 0 0 0 2 69 77 d1 69 0 0 75 0 2 cm BI /IM true /W 69 /H 75 /BPC 1 /F /CCF /DP <> ID & x5?VC 7õx.#@ EI endstream endobj 877 0 obj <> stream 0 0 0 1 49 79 d1 49 0 0 78 0 1 cm BI /IM true /W 49 /H 78 /BPC 1 /F /CCF /DP <> ID &0|'5]8wwBp?~n3@׈4xan/?J EI endstream endobj 878 0 obj <> stream 0 0 0 29 46 100 d1 46 0 0 71 0 29 cm BI /IM true /W 46 /H 71 /BPC 1 /F /CCF /DP <> ID &#eB ߰ ;Oy>W?ɪ=׆Xa @ EI endstream endobj 879 0 obj <> stream 0 0 0 0 69 78 d1 69 0 0 78 0 0 cm BI /IM true /W 69 /H 78 /BPC 1 /F /CCF /DP <> ID & HMnXkî~u{@ EI endstream endobj 880 0 obj <> stream 0 0 0 30 54 100 d1 54 0 0 70 0 30 cm BI /IM true /W 54 /H 70 /BPC 1 /F /CCF /DP <> ID !ɪt߿?~lL=~7}ozyio׊b ( EI endstream endobj 881 0 obj <> stream 0 0 0 -1 74 80 d1 74 0 0 81 0 -1 cm BI /IM true /W 74 /H 81 /BPC 1 /F /CCF /DP <> ID &p'!S0A' H ނ ?M^_1&$ozat{>P|7M~{ 쁀}?4_NAT߷~ ߽zdž` EI endstream endobj 882 0 obj <> stream 0 0 0 7 49 79 d1 49 0 0 72 0 7 cm BI /IM true /W 49 /H 72 /BPC 1 /F /CCF /DP <> ID &zz i7~@ x>AFzתKK] B ]p\%,%]p EI endstream endobj 883 0 obj <> stream 0 0 0 3 72 78 d1 72 0 0 75 0 3 cm BI /IM true /W 72 /H 75 /BPC 1 /F /CCF /DP <> ID &^BFa"l7}7_[a/\B{ ` ÷|g P EI endstream endobj 884 0 obj <> stream 0 0 0 1 46 79 d1 46 0 0 78 0 1 cm BI /IM true /W 46 /H 78 /BPC 1 /F /CCF /DP <> ID &x?rz߇U_~a}}-\[|{*}0awo][ W" EI endstream endobj 885 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &A`@l _o] ,0lج> pX%h*x[0A MW~_z}vKzh-\x0d4i EI endstream endobj 886 0 obj <> stream 0 0 0 5 55 77 d1 55 0 0 72 0 5 cm BI /IM true /W 55 /H 72 /BPC 1 /F /CCF /DP <> ID &G4V0H M? ߰? @ EI endstream endobj 887 0 obj <> stream 0 0 0 2 48 77 d1 48 0 0 75 0 2 cm BI /IM true /W 48 /H 75 /BPC 1 /F /CCF /DP <> ID &!]?{ EI endstream endobj 888 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &sC ނ o>B߽<[MU߻8_ck ! EI endstream endobj 889 0 obj <> stream 0 0 0 2 99 77 d1 99 0 0 75 0 2 cm BI /IM true /W 99 /H 75 /BPC 1 /F /CCF /DP <> ID !͂@k|?MH Hh>[Xj?ߺ~~.{wop߿@ EI endstream endobj 890 0 obj <> stream 0 0 0 29 47 100 d1 47 0 0 71 0 29 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &$d4? oaCћޯ Շwx߆h׆0_@ EI endstream endobj 891 0 obj <> stream 0 0 0 2 71 80 d1 71 0 0 78 0 2 cm BI /IM true /W 71 /H 78 /BPC 1 /F /CCF /DP <> ID &|?O ߿¿~}7~z߿P?߿߿߿տ7)Y EI endstream endobj 892 0 obj <> stream 0 0 0 5 51 77 d1 51 0 0 72 0 5 cm BI /IM true /W 51 /H 72 /BPC 1 /F /CCF /DP <> ID &}/߷?o~ {o`7o#O{Ip]Xz8+@ EI endstream endobj 893 0 obj <> stream 0 0 0 3 73 78 d1 73 0 0 75 0 3 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID &O!k~DG3? ~_o]K!/%@  EI endstream endobj 894 0 obj <> stream 0 0 0 2 72 80 d1 72 0 0 78 0 2 cm BI /IM true /W 72 /H 78 /BPC 1 /F /CCF /DP <> ID &Nh,`#6V>BÏ??kzAv؅p?!o >o޽/ z>  EI endstream endobj 895 0 obj <> stream 0 0 0 0 63 75 d1 63 0 0 75 0 0 cm BI /IM true /W 63 /H 75 /BPC 1 /F /CCF /DP <> ID &B a7#p}}~C8@ EI endstream endobj 896 0 obj <> stream 0 0 0 66 17 99 d1 17 0 0 33 0 66 cm BI /IM true /W 17 /H 33 /BPC 1 /F /CCF /DP <> ID 0MWa߽o€ EI endstream endobj 897 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &>Ad zxGA@ޭz0\\k^Z]k.|> stream 0 0 0 3 56 81 d1 56 0 0 78 0 3 cm BI /IM true /W 56 /H 78 /BPC 1 /F /CCF /DP <> ID &?80zMAx x> stream 0 0 0 5 51 79 d1 51 0 0 74 0 5 cm BI /IM true /W 51 /H 74 /BPC 1 /F /CCF /DP <> ID &6| xA+`< L=&6] r; yaq Ax`O_ɀc|5@ EI endstream endobj 900 0 obj <> stream 0 0 0 5 45 77 d1 45 0 0 72 0 5 cm BI /IM true /W 45 /H 72 /BPC 1 /F /CCF /DP <> ID &h EI endstream endobj 901 0 obj <> stream 0 0 0 2 53 79 d1 53 0 0 77 0 2 cm BI /IM true /W 53 /H 77 /BPC 1 /F /CCF /DP <> ID &h ~~o8w&߇}x6 EI endstream endobj 902 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &Ar@AoA|'a7o޿za{]x[` ,0Y @@ EI endstream endobj 903 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?G ] <6v[io[ ,6{][[[_ EI endstream endobj 904 0 obj <> stream 0 0 0 2 70 80 d1 70 0 0 78 0 2 cm BI /IM true /W 70 /H 78 /BPC 1 /F /CCF /DP <> ID &pU@F"M Oނo[?߷m=U?;;wÿOO EI endstream endobj 905 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID & _<"@<za~߿{^0  |'1=~p. o^~-m .<0d4i EI endstream endobj 910 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &A@=F>o-}a_Ka/XgP_MOpakX`\x0e  EI endstream endobj 911 0 obj <> stream 0 0 0 0 71 80 d1 71 0 0 80 0 0 cm BI /IM true /W 71 /H 80 /BPC 1 /F /CCF /DP <> ID &$@D@.?7 }7}~ ?7}? > stream 0 0 0 0 72 80 d1 72 0 0 80 0 0 cm BI /IM true /W 72 /H 80 /BPC 1 /F /CCF /DP <> ID &$/A!E] } >'A?| ?}ai4m{_ VK|<0 EI endstream endobj 913 0 obj <> stream 127 0 0 0 0 0 d1 endstream endobj 914 0 obj <> stream 0 0 0 29 42 99 d1 42 0 0 70 0 29 cm BI /IM true /W 42 /H 70 /BPC 1 /F /CCF /DP <> ID &b?ȓ}_  ?w߇oxaw߶ nA@ EI endstream endobj 915 0 obj <> stream 0 0 0 4 48 99 d1 48 0 0 95 0 4 cm BI /IM true /W 48 /H 95 /BPC 1 /F /CCF /DP <> ID &\g?F!d I&]jo߆70{( EI endstream endobj 916 0 obj <> stream 0 0 0 4 51 80 d1 51 0 0 76 0 4 cm BI /IM true /W 51 /H 76 /BPC 1 /F /CCF /DP <> ID & 2 `M{ɯ|KZ d4W!FA}7c@w|'j={ Xa ,X0 EI endstream endobj 917 0 obj <> stream 0 0 0 0 85 75 d1 85 0 0 75 0 0 cm BI /IM true /W 85 /H 75 /BPC 1 /F /CCF /DP <> ID &LA aw߻@~C9 EI endstream endobj 918 0 obj <> stream 0 0 0 2 77 77 d1 77 0 0 75 0 2 cm BI /IM true /W 77 /H 75 /BPC 1 /F /CCF /DP <> ID &AA`3 7~m{߇~oa}xKg P1 EI endstream endobj 919 0 obj <> stream 0 0 0 2 75 77 d1 75 0 0 75 0 2 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID #`MB4V^ץ//~~%:i} {k?߷߷ ރ@A] EI endstream endobj 920 0 obj <> stream 0 0 0 29 45 79 d1 45 0 0 50 0 29 cm BI /IM true /W 45 /H 50 /BPC 1 /F /CCF /DP <> ID &.|a{iˆ >ol?~a{}ώy h>@ ቚiw8 EI endstream endobj 852 0 obj <> endobj 922 0 obj <> endobj 817 0 obj <> endobj 923 0 obj <> endobj 802 0 obj <> endobj 782 0 obj <> endobj 924 0 obj <> endobj 710 0 obj <> endobj 925 0 obj <> endobj 649 0 obj <>/FontBBox[0 -66 113 315]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 205/Widths[ 0 90 0 91 0 0 87 0 0 0 0 51 0 112 0 0 111 0 92 0 62 0 95 0 75 0 42 129 0 34 0 114 0 136 0 74 97 0 38 63 64 106 0 80 0 58 0 0 46 53 0 99 47 0 113 0 0 78 0 118 0 119 0 103 73 96 101 0 0 0 0 0 0 0 0 79 0 85 141 0 123 0 55 0 0 26 0 0 116 54 0 107 59 71 0 88 0 132 65 0 0 52 0 0 0 0 0 0 84 0 40 0 0 0 0 100 102 0 61 0 39 0 41 130 134 0 0 117 83 72 0 33 36 0 82 0 0 0 0 45 0 48 0 0 68 0 0 0 56 60 0 0 0 0 32 0 0 0 0 35 37 81 0 57 0 0 28 0 0 0 67 49 0 0 30 0 0 50 29 0 0 66 44 0 0 0 43 104 77 0 69 0 0 93 0 0 98 127 0 0 0 0 76 0 0 0] >> endobj 454 0 obj <>/FontBBox[0 -150 145 529]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 84 0 48 0 90 0 91 0 63 49 0 85 0 98 0 0 31 99 0 0 74 0 108 34 0 77 86 0 120 121 0 95 0 39 119 0 28 0 125 117 0 79 73 0 24 0 0 0 0 65 0 68 112 93 106 0 114 101 81 0 0 0 126 0 0 0 124 0 0 78 102 0 61 40 0 0 45 0 52 0 0 0 54 51 36 30 0 118 0 80 35 0 33 0 44 0 87 0 0 103 0 109 72 0 29 82 60 97 66 0 41 0 0 76 0 0 47 0 38 0 0 0 0 0 0 50 0 53 0 0 0 59 0 37 0 0 55 0 83 0 43 0 116 0 0 88 0 0 0 0 0 0 27 128 0 0 0 0 110 0 0 0 0 115 0 0 67 0 0 0 56 0 0 113 0 0 46 96 0 26 0 0 0 105 0 0 0 71 0 0 0 0 0 0 0 130 123 0 100 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 57 0 0 0 0 75 0 0 0 25 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 69 0 0 0] >> endobj 271 0 obj <>/FontBBox[0 -79 112 441]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 63 0 56 0 33 0 0 93 0 44 0 60 0 80 0 64 0 31 0 0 55 52 0 54 0 0 0 58 59 0 0 0 66 0 87 86 0 57 0 145 0 84 0 0 42 0 68 25 0 72 0 45 0 74 0 37 0 0 40 0 51 0 0 78 0 41 81 0 36 0 49 0 0 97 96 0 83 0 26 0 0 67 24 0 101 0 43 0 48 0 50 46 0 0 0 0 34 0 0 95 0 94 0 0 47 71 53 0 0 0 62 0 61 0 0 0 77 0 0 0 0 0 0 0 0 0 76 0 0 126 0 0 0 0 0 0 90 0 35 0 0 0 112 0 0 0 0 0 104 0 116 0 103 0 0 0 0 70 0 0 0 143 109 91 0 125 0 0 0 0 110 0 0 0 0 0 108 0 0 69 0 0 89 0 115 0 0 0 0 0 82 75 0 0 0 106 0 102 0 0 0 0 0 39 0 0 132 0 0 0 92 100 0 0 118 119 98 99 113 88 73 111 85 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 38 107 65 0 0 0 0 0 114 0 0 117 0 0 0 0] >> endobj 9 0 obj <>/FontBBox[0 -106 134 181]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 0 0 116 0 64 0 72 0 34 0 123 0 0 91 0 45 90 0 0 65 133 0 126 0 69 88 0 148 0 105 0 77 0 66 81 0 0 137 0 50 111 61 44 0 79 0 150 0 86 38 0 0 0 103 0 37 0 63 0 108 0 71 54 0 62 0 75 0 0 76 0 53 0 0 0 0 57 0 0 42 0 30 0 0 0 112 0 0 0 0 0 0 82 0 52 0 0 47 0 0 74 0 31 0 0 98 60 0 48 0 97 43 0 0 55 0 0 0 39 96 73 56 0 92 0 0 0 0 59 0 0 0 0 0 0 101 0 0 0 0 0 0 0 84 0 87 0 67 0 0 0 0 0 141 0 0 0 0 94 0 107 0 0 0 118 0 0 0 0 0 0 35 0 46 0 0 78 0 58 0 125 0 0 102 83 0 49 93 109 36 0 33 0 0 0 0 129 0 32 0 0 0 0 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 51 80 0 29 85 0 100 0 136 0 68 0 70 0 41 40 0 89 0 0 0 0 0 106 0 0 128 120 0 0] >> endobj 819 0 obj <> endobj 784 0 obj <> endobj 926 0 obj <> endobj 628 0 obj <> endobj 796 0 obj <> endobj 747 0 obj <> endobj 846 0 obj <> endobj 798 0 obj <> endobj 764 0 obj <> endobj 927 0 obj <> endobj 749 0 obj <> endobj 848 0 obj <> endobj 813 0 obj <> endobj 928 0 obj <> endobj 778 0 obj <> endobj 929 0 obj <> endobj 766 0 obj <> endobj 930 0 obj <> endobj 708 0 obj <> endobj 931 0 obj <> endobj 851 0 obj <> endobj 847 0 obj <> endobj 843 0 obj <> endobj 818 0 obj <> endobj 814 0 obj <> endobj 810 0 obj <> endobj 801 0 obj <> endobj 797 0 obj <> endobj 793 0 obj <> endobj 783 0 obj <> endobj 779 0 obj <> endobj 775 0 obj <> endobj 765 0 obj <> endobj 761 0 obj <> endobj 757 0 obj <> endobj 748 0 obj <> endobj 744 0 obj <> endobj 740 0 obj <> endobj 815 0 obj <> endobj 780 0 obj <> endobj 932 0 obj <> endobj 743 0 obj <> endobj 630 0 obj <> endobj 745 0 obj <> endobj 792 0 obj <> endobj 659 0 obj <> endobj 849 0 obj <> endobj 845 0 obj <> endobj 841 0 obj <> endobj 816 0 obj <> endobj 812 0 obj <> endobj 808 0 obj <> endobj 799 0 obj <> endobj 795 0 obj <> endobj 791 0 obj <> endobj 781 0 obj <> endobj 777 0 obj <> endobj 773 0 obj <> endobj 763 0 obj <> endobj 759 0 obj <> endobj 755 0 obj <> endobj 746 0 obj <> endobj 742 0 obj <> endobj 738 0 obj <> endobj 711 0 obj <> endobj 709 0 obj <> endobj 707 0 obj <> endobj 658 0 obj <> endobj 656 0 obj <> endobj 629 0 obj <> endobj 627 0 obj <> endobj 842 0 obj <> endobj 794 0 obj <> endobj 774 0 obj <> endobj 933 0 obj <> endobj 760 0 obj <> endobj 934 0 obj <> endobj 844 0 obj <> endobj 809 0 obj <> endobj 776 0 obj <> endobj 935 0 obj <> endobj 762 0 obj <> endobj 936 0 obj <> endobj 739 0 obj <> endobj 811 0 obj <> endobj 937 0 obj <> endobj 741 0 obj <> endobj 712 0 obj <> endobj 938 0 obj <> endobj 756 0 obj <> endobj 939 0 obj <> endobj 657 0 obj <> endobj 758 0 obj <> endobj 940 0 obj <> endobj 850 0 obj <> endobj 941 0 obj <> endobj 800 0 obj <> endobj 2 0 obj <>endobj xref 0 942 0000000000 65535 f 0000253227 00000 n 0000439052 00000 n 0000252951 00000 n 0000253275 00000 n 0000248604 00000 n 0000000015 00000 n 0000004037 00000 n 0000253344 00000 n 0000428267 00000 n 0000254581 00000 n 0000254902 00000 n 0000255220 00000 n 0000255527 00000 n 0000255592 00000 n 0000255880 00000 n 0000255944 00000 n 0000256196 00000 n 0000256260 00000 n 0000256474 00000 n 0000256538 00000 n 0000256910 00000 n 0000256975 00000 n 0000257255 00000 n 0000257502 00000 n 0000257566 00000 n 0000257894 00000 n 0000257958 00000 n 0000258022 00000 n 0000258291 00000 n 0000258585 00000 n 0000258649 00000 n 0000258714 00000 n 0000259006 00000 n 0000259071 00000 n 0000259338 00000 n 0000259402 00000 n 0000259466 00000 n 0000259761 00000 n 0000259826 00000 n 0000260143 00000 n 0000260208 00000 n 0000260496 00000 n 0000260560 00000 n 0000260869 00000 n 0000260933 00000 n 0000260997 00000 n 0000261362 00000 n 0000261658 00000 n 0000261723 00000 n 0000262047 00000 n 0000262111 00000 n 0000262176 00000 n 0000262240 00000 n 0000262304 00000 n 0000262573 00000 n 0000262637 00000 n 0000262949 00000 n 0000263014 00000 n 0000263209 00000 n 0000263273 00000 n 0000263337 00000 n 0000263636 00000 n 0000263928 00000 n 0000264164 00000 n 0000264229 00000 n 0000264499 00000 n 0000264563 00000 n 0000264834 00000 n 0000264898 00000 n 0000265230 00000 n 0000265295 00000 n 0000265549 00000 n 0000265613 00000 n 0000265677 00000 n 0000265967 00000 n 0000266031 00000 n 0000266304 00000 n 0000266368 00000 n 0000266622 00000 n 0000266908 00000 n 0000266972 00000 n 0000267245 00000 n 0000267309 00000 n 0000267594 00000 n 0000267842 00000 n 0000268108 00000 n 0000268371 00000 n 0000268435 00000 n 0000268660 00000 n 0000268880 00000 n 0000268944 00000 n 0000269240 00000 n 0000269304 00000 n 0000269552 00000 n 0000269787 00000 n 0000270032 00000 n 0000270097 00000 n 0000270436 00000 n 0000270697 00000 n 0000270957 00000 n 0000271233 00000 n 0000271497 00000 n 0000271745 00000 n 0000271810 00000 n 0000272078 00000 n 0000272143 00000 n 0000272409 00000 n 0000272646 00000 n 0000272711 00000 n 0000272950 00000 n 0000273249 00000 n 0000273314 00000 n 0000273565 00000 n 0000273630 00000 n 0000273905 00000 n 0000274174 00000 n 0000274239 00000 n 0000274304 00000 n 0000274523 00000 n 0000274588 00000 n 0000274839 00000 n 0000274904 00000 n 0000274969 00000 n 0000275237 00000 n 0000275442 00000 n 0000275507 00000 n 0000275789 00000 n 0000276056 00000 n 0000276294 00000 n 0000276359 00000 n 0000276424 00000 n 0000276489 00000 n 0000276554 00000 n 0000276779 00000 n 0000276844 00000 n 0000277086 00000 n 0000277360 00000 n 0000277610 00000 n 0000277799 00000 n 0000277864 00000 n 0000278124 00000 n 0000278301 00000 n 0000278506 00000 n 0000278689 00000 n 0000279053 00000 n 0000279360 00000 n 0000279426 00000 n 0000279667 00000 n 0000279898 00000 n 0000280155 00000 n 0000280409 00000 n 0000280647 00000 n 0000280923 00000 n 0000281226 00000 n 0000281291 00000 n 0000281556 00000 n 0000281621 00000 n 0000281891 00000 n 0000281956 00000 n 0000282197 00000 n 0000282425 00000 n 0000282619 00000 n 0000282949 00000 n 0000283204 00000 n 0000283270 00000 n 0000283544 00000 n 0000283786 00000 n 0000284018 00000 n 0000284287 00000 n 0000284352 00000 n 0000284610 00000 n 0000284676 00000 n 0000284916 00000 n 0000285198 00000 n 0000285465 00000 n 0000285531 00000 n 0000285788 00000 n 0000286048 00000 n 0000286354 00000 n 0000286616 00000 n 0000286857 00000 n 0000287116 00000 n 0000287181 00000 n 0000287430 00000 n 0000287495 00000 n 0000287739 00000 n 0000287997 00000 n 0000288062 00000 n 0000288323 00000 n 0000288388 00000 n 0000288672 00000 n 0000288738 00000 n 0000288958 00000 n 0000289259 00000 n 0000289325 00000 n 0000289390 00000 n 0000289665 00000 n 0000289730 00000 n 0000289795 00000 n 0000289861 00000 n 0000289926 00000 n 0000290196 00000 n 0000290261 00000 n 0000290520 00000 n 0000290768 00000 n 0000291015 00000 n 0000291289 00000 n 0000291355 00000 n 0000291626 00000 n 0000291691 00000 n 0000291943 00000 n 0000292183 00000 n 0000292442 00000 n 0000292683 00000 n 0000292871 00000 n 0000293136 00000 n 0000293202 00000 n 0000293459 00000 n 0000293754 00000 n 0000293988 00000 n 0000294249 00000 n 0000294484 00000 n 0000294737 00000 n 0000294993 00000 n 0000295213 00000 n 0000295440 00000 n 0000295688 00000 n 0000295911 00000 n 0000296145 00000 n 0000296388 00000 n 0000296632 00000 n 0000296864 00000 n 0000297110 00000 n 0000297368 00000 n 0000297433 00000 n 0000297689 00000 n 0000297754 00000 n 0000297819 00000 n 0000298052 00000 n 0000298117 00000 n 0000298182 00000 n 0000298428 00000 n 0000298494 00000 n 0000298788 00000 n 0000298854 00000 n 0000299114 00000 n 0000299179 00000 n 0000299400 00000 n 0000299465 00000 n 0000299654 00000 n 0000299719 00000 n 0000299784 00000 n 0000300039 00000 n 0000300104 00000 n 0000004057 00000 n 0000004088 00000 n 0000248774 00000 n 0000004118 00000 n 0000009391 00000 n 0000300358 00000 n 0000300630 00000 n 0000300932 00000 n 0000301206 00000 n 0000301447 00000 n 0000301513 00000 n 0000301787 00000 n 0000302037 00000 n 0000302103 00000 n 0000302169 00000 n 0000302374 00000 n 0000424285 00000 n 0000302620 00000 n 0000302802 00000 n 0000303042 00000 n 0000303331 00000 n 0000303632 00000 n 0000303891 00000 n 0000304125 00000 n 0000304368 00000 n 0000304646 00000 n 0000304939 00000 n 0000305190 00000 n 0000305460 00000 n 0000305720 00000 n 0000305980 00000 n 0000306265 00000 n 0000306449 00000 n 0000306742 00000 n 0000307030 00000 n 0000307274 00000 n 0000307500 00000 n 0000307735 00000 n 0000307995 00000 n 0000308259 00000 n 0000308325 00000 n 0000308502 00000 n 0000308720 00000 n 0000308971 00000 n 0000309182 00000 n 0000309247 00000 n 0000309486 00000 n 0000309715 00000 n 0000309942 00000 n 0000310176 00000 n 0000310413 00000 n 0000310646 00000 n 0000310898 00000 n 0000311147 00000 n 0000311394 00000 n 0000311633 00000 n 0000311848 00000 n 0000312072 00000 n 0000312329 00000 n 0000312540 00000 n 0000312817 00000 n 0000313049 00000 n 0000313114 00000 n 0000313350 00000 n 0000313603 00000 n 0000313668 00000 n 0000313899 00000 n 0000314146 00000 n 0000314370 00000 n 0000314584 00000 n 0000314809 00000 n 0000315051 00000 n 0000315281 00000 n 0000315524 00000 n 0000315796 00000 n 0000315990 00000 n 0000316055 00000 n 0000316289 00000 n 0000316522 00000 n 0000316723 00000 n 0000316956 00000 n 0000317191 00000 n 0000317380 00000 n 0000317606 00000 n 0000317844 00000 n 0000318064 00000 n 0000318291 00000 n 0000318527 00000 n 0000318745 00000 n 0000319005 00000 n 0000319235 00000 n 0000009413 00000 n 0000319422 00000 n 0000248929 00000 n 0000009453 00000 n 0000014201 00000 n 0000319716 00000 n 0000320017 00000 n 0000320271 00000 n 0000320572 00000 n 0000320846 00000 n 0000321154 00000 n 0000321441 00000 n 0000321739 00000 n 0000322006 00000 n 0000322328 00000 n 0000322630 00000 n 0000322888 00000 n 0000323151 00000 n 0000323408 00000 n 0000323601 00000 n 0000323852 00000 n 0000324099 00000 n 0000324361 00000 n 0000324729 00000 n 0000324911 00000 n 0000325163 00000 n 0000325529 00000 n 0000325791 00000 n 0000326060 00000 n 0000326423 00000 n 0000326706 00000 n 0000327076 00000 n 0000327283 00000 n 0000327598 00000 n 0000327877 00000 n 0000327943 00000 n 0000328345 00000 n 0000328608 00000 n 0000328896 00000 n 0000329224 00000 n 0000329497 00000 n 0000329563 00000 n 0000329805 00000 n 0000329982 00000 n 0000330223 00000 n 0000330462 00000 n 0000330733 00000 n 0000330983 00000 n 0000331309 00000 n 0000331592 00000 n 0000331878 00000 n 0000332097 00000 n 0000332163 00000 n 0000332395 00000 n 0000332679 00000 n 0000332903 00000 n 0000333190 00000 n 0000333468 00000 n 0000333708 00000 n 0000333932 00000 n 0000334224 00000 n 0000334496 00000 n 0000334756 00000 n 0000335003 00000 n 0000335225 00000 n 0000335441 00000 n 0000335680 00000 n 0000335943 00000 n 0000336156 00000 n 0000336222 00000 n 0000336501 00000 n 0000336764 00000 n 0000337031 00000 n 0000337298 00000 n 0000337538 00000 n 0000337604 00000 n 0000337670 00000 n 0000337917 00000 n 0000338161 00000 n 0000338433 00000 n 0000338640 00000 n 0000338835 00000 n 0000339098 00000 n 0000339321 00000 n 0000339565 00000 n 0000339820 00000 n 0000340044 00000 n 0000340259 00000 n 0000340533 00000 n 0000340768 00000 n 0000341011 00000 n 0000341299 00000 n 0000341531 00000 n 0000341780 00000 n 0000342003 00000 n 0000342284 00000 n 0000342520 00000 n 0000014223 00000 n 0000342586 00000 n 0000249084 00000 n 0000014263 00000 n 0000018508 00000 n 0000342834 00000 n 0000343089 00000 n 0000343155 00000 n 0000343381 00000 n 0000343630 00000 n 0000343846 00000 n 0000420304 00000 n 0000344104 00000 n 0000344395 00000 n 0000344586 00000 n 0000344856 00000 n 0000345132 00000 n 0000345403 00000 n 0000345671 00000 n 0000345918 00000 n 0000346144 00000 n 0000346378 00000 n 0000346631 00000 n 0000346856 00000 n 0000347128 00000 n 0000347429 00000 n 0000347638 00000 n 0000347704 00000 n 0000347940 00000 n 0000348178 00000 n 0000348421 00000 n 0000348486 00000 n 0000348677 00000 n 0000348942 00000 n 0000349190 00000 n 0000349583 00000 n 0000349841 00000 n 0000350032 00000 n 0000350268 00000 n 0000350560 00000 n 0000018530 00000 n 0000249239 00000 n 0000018580 00000 n 0000023991 00000 n 0000350812 00000 n 0000351126 00000 n 0000351436 00000 n 0000351728 00000 n 0000351996 00000 n 0000352293 00000 n 0000352596 00000 n 0000352662 00000 n 0000352899 00000 n 0000353186 00000 n 0000353412 00000 n 0000353654 00000 n 0000353955 00000 n 0000354215 00000 n 0000354434 00000 n 0000354686 00000 n 0000354985 00000 n 0000355232 00000 n 0000355496 00000 n 0000355725 00000 n 0000355993 00000 n 0000356262 00000 n 0000356494 00000 n 0000356767 00000 n 0000357008 00000 n 0000357285 00000 n 0000357496 00000 n 0000357777 00000 n 0000358017 00000 n 0000358269 00000 n 0000358474 00000 n 0000358675 00000 n 0000358906 00000 n 0000359148 00000 n 0000359340 00000 n 0000359577 00000 n 0000359810 00000 n 0000360057 00000 n 0000360309 00000 n 0000360491 00000 n 0000360762 00000 n 0000360982 00000 n 0000361234 00000 n 0000361454 00000 n 0000361723 00000 n 0000361972 00000 n 0000024013 00000 n 0000249394 00000 n 0000024063 00000 n 0000028716 00000 n 0000362224 00000 n 0000362475 00000 n 0000362740 00000 n 0000363089 00000 n 0000363346 00000 n 0000363630 00000 n 0000363915 00000 n 0000364122 00000 n 0000364344 00000 n 0000364580 00000 n 0000364645 00000 n 0000364895 00000 n 0000365127 00000 n 0000365382 00000 n 0000365669 00000 n 0000365870 00000 n 0000366098 00000 n 0000366355 00000 n 0000366614 00000 n 0000366943 00000 n 0000367165 00000 n 0000367386 00000 n 0000367610 00000 n 0000367835 00000 n 0000028738 00000 n 0000249549 00000 n 0000028788 00000 n 0000033808 00000 n 0000368097 00000 n 0000368347 00000 n 0000368601 00000 n 0000368837 00000 n 0000369116 00000 n 0000369394 00000 n 0000369689 00000 n 0000033830 00000 n 0000249704 00000 n 0000033880 00000 n 0000039681 00000 n 0000369970 00000 n 0000370216 00000 n 0000370525 00000 n 0000370814 00000 n 0000371085 00000 n 0000371350 00000 n 0000371618 00000 n 0000372010 00000 n 0000372406 00000 n 0000372805 00000 n 0000373114 00000 n 0000373180 00000 n 0000373511 00000 n 0000373746 00000 n 0000374008 00000 n 0000374254 00000 n 0000374505 00000 n 0000374745 00000 n 0000374957 00000 n 0000375181 00000 n 0000375410 00000 n 0000375639 00000 n 0000375880 00000 n 0000376130 00000 n 0000376380 00000 n 0000376640 00000 n 0000376830 00000 n 0000377082 00000 n 0000377329 00000 n 0000377580 00000 n 0000377771 00000 n 0000378016 00000 n 0000378257 00000 n 0000378496 00000 n 0000378776 00000 n 0000379016 00000 n 0000379255 00000 n 0000379472 00000 n 0000379728 00000 n 0000380000 00000 n 0000380242 00000 n 0000380492 00000 n 0000380741 00000 n 0000380952 00000 n 0000381191 00000 n 0000381468 00000 n 0000381645 00000 n 0000039703 00000 n 0000249859 00000 n 0000039753 00000 n 0000064048 00000 n 0000436997 00000 n 0000432429 00000 n 0000436936 00000 n 0000435228 00000 n 0000381862 00000 n 0000382177 00000 n 0000382515 00000 n 0000382791 00000 n 0000383071 00000 n 0000383351 00000 n 0000383620 00000 n 0000383933 00000 n 0000384185 00000 n 0000384423 00000 n 0000064071 00000 n 0000250014 00000 n 0000064147 00000 n 0000069734 00000 n 0000384668 00000 n 0000384947 00000 n 0000385206 00000 n 0000385451 00000 n 0000417078 00000 n 0000385693 00000 n 0000385923 00000 n 0000069756 00000 n 0000250169 00000 n 0000069816 00000 n 0000079988 00000 n 0000436875 00000 n 0000438595 00000 n 0000436814 00000 n 0000435458 00000 n 0000386189 00000 n 0000386452 00000 n 0000386790 00000 n 0000387051 00000 n 0000080011 00000 n 0000387299 00000 n 0000250324 00000 n 0000080097 00000 n 0000084915 00000 n 0000387547 00000 n 0000387777 00000 n 0000388041 00000 n 0000388312 00000 n 0000388557 00000 n 0000388829 00000 n 0000389080 00000 n 0000389362 00000 n 0000389597 00000 n 0000389866 00000 n 0000084937 00000 n 0000250479 00000 n 0000084997 00000 n 0000090792 00000 n 0000390177 00000 n 0000390448 00000 n 0000390758 00000 n 0000390997 00000 n 0000391234 00000 n 0000391458 00000 n 0000391685 00000 n 0000391931 00000 n 0000392196 00000 n 0000392452 00000 n 0000090814 00000 n 0000250634 00000 n 0000090874 00000 n 0000096246 00000 n 0000392754 00000 n 0000393081 00000 n 0000393363 00000 n 0000393697 00000 n 0000393960 00000 n 0000394291 00000 n 0000096268 00000 n 0000250789 00000 n 0000096328 00000 n 0000114241 00000 n 0000436753 00000 n 0000433578 00000 n 0000436692 00000 n 0000416927 00000 n 0000436631 00000 n 0000438293 00000 n 0000394546 00000 n 0000114264 00000 n 0000250944 00000 n 0000114363 00000 n 0000119905 00000 n 0000394810 00000 n 0000395102 00000 n 0000395312 00000 n 0000119927 00000 n 0000251099 00000 n 0000119987 00000 n 0000123872 00000 n 0000395625 00000 n 0000123894 00000 n 0000251254 00000 n 0000123954 00000 n 0000128454 00000 n 0000395920 00000 n 0000396209 00000 n 0000396429 00000 n 0000396689 00000 n 0000128476 00000 n 0000251409 00000 n 0000128536 00000 n 0000146508 00000 n 0000436570 00000 n 0000437982 00000 n 0000434851 00000 n 0000438213 00000 n 0000436509 00000 n 0000435153 00000 n 0000434785 00000 n 0000435303 00000 n 0000436448 00000 n 0000432579 00000 n 0000434719 00000 n 0000432960 00000 n 0000396913 00000 n 0000146531 00000 n 0000251564 00000 n 0000146669 00000 n 0000172053 00000 n 0000436387 00000 n 0000438444 00000 n 0000434653 00000 n 0000438670 00000 n 0000436326 00000 n 0000437364 00000 n 0000434587 00000 n 0000437826 00000 n 0000436265 00000 n 0000432809 00000 n 0000434521 00000 n 0000433422 00000 n 0000397272 00000 n 0000397601 00000 n 0000172076 00000 n 0000251719 00000 n 0000172214 00000 n 0000178620 00000 n 0000436204 00000 n 0000437213 00000 n 0000434455 00000 n 0000437670 00000 n 0000436143 00000 n 0000433271 00000 n 0000434389 00000 n 0000434997 00000 n 0000436082 00000 n 0000416776 00000 n 0000434323 00000 n 0000432273 00000 n 0000397879 00000 n 0000398066 00000 n 0000178642 00000 n 0000251874 00000 n 0000178780 00000 n 0000204440 00000 n 0000436021 00000 n 0000435383 00000 n 0000434257 00000 n 0000437133 00000 n 0000435960 00000 n 0000432504 00000 n 0000434191 00000 n 0000432729 00000 n 0000435899 00000 n 0000438977 00000 n 0000434125 00000 n 0000416696 00000 n 0000398295 00000 n 0000204463 00000 n 0000252029 00000 n 0000204601 00000 n 0000216107 00000 n 0000435838 00000 n 0000437595 00000 n 0000434059 00000 n 0000438057 00000 n 0000435777 00000 n 0000433120 00000 n 0000433993 00000 n 0000434917 00000 n 0000435716 00000 n 0000416545 00000 n 0000433927 00000 n 0000432193 00000 n 0000398621 00000 n 0000398798 00000 n 0000399053 00000 n 0000399298 00000 n 0000399520 00000 n 0000399764 00000 n 0000400012 00000 n 0000400240 00000 n 0000400452 00000 n 0000400683 00000 n 0000400918 00000 n 0000216130 00000 n 0000252184 00000 n 0000216268 00000 n 0000221050 00000 n 0000401176 00000 n 0000401389 00000 n 0000221072 00000 n 0000252339 00000 n 0000221132 00000 n 0000233567 00000 n 0000435655 00000 n 0000437058 00000 n 0000433861 00000 n 0000437515 00000 n 0000435594 00000 n 0000432654 00000 n 0000433795 00000 n 0000433040 00000 n 0000435533 00000 n 0000438826 00000 n 0000433729 00000 n 0000416389 00000 n 0000233590 00000 n 0000252486 00000 n 0000233728 00000 n 0000239387 00000 n 0000401644 00000 n 0000401939 00000 n 0000402305 00000 n 0000402580 00000 n 0000402845 00000 n 0000403068 00000 n 0000403134 00000 n 0000403370 00000 n 0000239409 00000 n 0000252641 00000 n 0000239469 00000 n 0000244917 00000 n 0000403622 00000 n 0000403919 00000 n 0000404168 00000 n 0000404435 00000 n 0000404709 00000 n 0000404975 00000 n 0000405272 00000 n 0000405480 00000 n 0000405732 00000 n 0000406006 00000 n 0000406290 00000 n 0000406553 00000 n 0000406826 00000 n 0000407157 00000 n 0000407443 00000 n 0000407723 00000 n 0000408005 00000 n 0000408297 00000 n 0000408544 00000 n 0000408776 00000 n 0000409040 00000 n 0000409360 00000 n 0000409636 00000 n 0000409902 00000 n 0000410167 00000 n 0000410426 00000 n 0000410713 00000 n 0000410962 00000 n 0000411170 00000 n 0000411452 00000 n 0000411700 00000 n 0000411977 00000 n 0000412201 00000 n 0000412447 00000 n 0000412711 00000 n 0000412989 00000 n 0000413264 00000 n 0000244939 00000 n 0000252796 00000 n 0000244999 00000 n 0000248522 00000 n 0000413539 00000 n 0000413817 00000 n 0000414109 00000 n 0000414403 00000 n 0000414469 00000 n 0000414732 00000 n 0000415013 00000 n 0000415301 00000 n 0000415569 00000 n 0000415847 00000 n 0000416128 00000 n 0000248544 00000 n 0000416486 00000 n 0000416637 00000 n 0000416868 00000 n 0000417019 00000 n 0000432370 00000 n 0000432901 00000 n 0000433212 00000 n 0000433363 00000 n 0000433519 00000 n 0000433670 00000 n 0000435094 00000 n 0000437305 00000 n 0000437456 00000 n 0000437767 00000 n 0000437923 00000 n 0000438154 00000 n 0000438385 00000 n 0000438536 00000 n 0000438767 00000 n 0000438918 00000 n trailer << /Size 942 /Root 1 0 R /Info 2 0 R >> startxref 439104 %%EOF evd/inst/CITATION0000744000176200001440000000122212017604710013136 0ustar liggesuserscitHeader("To cite the evd package in publications please use:") citEntry(entry="Article", title = "evd: Extreme Value Distributions", author = "A. G. Stephenson", journal = "R News", year = 2002, volume = 2, number = 2, pages = 31-31, month = "June", url = "http://CRAN.R-project.org/doc/Rnews/", textVersion = paste("A. G. Stephenson.", "evd: Extreme Value Distributions.", "R News, 2(2):31-32, June 2002.", "URL: http://CRAN.R-project.org/doc/Rnews/") ) citFooter("Thank you very much. Have a lovely day.") evd/inst/CHANGES0000744000176200001440000004771712017604710013017 0ustar liggesusersCHANGES FROM VERSION 2.2-7 ARE AS FOLLOWS The demo soe9 has been replaced with a vignette on multivariate extremes. Added functions bvtcplot and evind.test. Added [dpqr]nweibull functions to the namespace! Implemented the possion likelihood for bivariate threshold models. CHANGES FROM VERSION 2.2-6 ARE AS FOLLOWS Documentation edited. In particular, \synopsis sections have been removed as this is no longer supported. Added venice2 dataset. Added [dpqr]nweibull functions. The lazy loading of datasets is now implemented. Some internal C and R code cleaning to avoid warnings. In particular, optimizations over one parameter allow consistent inclusion of the "Brent" method. CHANGES FROM VERSION 2.2-5 ARE AS FOLLOWS Included proper NAMESPACE file and removed zzz.R. CHANGES FROM VERSION 2.2-4 ARE AS FOLLOWS Added default NAMESPACE file to avoid note produced under R CMD check. Changed licence to GPL-3. Datasets are now binary .rda files instead of .R. Renamed doc/guide22.tex to doc/guide22.txt. Call to library in plot.profile2d.evd did not use full argument matching. Fixed. CHANGES FROM VERSION 2.2-3 ARE AS FOLLOWS Removed defunct url from description file. Internal coding change to fpot.norm in order to avoid note produced under R CMD check. CHANGES FROM VERSION 2.2-2 ARE AS FOLLOWS Added a Suggests field to the description file in order to avoid warnings under future versions of R CMD check. CHANGES FROM VERSION 2.2-1 ARE AS FOLLOWS Fitted objects now contain the variance covariance matrix, which can be accessed by the function vcov. New function confint (methods confint.profile.evd and confint.evd) for calculating Wald and profile confidence intervals. The internal function pcint has now been deleted, and plot.profile.evd no longer returns profile confidence intervals invisibly. The function amvnonpar now implements non-parametric estimators for dependence functions of extreme value distributions of any dimension. The function amvevd now implements parametric evaluation of dependence functions of logistic and asymmetric logistic models of any dimension. I have removed the bootstrap confidence intervals option from chiplot. This had problems with zero empirical cdf estimates for some replications. A solution would be to use smoothed estimates, but I decided against implementing this. Argument trunc added to chiplot to control whether estimates are truncated at theoretical upper and lower bounds. The old interfaces to abvnonpar and amvnonpar have been removed. I have included a CITATION file in the /inst directory so that typing citation("evd") returns an appropriate citation. The internal functions ccop and ccop.case have been converted into a new documented function ccbvevd. The recommended R package "stats" is now a required package for evd. The files INDEX and data/00Index are now unnecessary (the information is now automatically generated from documentation files) and have been removed. The defunct function abvpar has been removed. CHANGES FROM VERSION 2.2-0 ARE AS FOLLOWS New function hbvevd for plotting the spectral density of bivariate extreme value models. The spectral density is also now plotted from plot.bvevd. Plotting diagnostics are now implemented for bivariate threshold methods using the method function plot.bvpot. The fbvpot function is now consistent with fbvevd; the dsm argument has been removed, and the asymmetric mixed model has been added. Also, the Husler-Reiss model has been added for (undocumented) Poisson process likelihood fitting. The new argument boot in the function chiplot allows bootstrap confidence intervals. The new argument spcase plots lines corresponding to special cases for comparison. The functions mrlplot and tcplot have a new argument pscale allowing the x-axis to be the threshold exceedance probability rather than the threshold. The default plotting character in bivariate density plots is now a circle, to be consistent with quantile curves plots. Also, all plotting functions now produce all available plots by default. The function tcplot has a new argument vci allowing control over the plotting style of the confidence intervals. Other arguments allow more control over labels and limits. The clusters function with plot = TRUE would produce an error if no data points were above the threshold. This has been fixed. The demo soe9 has been expanded to include all of Chapter Nine of the text Statistics of Extremes. CHANGES FROM VERSION 2.1-7 ARE AS FOLLOWS Added the asymmetric mixed bivariate model to the function fbvevd. A demo soe9 has been included, giving examples from Chapter Nine of the book statistics of extremes. An associated file demo.txt has been added to the /inst directory. The atvnonpar and atvpar functions have been renamed to amvnonpar and amvevd. The abvpar function has been renamed to abvevd, but the former still runs, with a warning. An argument rev has been added to abvpar and abvnonpar, allowing the evaluation of A(1-t) rather than A(t). It can also be passed from plot.bvevd. The argument epmar has been added to abvnonpar and atvnonpar. It allows empirical estimation of the margins. The formerly internal function mtransform is now documented. It transforms to and from exponential distributions under the gev model. The profile plots now plot profile log-likelihoods rather than profile deviances. The plotting functions plot.uvevd and plot.bvevd have an additional argument cilwd to control the line width of confidence intervals. The functions abvpar and abvnonpar now have default axes labels and a border line width argument. The function abvnonpar is simpler; the "tdo" method is now undocumented, old methods "deheuvels" and "halltajvidi" can now be implemented using the argument madj. For back compatability, the old interface can still be used. The weight function option for method "cfg" has been removed, and the "cfg" definition now has a simpler equivalent representation. Similar changes have been made to atvnonpar (now renamed to amvnonpar). In fbvevd the dependence summaries, and hence the argument dsm, have been removed, though the former Dependence One value is now automatically given in the output. The argument warn.inf is now undocumented. The marginal option "exponential" to the function evmc has been changed to "rweibull" (negative exponential) because the former swaps the bivariate tails around. The function anova now has a logical argument half to deal with non-regular cases where the asymptotic distribution of the deviance difference is known to be one half of a chi-squared. Also, it no longer errors when testing bilog vs log or negbilog vs bilog. Added the dataset lossalae on general liability claims. CHANGES FROM VERSION 2.1-6 ARE AS FOLLOWS The exi function has been simplified; it now returns only a single estimate, but a new estimation method based on inter-exceedance times has been added. A new function exiplot plots estimates of the extremal index. The rlow argument (lower clustering interval) is now hidden in the documentation for fpot, clusters, exi and exiplot. Due to numerical problems, the function rmvevd could return Inf when the dependence parameters were small. This has been fixed. The maintainer thanks Mohammed Mehdi Gholam Rezaee for reporting this. The anova function errored when used inside another function. This is now corrected. The maintainer thanks William Valdar for reporting this. In function abvnonpar the method "hall" is now "halltajvidi", and an additional comment has been added to the help file, following a request from Nader Tajvidi. Typographic sign error in User's Guide corrected. The maintainer thanks C L Wong for reporting this. Spelling errors in uccle help file corrected. The maintainer thanks Tobias Verbeke for reporting this. Apologies to residents of Belgium! CHANGES FROM VERSION 2.1-5 ARE AS FOLLOWS The data passed to the bivariate fitting function fbvevd can now be a data frame with a third column of mode logical. See the corresponding documentation for more details. A new dataset called sealevel2 has been introduced. CHANGES FROM VERSION 2.1-4 ARE AS FOLLOWS The lower.tail argument for pbvevd and pmvevd did not properly produce survivor functions when set to FALSE. This has been fixed. CHANGES FROM VERSION 2.1-3 ARE AS FOLLOWS A file was accidently included in Version 2.1-3 which meant that the package would not easily install under C compilers other than gcc. This has been fixed. CHANGES FROM VERSION 2.1-2 ARE AS FOLLOWS The function dextreme errored when the argument largest was FALSE. This has been fixed. The maintainer thanks Brian Tolley for reporting this. CHANGES FROM VERSION 2.1-1 ARE AS FOLLOWS The function fbvevd now has arguments cshape, cscale and cloc for fitting common marginal parameters. The function fbvpot now has arguments cshape and cscale for fitting common marginal parameters. The Husler-Reiss model is now implemented in fbvpot. New function chiplot for plotting estimates of the dependence measures chi and chi-bar for bivariate data. The latex file for The Users' Guide is now included in the doc directory along with the pdf file. The default x-label "theshold" in mrlplot has been corrected to "threshold". CHANGES FROM VERSION 2.1-0 ARE AS FOLLOWS New function fbvpot for fitting bivariate threshold models. A plot method for these models will be implemented at a later date. New argument sym in function fbvevd, to allow the fitting of dependence structures under a symmetry constraint. The argument also exists in the new function fbvpot. CHANGES FROM VERSION 2.0-1 ARE AS FOLLOWS Univariate threshold models are now implemented. The main new function is fpot, which calculates maximum likelihood estimates under the generalized Pareto and point process representations. Density, distribution, quantile and simulation functions for the generalized Pareto distribution have been added. The new function clusters identifies extreme clusters. A related function exi calculates estimates of a quantity known as the extremal index. The new plotting functions mrlplot and tcplot aid threshold selection. The class structure has changed slightly. Models fitted using fextreme and forder still have class c("extreme", "evd"). Models fitted using fbvevd still have class c("bvevd", "evd"). Models fitted using the new function fpot have class c("pot", "uvevd", "evd"). Models fitted using fgev now have class c("gev", "uvevd", "evd"). The method function plot.gev is now plot.uvevd. This operates on both the gev and pot classes, due to the new class structure. The defunct functions fgumbel, frweibull, ffrechet (each defunct since version 1.2-0) and fbvall (defunct since version 2.0-0) have been removed. CHANGES FROM VERSION 2.0-0 ARE AS FOLLOWS Internal change to avoid warnings under R version 1.7.0 when calling the multivariate asymmetric logistic distribution, density, quantile and generation functions. The tests directory has been removed. The function evmc unintentionally reversed asymmetric dependence structures. This has been fixed. The maintainer thanks Chris Ferro for reporting this. CHANGES FROM VERSION 1.2-3 ARE AS FOLLOWS The function fgev.quantile is now internal; the functionality has been absorbed into fgev. It is now possible to parameterize gev model fits using the endpoint of the distribution by setting prob to zero or one in fgev. New functions for generating stochastic processes associated with extreme value theory. marma, mar and mma generate max autoregressive moving average processes. evmc generates first order Markov chains with bivariate extreme value dependence structures. The functions fbvlog, fbvalog, etc are now internal. The new function fbvevd should be used for the fitting of all bivariate models. The rbvevd, dbvevd and pbvevd functions replace individual functions for bivariate models. Similarly, rmvevd and dmvevd functions replace individual functions for multivariate models. The function abvpar replaces individual functions for plotting and calculating the dependence functions of parametric bivariate models. New functions atvnonpar and atvpar, which calculate and plot dependence functions of trivariate extreme value distributions, using non-parametric estimates and parametric models (at given parameter values). Fitted bivariate models (i.e. objects of class bvevd) now include Akaike's Information Criterion and, optionally, various dependence structure summaries. The argument dsm controls this option. New lower.tail argument in bivariate and multivariate distribution functions. The function pcint is now internal. Profile confidence intervals are now invisibly returned from plot.profile.evd. Also, the argument ci of plot.profile.evd can now be a vector. Functions called from plot.evd (dens, pp, qq, rl) and plot.bvevd (bvdens, bvdp, bvcpp) are now internal. The default labelling of the x-axis for the return level plot has been changed from the technically correct "-1/log(1-1/Return Period)" to the more widely used "Return Period". There now exists a density function for the multivariate asymmetric logistic model. The density function can be calculated by calling dmvevd with model = "alog". The argument mar of rmvevd, pmvevd and dmvevd can now be a list with d elements, where d is the dimension of the distribution. An extraction function logLik.evd has been added so that the function AIC.default in R base can be used. The function profile2d.evd has a new method argument (to be consistent with profile.evd) and new arguments xaxs and yaxs (to override the default behaviour of the function image). The function plot.bvevd has new arguments blty (border line type) and grid. In the function abvnonpar the logical argument convex replaces the numeric argument modify. The functions fext, rext, etc are now called fextreme, rextreme, etc. The objects formery of class "evd" are now of class c("gev","evd") or c("extreme","evd"). The plot.evd function is now plot.gev. The row names of all data.frame datasets are now the years of observation. Furthermore, the period of observation for the venice data has been corrected in the help file. The arguments mesh and conf in profile.evd now work as documented. The fbvall function is defunct. New datasets: failure, fox, lisbon, ocmulgee, oldage, sask and uccle. The CHANGES file has been moved to the top-level directory. CHANGES FROM VERSION 1.2-2 ARE AS FOLLOWS Two more datasets - venice and portpirie, intended for use in the evdbayes package. Fixed minor problem with extraction functions for bvall objects when only one model is fitted. Contours for bivariate density plots are now chosen by the contour function. Error messages in internal functions are more informative. CHANGES FROM VERSION 1.2-1 ARE AS FOLLOWS New methods hall and tdo for calculating non-parametric dependence function estimates. BUG fix: the non-parameteric dependence function estimator of Caperaa et al (the default) was plotting/calculating A(1-x) rather than A(x). The recommended citation for the package is now the article included in R-News Volume 2/2. Extra graphical arguments have been included in the abv[...] functions. CHANGES FROM VERSION 1.2-0 ARE AS FOLLOWS The profile.evd function now has a method argument to specify the optimization method. The default method is now BFGS. A BUG existed in profile.evd; a fatal error would result if the mesh argument did not have a names attribute. This has been fixed. Internal: General code cleaning/optimizing. New internal functions have been created. CHANGES FROM VERSION 1.1-0 ARE AS FOLLOWS Class orientated objects have been introduced, including print methods and extraction functions. Diagnostics plots can be implemented using plot, or the lower level functions dens, rl, pp, qq (univariate) and bvdens, bvcpp, bvdp (bivariate). Parameters can be profiled using the functions profile and profile2d. Profile deviance surfaces can be plotted using plot. Profile confidence intervals can be calculated using pcint. Fitted models can be compared using the function anova. New function fgev.quantile to fit the GEV distribution, re-parameterizing using a quantile. This allows profile deviances of extreme quantiles to be plotted. Extra argument corr for fitting functions. If corr is TRUE the correlation matrix is calculated. By default corr is FALSE. Extra argument warn.inf for fitting functions. When warn.inf is TRUE (the default) a warning is given if the negative log-likelihood is infinite at the starting values. The ffrechet, fgumbel and frweibull functions are defunct. Internal: Function ccop for calculating conditional copulas. CHANGES FROM VERSION 1.0-0 ARE AS FOLLOWS Automated starting values for fitting functions. Compiled code is now used within the bivariate fitting routines and all bivariate simulation functions. They are consequently much faster than those in Version 1.0-0. Simulation, distribution, density and fitting functions for the bivariate bilogistic, bivariate negative bilogistic and bivariate Coles-Tawn models. A new function fbvall which fits all bivariate models simultaneously. For every model it returns maximum likelihood estimates, standard errors, criteria for model comparisons based on the deviance (e.g. AIC), and summaries of the dependence structure (see the help file for details). A new function abvnonpar which calculates or plots non-parametric estimates of the dependence function. All functions explicitly allow for missing values. This includes bivariate fitting functions, where missing values can occur on either or both margins within any observation. Extra argument nsloc for univariate fitting functions, and arguments nsloc1 and nsloc2 for bivariate fitting functions. These allow non-stationary fitting using linear models for the location parameters. Extra argument std.err for fitting functions. If std.err is FALSE the standard errors are not calculated. By default std.err is TRUE. Extra argument method for fitting functions. The method argument explicitly specifies the optimization method to be passed to the function optim. The default method is now BFGS for all fitting functions except fext and forder, where the default method is still Nelder-Mead. The sealevel data frame has been expanded to include observations from 1912 to 1992. There are 39 missing values. Explicit error handling in fitting functions when the observed information matrix is singular. Artificial constraints are now placed on dependence parameters within bivariate fitting functions to prevent numerical problems. The asy argument for the bivariate asymmetric logistic and bivariate asymmetric negative logistic models now defaults to c(1,1). The default values of the marginal parameters for the bivariate and multivariate functions in Version 1.0-0 are different. This is counter intuitive, so the default value for each margin within the multivariate functions is now c(0,1,0) (Gumbel), which is consistent with the functions for bivariate models. The bivariate density functions contained a fairly minor BUG; if one of the marginal parameter arguments were passed a three column matrix and some of the rows of the matrix produced zero density, a fatal error would result. This has now been fixed. Internal: The .C interface is called with PACKAGE = "evd". Internal: R_alloc replaces malloc in C routines. evd/DESCRIPTION0000744000176200001440000000132612017645575012555 0ustar liggesusersPackage: evd Version: 2.3-0 Date: 2012-09-01 Title: Functions for extreme value distributions Author: Alec Stephenson. Function fbvpot by Chris Ferro. Maintainer: Alec Stephenson Depends: stats Suggests: akima Description: Extends simulation, distribution, quantile and density functions to univariate and multivariate parametric extreme value distributions, and provides fitting functions which calculate maximum likelihood estimates for univariate and bivariate maxima models, and for univariate and bivariate threshold models. LazyData: yes License: GPL-3 Packaged: 2012-08-30 06:36:08 UTC; ste6an Repository: CRAN Date/Publication: 2012-08-30 11:16:13 evd/data/0000755000176200001440000000000012017604710011737 5ustar liggesusersevd/data/venice2.rda0000744000176200001440000000456412017604710013774 0ustar liggesusersuK\E[4q`_5{O%jR4lɰFk)WexduXOd܈|y#?x3}Uu'o^t'_/O{ѽ/|4/~>zf=_Kn8H;? !JުJ>u~)y3x_G\6+Iޫoۉ{s8<\8>lms-{oW[}yZ+ǎ~۵ӏ]][7u]=NvCkKk?Gw;l.$>⧝p߷~vv_z.꿐_ Idͺe}0^7Gay_1.;/k%nWߧwGwq|[ סG%O75 m|?c9oޣyZ=vxG!<"^p{̺mo>1y]U;vp~^Hk?%}Rsv2/zޏd }3/;z^Y5i'~3wo{qv/y6$Z~]ƾ)v'Uk;?Yϣ =ڵk }YF~H:OqN@8~N\w?WK/y6] ~߾JG߹35sKx |=v1^7xy|?"c|owK'3_}R|od~y:Hˮ#3^]}%/ {zg;/ GŮCѯqyw~׆w >? ՞|g]%w7ovmޏU}@vwYA~1:Z}!$98={#'..n$8w~Z]+}Q.!?~ZY{ڇV?ynK6Ow՞~>Wy1;Ew𜼦ޙz]H>hތ{Gb=źϰG~!x_GO|'{{uՙOl}kzs}`1yB2nȞ!s~f{'q'|:?t-y1{"v]nkh{wY߯}ÿ0];.='H߆K#?|W|}.ww}<]G?百տ i/{>HC3%N0_صqI> e۟G1{Q{N0;1>%|Oc~=gWg7pJ7U'_ٙ;|G&XRWў<`1oj{wډ#W!G<ӷ8s} ӏ<oxpn].|1$ޮ?;z׶wCz}g3~-s>/IF|oW?ӏo?;4PRQSXPXRXQXSبp29M܏}\_}ǯޥPꇿuugu׫R^湼9-I)OKyVR^ nq7<)i)Jy^ʋR^ץ\p'wRp'wRp'wRp'wRp'wRpwZpwZpwZpwZpwZpgwVpgwVpgwVpgwVpgwVpw^pw^pw^pw^pw^pwQpwQpwQpwQpwQpwYpwYpwYpwYpwYpWwUpWwUpWwUpWwUpWwUpw]pw]pw]pMW6%_mJڔ|)jSզMW6%_m9_˓R祼(e)Jy]wRpu>.evd/data/venice.rda0000744000176200001440000000203712017604710013703 0ustar liggesusersuXn1uj*$~/@M@.뽥E~ _g(>:c{vgfd8?)N139=0^<_s?/?<~{0Mjυ-;Ekv^]w^;~o?`ޏ_{z=wz}7޾z?bXu[?={4?S?+["?//}h5?+x*?}̗F<04 Ww_?o}CyyE|_/[ +|Nz[zM9g}?C!߈waEo(W0?hkVh:EG>OxVW9^M},u 7c}5ǏvُJ17?sn8bIu&'tNe\>ϙ| ?F㷢}.i_Fv+S55Q͍GGyQ|!o<Ɍn] yHQ>dW5Px9XS((swd)~9};߯~ GNy yG !ƗTW8kxʩgM˅CZONA]Ǿ/9 ;勣~э co4p^Tɩq>|!?اŭo~ނy~yXҎ(>sGC|cqގ{N,ݛ-c_ƌfh{g~Ȯnc{йR~sQh^j Q7xx9/6Z~>y| [q;/C?\/QS1ƜM (~?kkUq\G\88u&7/d=ԫȷxOO$?pPD}ĻmC#a]&Za'"1C\ܚ9/:w|z/{}{}T|+wuv9Qu_cقO}u+MWaO.^ӣSg) w0+OǴώA͍O޶$\}nv -Pؑcakaa'ՂW ^-xՂW ^-xՂW ^#x5^#x5^#xMo"x= S> ,mm7;evd/data/sealevel2.rda0000744000176200001440000000134712017604710014317 0ustar liggesusersՕ?lP'Nc'.tf.KE?C7 NXi"ZJe33ܹ30w\"&{w·%"g;ݳh'tw\˲l7,Ŗ/ =f.lz<ռ ƣXy7>PW3Yeߙ^uw厍a[(zu݋A?͵AOtoG^WOfW=j~[/?ZT|Q~Ε|*]8 %wnUp$>avU} $2 $UIvK P'q?ToM _U}rjb?6n"[臃u;:tGⶱ^qП6GŹ~:@/\o G·oO-\CvtG9Ep_]_uF_a~7D'q93rϦ -ƽJ砘<@mMŴGlr8GÐJ<$!qC 7$nH܈q#Fč7"nD܈qcč7&nLܘ1qcM7!nB܄ q&M7%nJܔ)qSM7%nJ܌q3f͈7#nF܌qs͉7'nNܜ9qswDQXbLfB^t1{bsZeo- evd/data/sealevel.rda0000744000176200001440000000131012017604710014223 0ustar liggesusers;lP`DZƱ:3"~gt$XөCMU@KZ:3̝; se-bB\e,9Wt7v=˲l,Z{tZΦgәe8{/+[u}WG7=x_]Ty&UÎK oOuݻ1R~Tų˺/Hn먋󿵫>F7 `~Zͥj:_U`y2.NuO[Ó|`}GqM=52k@2~خ$_vL >acd߇Uz~벮h͵g1@~jc>6nc-;%~-aUHkA\3^Hpn ž1NWCq|HZ|H.\Y.H>W\0 \s|6TB|tFz1n,ibV& m4鵽G܌?.7\v}}ExK^ދϺB}lFx$S`~MB?A2L o|h->"Ne7>|~:JFG`b| )1-׸ʃ[mQݎ@evd/data/oxford.rda0000744000176200001440000000030012017604710013722 0ustar liggesusers}R 0 uB r`:@ŵ'Fؑh:~Ny瞈#wɧ;m/Į>{,Q}Q<<^,>b-ӟ[W@lK3ȟx{=}>S^]f?1q<+=n/0W{N z1Hevd/data/oldage.rda0000744000176200001440000000142312017604710013663 0ustar liggesusers]KHTQƯb04 %">8JPDFZxN >i1a*Vm"ET DH=(rUɝ?;Ӟ祼TKj,J[ ܉^+*~ۅl~B_ϤPz4x@q d~^YU貐-vOL y:wr, Y^3w9`9RLͧ4'8Xm&:f }Q3!oPݡyx+Й>*Ԑȗt"맺nQ.ؗ,?۸V~=@ZC>vwyNݨO~,!oTem~ěP˘*)ί^DA%O ?WOj3 z]?ق o_M9OwMwW6qB^ї 8['׿)tIyt"vOK=Nч*k/WWqn cUcݿIPnwL31Cn0\wbt۱P4d'd7Lv˚7M\>q} 7 n@܀q 7$nHܐ!qC 7$nH܈q#Fč7"nD܈qcč7&nLܘ1qcM7!nB܄ q&Mqmܥqܩ\CߨOzb<evd/data/ocmulgee.rda0000744000176200001440000000073312017604710014233 0ustar liggesusers]JBAG3HgfNIĴBŒӂ4v@Zu@P 3ԛsf4+2uBE|<&#FM'fv~w=kIGyB `}TU=_:Y+7 Q\'Z+gFgE}<ۿǹ/[!W_C5p^!/[K_pF.ܸqۯS 漕?>57Ow<<>ySyV/ pYC\E#wek_euLw.CUɫ]+3<tE&@zWItI\I\I\I\I\I\I\I\I\I\E\E\E\E\E\E\E\E\E\E\M\M\M\M\M\M\M\M\M\?V7v?9SM\wao__ߪ=Sj={/aE/G.hB+y W|g=38t\e^>}x7mءGpq c>wB?f\\\?~nouyW]}<Ov.Z϶(S\ ϰUoO_u]\Em\yg~E?l<˂s볗ƯWo불nΙ?wqNwqn>yv<>ygG8E7n8댷xs.yq.bݸ}{Ŷ)~g nv3.E[muu]]almE.://:En=x'88/q9[/=Ewzx}x1.jݸй]bWlVįxw6^lpѭW]\E|MU.~z6^߯-Xlet˵gx[Woݸ^?i7ӸE7/ntӍ?t6d=[]=j\f|3}Ͻ[΁Uo7yXzf{7GV+mM~~?+z-[ܺKyou:V~z{n^狷2>`{zWm>jwKW};WjWo_o{>Eo}GٷtwuG\\dƭor}oFqzm׸YnXۿe﹟ҽo~I(ywd/Yk>uY{mڋ]|ldu}Pl>ۇf=ܽn?ݷ7}qݨng~<]Euiĭk#kmG:Q }ߣg>z{/mtzŞ1Nwl;szwu6X֛n߽]7~q}Fyܹ?pub۟Ou≕Os_EysQjûNAnO*Bāq=-5MXj|x>.b בv5yѶSqo g3q?GЇa\Ї.#W`Jc(um7Wq;m5rVp#4\5h_N@*JGW\?J\_80О*QBSN0':XW:juֺ1G hqQ+Ж1ft~=@{,G&0}C;&V_Dnր(ݭCЮH1kalD_1nhgلy7 s>B#\st~`,G3JO kFy?\R T]]FUb| qA|B_֣_1J4n ƴfբF[1Jp5KIԡw؀POqy| UIG<'E(¢BߵU!O5֟8pMRډh@4 C!Gل[sjX-yvQCed ½VmD ;A=x;cѦΣq`z sqmñ % 7< }1Zr OE-<8;s sRH5٘Uy\߀y5$IF0^SӶ%.ÿ]d,ըZIs:Pӹ o:0X=lL>N#=}ԁ(>s-Mڵ"ļoXbPΨI8P#0.PyK jq=lVz13g OښarW^'~C۰1/+1jـjш>h81hw+Sg0s0E'rtb/0~v.́Xc#N\:ӏxAm;3&Th0w5^LAUj\/&y m(žI*DQy[ 7aJe-ֶ5Z1Ûm?5^+P7Ecp9䯄%55}ӌua59{1bnx TuP x=G61̡j"́y^z镨J%*aHmFW_fA Fco6b-ju7c_|VmAm8PCp]];pd= ?i֞1X< gơ&aΌG=ǵL2}7}1 MAǾ.]1^?: s s0䕠m)&߂v~RZϸjD5uX4>{5RBD^蟎q>0?=̹ [*75hkߚQ#˴ ˡX{5S-P>3@se4OOƘxctujk51:.pmI{vwgP;L9tc4WVjM?+,Ga| UpuZqעjQ+%\o W%uhG5PݧbcG6?3𭌵ێ8vGz=OQ0C1woFG| b'\ďXۄsaXi0EJC4b4{2bMX XI15m7>v ؎! pdvoxE 簎uz̻n9fKZ:Kc7L]5{v|ޥڑQcSs?{V,59R WkE F ،u{2>m=P5m"̓Q'#1N;y D 9X+Oy˕6B])죆a+E%9{̝q֯Yw=c6x:|=ƶ ~D]\>]J ѿpp2I?Qc=٘7e8]>84f`wýy~ʡ?syxǘUS=NՃvU& @-vAsO{NS'l5=(c3|Zs*j&L,\QVxq#1c;v/cҁJI m#˨5v/8W&Mxn:̛cVyӁC@Lϣ-hwơkc#x; u~kxߘ{C1fg8Յk5֥af2B{1uw gG#4` ?cӽjm]yxPXѶ̛"c%C kT֭V=]藅cWvB 'u; |zCP)8;Jls {zy)0hOY%+:ц<}3Ե폚-wCQұ*ϨBMp2Ƴ 5<9GѧQ :~iKȇaX5NLm.RPe|N.Dzx} %5׋캑 +>G:7J>D FALl{#Q+a|y= mSp03R`B{cNE΄oػGN5TE`c[<]G wB={&}_*cMv`՜ާË1gG`𪾇ZN?~Ʋ}E}׊@q`ڱBjͰt]iFD;<;ogw20?ZP?skSg+b*wSs}܁ڝWNEm@v{a}0哨< µW^hazom=@/jkP-pr{:򧿓 kJwΗa`\,B]<\ C8=O{A}̧<ըŖt?=uǞ{=QP?; #1b̾ {k˝WX/wƧ {pϠvx* s3*CW`x>ri4=qim3si쑮L҅G{GlA=kx`wAw%Ux?C=o_p3wuvOs%l@=aMb/CW^0vv"z/W5xa> l BXO~1X6_NsBk[,š2k8R~߂6,իo/ P7oc\Fnru/}\hQcLϻ}Ӊ\Gu{q[`.?{P+1On˜ bWaxG00|^a-LG.LK%~X1K7?;c,9So^HzAAAAA#?{G:{dGA(E٣8{PYPYPYPYPYYYYYY0Y0Y0Y0Y0YA#rY d9,GA#rY0f9,Ga#rY(e9,G刲Q#rDY(e9,G刳q#rY8g9,GHI#r$Y$ˑd9,GHd>PCÇ|ȧ3l>3l>3l)fȘM1b6lif̦M3f6l4iff0a6l f3f0[l0[l0[l2[l!2[l!2[lE1[lE1[l3[l13[l13[l %̖0[l %̖0[lDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴCK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIYRO0Ixl@<HE3'B?4%evd/data/fox.rda0000744000176200001440000000072212017604710013225 0ustar liggesusers]=LA (Q!vQ)Sha *?L4X[k5Z[[kebK{6ٛ7üf^q[a k( !K?zG.sĴ1wƤY*wGWݾI24pz~Ҵ]S0kx˫;H7wwah3v^iu7(V>iPCS/v7ő[c077ohÿP7T/=蛄oyB;?M!Y8~Dp"ΑA}ѯgiO'Q|:y1