From c88eaa08f07c5d1a9cdb7f287224842169bdfec9 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 12:56:21 +0200 Subject: [PATCH 01/84] revert unwanted changes in README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 367a9bb..935bdf6 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ gamboostLSS =========== -[![Build Status (Linux)](https://travis-ci.org/boost-R/gamboostLSS.svg?branch=devel)](https://travis-ci.org/boost-R/gamboostLSS) -[![Build status (Windows)](https://ci.appveyor.com/api/projects/status/373t0tvx5v1i5ooq/branch/devel?svg=true)](https://ci.appveyor.com/project/hofnerb/gamboostlss-s2whe/branch/devel) +[![Build Status (Linux)](https://travis-ci.org/boost-R/gamboostLSS.svg?branch=master)](https://travis-ci.org/boost-R/gamboostLSS) +[![Build status (Windows)](https://ci.appveyor.com/api/projects/status/373t0tvx5v1i5ooq/branch/master?svg=true)](https://ci.appveyor.com/project/hofnerb/gamboostlss-s2whe/branch/master) [![CRAN Status Badge](http://www.r-pkg.org/badges/version/gamboostLSS)](http://cran.r-project.org/package=gamboostLSS) -[![Coverage Status](https://coveralls.io/repos/github/boost-R/gamboostLSS/badge.svg?branch=devel)](https://coveralls.io/github/boost-R/gamboostLSS?branch=devel) +[![Coverage Status](https://coveralls.io/repos/github/boost-R/gamboostLSS/badge.svg?branch=master)](https://coveralls.io/github/boost-R/gamboostLSS?branch=master) [![](http://cranlogs.r-pkg.org/badges/gamboostLSS)](http://cran.rstudio.com/web/packages/gamboostLSS/index.html) `gamboostLSS` implements boosting algorithms for fitting generalized linear, From 9e4238441ce7adbedadfdb226e402b70b3df9382 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 12:58:04 +0200 Subject: [PATCH 02/84] Updated DESCIPTION --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a64d718..4015033 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,9 +2,9 @@ Package: gamboostLSS Type: Package Title: Boosting Methods for 'GAMLSS' Version: 2.0-0 -Date: 2016-xx-yy +Date: 2017-xx-yy Author: Benjamin Hofner, Andreas Mayr, Nora Fenske, Janek Thomas, Matthias Schmid -Maintainer: Benjamin Hofner +Maintainer: Benjamin Hofner Description: Boosting models for fitting generalized additive models for location, shape and scale ('GAMLSS') to potentially high dimensional data. From 87dc35acaa93f9ec70a8e97ae5a09014ee654caa Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 13:56:41 +0200 Subject: [PATCH 03/84] Updated references and really refer to Thomas et al in the manuals --- man/cvrisk.Rd | 7 ++++++- man/gamboostLSS-package.Rd | 10 +++++++++- man/mboostLSS.Rd | 7 +++++-- man/stabsel.mboostLSS.Rd | 18 +++++++++++++----- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/man/cvrisk.Rd b/man/cvrisk.Rd index 23db946..44f1f49 100644 --- a/man/cvrisk.Rd +++ b/man/cvrisk.Rd @@ -136,7 +136,8 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, Hofner et al. (2016) provide a detailed description of cross-validation for \code{\link{gamboostLSS}} models and show a - worked example. + worked example. Thomas et al. (2016) compare cross-validation for the + the cyclic and non-cyclic boosting approach and provide worked examples. } \value{ An object of class \code{cvriskLSS} (when \code{fun} wasn't @@ -150,6 +151,10 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, Journal of Statistical Software, 74(1), 1-31. Available as \code{vignette("gamboostLSS_Tutorial")}. + + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), + Stability selection for component-wise gradient boosting in multiple dimensions. + Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \seealso{ \code{\link{cvrisk.mboost}} and \code{\link{cv}} (both in package diff --git a/man/gamboostLSS-package.Rd b/man/gamboostLSS-package.Rd index 02a437f..8a18485 100644 --- a/man/gamboostLSS-package.Rd +++ b/man/gamboostLSS-package.Rd @@ -15,7 +15,11 @@ additive models for location, scale and shape). For information on GAMLSS theory see Rigby and Stasinopoulos (2005), or the information provided at \url{http://gamlss.org}. For a tutorial on - \code{\link{gamboostLSS}} see Hofner et al. (2015). + \code{\link{gamboostLSS}} see Hofner et al. (2015). Thomas et al. (2016) + developed a novel non-cyclic approach to fit \code{\link{gamboostLSS}} models. + This approach is suitable for the combination with \code{\link{stabsel}} and + speeds up model tuning via \code{\link{cvrisk}}. + The fitting methods \code{\link{glmboostLSS}} and \code{\link{gamboostLSS}}, are alternatives for the algorithms @@ -83,6 +87,10 @@ Hothorn, T., Buehlmann, P., Kneib, T., Schmid, M. and Hofner, B. (2015). mboost: Model-based boosting. R package version 2.4-2. \url{https://CRAN.R-project.org/package=mboost} + + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), + Stability selection for component-wise gradient boosting in multiple dimensions. + Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \keyword{ package } diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 348e0a3..868eff0 100644 --- a/man/mboostLSS.Rd +++ b/man/mboostLSS.Rd @@ -74,7 +74,10 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), For information on GAMLSS theory see Rigby and Stasinopoulos (2005) or the information provided at \url{http://gamlss.org}. For a tutorial on - \code{\link{gamboostLSS}} see Hofner et al. (2016). + \code{\link{gamboostLSS}} see Hofner et al. (2016). Thomas et al. (2016) + developed a novel non-cyclic approach to fit gamboostLSS models. This approach + is suitable for the combination with \code{\link{stabsel}} and speeds up + model tuning via \code{\link{cvrisk}} (see also below). \code{glmboostLSS} uses \code{\link[mboost]{glmboost}} to fit the distribution parameters of a GAMLSS -- a linear boosting model is @@ -158,7 +161,7 @@ prediction and model fitting. Statistical Science, 22(4), 477--505. Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), Stability selection for component-wise gradient boosting in multiple dimensions. -arXiv preprint arXiv:1611.10171. +Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \seealso{ diff --git a/man/stabsel.mboostLSS.Rd b/man/stabsel.mboostLSS.Rd index 84800a0..b164d5b 100644 --- a/man/stabsel.mboostLSS.Rd +++ b/man/stabsel.mboostLSS.Rd @@ -68,8 +68,13 @@ } \details{ - For details see \code{\link[stabs]{stabsel}} in package \pkg{stabs} - and Hofner et al. (2014). + Stability selection is to be preferably used with non-cyclic \code{\link{gamboostLSS}} + models, as proposed by Thomas et al. (2016). In this publication, the combination + of package \pkg{gamboostLSS} with stability selection was devoloped and is + investigated in depth. + + For details on stability selection see \code{\link[stabs]{stabsel}} in package + \pkg{stabs} and Hofner et al. (2014). } \value{ @@ -89,10 +94,9 @@ } \references{ - B. Hofner, L. Boccuto and M. Goeker (2014), + B. Hofner, L. Boccuto and M. Goeker (2015), Controlling false discoveries in high-dimensional situations: Boosting - with stability selection. \emph{Technical Report}, arXiv:1411.1285.\cr - \url{http://arxiv.org/abs/1411.1285}. + with stability selection. \emph{BMC Bioinformatics}, \bold{16:144}. N. Meinshausen and P. Buehlmann (2010), Stability selection. \emph{Journal of the Royal Statistical Society, Series B}, @@ -101,6 +105,10 @@ R.D. Shah and R.J. Samworth (2013), Variable selection with error control: another look at stability selection. \emph{Journal of the Royal Statistical Society, Series B}, \bold{75}, 55--80. + + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), + Stability selection for component-wise gradient boosting in multiple dimensions. + Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \seealso{ From 6ab3cc0cef24648c65414c8aea4db8cc5b4aad31 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 13:57:50 +0200 Subject: [PATCH 04/84] cosmetics --- inst/CITATION | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inst/CITATION b/inst/CITATION index 0c4012e..e3df9d6 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -73,9 +73,9 @@ citEntry( title = "Stability selection for component-wise gradient boosting in multiple dimensions", author = personList(as.person("Janek Thomas"), as.person("Andreas Mayr"), - as.person("Bernd Bischl"), - as.person("Matthias Schmid"), - as.person("Adam Smith"), + as.person("Bernd Bischl"), + as.person("Matthias Schmid"), + as.person("Adam Smith"), as.person("Benjamin Hofner")), year = "2016", institution = "ArXiv", From abf76529b23d2897d7f141eff3c3e0d225c0f68d Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 14:20:12 +0200 Subject: [PATCH 05/84] risk(, merge = TRUE) did not correct for new offset risk. Fixes #37 --- R/methods.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/methods.R b/R/methods.R index ec52214..6942865 100644 --- a/R/methods.R +++ b/R/methods.R @@ -47,7 +47,7 @@ risk.mboostLSS <- function(object, merge = FALSE, parameter = names(object), ... RES <- sapply(parameter, get_rsk, object = object) RES <- as.vector(t(RES)) - names(RES) <- rep(names(parameter), mstop(object)[1]) + names(RES) <- rep(names(parameter), mstop(object)[1] + 1) ## drop unwanted NAs if (lo != 1) RES <- RES[!is.na(RES)] From e29d8d1c63b42aff4cefd948562e99eaf5fcd3bf Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 14:34:20 +0200 Subject: [PATCH 06/84] Updated readme --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 935bdf6..3b9dfae 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,14 @@ shape). ## Using gamboostLSS -For installation instructions see below. +- For installation instructions see below. -Instructions on how to use `gamboostLSS` can be found here: -- [gamboostLSS tutorial](https://www.jstatsoft.org/article/view/v074i01). - -Details on the noncyclical fitting method can be found here: -- [noncyclical fitting](https://arxiv.org/abs/1611.10171); This is a preliminary version currently under review. +- Instructions on how to use `gamboostLSS` can be found in the + [gamboostLSS tutorial](https://www.jstatsoft.org/article/view/v074i01). +- Details on the noncyclical fitting method can be found in the technical report + on [noncyclical fitting and stability selection form gamboostLSS](https://arxiv.org/abs/1611.10171); This is a preliminary version currently under review. + ## Issues & Feature Requests For issues, bugs, feature requests etc. please use the [GitHub Issues](https://github.com/boost-R/gamboostLSS/issues). From 8ef6fb1f9de3e7d3fa848f4b185afa1629cf5c54 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 14:34:49 +0200 Subject: [PATCH 07/84] package now requires mboost >= 2.8-0 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4015033..9ceb177 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -8,7 +8,7 @@ Maintainer: Benjamin Hofner Description: Boosting models for fitting generalized additive models for location, shape and scale ('GAMLSS') to potentially high dimensional data. -Depends: R (>= 2.10.0), mboost (>= 2.3-0), stabs (>= 0.5-0), parallel +Depends: R (>= 2.10.0), mboost (>= 2.8-0), stabs (>= 0.5-0), parallel Imports: graphics, grDevices, stats, utils Suggests: gamlss, gamlss.dist, survival, BayesX, R2BayesX LazyLoad: yes From c2db923cf84db32e6e89db644ee7ef4d684d35e8 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 14:34:59 +0200 Subject: [PATCH 08/84] cosmetics --- SOP_release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOP_release.txt b/SOP_release.txt index 89b1f2a..b33d142 100644 --- a/SOP_release.txt +++ b/SOP_release.txt @@ -24,7 +24,7 @@ ../relative/path/to/R-devel/bin/R Run - install.packages(c("gamlss", "BayesX", "gamlss.dist", "mboost", "R2BayesX")) + install.packages(c("gamlss", "gamlss.dist", "mboost", "BayesX", "R2BayesX")) Quit R and run ../relative/path/to/R-devel/bin/R CMD check --as-cran --run-dontrun --run-donttest gamboostLSS_XXX.tar.gz From 814c60d90e56aaeec91a7d1ea110e073d5440376 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 26 Apr 2017 14:35:13 +0200 Subject: [PATCH 09/84] Updated NEWS.Rd --- inst/NEWS.Rd | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index a2619cb..196580a 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -1,37 +1,52 @@ \name{NEWS} \title{News for Package 'gamboostLSS'} -\section{Changes in gamboostLSS version 1.5-0 (2016-yy-zz)}{ +\section{Changes in gamboostLSS version 2.0-0 (2017-yy-zz)}{ \subsection{User-visible changes}{ \itemize{ - \item Added new non-cyclic fitting \code{method}s for \code{gamboostLSS} models: - \itemize{ - \item \code{method = "cycling"} is the standard approach which was also - used previously. - \item \code{method = "inner"} and \code{"outer"} provide two new - non-cyclic algorithms. For details see XXX. - \item Non-cyclic methods allow faster cross-validation and better results - for stability selection (see below). - } + \item Added new argument \code{method} which can be used to specify different + model fitting algorithms: + \itemize{ + \item \code{method = "cyclic"} is the standard approach which was also + used previously. + \item \code{method = "noncyclic"} provides a new non-cyclic algorithm. + } + The \code{noncyclic} method allow faster cross-validation and better results + for stability selection (see below). For details see + + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), + Stability selection for component-wise gradient boosting in multiple dimensions. + Preliminary version: \url{http://arxiv.org/abs/1611.10171}. + \item Stability selection (\code{stabsel}) implemented for \code{gamboostLSS} models. - \item The (\code{as.families}) interface to incorporate 'gamlss' distributions for \code{gamboostLSS} - models was adapted to allow for other link functions. - \item Added option \code{stabilization = "L2"} to use the mean L2 norm of - the negative gradient to make the updated for the different distribution parameters comparable. + \item Models can now be fitted with zero steps (i.e., models containing only + the offset). This change was mainly realized with the release of mboost 2.8-0. + This closes issue \href{https://github.com/boost-R/gamboostLSS/issues/22}{#22}. + \item The \code{as.families} interface to incorporate \pkg{gamlss} distributions + for \code{gamboostLSS} models was adapted to allow for other link functions. + \item Added option \code{stabilization = "L2"} to use the average L2 norm of + the negative gradient to make the updates for the different distribution + parameters comparable. } } \subsection{Bug-fixes}{ \itemize{ - \item Fixed \code{as.families("BB")} and \code{as.families("BI")}, which is actually an mboost family - Closes issue + \item Fixed \code{as.families("BB")} and \code{as.families("BI")}, which is + actually an \pkg{mboost} family. Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/12}{#12}. + \item Fixed \code{as.families} for 4-parametric \code{"Mixed"}-type families + (e.g. \code{as.families("BEOI")} and \code{as.families("BEINF")}). + Closes issue + \href{https://github.com/boost-R/gamboostLSS/issues/28}{#28}. } } \subsection{Miscellaneous}{ \itemize{ \item Added Janek Thomas as new author. - \item Updated \file{inst/CITATION} due to release of JSS tutorial paper. + \item Updated \file{inst/CITATION} due to release of JSS tutorial paper and + added new noncyclic fitting paper (also to manuals). + The latter closes issue \href{https://github.com/boost-R/gamboostLSS/issues/27}{#27}. \item Updated URL in \file{DESCRIPTION}. } } From a16eb633de9b6999698b012e0bc8fe86a704f6e3 Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Thu, 27 Apr 2017 17:31:47 +0200 Subject: [PATCH 10/84] adapt mboostLSS_fit() such that it works with FDboost to get FDboostLSS --- R/helpers.R | 6 +++ R/mboostLSS.R | 107 +++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/R/helpers.R b/R/helpers.R index d7a593c..06e1cab 100644 --- a/R/helpers.R +++ b/R/helpers.R @@ -144,6 +144,12 @@ do_trace <- function(current, risk, mstart, check_y_family <- function(y, family) family@check_y(y) +## check function for response matrix as in FDboost +check_y_family_matrix <- function(y, family){ + family@check_y(as.vector(y)) ## convert matrix to vector + y +} + ################################################################################ # sapply function that differentiates between data.frames and (numeric) vectors myApply <- function(X, FUN, ...) { diff --git a/R/mboostLSS.R b/R/mboostLSS.R index 3e9fd19..ec1edf9 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -73,7 +73,8 @@ blackboostLSS <- function(formula, data = list(), families = GaussianLSS(), mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), control = boost_control(), weights = NULL, fun = mboost, funchar = "mboost", call = NULL, - method, ...){ + method, + timeformula = NULL, ...){ if (length(families) == 0) stop(sQuote("families"), " not specified") @@ -122,15 +123,45 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), trace <- control$trace control$trace <- FALSE + ## generate adequate model weights w <- weights + if (is.null(weights)){ - if (!is.list(response)) { - weights <- rep.int(1, NROW(response)) - } else { - weights <- rep.int(1, NROW(response[[1]])) - } + if (!is.list(response)) { + weights <- rep.int(1, NROW(response)) + # expand weights if the response is a matrix (functional response) + if(funchar == "FDboost" && !is.null(dim(response)) && !any(dim(response) == 1)) + weights <- rep.int(weights, ncol(response)) + + } else { + weights <- rep.int(1, NROW(response[[1]])) + # expand weights if the response is a matrix (functional response) + if(funchar == "FDboost" && !is.null(dim(response[[1]])) && !any(dim(response[[1]]) == 1)) + weights <- rep.int(weights, ncol(response[[1]])) + } } + weights <- rescale_weights(weights) + + ## set up timeformula for FDboost + if (funchar == "FDboost"){ + + ## deal with argument timeformula in case of FDboost() + if (is.list(timeformula)){ + if (!all(names(timeformula) %in% names(families)) || + length(unique(names(timeformula))) != length(names(families))) + stop(sQuote("timeformula"), " can be either a one-sided formula or a named list", + " of timeformulas with same names as ", sQuote("families"), ".") + } else { + tmp <- vector("list", length = length(families)) + names(tmp) <- names(families) + for (i in 1:length(tmp)) + tmp[i] <- list(timeformula) + timeformula <- tmp + } + + } + fit <- vector("list", length = length(families)) names(fit) <- names(families) @@ -141,11 +172,19 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), names(offset) <- names(families) for (j in mods){ if (!is.list(response)) { - response <- check_y_family(response, families[[j]]) - offset[[j]] <- families[[j]]@offset(y = response, w = weights) + response <- if(funchar != "FDboost"){ + check_y_family(response, families[[j]]) + } else { + check_y_family_matrix(response, families[[j]]) + } + offset[[j]] <- families[[j]]@offset(y = c(response), w = weights) } else { - response[[j]] <- check_y_family(response[[j]], families[[j]]) - offset[[j]] <- families[[j]]@offset(y = response[[j]], w = weights) + response[[j]] <- if(funchar != "FDboost"){ + check_y_family(response[[j]], families[[j]]) + } else { + check_y_family_matrix(response[[j]], families[[j]]) + } + offset[[j]] <- families[[j]]@offset(y = c(response[[j]]), w = weights) } for (k in mods){ for (l in mods){ @@ -159,16 +198,27 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## update value of nuisance parameters in families for (k in mods[-j]){ if (!is.null(fit[[k]])) - assign(names(fit)[k], fitted(fit[[k]], type = "response"), + assign(names(fit)[k], families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), environment(families[[j]]@ngradient)) } ## use appropriate nu for the model control$nu <- nu[[j]] ## Do we need to recompute ngradient? - fit[[j]] <- do.call(fun, list(formula[[names(families)[[j]]]], - data = data, family = families[[j]], - control=control, weights = w, - ...)) + if(funchar != "FDboost"){ + fit[[j]] <- do.call(fun, list(formula[[names(families)[[j]]]], + data = data, family = families[[j]], + control = control, weights = w, + ...)) + }else{ + fit[[j]] <- do.call(fun, list(formula[[names(families)[[j]]]], + timeformula = timeformula[[names(families)[[j]]]], + data = data, family = families[[j]], + control = control, weights = w, + # always use scalar offset, as offsets are treated within the Family + offset = "scalar", + ...)) + } + } iBoost <- function(niter, method) { @@ -204,7 +254,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## update value of nuisance parameters ## use response(fitted()) as this is much quicker than fitted(, type = response) for( k in mods[-best]) { - assign(names(fit)[best], families[[best]]@response(fitted(fit[[best]])), + assign(names(fit)[best], families[[best]]@response(mboost:::fitted.mboost(fit[[best]])), environment(get("ngradient", environment(fit[[k]]$subset)))) } @@ -249,7 +299,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## update value of nuisance parameters ## use response(fitted()) as this is much quicker than fitted(, type = response) for (k in mods[-j]) - assign(names(fit)[k], families[[k]]@response(fitted(fit[[k]])), + assign(names(fit)[k], families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), environment(get("ngradient", environment(fit[[j]]$subset)))) ## update value of u, i.e. compute ngradient with new nuisance parameters @@ -389,7 +439,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ENV <- lapply(mods, function(j) environment(fit[[j]]$subset)) for(j in names(new_stop_value)){ for( k in setdiff(names(new_stop_value), j)){ - assign(k, families[[k]]@response(fitted(fit[[k]])), + assign(k, families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), environment(get("ngradient", environment(fit[[j]]$subset)))) } } @@ -438,11 +488,22 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## re-use user specified offset only ## (since it depends on weights otherwise) ## this is achieved via a re-evaluation of the families argument - mboostLSS_fit(formula = formula, data = data, - families = eval(call[["families"]]), weights = weights, - control = control, fun = fun, funchar = funchar, - call = call, oobweights = oobweights, - method = method) + + if(funchar != "FDboost"){ + mboostLSS_fit(formula = formula, data = data, + families = eval(call[["families"]]), weights = weights, + control = control, fun = fun, funchar = funchar, + call = call, oobweights = oobweights, + method = method) + }else{ + mboostLSS_fit(formula = formula, data = data, + families = eval(call[["families"]]), weights = weights, + control = control, fun = fun, funchar = funchar, + call = call, oobweights = oobweights, + method = method, + timeformula = timeformula[[names(families)[[j]]]]) + } + } attr(fit, "control") <- control attr(fit, "call") <- call From cac3809d1d7586416d39c7c3fec0d77b48b675d2 Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Fri, 28 Apr 2017 11:39:06 +0200 Subject: [PATCH 11/84] give more details in manual --- man/mboostLSS.Rd | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 868eff0..39c6106 100644 --- a/man/mboostLSS.Rd +++ b/man/mboostLSS.Rd @@ -10,10 +10,15 @@ } \description{ Functions for fitting GAMLSS (generalized additive models for - location, scale and shape) using boosting techniques. The algorithm + location, scale and shape) using boosting techniques. + Two algorithms are implemented: (a) The cyclic algorithm iteratively rotates between the distribution parameters, updating one while using the current fits of the others as offsets (for details see Mayr et - al., 2012). + al., 2012). + (b) The noncyclic algorithm selects in each step the update of a base-learner + for the distribution parameter that best fits the negative gradient + (algorithm with inner loss of Thomas et al., 2016). + } \usage{ mboostLSS(formula, data = list(), families = GaussianLSS(), @@ -50,6 +55,10 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \item{control}{ a list of parameters controlling the algorithm. For more details see \code{\link{boost_control}}. } \item{weights}{ a numeric vector of weights (optional). } + \item{method}{ fitting method, currently two methods are supported: + \code{"cyclic"} Mayr et al., 2012) and \code{"noncyclic"} + (algorithm with inner loss of Thomas et al., 2016). + The latter requires a one dimensional \code{mstop} value.} \item{fun}{ fit function. Either \code{\link{mboost}}, \code{\link{glmboost}}, \code{\link{gamboost}} or \code{\link{blackboost}}. Specified directly via the corresponding LSS @@ -61,9 +70,6 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \item{call}{ used to forward the call from \code{mboostLSS}, \code{glmboostLSS}, \code{gamboostLSS} and \code{blackboostLSS}. This argument should not be directly specified by users!} - \item{method}{ fitting method, currently two methods are supported: - \code{"cyclic"} and \code{"noncyclic"}. The latter two requires a one dimensional \code{mstop} - value.} \item{\dots}{Further arguments to be passed to \code{mboostLSS_fit}. In \code{mboostLSS_fit}, \code{\dots} represent further arguments to be passed to \code{\link{mboost}} and \code{\link{mboost_fit}}. So @@ -88,7 +94,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), default with smooth effects) is fitted for each parameter. With the \code{formula} argument, a wide range of different base-learners can be specified (see \code{\link[mboost]{baselearners}}). The - base-learners inply the type of effect each covariate has on the + base-learners imply the type of effect each covariate has on the corresponding distribution parameter. \code{mboostLSS} uses \code{\link[mboost]{mboost}} to fit the @@ -103,14 +109,15 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \code{blackboostLSS} all call \code{mboostLSS_fit} while \code{fun} is the corresponding \code{\link{mboost}} function, i.e., the same function without \code{LSS}. For further possible arguments see - these functions as well as \code{\link{mboost_fit}}. + these functions as well as \code{\link{mboost_fit}}. + Note that \code{mboostLSS_fit} is usually not called directly by the user. For \code{method = "cyclic"} it is possible to specify one or multiple \code{mstop} and \code{nu} values via \code{\link{boost_control}}. In the case of one single value, this value is used for all distribution parameters of the GAMLSS model. Alternatively, a (named) vector or a (named) list with separate values - for each component can be used to specify a seperate value for each + for each component can be used to specify a separate value for each parameter of the GAMLSS model. The names of the list must correspond to the names of the distribution parameters of the GAMLSS family. If no names are given, the order of the \code{mstop} or \code{nu} values @@ -118,13 +125,14 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \code{families}. For one-dimensional stopping, the user therefore can specify, e.g., \code{mstop = 100} via \code{\link{boost_control}}. For more-dimensional stopping, one can specify, e.g., \code{mstop = - list(mu = 100, sigma = 200)} (see examples). + list(mu = 100, sigma = 200)} (see examples). If \code{method} is set to \code{"noncyclic"}, \code{mstop} has to be a one dimensional integer. Instead of cycling through all distribution - parameters, in each iteration only the best baselearner is used. One baselearner of every - parameter is selected via RSS, the distribution parameter is then chosen via the loss. - For details on the noncyclic fitting method see Thomas et. al. (2016). + parameters, in each iteration only the best base-learner is used. One base-learner of every + parameter is selected via RSS, the distribution parameter is then chosen via the loss + (in Thomas et. al. (2016) called inner loss). + For details on the noncyclic fitting method see Thomas et. al. (2016). To (potentially) stabilize the model estimation by standardizing the negative gradients one can use the argument \code{stabilization} of @@ -133,7 +141,8 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), } \value{ An object of class \code{mboostLSS} with corresponding methods to - extract information. + extract information. A \code{mboostLSS} model object is a named list + with one list entry for each modelled distribution parameter. } \references{ B. Hofner, A. Mayr, M. Schmid (2016). gamboostLSS: An R Package for From 9c8cc8a17b703c0c286b910fcc6fc2a8825943de Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Fri, 28 Apr 2017 12:56:02 +0200 Subject: [PATCH 12/84] give more details in manual --- man/mboostLSS.Rd | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 868eff0..39c6106 100644 --- a/man/mboostLSS.Rd +++ b/man/mboostLSS.Rd @@ -10,10 +10,15 @@ } \description{ Functions for fitting GAMLSS (generalized additive models for - location, scale and shape) using boosting techniques. The algorithm + location, scale and shape) using boosting techniques. + Two algorithms are implemented: (a) The cyclic algorithm iteratively rotates between the distribution parameters, updating one while using the current fits of the others as offsets (for details see Mayr et - al., 2012). + al., 2012). + (b) The noncyclic algorithm selects in each step the update of a base-learner + for the distribution parameter that best fits the negative gradient + (algorithm with inner loss of Thomas et al., 2016). + } \usage{ mboostLSS(formula, data = list(), families = GaussianLSS(), @@ -50,6 +55,10 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \item{control}{ a list of parameters controlling the algorithm. For more details see \code{\link{boost_control}}. } \item{weights}{ a numeric vector of weights (optional). } + \item{method}{ fitting method, currently two methods are supported: + \code{"cyclic"} Mayr et al., 2012) and \code{"noncyclic"} + (algorithm with inner loss of Thomas et al., 2016). + The latter requires a one dimensional \code{mstop} value.} \item{fun}{ fit function. Either \code{\link{mboost}}, \code{\link{glmboost}}, \code{\link{gamboost}} or \code{\link{blackboost}}. Specified directly via the corresponding LSS @@ -61,9 +70,6 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \item{call}{ used to forward the call from \code{mboostLSS}, \code{glmboostLSS}, \code{gamboostLSS} and \code{blackboostLSS}. This argument should not be directly specified by users!} - \item{method}{ fitting method, currently two methods are supported: - \code{"cyclic"} and \code{"noncyclic"}. The latter two requires a one dimensional \code{mstop} - value.} \item{\dots}{Further arguments to be passed to \code{mboostLSS_fit}. In \code{mboostLSS_fit}, \code{\dots} represent further arguments to be passed to \code{\link{mboost}} and \code{\link{mboost_fit}}. So @@ -88,7 +94,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), default with smooth effects) is fitted for each parameter. With the \code{formula} argument, a wide range of different base-learners can be specified (see \code{\link[mboost]{baselearners}}). The - base-learners inply the type of effect each covariate has on the + base-learners imply the type of effect each covariate has on the corresponding distribution parameter. \code{mboostLSS} uses \code{\link[mboost]{mboost}} to fit the @@ -103,14 +109,15 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \code{blackboostLSS} all call \code{mboostLSS_fit} while \code{fun} is the corresponding \code{\link{mboost}} function, i.e., the same function without \code{LSS}. For further possible arguments see - these functions as well as \code{\link{mboost_fit}}. + these functions as well as \code{\link{mboost_fit}}. + Note that \code{mboostLSS_fit} is usually not called directly by the user. For \code{method = "cyclic"} it is possible to specify one or multiple \code{mstop} and \code{nu} values via \code{\link{boost_control}}. In the case of one single value, this value is used for all distribution parameters of the GAMLSS model. Alternatively, a (named) vector or a (named) list with separate values - for each component can be used to specify a seperate value for each + for each component can be used to specify a separate value for each parameter of the GAMLSS model. The names of the list must correspond to the names of the distribution parameters of the GAMLSS family. If no names are given, the order of the \code{mstop} or \code{nu} values @@ -118,13 +125,14 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \code{families}. For one-dimensional stopping, the user therefore can specify, e.g., \code{mstop = 100} via \code{\link{boost_control}}. For more-dimensional stopping, one can specify, e.g., \code{mstop = - list(mu = 100, sigma = 200)} (see examples). + list(mu = 100, sigma = 200)} (see examples). If \code{method} is set to \code{"noncyclic"}, \code{mstop} has to be a one dimensional integer. Instead of cycling through all distribution - parameters, in each iteration only the best baselearner is used. One baselearner of every - parameter is selected via RSS, the distribution parameter is then chosen via the loss. - For details on the noncyclic fitting method see Thomas et. al. (2016). + parameters, in each iteration only the best base-learner is used. One base-learner of every + parameter is selected via RSS, the distribution parameter is then chosen via the loss + (in Thomas et. al. (2016) called inner loss). + For details on the noncyclic fitting method see Thomas et. al. (2016). To (potentially) stabilize the model estimation by standardizing the negative gradients one can use the argument \code{stabilization} of @@ -133,7 +141,8 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), } \value{ An object of class \code{mboostLSS} with corresponding methods to - extract information. + extract information. A \code{mboostLSS} model object is a named list + with one list entry for each modelled distribution parameter. } \references{ B. Hofner, A. Mayr, M. Schmid (2016). gamboostLSS: An R Package for From 1f66eba5a0673726d9b04d042d2190653513bb30 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 14:58:49 +0200 Subject: [PATCH 13/84] Fixes typo --- man/mboostLSS.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 39c6106..3d612f0 100644 --- a/man/mboostLSS.Rd +++ b/man/mboostLSS.Rd @@ -56,7 +56,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), more details see \code{\link{boost_control}}. } \item{weights}{ a numeric vector of weights (optional). } \item{method}{ fitting method, currently two methods are supported: - \code{"cyclic"} Mayr et al., 2012) and \code{"noncyclic"} + \code{"cyclic"} (see Mayr et al., 2012) and \code{"noncyclic"} (algorithm with inner loss of Thomas et al., 2016). The latter requires a one dimensional \code{mstop} value.} \item{fun}{ fit function. Either \code{\link{mboost}}, From 3084a39a834c628a056557c2432130c7d6f45784 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 16:37:27 +0200 Subject: [PATCH 14/84] make sure the repository is set --- vignettes/gamboostLSS_Tutorial.Rnw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/gamboostLSS_Tutorial.Rnw b/vignettes/gamboostLSS_Tutorial.Rnw index cd523bb..5af45c1 100644 --- a/vignettes/gamboostLSS_Tutorial.Rnw +++ b/vignettes/gamboostLSS_Tutorial.Rnw @@ -61,7 +61,7 @@ if (all(is.na(pd))){ ## for the exact reproduction of the plots R2BayesX >= 0.3.2 is needed suppressWarnings(if (!require("R2BayesX")) - install.packages("R2BayesX")) + install.packages("R2BayesX", repos = repos)) ## remove (possibly) altered versions of "india" from working environment suppressWarnings(rm("india")) From 90cede61fc295c81063f00c62167dffefcaa5c63 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 17:00:12 +0200 Subject: [PATCH 15/84] Add reverse dependency checks --- .Rbuildignore | 1 + checks.R | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 checks.R diff --git a/.Rbuildignore b/.Rbuildignore index 67a4ffb..b390a41 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,3 +8,4 @@ copy_Rout_to_Routsave.R vignettes/gamboostLSS_Tutorial.tex vignettes/auto vignettes/graphics +checks.R diff --git a/checks.R b/checks.R new file mode 100644 index 0000000..aa0f642 --- /dev/null +++ b/checks.R @@ -0,0 +1,48 @@ +require("tools") + +make_check <- function(srcpkg, dir = "./") { + if (dir == "") dir <- "./" + .libPaths("") + options(repos = "http://CRAN.at.R-project.org") + odir <- setwd(dir) + + pkg <- strsplit(srcpkg, "_")[[1]][1] + + cdir <- paste(pkg, "CRAN", sep = "_") + ddir <- paste(pkg, "devel", sep = "_") + + if (!file.exists(cdir)) { + dir.create(cdir) + } else { + system(paste("rm -rf", cdir)) + dir.create(cdir) + } + if (!file.exists(ddir)) { + dir.create(ddir) + } else { + system(paste("rm -rf", ddir)) + dir.create(ddir) + } + file.copy(srcpkg, ddir) + download.packages(pkg, repos = options("repos"), destdir = cdir) + + check_packages_in_dir(cdir, reverse = list(), Ncpus = 4) + check_packages_in_dir(ddir, reverse = list(), Ncpus = 4) + + cat("\n\nReverse tests with CRAN package:\n") + summarize_check_packages_in_dir_results(cdir, all = TRUE) + summarize_check_packages_in_dir_timings(cdir, all = TRUE) + + cat("\n\nReverse tests with NEW package:\n") + summarize_check_packages_in_dir_results(ddir, all = TRUE) + summarize_check_packages_in_dir_timings(ddir, all = TRUE) + + cat("\n\nComparison of results:\n") + check_packages_in_dir_changes(ddir, cdir, outputs = TRUE, sources = TRUE) + # setwd(odir) +} + +# package_dependencies("gamboostLSS", available.packages(), reverse = TRUE) +.owd <- setwd("../") +make_check(srcpkg = "gamboostLSS_2.0-0.tar.gz") +setwd(.owd) \ No newline at end of file From ccb833f17f62354f2de873a966b8008f733e26e4 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 17:05:30 +0200 Subject: [PATCH 16/84] Update Readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b9dfae..395a79e 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ gamboostLSS [![Build Status (Linux)](https://travis-ci.org/boost-R/gamboostLSS.svg?branch=master)](https://travis-ci.org/boost-R/gamboostLSS) [![Build status (Windows)](https://ci.appveyor.com/api/projects/status/373t0tvx5v1i5ooq/branch/master?svg=true)](https://ci.appveyor.com/project/hofnerb/gamboostlss-s2whe/branch/master) -[![CRAN Status Badge](http://www.r-pkg.org/badges/version/gamboostLSS)](http://cran.r-project.org/package=gamboostLSS) +[![CRAN Status Badge](http://www.r-pkg.org/badges/version/gamboostLSS)](https://CRAN.R-project.org/package=gamboostLSS) [![Coverage Status](https://coveralls.io/repos/github/boost-R/gamboostLSS/badge.svg?branch=master)](https://coveralls.io/github/boost-R/gamboostLSS?branch=master) -[![](http://cranlogs.r-pkg.org/badges/gamboostLSS)](http://cran.rstudio.com/web/packages/gamboostLSS/index.html) +[![](http://cranlogs.r-pkg.org/badges/gamboostLSS)](https://CRAN.R-project.org/package=gamboostLSS) `gamboostLSS` implements boosting algorithms for fitting generalized linear, additive and interaction models for to potentially high-dimensional data. From d7a21ad784c561d734d33f3306ba1f13e82418bc Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 18:08:05 +0200 Subject: [PATCH 17/84] Started fixing stabsel (see for open issues) --- R/methods.R | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/R/methods.R b/R/methods.R index 6942865..8a1c950 100644 --- a/R/methods.R +++ b/R/methods.R @@ -97,6 +97,8 @@ selected.mboostLSS <- function(object, merge = FALSE, parameter = names(object), #merge is different for noncyclical fitting if (merge) { if (inherits(object, "nc_mboostLSS")){ + +## What should this return? At least when one parameter was never selected this is broken (and also the next lines) RET <- names(attr(object, "combined_risk")()) for(p in names(parameter)){ @@ -104,6 +106,7 @@ selected.mboostLSS <- function(object, merge = FALSE, parameter = names(object), } RET <- as.numeric(RET) names(RET) <- names(attr(object, "combined_risk")()) +## return(RET) } else { @@ -413,13 +416,11 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, stop(sQuote("mstop"), " has to be an integer larger than ", length(x)) } - mstop_min <- length(x) } else { if (is.null(mstop)) mstop <- mstop(x) mstop <- check(mstop, "mstop", names(x)) - mstop_min <- 1 } if (length(unique(mstop)) != 1) @@ -429,39 +430,43 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, if (verbose) cat("Run stabsel ") - ## set mstop = 1 to speed things up - x <- update(x, weights = model.weights(x), mstop = mstop_min) + ## set mstop = 0 to speed things up + x <- update(x, weights = model.weights(x), mstop = 0) ## define the fitting function (args.fitfun is not used but needed for ## compatibility with run_stabsel fit_model <- function(i, folds, q, args.fitfun) { if (verbose) cat(".") - ## start by fitting 1 step in each component - mod <- update(x, weights = folds[, i], mstop = mstop_min) + ## start by setting up model on subset and fit first q iterations + mod <- update(x, weights = folds[, i], mstop = q) ## make sure dispatch works correctly class(mod) <- class(x) xs <- selected(mod) nsel <- length(mod) ## now update model until we obtain q different base-learners altogether - for (m in mstop_min:max(mstop)) { + for (m in (q+1):max(mstop)) { if (nsel >= q) break - mstop(mod) <- m xs <- selected(mod) nsel <- sum(sapply(xs, function(selection) length(unique(selection)))) - if (nsel >= q) - break } #this changes nothing for method = "cyclic" but fixes mstop for method = "noncyclic" mstop <- check(mstop, "mstop", names(x)) ## complete paths if (any(sapply(xs, length) < mstop)) { for (j in 1:length(xs)) { + +## What happens if component j was never selected, i.e. xs[[j]] = NULL? +## Can we use NA as proposed? We need to see what happens later. + if (is.null(xs[[j]])) + xs[[j]][1] <- NA start <- length(xs[[j]]) + 1 xs[[j]][start:mstop[j]] <- xs[[j]][1] +## + } } @@ -484,9 +489,13 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, res[xs[[i]][j], j:mstop[[i]]] <- TRUE res }) - + +## What is this error message about? No user will know what you mean. Please fix coding issue and remove stop() or +## provide a relevant error message. if (any(mstop < max(mstop))) stop("simply add the last column to the smaller matrices") +## + ## now merge sequences for (i in 1:ncol(sequences[[1]])) { for (j in 1:length(sequences)) { @@ -496,8 +505,7 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, sequence <- matrix(c(sequences[[i]][, j], other_params)) } else { - tmp <- unlist(lapply(sequences[1:j], function(x) x[, - i])) + tmp <- unlist(lapply(sequences[1:j], function(x) x[, i])) other_params <- rep(FALSE, sum(sapply(sequences, nrow)[-(1:j)])) tmp <- c(tmp, other_params) @@ -509,8 +517,7 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, lapply(sequences[(j+1):length(sequences)], function(x) x[, i - 1]))) } else { - tmp <- unlist(lapply(sequences[1:j], function(x) x[, - i])) + tmp <- unlist(lapply(sequences[1:j], function(x) x[, i])) } sequence <- cbind(sequence, tmp) } From f78a0aad44c3a657859d807ee73fada011f1cd73 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 18:08:51 +0200 Subject: [PATCH 18/84] More tests --- tests/regtest-noncyclic_fitting.R | 26 ++++++++++++++++++++++++++ tests/regtest-stabsel.R | 24 ++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tests/regtest-stabsel.R diff --git a/tests/regtest-noncyclic_fitting.R b/tests/regtest-noncyclic_fitting.R index a312024..98aa67d 100644 --- a/tests/regtest-noncyclic_fitting.R +++ b/tests/regtest-noncyclic_fitting.R @@ -123,3 +123,29 @@ mapply(compare_models, m1 = mod, m2 = mod2) mstop(mod3) <- 1 mapply(compare_models, m1 = mod, m2 = mod3) +## check selected +set.seed(1907) +x1 <- rnorm(500) +x2 <- rnorm(500) +x3 <- rnorm(500) +x4 <- rnorm(500) +x5 <- rnorm(500) +x6 <- rnorm(500) +mu <- exp(1.5 +1 * x1 +0.5 * x2 -0.5 * x3 -1 * x4) +sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 +0.4 * x6) +y <- numeric(500) +for( i in 1:500) + y[i] <- rnbinom(1, size = sigma[i], mu = mu[i]) +dat <- data.frame(x1, x2, x3, x4, x5, x6, y) + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "cyclic") +selected(model) # ok (at least in principle) +selected(model, merge = TRUE) # ok + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "noncyclic") +selected(model) # ok (at least in principle) +selected(model, merge = TRUE) ## BROKEN diff --git a/tests/regtest-stabsel.R b/tests/regtest-stabsel.R new file mode 100644 index 0000000..a12fd74 --- /dev/null +++ b/tests/regtest-stabsel.R @@ -0,0 +1,24 @@ +### Data generating process: +set.seed(1907) +x1 <- rnorm(500) +x2 <- rnorm(500) +x3 <- rnorm(500) +x4 <- rnorm(500) +x5 <- rnorm(500) +x6 <- rnorm(500) +mu <- exp(1.5 +1 * x1 +0.5 * x2 -0.5 * x3 -1 * x4) +sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 +0.4 * x6) +y <- numeric(500) +for( i in 1:500) + y[i] <- rnbinom(1, size = sigma[i], mu = mu[i]) +dat <- data.frame(x1, x2, x3, x4, x5, x6, y) + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "cyclic") +s <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "noncyclic") +s <- stabsel(model, q = 5, PFER = 1, B = 10) From b66755c06da6a6e130eede3dae1956b8a3cce149 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 28 Apr 2017 18:16:47 +0200 Subject: [PATCH 19/84] Updated tests --- tests/regtest-noncyclic_fitting.R | 20 ++++++++++++++++++++ tests/regtest-stabsel.R | 17 +++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/tests/regtest-noncyclic_fitting.R b/tests/regtest-noncyclic_fitting.R index 98aa67d..a369f87 100644 --- a/tests/regtest-noncyclic_fitting.R +++ b/tests/regtest-noncyclic_fitting.R @@ -149,3 +149,23 @@ model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, center = TRUE, method = "noncyclic") selected(model) # ok (at least in principle) selected(model, merge = TRUE) ## BROKEN + +## with informative sigma: +sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 + 1 * x6) +y <- numeric(500) +for( i in 1:500) + y[i] <- rnbinom(1, size = sigma[i], mu = mu[i]) +dat <- data.frame(x1, x2, x3, x4, x5, x6, y) + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "cyclic") +selected(model) # ok (at least in principle) +selected(model, merge = TRUE) # ok + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "noncyclic") +selected(model) # ok (at least in principle) +selected(model, merge = TRUE) ## BROKEN + diff --git a/tests/regtest-stabsel.R b/tests/regtest-stabsel.R index a12fd74..5f3e146 100644 --- a/tests/regtest-stabsel.R +++ b/tests/regtest-stabsel.R @@ -22,3 +22,20 @@ model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, control = boost_control(mstop = 10), center = TRUE, method = "noncyclic") s <- stabsel(model, q = 5, PFER = 1, B = 10) + +## with informative sigma: +sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 + 1 * x6) +y <- numeric(500) +for( i in 1:500) + y[i] <- rnbinom(1, size = sigma[i], mu = mu[i]) +dat <- data.frame(x1, x2, x3, x4, x5, x6, y) + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "cyclic") +s <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected + +model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 10), + center = TRUE, method = "noncyclic") +s <- stabsel(model, q = 5, PFER = 1, B = 10) \ No newline at end of file From 1e606c72e9db6776a87b17e89291e744280665ec Mon Sep 17 00:00:00 2001 From: Janek Date: Tue, 2 May 2017 13:05:09 +0200 Subject: [PATCH 20/84] fix selected and adapt tests --- R/methods.R | 11 ++++++----- tests/regtest-noncyclic_fitting.R | 4 ++-- tests/regtest-stabsel.R | 1 + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/R/methods.R b/R/methods.R index 8a1c950..7085ce2 100644 --- a/R/methods.R +++ b/R/methods.R @@ -98,15 +98,16 @@ selected.mboostLSS <- function(object, merge = FALSE, parameter = names(object), if (merge) { if (inherits(object, "nc_mboostLSS")){ -## What should this return? At least when one parameter was never selected this is broken (and also the next lines) - RET <- names(attr(object, "combined_risk")()) + #get the names of parameter selected in each iteration (drop initial offset risk values) + RET <- names(attr(object, "combined_risk")())[-seq_along(parameter)] + names(RET) <- RET #set the names of the vector as we will overwrite the values. + #overwrite names in the vector with the selected BLs in the correct order for(p in names(parameter)){ RET[RET == p] <- object[[p]]$xselect() } - RET <- as.numeric(RET) - names(RET) <- names(attr(object, "combined_risk")()) -## + mode(RET) = "numeric" #ensure numeric values -> as.numeric drops the names + return(RET) } else { diff --git a/tests/regtest-noncyclic_fitting.R b/tests/regtest-noncyclic_fitting.R index a369f87..d174f2d 100644 --- a/tests/regtest-noncyclic_fitting.R +++ b/tests/regtest-noncyclic_fitting.R @@ -158,13 +158,13 @@ for( i in 1:500) dat <- data.frame(x1, x2, x3, x4, x5, x6, y) model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, - control = boost_control(mstop = 10), + control = boost_control(mstop = 20), center = TRUE, method = "cyclic") selected(model) # ok (at least in principle) selected(model, merge = TRUE) # ok model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, - control = boost_control(mstop = 10), + control = boost_control(mstop = 20), center = TRUE, method = "noncyclic") selected(model) # ok (at least in principle) selected(model, merge = TRUE) ## BROKEN diff --git a/tests/regtest-stabsel.R b/tests/regtest-stabsel.R index 5f3e146..aef6d31 100644 --- a/tests/regtest-stabsel.R +++ b/tests/regtest-stabsel.R @@ -1,3 +1,4 @@ +require("gamboostLSS") ### Data generating process: set.seed(1907) x1 <- rnorm(500) From 6243369c152d5191c85ac5c3e670f2b1f321b82e Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Tue, 2 May 2017 13:30:11 +0200 Subject: [PATCH 21/84] argument timeformula into dots, check_timeformula into helpers --- R/helpers.R | 31 +++++++++++++++++++++++++++++++ R/mboostLSS.R | 31 ++++++++++++------------------- 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/R/helpers.R b/R/helpers.R index 06e1cab..5ae7787 100644 --- a/R/helpers.R +++ b/R/helpers.R @@ -194,3 +194,34 @@ check_stabilization <- function(stabilization = c("none", "MAD", "L2")) { } stabilization } + + +################################################################################ + +# check timeformula for FDboost +# timeformula is named list with names according to distribution parameters of families +# timeformula: the formula for expansion of the effects along t for functional response y(t) +# families: specify the response distribution; see, e.g., mboostLSS_fit() +check_timeformula <- function(timeformula, families){ + + # timeformula is named list + if (is.list(timeformula)){ + if (!all(names(timeformula) %in% names(families)) || + length(unique(names(timeformula))) != length(names(families))) + stop(sQuote("timeformula"), " can be either a one-sided formula or a named list", + " of timeformulas with same names as ", sQuote("families"), ".") + } else { + # timeformula is only one formula -> set up named list + tmp <- vector("list", length = length(families)) + names(tmp) <- names(families) + for (i in 1:length(tmp)) + tmp[i] <- list(timeformula) + timeformula <- tmp + } + + timeformula + +} + + + diff --git a/R/mboostLSS.R b/R/mboostLSS.R index ec1edf9..8031c90 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -73,8 +73,7 @@ blackboostLSS <- function(formula, data = list(), families = GaussianLSS(), mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), control = boost_control(), weights = NULL, fun = mboost, funchar = "mboost", call = NULL, - method, - timeformula = NULL, ...){ + method, ...){ if (length(families) == 0) stop(sQuote("families"), " not specified") @@ -146,23 +145,17 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## set up timeformula for FDboost if (funchar == "FDboost"){ - ## deal with argument timeformula in case of FDboost() - if (is.list(timeformula)){ - if (!all(names(timeformula) %in% names(families)) || - length(unique(names(timeformula))) != length(names(families))) - stop(sQuote("timeformula"), " can be either a one-sided formula or a named list", - " of timeformulas with same names as ", sQuote("families"), ".") - } else { - tmp <- vector("list", length = length(families)) - names(tmp) <- names(families) - for (i in 1:length(tmp)) - tmp[i] <- list(timeformula) - timeformula <- tmp - } + # get timeformula from dots + dots <- list(...) + timeformula <- dots$timeformula + dots$timeformula <- NULL + # deal with argument timeformula in case of FDboost() + # timeformula is named list with names according to + # distribution parameters of families + timeformula <- check_timeformula(timeformula, families) } - fit <- vector("list", length = length(families)) names(fit) <- names(families) @@ -210,13 +203,13 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), control = control, weights = w, ...)) }else{ - fit[[j]] <- do.call(fun, list(formula[[names(families)[[j]]]], + fit[[j]] <- do.call(fun, c(list(formula[[names(families)[[j]]]], timeformula = timeformula[[names(families)[[j]]]], data = data, family = families[[j]], control = control, weights = w, # always use scalar offset, as offsets are treated within the Family - offset = "scalar", - ...)) + offset = "scalar"), + dots)) } } From fe83199db8aa4b4199be0e30b5f8efb0a9ffce46 Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Tue, 2 May 2017 15:28:23 +0200 Subject: [PATCH 22/84] new argument allow_matrix = FALSE in check_y_family() to allow for matrix response --- R/helpers.R | 27 ++++++++++++++++++--------- R/mboostLSS.R | 18 ++++++------------ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/R/helpers.R b/R/helpers.R index 5ae7787..fd1114d 100644 --- a/R/helpers.R +++ b/R/helpers.R @@ -139,16 +139,25 @@ do_trace <- function(current, risk, mstart, } } -## helper function copied from mboost_2.2-3 -### check measurement scale of response for some losses -check_y_family <- function(y, family) - family@check_y(y) - -## check function for response matrix as in FDboost -check_y_family_matrix <- function(y, family){ - family@check_y(as.vector(y)) ## convert matrix to vector - y +## helper function copied from mboost_2.2-3; changed for gamboostLSS +## check measurement scale of response for some losses +check_y_family <- function(y, family, allow_matrix = FALSE){ + + if(is.null(dim((y)))) allow_matrix <- FALSE + + if(!allow_matrix){ + + return(family@check_y(y)) ## check response as it is + + }else{ + + tmp <- family@check_y(as.vector(y)) ## convert matrix to vector for check + y <- matrix(tmp, ncol = ncol(y), nrow = nrow(y)) ## convert back to matrix + return(y) + } + } + ################################################################################ # sapply function that differentiates between data.frames and (numeric) vectors diff --git a/R/mboostLSS.R b/R/mboostLSS.R index 8031c90..16722ec 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -165,19 +165,13 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), names(offset) <- names(families) for (j in mods){ if (!is.list(response)) { - response <- if(funchar != "FDboost"){ - check_y_family(response, families[[j]]) - } else { - check_y_family_matrix(response, families[[j]]) - } - offset[[j]] <- families[[j]]@offset(y = c(response), w = weights) + response <- check_y_family(response, families[[j]], + allow_matrix = (funchar == "FDboost")) + offset[[j]] <- families[[j]]@offset(y = c(response), w = weights) } else { - response[[j]] <- if(funchar != "FDboost"){ - check_y_family(response[[j]], families[[j]]) - } else { - check_y_family_matrix(response[[j]], families[[j]]) - } - offset[[j]] <- families[[j]]@offset(y = c(response[[j]]), w = weights) + response[[j]] <- check_y_family(response[[j]], families[[j]], + allow_matrix = (funchar == "FDboost")) + offset[[j]] <- families[[j]]@offset(y = c(response[[j]]), w = weights) } for (k in mods){ for (l in mods){ From cf6ae9c669674a3d3e3e069d26bd00a06e2c9003 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Tue, 2 May 2017 16:25:12 +0200 Subject: [PATCH 23/84] fix summary. closes #43. --- R/methods.R | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/R/methods.R b/R/methods.R index 7085ce2..e0eda92 100644 --- a/R/methods.R +++ b/R/methods.R @@ -366,16 +366,22 @@ summary.mboostLSS <- function(object, ...) { } } - cat("Selection frequencies:\n") - for (i in 1:length(object)) { - cat("Parameter ", names(object)[i], ":\n", sep = "") - nm <- variable.names(object[[i]]) - selprob <- tabulate(selected(object[[i]]), nbins = length(nm)) / - length(selected(object[[i]])) - names(selprob) <- names(nm) - selprob <- sort(selprob, decreasing = TRUE) - selprob <- selprob[selprob > 0] - print(selprob) + if (!all(is_null <- sapply(selected(object), is.null))) { + cat("Selection frequencies:\n") + for (i in 1:length(object)) { + cat("Parameter ", names(object)[i], ":\n", sep = "") + if (is_null[i]){ + print(NULL) + next + } + nm <- variable.names(object[[i]]) + selprob <- tabulate(selected(object[[i]]), nbins = length(nm)) / + length(selected(object[[i]])) + names(selprob) <- names(nm) + selprob <- sort(selprob, decreasing = TRUE) + selprob <- selprob[selprob > 0] + print(selprob) + } } invisible(object) } From 88449e33822f9b197147c3eee7fef07aa70890f8 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Tue, 2 May 2017 16:40:57 +0200 Subject: [PATCH 24/84] check results of stabsel --- tests/regtest-stabsel.R | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/regtest-stabsel.R b/tests/regtest-stabsel.R index aef6d31..e843b35 100644 --- a/tests/regtest-stabsel.R +++ b/tests/regtest-stabsel.R @@ -17,12 +17,16 @@ dat <- data.frame(x1, x2, x3, x4, x5, x6, y) model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, control = boost_control(mstop = 10), center = TRUE, method = "cyclic") -s <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +s1 <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +plot(s1) +plot(s1, type = "paths") model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, control = boost_control(mstop = 10), center = TRUE, method = "noncyclic") -s <- stabsel(model, q = 5, PFER = 1, B = 10) +s2 <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +plot(s2) +plot(s2, type = "paths") ## with informative sigma: sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 + 1 * x6) @@ -34,9 +38,13 @@ dat <- data.frame(x1, x2, x3, x4, x5, x6, y) model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, control = boost_control(mstop = 10), center = TRUE, method = "cyclic") -s <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +s3 <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +plot(s3) +plot(s3, type = "paths") model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, control = boost_control(mstop = 10), center = TRUE, method = "noncyclic") -s <- stabsel(model, q = 5, PFER = 1, B = 10) \ No newline at end of file +s4 <- stabsel(model, q = 5, PFER = 1, B = 10) ## warning is expected +plot(s4) +plot(s4, type = "paths") From e04a6c4a7370cfd14bd2f68321d143cdfb33383c Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Tue, 2 May 2017 17:17:16 +0200 Subject: [PATCH 25/84] fix computation of offset --- R/mboostLSS.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/mboostLSS.R b/R/mboostLSS.R index 16722ec..85007fa 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -167,11 +167,13 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), if (!is.list(response)) { response <- check_y_family(response, families[[j]], allow_matrix = (funchar == "FDboost")) - offset[[j]] <- families[[j]]@offset(y = c(response), w = weights) + offset[[j]] <- families[[j]]@offset(y = if(funchar != "FDboost") response else c(response), + w = weights) } else { response[[j]] <- check_y_family(response[[j]], families[[j]], allow_matrix = (funchar == "FDboost")) - offset[[j]] <- families[[j]]@offset(y = c(response[[j]]), w = weights) + offset[[j]] <- families[[j]]@offset(y = if(funchar != "FDboost") response[[j]] else c(response[[j]]), + w = weights) } for (k in mods){ for (l in mods){ From fa8bcd32b2beb40471fe15157c366531eb2e1c45 Mon Sep 17 00:00:00 2001 From: Janek Date: Wed, 3 May 2017 10:34:43 +0200 Subject: [PATCH 26/84] fix stabsel plot --- R/mboostLSS.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/mboostLSS.R b/R/mboostLSS.R index 3e9fd19..fb63c5e 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -182,6 +182,8 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), # this is the case for boosting from the beginning if (is.null(attr(fit, "combined_risk")) | niter == 0) { combined_risk <- vapply(fit, risk, numeric(1)) + } else { + combined_risk <- attr(fit, "combined_risk")() } best <- which(names(fit) == tail(names(combined_risk), 1)) From 71ad6e9dbcb48dbc5486655ca59021956edb90c8 Mon Sep 17 00:00:00 2001 From: Janek Date: Wed, 3 May 2017 10:41:34 +0200 Subject: [PATCH 27/84] add additional test --- tests/regtest-noncyclic_fitting.R | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/regtest-noncyclic_fitting.R b/tests/regtest-noncyclic_fitting.R index d174f2d..ed9dbe4 100644 --- a/tests/regtest-noncyclic_fitting.R +++ b/tests/regtest-noncyclic_fitting.R @@ -169,3 +169,12 @@ model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, selected(model) # ok (at least in principle) selected(model, merge = TRUE) ## BROKEN + +## Check merged risk for reducing mstop to 0, and increasing it again does not contain an NA +stopifnot(all(!is.na(risk(model, merge = TRUE)))) +mstop(model) = 0 +stopifnot(all(!is.na(risk(model, merge = TRUE)))) +mstop(model) = 10 +stopifnot(all(!is.na(risk(model, merge = TRUE)))) + + From ecc63ed3afd5ce7e022d533a81ecacea1172f7c6 Mon Sep 17 00:00:00 2001 From: ja-thomas Date: Wed, 3 May 2017 10:44:22 +0200 Subject: [PATCH 28/84] Update regtest-noncyclic_fitting.R --- tests/regtest-noncyclic_fitting.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/regtest-noncyclic_fitting.R b/tests/regtest-noncyclic_fitting.R index ed9dbe4..2894024 100644 --- a/tests/regtest-noncyclic_fitting.R +++ b/tests/regtest-noncyclic_fitting.R @@ -172,9 +172,9 @@ selected(model, merge = TRUE) ## BROKEN ## Check merged risk for reducing mstop to 0, and increasing it again does not contain an NA stopifnot(all(!is.na(risk(model, merge = TRUE)))) -mstop(model) = 0 +mstop(model) <- 0 stopifnot(all(!is.na(risk(model, merge = TRUE)))) -mstop(model) = 10 +mstop(model) <- 10 stopifnot(all(!is.na(risk(model, merge = TRUE)))) From 36aee6ed2de9cef84f9d79c83429764fadf542e5 Mon Sep 17 00:00:00 2001 From: ja-thomas Date: Wed, 3 May 2017 10:44:56 +0200 Subject: [PATCH 29/84] Update mboostLSS.R --- R/mboostLSS.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mboostLSS.R b/R/mboostLSS.R index fb63c5e..a603f30 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -183,7 +183,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), if (is.null(attr(fit, "combined_risk")) | niter == 0) { combined_risk <- vapply(fit, risk, numeric(1)) } else { - combined_risk <- attr(fit, "combined_risk")() + combined_risk <- attr(fit, "combined_risk")() } best <- which(names(fit) == tail(names(combined_risk), 1)) From 95c79f2d97ec02ed8c88adfadabcf37b56f525ea Mon Sep 17 00:00:00 2001 From: sbrockhaus Date: Wed, 3 May 2017 15:07:08 +0200 Subject: [PATCH 30/84] use fitted.mboost() as fitted.FDboost() returns matrix --- R/mboostLSS.R | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/R/mboostLSS.R b/R/mboostLSS.R index 85007fa..becd94d 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -186,8 +186,8 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), for (j in mods){ ## update value of nuisance parameters in families for (k in mods[-j]){ - if (!is.null(fit[[k]])) - assign(names(fit)[k], families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), + if (!is.null(fit[[k]])) ## use fitted.mboost() as fitted.FDboost() returns a matrix + assign(names(fit)[k], families[[k]]@response(fitted.mboost(fit[[k]])), environment(families[[j]]@ngradient)) } ## use appropriate nu for the model @@ -243,7 +243,8 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ## update value of nuisance parameters ## use response(fitted()) as this is much quicker than fitted(, type = response) for( k in mods[-best]) { - assign(names(fit)[best], families[[best]]@response(mboost:::fitted.mboost(fit[[best]])), + ## use fitted.mboost() as fitted.FDboost() returns a matrix + assign(names(fit)[best], families[[best]]@response(fitted.mboost(fit[[best]])), environment(get("ngradient", environment(fit[[k]]$subset)))) } @@ -287,8 +288,8 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), for (j in mods){ ## update value of nuisance parameters ## use response(fitted()) as this is much quicker than fitted(, type = response) - for (k in mods[-j]) - assign(names(fit)[k], families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), + for (k in mods[-j]) ## use fitted.mboost() as fitted.FDboost() returns a matrix + assign(names(fit)[k], families[[k]]@response(fitted.mboost(fit[[k]])), environment(get("ngradient", environment(fit[[j]]$subset)))) ## update value of u, i.e. compute ngradient with new nuisance parameters @@ -428,7 +429,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), ENV <- lapply(mods, function(j) environment(fit[[j]]$subset)) for(j in names(new_stop_value)){ for( k in setdiff(names(new_stop_value), j)){ - assign(k, families[[k]]@response(mboost:::fitted.mboost(fit[[k]])), + assign(k, families[[k]]@response(fitted.mboost(fit[[k]])), environment(get("ngradient", environment(fit[[j]]$subset)))) } } From 2599aed3de6884b9fc2cca45879477ebf5b5ca1f Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Wed, 3 May 2017 18:30:14 +0200 Subject: [PATCH 31/84] Updated SOPs for CRAN upload regarding vignette --- .Rbuildignore | 1 + .RbuildignoreCRAN | 1 + SOP_release.txt | 15 ++++++++++++++- vignettes/fig-crossvalidation.pdf | Bin 0 -> 436469 bytes 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 vignettes/fig-crossvalidation.pdf diff --git a/.Rbuildignore b/.Rbuildignore index b390a41..60c6257 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,4 +8,5 @@ copy_Rout_to_Routsave.R vignettes/gamboostLSS_Tutorial.tex vignettes/auto vignettes/graphics +vignettes/fig-crossvalidation.pdf checks.R diff --git a/.RbuildignoreCRAN b/.RbuildignoreCRAN index 0d34a40..cefb611 100644 --- a/.RbuildignoreCRAN +++ b/.RbuildignoreCRAN @@ -10,3 +10,4 @@ vignettes/gamboostLSS_Tutorial.tex vignettes/auto vignettes/graphics vignettes/.*\.Rout\.save$ +vignettes/cvrisk diff --git a/SOP_release.txt b/SOP_release.txt index b33d142..0232042 100644 --- a/SOP_release.txt +++ b/SOP_release.txt @@ -28,6 +28,19 @@ Quit R and run ../relative/path/to/R-devel/bin/R CMD check --as-cran --run-dontrun --run-donttest gamboostLSS_XXX.tar.gz + + Removing cvrisk results to reduce package size + ---------------------------------------------- + + 1) Add eval = FALSE to chunks <>, <>, <>, + <> and <> + 2) Add \includegraphics{fig-crossvalidation.pdf} after chunk <> + 3) Replace chunk <> with +\begin{Sinput} +R> mstop(cvr) + mu sigma + 1269 84 +\end{Sinput} Making a release @@ -78,5 +91,5 @@ R CMD buildCRAN --resave-data --compact-vignettes patch && R CMD check --as-cran gamboostLSS_XXX.tar.gz To use the script copy it to R RHOME (< enter this in the console) /bin and make it executable. - + Use web form at http://xmpalantir.wu.ac.at/cransubmit/. diff --git a/vignettes/fig-crossvalidation.pdf b/vignettes/fig-crossvalidation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01ac4238b4f309a7a64b81cc8d8ef99ab64d04e7 GIT binary patch literal 436469 zcmb?^30xD`_W!T8YO5lzTHFxhzt-B~f>ec~h13mdDWxumiV(mJMFivmaLbuJBmDI(WtMk>+MUjGR2lVzPym znd3++v)OR*)ntpW%zlL5EWqEGTYhc!-AI>_lfRxc(tOGkR~s9H6~4>yMk8PS&!Ep& z6aV@nvsNtQFJJMK$9f-s_>(jFYXg0J{YOqQ`)U1(<*Szk@Yjzt|H{V3%y#wKfEDY_ zY}a}OtYAK3HfNU0H&zp;m`^dE{ zbpsbI@AaR{o8SNLE4P6E`_)<>Jrg$5ZYz5y$I1N>dg z=?}w}!Ox8}pTs;&W*+F9jWnlMcceLPba)HBl&)qo*Yo{m@He{P&YWaH|LPgpnO{&!!@Yx$@?cE$&1dSAa< z6m{?HviTvqt4rmB##`>GI?}Si`m+1LT&pFKe^sF)(+cK$Y{=x@SqHeoa?rJKZ z^W6`hu9Y{{i4%PauRNVmyXS-0IrHL^|2uBHY}fLCr`|dk7g%+q?iWqs;?%_Kz9xrO z8uEAMEd5}?xzow2Umh)%oD2BA^gWvkf~4sR^*pV0@Pz@{S%DyE$m{8}s>!2=l!iX=GlTM@`U;n)S6OV>nm$FS&$-@}57ef!6y z^Cx(9AH6rYE?Z_g`0@90MM40n)K%50~cvd`5RpgD)o{~@HlztOgr6X%2 z#ZrBb$R?x0-4Tw7z`d=8m(rTcCB-3Wc#HqXbFYBNCKo#`h*G2AYCt3`-x%$5WtKxN^T`Pji z1BG84O32)E{nF6K%@w;yFZ**>Un~xT&uyPI^V3~ZhSZWr&P^R)ko&>1tp!^P{z#FJ z`Ivd0lqt#FGb?Pa`zJ%l$xjLW0cXJgk57j5wB_zT)LK&e-P(z!yZS8aYkN^7ii1(m z7rC3cJK{96TpZmUZ%y=-{;8TIyPgo$Jm+Wg>~wOkRQAmPZ~5)10|xHuncHJopWKqb zWccKuA$@m!IfN7ra5mY|W7)Q(YhPR~QWl+c{B)O5Zl9RLxvj-q&C~%#wxI>?_X-aZ z%a_9a3fw0T$+p=STf5R^$57j_0*`*g4-Ls1?vMGHy?C&pKJc?aLyUJBOLpnC#dy%kH>%hk&~%@UvmNKFa+dre}*>n+yi*#|9S zRF2B;{!3h3Oi#%{lO0!2Ym+mde)j`A3HK9lL755hmns(99lx^3)MaJ#9-Y+J*dg2rJ3wi=4zQ7}3 zi2p=Q+72f>&n-z;i`>UuttPdWwfjC?7MgT*(bgoX7?xiv_^pCmn#l-D`lP81g z;m_f2$+npvD|vWsRMOScuq!;oXGm*4F3h&Mc*lCxrZ~;@?d%_1Qnu>s0dEPc_0U{_ zc=bAX^X+x_e?9p8=%VLGUs#n4m~S(%DHAud1^tuyib0Ygl3hwplTA8DJGB1H}E za1$+{HzuZt{~ZOXJ<#w{7(Jy9e22$s|UekML}SKD~6GTG4!r@`xL5fyX}MD3va z4-<#&7CR0fw#D{X`${5EDBk3y6PfSD(oShk7|2Y&{8Y^;)xdM|1Opu}K`C z9Vv%*v{cl*v##%`H?che?Ie?K_rq zj9%5x?|7>C)06w}o;fQ2!^z5VKOW54zIg4yoSMTq+A-B}@KbtCa;n+#^kU-3hbxmj z1{tqRI-LAM|G}Ytw`~F+AHI}!j7uc}qN1NwP#% zup$0L)sL+L%6Fkj(5Lweyi6w#nA~Ug^kw;8_x|*j%#6t&0^hfn!}eU*X6yUNk4s`C zG5mzeA3-&z@9W_ZdUE=FxOw5R)%pKT>=Rg9E73kkSlA2xidnn z#+>ooJN5H3%l1CCnxk^ePdm<^t?*xIy7J_*l~Y%q)Ze)ENrqWO(=1mDB(-TETosJ zhr_m$Ge&tBeIhV`pD8eBQ{d-*dLO~bJ5v|_znN7aFjih)O@qbpY%b3s^Q}VoP&YqvS1_5$v^BrQRV;4#`w?& zx2<|N+4SbF>Z|LcJIcN)=qZp{9n@OAuyQGIF0j0F^{)1p#q8I5ayWE_I8>ZGX)-Z< zoJaoyg8mh&VpKN0?GG}q_tgzjTPq(b2j->h@ivj`HpN#9eeN^6(rXc!McpcKru;`t zHagU2_XoRYEQ7sxwsHyc4f8EwBf?hfFPNm83O`S9hGr_ZXN^85tPhc&Th`o{Rx%$Q zy0rRkZRTnne#5w*OypA&W-Es2hUq?sY4whlMDu4Te$E;McjyB@!PU52gebLkeA>Ft zdL64?c)rKX&vr_zS5S&kH>YR#t`mOn`xj6A#yvi1SNXutIN|D)bZfD$DNUznR-Lg- zHD9}|=wyV?BjT{Qc$-gZ8tMQ1@V1PHzI;OYr}*v*iV+)v*dHHsAE3sQtO3xTUw1P70sKTZh7<(yw7b{+uO~<2ji!X#*hVtlk?b{FTaU6v{scWq43$=tMjKZAs;^_3P&L%sb7zox*eu72_- zHe+Oq)B858xz*qK;nbyJW3!FY`^zi;@H6tgVvs&{={94(_Y>}<#S1mHO{tHyR$Q)m zl7pwQap{oMIcxV7<>sa(J{(lGHDh}Q^HA$&?3>+OIkjwish=P{>7quU6j2SS#X}k@ zEM}JW^SN1&Itv~qT^MgyIshJS=cl%cQ_CspB9E#_y=D>a^GWGpAA5Km-oF0A_=49y z)ra}iFrTr^o7P;2$M^R0i7QAAu1S&QrpPLSO3%41dthFBFz}Yn%G+H_fk2Np$dtx@O_MHkp00xo`h8m>W()Hq5p>%s48;4Q3~(bZtM&;mLaz zr<<4kJl3zLZ+}Zz;w@3x%!yf6IaLp-wO4)XAKLcOGw8~*iLrcR-6=QU_CZv}d zw_0twbIsK+&GLo+^B47(sIf4KrS}!e*49~h7JGb_uN_sCo3wkG@leIqYX<4>!4k*# z^!0J^a*0TtQj(gVx-GTYtL-JRPX>3fUtiy=)?*)>E}D@u$n-&s=kD*t@|)49^LY;R-KMOan^f2D_U z4ov)-wS`5wiMu_bMkr=vPf72UR`a0w(!&YqwPOW89!>TeTxN98B;iV6dVlBb>|Qs; zogJ9o$MRvXr6vhi9nwFN!$i=tJt4hk+QWoO_JQ3F%mn+c_1&y!P)IX;EVgGjkNYX9 zNbyj1Bl*MTWS(Mnx@>gn$1pFS=UMFV`JnW})EkZCKUumh&d-|}^e|s~Xkn$em#xQs zetOX{&n@9MP9MaFo~ED2cy5J=*+d<5xb?&;?viYKL$bEqB5vx+%3fvv zj)QxAWLa4PYj({c-J%SJI;d<4`>+)5ZJb~zue2!JUYou9_HB8}MOnFparW-(Ydr_~ z=4XnM8pN4Aarh0ChPjEm-J^z=e#Q!IhRr9NABm7I#1E&`q_nc~a5+8Pi*PK3x52H;_#(0Lq!-3NW_jL753r{bKhC6K# z%{w^$)}WQOhaE~+8A2|JE`#|*9J~%fw$u?*0f?Geq!!V=dWKWgjLlCqO%^&%3 zwvu6)=L^QpgoiciKWrua;Nfh+SmVsE-~oQSR=p;y5XYmHredJ&3B{M;mBAF56BQsub>fyD!x5QR_jrQC7MF79Pn`T0^%`SdPkwb>h$ zT4Nv)?8?*nr`^u=i!m=fxXn1*0d?;azkvx?jMA;jwlXvL&~)iG7j_02TOvr;3y#a` zwq|5r74K7yE9)5)63QJDv3N@@*p7a*{)O+Wbt^yhzV8+5kjEjCic_#(lby4)Pi>C) z4QwbLs|abfF|e#Wn)y7_SzEK!#ZTteQW2+Jo!(PheV;HZ)D=r)ye}1FH&DBBEq43d z32$*r(yj){esb<0%Em{gPhvdve|U@cdy6wwsl}Ib&(Vsq**}#TFRRxW+sEiNj_>6O zU?NJ&lz&?F4Z7;Or1==z_H7u(KCr5l zwGp{bo@(p$WJc-AW$BfmsjuyZ1pxIVbL$x#TfP6dvw5%)K7_mFR68AmhcAPTVw|_Y zLu|FvuD{;2pLx^cYA1Z}m%;mEoOdv9+T%8wxsz4!ezW}oi{<#07wQ3Qx0aYCE@sx9w!4~Mq8~>jv-3zRSN*6AxAmju>>c?Zw^+w- zPmpD|?o2AZw)Tns%JR|0$Ly=OfBUZl^76rg9`lxlg*+UQE(0A*p?LDwz zWve8;GW)1a^W%PXGk`gS$s3h946nbH*alC*>n(1()obv&N9M4a`^R9yMh8#18#i4t zAoF|mniI}V_l5l1s(PZPB=u%$lFwS>QlW3}gzUidQ4KiApzE&b?^!-fNbd`(zf6!$ zG;fXaYg*48BX$ABYV5Mk!1wC-^v@IEpPusTf$6;)w$whFTK2y7O5nQpeL*JvpD+3} zmepCJ>=0^fgG8**Xte(N*1^5ghL(N)*kVU%Ki^5|4u3dCKb%mu&E?UcvTYfD_GSJT zn~6JA%ce`Ic4dV{7O8#_V5&jIuF4r?G&@>hG;I{Di z1#9QRbsr)odn z-SIa@*T$f2{MSs<-?z+hNPj=*;mP!#L6sBA2Ba}#J$locC%H*}<61hZVd&c4F6nlR z811BYg3r26=21iJ5T<^l4Gxt$+N6QJH}?{WH?MttGKsqV(ayayr&jNu1Iln}_5JCR zAA(olL;v6vcR^A14-U*9yU%SXJj8{%{iX&b8tP`E{^Nx6c6fMt%=z;+-T6asv;K}} zM$v>+qHIHj%gqo%cq#SB`EBUX6p}<#0O>Cx372M~?4iY;(yx6dt&h6uGdyiw*~&jp zC8ET;t{d!o#UP#VBWrtFRz7(w{1J!lJ0bPauriP#hozyQ0upxA`WcqJFVA83La#EA zisY1hZ6_YJB%kgi;>1Rc@T6yOt)9+cC| z$aul6SkFDM<1J1fw9gq1*K2<=7cHzKkDv~1NOs->JAO*_etXGq*zs%f$40tY!8Ppg z2_O-$#PMtUmInL2yi>2UEB#T> z!~SKTuq)lZD~aYyWwOE)>qkegr6z6*xlWtSRAz4u3PQhn+N1tU!)pEP%Fv;12+zQo zD-Vm3imO+#`_I3xWu+Vcnf6BB1Mo(+dbdpPUhi~^ zRh#1Vpv>=UKmqP_8y~#?Zrm)mUZOUQ1;HK=aD=2edC{i9wf>jW zx07oZ3R66Mwl@=vOVV!Wz+typBvuA{P4fw}zCh`Br&DD-uE;D))@Xaj*vfbE`k2SN zw_5fo^Ll(L=|bp+D-~g`JhPHH)658e&Bc>PE;PB1Pc4{G(zEosMak?8_o$*DiF}(x z*R`hvUYw!{8}fZi45nT0U*eGA5mq!O#LKYmlWD6B>$e>799$opnP^{kJoCcf4LbzB zr9vLTrEJ`4M`^6UA@|@UMWq&46v;}AyjPt&61`z`%Gd{Y7EPO3|8#MNR1sZ&!9JmP%1rs5fcix5+=QW*Hk|MdV}3Wvbz0q_B=7AB zCN(83>+^J9KTzd)*H5T@a_OS)IpQKa#OWEUE$jZp4slFY%{zDuN_$GHMoAOkLR@dnZy<0hWO$stK`F7 zy=#^vd*4a0y7b^~%1ZfRSO0+cSnt~jRvAyKm)Oe>x%zLoU667hVM@l6x?=1-_0rABt?(!aZBT=Bc&lX(tpx=YjMe zN&k@RZY9&Fxl4-dr+M|R6BIQyABUwq&!q=Ct+#j5?hOSKiauvodP7N=W=lOY*bPac z8w!1krW0guIWbKur%0t#?0+ubvQj8x=Se!Ad-gb@UIoIjF^8SNc;y8Qe41I&%~m()j&c`znP z$aV8}Tx=%4+3cAq3+(dl%*b*}BRAnNlb4#c4|5Q^^oBmC>J#nQrO!kuabuR=zSK>k zaC{MR^t!~EP$t&h7}HYwSZ~!@W=tOEsT~9{JoV13Gb*(qIa6^zNEfD$Rz2-ao>Zu3 zlE)P4DB)?bI!vGM*t}1l&(WO`7VvcT(tBn)dr?iK?!yX?XLrbJ)bIo3dTCi9#r-XC z-=pu&&zie&Y-W%DH_4xHadg~iSwm*;ymj1^tp0I8*^Zlo|9fKQe%+BG7f))qN^q)9 zxjR#uB-*1DR$MxzQXkQuma0RA`Ml;xVZNb`s41;=pz^tC6q#68!_keo=&Yz7L!RJ2 zH6~ApVf3eP^l>WnPGLb%bEvS8uZtGu^K}l~dt4kg_bEp=Q&i1?(ck64=;0rG?tMwA zN-WNnaPvZVPo39`%L>h!qp}Jtb@9SNOPwuGx2lepEV`}#O(QFkuA~l;lj_Aua6N@s zRl;2c*WMc01<@V2me+~Bsl#wBDdx)cR&Wg;Od$Q?8a}v`P%<~Vs8L-sZP-aX%399Z zE-==}8Y{wTj?#nGN8>o>QZTnODVXX={au`Dda&jC%N1#q;IcMWXr#@tCg(|Oj0G`@ zr$DALa~ zA!VdiDx$Q+^em^w_;CJcr+y39Ez0pQni)6b+@r+sY}4%v&G917n^v~=OR#X0$=z2ef(JvtvAjW=4HvjT4PV(Ap^ZGpeyJSVTh zgivl& zSNT=Ph|ZAqYL)l59MZm?cU&YJSu;jZ15bGG>*nxuk!FTwvbZh{n>7b}KCKs}@Y$yPwXUEENN6n{__11@g7?diA z+GjzIpapMa>TJ2N=jO9Ia2k1>r*>s@pqgJS&DNV}_$i{B@SsW*#gQ)f5JtMxE6&5i zv^vEa>Ht1?Pz#APeCSW4l}J}mdr5odbEAn!=1uk*vtsFey|r_WU>&b4vMw(%C|hq; zL711r7W`3kkKTO}(52PAN%C1e8H{WCm=Z41fE}4%7RO5LZsA==oh?PSh85{AQhKe5 z%HjktYUZ(S;hi*7e7=-&+Dhxft|)Gam~(?w+%T|?iknIfm)*~Y@xc?GGwMa^+#~-K zG$-&xZiGrEHaypKP~4(($5$Keb{e-ZY0>OL(_wJ!nG}A~X);{rcpBB?$LS4Oqwv39 zW(lh6rp<6-L!G!P(@<_roj_PTGQ(Q*#Ig_y*b*Nsb(>HCQDmXf&hSX1OEr&UE^nbgYn7zTyfP|vK z@~;O8MT4a*;jUr~R?5o;%NX`NZLlosV9%q$0vYfCgQZ<+K+yXnK;lXc+T|QX^BoJv%p9@psV2^t;qm$ z1v2v!7ygOnv`ru@-RcN^fm!oTeE}DykV_IR!}YDx#Kb~rB=PttYQ^1I1)S!vEU?^n zL4x;?(==umK!Qz(pgNuxNbod`sz{m-5*$>gND@WEE{E%7)I8kfNuoS`Ebj7U@Ig@L z=i%Cfh%AvVXKs`tQrYE^>qKSZx=~5u>w1BW_SZ|NKntNm^s<$P(b=IxWJgs;>d0qg zb7Sxeh0J}VHbZ^l9!OVgEgX!bxoU0Wf6V+i^YDvCS_8u8+MvhghtQYC*>0c@T zt-lL8U#A^0oQ$D=<^L^JZ4X*}5;`@g#a}ZA9O7C9uShCW3VD~z7;i;{vcqkT5at`| zw56(u!Q=_CBUQVixX@9z7^R#Z*KT2fneOi{tAJ`>R&bDBSynK1AkI7;_*u!Ye^b!U zT7?c*J@{F7(BVQ=eHiyIs%k4RO`xi`Gp4FQZ@`$U7!q7A{GctN72adzxgTL(2g}4c z8KMJG4r9FqR*(miF(S1+d0eE95S~#ua&6q;TW@Y~A$?Jvb`zFW2{hvo1t++bxj+qcnzp| zG*+}uM`P8w0?*{I^2|fWOWRT=sXdwnDm+eK0G=XskE@%`tyb_M<^>nahLl9EaOBn~ zQJ&Gs0^>YeT8+lJ#uAOQC3zB!b2JxYgLjI8x>o7`qDh6*HliWym1(mFDH{u(hqMr+ z&bbaek5eG7aP3L`h~k?Bp2rcjjEB#*=>^hpA-XwKu~Zc)QqkK@3SZ_wxbNVJ@K1G= zu#hU3%Iwe!DU;NVN)%r~iT$_>600Vvn$^-f%B=e;bRiT^4bi;@lMLP=1|wibc+HV- zm^6h@_)I0ZD?7!PNwXf;#=~}ozzKFSZf8``X?5VDM5D`vADjW(AFglex8e538}+T{ zZNA=@*yKUkh>49gS?Q>t_6qLO;hdw+9{v5M?~fL<58%li_)A&PjCwW6awmUPg^ovD^?m|4MJW)}YB zTlBGWoq}guJ38(5FFk-k zg-Jbln;254yuj(CO^-5DB$4ISivA>Il%C*9dhZ1Pt6)*iUGUGm&K*w*j|Km%VA1Sl zM)v5hC4u910R6RP=(xp$zm|)R+mf8%pO-22khL3C*?|gHx7UC(f!-J>s`=okfpb>% z{7kB-TqG2oHRPvUzW;oo9p6bC-`aSY-@FOpYt{DL^AIW{W>Kg*V|#OoXS z-6;0UAq=6d+712acUd*JB@N&M3RiG;2*zk6Rhbd@Xs+|D~u_ zEOg#v{d-1#)zr)0PeTGX#yyTdkTzB4W}*X)!D+75$f`CGVuXR@h+j!4?W+5i_ct!g zbxEl>y9wrVSK1nZ^LAAJ;K98X`3Rb-TAIvXl#C&3Z#K#Rv=FN$lB--psp_qJL1b24 z8;iJ_K4d!A?f7c|o62c(Wy{L?rt}Zhso~`!-Xd^*H#}?P0Eh&<3wQT0{)Q z<(AFYh7s9hrT%x}%a}@eS{`60vQla@gl3@p|DpAk{KsOU zQ&d8mzD{8@8ONh2&4Zd+K};+kti{;$yd#<_1bZNYSU}~2L7+~HaNb1sB&FiKCJmR~ zm5;KzfvRKxtnf?%roA+RsCpIxF43xW;1Y4whG^P3x-i5`!SzL}2`)$i9k}vzV6@Oe z(?$y|G#D+sHXsI^d@2Dt4pJn4e<8&Or1u?)ZOx^fId0YQ5?@)l^D8c> z@Eth^(Eqp%{s*IdVni@ZaLLh&gGdX!I4}X=#bKlcUK~bRv~oOwUffxBzPKREcezjH zkCjcz+Gn+$2C%fj;=GT}d1ST1`(J7XC5w2EJZ45tgI9i07f569S>C^GbU_zHy~z-R z{^U%aE+}6L?_!?FkAb&@z?)4kfN|BTZ$3>_UC{?#2FDFmSEX>d7*X6d@R?ON>?-rp z_z}u_(Fm2`3=i-&N9jE_z-9mz5ffmu01F*ppOs=fqX?1;g%5cIXhEJfuTqPlRwaa5 z%#^XK%m7ggz(S(DLZH<(n5;d(Vqr4C+c5T^@iq)vXuJ)Bn6dRd>(7(4*YW%AyToHO z8a+brH--5Cem7{V=78r`FS0@RmmB$R8`B1UcPbSTVoA1yMx?wi^4^R{b&81vV z6z3Teo0d_BwKk9wcte~~E~J6+3SypgFY)IawU6i?M+d$gL}w@v0I=Zd5;ZE-V12To zZXFRq4cDtcQGSOC5hfYzHkU@$IxPH56dAB`^!kI1dOh-@VM2u55O1XMH5NJ>&lo#8 zghS&-hj3`@=n#%Ic1;V)P>tOX8W78hxXMgkAtJc>3PWxMK;g$YkyI1FrG~n>9TBxx z1UpPv$Vc>%9&9Hbyu4nnQdG*MO%;(kC-}n<;UWYsjANBIi!U<>nn+f77Ze^T(+jL= znWzzCOa{0C=0L&`M!o=!oe{#w7`I?B$HlnC8ACRVTO=6FVcbFobH8a+n*a?%FP5{1 z{8}U11P+@cYVDucpt~b_hFOnyJ7wr{NtiX(7HSn{t*bcdDnQSyAlf$66?Apl1U2GL z@v?TyWcdnS26zLi_=^aQqsj;1P5Q)L)tgXW*7^r<%M1Zc1A`1ELl4RaQf!c%X$pp+ zts@kuvyXAIL1!~NkI8GjjOoUSP+5y0l?5Rhx3kE*T(8%g06Ny0E(E>IL{+pij=>o1 zjHls?c5jNf5@A~d5`o4G-%T4Y4BcKfUOBZNXiRYHa--2T;WapGIzjXz#VR@RTy&?+ z;p&iglip`Vwk>_oVb)s7Ya-2bt}j<5#$fvx2ZQa-C(ew?)<|pYA>az>1%3iPA%;PW zi*eV{s}Mfo6Uh2RLbz2-XF=={3dAf(Btn50vY4fS)Y4gyHPrJdJ2J=M-W{_-%CD0_ z7T~g$c)$p)qtuPBgAq~$c!C`Ds7_OrhU7_wIzq>aE(4};(AF8YW&fDiR#K`}NVCNv z<-79-w1r{~OA?KaIhO$BfasVc1<+tb$LNd*oyftA2yLM-BSKp!%!q&(bb#3uZ5ql3 z@iK7}<}LLwf6+o_cx>p+CONvGSP%k*cmq>@sOTI;Lg_QHAU~p1Oemj;9J$qY=xI5= zEi=T?IY_~Ar)Mt~1dmR1U_e19I_L}zo#;RikWO@T*GL^b1t~&)gNvrNh?9rL=n|$+ z!vLEnI*2X0TAlB{E{U!1FR=yht}_=V7KE{5dS<`=aTGw>ked`6-aIPI2PCYiQkIF6 zMBNZhsLB-#w=@&|K#htC-_yCD8vpZ~nrO|G=IGFrcv=>5l>?~j*n9N1&!vr|>> zADCTW6TjtYV#C%DbY$!GQ#Utod8er$s#PTxNjZPIj8>S2QD?LEH^%o@Jbe~lN2Yml zd7%(=ztIav>Mo~_a;{jc`ZE6wcwFJ0upOj-Bt}HpCWbxb4-*W%Hjj+y>d*tN>9uw~W&eQD;cTN>OR)LHO;+OC-6mTo0jVq%IKN z&@mVHnlgVW&tEQUTka-0%>{Fp4)g>NGfed(59J;kvd~F5XEtPENhuhzpth!QL0Vg* zm7=vZZKYB~JM{Pal7vk~2wG`GiF{3TDYSAQa#M;86N!E z&P6^9%#W-H<0vLqZ}N^5eS7RdBW!QV^{XzjPMDZ>!Wt`1)zS+6%&WsxaU`V}c+Qg^ zLKyH30sdbuHcpolL*-Bjsm%`+7+Wc{@=6uT1JXD|bU6C9*ou{h$S#>AUNVFnJu&mM z5@P7SjBR^swm&3cJA{$xoMOH^XA9|nS!;X=Y;&kSi)d;*jv7Zgf)1V04f_W|=X#~A zjaVcH21q9|0by?<_!XlWwgH`izwnxh$4pQpVq~3%5g1m`n3-}7cwmvle!=IOeMLZT z5}%>7Tc_GYmc~M3gys5{HpxvXGwUo4Kyy8vi!L@T5>2(uO;@T4gmb)Sk1N$8JS1+c75vk|G)0_mWdN&0XZw2P{cD$gSG z37*Kt>TDJG@r%QBKPqbQNy%VM<26*rf*QRaYASJBrrmGn5j3hcQFmfE?3iNNze6%o2Ps0g+_< zAek91c3xc+;ekw?Lv-FY-K?0kBJJaBYP>`OP-@m32dR^;lTaG+fP|8X#*JZ;jUmT% z6G1e?q)rDblSAD&8+9+W$7kW!rVThtoo!Z6R-e!sjvw=xFfYjSi^d7!Z|^3(l=w-c zGxLMdq`f=E-ZMPB-rY+W4di-+PS zeZ|@Bm}klsYqemf6-^iU%^~1U)gZwG2tIQ~U~Xc7;DH1mz#qU)>(A2pn@Ig=op#DG z;G$q=v)3FBB0yv8qH;XWl(Jh zRxR_ZM8y@ozm0b2B^F5HsU!3+u_pu}nPR<)9wcHu?;K=X(!WrpGHjJ0EkUJ}S1Q{4 zo43#s6hO-Z@eTv8s6DVZ!}tQBGdjM&WDuRkN5+}=OKJSB1S-Vk07!S{kvH@Mi0|sS zN`DdPH&9OyMnLEVDLcK2k$8+D5c>Qd6WCP{lhmqO%F=WK_`68Cq;tY7@r2C@GYkbw zCO`i&6n37rQ)x)BdL1R|LZYA7k}FgciS8(E6m5KrR~D7r+_tD0DAiqGRB79yO4}Co z5g6%iE$TETheIdp(f*Xn^qD+uOT@EQLQ1u2Wucp$^MV35JI~8mX0#JBd5sss^JwPP zqt!+cH1jH_&~yaDygKFd4a2;0jN8cg=0_Jcx~(b-^PsH6#3UB_E|U?>C&6S_Qk!Up z%;KGC*)AorrBd|Aj>-ga3OWP>6aq|4M4J@X(6kO#ifLL0AYz%bz#IZ-^g1iJ(@eeu z*;zCq_A0$N^KKF^59PO}4fuX_sW-JPb=QABH%xH{>rkSDJzLZc(`T|D-mGd?l_P(g#5F0xv=gz1UU02S9Qb3C&Qksp0 z3BGr-vCvwnkRvvuYaFrmjQ(DRY<3U)upp!Y08_Y~Y$o}k&Jrz=;A8{jll1A_;=yFh zOZ*~3kwT))reO8sg`nQ7$%U-#V3{b4?O>TGG#BfXo~G{zbV#nQCKdo~gAA(8z=lMN#8(Trw0QwUETa1f4>stClN)K~qTbR!&CBAcEHy2;dVirx z#DydVH73J%Ue$NUzv!d-?j9jZI(qcbQMEq0aKMI~Gt)kv^-HAL-2MGG+?91x9bvK` zoXCCp!bqj%dKNkumvz6=#U#tA#>EJMgZ_%M>a@FQDiwDxO$NWO!kl2Ibf0L96o8u# zQ9keN*XO`JyJNZs$noHw9dQ~S59Ihe;EsL01jzB2*k5-6$njIbuY2SLk5Dz zUyUD(0kV9-V)&pPkmcDMHMYfKyzL}_Yv7$R@V{9zp{c43Bouieil;&Tig)Z=93BNZ zPb3rCkOI*|E{0#ym&31ah&wx#2sgE-G}?_-cVdy(X~jq5FcND}E)!+B?Ga1`GIb`+ z7~UuB|F=~+1ms8&g)~5&L=8Ki;~$hs6U8l8iV10spwh;fNDGfY>^ zpoDZZDAKBwh@^oF0Z5uuQVnb_AfGA!fNao7c%pDd_y!;~ehz@_|AaFA5~#ky&3*!?%3JT8KXixpyI z39K%@NWsD;aSGr$bgm=mMU8zs(X0{Hl5;{veW4OlWRpr8n#(ZJPe3ut1SnqVyqE>5 zV$O%(#HyIA^N9*N^c+_#?@Kh%PlEvqHMpy{|aM^K@a+{tUuFAxs7DeczqkyGBb&EUjH|SS7f@6`@3e|gpQ*MF5#XKA#IUULec%z;mbZFU)MvrijjLbP{=BmWPIs=vo&{ zka?5dnhh^eBvC7C1~CnD`sUoDHAa#6;9=y9g=ro} zhH>djpe)TWZsVey`ylY}kZqcPwQAX>BNnbp0pT98urV<_4hq`fA}!#<5b>L;|V?^?FTG9-xskDa|%Y^_WTJ zbhAPVY*F(U0Hei%nUdHcp$A|25YzMdz@A=#MhWa)ko6iJm>n=!wI3th8DF6hHRct7 zEbx^jC|4p4zrJy^r|4)AFHfs)K3}(w_|xX1V=-HR8ADg-y-tT>A-^yXZh%nUQX8cu zNdFfgS5PVQeZ#))RLXR#`cj5**So4>671Mor@};Dwti}bcJ-xGU^Su2EJ!p$mH}9J z_viU13TibgUW>M-lyT8H`0`c->C5Z;iyc`H}CE17%O2v(7ko4zq2s@hf;2ia-n zy2~|KO{FGqeYi>>JQ}O-T zgIZIeL4Uyl^OW#Sl1EU1>GVUqXGPqLDc|Yl@bI?~vFyuQV6Jj%9rg)%+|21#h!Fs4 zv+3Un4GswlBTb)VhD+WfPtw1W(rf@Di5;uoCn0x|CrbCINUY}J z{!;~+LEH*%n1Y)}WZjdz#8h=*iAHZNWVMHUeRm91Cxx2rH@ZDaT%;OEtLXXK8v>~F zK2=xS0F=-M=^m}%3=dxFEc<3hzRVeP6e&0_wEBE*kVwS~6G8S_Kc`db7;*;N(h3k| zfESL5Q(6@=&N%<2dd-fB{qAOc*hq^@C}qm3)kPf8UiyCeki{BSq0v>C5F|JvtKtor zRkb)GQ#cZez(r(>@Yl38Kz)wOcQL70voWqRevjU{KQnr!o|+|V$;&0$h(EP5w07M~ zDbyIhQf^5ndNp<= zk8#wFB#j1U5>T`WDKVjqKqSOsdzMuHw;W+RtkFA6tNJ(NW(dXbDZKrD-at=j8S=qNlZMpweItr!zvBB*&(of0wS*NC0IGnl1k>kOR%kp^)) zsk`hFruJI7jY1iN&{~6|W`7aSliIYoVQioyRgD!voUBY6H$#ee@opd=LJA%DJYpSP z5)`7XRld&@@FBid{x|S7##z_9P;MOUQ_31@pk-2?*&u%4<@=2b=jF^W5*cocgSrji zqYOi0%4z`1|5h1{eq&~$Y_LY0Cnn`L&$IQLe5C$ZHvg{$npUkke-w-f4Le^cAq{kONZAFmLjPXy&bzowx0VYF5z_{8bw_44KX`_{4OlSFVDM~%R*{f-kgH#Z)la+9hGpJ=2Gu)5`BQYf#kwEgQfm!- zGs#uD);diY`6o?MLDE+DQBp*y04ZPaGLa1XqtHY$?2l3aJ}Oawwcl6{Lvw|HLq-o% zzzO*yEDu?QjA|?op&8XI4A)w69MPL=rL7aRcZ6jh2}g zXI%b;e`L><;U)(@eqQ!Vgt94>vZ~NF--F7hZj^xVxlnD7jKc;c8Tf)$?A@fGp-BXP z&Jlb&i2hkp9I}a9cjz-Cv^2aXf9U5(GtH(Y-Yhz1KT06Jib#&nXPgqJ+)ufT=b;_X_sxy97M_>q=7sw3tP>O$< z5Qt2KSk+6XkN-zL9}hYc0H}sdWFWVT)gd&cp&R@(Z>E-J31Jzr%3ZvL3~a3vWsRdL zYYldqe}a-$E|YP?D3Zb`d&QnV)t$)_$YXyg85*g+Pp) z)7Csll0oAv^v;C(&TgPVE&A5hhggaqMd{CDS?khnl9a@1vApjQs*FqNTeReCCi0ob zXA4Gk36CI_04bNoZM2?&Y=#Am7_mkxP(( zKr*mt_tc@HO&t=fI;@8J{H`=M>k_oqexr6>7Fn)o+F0U4!D8PG;B{V$)RBWoYO0z- zu|8iVEaQbi$Ey?KoPU738420WG&FFXHzDYX!2>2H-slXOF@o)SW|^n|S_8naB{UDB zHO|{RnRQxaE&PT9TigbL$aj}U3G)r1%?DlkEhU>;t|BQn2pVhBa~6RW`O~R{tB|U) zr~2!(!=Oqo7K$`8dO_gIzG4PkfKa__=t+fI3c&iUX3ll65nL)u`n$^%J`_qXXgn4! zcSn@qM0jtf%}7N%^Juz}1Pg2C<Hss=UolUF|3WU$l zQ7e}~53Gz+V6eGgJsq90f82kLS1(xe!HmX;A+lQOkGDC0tOz|)dTLbqj4_c9KMz3w zlkUL5cDgu)1$=q9nj3-PH?%71y7R8k>zBTe zBdJdTg}#|EtpyNcbhqiuyGd=O&Qc^@Dk9LcQ>C?WQ@h$=g%VC^^@b&{Q8Wd>#KC?>zI}fgMC>{424{*->#+l8t4~c5f!1{jV%GJ=dKPbWNVnjW4Rh z9ht!hdWR-mOgE=DcU=)s7wL-oQ!1If5-aZii6%sdrD2i%KY*pRSL+KlGda>fDtZuo z>bQGkncEt$1f*lPpYBl9Q{j+D5B+fQ=9bYe$Ft4O?PQLTkTZ zE-9;mws1l3B!i%fC~9j9$K?*zr#R|b)XJ8rn^oZ3(gb|kNO#ib?C-*AarH?N^3o9m zj`Sq*Jg^k<9ej3fTYor3+p-euvi`3OU5bM+fbG9#%?%jqw&kbgvvOBi9}Rg#hT894 z{W#uo_3tO##M@0LXuy=a2-HAx=+M^lZ$@NncY`NTbrKUNIszeqzG>4hBBy7P89?6K zXniSB(HFw-2A{SrR3y|9?bFW_VSYvQhQ=W6neZq~|G1D2$c>K|9@PuKaij#_XwN`{ zDd_IIKw51K7}V3jn2(3bd}*~AHYDb$2O}R8Sjb%HOa_U0<&(T7;u@DYCffXrqHDS!(Z6+}s;2M41$-k@BzMv!$?^&#NMd6{VOxi#tS%0uqT z!s=e^XQ@zIVjmU0E-LGc6o)3g#{(sBmj_&- zNPCXYl8ol6({$`2e?zvfZhy=lcX@Rih_)${F;f=v#)i_}i@RR!Ox;=`t>rFAVRyH1 zqBxI#B(G^x>jQ0LYkbRprKXnJDB?DGKmdWQtrVJD+A4rw=^!fL0Ue9knQS{G4uY(* z@(5L53c4L179JL7%b*rH0_&sc`4hz8Zam4(UpIwBUo0h|9a^40@UqpaDMe+45U1&a z40dHfflN<~TCnx!w-Co1$Ec+T^q2vupDva+Ze;IlOBBmVn$B{|Fb=qbwPD6xPG+?b>2Z|=^*+8e|Lp!q8;!qOTu z-Oi4!oc*}l6^xkv1auYayI2pP?I`X={g!q5R)UZ$P@zQe4YHwDKS?&D>PC?rd0*tX^wKw!l$94tKDUE{-LD59bRzR&>2<7ICA_JD` z(i$8U*s9uaJ;*d#Bm=a1Dl)_s!8E$77}gs>KN(JO;J%m#c-nv||AYVh=l2)J5g8Ba zH|p=k^eNuIvwZsZ0TzlR!*Ms;yVTTq?10KxD1%Jza4ufmO^`HSbz==#w)}Z?g&R9u3RKlJ6GV45o`mChz6YIG<9OK!5+T- zXajxga3N(4_2nEoMC)o7(ANPt=x+`o9$h03s2lV?$5xYUcbhx%*dn@pH#EOpU&qS} zQ6)gaYJxd4ADts{D_Zc=WMYH{W+ zOZ!vU7rhYS3-EI=ArFojCX3uc!QqL8js*e(?1YBtpXr5I;z@U&H(jAQib5zWpm|M0 z{}*0UJBCp}r}N{WDiA^+rI2i@m1?(TJDLbhVY5O%Pt?$KKToWsq5FBF#)f{Lo{YxE z91+&i(2NMWmgX*&M&k$Lu|o&e(zwJG8BQxwUd0Y-8`|nEDwu{0Z*tLIr(v}Zw^mct zc$sO_|Bh}OuaI|ZWU}{Z?k?fq#`k0ClV*_7rDKxr_MquZ(MSB@4Ox=Q8mJB8eMtyC zA$0)TTH#pEEH~|rVeKMRy1a6@h9Ykt6ea*?-4pqKj{ndB3}WC9C`8y|(eCZX2()K? zpo!F5dZE?utnoL{r-=t;Vqtnf*K))mNG{f|qOvO3(^FL21w&DP2SK3}2#zcH4wl_Z z%Uj#FyxnB0m9{PK29ZgYM#9an6@8$s74xV}vp-!;D(-(NJX^89F=21e{>x*DRu^-o zkhNoz8BZkjV3U~~>}`upX0RfbZZZR?VW(#i&^KaOZ;j0hA?0bQ9SRm{)fvQ8fpYb{Zu}!sB!PA!cu>7&rtfDfUf`Vf)R1w9^a*Z0}4n7%+WA z7ZPDZPs_KpO#}IOYo|;}8r!-f#GSVVjg@tPBZRGjSNg$#>Ndn8Dcaa@DaQ@vv8gE^ z%>Cr(_qHP!h+LhjZg~H0|HRNamH)`C#B96G;oI^>4?e}lwFsmGtIe!gR4m1 zkp)AYe!ZRPTe_VHMNB72u~wWd#bi{+t^!avgT`qEbLIe=C;H3*>EWRpw=gn(X<=y7UV7!5RRpoKn(pCKB{^jc*z zRfEY`DZmxS>G>4-Dzc=XN%bRC9$Vmys-6 zTqJID-|$=|phvvD1COx7nN@JO2B-pARVMeT7%MqZU44HQ7;9D*LAE^0L5q%ZM|Zu0-yzT{*`Bai zN^(LR22DeS1uqu~LbVlEWkDkHl@qfZbs$S^t#ko?B4aTZMlY{F(E^F#X6;5*1azrD z|C{b~fNd=4`lDAH*<{1MjbzSZpc!mfe-z0ye}20Ss8=ZC+TAsXT;L=nS0*3c@w6v) z=Zzsj=J)BFnpHE2byRCplUBJihwhl|R1+VbwxnXsrntL`KQ5BN-@vxVk)MLV54y)i zWkCSMob@GrwddeVZK`gol-k~iy~^beDf(ap9xs&Q2^GfV@wWE)dMGo9IEYN&yOR?hMmY+D8I=8izt8~47M&R&GPIQR@qFyL*$KVz-l zF%i$~Cfm1L&|5QzUh|pnUi116Yu-@@VP=9}>?1hN&iVke>TstX^0%?zxay%oO&4-m zYbQ`k-rBmLE7_x0@h9j2(0(#nvlr8|2>L3HL93Pt0U2tcj`$zjBaPjnbf+L_^-ph6 zaa)^b{b>=DHynk2TA- zUavSxudBEXgkj1ebQ0>9l~lS&-_kCTI;Cp>qI>A~@rDJRG__+d>`9=||oV@pwLZuyhZbVRS*L zy;`;GTP|q5K7hXMh3skx_NVCuU>lq=0}vgS82r$m;T?8 zTbzWo12Yb6u>0weV)M4q@xRc0p_wG)o7;XvZypA3dsBloN!PkW(+1+@!_@4iX`ax# z!jmztU&$ zD7~&J*l!V>6Bx?0O1KK=0@AG#Lh)QcY?aUp4;b_^QdVve^hB>-n~$gFA!DS2TiU1 zUJRPW_H~&+>p+OOgCZ(>_+@mCS41P zBslY9T>4ib1_$u?G!ryhBA{urC)U^zL5y;rRw8Yxz5)agh{l5205_63AB0_Gx?f^@ zPfY8hpkZJ`(?^8(rvvQ&wq~cNsHZazQw?&dRKM9~2u5DFUA9%2ZiL9|P+A`{?lUqP z54AyW^0jjt>IoT?%lisL9^1xlWc+b^vRf=)=-3HmI(X=g9!QKT zjBT(<)N4&Uc{7u`wSNQf-6*gHP_`20&4G(LoIQBtNzn zq>yTDGq`i>2%aVOZjSg95-b3AwV!osNFL{b6BdTfsGXpzoD=389;UhMYvrx5{oifO z_Ur5E*sWTjy^USWReFJ<^&)*l0<;ED*du;T)hUR((NHY|(40P#J;I>EfUv+Xu7U&g z9Iy?|bi`$T;=(`C9H3WUre37}K>^u8?nC5jhkd?| z)LoF7>O;On_}>ijtCIFp3|{To))x3kwXrNw#y^qU8;oOx3|c~fE5T_yHV#_^(vAOt z*^^F6qM$1&!-N1xroF!dv((Td2!yO!e}&(Nt57< z|DUyQfr}~c|Nrd;&$4P4u`9Iux7cOru~wnWtaWJ#EsLzwAop}3QO3-ywe(=CT^`!q zFbE-jOr3(Con)U4GU@v45Kh;i2+Fx_A$XDIQ_5f?`23dGJiub}p25^MA2JZK zmg|xAzd~6I>9yu^33di3=O8@-Ntd-zO0IbkX_a0fQCCo~TbZX+rK!_&Mr*27@WoaVyRgRjKDCFnx7cD>R8+%ON70>xm?8$tE7aS~}b?CN~xJZSE15`EsvlH_p= zIou|*)F5 z7Yf9Xe=P+eNOn&*q?T%sXIE&>u|%^isvWa)4D&5+BAh8ADL_i4!YVz>i|+ItkyHp1pp-9Y1jZxuaQ5{%gk~t?}8i)sBw#?v}n22 zjVw3j0RIWgEdm9#X0+grw0fkLnP0?XYBgG|ZSBk}abLLZnhDP4>*K0uh_i;X3^yN~ z0O59|vw`RH2@MWBzsPdl;0FQ0jd2EBToCY7`inU6qPEO-WpzO-o*O&O+%9RzVrVcq zgKoLr^(o)JPD{)ox!~y=m6plgMv69a6t+=>l)$?S$;V=`7M!Amyrmre>`Y3>*b6Px<@($+N9r=QG-RU9Vug`*Iwi7 zRpM`eJHgJdv=#1|Xv`pBe02ab2pDgT!wdq(TR_H!&%~WMC)g=>11r3;w;Qj`+a(_+I>EHsJ2ss%67wp8O zDo8zmKppR{^jeBi0U}&5;QVKvz)aHO7?L)e(fhS*Oww^ICfOiL8NDAv@2w`6P2&Ji zgN$yVXz&zjMksPKiAUN>jeTyh0E2yF!GXLjS5Ifr%f^3~D zv;6vLHV5G#(oVQih`yQ@`S7-3n)0>>QWX-Pry*jf6uL2xiVYHn3yI*46sc0GIFRas#Yd|%N#ebruBZj((+o6MVdgOJ@Ju9H}NtAj}APtZ^R;>0X zIoz=)i5%`kGmXomHI>0>z?LKEHR*TI|CfHEhf_KJ2aO8Sz*q68j0otbSk2i&{oB`kP7W)d>-A!fGbO1uP zeOVW!gSd%eWIkWQVvK(T-F8<9mG;5quVilW+|m=Zy?|4-DBIo4cGRj3H=5_!qWy_7 zw16Wi)SKs7Yo6yFuN}WOA=~l*L+}TZ#kUbdprE>`(opq){>|K3*4T2tcmbP4l23H6 zt)Z;Z2z}K=L$8rIrk#Q5pEhr`clfWLkCM(>)}hyvL1N9ZQVmcQZ#=tf#-dLLz4Pb4 zJ$_nL`t916d+YYq?%gnmx~l!%{!ypev9d+7U+mywNA3ETzC0`DUhz4f5&T`6U7D-P z>y9tG)NbBzZ9{+gFZ@4KuCIGJq;^-`9dQKRs|p~Nh*F8(tm#lv| zvNEFXYthHl7u28jk9xfvTDiAwvS^>TCF4*2>X^Z&H}oqyHy<*vHPCbf~dB@H%FVn(l@ zF!!^Q|D8S3YvkMyPyRgnm`#V1q4pn9e|nt!bXk`6O&DTwC3vHDnrOv@u|q_?-iABI ztD-J{TEF~mNN2C4M4K*N(^tRd>Mx1o329f2JY2m#Ff1dOJmRXyiu%icwfo%;zJhJ- zizgZ?yl$F^S6gyzxl8Tdx{7&{`djC|$*v6p_*bReH~FJBVncuG&%ocQKOJ92)a^E} z2@7L9NM4a$OpS3?`aOw<8*r)pqjsX`WBD(EzX!qqcd6YC-*JF^hs5Aa%&#q`Hx)RTYm4fl2YWT2bvTE(8N9U|X!+vqzf(pB_$ zX~OtXo%?i%958x|4}79cWM{X{zCtJ63%iAiUH@|19D6BA)>m+@T(@Uy*T{};n|$3P zt3?O(@XviYs&}8<;KF<%RW`c2Q=h((R@wXd7!w6gCjS(hnNzIV8T)S9(wpNq`d%3R z;M1$qwE_WrVD=Bb7pCusE$o}5o|3-q$u8AI59wtpXWE_J-Lm)AT;KKdn>C+|=|=B; zS~6|JlPO=0>IsjztA93bEealRDd|Geg`A?um*j4&vO8yYb`v}OrCOkayEy@msz-C` z#;B*fJIVnb6IY+mXJp_P-vp0Ove#1ig2?gIx(DBs1(k)zO4g~T^htZLZ^-+ReIpBh z{jHAx2h=<;zWhS?_ohGiH0blI)3a+`g9pwYHMoyW2a8mPI+4mYtJa?n6h)--rBlx{HSO7IalOAxhy?+ zkt~uOzURa{UEtsA0*{DD%A=2i4LtVw8$xa_FG)NGj~8pQu84QLmhA0FV7WN&yI*^w{|nRG4t*W6b4SZ-Pi@ug$vtvm;{5)JlLX-r%pw7| zim*8N-XuuHU+QcVLSADwj_OJydb`SUE9=UjBzHj2Bw4bV1**kM7{B=?P#CKG0ubfdC^Rw~k@3~Km9@UfX$fL?| z>&y%r^enX(j7@p)z}<@9L+#4P8xLJ({{=D_kAzv~uYW~Yb=~~^7j;iu4v(#id`n!{ zKRNS`>PvWBzILQeI6rqmu5}FM$anBvCwh|jnbA}`;L?#U-Es>b;R{nf59$FnfrFE?Z&BB$@|V6BVTsKDemXl51ou7;-+qjfN!0@#{4k#!o(s6(>W~#L(tFRtRzjWSvF|JsnNE1w{C6OGVI&| z8uraJ+f7q9PTd$Wfcv@FR(^A|Klfc%vOl%MhCN+4u9xlk)JMZ~t0|-4<_Pwirl+MI z+}_oD<pl8rf zdf?QA;F}|ct9rm=&Z$+ZneYfb-`OglL&}euT1Qxml~dky=n9WtVF2;xi}RiR8H2BX zCw=G_PaMMr(xSAY;60P_^_T76cgWs3Ts|oV<}KpFk^i3QIqwb63qwmCOG~~NKXKmK z*>-cpr6+}lx=wwzY=+y;v+H(>c*`I3PVE@rF5mj|Qu_DGDZN*|>(DV~-A;!uOPQVD z+h2|7Km7m3OCNUs^e6rssksGWmqRBUhIFx=`0eytncuFN)@$#kipyN71X8T z{*-Yey4?8u%iNnwikQceX?5OmkB<|l`o>&w7=HGC%>89cVt;q|BTTsCx2e|$E~(rz zwQ%VK{e5G_?^FAp4(gC_;YJ^i=ecomjsBgUXQ!`>RUNtFu-U&y{-G(OJb&C-~EvVCpYO!FMnQedXsG3^D#q% zIt1K|V``ZTRJF0Hd;Y)9zQ1y(Z_Fi!ZSXbr^sUO+q+g!eSzoqa+c$lh?YvF-m7m>F zh-lZ%R~)wZznkAD^Vkcki17YuqqKhB&{W)Wkvh)YrAcd8Wq{osj zr#Igpv-Ga+{$gX9P=Eb+#P_LPDt?R)F|AfQo#FH3^U~kV|K#kXmA<~VnGRe1yXC7w zJ6okZ=sC|WA#-SI2W7ZzkZnL_L~+N0E%`ydu5|TjzT89XpZ}*O!@p9X-%!#!|HP%0 z3wq|Cc+sOXu-?hHfw@X;9|$=Hys~zocCeEg|4Y@=sz#|`o-H>-FpN^JRI7? z<6GykFYbMxuIauhCa8PD4Su0mr%`+IKi#)K^v8!Mr>Adz_|CRLpBDAb^0NHW=}_e$ zL4FVa@6Px~ob{G`xy1H##C_MLx%%&42z4^SlHBai=WQGkbUNF%veq#N=H^O|Ru`CE zfUGE}Z$e;&_Ns5sgv{zIW$^vs-oKc)(KhIacwhX0ncALi{|nqQH!h%QrVZFj0BCPvJUIUTz7;fLFne(JL?E6w#Y9Q=L$?q_b? zau}Dt`pnQA`0=j)wVbo#;m3$GL*4Q_!;c%c&i3{n!oF$6nUnb5cm3mY&aN*NNW8UV zOsZX$ymflx{R=DioF>~qAPGEIz}yohNK)#?gu}A=1TNmq{u`V-gu@0;uy%al zP_V@|vukSCl;SHv$|nX*#yR;qMOp8P&euCGDNcax1mhf>`i|#=&INq}F3w8roU+9$ z$R^>^$zq3joBVX<(K|?Sc4Xd@Wihe-E_wIxN95V+`)7^aQ{Qnc-e==C^ZNARZdvPRp1>b{ zY&6r8Cc=;4nJ3(`dc%+F)06tan?CPl-!} z`VGE+otwJQ_M*d&{;T(%?%-KGxS%)pJ@SLPCR{9Mzeh|!20t*>N@-Whu5#gmwW$r( zxaXGmpk4(XJj1ykenH&>E+rTDF8C=X$Un8=Zp`KStaFmuz5oU=5L#&~x7A_#i*_Ci?}z zztu6t+Ec=>8UfbAv4%4naM9RoocQhF!mZl|3_cROa2x#Cee}1;ZJ)u9IR_W6pIv5p zJK)mPR5xkGvud!YJ-(fuG(M}FP44vJ6X1vY%qebJJ>bXZ(}(x9`3`=-Z`aJ6GCk?* ztj_SJB+X8+cxV6ZrCyomI^?XPXq{qZ-fx>NSv~F;vP;NlWF;=OXeF#zV_~IyFtFe! zKXzdAg8Bwr9GdDnulcU(SQvjtnG56`EAlIy_>@ZF#8C1ywXIUML^>ySVZ^rkM}Ip2 zKSmB-61#8<{J3}Yw}@>Y!VmbZ!{8a=td3E^;~Tml{7j|F_L) zTVjInTsNBq%iF1f79XjDt;o1%RXT}fIY~EkK4OoG{L7V2%*}-{G=rtuPKO^3tq@QdP*9;(@U8lRV2@yP{>-p0Q9_`lDBnVq2C^ z53s#o`2avlD|Qa&%(t{)iz=kMy?{`JCHq`v&b=V zKJ|^1VuynFSabWZU+P=y9`svfU9iz9C@S@xb;ZL9dN{)WHpe`?ccWTUZmQIm=Iu`1 zr5boPXnVz=Se=5dH1eyyW-Z{Mg`2mH#yOt^Yn_>oIH3oK9AhC z%WOgYj=@5Tgg?AD!)!_q!(t&H1P`nVHVQ6JP3^L-_y~9BDFFfLMUHwk-tsI}&$B`9tXH?4*jN8mof6=z>|b#q z1P+7C-sr+5q;>)Kp+J}#Oiz%fbgC%tYI3PnU2+Ku41BJg6u^xi@!~F%@pBc7d^&5t z=SH81suj25zmmS0(Yy36KJT!8nD$N;?{hOg zuwZjq(02vr&xK_aicPNG`Q1`_=U?d=u$2s-P`4r{e!R3>#@y1o2R*m?3|OChJAMK@ zpIo)#u;+GozU%4T$!4?tc$3(Jtjc`bI>8Pvvemb8%hRPIe;Z&P z*7&kqNn19iHlm6!=f#F72q?J=&1Y4yHFSrsEvpfIY zfRfaR5{Lfs&FmgZ3j!a&o83dkpmKwgIMBKvUjS}p(q_Sfq9P5ovw$3^Q(4orl{oOi z+1I}%R(-@Vu#=l%r7xKQ+qE;U^h01UZE&Se%6b=`pZIq8POzM_kIp%;aG=cycn*I! z#cV=ZlrTx>s?O8l$t>;dp_Ou>&{LEfz8-%ecduB*uL`7t-o+}4Q+ z0>d+PRriWZ-l?Aj6c(H-s^Ezw3I1CJT3E`Pe9l$-xvHhq%G> z-c^4c_Kbw*BcJYam-d0@D{c*m_8AS&;SY!5(!T|N_%$wl{GiRa^znl_m(EJB6H@n# zGTPbOOMJ~C360u@0QT+zNc8hmB>c=|=m_e5CjR(ztAG)yHy${+1q27hT=eglGWw<0 zH;uP?h0MIwiFIoGR#yX02hKOFM{d3!SeWm!{R_8m8#;LHp@p4nyk@SPp48vQ>8R=; zytsF1mQ1u7O^~td?pRp#bE}?xBehze{1oF3kJ^m~eh zdj(0ds6om^$&E2mhZ8pvP0l_VhwpnSvqBblE2?j;&9f3*?w2<$e?gSW-Dz2;G8@72 zPUSyjSUd3p^TKuKfF#4t4=z4Ck>!v#$!S51YNFHfK`@ZZdzJrKzR;=spm(Bo+5W;a zwrl^>_e{*%Osgd8@&hi3QL1p=t$r%EvO^hXdad2I_e`|z(zGN^Kz?-|1e7Jo!;<1t zhb1hCR!z-cW?QyYxx;(J+8ei$|C=x%ZAsZ52mC(sc3*o#HFBJC#`)c4e3tt%6GlpOXnu}T}k-x{OsGw3za{6k63f^kY859hiOZm&Yh&(#(vO_guB=JYF3}% zMJe;V@7)LqE}Wwe=5BD)+S~xu$GQV9XFBQLH{R-(_m=TL+zsy3-S$y^wzkk;oT1ez z$ZehrNLbLTT>3~<_{3DJ6`PEsmFd5}n7G9@x!`D6|B{Gz9aq%)zv~}Yp6FI~p!`f< z-G4I9Y+8H4CnH<|>xq$9#*RFR%KJ3()= z`I+r&FN*FZeDAchyic;1n(3M*68w?2TPJG}-Uo&F`Ju%IB_7p72gwyD=~MPQv$T^UL2%)+{ZTiEeL9?r=|% z?N|7*rg(j7zZ2?n+-#4_U+z@)K0Dh?|5%?H^W0B;v~Ah|w~yA;)n)H2bPHK+`gX># zFD|8==>FhRM94ed{z=hibJwbjixnl4oR(!T7FUQ)!eaTL$++3#7k0uGGOo$eI9sAmW-5d0yrWek=UFQg-OG;npXsVw zr`+P*W$n;g$-gFaP3u`UcfVhMZ`-v)Rmoo|C!TjGo15sjF(G1&zbbjY@=b5s(!5iC z7ZW<1KYKfQvGPanE^GV``&~=ukk<2Q-el!&_JejMl$X4H&t{H1O0MaC$|oUOleJ#1 zWN$Ekxnud3a`O%DhZVB6>C#y1x-W$uZAx%2o0|~rry8&}*CDTCT2?^b#Qgaws&U3! zuDB3{%j{JBb+>VQW%=a6_OkaExQgY)3g`dur8;@ET>ofOUG-{4Q0o_n_*ag<;RvYK z0R|TILG29_n4=uKD9hw2x`kbScdQM72naVcVwC6~n)To=eF;8IK*YG*>1ky{lf-sX zVO*JdD;>6warH5VJtHcDjpY@p_;&xLLl|1EWzvV`m0XSM>^iH!qx#&>aqESb@yRE8 zim?%VKwAL6wg+iQ8-r^qgVS|~MFaF#o5&v>hVrumpb|*=nW)m|0<0EL3a7Unf&Sbi zRHZLZ+op47d;AE}6brk6G_^7+@kK<^1A^}l8j$pvM4knR&NEzJb@>A00Wz{NkcRF3%l6|xYZ;?r30f)_GBlE?*`;U!Z;0GWgwTjkny~0$4v9-9 z8Kg7slScL6a>?m-cD!?n$1Hh%1LYP<6WbUzoYx|3SPpRcQiKgF9s}lmza2Jv@fz^2 z{4J22$Xn(j7F&r$kxJPeDcpv+H-r^x0@{&Va^(X;3B1vi(Ft0^OZof7QZuJk5#iK| z1|kyV)Pf#$gTCJ_H|%kTmwo{hJJOcue-J?r#p9Auy2pT}RGLyNfch6&TkkuONfpLX z$jQr1ss*?!HUWi}yVJdqE(n;k92-)aSOnju@Z~IfkxnD(D?nyqZaUTBQmxrUvYEd!-+P`baJDDOrU6>-2iUI#*yS zlCrFGt#wh{1{Q|bQx-#aI&yI#7>N-36XX%LxqFqj&^;kFYcoWlHUoU$C{~-HvEAm& zT5Adp@8lN`GawVmCUMWCJZi6(FGa5EW%YiMDm3`D}g%cP8gu3W%pPtEIfMZ)rA^U_VW%U=M-NJaX`sz2dC~-q-GFMH zZ>aA&2Xp>~XekV*e3dQ)Hx-2r|)0NDY$3swN{X+7kO0?s%@oEatI zumG&-5luF?jOEGWP?1frNZ>+Pnp>br?$>idZ0F;}CXHn}l}wb=!m&eo148pS&a)+H|4WzwK?hAsyot*bPR zu6r#$7!RV}UxLIV4Nd7T(13_AS<>DouGZG7l)O-e2K#Lc`$e*%=GYbq=t@FYdt%+p zYaRn;O_}+^1(3>zw_RnGxK`NgWEn{A3?9hZ_+zuKXFDh92cbom#I=ML21S(6+XNQg z4~+Of$FigqgMrhc5#LoX$ZW(#@f=GHX%xQ=;8~Q*BH-Dkx{vMSAyLk12o?s%^tTG^ z^sxh-6Vl_9#ajDQB*}xGK#(|rS?ETok1w10XUaw=^sNJuN zF7OOCJmGrA6O6Qk5Y`d`KwSppgPh6APFhDyR>^tN@qAPcw)z&I1^yd>BZ#F^3ab%d z>p)XS>~9j`iA)(*JUMY-!E81LS@R8W3SrM)Yp2j*u?f#7Sn*UQ#ZqU9t;OX8ZcU81 zhhY+v1`NMAj3(go_T)Mt`X_2Hpn-nBEe4t&1)PV(K!Xq0*jsGXKnI!)bc)$PBb8*s zewjuFdMQ%#xB0AT0GCx_SbgZQvzQB29r{L`jtf978>G+Y@#%iCA=zX=y#W@HB)&{v&+T2x&rXKr#Cs8|E}Mi zuhl+Rli-D@Y_$};9EP1u+8mJXi?lg3VDfEGY|@}#;@M+tjb*aO?_&KR1Y+@7*-K& z)}}OPmclAwjmab|rhs2w_?+n{s(|E!W)q`-?rS;s1yb`v(8)KQ7E1_`JkO{Pu|Y>4 zdd7n%pyv-HjtNBOQDG7$Aa4^>Mk#GjisgVEJg{#1YE4mK<;-i0mgcr`v z_7j({T(fw!{lt|E)+`>s*f(&|V*4qJ1D38?_R+`@Uwrv*S6A*&JAbov(H*DAAcAE?hd|`sXv}f4IoMi`ZGCxE@=lQ1Y3&TBE&Dv`E40 zZe7V^jIN4UlapL@Q{0Kks5?irVtu%L441{sM3bpW*DW}YRM}5tizPUlXgA=rJ0@yG zs3$a5LY~H$t~2Y?Ft;F2gD0Y`Ft(mHv4vKW+$hSfE(1w;Rxy~T;WYUUn#t8)1{=~6rQTE|JeVeDo1*F{B0VH^o*1n*UCBDpo?529PZLS@jq zfJP*LIicQyb}-sN~#F&2~o=72=v$tV7)3A*;;?F2O&}?5=whQorp=fxsW*~l=djKNGR>wn7gX> z?Ir+{Ty?VKjyVZ;*sf}m={WK3DGvrh^PNB{!c8u6ipZb#LVjyTa19zT?64jaKR)7(2OT)%DfU!W$ND_P#CJ_w2N&YDkJwyB*iBnKd z(lHM_MUub5V5TYWNPSck1WP&?ZQ$7R0(o|d ze6d6+yQ@WZpq7>&q$pdE{WKVjM1e0*td(Ql?Y07Y;4w%$7Ko?5BYWH@$Z`Xb#DW{G zPT2b&4L)5o#x(Ij*kEsg3m7wPDAbXX2Rjwzw}3tC8ey8Euv>5la&lnTpC<+j@w8EN z2O7O^2(O8{LVGJrG#}~)`|YaW#Amtk9y7+5YP?O%4YlbuvC2RU-R+jfO)lnzOC^21y@c?8Nb+=;^)dYf#~ z+!0nti)TrjsC=7q0^9wnl3X^0_!z%2%b}8^gOU7v-hGz;q=TOp>{_w$gI{0d?=!AH z8vTs-Umt6MI!N}f-%nf}^m*Tw6YIlxk|_0K#sz~nB*ttOypb^24&5oR-RSFk(uc(m z%Nfhnte#7OsE8LX!QF&rv0>S%QMN;j+)vGuZbaYMnj^0#qL9dI55*(*=9DGZAn`2Y zKNeRg7`l=Y+pQE0DM|T4H00RAQ&4T}9sk?htPN8ZYDs-z&|*0eOoe>AmK97D%Yo#T zt&(95WGt`MmQ)6azow#p0(UJo*J#J0m-;OaDiRHPwxLMqR96c=sDUrXh`*9@^yb+YAvFal^6B83`;gig-XyglYgBaz7r}82ejVJMuoOJ4rczn;6`rv{&;>g^r>fSfn1h`G z!V^q!z@Z%lwKHOnTS>3INyiT|==GuHhs9X@zv==(2p0dr?Z@;Q*zbvO1VS_cbilGI zZOAO(3&x~cS3;Vk6ahs!E<-uJq0y#ojRK?{n^tJ7-?U&ITi>+*SXQl`g(M>ZECnXj z!hH#iPeJ4Fhdtl> zvxxEXn7VV{9n*os+Y(euA8d#(_UcMaJ`R8${T_8(YnEkviJdC2@z#MzLKV* zEHyH~Yk<$TNFJHtq=T9eU+F?14y6j^b`e4x*qn`TD$KhFR43plhI)_qj-z3M{ArB& z&fA=`iJ~N#5>k3HTS)X}0Lp^C%t;ewBQOmy5wpVeOpWysQ;QXU482IjA44w^hggIT zWJoz)U$^(>^sd_V`FV2R1Ok2hd1f%#J=mWee32mH*JAqQ z8yZX!zU2TKe1o0|mlz+5&c!jn@pzn=8|Jg!J{x%mILP>k{yyMW^*MJJH@Rfs3D8c2c)7JfKIJYHFL23fnMs^5s0C{)0a!-h{ zvidxz2Q{dET3UkOX`@31wj8lP9+a5(Tq}e0VSH#6wyRxmq}+msQ;5LDu9p&uny>XiUI~^C}@``H+5Ttggoy znhhnU&!DmmM+k~Dz^27a803Umv=kA796>m-ptRp{C zp+-s)%4hWk*aDHy`f_&8oUGdop=vpEK!nIWzDCB;zsWadbV5r_-Qp~@zOkh~_s>{r z{VPk&;Xo{Hla@qOS_7XY5)>PWMi2!-D*lLqppcxG1ZFv=8=mQjl3w^Vqw2Zdnz&?k z^)qd*cD8Y*_2!w*;AR>kP-~hT#H<+ZWl$0C`S|#cA0Kmi|Ci0@>pK6xu=B~U2M%CTji|J& zV06i-$^eBW`4J+f0~Sss$GX`(lO#rh0rfxRy+ObBm^zv`M$OS^Ui1Mx_gIAqJ2ps# z4BENzxJX(hn{Pfc9Ky!%N>(gc}U<&vGvCsz-Nl&j@JecW62$(kLQF{VFZrBQT_f4}j@kLGEW#+NJzwZ&>F9Mr)N6ieXL zYmOp#tYju6@wTGJ;%H}FpFydz5%RH=5mp8x_jEhsMKg_e(+aaz&JUNfsG#;luTJxXMO2w5I7VcvCwnK0_b!@}&DnJtO*i*lPwXE__lXD`~33Nvmi~F6AgR~lGe2FzNGh)hq7p-jX;|)P z0gh0i)`ODkPLU6tF6!%wYGBsbHq!o4yWN7GV>dd#lR>Wzy-$iFU9I#ig>NU4lmO!1 zt`J#ctzW_R*nl#yxyL4$6#cbfY?`f5r&cde#euMlNT&_g;$5Ny7(1z)7zXYu4lmn; zl9<$#%y0y5QpJeI5#N!<2ZD31g*%Kk;6L?>IJ+uBmSb6P5bpYK)A!;Z68c_Ls2@`P z>Vwp?2z_q^ecD68yzj%9DwP!DQnTTa;kYLBuJXmpx2Xhz+i3-RPU})CVtrXp=r}5T`ApF+5ma6Y+HOgWHDV#Qa+H<1FS+A_;~8ZL zsa7aTp2?%4Ey36to!$*_9WnAKZ6{OFAUeH9+>eagwO%I1n$k5_j6t0Z$Vx$Yjg^^i zc~}>0R3$cLz;uw&BTDs9V2}fO?`BpXOA@Xn88fk#syvRugK(kQCWE|`-sB?PB7;PL z9-3+pM}coy0ojxNaFM4d*(h{P6!(P)CsR)sn*ajDJN3^@EVTA<6AK^v8i%LBkfmu` zjXmnQc}F4?2lagk3J&#s$?=u|akdoE*L5HQ$NP^?u7O?)gHhgTr*=h6!WNMIu1V)Q zJfT@?B!~cBGeKtoXMK3}JNWg1VWSZ|#Vx7M= zSTgp}oPrM$_<%KnZm1NY$+?el4SZvTiGD8h;FT^7mdZdsz#3sjwGa$`pMvVLJPdj@Yo;V*^ zW~47>>f^?Y6sPW<<$3dP;qXJFV(gO+ZNAZ@56rTOgoN2TW*^5iUql-}WcxhvHArq8 z7KiDzOTWU5+sg_nm>|#WwI-T~ZSjj}fz=-*!&WGlynzUTYiVM|MTm26%eB#5^>gWb z`9>&Umydv~IjjX}2c%^EQkXGVb2n$($N^+VoWH8dg4@Y^THj+O5z(?@DGd_ma&Y2E ziw0ss!0W_8CjBIhKnr&0#DUO?2r_I3K!66oZ&2GNF}P>F3`&D`P=q3TB1OH$E*l%R zOOmKUV&Q)>YU5$yf0s^cJd9Cih2EFqM{S}$L`e?Zn#63W+X76pc!qI@Azdcn_2XM-nmzzd3h^d}#{q0*iyGml zxzoC(g9nzN*kZ?@QmZUh5Ws$mZ3S3bc!l-YZ-X@ExWh4hnpyF+=hKv ze{i)!m|oFJzyFKse<6gyS*DkU^UO^L&E+kinU;67zv(mHfzz$#OdI)V4YvwOqgfN-MrZ@=0}(66 zVHQ(l16X|VG00RX(8>dOL30%?p-VrNq!Vmp0kgg)SOUG5SA~BSv4;t#G1souSg-$* zuZL8rgj9oD>@z^G(G0F8t(hVe=$h&u z8UgGq2eroSfr3~#N-+MgLvNFY@Fj`>(#R_iFEZe&$3mlY41_pZH}r@gvZ?+QM-O5Y zklR@GGe zuK{gitQv=rZc|ae6|l9~xw~-+w6|+bl@E>Rw?!LwW&8vFdPuceO%(&S3X&`h=r|g8 za<{baGmNby#2Usc?a!>G!h~kr=3_(z#H^_d)kT6 z)#QLEroe@ZOarkHN@ZUwVx|Aung5A`ybO5dAaZNah5FDWQQEF{c!6G{?#h&567syL zj||d#c8wBa?G?zfm|;_z$%h_CXYlrk?u#R%h3C+FYYkD?IN(|*7Z(A*lqAoxi_`w+ z)ay4(ftj2u%$ zun~_by-$|DKXEjw0 zKGVBdGD0zu>U zARk+XNNK`i>V;`kgPZ|sckLGB-r`O%)*_C390Of8NRePV5M?^7Bc~KBLM#Sp-=GhXwwjTjnxSi7$pI;Z z^&*m3BZnQT*u!DB33d*5*s)Lo<@{26(EQfi106qWeShONzrd)a^Ng@SrKIt*G1o|I zL3zH^%+aEOWTOro$$x^ti14p9$&*P{5U=lHkGysy-0C}R^yfLYk0L8wSfZHkBXBwo z2NUS3|Lv?=DD>96Y=GK@CO@;kW{@&b{0q>pBnO_N`TnuMN_FW<1j1zRfl8TO^m-D82+vwasE(xal07!9zI9IOdZk+3xjt`OTRT zEn6HDXK`du>qUzrw%AH#>L2d|%?Cezipt2p{3!}pqB#~ebp>;4#xbW{Y0>!iHulS& z{6>)b`pGw_@M%u;aJB>)>(Mc~<4j1MlLt=|8Q-UKCoCm0zB$R;Zi1}us1pbMZ1zI@zG}_{ zCG;YU!aq!Sr3YM-&hfDoy=m-R#*bDOeXZwulCee(pk$0cyc-|tmYaQ<0+YxkfDwk3 zM;Vra0|})UwhqB@QCdb5X38)LGYoe<9N7@5k&bCCsfI(L6bjF+0Y*d(s3EW?vNiQyi@{0r zD94J;) zO0H1KrH0wmAD2Hk2qA>%7$4#YAZJjNE1@buMJr85K~VF_K0pg$!T$9)5nkN}cGN(o zp5dDcay<;nF2Lpqs5Zb+(F#*WKn`ZpPKy;@#K1sN|2)cuSHVTP4X#M0jMDU^k5J^5 zU0A4KUpc_OXBOTe`^sTCc~8j0Jc-n89+~9&4*01QbV69@{oEv~=c+5sR}d&uk*rXf zsmII<;@QYX=B9dY18ca~RJqZanO>pb$wdsk@cGOe-;MOJSr1G64>0C~t2`$e##vx7 z5zb6Pw&$tXX>b~r`XAV7umqaJzB~!dWH+EWY}s7sG>8E)>zp&K(MGRfX`{X4Ytqdg zTsPxnV!&toj|O~0y#dFbgSH#+D6;`iH5>514Owd~L$_gXb}}W+F3Cev6lS(*!Zt?R zhT6&t6y(@aBtT=GfjO8|fIl>1S;0&jpo7S!=CCcDa3PMP4?)4KW!e|H(bKw0E5GK) zg&$ms&B~l&>s{x*B;!$P$jY%j_HJ|g>iLG38?Ka8Y;yX8_xzjOqkr9a+T)jA@1C6b zV#PQ>kCDvV1?YETV;YXkX5_yNKrS2oloEW!gO~<{?R$SBtkMEUILjst{G-m-k%kDW zoj1(PZAF$N^G1g_54RJ~jF!;o$}uv>-a7(q+iue6Pgg4GN(IH#881EonfEV>j#oon z?!&;v>9aI}ixI8!3h&+Eqzsgc_?s~4Rj#CWfEPcA{+xqj*#iSK*H$x!?WEj2I|5An-$u)G>o(nT=_}7KsnTmm;Q60lc#M! zueBv}=g7j~i0$Wq&(5DGLJuWO_|P>NvjVN|-<|ME^Mto68Ar2}(mR0;h^3Tf4JYm( zL<(@{QS&@ovp5Akxz`6g#-r&v^^5C%2v?tMPS6D!AfJ_DU@bjIzhiDZXs{6N8E3Ja zq+cIHGpHZ4f!_R5YE(-g6y5L(;57zEi;oxm6&j!E)wk#`Frn=SGn$jxVB_axeQm=S zpX;#{QY!X*QGFE8O~xD2l6bfH$}-$C>?=^}Bd=ie%f15HH+S3zxFL)Q59LwNn^y%; zXVF0mR6j?@Z6}q4dLIy9ygMgD;u~pVI9FpeyqtDYKbGLP0C{eUI^$N@bNFWZg zErV(-Au?)GplF01_+PVdT`edS#m@OZ?{JPc)5L01Aj z=!?YD2n1G7UsYcI;%BnAI~SrY3*wz>gTLgRoub!f|MGC9 z?CnWi!oZw(>YDU|!&Cq&58cxy(8pdl_wF?7(NnM|)aBUgaaW7|>J*&yV2K)$=UG5P zRaS11>)}`w15A)?C*=A?-x%9;+R=ei&mhp8$>!AuIiF7uy6y`pr?UO10mjP9Mf+6Z zzToFA1cUw2Go}zAc7{sPFW`TGt&UCUUG!Jj5cSC?#{>ofm}mrWG?{4#5jS{9g3U;1 zDF0WcI(h>D4uB^#J_r9R!|MYiVa6Sn+o!0j(VuEc@jB7!p6O$Sm%KjJv5>`p)o9z_{f3!>|%l05rTM)qa*m=IoTTE4G7oS z6r+B9DFV6+?C#rT7xghpOOkm&(?(V(p=)oc$WK=R2{k5RC~Gm6B$@~201HO2`c%>j z&JNgqF*qj&TFGI@vT|1AfXBd>%+bYE#kmA3k} zISZ%qTF8W?>js5*V5n}MW-d?IXgiBsIO0imJO4w(ld@OanI)HA{&%x*O9*%lT2XGW zAB1IilFqwls?H<=FR-fhanLJ{otHpb(^ku^t+(9mL~86WmjESyR%RB7_P}uRXA;*9kVK1bb2^NxY)wson&VjV@UKR^E2D8tI zh0OULUW`H+A56W4o&hx38y><}fGPl#SjSENxJHk%5hLYtp;k(EiY2 z&aj))X+5!vyclH4es$A#xc%H-`dGTIc1)cK@ZPh51EU@JwZvwLx>n*DLB<+1Vii$k zg(&9&-xs~Nc5dbM=B>;~uCKr9-+$|mpPt|4^Tx$!t-PN{2aj~|{;Nm4j(ZIs{>#?R zdw=}KJGCW`4p$d6Z{lGAFci$qauh0#atY6_W~p73J->#*4yjHwcKU<^_U#pczg({k z3Bj}oqT06M=wnaL9#L)}UP!Uy2Y#a&OzK1U76jVkTL@=0d5b-L7~j$v`A2Wb<<^uL z374Pbh^i4~`RtYlDjzU%$YKB?m-r6f00%jsH}Q@$jJi-bl2%po;IDyQp+#9LYz~KP zET;ps*QDukw^mV2L2gdm?~&I?>Uiz!gg_gXv}tfvN;ga;HdRH7r+DH|_yA*)-EnI} z@{QAMYblEddk2$uWbddj$A^1|WcUC_Tu3efWtK#( zkYp+WeA@_S0=YHlDtkj1O9*mCjv`Fi_zDuy_cD{UfvlVU2N`hQ0C1r9+x3(=W)ZjE zpKy2sm;Kn=Q#)#l@I!+7Bq$L?j<8JJ-1J%-#-WowmYv>G*dUTBK98yHa^7TwLWyG2 zhWN)`L#e^lC!ZN+10Ifg7Mxz@E*{cidnvoIVUzQk@L#3z+3j8OOj(U7P76wXgchg$ zIW~x5sd)&*>DznfYi0XtNkpelfVh_Q$o8!q(KU%PT}4@0I5ON9yOF2(298b zU{lYd6`6XZOl{hR|2LKTgiLL44ZtxQ_qN(Y^Idz`MKeiXYC|@h7BttGRYWC4( zht#Lvz%pt9y>sL>I*joUj@@PY*jwt_Vs|iW85?pW3G{mPTTB@aTLvjTTCj@t$QNBt zhJ)?1Bo@JNt&KcwT#ilvJ($C#OpZ73%xd)Ni;q3LO?TjbVewXFLqQ+L-e^_GCRi=c zbfC$Z6?8LE*n&NlxBKK*yBPj#5SW^mx!Z&%hSLJLM7FR6WNKu`Km!OxLDd=fB! z!1&eqgAoe#zf-$Gh`xZC0%c_q68)}I^b;aWj`BsGJ_k{9z4QZ&ETtC@N*FmnM7Ok=jM})Yxd&&p%CbF5L{dncEU(7&(EUDte8L+YmoM*tN-- z1e|_`O=s)GdZ^uj;_=1D09{=T(HVHO$eeQ?qqEmD=aei!Ll54(V=i_wIO>NA;sBM2 z90FX34&IOjj%l%^o?{wIsz{;>_bk5~h<1`{g&eI^4UHc~IEd-Qnh1;? zHSop!4H>ayIfn86^co%bIQ_1uXobkNqgMEQ_9|*ch4ocPx)J6QmKc&7P71wqdjR&3 zC=AhW1QLPhHxjCm#vF{xNMjDhbF0okzJUa9*qB2iwH(YpG=~UqSpg zxCDJ=jM_j=61TH?s^yKQ8d#G4k*Su{Pqio4>xxqi6(00;+Qg<{NHL?{T}k9r>(F<@=^5yQ;38t*#^*UL~>G!FA~W~%qkMzWr(v>(3$~`7^WWkmIL27 z0-3QwY-ad`kK$CMrO{lKA!-4%a6p`zy@n)U8b=MeDXhjWXno;0#-8J74R0|9NOAE( z>(}joz+LHgbD$hND}C0B*+=9yBthI%j|SQgu}hyE=#4bKm5_6bhHe0?IGZWtFitor zB4zkvfQ`UZ8No(`qeXTfbvQF4Z*HjH4a=(YzS*~PzMRRzB9 zjdr_i`4pQ^ZES+LbqS0BP?W+bw)x>l*I+&sY@!{TPqknakx_vF*a)M7#nMqLOw)wl z(cQX$0^c5(L%?-AWrxl8;LX^94h+c}HFDiB8`s!%Yt*{UC0`oq*0sfTr)!$IZm(S9 z+u&-xUb?4!0S@1u#ibZcNfJpv8t>+lO#pY5=iL1j}1?R14-U74% zvdoEv4;a_FBqDeKl-;CnhMnVEP{h?(rz0L%Ya9!GRM7Yy33aXbC(x$5nwE~DUlUBa z*=(P6!sz!L{vmWnU-c<)RaEfZMv?hdwlu#&L8JNI^3Q~3w5fi6n>XSk`5Wo6LGm{O z6KIJ}8V)j4_j%1hmPtMU&O~9x84zs0M*l@b|8RoaBKpVUa_e`b4J-~&p>qfWaNm#$ zoun}AF<1nC2rY1~iVP;KiUPA7r6pBSbkHo@K*U8@C>J3ekRt|FNC!lMEbLBtRd;F} zzvRIOA^usBEH?c%NT){fr*ic%BhX2DRD7pvnCF#s-;`(D>q$TT(jH(zjV}=#adjaKy{<+R6d7G}N9Biw5Yg zHfPGggM3ETS2p~&0B$^U__tY7=Hekk4^d#H5h@F0bWfteVT1Q0!51TvG%?j}q{LxHa`*^AC>r(2`}v23UL zW;?BU<*T)@hs}0+2uqGYm~7es*9PwnjX3@pvE`n~n?r2*ZCKY_B^Xps)br6VAAKGa zcQJ|D_(W;!j3Z$Z1YFb|q%^oXedzZ;ewrta{qy}p|6(>9LyrqIYgd?Vmw2o^(f#(= zRQpYDJ3TsxVcHB5S0GgyoZwT1aq`kY1Vd6)q#6l%4?FOQ!5%fKJZq}xN?_BGIX`iy z^Y&1C;Oq`GY&RX0-=(U0(U5=$JPmD1>N5FBI^{kv`~>T$d#3y{Sk0r2fqsm?PJ+Kr zNd~i^##fVdeC`kKnf%yaD)Yb?1mpEwqm=y&=ydhATXEA-9aA~9vf?)?vNr$maBV_m zl_NcsD&;f0>e|r?##Ad1FZ}nc5%5@ceE#tz@VK>(BRm*{EBZTn3|*74$5it2H~Z@N z(ar8&Y!(i0PN}3w;YoNkzCdAIs;FHRs(?&Q&K^%Oj=cDo{3)Q2g~u_s5Z%$g6^t7Kj;bl=_rPXh)?1$nwII>Aqb}R$L_W)zy z8L%YLcpagm5&>cd*Eyy%*Dv?j-LzJ_J#qSX;6@w<>OdvBqK%0NWpyF78Mh$xs8I|O z*{!1% zGB)^ocVl1@L__fV!*q&>{;^hgv9A2(Z~E;w2dQ^fUakFaZKM9vMkrTlE+vo770>He z38o6(4d@the<_9-SgKD0E%&O_>dGrSiLZB}M+u#HR@yKFNM=<&vo}oQmD*SLq7O-` zqML$Cri!6%FhWNy!PPC)Q`KA63m-W%MzxmSdU56rc--E0Wp=^JtQ)hx^q=56B;f4B zB}4u=doany(QDOdo2gzos%|nFyu~80560-EX%=K zuz8tI6T@bQ##6HKMYt|oCRS6HD%6_iYGK%Q015B0zX@K4BRxT!Lzy=|!EU+Z{#HR@ zDYzVVbyvJjKr^rat`*7PK?W*t8fRyADT!sUFIW@|c{h2fJy@vO;#@vhCsKl0mBDUBwFEgNwmCY- zDk&XGcT#if_3F$_cpN*n%%FCS5gIp4;x_yrl{cDhcnFFC%^_T#wGh@WtmDHc z=d6S!4(s@g&30J3aJ?IsJNczC%|Sxzvl#*#on&<%UYTfl6dkC``!E5&we)k*&T6^D{m-F zOJ2XC{MxKd4+5Mt_CoW4gH7OP!MGZi{Ls77Su2Oa&$l;%_|A7#7i#l9h>XxT{$y)i zBH9)4OlB^B#<~HNLT)Fgmnt1&4IJk+FzYjKpCyHf*{U6&G2~`)8 z_vG!)+nqcj_OX4q5P#hleq6>CHXf4umwy~PJa%~bKd&ilXj`87o;>(j|LKZio>G_L zTO}FwGHdMavAcfe3nmNAm3Hb$@Dg}pi1~;WCGe6^pQYD-fuFQbS3Jf`?-|$dXT)F) zU7sb9&zgR1+O=u3_Wi8Wdv6koBCdZ2KWp|TD`f{X4aF7L)Ap<%9_x6mMySGfM*M6( z*mc}p^3H2tUz-I#ukU`RNiUV-Z`n)5!xH#LWB07zy?*!D5#_%zZ=HH=>b3v;yfK{< z3L~wuADAY2zh-=*=HMCKl-Kq=bNsVsUd{LbgN0#|akxIy9DLO{Ndm(SL${m!Hb(`& zH7CRK%zi;KMaB{b3$8X%CNkr2#TI+K&?i*+XIcLPM-MLzUQsT4f1lW=N9z316<;4n z%#Eqhi^G0Mzr6NNFTUU(UrAn=E zF^s&DSGvZ}D`)KLU3LL;7EYWz)MD3?p>k1Cs(#K-vDtZLCv(Pn;IFFu`b_LOG$i1V zO?#j=TTfM~ht++C_Y~qgCP~i<1>5QVGxssGg zcj0bKa~q=diPS*+Q?};8So;vyffl>obJ!efmTN7%0rz=jUg>9kbx$T50y6^U^qFW4 zKeGaEOWfc$$(NHakF5w2&Mx@O>qG1Bz3QU#eO;|TFy9t&W#p|Lcc`hp^xQhdV^4qg zuyXZXz1t>`?0HHt!{ei@Qtp>uZLk$y9NBBA3H(G_-PH8)>IpwLQ?qr&y`5aG`&#!j z-#VvZMZenb7adY|>eh+u zk;?|2{+#!L&@f4+wfXz5Zn-~}*X~b~^eOn%Yk+lq$TEK`+ki*Lt5Uq0lcB6TxP~hY z8ihj=q0%=NhCC|_QN|`pMegIp8{kg*nQxA`bS-z%*ym9-r##&+k*}Vl(!U4y*w=cV z_jBi0r*4g09(#IT!OCQIJiMQqsZZt45`0;(p`h;0YWVuM8@BOZkkz5y9G>g5H_&jq zq+4`1^HbLT9J_!=|4Y98@q(`kKJw~gU41TGk!~Wp=rsf`dPZ-w7pG}GM4rd4Q}7YSE3dP) zn!dW!UFY2rtksVcXC4hK+;eZ&PY3qi+w#-KPtOfM8aHyoxeJu=B8=&K@RiM?f1I-w zeilYw(7==Iw}p@HWxj3BVsk@Pz@txL>U%{GKbrZ;PK)oWu0Pqhx>nOC&7#;Ypy=Sm z)Jy?2H8Y@O_Vhth&J^s)slNS0Ie5D0sPvv^&gxM0MXz702F_83Yx1m-H`5;`PcFk6#;eHM+$G{{_~m=2NzN5{oYAGjxN0zWqPQg z?vIo$-J*NK&u6eC$iE4@OD)rS`3&;ek^m3BcV4bn1;1FjP49pCMD__^Yt=Ueb(%_p z`pStZ!E}|WpGjKxrJpbD7Wm_oOZ(6C8f&Pv3rL){HRAHMW%)biF#q1P{4A|s($<7+ z38jPN!_VF87{C?nvNtwlI zB{pTU$%Vm*eyKwn-Kr~kXl`H5l9%#R;QoWZr*)i4H|dKhUhl&~v|{gnyooMmt1RKN zcWKO|0?p72(PBT-;@=bQaYI}ac9V(PwV^HJZ{F`v}FkMA5E?$PFD<7;ci zhn%0V(q;Pj?{A#feS6F%FS_E+t3PyLTTX?@Mtvh2RRWtz86UxHAKQ@b#XWtx+w`)z zq)K2j8q z)!WNu;im_m-s8^h{xiM$E`_b*ZCp=DTNJRcmcWL?{lBf~a$mph#cpZci{H1oY_V<1 zr8%&k=8ZdXN4DO{b;>nsbH3~+O0gz-P0ng3+nG;3A0UxjO_z|JAF?`nc+rQCPF%OP zdi4Cd_0031pSk0Be$tsad%SmesrGvB@>;Mm`X5CZE8o0q5c9Gz-<yR)dQ;waagWyJZ!D`PiEi|_&Jo>D`~5ubX}PxvptMA&VCQ}#*N>@ z(>&F%)I4yQcjn?W>w8n~^-eNnmWyEj;a|Z)IQ-)D-@&wGfQc9aKgWKb_G1wY_^h&# zX}yxRL~n~G+j>}Ws8EGQN~hJ_JZo0mujagn64?ebL*C2zl0|7hzc^TRJ(D(vocQh^ zIg{uAK0N2l@y;H-`Zie?anW$ACLqf-+)Hu&{4TFsd%fF#WPbhpX8f&&HSr#zTP35< z5WD19*~9sgsb3~cUdPMjMubAHjl4bi#`;f9wtN=6-*)rI7xUw%)YH<$qyJNzZ~fl1 z|IJ?!cT6y{xNo50xbm=OP|f!AfiCOKihnfsi%RS5bE$9I=x5Yw`mji8I4IKfiJyIF zk)X_)z7hbyQg1YpPfa1 zeUmPGuQy4`4oGv(ar4cHIj5?Z8E#)*J2Za%q31qD(~1UoJD&5NT{Nihz#5lh-j0Rm z@136kPrBScFP*Z@d$~)&!^{a&QrF7W0RdijR`#|j8@Y6#v}{oE7R8gv#amqbT#Ngr zmRT2%se$`7uNh=h+OK%C`IDZ-o2U3qFSacXw(YO+5Aa%0{DoIORtRJX|MF%lX!FHC}Jqad6>nyzXT>{?spcZECrCK77y+Q&0RLQQ(lGYv+@z zLtF$tQNkkWgXA$$V~Syb$E;^=*(ZBKTF=xRi?n{yvR!H2rDc{Q@TgUm|n5x^`pvz-M3ej{o4$NWWj7o!N#rJwRGIviK*@Cqs&ViuRkcwCf8% z-fRK%G&Ns%JI;OAj=q-GCx3Cw84A~4{~8;$V-j2!9C82B)E};sr{*lRe2&*!cU)L_ zdmdc(H1$7KFbn>H*UL;p#N7k4?Lt!GoXsFa$b^SC*({<&*=#eaV2+Ow~A<$pML!NiDLPRn7<_6^*b4$ESD zdQRW8?t!J-)4B!1%J`cNRRfAwLS5$M^Pl^`XOAiVkX;Kdur7L}UiD7vDJ?yp)>m3O zqExwhQ=ar&8m91*|4^=p5S%x!sePYPW~BPr6qkR1%f9&r3(R@)dx4?`22;5s z=lf*MW4P6DvY|3VOg%&;f!Sly0!2@%9w>0ND&2A(CBSRUYaS;|44EJ~>nuxH5u&lY z>z1k9J_UZ=BRJ(=!Zx>Ub(X{GZBrGSe0a{e=VJ=8sPPYE4cdk=^%t#PhHrN26Y5?Z zzxL2IzaiOcwV%5%Uw|xzzcXJTDmro$m<4FaaW|xQVD{t9iHtpPEM``4(&ag6A4soG zNc+I1?ANq@silLKnz38VCk=L&kI@>iW5{f==VgV;O1)C{AbHOE@u&NGm7Or|eXs*x z!uK4IIj-*Jy@da`jR;;I){$DgP=W-)qvHYiozVu&lo2^hryb06T=W3Ez4R?21jeN;cTtXKJN6?ZwW! zFKn{hfsL7}!Y|Xh*_3{1G_*azKozIEN5JZTe)2m<*vkI6+7IlQ0N207y7Qf@>hHqj zbKWyGKLvY#^Nt>t*7ITSzh~Neq1SP+1wAYW zoh&FejUEO6es{>}rG_j~yO>htVd=)pePP>%r-POKG5zWUZfYfS3alzBus$E*EpzF* z!BW-Q7E5rYo=x^{y;4W8W|ZCfEp|@2KvvboO0Z`ccvw5h=dVu z3|~>9d}Fo0?&9S0DXV(p!Md|XXI0rSg(ssHiEBKWJ-=jb{=|r~ueRr(Yy7Y$p0vZ6 zqwGuRFsC&08v9}i;|-X!^adQ4ZbefX?&&ws=gNfj7Cx89q1Ep5nlHVHoc$lHCzv=vpnv+8LlT(Ec&PD$t|8nol#S*+u%))D1sF@#!GRbFIp`y z`REw@&87@Ig6JnBaoH{?-jeQT<`WLazUIo9^^#{bQpFGC9__%_=&kv8J01bE`*)@F z#?#(3unZSte;dj^Phwr>=KE4}M?T2sN@hu^GCDF5hOh@3Qm{>6NHv%2;ETaZ$V-?> zjNXG|&O5>A!NkuL4a)qc64u5}w=u!{C2pC9AA$@$f+@PubkE6xW9~b5#4Y?{Uh>SG zL8gwUzQgM=mIvl1XN+Dgk{(Xx=6cdq-<4SCmRcn(=QMu1> zsFwEkj;}uLP<6EWoQ3+|ndi1{yyTV~weeoR0^MnaV&;^!@>Nugz4Y9^jl+J=u`ZmM zzAU<6R{9z54(@5K5BP* zLDjL$b7mXEUC%|SuY8#-@h$?5$7)pHYOHKSRw7>I=XU6 zvgfs=!50_bPjQ$2>^go!;&IQMq`~Q{E0)Zb?rii6MP*^b54qZj50&L98>0gJA1}3eNG~<1KJobU^r|C|&zW!h z_u+G4>PvHz_o?p^s8SMI)*HdDv+P26#+%iM%Uh5`26C9?fk1gg|mv5 zr54O7T4P={C}hnP?=U-ecJ$&b&UIJsAfs0j_L$3gshPZ%=d0E{mjAl(epX49GCeXS z@5{m-MOWD&oU6NMe_H73x$(}U2@cXF7avyrde(DSQp$$JM-x1xLtQ;9mz?#yn>6X- z!}}?#rH5SoHzdY+-btF2{=8y|qx4r-|BZL@QVt|dNFP+SG@B9AJ?D}PPlKOia3;Ts!9acEEXnACT?Tv+D>dn>eT^~!8JjGD2 z2}+DC@JJh$w49S1eLl~+KvLM(GwOHOV;hI3m_PjT`}7&rv)0-C?s{fpcwxjJKHsIU ztR9dO?NKeD!f-)KlE$PTs9JK&bF{0=#xajlW=I!bJYTisjAwXK;s)|mlSmj?-Uw^S$Le}OFnM_C56l?WvqN`6$8d|Rd%AJQ4X1BKE%;DMUZM~qsW zl||6r`o5&du=GItmGnRx!!!~w-CCxRfG9^2?8mvNoWw(wA*=eGdLU=Sfn=t>Vf|~E zN@b)r9$JyMl$z>d&B9%VKh#NgEu_;BBGCo4l1^mB-#FX(=1{4X*&irxC)%(Xm>XoI z`6|TJCqaf8G9F}ZWs)3!?t{?Gnt1I{B~@Rs;4pk#j8i}z6<66MT{NMfF|?GF)^k99 z%79}T)~31@$VON}1Vb8S*^}Y49(^O&*jXLv62JfA$YG}$_qY5LTiFkV*WU-->yoXYA_)x>?};VQ z?_P9{+6L10@Fg4#z3@d=@FMNYOIh7@kSYtQVEY#Efj-m$O&KaRDOA*;>LQ_T!%1fE z=44QW*0|7aD6XBTzXv&Fq>Dig83q%#5nFTnf#D*2RrRmMk+~ zyt+tzo>jfBGFKuglgLyTeCu^-+?q5wz(7+rR73&cwt_<+199S_MzLIIpd|(>^R!TD$#s(i)(6-d9zG0w0PHhK z-~+8_9K-Z(TLL4}I&dpY=miG&>j)*Lbq$wLKSijw6ZbQyVL**qmv6K}N!1Xk6`h~6 zf^<=-J+~v5(Yar18p-I~=UWbAbnfF9*)r`|oDzbVb}S`IOM(3~pv6E<<~b@C8!cAJ z)*5zU?R9}TAKIC)=~VO>tPW2EXmnJ+Z+r zDOYP-i;Z%(LOkeD?v{(Z(NwH+O9B>qccw?X?=mH*!G+e?FlYE8W(6|FN14hYlPlCq z$>hqhr+EwFj~HbNWIzFd0#*~ctCOp2n%qpF-?kh!tZ0A}CYkhzR2GO=Fx`xkVTBTD z$Q7_cd!x2*uHJ&t_T5EKVLG&1z#ECS?-Vt>krboh2c4orxRV*X#R;cBRV!5&BBAvu zx!L1*()=bwAHxZJ3|NG50%j#b<6lvvG}~Y=)GZc+(TfozaJ#yDwe0Q{7|u)EfQr-inM9g;=0 z1!ijf6|~s8`^Gv;a*Uj!fZcmfEE7-}z%vZh@~k@W%}x+L7g>Uwjw!Ol^vxH8{fp(j z(Bx}`!fc^f?hoQYP}~XPL9Cr)jyN9r3ywh6^oOEqG1eOpeXM3Djt$ev5yc9D_;m<{ zYEJ|26S&T3-?1g6FE)3_=D$F9EHP@Hg)QfTfMsY+HgvZnA_$~P{>?#R7#{00-@@TM zH0*p9aq0Ed298s}KIy53>65(2`F^3?^~q1x!m0Pc=V($)NM+PhG+BR$P(6jMDd_^k zTc=W8;$qbf7hJVKpnW;4H&SX@0x(nF0>zuaOUC1?!>YL8(zY#h|)GA z^#pc%PoZ&9&_~cKhgKqC`ZkIfMG~Q;Oe!qT1V(H#d65%_(5l;p8W{y=qv?WkGOIm=XKrL;{CN29dV@BcWb!>+)8qSsq*`mhc#!NDhpna$r0mlxC zAO=)|S2oj-zC&!)myv)A%+0cZD&vxLMT`L54Z*z*-7{%5wAj*tR}UONH~=c6z%Qw2 zCjZNf9b47Z+&z^^1p0B0kr&&E_ymbe{!HITs653Zs=c=M%7C???FL=5 z==Y(6J!PS!e}Z@jWl@^DXS!-3TaPFEB1HR_mC@4;4MPR=q>^T3tIcb1@FcQfst$dz z2%JV{vV%x7>=1;7Fm3JY$7siUvEFcjZIh$;G z1_UCgc+Dr9%F_$f8K-^_mX5V|c6PnC9k*E{ z-gas=x^PlI25qZ;V*OAhzk?PH7{YnYp78)bMcd*bjYoTRE3*A)o(AGk;B0CsV$(Cb9Z2RSM;%vPI zQx|T5C3nqEGziA9H*vc)b%LK)P($$xM=G!hJ+#fDo7ZNfa@pF9tnbxuXm>%z2%w#} z9oPZ7TGgaRt$&6lP5`#D{koe@E9u7Q%<%LfUFhE~6(VIiGCQk>6$C;VN=ZonuGB|{ z5-lsZMW%OFSLKRsY2*@=Inmc&F*wZ1d}@8>)2Sam{zmlUk@PUb!~FbdP9^%yb5FVL ze{z51d;i$Iec#`1=#<%K01xBwUQ-->G23l47HV2r_OcPuAxT^CBmpUii^pJ)_0YZ< zn$?51A<^?)^WbzbfGqtYaM>K;0nZuzNkf&)pKV{S3|l2eM;C2(B8b%S(ZUP6Dp> za5a_lM{4f^Zf*#tshcU>9jC)S+p1uhUQ=7bYKc3twRJLdz*|*r;p=@jD!vct4pgIY|7^XbM5ugKdBHcqM0n6xGwx@5~?h$1{ z%nCurl(ZE&2fi3-E3yVYh_n^Cr_b?3oD5tcj?`$);tYap3KRRQ35EKzfRWw zR;L|eaE`gCoYquAMOGcSW;ng`xGh}Wi;XIMgK>L9@ZNTNL#PbxhmTNDA2%070`7@D z{#Liu_za^IKYpT7sS3*Km|j^PyJ171M2N`PD{C-n_tK7aN>9=&>y_zdK6LP{EpezY znlk48NU!&n4aZIi9%p5iq=N2bM>YuKd8mnpl?W%Z;NBaJQ5xbZN{Pc3Kw0R~*YUup zxtZh2j|Yzx5yqW@JWxHwEqhA~o|X}Qc5X{s?faEf<> z|3lXs>pD@C{Yx3PY15bR!o<*?Pd~d=Z98k}rqIWDEn5pk!R8~C>qM*yk78eJb489~ zJf=tyJkhUe-Sea~O~xe9=Rn0x(Q*z%Vi_9Gi{J@DkN4MdIvC8cq_&log%kizHgv+YM(Z#Hi`^U;`Aa-{h%NCjWF;Y7XoadY z|5bB&J7<(#D^9J7T*2Li-!?aZgwoRu4b$#6NNA1FpjYZHKXn-+Ti3Aol<$6{=$v?d zs;p_o+pTt=!f(IFgOkiS<5@Cx#@BXv#zD5D0Cf_RK#_*@MxoE{;5p-nLZ@P^|7Oo6 zwtQMoje9XNWzT2f$6oIG`3cwE&TdTbeO=fA@81sP2D%4DW`u^1fK`L)8A}mcXsrW9 zc@d24b+NAz@26Wp-drQ(9fk<#Ukj4e0^}V6VIB*4qujPRKbHG~6qd)q$wNRdJb4J{ zg-2K*gPu7e2*&hW2M{b5P5C3Z-o<$B9inHih7Zuqh76C~e!eD`UQZPZt6J>w=BW34 zF-MST@7CX-dkqjMznIes%WD}~wSqvUMhH~FLZB)%=HSk}DI|Uafue*pxC<;G1`!AX zVx;#XU}XS^IRYRCT~7S!BFV2L-DnVL>{4O1w%|$$fc&)=WP9n%(~)M7;q#}gFrJ@k z5a{SysBl(QQg#qK&*tuIlXshgHE>2%S=iZlOvCnuO6QJ&#dsz7U{H`I;U~x-G2kSA zz-E6ir_oY^GY-}=!d+0b+=QF8hX;`;qpP@?akJ;2=0R_S(3*U}&A^XXC}waxHen^u z*474VdAahe2TBaFWF5d7o^OdO5h=*MVD(VDEV&``itYnC# z(Sno1Y907k!wlf5&Rf10}5cH$;!w@wF)w9k}V@KGFY_7!uaxc7OY80JdhL4U? z=obp^Q);EIOcoN0FdU>h+`x04X@Fk6&bZ=e8Li78!3ZQjL|brsh;^DxY-cC??z+BY z7f;u;2X4p9IHGt%z@NxNRvYt>>dx|zZxqxq8u=F&LlSaMwMx547;&lb)c|Ir+4d*| zV1bxzl=(mmNr*BZ=$?~?kHkGkFwB>c7Sv?1$UYU$2V@_%E~xrX#XO{p%jO{&ql`H0 zUy!-bkjw=d(?AC-P zJaI9V-K@2>KB#vF0cxdT-#n{HK3~lK+sxGaqd%^wDHGS%Ev&dv#J%@@+^9uM z3uk=&)BO$qJ9ZN>=I<7B@pTP*SVRS+k=hNp*k~pS;O#ZowF*Q_m@ZZepcMpMU$boL zV)eVkQs6omOePFVSAaCY6Bx-{@Y^P01jYfqp7#7por13e+6M21a|^W}qYCR>q;jwo z>@83TrO>KT12{q|gO>q?sI}xSl5Rgz z)i*SSTu_g>LGu>%ym<&A^ zm7t;j7R)4!Dg2k{?VJgYLx3@aBrrNb-v=H*bYexvfq0^v)pLhKjcIPBR$gE_%7dob z4us_qVB4Mrs#A+25wL4F7fE0ew%rNn-cLoLO*jCR@fp53m!bV@KClws0$Bekkx2{y1I07HKjm;5?63Yh^fG~%DU%ST(!LZ1mJW< zY(Sm=R|M2`GKow|)o=|BN<$Xscg2Ewo!sFS%(dRxk-G??G47&D!#5r3cQEb5<93)V zY8-N}KarFYUOsA6nd-)0I5uTRxTXD8wA1iF&=-2Goq{~2gvd?70|3}&5&^35D5gu~ zs(uvYM_E2syssWerhA&PwLz=tPHmcQa9i8OXQ4v_ZWWMnYChdO<8+IS)7@H??d{Wz zgaYV=jY3jH>h@goGl-<4yVll9=FfVeg8u6D#7u)WDpEuLKOtiV>dcD~sS#e`$0`=C zd;h(1&e)h2LqrQyCd0;DUhH#t*XHQ!TLV7XTLh;dAjz^ypb!EI+?rX|c|`K|WC(rT zOsxY}Mre&Hj(|%wj_Otn3Q43i-(YL6Nfel&F9B^XNU+}@a|RB?uS5hHwmh#sQUD7x zUQd7sfmTCrrmB&47a~AplJSG+PZA15uSNgb!jlWt#Qd`5zId`~+-tU<5?#Ht`AZm&7uQWq%f*g&QgCo~P!f=SQ1veQpR~Lg?6a<8aY~WU{$v1G>rZhE1_8_HcbEZwY)(I zZO@ddoKleC8&YCfxA?M4U*8ECiz;{{Flq3%zVNp!zf2%~;iDEUT}=AIf0>ZR^o3u# zc>VXJFMJvbpd$vi{(B&CK!bUXS%CxeD6!X=T|{ESGXYgq&c@iGki~4T<2ksCKmsSX zFMtSkdiz?xtzv9L7KJ%#jB?vRFv1h6z@Wu2avSRa2{v6IXz1#;8UeMXgKU7jv?6SY;NScAx{JZleK}x z;F-5D$J#Ueq#xCN{exUn^*rd)A)y~c@~I5B0y)BFA%+IR^(Gy9-@)D(QwA;JL}3<{yNV6HSx+kTolo>D2N zRgD@kMA{927d3plf_xor|eFC3tH9!uP~h5p>qcX z+bmINC7Gn9_>keaZz!p`7VAW}p!B3ASf4(h^UPRSl1 z1j6=KW<3`7qnfZtpeEVWM}XfB1r!};`-Kp6-NTeUIid+qtZgm`1Co{)+uNmd&q_zC z_Z0AQb%F&NBJQnRp%mHB$3ZMy1(D(?dMV~>fEkB)J-OGmsdY9?{1>;fKYdgPTm*>5 z7Jxi%i(%6@Ho~5_FX@Qz@g~S-^TExOahruB@0P-E9oN*}+)59v5|#6X02D{iS;^vE z8hVo=2Gg4k^hKR6SO(3_v#jbB&~mctZh5{$*uOCZQV2D2TJaJagv;^lhRiAU)8j%1 zDX5Ae6ppruO>8&@M-mrcfh_%yiEKZ3&##e!JAh8_2_d4RAt?cKoHdGMt|)c6a628)_=p$7upvZ?v?e>L$07O$#G1#u4o%;cU?x!&>{Q3Z1mm=Yx^ScNdPtuxWm5%TGt9(>iV=AbdIP$MCnSA z<}t8yfZu3rxk9)nZRK2{YKL24f>k>h;W&xe>_@sxBgz&Uvmft1mT-hWA}nZ<%14^8 z6xnBND!(he-=%E;HCX_5YR{%^)v90<^=A}8%6jJmNb3+P2;OLq*IwQPeL z#%vH~OA8)D!$jaHkjZ@)8whQI@if}Y^qKmvjqu2{b%Cx&F^Ga_?sOG8 zw)(S_bP<9S%xh-JD)2Q#0+#@8Xc^%p4-g1|m!wE_5qz{=i3=Tj{le^G!XTI z9REyeaV>O?gp=5+9mq|25iALW)GMhzx(R5+0Ze1=R{9v=vl;*sfssOTt<6gZF}^0J zvB6(D`UNv<1)WImJE6IELi%0{6ovwyWDb>p*}QhYn50>M zL_D$Hwb5cAml>EWwJu<=y6ChxQb?=ZAAwqL;Chk%7z1J4z9y~i= zlx4=-Ocb<;(i&>3FWU2vQ7E^6AVGjq_yV-MsXVOM1$pF-c`R^3-G$1^XnQRLWfOIp zJ{7URyW0sq8&+=KXPz>F$n6jv(toeuew04vk=WyFE}UOas$?Pm!d~L=33dpyY0W&K zZu5i;k|vs1f;70O%L*b_P#g&#EIRleoEP#+ku*RnsV$DzKEjH!1vK2A6_)#;mhb#l zB-1xOhtQV`a_$mAzKm%30+4z_4BchTXmH@7Kol8n){);aS`HKjcq`}|!{|Apfvb|a z8|LfaFn0&(-l%50=^G4hdL6uoL|j68k(|HB5AMr@!ncBd9*JQ${5ocZ7h=`6j@o21kJ?4)nf>Kpb# z&dXMF3bN+FA_nRJ=pthl66Rjq?iTBh45m2P=GaWi9jZ1q&7krfNZN=bY=e3h&H76FwEi_)b-Vd7dVy=aVW@=voA5H<&x!j0Rhy6Tj4P8l!&&uaj#gi5 zXyEpOP*$N%>+KCrd5nzhzz!>S*wW_c~& zuxiGt6}~H1S$(_8$792qk0*R(ZDVb3&%U+SKf_l(oa3V?{QJx@z4c%bH!Ar~8!;|6=_k{m;3Z1XY{rLPPbdrbO~N234(6=-4n;HBnV7 z6E}Lk3~6k%a~G!4_AyRX<>CCLw33v=ICM%0=HQCsKmr7|MI>zS3S%0+O?z0bOq4BG z)?RGU>y%#1?g%n*4s7RTG5QE3_(a}Cbta_`wU0rNPgJffHQ3xjZ*r$@Z)V3#<*whB zxWsr{32$M37)X-DI|xYq5EQ0%ymRTv#rJJz_0Hq0R6Z(#iIKw@# zeTI`1p52tOkr%rh(bvYPFb-?)E^2iG3wtV33P&}3>RTKN3L+@*${>QGGj(nG*YB2; zYD?sHi-Kl+kgR;QPQ57=jk9s&9yK+_lL8EoCPSc_DqBhi>gFUP? zdfnW0Hhv0R!xl!Q~21$a+h`}xD)iNNe*Mmyh!A%+=bnZyn~6CMywMg` zNq}cIX5wIXg=uHwPFl!iAY3;5XKyq>Q(c>(gMgd&!Wm2cyFO+js3tzUERP*7)=%^>Q*7Y=v2JI$T@(%$Nf$P&d z5&;B(>t&`cSom-nmi&1vd{_oc-YXH%l*{nOf+c{aY=t)_r|eJ#^(63~L|=cV3Y#yd zaUQWCeb*8SPAvA!<~9rjs5;3D~Eia49<-A73{<)Y(pzvEj zCF}@7OJ`_sz;7m7x;Yg78&v_`ElAY}9T18#)X3`p7mYa7EwEB*GCF-2sRkA6G^&4R z0SykHVH;fGGeGjeXU5P+IMDJ6o)O?~=7!kzS8syNE2I_Al$mzPTqlIQe4+Iy993P- zC$xj-m2c7j1P(SD1$#QElD_d!xPj(x&(ZwgmFb=j$}V8{pL9)I?U@Nw&hq z>zd~miCJo0$bkL~ELgDmD8WRI9X8LD$J08BL4pYa$0#kop*Gak3d=MT1qdXAN)M?| z0iPe0n2d=`qYsQwqOrJDEZ~wIq*i4011D)VhaO!GH4UPv;Ok%oPgYL^?_eiLk5t+K z!gmzwQ9-)Q8CuT!!Hu!6VT5o*m%$lkpJD2Lq@?agrpRNnu)92cBR!U)hKG`5W`S8l z2vcy5;-)fU7wuM*>giG}RVh;HCO2YEb7&jMI@s8#tapNFpHOgjM+Fd_;1IURX&w_d zN!CSS`56}ezgy(O)oHYbx{G-l8Aa&@2ET^Ims5LX?OzDsw+DvtiBFcpKN}X;t}*3B zveBuFI}f{gD#rvkiAjA81ZD4fyCAQoF0aj?Vf>m(&DeosC%jp&u*eq4E}_0rK=yvM zgl{2$#I?QluZ&ZgG~HAc@)QZUXVu7q6&l4b2ssYx+`+JOp*rbJiDb*2Ua3@?ke#kC zk(OZ!*5fV3AP}r$5C*YmE9b`y-80bgBXb?eD5l{#gub~LY1;%!!lF~Sc4rEdkQPT+ z8VDtkGE~H*$bp8Kly4kWyAla=5VWj#WDLf#v-&{DQW9MmgYm(MtbFjt-jvkfX#^r_ z%wojkF!zCzb~;rNuboK&qymCWaPoj4Q?&-9ZGiMIGt%O^x-IxRc3Y$}+k#(5ptE<7 zQ)?580I}QkGnt`AY|uCI4ZD3OgeH`^%!WqnB)gMunKjG;j7*qrxK8a!4RaE!@xGIE zJpQ&5|f&o^-j$yJC zMCu>~yfGqmfLRJ6b%0q4s9-olvJ~u5)Rw6L#`*_Tz!>5)AUe=MYvf8z|0rM6(1cQ0&^s4>1+_gn_rY@~wLXc9s>1A&MWX;;%1n(XSxTrX z*BMs+F?+{os7K06{G-=TzpwXvsFG9jbz$>Q?D$q3JaDr~@X)aT{gOTgweEZ-xM*Hk z1K3dWUEeAPpT&(~u*yL<`9tI`gF&>6oKNQa$ zMjn%pkp7$aCK47iEM62yAfW|{uSH>vDG^9Oh5`{tz?g)T`5LQXysqhR4r zn;0c~s19@`cWFwN62PrEwTi)hvY1pW8*8)7nij4_OS+Vg!PYpvZwJ{hU|_im+{RFS z79Q3-PNRXs$cEy-G#DCyGzZqj0ID^S=o3QSj$7m*JavF!5Ih6C3Xr(T9M*#d2M9cr zdP1WEV{Z2io;XyUvO)VXE!1gbTuMegC0yedXLpDk!T<$YwOH_|u}tFI z#jGcXcvJNQ6J9js;^uZ#hn6ZcBNz)molESL5G%a?bXbO717S17zNtFx5Gm_S4W|im zGpY`VrLh=*);OyV6bOl0*@25haT^YCD=kRQuuxEk6e=ceY`Q^dH6YPU<(?EwXx9;z z{781h=rm@;A{qTmJc&qf(wYJHC#iI{FE&+cYD3-7{}#oQGd!E#!+%R@jWZpG5raV6 zpu0k}t%VvnG3hElDAWc28sb=7j(--I3N+juNQZDxV67Q5juluthVjNMl05M&1qzLW zAto}VL9VAY5}AgxX|z1?Q0iXGk-xnj^1iQW#{PxaS-uKiF%wNu`na%dTDvBpr*${0q0qe&P9ao}hY z2En`cm}hacrVmPRXh_lI=8I@lXKKoUc6GLCcD7~gY@fvgoJ{k70hBuMG3f4c327(P zxpuNA!v+-yFJUx2$XM0!Cy`QJLr@7LX*HqP;IJ|Cc-sCM^FBQMO~luq)fjf=KE7fh z;e2!O*rDWr$sg1Pg_$0I>K#Iers$nQmvIb7Qnjo^1XC7dg&_~@But?Rv^v#hv1TgQ zhf<2NWhe*;#0G;)+kr6S(nP5BK$wvTb|TEU9tAtu57NwAU#+VB*%RRcQ?~YFl?)FSY>y3I zb|>l)x-z*6p_r|LrFtEZx%+FAi^1auRVOrp`vkx_GpE53YESvPojPXl}>=2 zFK6nS))?*r-gpqta{ckD>TteYGT@AvcI}7YTwuj^pq8r4Rk4MgtP)#SXIjn9w5*1m z=^L2<=G=EeH8m`Ht^|@$lbFJPcdR9o0#J`aIMxVN*ip@Ab!9b-u52f@R&*U*dmPf; zY67GZfy!og3EGO_WHjp`F9s~AJ%P%56dm@Y-lmXU#Uq)#(y7#M(7$+=I3E&BI-M%) zsmy>yvJSAQyI!z_1x&XXCgLi1;|5GGVdWD^FX0D`#q<(ZK0$hkXUru;FXwGX)aA~G zc2Sp(r~H;kUcRXT4oa&gstB$~5EiDu3U<;9Kq%0M0#F5_q!Jw~EbK4R9|fw2exBi; zlXf<9m@%X{IPki$@@x~Z`jjCFK=rA9gjO@84-G;bkTmlA8e7N@phNl|Ap8NXX2KCM z5a=2{6RYL5b!00)GuphaZskf8^(ir-)98zk{l?OK(5>WXXLAV?>A0{iQrk5l7$*CT zxP~KD8LzD%w731p*g@JGz=>T+{xlt0O{X73Ciq4|He;J3aOW-)BEv)JWE6L5)itG~ zb=kTE|4rCsEWw9^O_0D0U8PvhZ~UFA5mEwLFIXQ0g)={=4#|A*a`82n!M+o;F5hdx z^@T_b+3$3nT<-aj4C4jyr(_tvV29BWc{)g(%|o8f?|`4jLeeu2AwmZr_`vmD%Uz4t ze@7t0p@~mU!!$z4@R$&IaNspBKV|P zpkWMnhw4O{d>JDxYycw*bN%UGGS>mR232kuyPG>s`T#6}kr@#pZB@x+%pO(p?C>|R z#>FUoY^agxo=Ir3YoM-Y7|3;C%$d5CZ$bPw2Ti*e5rjEmM*bXgvKR?VbT9+DyeVV= z#}$clWa0^`fp7+3&`_%lrwS6kV3w8flmJsEARR3ss^DR55D~*8gf^6+AUrrCL(#kw!lqMf-P;uP^8zjyRaXrjj-BXk#u@rN z$p)n`F{RgJ2J@qC%m!ses(1Av19>(?0x zfvK##}%5Rojh(LS}ZS#qjIt})Z65Lk{?<7uT%1q#e0&GZ*w zba`R{2!iH@SkWPFtlEeyJadFv0{N6b?D$Z5?!vM^+sUBFXl)RjKbv$Sq@=c^efQ^P z7?O%m;7ewhAw#3?z@G|b!kG8R;%Z0JPy9F(H&A9krx48qZjD67HH18_=->E2b&1Cx zrWC*EzsZu-+wKH(YXP+ji!_nB)#wqPq(C?_2C4xo!LgLRuzBnF>GfB{YQ!{^(lQy= zcB5cz3&33VULr`T@?4F}k^WHQC>D-nPH_8hQCtnB8iz4@rr4)_;nX zU4<+eMjFuGW@kXvN*p`F@GKun5y1K{F zZ8P$4n&HFZKe(wpPGk}I`1Cx(S6J>F%feMGTFJ^LwJq$-YM@_}*);^08H!OskUVJ2 zveC{oDl^a;y`9x0^!zEMOg;i*B}0i=9(M$Zl_3Uut2`J+Ln0L!`KWO{rPnve6xW_E z=qp_JdZBVrW5(6^A@&bmo+?Rrov{!RElTtRJ_LLwF)-{uSY-SAlc}aKX~u%pepO>m zQ^S<}uo`B0cAPY;Dazdni?N7$Oq37*su`!7%{W44epSU`cDlO0%7Yb+x=_iAzACVt+08#IsEYE(+}r z!8xkxh)@)6e$EV2&@Y%v#B@ASwi!WNwCXQ#6pf(Sr7S?e;X4v4EbZJdGc$6(H(2xLCw}1q2#Zl1mp^NsXNQjsl zbU%2Y#9GBxs3b`^BIwx8wCYtR*nTmCFXke!(LqDL|DsbH(K^M}2_zmPI@H*51S&qM zpO^a*yeW5sj4f9uI~akns@GgdS{U>i`X9c}GWM$$I{-Yk=p~5#B_!0GfZ3D=-JMzi z=$##ZbmL`~YY>TW`f-wQd~=ZdGMq5%*_LTi7tPSwmQ}FL+qxmh29%x&6CsmD+PQVZ zx;bYcxSck(b0cLt?L;+^AE1*)x;dd414o?+zuLFknr4&Rz&%*Mw`lQz_vdXGo%!CD zgWor}M8z1kl1JrT5y7J!r|j4`(k zDe17q+9)W}wEU%tC@7+^082H1v0(bQ5tt5-C1+HWBgYad$`L70zFKLZcya(h#9RTN zd)=i6NwqbR-GJ1L$Q25)Wb3i!SzG~}m&6GiSESI1G@ z$8ghJV|f{hQVM?KrE)OKW`P|FFfGtYv1+T6oGKB&RKmylP)2>dcH25QBAW0H%@vx8 za+;1i1Z@DOLCOI^Yk**2I~g0W0*-L_jBu1%Padkk$`i(03x9*+IKfn1phb)fDkKK} z3K>*E7N|1mNwcrLx~HwU!S?}(=#ZMtqI9F_qEU#~9V5cluv0Z4Yz^(Ho!~q^OBtvc zkhZ|1!Jd@(z(HV$Wcx3KEte772hIJ&l{WOhSe;gOidlG=>7^j{5f76T0mC0S-x!2< znZjJhGYh77`cbqdS0vr47WB;$E6Nh@@<*rh_9|T-=_b6+lqb$zZ)jMM3wS zZU{qkK7k*E(g<@BUTawmDiHUr!4)rnuB4<|rbS~EK4lA-qg*XU@s{Zjq(a6F!1i`4 z&RW)Xu-h6O;QkQSf~)S>gt-UkRC@o{4RD$}((Bq3OgO@RCaT=nQ`81S8Pr1c#n6VF zT^QP2zNO_Q)v*Da8S@!UG--pA|^;sCYscZC|O#t;f*N4caA z7&tZUN(RSKVGPd=y-yh)SH$~7G92+fQ}IdgJ{i*YltO@9ksl|^!!{%c(Lv+8VtS`s zRU?B_C`x}go#JgpogSsFc9}2fcc#gsS#BJ2pY5P*TsqV^!C4xKlv;zpF>5z1N?v>+ zP5|c=QoDOo&q##dWbwAj0BgXb9bg9J5<>XdD)wb2y!|dh{1C&Q#zyD@(xL&E)f>_3 zUl<{s6X3xTMV@aH-Os>s9+L3O67XmvVEK+sf#p5~_W>VtJBDk+?6u?!Xss&xqAZ+G zd{)hW__oPP5}iiI*T6=H0x6)lL2O|>fLirS(E%$4d;(qv-TlD9jMTQPXKkE!CF$-5 zE8uB+HP=joC?0mx?y!Mdr<^zvmSD(6BAsUH*2?;MP$^}m8KE0n^_ZOVztmI`6_Vzf zU;?cw2tq1JHR(JNrvLoEIIs=F&q7w=pT{7p5a;~y%V#=KeEck@4C;vED~C;k2X_1Z zvLR7jY->&nnL1&15D&aYI(9r?vaTN_;YlS+c zgfi%YYhMykxe<#(hq0RGnyq|J6?9qB#D-|+VEoz2?~B8-apSozzO0W@eyf z0Wvc!+haP)cp@mvmfB+zI2o#v-VV7WJa`*f2^@4Y zS`_Uzna~PIQwC6Fl=utOKYgPbCjSuuxyY*AWG>M{F26`pAT6^*>Aui=8TcFqRJiNB zyQtx$5}ma!$nQz3Q7bi<^k{9{@3dj?0H zxm2xT+LUIRs4Y3%N**EnAeO z+zy!qFdpepy^#O5?z=^~3KEe2(Z0GlFo>u>aMKvcr(xQ)bz zR$_4a!EgbpA~a%=S%2R}8H;Kmhz|%#cmnHkvbM{@n$l{WCh{q>v)k&BSfQ#GvIMYz zl&}P_fRrsPdJ}7P!V+NV1}e84i34e3eP1kRE3hE5QiOv2C6Fj4W~db&GIfvKd%uz`Jl8qo7=q zE-ET{cXkqWvA2-XkTLz1!5N=M7!nlppag$|C2#Om)zG5^4A3irrT%pdm$mvyjjvmK zWo(8~rqkFC!CeBmBZ&jjHVm1RB$jLyNFs3<00v;?WU8K9^lb0ei34U_PVjs0>CN97 z567n_KB}YRl6zB@|Fr&m@E)u8ytv(Uq6d1D$aH>5Y6U+ruBls8(oI7^(m zpW9!`PY7KAZ@7_qGw_vpLqw=3bd-3H?7HS=|5w{WKjB((ubaKv)_AhiTih@$Yme_!$7j78 zW@YWM+Aq5i`08-ued>zdUoAXqIIb3+hG0fs#XUujsshQyNjj%>h7WX-M*yksD{S$y zEwmZ)GFV$Zn3q`Z&l6)lsQH{d z65;F45)7A(mfi4uYV#`d)z;8Yc-O6H=_AOwI;wf1b|2Xkkl)Hq(tqMniR)?Q7Mk{Z ztemeoth>vXXGPKM-Lf|yI)V%Ln_^rIsoSiILR?-8$z30UcXV*qkxk2i4CPr^L^!hI z2JNAj68*>2@1d?%VIjiCsd~Q}XTfmZ4d+)b&um`p4;>+1l(pOUsd>XR{dt4fQxu@r zsbunqbK{l_PCULOV9BJ!LyO}~O%sE@*sXjTwRqvVCs}`kVP>D=uutuNI?DKz5T82l zzGAfX`C|{?^5~Di4ONc0dO=!^gGhIoE*1E3ZwmIx;464M8wJaFu0Wuw&fLSj&KXT* zU8vdz4=&TjwP0KtX0IYbhx06XurMM*PZ`&OacOiuy8Epp)h{)ZmueDUjY;DakAkJa zt_5~!FuUtMFeC=ze)wH2Og8+4`yqk$sNyci{jd&qMgi;xDCRDr0;01XZfdj~7cCyI zKF#@O3UE89s!xv zw02Y2jyJLG9y3)k&(?dVbTa&^r|s65*x(xO#)q3$TiOncneCJq^TVN954VFazYQ8` zmlAxlaint7>cS_Jo*({U)!o<$`M-H^_0G1cn|)UH99Oya!C8gpVUH8pXD^@4%cp{# zdmeTkX=`q4ZkHKcW9S7R+S9g2%rwc#7!_5Bx6;dYTg*JW0KqaRjq?@F^ry(O{RbdWIJ7dNyD5H{8e^-<)fYPz7E-3)$O4#`vmp0bEvJm1- zx;=hD84OAAx_Ynjl)Iw`#(W?-9;8BLWe87IGx$&SlneTL~l zonzlwy@tol<6ld=>mMS?KY96|%a4Eco8%+uCLfr?UbcN>W=XU^uaB0iV_>|QtJ(%9 zt-I=Gntbh7%RcuB0Hzy+vZ*Q4BmC&@2VRcCFA|M34tdvZTREldB3h*Vjt(L*jV(inqKo* zojBx<{0Y21Y~I#+v3or49FpXO#2oDAv^oCX`17wm?>_6j;Ya5!j6LM^AS4FAJuE+)2N<5apA>m>DGrT#zGt^};9 zYwNbPVqcShZ7oDlD7A{M2&jn4Sf%0&4)3p^Ou+#VL_`FctCTp47OS-ih@fa|C4wNx zBm_j%8U)HDiYOJ3Au2+Eknrz)?!9q9t@`@;eNEosl6N`TXAf(yweROvbK|>&Zdnxp z>XW%&@7izmhx&hZv8}8|_3(xzZH$5chwyzjW?#wJYGYup zC;aW@Vccqu=)@a8EV?+>&G0wob>Fq$AIBu_%OA_zZ&M3u&g z`;MlJjBac7JQY2j{=r;VE&btXoST={j*E32k$Wd5AXL-c<3uVsB*#A=wRvCOWw);^ zcHJMj9&AH+nb%<=4 zSlsF`T+AK4>nE#ayFDlDkfd?{jNf?kLC*wX8t<^@?@M=G&wLcq*tniMnLAlMV6qSO zDl_`P^Zn(Q_XLJ|-rg-SwXnH3+xaWQ9c%U*JTQ1**c;nsJo|h5?QvgR`272C7yk6y zS8b;x7G5`pE^L;L*%K+e+cZ2X*F9TB-;JE}oqZZ- z>eTD*HHr^aojki}LwpeYh`bx+{(Jl%yVHzrKB%d<_g@#|3DHNaGc-2J=Jsk@_>Wo} zCgMqhG?Tg{^P_fus=@IzOkZ?jzM5zF+H>>TwyYKG_LHrja>mIGKH1CA$j7sx_TGUGnYq|8rp6YB#-+jozdqJH7VMXS#= z7I+yx@#3})4!U8K%IVsY?RL0E*@UOFc1rfaO8qkU^Yuq+j5eC<)o@{vb9}y4;qDn? ztBZP7Gfm241R8#2F>7q9IGOGui8wjg~cQE2qv{Ua?T$%1{nQTMDQJ2Vs3 zHKrN)czu<R7p)?8@6d?w z8dh~uuxNdJN#+FJl-3hwf6;$p(w~~5%GFLuUCqb4zL~Ff!d*Z0v#uY^+!9+FxsmW# z@DZO;-_Ha17`DdnDc@vk4893}*y2o{iD%-iHB&sdww;rDCDk>CE*R1ZPb+cyCiXkC zu6vzxPS=$^47Kq*7xtgq2X9YNuX1yVFW!Ag=B2xT{n1_FtL&FuikPUpf4yMWysPO8 zFKwQvd|I9OogeRc$Sc5AjC|;-~!q8^g1yv21%k zC_m=h)*7XtJjZiwk%>p)QvyGJEXl~N`%GiJ*UAg~s3T)9<_oQ>=G^>CxoU8x+t!-* zGo97i76#>eRV@hm&5ZgQ91pkUit}?tzlQ{#%AQhk<6GB3OEi9QI~u?Fy3z?FgB#z@ z8Whc$?|!Ez(kraBNYt^s>at+p`uL#XaMJMID0k;$oA)RgYy47k@w-7IIle{)shcB| zjMbYwo!tkqIKGA@)fY>ZRMnf@j;3rr&N-c!-PPP#lNh;FdM?{H&;|ba1YS8u-KSsG ze@xt^<&9JD4+?D=PMgf`4>UeE`o?Qm;FK|~{9ES|Yd-T6detmxORatsytb=zO|0XZ zr0vby-D~Ex{b=T_Qgg~LUsEuo?Z27M8lLeEYv_Yb_Vo8#f{|%uULn0JOud* zZ%-23kf-N@zmiF7>%d=y)z%%noj9cRKS8CMYiPG+RK@B#HXb~MLCHnuLCZC&+??Vxaur~94t-#Dwa9vh$PQLeWz)46S#N99R}qkefcsTF4yWq#YXCDr59 zt)2p>-0YkpQCaR3?_-;zIG$_otY5$-Xt zh>Jo^b32P7Ht+se?vLt&0eYT`GODI4J4Xj5bwGiR8GX zne4KpCOXj>+)h`vU(qSNMR?QrH5zuEhyRf^RmwNr;Z4jIFy*vzucLmf)a9pd?X4Lp zo+3M|l_b9Y?I1Pv^s0+-oDpt!W(-o(n0jt=(WwGo7vpKs6W6BM=-(tZa>!cfC{SCw zgz_tEOj>`8KIhQ(gM(nF-^q~}29#5EUNDLtg;Bt#{o1wI1f8SbZ_&>jy@NF`b0Rmz zpXHnw)FpS$)&JSO>iwWFLEXW*<2vAOzpp_<*?=B|?`0^sQD7CNF{h24Ix7ZN7)=Nrz*8#Wja2t}o2|uI;DPNqZyI32Z?W|vO zA}tR$GPAldS5UOV!trMbxXf%VsyW>CB&U;&9pcvZAncW#fq7 zTnm0vt##(ja^fH|sVKVC1kc;ZHAC>0@2!qq6&oqr^nd0tpJ_}sTH|H7F@F1Qb&bhW zehr*bA!@Je=uD|2K?Xlv5oBuqGhlD!Hh$TEr=9(9`cQm=j^MWojzN#*x%zW@W{kY1 z^}eNVuVKRa%bKZbeixN%e(%axu9_Z{+tw%hPguo}F4=|t5kF6E9V89C6}BfdiG!yO z_8oli@-+wj+Z-FgUJum#?T{%6sG3PHL7-=r7SKyWx=NTOOKGNGQsk#y`HnTEsacs_ z<|;w%^C~}enB@CsRciT}zvE*iH8GOjPTwTysg?rcv({&pR1CTaIoYBhXNZqxYxG-x z7}Om*N*j$zq7kbYSp>vuGNq!#**FUvsQ7W7tM=PYm_iQS#r}E zg7{iEY_PKqYq!E-OZ$B!rXTOK{llWQem$Yg|aVxd3+5e2q?PME1Fk ztD&+n;_eM$vcB)bMi%T=owDrq*iNgBx5jFUTC8FdgB*Hqoy@-=IN<=P1tf&a+xVCe z{%(eGLo;;YVqcKfZ>Y?IXV;TCMnJfqQa=|YB=oeHKzv)VR; z5dR3^^p#r@Rq4hw5fvX~Usuh%D&`1T(TdCH z$s9FWe~dnt>j7JWhpR3%D5PP1(zy1{mS)GGra*z_>8&mMHeQ4b$D~{tv*)eMJr4?U zR%wg(%Xh4rXY!YI6)VU+v1Vg+=O)Ll#%9NZHIr>sDj@r(zHDN!Ud)$$5u9vLIr*}a zYFH-DL)v6%Z4#Y6JFP0oPT7Y4RtQvDrNI5_%^tX$}R& z@q6=q?2uN#xFFx8d2N|s(j3a`E2U~sUZ1mO3VQt!VA5W;CI@S>El5@X2Re0nCEsB~ z8yx8HGn~x(HL2fLDmiHQjX&qH8I0Vhb(ve`2M!v(YpYUA&J+q`B^M}XCsR1P_cM7@ z+7_BPLrpPqjaJp5AUCa4+F1V+#M5v4uL)1T^?3A}%2ncf0o8cE*DQ63wk^XDnrBo4 zA=IeKD)TQ*OjjanXxGUb(t0$TcAYoPnd99`A8-Axmmlxun(39Q4$J-8+~Am|HPs}0 z%*upgIJA&T1f1~o6 z^Cxd5`_1z3Z?CED2xx4t18U9f=uH3E={`12JNz}*RvqT`2WCmuGNa;XPR&aOV4aVR zL;`88ypcTpI`M^`Qb-~;lYXaXK9I+nGs-5KUP!Z4UVMsg9q6C?!?4Zu%v0e(c>U@p zc{mN6&i*D(fM2TO-+J|Im>KGt=<#tX$d&-jYA*0-UQd{-(-PeTfeaAlUP_uk%_?+X zt&vPaW<=5Akh;)*IZQdugO%A&v zCrkTfOYo|{M}02dc~@3>uTgqRA}y5c6sy%GwaD(u>*e*Kx1@zKA^f`_IV`;r@^@&Y ztg`=3u63xqr=za_wo}5~Q;UBK{O!S`gexbLZT^y8t(4YIXPlroAOQ3I3}i>AXFqT}`r6>L=EK{}zU1LObM7 z+5Mb4>2=xt&<%BBS$FMum@BLmrfE?Z8Dy~o?y)hnR$3fVpX1&C8}JB`SY_+a3>Le9 zoIzZyZ~$r{a;?su`6e`^Amr~HpZ*6fI$eZ2Wcc@?1*0QDKj$yaKWtXAqN0hXb?ATlR zN45F90}o}xInyoKLeKh2*SVIZdxZub-SS=h1nsT7u7@p?;^W*-@_v~a9A;&CW1-OC zaChgSvJ%552G_pHv51dzZ{q#p(AUf6vH24o20fJCltkQzf4pDT_VwzHR4Z6t-?@#| zEQtubn;&pDzvUCP2O0K9>r1@(ajKSOM-7_{p18QF?^hbh&tX5_RO)QVWsBF+ zg@)w@RW1hVJNW8K%h}eJWhKHpJM-M#)C0M}6ABWwbHf&d_5~C~*s|-h?qnIT&vJiK zikr^YR`bO@k*TyzKai7e{6E7b>$xG zE2YIk>W8k)4LqHw=xaBMQ+yu_qKd8WH#OK92T;H8SU1|Vb!BqYG~<8+);Z=Z$B!Jh zt=Dd6eUrX-3oB`s{X#pvlD&ov22BQ8@_99lu_6nk(MS(l*)96sa`nz@W5-=tbJ?@! z=6dyC`I<^j%wMBz>9~s(w2%edtc@EoxiT_}Z$}-8Z<*R{v3HINzQvgL-e!Pro9x#Q71Hvv~oHT-3^QLoFlv@97a^sZcDCvq|KC|`0g@S7I9 z)2_P%AN-#vNwkZ9ERJ8_o{$_>XkF2ipcnmLzvQZ7_2}~BQCF;0P3+>MF8D64E?%t@ zI=>ocwDEqeQxmJ}x~bt~ben>05yw0s`FIr_=*s6E!9*)s;2 zG|$r+86BK`7mi?Uv@iMPU~ap0@4c~lKa!KNM^9}B{99vxQo4n{_yC>p6kGW2Hnqeh&+W#wrDvT5!bVz6)7}1Mb^WPhkr;yxpb>7w(L6U#RZO4V+-e znH#Qb>BR4rzu&zv&&`1QfrVC>eu=Z8?QYi2>2BWY!Q7P-KH^x1tAsPQ;6Jfy4o_#5 z@5BSvN+w^oChW4lR9ft;6A``tMzO8&@YV!D)I{Uq^K`=DG%dE$S<$>w0H^6n(@NcF zw%_8aIm4rO9goVh*7SQ!|E7vb0J+Sx)O$Kx%`q~4Z<@WEqnl&X`ZzJ`A8fhjIiGR* z-}f2QpZbg&StU<>MtwV+?JL#~npWyX&-YtgJ!fR}wd3FdzA-r!AC=)du^NngqwmCn z;3-bEChW1kUs~*<^K*3hjpAj-cCBz?jE(K)>Fk6Pvv`({NAt?F)Q63aK3%ll{-dIZ z%29eFa`l@&Q+vD}y+ui*&*nGua(S8}8=>?QHJ1rLc5La$Hz=U}!U%q2%lXOjp1zJo z(BJirSvBJj+fFa}SnEPR{^i8v(}`zej2=|aGdtXASW#wW7IexrCFW9K%}H1NPS1)m zI~%Re*5fgM1{$|C$H!!s!-u(=g_Nfx1?E^Nyy)n3?+?*b7AC(KO`7_vPahmMZOd0X zj+uN@dhHfGdGJ)z9I=-1@fp8m>3e?Zt#fz%(0vE-uPrcGBdDz0$%nBNhQSsx_@q+r zC9107H-;Mi2&aq-QE^+IYIxaR!vu&QQ#o@icjT!FEN4QFvK_!@ig&#FQP z_CfxMxI%9=%Mt^_U0jz5A95^(+rTx4sy}XYecU4cgq6Xan6cM>D4s<)XcNj^#)3Ed zOc);}&ODLl?mfZOxJSAN0$t(5rUt2(+f>65)DquP_=zwj>JrAB(mBhG-7%_s9ewWj zYnOV=hpFvgjb?S)Pu&yYqnj0JJ2gkQWTD}H?sb=RLqpDZekNBB9N*4*J^oRi8+Ss1 z%SY;b{wJ2Y{653-%9gT+joTvZ*>?70^|nELyy0y43wOVSW8}VLm`=Qhb@~gYjp&^$uhVQDQVlu6@VYZG4^9yB@X{A(FA++A(OLB<@LDZ;d(|J1j)Met*;;YnU znZA#cqsV1?(OIqJvaDw>lic#=r5hw0h$1$eU8u$qk5awvp!$Z^%kAsz>@^71I=gqL z_Ewf~@Pr1+Y%#l_tk?~bNi|D-KC$5^E?jkG&MbBcy}hRFM;-46>)WgAu{VqF)qTJ@ z$TvwAaCbrCSpWgp?IZOW>@@BX@N9*csLfVi%obTI8TW)9hcjksGQ6olyp(w-{TU9} z!`78YqjH_%=y&3!V6t#HHe1U>BgnfvYjqR%QYsLgjT%G68hWWGv^!#O7_UC0U`FnN zh&wa9wO4A#uq+{4+Qw6*jd-heuA?E|Z&*yIUI|!)HcN4z%x#nV%wcYuF@ULt!#JZM z>0nOPJV-xX(sydRan-FL)7-+3;}t+YVZo7iOzP>B;OQD}|IsT?R}6%e(&{+}F>FhhiNqbGy|Ftul2n;kFM5>+ z15=>Cd&U%~Bej!9eAqQ%iG|ihN&fNr{E}{S`FPyZuV25X@Fk~2ZH+c9Ep{}nZiO5> z(l_~_wUG&A)}x|Zk4OE9$-``&pypRxR$V-fy3En<@m%V%gV9;|X+1gP^oFU;Reg|A zvS+YAZiAcC%N@d+P5mL=a$(cGx_((>u2`qBWoGs9))`%m?)$REV>9>P`YEEQ|9UW1 zP8cKTkU_@?CS;6&O5{@^7Fx&R3cOW?$K%}HCe#*sLq)QT?XQRtbjWB()D8_D15>&K*P>apwIQ8{$^Q#j+ZmnlFtN0wz{~ zlc8e8fq#q@SYRzNcAuxS8_vkY<56k8rEj`~L5BPy2{Pmt>7_b?CdRVBTeM%!S40UqXwXrD2^x%ZQ0C0E+zw?G?HuY$ zOAOC(+ZCa=KV{L7;(g<$4gGH2SL43=;Y07loc_SM51Nx6e{o>W3V!zB<~hO=1DDH% z-WD90^l)E~e?h(j+dtjFeki0M1L6tPTl1)RVq{WH$CE#;)2Mg?hi5#-lj!IHar3oH zxqT54f#^iHfD>();iJ7uJC-#aogGw7B(tz((|5Vokj)tdflg9p;FM$|1Q+5zp%#8+ zIv78bO3;~wA!jRp6d!6m^v0M{V1}`J0vq?Ar^)Y@y(icEkn_If9clNv%@95oW1fbI z8Rlu2m;pKfDMulkGWs>V3SZ|X6aiUS%kIR%%#4%_*RroiKCCM-V#6pj6$F>YFyW{c;2_|sY zLeWjpV8|lUN$i7Qhp`WXT^d&z>}VWB4d(R-x(bYim|f;T)PSG|QNs;A2EY{Ef?cLE_$;Fh^%Y^V20q zztXBXQP#JQM;(kd^eat>@^5Zf1*glfxxv9WpnA>SevYPyXro$lS!T;OJxV}ALHn=XMW6|-PWDj>%YLav5+@-^YYT&;_B z5l6M1$AZro4`9%D#d!WOEgKI>8)Ru!E>q!Ho`GDKdG#i)I0b+T5<5u6MM4agV^oMa z0FVUzbl#2(;?m# zk;(NU31%jDhf;iA0TlZHr_E=la(|^ui9exmA5H~Vh!fgWtfZHwVd&6~K5`r~O0r~U z{Mse4E8{jz1q(MvNIqd{g3|;imj|T~IyWqZpv*v&3M(T-Qm`^ogPMzkjt#H$V9OY1 zU|ELsMHAE)&m1o9dI4@yZNywHJ(_>Ukp|iO|1l1P`7XfsZy+8Lu>gO9;@>_2k*8 z(NsN2FTp9ms0hHNCIWgtS;riQe2j!lf_d(Y)@`Pc&H5r2@TYY!gD-Y#7f zaTK={3rr}Lp}`tw#dM$BAc>cC^jfZ zK>Gz#wp{vtpTkG$A1D<`9zl^Y-O}F9779(MECo<^VxhSlaUDB- zQm^HM3FQAAA+@g}EJTR>eRaIadb zx=WiB#ys|PG>?x~%qAwQZb|aAQm!h=Qd|MPX8TP{h*}Hf32~R6Wne|&(d_1xhoMdx z-nw$O&Q0IsYJf#8jjK;U!GhRLu@Pii6RV5&Tc=^=Qfz&~H+cbk6v<)XqjH_(_Lp~~ z3-vz?si-$^B@e69W4!IWT|75iLtO}c-Z_qjp6W*II`BYlRfetm2Cw)CBbz1HlHd^e zkRm|Fu=mnll8G6@UyRl5a3R6F1iN@;7+b0?3Ea~S?I(Dy7)#FJa7*Ihu5f$H1at{f za;XFy`xb5uWF}DJ)N`@<^3jA5E7I{i5ws$ss(5s?=?U-*_N@&+S!IVR=`X!e2(3Mvv;Bjjs!&tDpe#KiL zWkV=}a-nI3BeEqG!Wu zo%6mv^L1zsic0|Zj;5|6t`vXKu65-cog!cOEcB_Ra8it>XJ<&e$*v%5l5m2w1U-Epu;*jV(^fg?wg$FG(hh zNGHf;>LqVdJ{AGYf#+XccpURB43|b^KOv~fc9CH318u-r#)nS8;U;Nj$Bkl1ScfFHLzLSu6@}&2>0aR{e^Q+i zQyi#S(J|YstbCH4=xU(jDc4^E$Fv04iNJ_a zwhv6uC79h+t`U904wF!6#6N~{dOuWZlx=NR+(l>ytvjN}t2lUQ}h~RR+h00G?}&;rL)w%~$}(hoGV7o8kD7 z4>O9cb@EtI?}=7mdsCMU8Q3UR$3I31gYuS^PG0v03==BwJ8$hDPBQ*sEbSk$3f{?~sNZy@=Q^WU7o)4`d5@J?C zc|t;rZW%ZR5@HTn=Q!!?B4$NxFR=j96~nR=P?oW@H1e~qo(HuCz2Ek_FIpB`>Ar|}QcMMbn8UUoBA8!Iu_(SSN8AOj)Q!I4B zVzCR>09~m8U9cBw{!JKA|7XPVB_*E4-OpIE?fADp%6M9*4ln^Y7>o%VWF2Gy@Jco7 zmN8f>;{+J^lEVFHq#}TOw{dW{BNV3mi_%B_2wR@Pwjz2}L;x|5L8J;3YD54rq0(i_ zI|5iin~{`vP?=GIlu#!~tVF5>iLJ1-+4{bYaSvq7q!T7Dh7uZZPv6I#p8@^@;RRY| zVKZp-(#c{PDfN0T%+vcyZL#X(3`Knj5j2PI$MQ zep>Jk*w=7bFf=+wV51|7RXm{4fz+R83VtXRUxG^>YE8ff-?dpfPU6}l{aM(j>6eE7 zlzeno=e6UIVX3#cFBaKD5(RvNG5@sGbAjm$4IRP?5j-?@(Y~JiErn_iwBo5+v0^@W z59sAWb^lLR`~q?Xm1n5q4`KpfW@&}Ji^qjDf=V?Bhs3nCVV^Z=00NaJAu81uFdLz@ zX7kFIwgO+@JH+=;LiSFcYDJ(nA!rUEAISG3nA98LGEE}*C#9S$h zt_MO}0>NA)&(>4_?~)(YJhVyz$JrY(r_?k93rOD zCVfDXH64U#F&v9;K&h|+#-{?v+by+tK|6(O_e3aYK#EYo*QE$#1mH%P=K70}J?-%r z2l!7c759^3C{ZnD={C4rhF<=3=!fjUJ44hEdmey$yCd!msG$a;G3BjyPs@*agiP67K1d?l&~!`uw%6s}A^jA@U(kg8F9rIe`a zq&T1BWZX;@;6PM-W{E@=vV_5gT=hmvS}Sb5g@}8eT?MG8{aCxP4(VF@0N|-ne#2hf z3wkwFxriYTp(P~Rke&_G!l409CIY^qS4!{gWi5VSNI#S#(_Db3q>2a-MrmXsAzul* zijY(w)26Aggh2I8QXC}#*5Dq0HY z7X^_1Oln*Rs_@GM_$(=wjKj7rHViF*n^JHzIyhv$q(4+H6UT<-#$@fe<=2`MS(Po{ ze~am~PseN%8>ZMHwPp8|d7C?0aGZ!W!!>Ve%|NuFQh3YIu=jG+aGwh#m}<-uu7$b- z8Qw@dAlTgz1r|<283DrgZ!%p;k^MoVc?S?VCq$qd;_ViAjMU+z*$>0^YLZKnylu&5?p&R(xo}tzT!JQ$9W8T-L+hbQ| zWSb+~s@+B?rkE67SN>)15XCZ1ao?VRPSfJ$gT(*-V4UF zsvEqG9^ZsyZ!hPBFks7oBxA1y@bzW@3h-49Hbg*D@ouygC_G7kEuor&l5v>tW5W<) zB*8jgM@boDGJvJ>bSZScOWtRsBeJnRG|SO;o0{tFA}1CNUwyd>;VZ%kVsfAnq=krp z8@3W%fy+%83QQW!FcfI`ie@NS(u9TDIz9s5v>CjntNx-H(7qY=;VeaG{AaGo8&Xo} z%X)G$0f$dd_Ksz_+j2?Xb#B#WXmEj-tCt&f7qy(PZ+Z8&x(vCyKwq-FC+$9uoRy_- zNV-C@{6Go_eD^PnoCMUyU^=m?c&{~yuWz*!T=zMlx*unCJTkW379JsaRGD8{Mi^IP z5qy0EA^;7(0`&GeCfhJ!%Zl6m>*cb>etAb-l8$(toxE?8ywA)OjWHp3wefiu$>!J(92YN2f7E1c7;{EjwbX9TQ*Pu=;pmT;QL*4CT!k! z_PRvUK(dRq%>d+Jc0t4q1otgH0Li5tc0|b!3#||MzVT8`(TA$0q-V@HNh`JMMHKf6 zYf-S{QU5acN^bN7$o(Q9_qV&GlT7o?7%ZlkX=C67rj0Sx^bBcENFj)4>A`nj>YeqK zsxdKy#~FL|b+56|S3XYFEuk1#;Lv(D$&7*tHDm!MMX#WSV8w)m)PN?(He~H$ljDQB zqFhCjNigO4S@R9{XJN2@nFFGyp58R|bw? zs!;`(NiOmm*?MVr!NOs(QSo!W-&ZIuHo82fUu9RVX3+(kTJFg$PrQeo)L)HBriXzi zsZli9hmoEk7-D&w(*-d_2J97OK9!e-Q)t&@nza{RPZ~>>3eLe%ymhC>~g-GnP=hXFN89G1g#JnLQ{(js1}KmkdU2@E)dS`|$u824Qfj0=MP#PZ4>}Kx9bcdKz#!hxy}`G@vU6?45^s zlu}5G>cnr$8%mmFT)J1OPQN0t)7YfBv{)V0btzGL(Wm2Ji7*&(3DPj_cUTIzHBxVc z-Uz#?7oa@f9Pv49!}$mah89&$%jJA$19cjH$AtHOC8r#{EUUFFH3uNnqon{aIvHD#z(-qI$FC=yL;9C#4I#0hEw zas}bvXrht=SvSdB0r(+Yn>WAgDJq;TC}FVxzY5~8NT`&Kvo z2R{@7iW6%mf8!L=b>iLd?jPCL|71lTFkCz*R4MkDQVE6Uk=C*~Fry**4GpLGS`%ny z)@1s1mQGS8*8EQY^a_m{-K%^56>IG}SZr*4E1q$(kwr#*Pb(bLv)+iQytpcrn_k zFN^a=_?`X1Sz6M&x(hYEeflkM44~pa$}-vCDx%i$-v%}loW@E8>FAB zR~4K2`qY{9^jv{Eh2)%CO@r1Ux%MaM<&d{IPH}|PlLLd+f5w!vwE^DBJ|hpnE=);5xCUP+L zKpQs|Dgx=qp~dg(c`rv*mBT`O6WCcZg~rJS3ct%7K-xFZu7dFmw5tHm0;z#*IQ0ss zE+uR@WC_d?qI#HyvTY<>kR`&wc>AR!T1>Su&fJm3^5E4Q-&Vbiyb1_%2mZGpr%q=N zh2ApB-Ok7m64sM+zV^7XY-P~iza3O9EMn^F078D46h$!>-e!;M?L@*rd6D0(hP1O^ zEgE)vZqm2T->vTZqjACRm@L_#1y|P|Zv1}!hb!YYJ(@mSbN1Fw)5S#1-N-YGq@>;f zwxUs#beoXdf>77}mX|p_$_GLdx(~;zpwCPnnmkk#(PvnT1aa_)ua``|Qe^f^uG*c- ze1Mt_(zU{fAbIcWMP>ko6CN-k29$)4mUjzj2_J>qy8<%}$gDqGUoVBE6^qseUC3ie z9sBM}@lo=?kZd-q681sfQ_x=*3Mo1z-ejc6|C7j!X`BF!OZIDDH$-kdIt3lraHX`; zzhb;Wa0`LcYqZ9ADJzEv4H=C(o3wyHkwu8mno9ja?}v^@f$tvaBUfxYj3*EQ5v4O4b;?OAH0q3e zlTrQ?=lnw3;du!=!9a09C|`1ulyz+Y4{86A-L}RpH~!U`6@6lugM-0(!b)($FXOjR+gL(s zQ)sA?!==#B$5oLqO2{cBj3OoFUtG$`7Z~u7ZoqrmYVR{7GIbIp4%yFsdnIxc6C_HQ zAhCb&gslFp0Z#A?NW}ZZQ+6jG)%^}=cVDG_X2tu_0 zM2IB#nbZV;ho_$lib(G!V^RqBn~Xhitmv3a%|toanMH@#H@R$@lYUYDMqo#4u}~ed zgH;&uQ$(O1GsT29kpESoE)RtfS`eO}X-whtif0IMuQ_Ln!n3P@s~R5N*V%VYeNYs)_dnvPs8qvdutANtuTQG!$=*lL)#3loZ$X z0t3=xB#BJ>0}E+c-b)5I8#m|APBGK^^O13M82ZT;fHPIfN^*0@^h-gPYR{gA?I&REjWS zrZR<5_^-B2=ObTsHAG#?pkK(6s8UvO_gfKlLFx%@&;yvjf=H1+67rv+LQxZC813f? zRD0uiKx)7Y;jm!xiMI=C9mwNUl{rKB1=PlFrsi+G2`A;vm@A5_dIGsOngBK0*wlGe(=X3o__uD4-NNrmP~4;KQsxUrG#qVcZZ}155@$apEIt)}Akn1eDg{reRT#4m4&!)X$k#tu#mPL2F#U_7{J8oo4I&4I z5JFm16hZud@WT*61Fev020^lujY`w%Vw4P$9u)}M&BoC)$ecuEMgTA~VkQ&X%Z=hB zSCZTTy;?+^83f_VN#yXQM0Gt1IP0xP8-o_BYkP#0kmv)EzZ-(QZqvTNdJcGbYBCWF72>{(HhpllT?RfKV2c1UPa zp(ww{;&A6r>Noa$x5)RK$sa`Ri2d?XNAF*!dMy7=$-5rn<;%WcyEWnyjk2KzQyu>l zBU>LF3It*hQ?@>>ASZ%yVM@&PK;@Qc zi*3TnJEY4A+1(ZBZvzzXZ?>f9@;#Qd`PBQ=U&#;A8zG#bj@qpeAU~kQMO;E20JRhj zaKUMp7;j(#Dv6r^Fjm4cgc@1aH{vW1fJw++2uTSdf2i%DUKy&_bHrc;lg?6Z2F3%U zI%a1@qJj%(p)ke~Sk4q8I^Xwk-8h1c!n+V^P}!lThFoe;8N8ET!3H7{UHY?Uz|4V^ zsO{D{N$Bxhbv}#klYC6S3w9a~EOL=`PVQtvXOh{E?YEukq~C7~78FOd@PWn5+%)t0 z4>vEPZ+}Z#(E>6c!d5l{~Nd z^F#W{M^At4v9IuP<$o|)8aQgA*RY!wi;w361f=%%+uKiXuN!R}6{LD=KAkv^s@bjw zUZ4uPS1m~wiNx#3j>o*7QY!zgvS>zdwj-2tvvkWn>}Jz)9dDw7KoJ6>akUCkGtF^+ zZb-^6TX}NLiy|a*v2Pa<_W)v^f6qNw>L~$c4igOs+DQbO1OR=PB~z1TeT+{lb;6(+ z0q!^vE7p(DZ6Jd*HoV>*)WXSRg8>S(7wB;d75E{{T_pJ78mO_bMUQwM^-9RVacT@V zm>NN)(05J^Q@P`c)CXm1LkF3>%b1imoTegPhqAM!s_h%%T36JEX2XA=7D-+Ot`ml6 zrGf|_;VYcvNxf1I&1KV+M%j1fVRA9x7JXw@SsmJbTCI8^B8;nhTIi8lO41-z3&P{s zG#MzOA9B`1t@@(Og!aIUL#DTwaTu?o&BXw{FTZ)Iy1xZ0f!2GF3 z`9Hysu{Q^>vVt7bAYIM~l9+Qlf#5C%k=B1pp5e8?Q zbMUCSoFv`hSM9DsR`SAVpMttU-FB4LuN&o_&eZ7Rccgm0jy9T;3p9Tsem~j0d|PGZ zIJs)*9@~?)s$?cnIn>?=Zek5iy}n*kvX?RFPsR6$M$w8$N}iMZG6wJ#5&3byXT^dY zN)&G9w#gN@821xwrdY+{9E|l$TbFE5#tSdt_z2e<%P!F zTP;nYA`A37Wda@5$B>+kQf-~4OZ8C#oV*Ed!yGao>27s$b>hf3IdWn_d!8pCTE^BF8{Sl!2km)+nL_`Y z$aD;FNcm7<#_$J{4}#UOu?ZES-BBRLELK$tCljpNJ9Tj!^1;B0g)n_Ry3_ZRE9Whj z{)iE$Bp@}}TMQ&rGPaCwU9sZkDs4@hOx&W3aC|UfG!sAvO35dBW$KxvUVQ>f=hZghz4+iNmZ??@9&a;XCody$ZP{pOJ za=|0b!7JgfuQCOOjAt&f7~)nvX&2@7h|T-|IWJ zMVN8@NV06k(770P7u8Dx8W+MwX0!x~4Ivql{;6whMF1f>*c#gRE6e-4La@)>DZbOc zu1=K5*@6XwVZQ&jjiWrpR`gR~%|Zw+J3Dnx zC2}yhylUx>nAk~#ZITWB7c%2a1IK6+ATQqr;#JCEjMCAJ1QSgow+yZnJNb12ne==jkd~){ohVz^_GKH5Q)GnX^zHE1q?||*K zA@nh$y+z~dZIoRAEk<$=+Lkj1nGClCAe}TCCm?AO8;$?YlBP7kZfay>2eF1wWm>Cq zTa8lThQE;^PZ9QJzgHJAQ@Dj!AKIsj6Sux*0YM52JfzD(Jpz0wV!+)BH$m?uL)##h z%LBR`<&CvTzT2R16KA5YQKI+kC>9VvkseCkWxIf+t3BEt3bD@t_mo)c0rr7I&C>mS z;-X-lwD*KslZ=w$%5i`%*WWIV07hvXsN}?;R!CZ^3erDioOuTP7JPSY>u}Xl!Nb6U zE!6@6u(1TIcy(%Y*m&L+wE2zqvgCzXp>k=XSaNv(=c`61b64(6K5=?x8sEv4#F7C{ zjvq3)>R!NPbi_l1x4{t)1rF6)`C%SF9ptD9)?0)UD&=@)qa}e}6=k+IQGxAoF=W<$ zLQK%fMjXU%c&btJK?X(o%vjgicZ3A?_UKwlQ(tQd<9A4d5(4O-l+F*hLfD4*)z?QQ zx;C=y;NUP*8L^Nqh3|Z+zj&oZpJXihW6Gi_))e6o0~Hj9_5lTykf?@)(@uE+YYLkr z9tMn4o`dcTcxSXz{^5V7e*#KG^G3J_uFy5}gVCc-Gi8^EV&))Z?=w91JjXJGg z9_a1L4Bd8EY5!%m>BR@@mK)nyLZM7rpObx)HLso>x(BiIt6L-P!Z^T{aqWXC$*Uq@ zCSr`f11AD&x^Cwx(gHApiA>N@1Wq7DItC&sR<&%H(BE3rK}O#x^L25w-(Fw~<50V) zidW{8GKZE9H&paFh@)DFcti4!GtctDcOm|i34Ayh%rsAja7PbE*OnF&?kEm1 zqqw6u;j9%Yrf+cB?@^-4+_86KMX_O_ve4W)c1tS0%xtNStkq&Y+SDEyfjwpw8ceQ( zJ_!!!8xFEn>h*O8;d@I{`j3DopPUyDhEyXHn1Z?_tHJ;c{TBh9NFk>f^*}%zL;wh* zJ7&hgz^_Ag53;hMrv)yV5&%KaN4dY!AW*vkyBa>7;)^Z?C{&qDVEa7^08^aEXRp9e z|3bhNTcN*4CApH+Dc!iIa~EN1`a_C>1Q{O=WHRuHUq{

Qt^6tokJmn&1^?JKN|s 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≧CTz=TU`WSVm2c0-ksA{}B-E!v|2};OD2>Tfo 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 $H9^f2V-NH8R~H8WL;YZ#f6a$HBmrrU>* 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 Date: Thu, 4 May 2017 14:56:56 +0200 Subject: [PATCH 32/84] report in NEWS that mboostLSS_fit() is adapted for FDboostLSS() --- inst/NEWS.Rd | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 196580a..adb4ac7 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -48,6 +48,7 @@ added new noncyclic fitting paper (also to manuals). The latter closes issue \href{https://github.com/boost-R/gamboostLSS/issues/27}{#27}. \item Updated URL in \file{DESCRIPTION}. + \item Adapt \code{mboostLSS_fit()} such that it can be called by \code{FDboost::FDboostLSS()}. } } } From b259544ad6accd0874e31c42b288d0380179ef25 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 5 May 2017 11:15:52 +0200 Subject: [PATCH 33/84] Updated reference to Thomas et al (2017). Closes #45 --- README.md | 11 ++++++++--- inst/NEWS.Rd | 17 +++++++++-------- man/cvrisk.Rd | 8 +++++--- man/gamboostLSS-package.Rd | 8 +++++--- man/mboostLSS.Rd | 16 +++++++++------- man/stabsel.mboostLSS.Rd | 9 +++++---- 6 files changed, 41 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 395a79e..3791583 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,14 @@ shape). - Instructions on how to use `gamboostLSS` can be found in the [gamboostLSS tutorial](https://www.jstatsoft.org/article/view/v074i01). -- Details on the noncyclical fitting method can be found in the technical report - on [noncyclical fitting and stability selection form gamboostLSS](https://arxiv.org/abs/1611.10171); This is a preliminary version currently under review. - +- Details on the noncyclical fitting method can be found in + + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + Accepted for publication in *Statistics and Computing*. + Preliminary version: [ArXiv 1611.10171](http://arxiv.org/abs/1611.10171). + ## Issues & Feature Requests For issues, bugs, feature requests etc. please use the [GitHub Issues](https://github.com/boost-R/gamboostLSS/issues). diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index adb4ac7..5d55565 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -4,20 +4,21 @@ \section{Changes in gamboostLSS version 2.0-0 (2017-yy-zz)}{ \subsection{User-visible changes}{ \itemize{ - \item Added new argument \code{method} which can be used to specify different - model fitting algorithms: + \item Added new fitting algorithm which can be used via the argument + \code{method}: \itemize{ \item \code{method = "cyclic"} is the standard approach which was also used previously. - \item \code{method = "noncyclic"} provides a new non-cyclic algorithm. + \item \code{method = "noncyclic"} provides a new non-cyclical algorithm. } - The \code{noncyclic} method allow faster cross-validation and better results + The \code{"noncyclic"} method allow faster cross-validation and better results for stability selection (see below). For details see - Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), - Stability selection for component-wise gradient boosting in multiple dimensions. - Preliminary version: \url{http://arxiv.org/abs/1611.10171}. - + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + Accepted for publication in \emph{Statistics and Computing}.\cr + Preliminary version: \url{http://arxiv.org/abs/1611.10171}. \item Stability selection (\code{stabsel}) implemented for \code{gamboostLSS} models. \item Models can now be fitted with zero steps (i.e., models containing only diff --git a/man/cvrisk.Rd b/man/cvrisk.Rd index 44f1f49..6c3eeaf 100644 --- a/man/cvrisk.Rd +++ b/man/cvrisk.Rd @@ -136,7 +136,7 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, Hofner et al. (2016) provide a detailed description of cross-validation for \code{\link{gamboostLSS}} models and show a - worked example. Thomas et al. (2016) compare cross-validation for the + worked example. Thomas et al. (2017) compare cross-validation for the the cyclic and non-cyclic boosting approach and provide worked examples. } \value{ @@ -152,8 +152,10 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, Available as \code{vignette("gamboostLSS_Tutorial")}. - Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), - Stability selection for component-wise gradient boosting in multiple dimensions. + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + Accepted for publication in \emph{Statistics and Computing}.\cr Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \seealso{ diff --git a/man/gamboostLSS-package.Rd b/man/gamboostLSS-package.Rd index 8a18485..a45bfb3 100644 --- a/man/gamboostLSS-package.Rd +++ b/man/gamboostLSS-package.Rd @@ -15,7 +15,7 @@ additive models for location, scale and shape). For information on GAMLSS theory see Rigby and Stasinopoulos (2005), or the information provided at \url{http://gamlss.org}. For a tutorial on - \code{\link{gamboostLSS}} see Hofner et al. (2015). Thomas et al. (2016) + \code{\link{gamboostLSS}} see Hofner et al. (2015). Thomas et al. (2017) developed a novel non-cyclic approach to fit \code{\link{gamboostLSS}} models. This approach is suitable for the combination with \code{\link{stabsel}} and speeds up model tuning via \code{\link{cvrisk}}. @@ -88,8 +88,10 @@ mboost: Model-based boosting. R package version 2.4-2. \url{https://CRAN.R-project.org/package=mboost} - Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), - Stability selection for component-wise gradient boosting in multiple dimensions. + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + Accepted for publication in \emph{Statistics and Computing}.\cr Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } \keyword{ package } diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 3d612f0..369fa35 100644 --- a/man/mboostLSS.Rd +++ b/man/mboostLSS.Rd @@ -17,7 +17,7 @@ al., 2012). (b) The noncyclic algorithm selects in each step the update of a base-learner for the distribution parameter that best fits the negative gradient - (algorithm with inner loss of Thomas et al., 2016). + (algorithm with inner loss of Thomas et al., 2017). } \usage{ @@ -57,7 +57,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \item{weights}{ a numeric vector of weights (optional). } \item{method}{ fitting method, currently two methods are supported: \code{"cyclic"} (see Mayr et al., 2012) and \code{"noncyclic"} - (algorithm with inner loss of Thomas et al., 2016). + (algorithm with inner loss of Thomas et al., 2017). The latter requires a one dimensional \code{mstop} value.} \item{fun}{ fit function. Either \code{\link{mboost}}, \code{\link{glmboost}}, \code{\link{gamboost}} or @@ -80,7 +80,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), For information on GAMLSS theory see Rigby and Stasinopoulos (2005) or the information provided at \url{http://gamlss.org}. For a tutorial on - \code{\link{gamboostLSS}} see Hofner et al. (2016). Thomas et al. (2016) + \code{\link{gamboostLSS}} see Hofner et al. (2016). Thomas et al. (2017) developed a novel non-cyclic approach to fit gamboostLSS models. This approach is suitable for the combination with \code{\link{stabsel}} and speeds up model tuning via \code{\link{cvrisk}} (see also below). @@ -131,8 +131,8 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), to be a one dimensional integer. Instead of cycling through all distribution parameters, in each iteration only the best base-learner is used. One base-learner of every parameter is selected via RSS, the distribution parameter is then chosen via the loss - (in Thomas et. al. (2016) called inner loss). - For details on the noncyclic fitting method see Thomas et. al. (2016). + (in Thomas et. al. (2017) called inner loss). + For details on the noncyclic fitting method see Thomas et. al. (2017). To (potentially) stabilize the model estimation by standardizing the negative gradients one can use the argument \code{stabilization} of @@ -168,8 +168,10 @@ Statistical Society, Series C (Applied Statistics), 54, 507-554. Buehlmann, P. and Hothorn, T. (2007), Boosting algorithms: Regularization, prediction and model fitting. Statistical Science, 22(4), 477--505. -Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), -Stability selection for component-wise gradient boosting in multiple dimensions. +Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), +Gradient boosting for distributional regression - faster tuning and improved +variable selection via noncyclical updates. +Accepted for publication in \emph{Statistics and Computing}.\cr Preliminary version: \url{http://arxiv.org/abs/1611.10171}. } diff --git a/man/stabsel.mboostLSS.Rd b/man/stabsel.mboostLSS.Rd index b164d5b..9336184 100644 --- a/man/stabsel.mboostLSS.Rd +++ b/man/stabsel.mboostLSS.Rd @@ -69,7 +69,7 @@ \details{ Stability selection is to be preferably used with non-cyclic \code{\link{gamboostLSS}} - models, as proposed by Thomas et al. (2016). In this publication, the combination + models, as proposed by Thomas et al. (2017). In this publication, the combination of package \pkg{gamboostLSS} with stability selection was devoloped and is investigated in depth. @@ -106,10 +106,11 @@ control: another look at stability selection. \emph{Journal of the Royal Statistical Society, Series B}, \bold{75}, 55--80. - Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016), - Stability selection for component-wise gradient boosting in multiple dimensions. + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + Accepted for publication in \emph{Statistics and Computing}.\cr Preliminary version: \url{http://arxiv.org/abs/1611.10171}. - } \seealso{ \code{\link[stabs]{stabsel}} and From 8c0d47564d2a477105f3287251c978fea54ac678 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 5 May 2017 11:19:38 +0200 Subject: [PATCH 34/84] Updated maintainer's email address --- man/gamboostLSS-package.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/gamboostLSS-package.Rd b/man/gamboostLSS-package.Rd index a45bfb3..0490c15 100644 --- a/man/gamboostLSS-package.Rd +++ b/man/gamboostLSS-package.Rd @@ -49,7 +49,7 @@ \author{ Benjamin Hofner, Andreas Mayr, Nora Fenske, Janek Thomas, Matthias Schmid - Maintainer: Benjamin Hofner + Maintainer: Benjamin Hofner } \references{ From 8b7001081b225aca47563683d32a3685c6c55987 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 5 May 2017 13:32:25 +0200 Subject: [PATCH 35/84] Also update inst/CITATION --- inst/CITATION | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/inst/CITATION b/inst/CITATION index e3df9d6..810c14f 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -69,23 +69,23 @@ citEntry( citEntry( - entry= "TechReport", - title = "Stability selection for component-wise gradient boosting in multiple dimensions", + entry= "Article", + title = "Gradient boosting for distributional regression - faster tuning and improved variable selection via noncyclical updates", author = personList(as.person("Janek Thomas"), as.person("Andreas Mayr"), as.person("Bernd Bischl"), as.person("Matthias Schmid"), as.person("Adam Smith"), as.person("Benjamin Hofner")), - year = "2016", - institution = "ArXiv", + year = "2017", + journal = "{Statistics and Computing}", + note = "Accepted", header = "To cite the noncyclical fitting method of 'gamboostLSS' use:", - url = "https://arxiv.org/abs/1611.10171", textVersion = - paste("Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2016).", - "Stability selection for component-wise gradient boosting in multiple dimensions.", - "arXiv preprint arXiv:1611.10171.") + paste("Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2017).", + "Gradient boosting for distributional regression - faster tuning and improved variable selection via noncyclical updates.", + "Statistics and Computing. Accepted.") ) -citFooter('\nUse ', sQuote('toBibtex(citation("gamboostLSS"))'), ' to extract BibTeX references.') +citFooter('\nUse ', sQuote('toBibtex(citation("gamboostLSS"))'), ' to extract BibTeX references.\n') From 54dbcd9d9664078798b455586f37477e63b13248 Mon Sep 17 00:00:00 2001 From: Benjamin Hofner Date: Fri, 5 May 2017 15:13:21 +0200 Subject: [PATCH 36/84] Updated check results --- copy_Rout_to_Routsave.R | 29 +- tests/Examples/gamboostLSS-Ex.Rout.save | 2606 +++++++++++---------- tests/bugfixes.Rout.save | 66 +- tests/regtest-families.Rout.save | 203 +- tests/regtest-gamboostLSS.Rout.save | 98 +- tests/regtest-glmboostLSS.Rout.save | 30 +- tests/regtest-mstop.Rout.save | 48 +- tests/regtest-noncyclic_fitting.Rout.save | 348 +++ tests/regtest-stabilization.Rout.save | 127 +- tests/regtest-stabsel.Rout.save | 101 + 10 files changed, 2219 insertions(+), 1437 deletions(-) create mode 100644 tests/regtest-noncyclic_fitting.Rout.save create mode 100644 tests/regtest-stabsel.Rout.save diff --git a/copy_Rout_to_Routsave.R b/copy_Rout_to_Routsave.R index e9adcfa..cd3088d 100644 --- a/copy_Rout_to_Routsave.R +++ b/copy_Rout_to_Routsave.R @@ -7,36 +7,23 @@ # USAGE: # Use # ## To copy test output -# Rscript copy_Rout_to_Routsave.R "path='pkg'" "vignettes=FALSE" +# Rscript copy_Rout_to_Routsave.R "vignettes=FALSE" # ## To copy vignette output -# Rscript copy_Rout_to_Routsave.R "path='pkg'" "vignettes=TRUE" -# -# or use -# ## To copy test output -# Rscript copy_Rout_to_Routsave.R "path='patch'" "vignettes=FALSE" -# ## To copy vignette output -# Rscript copy_Rout_to_Routsave.R "path='patch'" "vignettes=TRUE" +# Rscript copy_Rout_to_Routsave.R "vignettes=TRUE" # ################################################################################ ## Get command line arguments args <- commandArgs(TRUE) -if (length(args) > 2) - stop("specify (at maximum) two arguments (i.e., which and vignettes)") +if (length(args) > 1) + stop("specify (at maximum) one argument (i.e., vignettes)") eval(parse(text=args)) -if (length(args) == 0) { - vignettes <- FALSE - path <- "pkg" -} - -if (is.null(path)) - path <- "pkg" - -if (is.null(vignettes)) +if (length(args) == 0) vignettes <- FALSE - + which <- "gamboostLSS" -check_path <- "gamboostLSS.Rcheck/" +path <- "." +check_path <- "../gamboostLSS.Rcheck/" ################################################################################ ## Copy output of test files diff --git a/tests/Examples/gamboostLSS-Ex.Rout.save b/tests/Examples/gamboostLSS-Ex.Rout.save index 356229c..b56f36e 100644 --- a/tests/Examples/gamboostLSS-Ex.Rout.save +++ b/tests/Examples/gamboostLSS-Ex.Rout.save @@ -1,7 +1,7 @@ -R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree" -Copyright (C) 2015 The R Foundation for Statistical Computing -Platform: x86_64-pc-linux-gnu (64-bit) +R version 3.4.0 (2017-04-21) -- "You Stupid Darkness" +Copyright (C) 2017 The R Foundation for Statistical Computing +Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. @@ -20,29 +20,18 @@ Type 'q()' to quit R. > pkgname <- "gamboostLSS" > source(file.path(R.home("share"), "R", "examples-header.R")) > options(warn = 1) -> base::assign(".ExTimings", "gamboostLSS-Ex.timings", pos = 'CheckExEnv') -> base::cat("name\tuser\tsystem\telapsed\n", file=base::get(".ExTimings", pos = 'CheckExEnv')) -> base::assign(".format_ptime", -+ function(x) { -+ if(!is.na(x[4L])) x[1L] <- x[1L] + x[4L] -+ if(!is.na(x[5L])) x[2L] <- x[2L] + x[5L] -+ options(OutDec = '.') -+ format(x[1L:3L], digits = 7L) -+ }, -+ pos = 'CheckExEnv') -> -> ### * +> options(pager = "console") > library('gamboostLSS') Loading required package: mboost Loading required package: parallel Loading required package: stabs -This is mboost 2.6-0. See ‘package?mboost’ and ‘news(package = "mboost")’ +This is mboost 2.8-0. See 'package?mboost' and 'news(package = "mboost")' for a complete list of changes. -Attaching package: ‘gamboostLSS’ +Attaching package: 'gamboostLSS' -The following object is masked from ‘package:stats’: +The following object is masked from 'package:stats': model.weights @@ -54,7 +43,6 @@ The following object is masked from ‘package:stats’: > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: as.families > ### Title: Include 'gamlss' families in the boosting framework of > ### 'gamboostLSS' @@ -83,9 +71,9 @@ The following object is masked from ‘package:stats’: Loading required package: gamlss.dist Loading required package: MASS -Attaching package: ‘gamlss.dist’ +Attaching package: 'gamlss.dist' -The following object is masked from ‘package:mboost’: +The following object is masked from 'package:mboost': Family @@ -105,7 +93,7 @@ $sigma Loading required package: splines Loading required package: gamlss.data Loading required package: nlme - ********** GAMLSS Version 4.3-8 ********** + ********** GAMLSS Version 5.0-1 ********** For more on GAMLSS look at http://www.gamlss.org/ Type gamlssNews() to see new features/changes/bug fixes. @@ -123,22 +111,20 @@ GAMLSS-RS iteration 3: Global Deviance = 3844.149 > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("as.families", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > cleanEx() -detaching ‘package:gamlss’, ‘package:nlme’, ‘package:gamlss.data’, - ‘package:splines’, ‘package:gamlss.dist’, ‘package:MASS’ +detaching 'package:gamlss', 'package:nlme', 'package:gamlss.data', + 'package:splines', 'package:gamlss.dist', 'package:MASS' > nameEx("cvrisk") > ### * cvrisk > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: cvrisk.mboostLSS > ### Title: Cross-Validation -> ### Aliases: cvrisk cvrisk.mboostLSS make.grid plot.cvriskLSS +> ### Aliases: cvrisk cvrisk.mboostLSS cvrisk.nc_mboostLSS make.grid +> ### plot.cvriskLSS plot.nc_cvriskLSS > ### Keywords: models regression > > ### ** Examples @@ -336,92 +322,45 @@ Starting cross-validation... > cvr <- cvrisk(model, grid = grid) Starting cross-validation... [fold] [current mstop] - [2] [1,1] - [2] [2,1] - [2] [4,1] - [2] [7,1] - [2] [14,1] [1] [1,1] [1] [2,1] [1] [4,1] [1] [7,1] - [2] [28,1] [1] [14,1] [1] [28,1] - [2] [54,1] [1] [54,1] - [2] [106,1] [1] [106,1] - [2] [206,1] [1] [206,1] - [2] [400,1] - [2] [1,2] - [2] [2,2] - [2] [4,2] - [2] [7,2] - [2] [14,2] [1] [400,1] [1] [1,2] [1] [2,2] - [2] [28,2] [1] [4,2] [1] [7,2] [1] [14,2] - [2] [54,2] [1] [28,2] [1] [54,2] - [2] [106,2] [1] [106,2] - [2] [206,2] [1] [206,2] - [2] [400,2] - [2] [1,4] - [2] [2,4] - [2] [4,4] - [2] [7,4] - [2] [14,4] - [2] [28,4] - [2] [54,4] [1] [400,2] [1] [1,4] [1] [2,4] [1] [4,4] [1] [7,4] [1] [14,4] - [2] [106,4] [1] [28,4] [1] [54,4] [1] [106,4] - [2] [206,4] [1] [206,4] - [2] [400,4] - [2] [1,7] - [2] [2,7] - [2] [4,7] - [2] [7,7] - [2] [14,7] - [2] [28,7] [1] [400,4] - [2] [54,7] [1] [1,7] [1] [2,7] [1] [4,7] [1] [7,7] [1] [14,7] - [2] [106,7] [1] [28,7] [1] [54,7] - [2] [206,7] [1] [106,7] [1] [206,7] - [2] [400,7] - [2] [1,14] - [2] [2,14] - [2] [4,14] - [2] [7,14] - [2] [14,14] - [2] [28,14] - [2] [54,14] [1] [400,7] [1] [1,14] [1] [2,14] @@ -429,112 +368,160 @@ Starting cross-validation... [1] [7,14] [1] [14,14] [1] [28,14] - [2] [106,14] [1] [54,14] - [2] [206,14] [1] [106,14] [1] [206,14] - [2] [400,14] - [2] [1,28] - [2] [2,28] - [2] [4,28] [1] [400,14] - [2] [7,28] [1] [1,28] - [2] [14,28] [1] [2,28] - [2] [28,28] [1] [4,28] - [2] [54,28] [1] [7,28] - [2] [106,28] [1] [14,28] [1] [28,28] [1] [54,28] - [2] [206,28] [1] [106,28] [1] [206,28] - [2] [400,28] - [2] [1,54] [1] [400,28] - [2] [2,54] [1] [1,54] - [2] [4,54] [1] [2,54] - [2] [7,54] [1] [4,54] [1] [7,54] - [2] [14,54] [1] [14,54] - [2] [28,54] [1] [28,54] - [2] [54,54] [1] [54,54] - [2] [106,54] [1] [106,54] - [2] [206,54] [1] [206,54] - [2] [400,54] [1] [400,54] - [2] [1,106] [1] [1,106] - [2] [2,106] [1] [2,106] - [2] [4,106] [1] [4,106] - [2] [7,106] [1] [7,106] - [2] [14,106] [1] [14,106] - [2] [28,106] [1] [28,106] [1] [54,106] - [2] [54,106] [1] [106,106] - [2] [106,106] [1] [206,106] - [2] [206,106] [1] [400,106] - [2] [400,106] [1] [1,206] - [2] [1,206] [1] [2,206] - [2] [2,206] - [2] [4,206] [1] [4,206] [1] [7,206] - [2] [7,206] - [2] [14,206] [1] [14,206] - [2] [28,206] [1] [28,206] - [2] [54,206] [1] [54,206] - [2] [106,206] [1] [106,206] - [2] [206,206] - [2] [400,206] [1] [206,206] [1] [400,206] - [2] [1,400] [1] [1,400] - [2] [2,400] [1] [2,400] - [2] [4,400] [1] [4,400] - [2] [7,400] [1] [7,400] [1] [14,400] - [2] [14,400] [1] [28,400] - [2] [28,400] [1] [54,400] - [2] [54,400] [1] [106,400] - [2] [106,400] [1] [206,400] - [2] [206,400] [1] [400,400] + [2] [1,1] + [2] [2,1] + [2] [4,1] + [2] [7,1] + [2] [14,1] + [2] [28,1] + [2] [54,1] + [2] [106,1] + [2] [206,1] + [2] [400,1] + [2] [1,2] + [2] [2,2] + [2] [4,2] + [2] [7,2] + [2] [14,2] + [2] [28,2] + [2] [54,2] + [2] [106,2] + [2] [206,2] + [2] [400,2] + [2] [1,4] + [2] [2,4] + [2] [4,4] + [2] [7,4] + [2] [14,4] + [2] [28,4] + [2] [54,4] + [2] [106,4] + [2] [206,4] + [2] [400,4] + [2] [1,7] + [2] [2,7] + [2] [4,7] + [2] [7,7] + [2] [14,7] + [2] [28,7] + [2] [54,7] + [2] [106,7] + [2] [206,7] + [2] [400,7] + [2] [1,14] + [2] [2,14] + [2] [4,14] + [2] [7,14] + [2] [14,14] + [2] [28,14] + [2] [54,14] + [2] [106,14] + [2] [206,14] + [2] [400,14] + [2] [1,28] + [2] [2,28] + [2] [4,28] + [2] [7,28] + [2] [14,28] + [2] [28,28] + [2] [54,28] + [2] [106,28] + [2] [206,28] + [2] [400,28] + [2] [1,54] + [2] [2,54] + [2] [4,54] + [2] [7,54] + [2] [14,54] + [2] [28,54] + [2] [54,54] + [2] [106,54] + [2] [206,54] + [2] [400,54] + [2] [1,106] + [2] [2,106] + [2] [4,106] + [2] [7,106] + [2] [14,106] + [2] [28,106] + [2] [54,106] + [2] [106,106] + [2] [206,106] + [2] [400,106] + [2] [1,206] + [2] [2,206] + [2] [4,206] + [2] [7,206] + [2] [14,206] + [2] [28,206] + [2] [54,206] + [2] [106,206] + [2] [206,206] + [2] [400,206] + [2] [1,400] + [2] [2,400] + [2] [4,400] + [2] [7,400] + [2] [14,400] + [2] [28,400] + [2] [54,400] + [2] [106,400] + [2] [206,400] + [2] [400,400] [3] [1,1] [3] [2,1] [3] [4,1] @@ -543,15 +530,7 @@ Starting cross-validation... [3] [28,1] [3] [54,1] [3] [106,1] - [2] [400,400] - [4] [1,1] - [4] [2,1] - [4] [4,1] - [4] [7,1] - [4] [14,1] - [4] [28,1] - [4] [54,1] - [4] [106,1] + [3] [206,1] [3] [400,1] [3] [1,2] [3] [2,2] @@ -559,19 +538,9 @@ Starting cross-validation... [3] [7,2] [3] [14,2] [3] [28,2] - [4] [206,1] [3] [54,2] [3] [106,2] [3] [206,2] - [4] [400,1] - [4] [1,2] - [4] [2,2] - [4] [4,2] - [4] [7,2] - [4] [14,2] - [4] [28,2] - [4] [54,2] - [4] [106,2] [3] [400,2] [3] [1,4] [3] [2,4] @@ -579,19 +548,9 @@ Starting cross-validation... [3] [7,4] [3] [14,4] [3] [28,4] - [4] [206,2] [3] [54,4] [3] [106,4] - [4] [400,2] - [4] [1,4] - [4] [2,4] - [4] [4,4] - [4] [7,4] - [4] [14,4] - [4] [28,4] - [4] [54,4] - [4] [106,4] - [4] [206,4] + [3] [206,4] [3] [400,4] [3] [1,7] [3] [2,7] @@ -601,144 +560,174 @@ Starting cross-validation... [3] [28,7] [3] [54,7] [3] [106,7] - [4] [400,4] - [4] [1,7] [3] [206,7] - [4] [2,7] - [4] [4,7] - [4] [7,7] - [4] [14,7] - [4] [28,7] - [4] [54,7] - [4] [106,7] [3] [400,7] [3] [1,14] [3] [2,14] [3] [4,14] [3] [7,14] - [4] [206,7] [3] [14,14] [3] [28,14] [3] [54,14] [3] [106,14] - [4] [400,7] [3] [206,14] - [4] [1,14] - [4] [2,14] - [4] [4,14] - [4] [7,14] - [4] [14,14] - [4] [28,14] - [4] [54,14] [3] [400,14] - [4] [106,14] [3] [1,28] [3] [2,28] [3] [4,28] - [4] [206,14] [3] [7,28] [3] [14,28] [3] [28,28] [3] [54,28] [3] [106,28] [3] [206,28] - [4] [400,14] - [4] [1,28] - [4] [2,28] - [4] [4,28] - [4] [7,28] [3] [400,28] - [4] [14,28] - [4] [28,28] - [4] [54,28] [3] [1,54] - [4] [106,28] [3] [2,54] - [4] [206,28] [3] [4,54] [3] [7,54] [3] [14,54] - [4] [400,28] [3] [28,54] - [4] [1,54] [3] [54,54] - [4] [2,54] [3] [106,54] + [3] [206,54] + [3] [400,54] + [3] [1,106] + [3] [2,106] + [3] [4,106] + [3] [7,106] + [3] [14,106] + [3] [28,106] + [3] [54,106] + [3] [106,106] + [3] [206,106] + [3] [400,106] + [3] [1,206] + [3] [2,206] + [3] [4,206] + [3] [7,206] + [3] [14,206] + [3] [28,206] + [3] [54,206] + [3] [106,206] + [3] [206,206] + [3] [400,206] + [3] [1,400] + [3] [2,400] + [3] [4,400] + [3] [7,400] + [3] [14,400] + [3] [28,400] + [3] [54,400] + [3] [106,400] + [3] [206,400] + [3] [400,400] + [4] [1,1] + [4] [2,1] + [4] [4,1] + [4] [7,1] + [4] [14,1] + [4] [28,1] + [4] [54,1] + [4] [106,1] + [4] [206,1] + [4] [400,1] + [4] [1,2] + [4] [2,2] + [4] [4,2] + [4] [7,2] + [4] [14,2] + [4] [28,2] + [4] [54,2] + [4] [106,2] + [4] [206,2] + [4] [400,2] + [4] [1,4] + [4] [2,4] + [4] [4,4] + [4] [7,4] + [4] [14,4] + [4] [28,4] + [4] [54,4] + [4] [106,4] + [4] [206,4] + [4] [400,4] + [4] [1,7] + [4] [2,7] + [4] [4,7] + [4] [7,7] + [4] [14,7] + [4] [28,7] + [4] [54,7] + [4] [106,7] + [4] [206,7] + [4] [400,7] + [4] [1,14] + [4] [2,14] + [4] [4,14] + [4] [7,14] + [4] [14,14] + [4] [28,14] + [4] [54,14] + [4] [106,14] + [4] [206,14] + [4] [400,14] + [4] [1,28] + [4] [2,28] + [4] [4,28] + [4] [7,28] + [4] [14,28] + [4] [28,28] + [4] [54,28] + [4] [106,28] + [4] [206,28] + [4] [400,28] + [4] [1,54] + [4] [2,54] [4] [4,54] [4] [7,54] - [3] [206,54] [4] [14,54] [4] [28,54] [4] [54,54] - [3] [400,54] [4] [106,54] [4] [206,54] - [3] [1,106] - [3] [2,106] [4] [400,54] - [3] [4,106] [4] [1,106] - [3] [7,106] [4] [2,106] - [3] [14,106] [4] [4,106] - [3] [28,106] [4] [7,106] - [3] [54,106] - [3] [106,106] [4] [14,106] - [3] [206,106] [4] [28,106] - [3] [400,106] [4] [54,106] [4] [106,106] [4] [206,106] - [3] [1,206] [4] [400,106] - [3] [2,206] [4] [1,206] - [3] [4,206] [4] [2,206] - [3] [7,206] [4] [4,206] - [3] [14,206] [4] [7,206] - [3] [28,206] [4] [14,206] - [3] [54,206] [4] [28,206] - [3] [106,206] [4] [54,206] - [3] [206,206] [4] [106,206] - [3] [400,206] [4] [206,206] [4] [400,206] - [3] [1,400] [4] [1,400] - [3] [2,400] [4] [2,400] - [3] [4,400] [4] [4,400] - [3] [7,400] [4] [7,400] - [3] [14,400] [4] [14,400] - [3] [28,400] [4] [28,400] - [3] [54,400] [4] [54,400] - [3] [106,400] [4] [106,400] - [3] [206,400] - [3] [400,400] + [4] [206,400] + [4] [400,400] [5] [1,1] [5] [2,1] [5] [4,1] [5] [7,1] [5] [14,1] [5] [28,1] - [4] [206,400] [5] [54,1] [5] [106,1] [5] [206,1] @@ -748,272 +737,330 @@ Starting cross-validation... [5] [4,2] [5] [7,2] [5] [14,2] - [4] [400,400] [5] [28,2] - [6] [1,1] - [6] [2,1] - [6] [4,1] - [6] [7,1] - [6] [14,1] [5] [54,2] - [6] [28,1] [5] [106,2] - [6] [54,1] - [6] [106,1] [5] [206,2] - [6] [206,1] [5] [400,2] [5] [1,4] [5] [2,4] [5] [4,4] [5] [7,4] - [6] [400,1] - [6] [1,2] - [6] [2,2] - [6] [4,2] - [6] [7,2] - [6] [14,2] + [5] [14,4] + [5] [28,4] [5] [54,4] - [6] [28,2] - [6] [54,2] - [6] [106,2] [5] [106,4] - [6] [206,2] [5] [206,4] - [6] [400,2] - [6] [1,4] - [6] [2,4] - [6] [4,4] - [6] [7,4] [5] [400,4] [5] [1,7] [5] [2,7] - [6] [14,4] [5] [4,7] [5] [7,7] [5] [14,7] [5] [28,7] - [6] [54,4] [5] [54,7] - [6] [106,4] [5] [106,7] - [6] [206,4] [5] [206,7] - [6] [400,4] - [6] [1,7] - [6] [2,7] [5] [400,7] - [6] [4,7] [5] [1,14] - [6] [7,7] - [6] [14,7] [5] [2,14] - [6] [28,7] [5] [4,14] [5] [7,14] - [6] [54,7] [5] [14,14] [5] [28,14] - [6] [106,7] [5] [54,14] [5] [106,14] - [6] [206,7] [5] [206,14] - [6] [400,7] - [6] [1,14] - [6] [2,14] - [6] [4,14] - [6] [7,14] - [6] [14,14] [5] [400,14] - [6] [28,14] - [6] [54,14] [5] [1,28] [5] [2,28] - [6] [106,14] [5] [4,28] [5] [7,28] [5] [14,28] [5] [28,28] - [6] [206,14] [5] [54,28] [5] [106,28] [5] [206,28] - [6] [400,14] - [6] [1,28] - [6] [2,28] - [6] [4,28] [5] [400,28] - [6] [7,28] - [6] [14,28] [5] [1,54] - [6] [28,28] [5] [2,54] - [6] [54,28] - [6] [106,28] [5] [4,54] - [6] [206,28] [5] [7,54] [5] [14,54] [5] [28,54] [5] [54,54] - [6] [400,28] [5] [106,54] - [6] [1,54] - [6] [2,54] [5] [206,54] - [6] [4,54] - [6] [7,54] [5] [400,54] - [6] [14,54] - [6] [28,54] - [6] [54,54] [5] [1,106] - [6] [106,54] - [6] [206,54] [5] [2,106] [5] [4,106] - [6] [400,54] [5] [7,106] - [6] [1,106] [5] [14,106] - [6] [2,106] [5] [28,106] [5] [54,106] - [6] [4,106] [5] [106,106] - [6] [7,106] [5] [206,106] - [6] [14,106] [5] [400,106] - [6] [28,106] - [6] [54,106] - [6] [106,106] [5] [1,206] - [6] [206,106] - [6] [400,106] [5] [2,206] - [6] [1,206] [5] [4,206] - [6] [2,206] [5] [7,206] - [6] [4,206] [5] [14,206] - [6] [7,206] [5] [28,206] - [6] [14,206] [5] [54,206] - [6] [28,206] [5] [106,206] - [6] [54,206] [5] [206,206] - [6] [106,206] [5] [400,206] - [6] [206,206] - [6] [400,206] [5] [1,400] - [6] [1,400] [5] [2,400] - [6] [2,400] [5] [4,400] - [6] [4,400] [5] [7,400] - [6] [7,400] [5] [14,400] - [6] [14,400] [5] [28,400] - [6] [28,400] [5] [54,400] - [6] [54,400] [5] [106,400] - [6] [106,400] [5] [206,400] [5] [400,400] - [7] [1,1] - [7] [2,1] - [7] [4,1] - [7] [7,1] - [7] [14,1] - [6] [206,400] - [7] [28,1] - [7] [54,1] - [7] [106,1] - [7] [206,1] - [6] [400,400] - [8] [1,1] - [8] [2,1] - [8] [4,1] - [8] [7,1] - [8] [14,1] - [8] [28,1] - [7] [400,1] - [7] [1,2] - [7] [2,2] - [7] [4,2] - [7] [7,2] - [7] [14,2] - [8] [54,1] + [6] [1,1] + [6] [2,1] + [6] [4,1] + [6] [7,1] + [6] [14,1] + [6] [28,1] + [6] [54,1] + [6] [106,1] + [6] [206,1] + [6] [400,1] + [6] [1,2] + [6] [2,2] + [6] [4,2] + [6] [7,2] + [6] [14,2] + [6] [28,2] + [6] [54,2] + [6] [106,2] + [6] [206,2] + [6] [400,2] + [6] [1,4] + [6] [2,4] + [6] [4,4] + [6] [7,4] + [6] [14,4] + [6] [28,4] + [6] [54,4] + [6] [106,4] + [6] [206,4] + [6] [400,4] + [6] [1,7] + [6] [2,7] + [6] [4,7] + [6] [7,7] + [6] [14,7] + [6] [28,7] + [6] [54,7] + [6] [106,7] + [6] [206,7] + [6] [400,7] + [6] [1,14] + [6] [2,14] + [6] [4,14] + [6] [7,14] + [6] [14,14] + [6] [28,14] + [6] [54,14] + [6] [106,14] + [6] [206,14] + [6] [400,14] + [6] [1,28] + [6] [2,28] + [6] [4,28] + [6] [7,28] + [6] [14,28] + [6] [28,28] + [6] [54,28] + [6] [106,28] + [6] [206,28] + [6] [400,28] + [6] [1,54] + [6] [2,54] + [6] [4,54] + [6] [7,54] + [6] [14,54] + [6] [28,54] + [6] [54,54] + [6] [106,54] + [6] [206,54] + [6] [400,54] + [6] [1,106] + [6] [2,106] + [6] [4,106] + [6] [7,106] + [6] [14,106] + [6] [28,106] + [6] [54,106] + [6] [106,106] + [6] [206,106] + [6] [400,106] + [6] [1,206] + [6] [2,206] + [6] [4,206] + [6] [7,206] + [6] [14,206] + [6] [28,206] + [6] [54,206] + [6] [106,206] + [6] [206,206] + [6] [400,206] + [6] [1,400] + [6] [2,400] + [6] [4,400] + [6] [7,400] + [6] [14,400] + [6] [28,400] + [6] [54,400] + [6] [106,400] + [6] [206,400] + [6] [400,400] + [7] [1,1] + [7] [2,1] + [7] [4,1] + [7] [7,1] + [7] [14,1] + [7] [28,1] + [7] [54,1] + [7] [106,1] + [7] [206,1] + [7] [400,1] + [7] [1,2] + [7] [2,2] + [7] [4,2] + [7] [7,2] + [7] [14,2] [7] [28,2] [7] [54,2] [7] [106,2] - [8] [106,1] [7] [206,2] - [8] [206,1] [7] [400,2] - [8] [400,1] - [8] [1,2] - [8] [2,2] - [8] [4,2] + [7] [1,4] + [7] [2,4] [7] [4,4] [7] [7,4] [7] [14,4] - [8] [28,2] [7] [28,4] - [8] [54,2] [7] [54,4] - [8] [106,2] [7] [106,4] - [8] [206,2] [7] [206,4] - [8] [400,2] - [8] [1,4] [7] [400,4] - [8] [2,4] - [8] [4,4] [7] [1,7] - [8] [7,4] - [8] [14,4] [7] [2,7] [7] [4,7] - [8] [28,4] [7] [7,7] [7] [14,7] [7] [28,7] [7] [54,7] - [8] [106,4] [7] [106,7] - [8] [206,4] [7] [206,7] - [8] [400,4] - [8] [1,7] - [8] [2,7] - [8] [4,7] - [8] [7,7] - [8] [14,7] - [8] [28,7] - [8] [54,7] [7] [400,7] [7] [1,14] - [8] [106,7] [7] [2,14] [7] [4,14] [7] [7,14] [7] [14,14] [7] [28,14] [7] [54,14] - [8] [206,7] [7] [106,14] [7] [206,14] + [7] [400,14] + [7] [1,28] + [7] [2,28] + [7] [4,28] + [7] [7,28] + [7] [14,28] + [7] [28,28] + [7] [54,28] + [7] [106,28] + [7] [206,28] + [7] [400,28] + [7] [1,54] + [7] [2,54] + [7] [4,54] + [7] [7,54] + [7] [14,54] + [7] [28,54] + [7] [54,54] + [7] [106,54] + [7] [206,54] + [7] [400,54] + [7] [1,106] + [7] [2,106] + [7] [4,106] + [7] [7,106] + [7] [14,106] + [7] [28,106] + [7] [54,106] + [7] [106,106] + [7] [206,106] + [7] [400,106] + [7] [1,206] + [7] [2,206] + [7] [4,206] + [7] [7,206] + [7] [14,206] + [7] [28,206] + [7] [54,206] + [7] [106,206] + [7] [206,206] + [7] [400,206] + [7] [1,400] + [7] [2,400] + [7] [4,400] + [7] [7,400] + [7] [14,400] + [7] [28,400] + [7] [54,400] + [7] [106,400] + [7] [206,400] + [7] [400,400] + [8] [1,1] + [8] [2,1] + [8] [4,1] + [8] [7,1] + [8] [14,1] + [8] [28,1] + [8] [54,1] + [8] [106,1] + [8] [206,1] + [8] [400,1] + [8] [1,2] + [8] [2,2] + [8] [4,2] + [8] [7,2] + [8] [14,2] + [8] [28,2] + [8] [54,2] + [8] [106,2] + [8] [206,2] + [8] [400,2] + [8] [1,4] + [8] [2,4] + [8] [4,4] + [8] [7,4] + [8] [14,4] + [8] [28,4] + [8] [54,4] + [8] [106,4] + [8] [206,4] + [8] [400,4] + [8] [1,7] + [8] [2,7] + [8] [4,7] + [8] [7,7] + [8] [14,7] + [8] [28,7] + [8] [54,7] + [8] [106,7] + [8] [206,7] [8] [400,7] [8] [1,14] [8] [2,14] @@ -1022,19 +1069,9 @@ Starting cross-validation... [8] [14,14] [8] [28,14] [8] [54,14] - [7] [400,14] [8] [106,14] - [7] [1,28] - [7] [2,28] - [7] [4,28] [8] [206,14] - [7] [7,28] - [7] [14,28] - [7] [28,28] - [7] [54,28] - [7] [106,28] [8] [400,14] - [7] [206,28] [8] [1,28] [8] [2,28] [8] [4,28] @@ -1042,88 +1079,49 @@ Starting cross-validation... [8] [14,28] [8] [28,28] [8] [54,28] - [7] [400,28] [8] [106,28] - [7] [1,54] [8] [206,28] - [7] [2,54] - [7] [4,54] - [7] [7,54] [8] [400,28] - [7] [14,54] [8] [1,54] - [7] [28,54] - [7] [54,54] [8] [2,54] - [7] [106,54] [8] [4,54] - [7] [206,54] [8] [7,54] [8] [14,54] [8] [28,54] [8] [54,54] [8] [106,54] - [7] [400,54] [8] [206,54] - [7] [1,106] - [7] [2,106] [8] [400,54] - [7] [4,106] [8] [1,106] - [7] [7,106] - [7] [14,106] [8] [2,106] [8] [4,106] - [7] [28,106] [8] [7,106] - [7] [54,106] - [7] [106,106] [8] [14,106] - [7] [206,106] [8] [28,106] - [7] [400,106] [8] [54,106] [8] [106,106] [8] [206,106] - [7] [1,206] [8] [400,106] - [7] [2,206] [8] [1,206] - [7] [4,206] [8] [2,206] - [7] [7,206] [8] [4,206] - [7] [14,206] [8] [7,206] - [7] [28,206] [8] [14,206] - [7] [54,206] [8] [28,206] - [7] [106,206] - [7] [206,206] [8] [54,206] - [7] [400,206] [8] [106,206] [8] [206,206] [8] [400,206] - [7] [1,400] [8] [1,400] - [7] [2,400] [8] [2,400] - [7] [4,400] [8] [4,400] - [7] [7,400] [8] [7,400] - [7] [14,400] [8] [14,400] - [7] [28,400] [8] [28,400] - [7] [54,400] [8] [54,400] - [7] [106,400] - [7] [206,400] [8] [106,400] - [7] [400,400] + [8] [206,400] + [8] [400,400] [9] [1,1] [9] [2,1] [9] [4,1] @@ -1131,7 +1129,6 @@ Starting cross-validation... [9] [14,1] [9] [28,1] [9] [54,1] - [8] [206,400] [9] [106,1] [9] [206,1] [9] [400,1] @@ -1141,27 +1138,99 @@ Starting cross-validation... [9] [7,2] [9] [14,2] [9] [28,2] - [8] [400,400] - [10] [1,1] - [10] [2,1] [9] [54,2] - [10] [7,1] - [10] [14,1] [9] [106,2] - [10] [28,1] [9] [206,2] - [10] [54,1] - [10] [106,1] [9] [400,2] [9] [1,4] [9] [2,4] - [10] [206,1] + [9] [4,4] [9] [7,4] [9] [14,4] [9] [28,4] [9] [54,4] [9] [106,4] [9] [206,4] + [9] [400,4] + [9] [1,7] + [9] [2,7] + [9] [4,7] + [9] [7,7] + [9] [14,7] + [9] [28,7] + [9] [54,7] + [9] [106,7] + [9] [206,7] + [9] [400,7] + [9] [1,14] + [9] [2,14] + [9] [4,14] + [9] [7,14] + [9] [14,14] + [9] [28,14] + [9] [54,14] + [9] [106,14] + [9] [206,14] + [9] [400,14] + [9] [1,28] + [9] [2,28] + [9] [4,28] + [9] [7,28] + [9] [14,28] + [9] [28,28] + [9] [54,28] + [9] [106,28] + [9] [206,28] + [9] [400,28] + [9] [1,54] + [9] [2,54] + [9] [4,54] + [9] [7,54] + [9] [14,54] + [9] [28,54] + [9] [54,54] + [9] [106,54] + [9] [206,54] + [9] [400,54] + [9] [1,106] + [9] [2,106] + [9] [4,106] + [9] [7,106] + [9] [14,106] + [9] [28,106] + [9] [54,106] + [9] [106,106] + [9] [206,106] + [9] [400,106] + [9] [1,206] + [9] [2,206] + [9] [4,206] + [9] [7,206] + [9] [14,206] + [9] [28,206] + [9] [54,206] + [9] [106,206] + [9] [206,206] + [9] [400,206] + [9] [1,400] + [9] [2,400] + [9] [4,400] + [9] [7,400] + [9] [14,400] + [9] [28,400] + [9] [54,400] + [9] [106,400] + [9] [206,400] + [9] [400,400] + [10] [1,1] + [10] [2,1] + [10] [4,1] + [10] [7,1] + [10] [14,1] + [10] [28,1] + [10] [54,1] + [10] [106,1] + [10] [206,1] [10] [400,1] [10] [1,2] [10] [2,2] @@ -1171,35 +1240,17 @@ Starting cross-validation... [10] [28,2] [10] [54,2] [10] [106,2] - [9] [400,4] - [9] [1,7] - [9] [2,7] - [9] [4,7] - [9] [7,7] - [9] [14,7] [10] [206,2] - [9] [28,7] - [9] [54,7] - [9] [106,7] [10] [400,2] [10] [1,4] [10] [2,4] [10] [4,4] [10] [7,4] [10] [14,4] - [9] [206,7] [10] [28,4] [10] [54,4] [10] [106,4] [10] [206,4] - [9] [400,7] - [9] [1,14] - [9] [2,14] - [9] [4,14] - [9] [7,14] - [9] [14,14] - [9] [28,14] - [9] [54,14] [10] [400,4] [10] [1,7] [10] [2,7] @@ -1208,123 +1259,75 @@ Starting cross-validation... [10] [14,7] [10] [28,7] [10] [54,7] - [9] [206,14] [10] [106,7] [10] [206,7] - [9] [400,14] - [9] [1,28] - [9] [2,28] - [9] [4,28] [10] [400,7] [10] [1,14] [10] [2,14] - [9] [14,28] [10] [4,14] [10] [7,14] - [9] [28,28] [10] [14,14] [10] [28,14] [10] [54,14] - [9] [106,28] [10] [106,14] - [9] [206,28] - [9] [400,28] + [10] [206,14] [10] [400,14] [10] [1,28] - [9] [1,54] [10] [2,28] [10] [4,28] [10] [7,28] - [9] [2,54] [10] [14,28] [10] [28,28] [10] [54,28] - [9] [4,54] [10] [106,28] - [9] [7,54] [10] [206,28] - [9] [14,54] - [9] [28,54] - [9] [54,54] [10] [400,28] - [9] [106,54] [10] [1,54] - [9] [206,54] [10] [2,54] [10] [4,54] [10] [7,54] - [9] [400,54] [10] [14,54] [10] [28,54] - [9] [1,106] [10] [54,54] [10] [106,54] - [9] [2,106] [10] [206,54] - [9] [4,106] [10] [400,54] - [9] [7,106] [10] [1,106] - [9] [14,106] [10] [2,106] - [9] [28,106] [10] [4,106] - [9] [54,106] - [9] [106,106] [10] [7,106] - [9] [206,106] [10] [14,106] - [9] [400,106] [10] [28,106] [10] [54,106] [10] [106,106] - [9] [1,206] [10] [206,106] [10] [400,106] - [9] [2,206] [10] [1,206] - [9] [4,206] [10] [2,206] - [9] [7,206] [10] [4,206] - [9] [14,206] [10] [7,206] - [9] [28,206] [10] [14,206] - [9] [54,206] [10] [28,206] - [9] [106,206] [10] [54,206] - [9] [206,206] [10] [106,206] - [9] [400,206] [10] [206,206] [10] [400,206] - [9] [1,400] [10] [1,400] - [9] [2,400] [10] [2,400] - [9] [4,400] [10] [4,400] - [9] [7,400] [10] [7,400] - [9] [14,400] [10] [14,400] - [9] [28,400] - [9] [54,400] [10] [28,400] [10] [54,400] - [9] [106,400] - [9] [206,400] [10] [106,400] - [9] [400,400] + [10] [206,400] + [10] [400,400] [11] [1,1] [11] [2,1] [11] [4,1] [11] [7,1] [11] [14,1] [11] [28,1] - [10] [206,400] [11] [54,1] [11] [106,1] [11] [206,1] @@ -1335,45 +1338,109 @@ Starting cross-validation... [11] [7,2] [11] [14,2] [11] [28,2] - [10] [400,400] + [11] [54,2] + [11] [106,2] + [11] [206,2] + [11] [400,2] + [11] [1,4] + [11] [2,4] + [11] [4,4] + [11] [7,4] + [11] [14,4] + [11] [28,4] + [11] [54,4] + [11] [106,4] + [11] [206,4] + [11] [400,4] + [11] [1,7] + [11] [2,7] + [11] [4,7] + [11] [7,7] + [11] [14,7] + [11] [28,7] + [11] [54,7] + [11] [106,7] + [11] [206,7] + [11] [400,7] + [11] [1,14] + [11] [2,14] + [11] [4,14] + [11] [7,14] + [11] [14,14] + [11] [28,14] + [11] [54,14] + [11] [106,14] + [11] [206,14] + [11] [400,14] + [11] [1,28] + [11] [2,28] + [11] [4,28] + [11] [7,28] + [11] [14,28] + [11] [28,28] + [11] [54,28] + [11] [106,28] + [11] [206,28] + [11] [400,28] + [11] [1,54] + [11] [2,54] + [11] [4,54] + [11] [7,54] + [11] [14,54] + [11] [28,54] + [11] [54,54] + [11] [106,54] + [11] [206,54] + [11] [400,54] + [11] [1,106] + [11] [2,106] + [11] [4,106] + [11] [7,106] + [11] [14,106] + [11] [28,106] + [11] [54,106] + [11] [106,106] + [11] [206,106] + [11] [400,106] + [11] [1,206] + [11] [2,206] + [11] [4,206] + [11] [7,206] + [11] [14,206] + [11] [28,206] + [11] [54,206] + [11] [106,206] + [11] [206,206] + [11] [400,206] + [11] [1,400] + [11] [2,400] + [11] [4,400] + [11] [7,400] + [11] [14,400] + [11] [28,400] + [11] [54,400] + [11] [106,400] + [11] [206,400] + [11] [400,400] [12] [1,1] [12] [2,1] [12] [4,1] [12] [7,1] - [11] [54,2] [12] [14,1] [12] [28,1] [12] [54,1] [12] [106,1] - [11] [106,2] - [11] [206,2] [12] [206,1] - [11] [400,2] - [11] [1,4] - [11] [2,4] - [11] [4,4] [12] [400,1] [12] [1,2] [12] [2,2] [12] [4,2] [12] [7,2] [12] [14,2] - [11] [28,4] [12] [28,2] - [11] [54,4] [12] [54,2] [12] [106,2] - [11] [106,4] [12] [206,2] - [11] [206,4] - [11] [400,4] - [11] [1,7] - [11] [2,7] - [11] [4,7] - [11] [7,7] - [11] [14,7] - [11] [28,7] - [11] [54,7] [12] [400,2] [12] [1,4] [12] [2,4] @@ -1383,135 +1450,78 @@ Starting cross-validation... [12] [28,4] [12] [54,4] [12] [106,4] - [11] [206,7] [12] [206,4] - [11] [400,7] - [11] [1,14] - [11] [2,14] - [11] [4,14] - [11] [7,14] [12] [400,4] - [11] [14,14] [12] [1,7] - [11] [28,14] [12] [2,7] [12] [4,7] [12] [7,7] [12] [14,7] - [11] [54,14] [12] [28,7] [12] [54,7] - [11] [106,14] [12] [106,7] - [11] [206,14] [12] [206,7] - [11] [400,14] - [11] [1,28] - [11] [2,28] - [11] [4,28] [12] [400,7] [12] [1,14] - [11] [7,28] - [11] [14,28] [12] [2,14] - [11] [28,28] [12] [4,14] [12] [7,14] [12] [14,14] [12] [28,14] - [11] [54,28] [12] [54,14] - [11] [106,28] [12] [106,14] - [11] [206,28] [12] [206,14] - [11] [400,28] [12] [400,14] - [11] [1,54] [12] [1,28] [12] [2,28] [12] [4,28] [12] [7,28] - [11] [4,54] [12] [14,28] [12] [28,28] - [11] [7,54] [12] [54,28] [12] [106,28] - [11] [14,54] - [11] [28,54] [12] [206,28] - [11] [54,54] - [11] [106,54] - [11] [206,54] [12] [400,28] [12] [1,54] [12] [2,54] - [11] [400,54] [12] [4,54] - [11] [1,106] [12] [7,54] [12] [14,54] [12] [28,54] - [11] [2,106] [12] [54,54] [12] [106,54] - [11] [4,106] - [11] [7,106] + [12] [206,54] [12] [400,54] - [11] [14,106] [12] [1,106] - [11] [28,106] [12] [2,106] - [11] [54,106] - [11] [106,106] - [11] [206,106] + [12] [4,106] [12] [7,106] - [11] [400,106] [12] [14,106] [12] [28,106] - [11] [1,206] [12] [54,106] [12] [106,106] [12] [206,106] - [11] [2,206] [12] [400,106] - [11] [4,206] [12] [1,206] - [11] [7,206] [12] [2,206] - [11] [14,206] [12] [4,206] - [11] [28,206] [12] [7,206] - [11] [54,206] [12] [14,206] - [11] [106,206] - [11] [206,206] [12] [28,206] - [11] [400,206] [12] [54,206] [12] [106,206] [12] [206,206] - [11] [1,400] [12] [400,206] - [11] [2,400] [12] [1,400] - [11] [4,400] [12] [2,400] - [11] [7,400] [12] [4,400] - [11] [14,400] [12] [7,400] - [11] [28,400] [12] [14,400] - [11] [54,400] [12] [28,400] - [11] [106,400] [12] [54,400] [12] [106,400] - [11] [206,400] - [11] [400,400] + [12] [206,400] + [12] [400,400] [13] [1,1] [13] [2,1] [13] [4,1] @@ -1521,25 +1531,15 @@ Starting cross-validation... [13] [54,1] [13] [106,1] [13] [206,1] - [12] [400,400] - [14] [1,1] - [14] [2,1] - [14] [4,1] - [14] [7,1] - [14] [14,1] - [14] [28,1] [13] [400,1] [13] [1,2] [13] [2,2] [13] [4,2] - [14] [54,1] [13] [7,2] [13] [14,2] [13] [28,2] [13] [54,2] - [14] [106,1] [13] [106,2] - [14] [206,1] [13] [206,2] [13] [400,2] [13] [1,4] @@ -1549,6 +1549,88 @@ Starting cross-validation... [13] [14,4] [13] [28,4] [13] [54,4] + [13] [106,4] + [13] [206,4] + [13] [400,4] + [13] [1,7] + [13] [2,7] + [13] [4,7] + [13] [7,7] + [13] [14,7] + [13] [28,7] + [13] [54,7] + [13] [106,7] + [13] [206,7] + [13] [400,7] + [13] [1,14] + [13] [2,14] + [13] [4,14] + [13] [7,14] + [13] [14,14] + [13] [28,14] + [13] [54,14] + [13] [106,14] + [13] [206,14] + [13] [400,14] + [13] [1,28] + [13] [2,28] + [13] [4,28] + [13] [7,28] + [13] [14,28] + [13] [28,28] + [13] [54,28] + [13] [106,28] + [13] [206,28] + [13] [400,28] + [13] [1,54] + [13] [2,54] + [13] [4,54] + [13] [7,54] + [13] [14,54] + [13] [28,54] + [13] [54,54] + [13] [106,54] + [13] [206,54] + [13] [400,54] + [13] [1,106] + [13] [2,106] + [13] [4,106] + [13] [7,106] + [13] [14,106] + [13] [28,106] + [13] [54,106] + [13] [106,106] + [13] [206,106] + [13] [400,106] + [13] [1,206] + [13] [2,206] + [13] [4,206] + [13] [7,206] + [13] [14,206] + [13] [28,206] + [13] [54,206] + [13] [106,206] + [13] [206,206] + [13] [400,206] + [13] [1,400] + [13] [2,400] + [13] [4,400] + [13] [7,400] + [13] [14,400] + [13] [28,400] + [13] [54,400] + [13] [106,400] + [13] [206,400] + [13] [400,400] + [14] [1,1] + [14] [2,1] + [14] [4,1] + [14] [7,1] + [14] [14,1] + [14] [28,1] + [14] [54,1] + [14] [106,1] + [14] [206,1] [14] [400,1] [14] [1,2] [14] [2,2] @@ -1558,156 +1640,88 @@ Starting cross-validation... [14] [28,2] [14] [54,2] [14] [106,2] - [13] [206,4] [14] [206,2] - [13] [400,4] - [13] [1,7] - [13] [2,7] - [13] [4,7] - [13] [7,7] - [13] [14,7] - [13] [28,7] - [13] [54,7] [14] [400,2] [14] [1,4] [14] [2,4] [14] [4,4] [14] [7,4] [14] [14,4] - [13] [106,7] [14] [28,4] [14] [54,4] - [13] [206,7] [14] [106,4] [14] [206,4] - [13] [400,7] - [13] [1,14] - [13] [2,14] - [13] [4,14] - [13] [7,14] - [13] [14,14] - [13] [28,14] [14] [400,4] - [13] [54,14] [14] [1,7] [14] [2,7] [14] [4,7] [14] [7,7] [14] [14,7] - [13] [106,14] [14] [28,7] [14] [54,7] - [14] [106,7] - [13] [206,14] - [14] [206,7] - [13] [400,14] - [13] [1,28] - [13] [2,28] - [13] [4,28] + [14] [106,7] + [14] [206,7] [14] [400,7] [14] [1,14] - [13] [7,28] [14] [2,14] [14] [4,14] - [13] [14,28] [14] [7,14] [14] [14,14] - [13] [28,28] [14] [28,14] [14] [54,14] - [13] [54,28] [14] [106,14] - [13] [106,28] [14] [206,14] - [13] [206,28] [14] [400,14] [14] [1,28] - [13] [400,28] [14] [2,28] [14] [4,28] - [13] [1,54] + [14] [7,28] [14] [14,28] [14] [28,28] - [13] [2,54] [14] [54,28] [14] [106,28] - [13] [4,54] - [13] [7,54] [14] [206,28] - [13] [14,54] - [13] [28,54] [14] [400,28] - [13] [54,54] - [13] [106,54] [14] [1,54] - [13] [206,54] [14] [2,54] [14] [4,54] [14] [7,54] - [13] [400,54] [14] [14,54] [14] [28,54] [14] [54,54] - [13] [1,106] [14] [106,54] [14] [206,54] - [13] [2,106] - [13] [4,106] [14] [400,54] - [13] [7,106] [14] [1,106] [14] [2,106] - [13] [14,106] [14] [4,106] - [13] [54,106] [14] [7,106] - [13] [106,106] [14] [14,106] - [13] [206,106] [14] [28,106] - [13] [400,106] [14] [54,106] [14] [106,106] [14] [206,106] - [13] [1,206] [14] [400,106] - [13] [2,206] [14] [1,206] - [13] [4,206] [14] [2,206] [14] [4,206] - [13] [7,206] [14] [7,206] - [13] [14,206] [14] [14,206] - [13] [28,206] [14] [28,206] - [13] [54,206] [14] [54,206] - [13] [106,206] [14] [106,206] [14] [206,206] - [13] [400,206] [14] [400,206] - [13] [1,400] [14] [1,400] - [13] [2,400] [14] [2,400] - [13] [4,400] [14] [4,400] - [13] [7,400] [14] [7,400] - [13] [14,400] [14] [14,400] - [13] [28,400] [14] [28,400] - [13] [54,400] [14] [54,400] - [13] [106,400] [14] [106,400] - [13] [206,400] [14] [206,400] - [13] [400,400] + [14] [400,400] [15] [1,1] [15] [2,1] [15] [4,1] @@ -1715,17 +1729,8 @@ Starting cross-validation... [15] [14,1] [15] [28,1] [15] [54,1] - [14] [400,400] - [16] [1,1] - [16] [2,1] - [16] [4,1] - [16] [7,1] - [16] [14,1] - [16] [28,1] - [16] [54,1] + [15] [106,1] [15] [206,1] - [16] [106,1] - [16] [206,1] [15] [400,1] [15] [1,2] [15] [2,2] @@ -1733,37 +1738,19 @@ Starting cross-validation... [15] [7,2] [15] [14,2] [15] [28,2] - [16] [1,2] - [16] [2,2] - [16] [4,2] - [16] [7,2] - [16] [14,2] [15] [54,2] - [16] [28,2] - [16] [54,2] [15] [106,2] - [16] [106,2] [15] [206,2] - [16] [206,2] [15] [400,2] [15] [1,4] [15] [2,4] [15] [4,4] [15] [7,4] [15] [14,4] - [16] [400,2] - [16] [1,4] - [16] [2,4] - [16] [4,4] - [16] [7,4] - [16] [14,4] + [15] [28,4] [15] [54,4] - [16] [28,4] - [16] [54,4] [15] [106,4] [15] [206,4] - [16] [106,4] - [16] [206,4] [15] [400,4] [15] [1,7] [15] [2,7] @@ -1773,6 +1760,97 @@ Starting cross-validation... [15] [28,7] [15] [54,7] [15] [106,7] + [15] [206,7] + [15] [400,7] + [15] [1,14] + [15] [2,14] + [15] [4,14] + [15] [7,14] + [15] [14,14] + [15] [28,14] + [15] [54,14] + [15] [106,14] + [15] [206,14] + [15] [400,14] + [15] [1,28] + [15] [2,28] + [15] [4,28] + [15] [7,28] + [15] [14,28] + [15] [28,28] + [15] [54,28] + [15] [106,28] + [15] [206,28] + [15] [400,28] + [15] [1,54] + [15] [2,54] + [15] [4,54] + [15] [7,54] + [15] [14,54] + [15] [28,54] + [15] [54,54] + [15] [106,54] + [15] [206,54] + [15] [400,54] + [15] [1,106] + [15] [2,106] + [15] [4,106] + [15] [7,106] + [15] [14,106] + [15] [28,106] + [15] [54,106] + [15] [106,106] + [15] [206,106] + [15] [400,106] + [15] [1,206] + [15] [2,206] + [15] [4,206] + [15] [7,206] + [15] [14,206] + [15] [28,206] + [15] [54,206] + [15] [106,206] + [15] [206,206] + [15] [400,206] + [15] [1,400] + [15] [2,400] + [15] [4,400] + [15] [7,400] + [15] [14,400] + [15] [28,400] + [15] [54,400] + [15] [106,400] + [15] [206,400] + [15] [400,400] + [16] [1,1] + [16] [2,1] + [16] [4,1] + [16] [7,1] + [16] [14,1] + [16] [28,1] + [16] [54,1] + [16] [106,1] + [16] [206,1] + [16] [400,1] + [16] [1,2] + [16] [2,2] + [16] [4,2] + [16] [7,2] + [16] [14,2] + [16] [28,2] + [16] [54,2] + [16] [106,2] + [16] [206,2] + [16] [400,2] + [16] [1,4] + [16] [2,4] + [16] [4,4] + [16] [7,4] + [16] [14,4] + [16] [28,4] + [16] [54,4] + [16] [106,4] + [16] [206,4] [16] [400,4] [16] [1,7] [16] [2,7] @@ -1781,127 +1859,169 @@ Starting cross-validation... [16] [14,7] [16] [28,7] [16] [54,7] - [15] [206,7] [16] [106,7] [16] [206,7] - [15] [400,7] - [15] [1,14] - [15] [2,14] - [15] [4,14] - [15] [7,14] [16] [400,7] - [15] [14,14] - [15] [28,14] + [16] [1,14] [16] [2,14] - [15] [54,14] [16] [4,14] [16] [7,14] [16] [14,14] - [15] [106,14] [16] [28,14] [16] [54,14] - [15] [206,14] [16] [106,14] [16] [206,14] - [15] [400,14] - [15] [1,28] - [15] [2,28] - [15] [4,28] [16] [400,14] - [15] [7,28] [16] [1,28] - [15] [14,28] [16] [2,28] - [15] [54,28] [16] [4,28] - [15] [106,28] + [16] [7,28] [16] [14,28] [16] [28,28] - [15] [206,28] [16] [54,28] [16] [106,28] [16] [206,28] - [15] [400,28] - [15] [1,54] [16] [400,28] - [15] [2,54] [16] [1,54] - [15] [4,54] [16] [2,54] - [15] [7,54] [16] [4,54] - [15] [14,54] [16] [7,54] [16] [14,54] - [15] [28,54] [16] [28,54] - [15] [54,54] [16] [54,54] - [15] [106,54] [16] [106,54] - [15] [206,54] [16] [206,54] - [15] [400,54] [16] [400,54] - [15] [1,106] [16] [1,106] - [15] [2,106] [16] [2,106] - [15] [4,106] [16] [4,106] - [15] [7,106] [16] [7,106] - [15] [14,106] [16] [14,106] - [15] [28,106] - [15] [54,106] [16] [28,106] - [15] [106,106] [16] [54,106] - [15] [206,106] [16] [106,106] [16] [206,106] - [15] [400,106] [16] [400,106] - [15] [1,206] [16] [1,206] - [15] [2,206] [16] [2,206] - [15] [4,206] [16] [4,206] - [15] [7,206] [16] [7,206] - [15] [14,206] [16] [14,206] - [15] [28,206] [16] [28,206] - [15] [54,206] [16] [54,206] - [15] [106,206] [16] [106,206] - [15] [206,206] [16] [206,206] - [15] [400,206] [16] [400,206] - [15] [1,400] [16] [1,400] - [15] [2,400] [16] [2,400] - [15] [4,400] [16] [4,400] - [15] [7,400] [16] [7,400] - [15] [14,400] [16] [14,400] - [15] [28,400] [16] [28,400] [16] [54,400] - [15] [54,400] [16] [106,400] - [15] [106,400] [16] [206,400] - [15] [206,400] [16] [400,400] + [17] [1,1] + [17] [2,1] + [17] [4,1] + [17] [7,1] + [17] [14,1] + [17] [28,1] + [17] [54,1] + [17] [106,1] + [17] [206,1] + [17] [400,1] + [17] [1,2] + [17] [2,2] + [17] [4,2] + [17] [7,2] + [17] [14,2] + [17] [28,2] + [17] [54,2] + [17] [106,2] + [17] [206,2] + [17] [400,2] + [17] [1,4] + [17] [2,4] + [17] [4,4] + [17] [7,4] + [17] [14,4] + [17] [28,4] + [17] [54,4] + [17] [106,4] + [17] [206,4] + [17] [400,4] + [17] [1,7] + [17] [2,7] + [17] [4,7] + [17] [7,7] + [17] [14,7] + [17] [28,7] + [17] [54,7] + [17] [106,7] + [17] [206,7] + [17] [400,7] + [17] [1,14] + [17] [2,14] + [17] [4,14] + [17] [7,14] + [17] [14,14] + [17] [28,14] + [17] [54,14] + [17] [106,14] + [17] [206,14] + [17] [400,14] + [17] [1,28] + [17] [2,28] + [17] [4,28] + [17] [7,28] + [17] [14,28] + [17] [28,28] + [17] [54,28] + [17] [106,28] + [17] [206,28] + [17] [400,28] + [17] [1,54] + [17] [2,54] + [17] [4,54] + [17] [7,54] + [17] [14,54] + [17] [28,54] + [17] [54,54] + [17] [106,54] + [17] [206,54] + [17] [400,54] + [17] [1,106] + [17] [2,106] + [17] [4,106] + [17] [7,106] + [17] [14,106] + [17] [28,106] + [17] [54,106] + [17] [106,106] + [17] [206,106] + [17] [400,106] + [17] [1,206] + [17] [2,206] + [17] [4,206] + [17] [7,206] + [17] [14,206] + [17] [28,206] + [17] [54,206] + [17] [106,206] + [17] [206,206] + [17] [400,206] + [17] [1,400] + [17] [2,400] + [17] [4,400] + [17] [7,400] + [17] [14,400] + [17] [28,400] + [17] [54,400] + [17] [106,400] + [17] [206,400] + [17] [400,400] [18] [1,1] [18] [2,1] [18] [4,1] @@ -1909,17 +2029,8 @@ Starting cross-validation... [18] [14,1] [18] [28,1] [18] [54,1] - [15] [400,400] [18] [106,1] - [17] [1,1] - [17] [2,1] - [17] [4,1] - [17] [7,1] - [17] [14,1] - [17] [28,1] [18] [206,1] - [17] [54,1] - [17] [106,1] [18] [400,1] [18] [1,2] [18] [2,2] @@ -1927,39 +2038,19 @@ Starting cross-validation... [18] [7,2] [18] [14,2] [18] [28,2] - [17] [206,1] [18] [54,2] [18] [106,2] [18] [206,2] - [17] [400,1] - [17] [1,2] - [17] [2,2] - [17] [4,2] - [17] [7,2] - [17] [14,2] - [17] [28,2] - [17] [54,2] - [17] [106,2] [18] [400,2] [18] [1,4] [18] [2,4] [18] [4,4] [18] [7,4] [18] [14,4] - [17] [206,2] [18] [28,4] [18] [54,4] [18] [106,4] [18] [206,4] - [17] [400,2] - [17] [1,4] - [17] [2,4] - [17] [4,4] - [17] [7,4] - [17] [14,4] - [17] [28,4] - [17] [54,4] - [17] [106,4] [18] [400,4] [18] [1,7] [18] [2,7] @@ -1967,141 +2058,170 @@ Starting cross-validation... [18] [7,7] [18] [14,7] [18] [28,7] - [17] [206,4] [18] [54,7] [18] [106,7] [18] [206,7] - [17] [400,4] - [17] [1,7] - [17] [2,7] - [17] [4,7] - [17] [7,7] - [17] [14,7] - [17] [28,7] - [17] [54,7] - [17] [106,7] [18] [400,7] [18] [1,14] [18] [2,14] - [17] [206,7] [18] [4,14] [18] [7,14] [18] [14,14] [18] [28,14] [18] [54,14] [18] [106,14] - [17] [400,7] - [17] [1,14] [18] [206,14] - [17] [2,14] - [17] [4,14] - [17] [7,14] - [17] [14,14] - [17] [28,14] - [17] [54,14] - [17] [106,14] [18] [400,14] [18] [1,28] - [17] [206,14] [18] [2,28] [18] [4,28] [18] [7,28] [18] [14,28] [18] [28,28] [18] [54,28] - [17] [400,14] [18] [106,28] - [17] [1,28] - [17] [2,28] - [17] [4,28] [18] [206,28] - [17] [7,28] - [17] [14,28] - [17] [28,28] - [17] [54,28] - [17] [106,28] [18] [400,28] - [17] [206,28] [18] [1,54] [18] [2,54] [18] [4,54] - [17] [400,28] [18] [7,54] - [17] [1,54] [18] [14,54] - [17] [2,54] [18] [28,54] [18] [54,54] - [17] [4,54] [18] [106,54] - [17] [7,54] [18] [206,54] - [17] [14,54] - [17] [28,54] - [17] [54,54] [18] [400,54] - [17] [106,54] - [17] [206,54] [18] [1,106] [18] [2,106] - [17] [400,54] [18] [4,106] - [17] [1,106] [18] [7,106] - [17] [2,106] [18] [14,106] - [17] [4,106] [18] [28,106] - [17] [7,106] [18] [54,106] [18] [106,106] - [17] [14,106] [18] [206,106] - [17] [28,106] [18] [400,106] - [17] [54,106] - [17] [106,106] [18] [1,206] - [17] [206,106] - [17] [400,106] [18] [2,206] - [17] [1,206] [18] [4,206] - [17] [2,206] [18] [7,206] - [17] [4,206] [18] [14,206] - [17] [7,206] [18] [28,206] [18] [54,206] - [17] [14,206] [18] [106,206] - [17] [28,206] [18] [206,206] [18] [400,206] - [17] [54,206] - [17] [106,206] - [17] [206,206] [18] [1,400] - [17] [400,206] [18] [2,400] - [17] [1,400] - [17] [2,400] [18] [4,400] - [17] [4,400] [18] [7,400] - [17] [7,400] [18] [14,400] - [17] [14,400] [18] [28,400] - [17] [28,400] [18] [54,400] - [17] [54,400] [18] [106,400] - [17] [106,400] [18] [206,400] - [17] [206,400] [18] [400,400] + [19] [1,1] + [19] [2,1] + [19] [4,1] + [19] [7,1] + [19] [14,1] + [19] [28,1] + [19] [54,1] + [19] [106,1] + [19] [206,1] + [19] [400,1] + [19] [1,2] + [19] [2,2] + [19] [4,2] + [19] [7,2] + [19] [14,2] + [19] [28,2] + [19] [54,2] + [19] [106,2] + [19] [206,2] + [19] [400,2] + [19] [1,4] + [19] [2,4] + [19] [4,4] + [19] [7,4] + [19] [14,4] + [19] [28,4] + [19] [54,4] + [19] [106,4] + [19] [206,4] + [19] [400,4] + [19] [1,7] + [19] [2,7] + [19] [4,7] + [19] [7,7] + [19] [14,7] + [19] [28,7] + [19] [54,7] + [19] [106,7] + [19] [206,7] + [19] [400,7] + [19] [1,14] + [19] [2,14] + [19] [4,14] + [19] [7,14] + [19] [14,14] + [19] [28,14] + [19] [54,14] + [19] [106,14] + [19] [206,14] + [19] [400,14] + [19] [1,28] + [19] [2,28] + [19] [4,28] + [19] [7,28] + [19] [14,28] + [19] [28,28] + [19] [54,28] + [19] [106,28] + [19] [206,28] + [19] [400,28] + [19] [1,54] + [19] [2,54] + [19] [4,54] + [19] [7,54] + [19] [14,54] + [19] [28,54] + [19] [54,54] + [19] [106,54] + [19] [206,54] + [19] [400,54] + [19] [1,106] + [19] [2,106] + [19] [4,106] + [19] [7,106] + [19] [14,106] + [19] [28,106] + [19] [54,106] + [19] [106,106] + [19] [206,106] + [19] [400,106] + [19] [1,206] + [19] [2,206] + [19] [4,206] + [19] [7,206] + [19] [14,206] + [19] [28,206] + [19] [54,206] + [19] [106,206] + [19] [206,206] + [19] [400,206] + [19] [1,400] + [19] [2,400] + [19] [4,400] + [19] [7,400] + [19] [14,400] + [19] [28,400] + [19] [54,400] + [19] [106,400] + [19] [206,400] + [19] [400,400] [20] [1,1] [20] [2,1] [20] [4,1] @@ -2109,18 +2229,8 @@ Starting cross-validation... [20] [14,1] [20] [28,1] [20] [54,1] - [17] [400,400] - [19] [1,1] - [19] [2,1] - [19] [4,1] - [19] [7,1] [20] [106,1] - [19] [14,1] - [19] [28,1] - [19] [54,1] - [19] [106,1] [20] [206,1] - [19] [206,1] [20] [400,1] [20] [1,2] [20] [2,2] @@ -2129,18 +2239,8 @@ Starting cross-validation... [20] [14,2] [20] [28,2] [20] [54,2] - [19] [400,1] - [19] [1,2] - [19] [2,2] - [19] [4,2] - [19] [7,2] - [19] [14,2] [20] [106,2] - [19] [28,2] - [19] [54,2] [20] [206,2] - [19] [106,2] - [19] [206,2] [20] [400,2] [20] [1,4] [20] [2,4] @@ -2150,195 +2250,97 @@ Starting cross-validation... [20] [28,4] [20] [54,4] [20] [106,4] - [19] [400,2] - [19] [1,4] - [19] [2,4] - [19] [4,4] - [19] [7,4] - [19] [14,4] - [19] [28,4] [20] [206,4] - [19] [54,4] - [19] [106,4] - [19] [206,4] [20] [400,4] [20] [1,7] - [19] [400,4] [20] [2,7] - [19] [1,7] [20] [4,7] - [19] [2,7] [20] [7,7] [20] [14,7] - [19] [4,7] - [19] [7,7] [20] [28,7] - [19] [14,7] - [19] [28,7] [20] [54,7] - [19] [54,7] [20] [106,7] - [19] [106,7] - [19] [206,7] [20] [206,7] - [19] [400,7] [20] [400,7] - [19] [1,14] [20] [1,14] - [19] [2,14] [20] [2,14] - [19] [4,14] [20] [4,14] - [19] [7,14] [20] [7,14] - [19] [14,14] [20] [14,14] - [19] [28,14] [20] [28,14] - [19] [54,14] [20] [54,14] - [19] [106,14] [20] [106,14] [20] [206,14] - [19] [206,14] [20] [400,14] [20] [1,28] - [19] [400,14] [20] [2,28] - [19] [1,28] [20] [4,28] [20] [7,28] - [19] [4,28] [20] [14,28] - [19] [7,28] [20] [28,28] - [19] [14,28] [20] [54,28] - [19] [28,28] - [19] [54,28] [20] [106,28] - [19] [106,28] [20] [206,28] - [19] [206,28] [20] [400,28] [20] [1,54] - [19] [400,28] - [19] [1,54] - [19] [2,54] + [20] [2,54] [20] [4,54] - [19] [4,54] [20] [7,54] - [19] [7,54] [20] [14,54] - [19] [14,54] [20] [28,54] - [19] [28,54] [20] [54,54] - [19] [54,54] [20] [106,54] - [19] [106,54] - [19] [206,54] [20] [206,54] [20] [400,54] - [19] [400,54] - [19] [1,106] [20] [1,106] - [19] [2,106] [20] [2,106] - [19] [4,106] [20] [4,106] [20] [7,106] - [19] [7,106] [20] [14,106] - [19] [14,106] [20] [28,106] - [19] [28,106] [20] [54,106] - [19] [54,106] [20] [106,106] - [19] [106,106] [20] [206,106] - [19] [206,106] [20] [400,106] - [19] [400,106] [20] [1,206] - [19] [1,206] [20] [2,206] - [19] [2,206] [20] [4,206] - [19] [4,206] [20] [7,206] - [19] [7,206] [20] [14,206] - [19] [14,206] [20] [28,206] - [19] [28,206] [20] [54,206] - [19] [54,206] [20] [106,206] - [19] [106,206] [20] [206,206] - [19] [206,206] [20] [400,206] - [19] [400,206] [20] [1,400] - [19] [1,400] [20] [2,400] - [19] [2,400] [20] [4,400] - [19] [4,400] [20] [7,400] - [19] [7,400] [20] [14,400] - [19] [14,400] - [19] [28,400] [20] [28,400] - [19] [54,400] [20] [54,400] - [19] [106,400] [20] [106,400] - [19] [206,400] [20] [206,400] - [19] [400,400] + [20] [400,400] [21] [1,1] [21] [2,1] [21] [4,1] [21] [7,1] [21] [14,1] - [20] [400,400] [21] [28,1] - [22] [1,1] - [22] [2,1] - [22] [4,1] - [22] [7,1] - [22] [14,1] [21] [54,1] - [22] [28,1] - [22] [54,1] [21] [106,1] - [22] [106,1] [21] [206,1] - [22] [206,1] [21] [400,1] [21] [1,2] [21] [2,2] [21] [4,2] [21] [7,2] [21] [14,2] - [22] [400,1] - [22] [1,2] [21] [28,2] - [22] [2,2] - [22] [4,2] - [22] [7,2] - [22] [14,2] [21] [54,2] - [22] [28,2] - [22] [54,2] [21] [106,2] - [22] [106,2] [21] [206,2] - [22] [206,2] [21] [400,2] [21] [1,4] [21] [2,4] @@ -2347,17 +2349,8 @@ Starting cross-validation... [21] [14,4] [21] [28,4] [21] [54,4] - [22] [400,2] - [22] [1,4] - [22] [2,4] [21] [106,4] - [22] [7,4] - [22] [14,4] - [22] [28,4] - [22] [54,4] [21] [206,4] - [22] [106,4] - [22] [206,4] [21] [400,4] [21] [1,7] [21] [2,7] @@ -2367,19 +2360,9 @@ Starting cross-validation... [21] [28,7] [21] [54,7] [21] [106,7] - [22] [400,4] - [22] [1,7] [21] [206,7] - [22] [2,7] - [22] [4,7] - [22] [7,7] - [22] [14,7] - [22] [28,7] - [22] [54,7] - [22] [106,7] [21] [400,7] [21] [1,14] - [22] [206,7] [21] [2,14] [21] [4,14] [21] [7,14] @@ -2387,6 +2370,97 @@ Starting cross-validation... [21] [28,14] [21] [54,14] [21] [106,14] + [21] [206,14] + [21] [400,14] + [21] [1,28] + [21] [2,28] + [21] [4,28] + [21] [7,28] + [21] [14,28] + [21] [28,28] + [21] [54,28] + [21] [106,28] + [21] [206,28] + [21] [400,28] + [21] [1,54] + [21] [2,54] + [21] [4,54] + [21] [7,54] + [21] [14,54] + [21] [28,54] + [21] [54,54] + [21] [106,54] + [21] [206,54] + [21] [400,54] + [21] [1,106] + [21] [2,106] + [21] [4,106] + [21] [7,106] + [21] [14,106] + [21] [28,106] + [21] [54,106] + [21] [106,106] + [21] [206,106] + [21] [400,106] + [21] [1,206] + [21] [2,206] + [21] [4,206] + [21] [7,206] + [21] [14,206] + [21] [28,206] + [21] [54,206] + [21] [106,206] + [21] [206,206] + [21] [400,206] + [21] [1,400] + [21] [2,400] + [21] [4,400] + [21] [7,400] + [21] [14,400] + [21] [28,400] + [21] [54,400] + [21] [106,400] + [21] [206,400] + [21] [400,400] + [22] [1,1] + [22] [2,1] + [22] [4,1] + [22] [7,1] + [22] [14,1] + [22] [28,1] + [22] [54,1] + [22] [106,1] + [22] [206,1] + [22] [400,1] + [22] [1,2] + [22] [2,2] + [22] [4,2] + [22] [7,2] + [22] [14,2] + [22] [28,2] + [22] [54,2] + [22] [106,2] + [22] [206,2] + [22] [400,2] + [22] [1,4] + [22] [2,4] + [22] [4,4] + [22] [7,4] + [22] [14,4] + [22] [28,4] + [22] [54,4] + [22] [106,4] + [22] [206,4] + [22] [400,4] + [22] [1,7] + [22] [2,7] + [22] [4,7] + [22] [7,7] + [22] [14,7] + [22] [28,7] + [22] [54,7] + [22] [106,7] + [22] [206,7] [22] [400,7] [22] [1,14] [22] [2,14] @@ -2394,148 +2468,79 @@ Starting cross-validation... [22] [7,14] [22] [14,14] [22] [28,14] - [21] [206,14] [22] [54,14] [22] [106,14] [22] [206,14] - [21] [400,14] - [21] [1,28] - [21] [2,28] - [21] [4,28] - [21] [7,28] [22] [400,14] - [21] [14,28] [22] [1,28] - [21] [28,28] [22] [2,28] [22] [4,28] - [21] [106,28] [22] [7,28] [22] [14,28] [22] [28,28] [22] [54,28] - [21] [206,28] [22] [106,28] [22] [206,28] - [21] [400,28] [22] [400,28] - [21] [1,54] [22] [1,54] - [21] [2,54] [22] [2,54] - [21] [4,54] [22] [4,54] - [21] [7,54] + [22] [7,54] [22] [14,54] - [21] [14,54] [22] [28,54] - [21] [28,54] - [21] [54,54] [22] [54,54] - [21] [106,54] [22] [106,54] - [21] [206,54] [22] [206,54] - [21] [400,54] [22] [400,54] - [21] [1,106] [22] [1,106] - [21] [2,106] [22] [2,106] - [21] [4,106] [22] [4,106] - [21] [7,106] [22] [7,106] - [21] [14,106] [22] [14,106] - [21] [28,106] - [21] [54,106] [22] [28,106] - [21] [106,106] [22] [54,106] - [21] [206,106] [22] [106,106] - [21] [400,106] [22] [206,106] [22] [400,106] - [21] [1,206] [22] [1,206] - [21] [2,206] - [21] [4,206] [22] [2,206] - [21] [7,206] [22] [4,206] - [21] [14,206] [22] [7,206] - [21] [28,206] [22] [14,206] - [21] [54,206] [22] [28,206] - [21] [106,206] [22] [54,206] - [21] [206,206] [22] [106,206] - [21] [400,206] [22] [206,206] [22] [400,206] - [21] [1,400] [22] [1,400] - [21] [2,400] [22] [2,400] - [21] [4,400] [22] [4,400] [22] [7,400] - [21] [7,400] [22] [14,400] - [21] [14,400] - [21] [28,400] [22] [28,400] - [21] [54,400] [22] [54,400] - [21] [106,400] [22] [106,400] - [21] [206,400] [22] [206,400] - [21] [400,400] + [22] [400,400] [23] [1,1] [23] [2,1] [23] [4,1] [23] [7,1] [23] [14,1] [23] [28,1] - [22] [400,400] - [24] [1,1] [23] [54,1] - [24] [2,1] - [24] [4,1] - [24] [7,1] - [24] [14,1] - [24] [28,1] [23] [106,1] - [24] [54,1] - [24] [106,1] [23] [206,1] - [24] [206,1] [23] [400,1] [23] [1,2] [23] [2,2] [23] [4,2] [23] [7,2] - [24] [400,1] - [24] [1,2] [23] [14,2] - [24] [2,2] - [24] [4,2] - [24] [7,2] [23] [28,2] - [24] [14,2] - [24] [28,2] [23] [54,2] - [24] [54,2] [23] [106,2] - [24] [106,2] [23] [206,2] - [24] [206,2] [23] [400,2] [23] [1,4] [23] [2,4] @@ -2544,6 +2549,98 @@ Starting cross-validation... [23] [14,4] [23] [28,4] [23] [54,4] + [23] [106,4] + [23] [206,4] + [23] [400,4] + [23] [1,7] + [23] [2,7] + [23] [4,7] + [23] [7,7] + [23] [14,7] + [23] [28,7] + [23] [54,7] + [23] [106,7] + [23] [206,7] + [23] [400,7] + [23] [1,14] + [23] [2,14] + [23] [4,14] + [23] [7,14] + [23] [14,14] + [23] [28,14] + [23] [54,14] + [23] [106,14] + [23] [206,14] + [23] [400,14] + [23] [1,28] + [23] [2,28] + [23] [4,28] + [23] [7,28] + [23] [14,28] + [23] [28,28] + [23] [54,28] + [23] [106,28] + [23] [206,28] + [23] [400,28] + [23] [1,54] + [23] [2,54] + [23] [4,54] + [23] [7,54] + [23] [14,54] + [23] [28,54] + [23] [54,54] + [23] [106,54] + [23] [206,54] + [23] [400,54] + [23] [1,106] + [23] [2,106] + [23] [4,106] + [23] [7,106] + [23] [14,106] + [23] [28,106] + [23] [54,106] + [23] [106,106] + [23] [206,106] + [23] [400,106] + [23] [1,206] + [23] [2,206] + [23] [4,206] + [23] [7,206] + [23] [14,206] + [23] [28,206] + [23] [54,206] + [23] [106,206] + [23] [206,206] + [23] [400,206] + [23] [1,400] + [23] [2,400] + [23] [4,400] + [23] [7,400] + [23] [14,400] + [23] [28,400] + [23] [54,400] + [23] [106,400] + [23] [206,400] + [23] [400,400] + [24] [1,1] + [24] [2,1] + [24] [4,1] + [24] [7,1] + [24] [14,1] + [24] [28,1] + [24] [54,1] + [24] [106,1] + [24] [206,1] + [24] [400,1] + [24] [1,2] + [24] [2,2] + [24] [4,2] + [24] [7,2] + [24] [14,2] + [24] [28,2] + [24] [54,2] + [24] [106,2] + [24] [206,2] [24] [400,2] [24] [1,4] [24] [2,4] @@ -2551,151 +2648,79 @@ Starting cross-validation... [24] [7,4] [24] [14,4] [24] [28,4] - [23] [106,4] [24] [54,4] [24] [106,4] - [23] [206,4] [24] [206,4] - [23] [400,4] [24] [400,4] [24] [1,7] - [23] [1,7] - [23] [2,7] + [24] [2,7] [24] [4,7] - [23] [4,7] [24] [7,7] - [23] [7,7] [24] [14,7] - [23] [14,7] [24] [28,7] - [23] [28,7] [24] [54,7] - [23] [54,7] [24] [106,7] - [23] [106,7] [24] [206,7] - [23] [206,7] [24] [400,7] - [23] [400,7] [24] [1,14] - [23] [1,14] [24] [2,14] - [23] [2,14] [24] [4,14] [24] [7,14] - [23] [4,14] [24] [14,14] - [23] [7,14] [24] [28,14] - [23] [14,14] - [23] [28,14] [24] [54,14] - [23] [54,14] [24] [106,14] - [23] [106,14] [24] [206,14] - [23] [206,14] [24] [400,14] - [23] [400,14] [24] [1,28] - [23] [1,28] [24] [2,28] - [23] [2,28] [24] [4,28] - [23] [4,28] [24] [7,28] - [23] [7,28] [24] [14,28] [24] [28,28] - [23] [14,28] [24] [54,28] - [23] [28,28] - [23] [54,28] [24] [106,28] - [23] [106,28] [24] [206,28] - [23] [206,28] [24] [400,28] - [23] [400,28] [24] [1,54] - [23] [1,54] [24] [2,54] - [23] [2,54] [24] [4,54] - [23] [4,54] [24] [7,54] - [23] [7,54] [24] [14,54] - [23] [14,54] [24] [28,54] - [23] [28,54] [24] [54,54] - [23] [54,54] [24] [106,54] - [23] [106,54] [24] [206,54] - [23] [206,54] - [23] [400,54] [24] [400,54] - [23] [1,106] [24] [1,106] - [23] [2,106] [24] [2,106] - [23] [4,106] [24] [4,106] - [23] [7,106] [24] [7,106] - [23] [14,106] [24] [14,106] - [23] [28,106] [24] [28,106] - [23] [54,106] [24] [54,106] - [23] [106,106] [24] [106,106] - [23] [206,106] [24] [206,106] - [23] [400,106] [24] [400,106] - [23] [1,206] [24] [1,206] [24] [2,206] - [23] [2,206] [24] [4,206] - [23] [4,206] [24] [7,206] - [23] [7,206] - [23] [14,206] [24] [14,206] - [23] [28,206] [24] [28,206] - [23] [54,206] [24] [54,206] - [23] [106,206] [24] [106,206] - [23] [206,206] [24] [206,206] - [23] [400,206] [24] [400,206] - [23] [1,400] [24] [1,400] - [23] [2,400] [24] [2,400] - [23] [4,400] [24] [4,400] - [23] [7,400] [24] [7,400] [24] [14,400] - [23] [14,400] - [23] [28,400] [24] [28,400] - [23] [54,400] [24] [54,400] - [23] [106,400] [24] [106,400] - [23] [206,400] [24] [206,400] - [23] [400,400] [24] [400,400] [25] [1,1] [25] [2,1] @@ -2845,8 +2870,6 @@ Starting cross-validation... > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("cvrisk", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > graphics::par(get("par.postscript", pos = 'CheckExEnv')) > cleanEx() > nameEx("families") @@ -2854,7 +2877,6 @@ Starting cross-validation... > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: Families > ### Title: Families for GAMLSS models > ### Aliases: Families families GaussianLSS GaussianMu GaussianSigma @@ -2885,7 +2907,7 @@ Starting cross-validation... + risk <- function(y, f, w = 1) { + sum(w * loss(y = y, f = f, df = df)) + } -+ # ngradient is the negative derivate w.r.t. mu ++ # ngradient is the negative derivate w.r.t. mu (=f) + ngradient <- function(y, f, w = 1) { + (df + 1) * (y - f)/(df + (y - f)^2) + } @@ -2910,7 +2932,8 @@ Starting cross-validation... + risk <- function(y, f, w = 1) { + sum(w * loss(y = y, f = f, mu = mu)) + } -+ # ngradient is the negative derivate w.r.t. df ++ # ngradient is the negative derivate of the loss w.r.t. f ++ # in this case, just the derivative of the log-likelihood + ngradient <- function(y, f, w = 1) { + exp(f)/2 * (digamma((exp(f) + 1)/2) - digamma(exp(f)/2)) - + 0.5 - (exp(f)/2 * log(1 + (y - mu)^2 / (exp(f) )) - @@ -2935,14 +2958,14 @@ Loading required package: gamlss.data Loading required package: gamlss.dist Loading required package: MASS -Attaching package: ‘gamlss.dist’ +Attaching package: 'gamlss.dist' -The following object is masked from ‘package:mboost’: +The following object is masked from 'package:mboost': Family Loading required package: nlme - ********** GAMLSS Version 4.3-8 ********** + ********** GAMLSS Version 5.0-1 ********** For more on GAMLSS look at http://www.gamlss.org/ Type gamlssNews() to see new features/changes/bug fixes. @@ -2962,11 +2985,11 @@ Type gamlssNews() to see new features/changes/bug fixes. > coef(model, off2int = TRUE) $mu (Intercept) x1 x2 - 2.0013497 -0.9745979 -2.9987269 + 2.0008585 -0.9741958 -2.9981362 $df (Intercept) x1 - 1.0798780 0.1213042 + 1.085018 0.103676 > > ## compare to pre-defined three parametric t-distribution: @@ -3011,19 +3034,16 @@ $df > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("families", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > cleanEx() -detaching ‘package:gamlss’, ‘package:nlme’, ‘package:gamlss.dist’, - ‘package:MASS’, ‘package:gamlss.data’, ‘package:splines’ +detaching 'package:gamlss', 'package:nlme', 'package:gamlss.dist', + 'package:MASS', 'package:gamlss.data', 'package:splines' > nameEx("gamboostLSS-package") > ### * gamboostLSS-package > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: gamboostLSS-package > ### Title: Boosting algorithms for GAMLSS > ### Aliases: gamboostLSS-package @@ -3064,15 +3084,12 @@ $sigma > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("gamboostLSS-package", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > cleanEx() > nameEx("india") > ### * india > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: india > ### Title: Malnutrition of Children in India (DHS, 1998-99) > ### Aliases: india india.bnd @@ -3088,9 +3105,9 @@ Loading required package: BayesX Loading required package: shapefiles Loading required package: foreign -Attaching package: ‘shapefiles’ +Attaching package: 'shapefiles' -The following objects are masked from ‘package:foreign’: +The following objects are masked from 'package:foreign': read.dbf, write.dbf @@ -3102,18 +3119,15 @@ Note: Function plotsurf depends on akima which has > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("india", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > cleanEx() -detaching ‘package:BayesX’, ‘package:shapefiles’, ‘package:foreign’ +detaching 'package:BayesX', 'package:shapefiles', 'package:foreign' > nameEx("mboostLSS") > ### * mboostLSS > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: mboostLSS > ### Title: Fitting GAMLSS by Boosting > ### Aliases: mboostLSS blackboostLSS glmboostLSS gamboostLSS mboostLSS_fit @@ -3168,16 +3182,16 @@ $sigma + families = NBinomialLSS(), data = dat, + control = boost_control(mstop = 400, trace = TRUE), + center = TRUE) -[ 1] ...................................... -- risk: 3102.966 -[ 41] ...................................... -- risk: 3026.774 -[ 81] ...................................... -- risk: 2963.095 -[ 121] ...................................... -- risk: 2901.378 -[ 161] ...................................... -- risk: 2841.725 -[ 201] ...................................... -- risk: 2788.547 -[ 241] ...................................... -- risk: 2746.665 -[ 281] ...................................... -- risk: 2717.919 -[ 321] ...................................... -- risk: 2700.384 -[ 361] ...................................... +[ 1] ........................................ -- risk: 3102.966 +[ 41] ........................................ -- risk: 3026.774 +[ 81] ........................................ -- risk: 2963.095 +[ 121] ........................................ -- risk: 2901.378 +[ 161] ........................................ -- risk: 2841.725 +[ 201] ........................................ -- risk: 2788.547 +[ 241] ........................................ -- risk: 2746.665 +[ 281] ........................................ -- risk: 2717.919 +[ 321] ........................................ -- risk: 2700.384 +[ 361] ....................................... Final risk: 2690.598 > coef(model2, off2int = TRUE) $mu @@ -3230,16 +3244,16 @@ attr(,"offset") + sigma = 300), + trace = TRUE), + center = TRUE) -[ 1] ...................................... -- risk: 3102.966 -[ 41] ...................................... -- risk: 3026.774 -[ 81] ...................................... -- risk: 2963.095 -[ 121] ...................................... -- risk: 2901.378 -[ 161] ...................................... -- risk: 2841.725 -[ 201] ...................................... -- risk: 2788.547 -[ 241] ...................................... -- risk: 2746.665 -[ 281] ...................................... -- risk: 2721.225 -[ 321] ...................................... -- risk: 2709.597 -[ 361] ...................................... +[ 1] ........................................ -- risk: 3102.966 +[ 41] ........................................ -- risk: 3026.774 +[ 81] ........................................ -- risk: 2963.095 +[ 121] ........................................ -- risk: 2901.378 +[ 161] ........................................ -- risk: 2841.725 +[ 201] ........................................ -- risk: 2788.547 +[ 241] ........................................ -- risk: 2746.665 +[ 281] ........................................ -- risk: 2721.225 +[ 321] ........................................ -- risk: 2709.597 +[ 361] ....................................... Final risk: 2703.712 > coef(model3, off2int = TRUE) $mu @@ -3257,9 +3271,9 @@ $sigma > mstop(model2) <- c(400, 300) Model first reduced to mstop = 300. Now continue ... -[ 301] ...................................... -- risk: 2714.448 -[ 341] ...................................... -- risk: 2706.16 -[ 381] .................. +[ 301] ........................................ -- risk: 2714.448 +[ 341] ........................................ -- risk: 2706.16 +[ 381] ................... Final risk: 2703.712 > par(mfrow = c(1,2)) > plot(model2, xlim = c(0, max(mstop(model2)))) @@ -3269,8 +3283,6 @@ Final risk: 2703.712 > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("mboostLSS", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > graphics::par(get("par.postscript", pos = 'CheckExEnv')) > cleanEx() > nameEx("methods") @@ -3278,7 +3290,6 @@ Final risk: 2703.712 > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: methods > ### Title: Methods for mboostLSS > ### Aliases: print.mboostLSS summary.mboostLSS coef.mboostLSS @@ -3321,43 +3332,43 @@ Final risk: 2703.712 $mu $mu$`bbs(x1, df = dfbase)` 1 2 3 4 5 6 - 3.58171139 2.47642513 1.38321567 0.35846954 -0.55844450 -1.37386804 + 3.58171083 2.47642477 1.38321548 0.35846950 -0.55844447 -1.37386796 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458702 -2.59383102 -2.94780868 -3.13830905 -3.18456722 -3.09471617 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86319999 -2.46725571 -1.87824913 -1.08842574 -0.09273045 1.10805084 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864867 4.00437925 5.60292580 7.22757734 8.84769910 10.46670737 $mu$`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.587567018 -0.597235489 -0.606895359 -0.616493825 -0.625795262 -0.634226162 +-0.587567032 -0.597235501 -0.606895370 -0.616493834 -0.625795270 -0.634226168 7 8 9 10 11 12 --0.640764144 -0.643706523 -0.640665097 -0.629114205 -0.606465892 -0.565608617 +-0.640764148 -0.643706526 -0.640665098 -0.629114205 -0.606465890 -0.565608614 13 14 15 16 17 18 --0.499359388 -0.406250941 -0.289077229 -0.151094932 -0.001816165 0.145180788 +-0.499359387 -0.406250944 -0.289077238 -0.151094948 -0.001816184 0.145180766 19 20 21 22 23 24 - 0.286945776 0.419084241 0.545588456 0.669020116 0.789859912 0.910388836 + 0.286945752 0.419084214 0.545588426 0.669020081 0.789859872 0.910388791 $mu$`bbs(x3, df = dfbase)` 1 2 3 4 5 6 - 0.56795274 0.55780411 0.54748652 0.53585628 0.51985234 0.49117077 + 0.56795259 0.55780398 0.54748640 0.53585618 0.51985225 0.49117069 7 8 9 10 11 12 - 0.42717980 0.28842829 0.05046406 -0.25478976 -0.54504698 -0.75532084 + 0.42717973 0.28842824 0.05046403 -0.25478977 -0.54504697 -0.75532080 13 14 15 16 17 18 --0.86898074 -0.89962648 -0.87265488 -0.81495209 -0.74603751 -0.67649672 +-0.86898069 -0.89962643 -0.87265483 -0.81495206 -0.74603749 -0.67649670 19 20 21 22 23 24 --0.61055474 -0.54837543 -0.48890118 -0.43106752 -0.37389397 -0.31679225 +-0.61055473 -0.54837543 -0.48890119 -0.43106754 -0.37389399 -0.31679228 $mu$`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 2.567451544 2.183750845 1.800221518 1.415979616 1.034193922 0.667283578 + 2.567451543 2.183750843 1.800221516 1.415979613 1.034193918 0.667283574 7 8 9 10 11 12 - 0.322037905 0.009307943 -0.257545411 -0.481058705 -0.669711734 -0.813301926 + 0.322037900 0.009307935 -0.257545424 -0.481058723 -0.669711753 -0.813301941 13 14 15 16 17 18 --0.899364082 -0.932976652 -0.928286940 -0.899492000 -0.856040251 -0.804129859 +-0.899364094 -0.932976661 -0.928286946 -0.899492004 -0.856040252 -0.804129859 19 20 21 22 23 24 --0.747632885 -0.688917493 -0.629440065 -0.569818844 -0.510251318 -0.450694813 +-0.747632882 -0.688917488 -0.629440059 -0.569818836 -0.510251308 -0.450694801 attr(,"offset") [1] 8.987845 @@ -3365,65 +3376,65 @@ attr(,"offset") $sigma $sigma$`bbs(x1, df = dfbase)` 1 2 3 4 5 6 - 0.89659893 0.78713824 0.67616360 0.55710969 0.42730638 0.29198962 + 0.89659885 0.78713816 0.67616352 0.55710962 0.42730633 0.29198959 7 8 9 10 11 12 - 0.16213560 0.05105498 -0.03122623 -0.07636368 -0.07847080 -0.03347975 + 0.16213559 0.05105499 -0.03122621 -0.07636365 -0.07847076 -0.03347972 13 14 15 16 17 18 - 0.05806291 0.17903227 0.30635650 0.42810619 0.53761725 0.62880999 + 0.05806291 0.17903224 0.30635643 0.42810609 0.53761712 0.62880983 19 20 21 22 23 24 - 0.69997365 0.75391415 0.79637610 0.83506324 0.87429112 0.91365873 + 0.69997347 0.75391396 0.79637591 0.83506304 0.87429092 0.91365853 $sigma$`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.563658099 -0.511757632 -0.459777813 -0.407331656 -0.354135638 -0.300469789 +-0.563658114 -0.511757646 -0.459777824 -0.407331666 -0.354135645 -0.300469795 7 8 9 10 11 12 --0.248309055 -0.199527201 -0.154491030 -0.108894039 -0.058401175 -0.002441743 +-0.248309058 -0.199527203 -0.154491031 -0.108894040 -0.058401176 -0.002441744 13 14 15 16 17 18 - 0.056485633 0.113495345 0.164241662 0.204929795 0.235290786 0.264020513 + 0.056485632 0.113495345 0.164241664 0.204929797 0.235290786 0.264020510 19 20 21 22 23 24 - 0.296512365 0.333895128 0.373456407 0.413559904 0.453779441 0.494022639 + 0.296512357 0.333895117 0.373456392 0.413559886 0.453779420 0.494022615 $sigma$`bbs(x3, df = dfbase)` 1 2 3 4 5 6 --0.06993609 0.21499858 0.50028302 0.78648040 1.06468531 1.31096130 +-0.06993606 0.21499861 0.50028305 0.78648044 1.06468535 1.31096134 7 8 9 10 11 12 - 1.49064677 1.57871832 1.56759726 1.44135824 1.19071516 0.83344537 + 1.49064681 1.57871835 1.56759727 1.44135823 1.19071514 0.83344534 13 14 15 16 17 18 - 0.42510438 0.03477713 -0.30056403 -0.55740737 -0.72441644 -0.78900239 + 0.42510435 0.03477711 -0.30056404 -0.55740737 -0.72441643 -0.78900238 19 20 21 22 23 24 --0.75566343 -0.65077256 -0.49956583 -0.32729936 -0.14808084 0.03192021 +-0.75566341 -0.65077254 -0.49956581 -0.32729933 -0.14808081 0.03192024 $sigma$`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 0.96287395 0.92067646 0.87872609 0.83856810 0.80135245 0.76642932 + 0.96287393 0.92067644 0.87872607 0.83856808 0.80135243 0.76642930 7 8 9 10 11 12 - 0.73502975 0.69991232 0.65251688 0.58964226 0.51238783 0.41489277 + 0.73502973 0.69991231 0.65251687 0.58964226 0.51238783 0.41489277 13 14 15 16 17 18 - 0.29149880 0.14358469 -0.01622096 -0.18308842 -0.36174266 -0.55165256 + 0.29149880 0.14358469 -0.01622096 -0.18308842 -0.36174265 -0.55165256 19 20 21 22 23 24 --0.75216843 -0.96121405 -1.17697566 -1.39582787 -1.61463881 -1.83317154 +-0.75216843 -0.96121404 -1.17697566 -1.39582786 -1.61463880 -1.83317153 $sigma$`bbs(x5, df = dfbase)` 1 2 3 4 5 6 --0.35133403 -0.31818178 -0.28487218 -0.25048316 -0.21414472 -0.17551639 +-0.35133401 -0.31818176 -0.28487216 -0.25048314 -0.21414471 -0.17551638 7 8 9 10 11 12 --0.13478066 -0.09043638 -0.04036516 0.01140995 0.05490236 0.08804387 +-0.13478064 -0.09043637 -0.04036515 0.01140996 0.05490236 0.08804387 13 14 15 16 17 18 - 0.11539467 0.13861908 0.15950497 0.17917571 0.19811973 0.21841061 + 0.11539467 0.13861908 0.15950497 0.17917570 0.19811972 0.21841059 19 20 21 22 23 24 - 0.23971872 0.26186474 0.28466756 0.30781904 0.33074669 0.35356977 + 0.23971871 0.26186473 0.28466755 0.30781903 0.33074667 0.35356975 $sigma$`bbs(x6, df = dfbase)` 1 2 3 4 5 --0.2844651880 -0.2186158355 -0.1534117880 -0.0928846917 -0.0448736951 +-0.2844651961 -0.2186158411 -0.1534117910 -0.0928846922 -0.0448736933 6 7 8 9 10 --0.0144611066 -0.0007836747 0.0043527943 0.0116311707 0.0272086244 +-0.0144611028 -0.0007836694 0.0043528004 0.0116311772 0.0272086310 11 12 13 14 15 - 0.0517831869 0.0848199173 0.1248441166 0.1671483807 0.2026641167 + 0.0517831936 0.0848199232 0.1248441193 0.1671483769 0.2026641054 16 17 18 19 20 - 0.2336020503 0.2661041115 0.3023380856 0.3417998069 0.3836024077 + 0.2336020331 0.2661040912 0.3023380639 0.3417997849 0.3836023858 21 22 23 24 - 0.4268453691 0.4711745653 0.5160781652 0.5610761947 + 0.4268453477 0.4711745445 0.5160781451 0.5610761753 attr(,"offset") [1] -2.427222 @@ -3433,43 +3444,43 @@ attr(,"offset") > coef(model, parameter = "mu") $`bbs(x1, df = dfbase)` 1 2 3 4 5 6 - 3.58171139 2.47642513 1.38321567 0.35846954 -0.55844450 -1.37386804 + 3.58171083 2.47642477 1.38321548 0.35846950 -0.55844447 -1.37386796 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458702 -2.59383102 -2.94780868 -3.13830905 -3.18456722 -3.09471617 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86319999 -2.46725571 -1.87824913 -1.08842574 -0.09273045 1.10805084 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864867 4.00437925 5.60292580 7.22757734 8.84769910 10.46670737 $`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.587567018 -0.597235489 -0.606895359 -0.616493825 -0.625795262 -0.634226162 +-0.587567032 -0.597235501 -0.606895370 -0.616493834 -0.625795270 -0.634226168 7 8 9 10 11 12 --0.640764144 -0.643706523 -0.640665097 -0.629114205 -0.606465892 -0.565608617 +-0.640764148 -0.643706526 -0.640665098 -0.629114205 -0.606465890 -0.565608614 13 14 15 16 17 18 --0.499359388 -0.406250941 -0.289077229 -0.151094932 -0.001816165 0.145180788 +-0.499359387 -0.406250944 -0.289077238 -0.151094948 -0.001816184 0.145180766 19 20 21 22 23 24 - 0.286945776 0.419084241 0.545588456 0.669020116 0.789859912 0.910388836 + 0.286945752 0.419084214 0.545588426 0.669020081 0.789859872 0.910388791 $`bbs(x3, df = dfbase)` 1 2 3 4 5 6 - 0.56795274 0.55780411 0.54748652 0.53585628 0.51985234 0.49117077 + 0.56795259 0.55780398 0.54748640 0.53585618 0.51985225 0.49117069 7 8 9 10 11 12 - 0.42717980 0.28842829 0.05046406 -0.25478976 -0.54504698 -0.75532084 + 0.42717973 0.28842824 0.05046403 -0.25478977 -0.54504697 -0.75532080 13 14 15 16 17 18 --0.86898074 -0.89962648 -0.87265488 -0.81495209 -0.74603751 -0.67649672 +-0.86898069 -0.89962643 -0.87265483 -0.81495206 -0.74603749 -0.67649670 19 20 21 22 23 24 --0.61055474 -0.54837543 -0.48890118 -0.43106752 -0.37389397 -0.31679225 +-0.61055473 -0.54837543 -0.48890119 -0.43106754 -0.37389399 -0.31679228 $`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 2.567451544 2.183750845 1.800221518 1.415979616 1.034193922 0.667283578 + 2.567451543 2.183750843 1.800221516 1.415979613 1.034193918 0.667283574 7 8 9 10 11 12 - 0.322037905 0.009307943 -0.257545411 -0.481058705 -0.669711734 -0.813301926 + 0.322037900 0.009307935 -0.257545424 -0.481058723 -0.669711753 -0.813301941 13 14 15 16 17 18 --0.899364082 -0.932976652 -0.928286940 -0.899492000 -0.856040251 -0.804129859 +-0.899364094 -0.932976661 -0.928286946 -0.899492004 -0.856040252 -0.804129859 19 20 21 22 23 24 --0.747632885 -0.688917493 -0.629440065 -0.569818844 -0.510251318 -0.450694813 +-0.747632882 -0.688917488 -0.629440059 -0.569818836 -0.510251308 -0.450694801 attr(,"offset") [1] 8.987845 @@ -3479,13 +3490,13 @@ attr(,"offset") $mu $mu$`bbs(x1, df = dfbase)` 1 2 3 4 5 6 - 3.58171139 2.47642513 1.38321567 0.35846954 -0.55844450 -1.37386804 + 3.58171083 2.47642477 1.38321548 0.35846950 -0.55844447 -1.37386796 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458702 -2.59383102 -2.94780868 -3.13830905 -3.18456722 -3.09471617 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86319999 -2.46725571 -1.87824913 -1.08842574 -0.09273045 1.10805084 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864867 4.00437925 5.60292580 7.22757734 8.84769910 10.46670737 attr(,"offset") [1] 8.987845 @@ -3493,13 +3504,13 @@ attr(,"offset") $sigma $sigma$`bbs(x1, df = dfbase)` 1 2 3 4 5 6 - 0.89659893 0.78713824 0.67616360 0.55710969 0.42730638 0.29198962 + 0.89659885 0.78713816 0.67616352 0.55710962 0.42730633 0.29198959 7 8 9 10 11 12 - 0.16213560 0.05105498 -0.03122623 -0.07636368 -0.07847080 -0.03347975 + 0.16213559 0.05105499 -0.03122621 -0.07636365 -0.07847076 -0.03347972 13 14 15 16 17 18 - 0.05806291 0.17903227 0.30635650 0.42810619 0.53761725 0.62880999 + 0.05806291 0.17903224 0.30635643 0.42810609 0.53761712 0.62880983 19 20 21 22 23 24 - 0.69997365 0.75391415 0.79637610 0.83506324 0.87429112 0.91365873 + 0.69997347 0.75391396 0.79637591 0.83506304 0.87429092 0.91365853 attr(,"offset") [1] -2.427222 @@ -3562,16 +3573,93 @@ Warning in xy.coords(x, y, xlabel, ylabel, log) : > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("methods", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > graphics::par(get("par.postscript", pos = 'CheckExEnv')) > cleanEx() +> nameEx("stabsel.mboostLSS") +> ### * stabsel.mboostLSS +> +> flush(stderr()); flush(stdout()) +> +> ### Name: stabsel +> ### Title: Stability Selection +> ### Aliases: stabsel.mboostLSS selected.stabsel_mboostLSS +> ### Keywords: nonparametric +> +> ### ** Examples +> +> +> ### Data generating process: +> set.seed(1907) +> x1 <- rnorm(500) +> x2 <- rnorm(500) +> x3 <- rnorm(500) +> x4 <- rnorm(500) +> x5 <- rnorm(500) +> x6 <- rnorm(500) +> mu <- exp(1.5 +1 * x1 +0.5 * x2 -0.5 * x3 -1 * x4) +> sigma <- exp(-0.4 * x3 -0.2 * x4 +0.2 * x5 +0.4 * x6) +> y <- numeric(500) +> for( i in 1:500) ++ y[i] <- rnbinom(1, size = sigma[i], mu = mu[i]) +> dat <- data.frame(x1, x2, x3, x4, x5, x6, y) +> +> ### linear model with y ~ . for both components: 400 boosting iterations +> model <- glmboostLSS(y ~ ., families = NBinomialLSS(), data = dat, ++ control = boost_control(mstop = 400), ++ center = TRUE, method = "noncyclic") +> +> ## No test: +> ### Do not test the following code per default on CRAN as it takes some time to run: +> +> #run stability selection +> (s <- stabsel(model, q = 5, PFER = 1)) +Run stabsel .................................................................................................... + Stability Selection with unimodality assumption + +Selected variables: +x1.mu x4.mu + 2 5 + +Selection probabilities: + (Intercept).mu x5.mu x6.mu x6.sigma + 0.00 0.00 0.00 0.00 + x2.mu x3.mu x5.sigma (Intercept).sigma + 0.02 0.04 0.04 0.13 + x2.sigma x1.sigma x4.sigma x3.sigma + 0.55 0.69 0.74 0.79 + x1.mu x4.mu + 1.00 1.00 + +--- +Cutoff: 0.87; q: 5; PFER (*): 0.98 + (*) or expected number of low selection probability variables +PFER (specified upper bound): 1 +PFER corresponds to signif. level 0.07 (without multiplicity adjustment) + +> #get selected effects +> selected(s) +$mu +x1.mu x4.mu + 2 5 + +$sigma +named numeric(0) + +> +> #visualize selection frequencies +> plot(s) +> +> ### END (don't test automatically) +> ## End(No test) +> +> +> +> cleanEx() > nameEx("weighted_median") > ### * weighted_median > > flush(stderr()); flush(stdout()) > -> base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: weighted.median > ### Title: Weighted Median > ### Aliases: weighted.median @@ -3595,13 +3683,11 @@ Warning in xy.coords(x, y, xlabel, ylabel, log) : > > > -> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") -> base::cat("weighted_median", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") > ### *