diff --git a/.Rbuildignore b/.Rbuildignore index 67a4ffb..9be5245 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,7 +4,11 @@ ^.*\.yml$ SOP_release.txt buildCRAN +checks.R copy_Rout_to_Routsave.R +tests/Rplots.pdf vignettes/gamboostLSS_Tutorial.tex vignettes/auto vignettes/graphics +vignettes/fig-crossvalidation.pdf +vignettes/gamboostLSS_Tutorial_CRAN.Rnw \ No newline at end of file diff --git a/.RbuildignoreCRAN b/.RbuildignoreCRAN index 0d34a40..8ad7fae 100644 --- a/.RbuildignoreCRAN +++ b/.RbuildignoreCRAN @@ -4,9 +4,13 @@ ^.*\.yml$ SOP_release.txt buildCRAN +checks.R +copy_Rout_to_Routsave.R tests/.*\.Rout\.save$ tests/Examples +tests/Rplots.pdf vignettes/gamboostLSS_Tutorial.tex vignettes/auto vignettes/graphics vignettes/.*\.Rout\.save$ +vignettes/cvrisk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b6a065 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata diff --git a/ChangeLog b/ChangeLog index a088602..8a4039d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,1319 @@ -commit 73b484b0b606df5cdaaaef2cf2287b3a8f2f0521 +commit 5251561e08f440ddf2609974152c958d7eb27682 +Author: Benjamin Hofner + + Release version 2.1-0 + +commit 252b898131dbffc6d209edfe7079ee1611fea3c0 +Author: Benjamin Hofner + + Remove testthat from suggests as it is not needed. + +commit 07630044af0656708779d97d195bbf381a4a8d4e +Author: unknown + + fix errors + +commit 440eb0219c7c34965bc7155e60d301d393eabf52 +Author: unknown + + fix notes in checks + +commit 6c84ccfc32db2eafee9583500585c845ba143892 +Author: unknown + + adjust families, add comments, add tests + +commit 7be33372541bb10f3218a65faa5297969291576b +Author: unknown + + run R checks, update documentation, remove notes + +commit e556174a9beaa21d8b24b53df849fe53f7625eb7 +Author: unknown + + fix typos + +commit c742077620195f1317df588ebe2a048743b6b19b +Author: unknown + + delete + +commit 8b409f8558ac5659216a0633c4ece51ce8a66d53 +Author: unknown + + implement Dirichlet family + +commit 6d67d4f6d4a266dc7a762cda4952fc9196fe2025 +Author: Benjamin Hofner + + fixed minor issue in stabsel manual + +commit c1a6350de181a3cf829231f6878d841e64c85a79 +Author: amayr + + fix error message + +commit 28d9008024f2f1c9bcb6452228c501da1a00fc46 +Author: Andreas Mayr + + fix typo in Error message + +commit b085c81223649bd8c5a75092fe40ea6edff06510 +Author: Andreas Mayr + + extend warning for censored families + +commit 1dc1ee75d1854e9dd9cd2e29f262768865d214f6 +Author: Benjamin Hofner + + Release version 2.0-7 + - Fixed S3 argument mismatch + - Updated CITATION file to reflect current guidance on how to cite in packages + +commit 4084658ba3a8bcc1830656e03f4ba22ac7771822 +Author: Benjamin Hofner + + Release gamboostLSS 2.0-6 + +commit 276770e46647683c794d01ba100473bae699432c +Author: Benjamin Hofner + + Update cvrisk.nc_mboostLSS.R + +commit 6cf9cb8e2f3a5c6861c10cef443013b3b99eea25 +Author: Benjamin Hofner + + Update cvrisk.R + +commit d3225c431bd18d240d63e95c9f531ccac107771c +Author: Andreas Mayr + + Try again... + +commit a898c9746fdd24f1e29e4e3d8657be769b6cb2f4 +Author: Andreas Mayr + + Update mboostLSS.R + +commit 7c756897d4a2cd89c8c3d2c764ae3fe7c77bce70 +Author: Andreas Mayr + + fix issue of oobag risk in non-cyclical fitting + +commit 7792951d2984f289ed7e530befa42a2a4cb04d1d +Author: Benjamin Hofner + + Release gamboostLSS 2.0-5 + +commit 753f22dde4128cf586ea604938bdc95821140e15 +Author: Benjamin Hofner + + Relase gamboostLSS 2.0-4 + +commit dff2d2c78378dd102e73bea249c631947b98aa4c +Author: Benjamin Hofner + + Release gamboostLSS 2.0-3 + +commit 3a70423c519e0e7a4fb9c60f5a8caa4d58d9317f +Author: Benjamin Hofner + + Release gamboostLSS 2.0-2 + +commit 14dddb703d9ca8cb914efe74c6caae258e276bf1 +Author: Benjamin Hofner + + Replaced DOI references with \doi + +commit dcd64622bcd76095a81779279c6ae66bf66ff6ff +Author: Benjamin Hofner + + Fixed CRAN checks + +commit db087e7a86999f17b85981b38dfdfb5dc324dfc0 +Author: Benjamin Hofner + + Updated hyperlink to https + +commit bbe656b4e16fdc16f8ceb449404283561dac64e2 +Author: mayrandy + + Fixing Family problem, closes #53 + +commit ad864dd82c8a757b8e1b2a383a212c9c331190b0 +Author: mayrandy + + Bugfix. Closes #55 + +commit 4989474e42ea74fe7e56e2faa37fa980d9faad9d +Author: sbrockhaus + + Fix stabsel.mboostLSS for models fitted with FDboostLSS. Closes #51 + +commit f97c8906fc9d78e05cb28823789b12cd31c06fdc +Author: Benjamin Hofner + + Avoid building the vignette twice + +commit b871cbfe019dac19e8989ce847fd5e4274a8c4aa +Author: Benjamin Hofner + + Initialize combined_risk in mboostLSS_fit to avoid writing (and overwriting) the combined risk in the global environment. Closes #49. + +commit ac3af5c8998a3995415e87b3dc05329f52cb6b0b +Author: Hofner + + Duplicated vignette with some modifications to reduce package size; used for CRAN only + +commit 120fef64eba3cafdcce1fddc06ed6855cc1bf0f9 +Author: Benjamin Hofner + + Release gamboostLSS 2.0-1 + +commit 1cb93d2b89db47090470741e251fbb5766ae59f3 +Author: Benjamin Hofner + + Update .Rout.save + +commit a462d46caca91fe1869c8c6d82c379df469647f2 +Author: Benjamin Hofner + + Updated Thomas et al to final reference. Closes #47 once more. + +commit 00145b64e3df3ca2ca59ecdad2fbf739c7040e13 +Author: Benjamin Hofner + + fix merge conflict + +commit 6af980e94b1d594f9a3a26bff13fc38e54aac742 +Merge: 09af4f0 13e9b2d +Author: Benjamin Hofner + + Merge branch 'master' of https://github.com/boost-R/gamboostLSS + +commit 09af4f04ebf66aa66b2712c1f9838aca10af99be +Author: Benjamin Hofner + + export predict.mboostLSS + +commit 13e9b2d094e952382e52f97613ad5b5ce94604f0 +Author: Benjamin Hofner + + fix citation + +commit 780e8abaf1970eaf3c3aaf6576fce55b49e32680 +Author: Benjamin Hofner + + README + +commit 6d385df8f5d82ab0834e79792b986a1e8a75fd78 +Author: Benjamin Hofner + + Update reference for non-cyclic boosting (closes #47) + +commit 70a30c47e9c6e6112a1b31cd5f871a9356c7541c +Author: Benjamin Hofner + + Update DESCRIPTION + +commit 3449299f6b2c848d1ceb854dfd46cccbbe59fcd5 +Author: Benjamin Hofner + + Updated further manuals regarding various classes of results + +commit c962e3b4766f43e562fa03a2e94cd95ecb4994a4 +Author: Benjamin Hofner + + updated cvrisk manual (closes #46) + +commit 7f0b37cdb917d558f97595f6effd8a22839a86ad +Author: Benjamin Hofner + + streamlined interfaces of cvrisk + +commit 8750ae0652bf71fe21ade698de01fe13404347e1 +Author: Benjamin Hofner + + export various plot functions and cvrisk (see #46) + +commit 95b48b944ab9c139abc5520a889f66d2a49d9307 +Author: Benjamin Hofner + + Release gamboostLSS 2.0-0 + +commit d903d34da5ed1cbef1be1914d3f1e4628ed0baba +Author: Benjamin Hofner + + Updated release SOPs to reflect new repository structure + +commit 54dbcd9d9664078798b455586f37477e63b13248 +Author: Benjamin Hofner + + Updated check results + +commit 8b7001081b225aca47563683d32a3685c6c55987 +Author: Benjamin Hofner + + Also update inst/CITATION + +commit 8c0d47564d2a477105f3287251c978fea54ac678 +Author: Benjamin Hofner + + Updated maintainer's email address + +commit b259544ad6accd0874e31c42b288d0380179ef25 +Author: Benjamin Hofner + + Updated reference to Thomas et al (2017). Closes #45 + +commit 2de0e6c9944fd24c54fd365216f91e5508a9ff8c +Merge: 2599aed 8333592 +Author: Benjamin Hofner + + Merge pull request #38 from sbrockhaus/master + +commit 833359289f9b9946353caf3b3f06faa08ba43582 +Merge: ef96def 2599aed +Author: sbrockhaus + + Merge remote-tracking branch 'upstream/master' + +commit ef96defb1708701433c62ce39ddab4fdfaa5cebd +Author: sbrockhaus + + report in NEWS that mboostLSS_fit() is adapted for FDboostLSS() + +commit 2599aed3de6884b9fc2cca45879477ebf5b5ca1f +Author: Benjamin Hofner + + Updated SOPs for CRAN upload regarding vignette + +commit 658599c7add6cfefb24bee0653ae6dfc1cccef25 +Merge: 88449e3 36aee6e +Author: Benjamin Hofner + + Merge pull request #44 from boost-R/fix_stabsel_plot + +commit 95c79f2d97ec02ed8c88adfadabcf37b56f525ea +Author: sbrockhaus + + use fitted.mboost() as fitted.FDboost() returns matrix + +commit 36aee6ed2de9cef84f9d79c83429764fadf542e5 +Author: ja-thomas + + Update mboostLSS.R + +commit ecc63ed3afd5ce7e022d533a81ecacea1172f7c6 +Author: ja-thomas + + Update regtest-noncyclic_fitting.R + +commit 71ad6e9dbcb48dbc5486655ca59021956edb90c8 +Author: Janek + + add additional test + +commit fa8bcd32b2beb40471fe15157c366531eb2e1c45 +Author: Janek + + fix stabsel plot + +commit d1dbb32bc42664bdc123dbb7e2029bc62259308f +Merge: e04a6c4 88449e3 +Author: sbrockhaus + + Merge remote-tracking branch 'upstream/master' + +commit e04a6c4a7370cfd14bd2f68321d143cdfb33383c +Author: sbrockhaus + + fix computation of offset + +commit 88449e33822f9b197147c3eee7fef07aa70890f8 +Author: Benjamin Hofner + + check results of stabsel + +commit cf6ae9c669674a3d3e3e069d26bd00a06e2c9003 +Author: Benjamin Hofner + + fix summary. closes #43. + +commit 57117da7d03effb1b788d3f7f1daba7da782eb9b +Merge: b66755c 1e606c7 +Author: Benjamin Hofner + + Merge pull request #41 from boost-R/fix_selected + +commit fe83199db8aa4b4199be0e30b5f8efb0a9ffce46 +Author: sbrockhaus + + new argument allow_matrix = FALSE in check_y_family() to allow for matrix response + +commit 6243369c152d5191c85ac5c3e670f2b1f321b82e +Author: sbrockhaus + + argument timeformula into dots, check_timeformula into helpers + +commit 1e606c72e9db6776a87b17e89291e744280665ec +Author: Janek + + fix selected and adapt tests + +commit bc826eae98b81915baef6ee1341bc2838c04c088 +Merge: cac3809 b66755c +Author: sbrockhaus + + solve conflict in manual + +commit b66755c06da6a6e130eede3dae1956b8a3cce149 +Author: Benjamin Hofner + + Updated tests + +commit f78a0aad44c3a657859d807ee73fada011f1cd73 +Author: Benjamin Hofner + + More tests + +commit d7a21ad784c561d734d33f3306ba1f13e82418bc +Author: Benjamin Hofner + + Started fixing stabsel (see for open issues) + +commit ccb833f17f62354f2de873a966b8008f733e26e4 +Author: Benjamin Hofner + + Update Readme + +commit 90cede61fc295c81063f00c62167dffefcaa5c63 +Author: Benjamin Hofner + + Add reverse dependency checks + +commit 3084a39a834c628a056557c2432130c7d6f45784 +Author: Benjamin Hofner + + make sure the repository is set + +commit 1f66eba5a0673726d9b04d042d2190653513bb30 +Author: Benjamin Hofner + + Fixes typo + +commit 9c8cc8a17b703c0c286b910fcc6fc2a8825943de +Author: sbrockhaus + + give more details in manual + +commit cac3809d1d7586416d39c7c3fec0d77b48b675d2 +Author: sbrockhaus + + give more details in manual + +commit a16eb633de9b6999698b012e0bc8fe86a704f6e3 +Author: sbrockhaus + + adapt mboostLSS_fit() such that it works with FDboost to get FDboostLSS + +commit 814c60d90e56aaeec91a7d1ea110e073d5440376 +Author: Benjamin Hofner + + Updated NEWS.Rd + +commit c2db923cf84db32e6e89db644ee7ef4d684d35e8 +Author: Benjamin Hofner + + cosmetics + +commit 8ef6fb1f9de3e7d3fa848f4b185afa1629cf5c54 +Author: Benjamin Hofner + + package now requires mboost >= 2.8-0 + +commit e29d8d1c63b42aff4cefd948562e99eaf5fcd3bf +Author: Benjamin Hofner + + Updated readme + +commit abf76529b23d2897d7f141eff3c3e0d225c0f68d +Author: Benjamin Hofner + + risk(, merge = TRUE) did not correct for new offset risk. Fixes #37 + +commit 6ab3cc0cef24648c65414c8aea4db8cc5b4aad31 +Author: Benjamin Hofner + + cosmetics + +commit 87dc35acaa93f9ec70a8e97ae5a09014ee654caa +Author: Benjamin Hofner + + Updated references and really refer to Thomas et al in the manuals + +commit 9e4238441ce7adbedadfdb226e402b70b3df9382 +Author: Benjamin Hofner + + Updated DESCIPTION + +commit c88eaa08f07c5d1a9cdb7f287224842169bdfec9 +Author: Benjamin Hofner + + revert unwanted changes in README + +commit 3602b027644ea9e52af63efdd119a10885d19a11 +Merge: b0263d8 59566be +Author: Benjamin Hofner + + Merge pull request #36 from boost-R/devel + +commit 59566be7abd6d4004e4739774732f6afa5bc5dd8 +Author: Benjamin Hofner + + Use trusty distribution on travis + +commit af370568e8c0a7158564b5af81b8288f2080f9c2 +Author: Benjamin Hofner + + Update NEWS.Rd + +commit 880294c5978d11251b68999e9700c8a39a7a8f84 +Merge: 8dc9450 b0263d8 +Author: Benjamin Hofner + + Merge recent changes from master branch to devel + +commit 8dc9450b2288f42add3cc33b39e3284654a7637e +Author: Benjamin Hofner + + changed order of suggested packages + +commit 0ae4dc73b7ee837ce1cf41b095cc2b581f8ef60b +Author: Benjamin Hofner + + typo + +commit ce94c7b8fe65c799b34dddfc45d2662bc1832458 +Author: Benjamin Hofner + + re-indent code + +commit bb9a1da0f489f2f3be5d9bfbe9eb7fabfd15849e +Merge: 4f21eb6 6309410 +Author: Benjamin Hofner + + Merge pull request #31 from boost-R/refactor_noncyc + +commit 6309410fc4538f1a4bac3e15c673185bc9c78d06 +Author: Janek + + initialize combined_risk in subset + +commit 4c2d159f4ecfbddba851eda3e85a3ab67d42e1f0 +Author: Janek + + remove notes + +commit 86ebeb2a55e37c727d7443a192895bb313d15e87 +Author: Benjamin Hofner + + initialize combined risk + +commit 019666251f6e372511293f513245b72d36186769 +Author: Benjamin Hofner + + reindent lines + +commit 50ddb7b036f82b3abeb071d597407beae12634e5 +Author: Benjamin Hofner + + shorten \usage lines wider than 90 characters + +commit de4be0dec1c1e9b0fe7205ad9feb7521cb01a73b +Author: Benjamin Hofner + + make appveyor use github packages + +commit b0263d8e8d1272f6d066103be6aa195875991b5d +Author: Benjamin Hofner + + make appveyor use github packages + +commit 5b5190d7256f57a85feddd62959648f77fee271d +Author: Janek + + fix citation... again + +commit 0dd7fe31853b29db050f3fba30f275abd4d0eb51 +Author: Janek + + fix trace + +commit 4f21eb6b32d17fb91e7aa2e9df573bdd976e14f7 +Author: Benjamin Hofner + + Update DESCRIPTION + +commit b41a55627245ca5b9526bdbeafec55bb32c52a2a +Author: Janek + + fix citation + +commit f6b551c828643a16e4e18625c4e4433f3191e748 +Author: Janek + + fix subset increase from zero + +commit f76606c86576472def047946a97ad3bea50b3a08 +Merge: 7e061b4 d675d3d +Author: Janek + + mstop=0 + +commit 7e061b49534ebca65365e7c9fa977cc9bb23baed +Author: Janek + + fix risk + +commit 17c9674d59d4907014b6d304e7c1813b3331ef3b +Author: Janek + + start with mstop=0 + +commit d675d3dd2e18f2ad4fc662e10038d5a6d1e5cea3 +Author: mayrandy + + fix tutorial issue #32 also for devel + +commit 691048a4c7752faee57f8cb86741fbdceba9310a +Author: Benjamin Hofner + + Make risk work again (Fixes #32) + +commit 0218d4efcc07eec8091f74b388e3b4343a26b248 +Author: mayrandy + + make mixed type 4-parametric families work, fixes #28 + +commit 4a2d2349b7b2f3a9bfe8c6c171c482c7cc5a3876 +Author: mayrandy + + update README + +commit 371267b3da8a4896ef8bb150cac9925fd7dedd87 +Author: Janek + + stop destroying the CITATION file... + +commit f22530c035f332de281315718ee172a4c7c75f91 +Author: Janek + + missing , -.- + +commit 942b6317f6463720e472b0c71531a29bb852364b +Author: Janek + + cleanup + +commit 9585836295cd2a8761a92e798ae5a0254acf845e +Author: Janek + + slight speed improvements + +commit ec4b3f356c5ea1e194edcdba3a60a56fcfc3b4e9 +Author: Janek + + Readme + +commit 993167f528f4b187b383f4eccd5650a37d5064b8 +Author: Janek + + citation + +commit 34891bda05346e525f15f6c2e6deae43ff9d2b9a +Author: Janek + + remove outer version, rename inner to noncyclical + +commit c865ee7caad15c035b4d52ddb40bb61ffd44f6c9 +Author: Janek + + refactor noncyc fitting + +commit 7f542a51fc12bd7b6ac1d2f186594f4ce7c98383 +Author: mayrandy + + Include official tutoral paper in README.md + +commit 94cd3e45fae059592f85c853f083a577cc24eaaa +Author: mayrandy + + incorporate JSS reference in vignette + +commit cb5c07f8c0f4b49ceed0610195b210e8c20fa580 +Author: mayrandy + + update ULRs using canonical form + +commit 4f2f392ea81e1e6c2e36c76b1395ad74ec769c44 +Author: mayrandy + + Update citations for JSS paper and CRAN update + +commit 0d94a467398e0964662ac7c82f2e58b64f5f1bc9 +Author: mayrandy + + Adding some tests + +commit 32f0e6d621ef5bf441ccb0abb258c762fc927ad7 +Author: mayrandy + + Include new option stabilization = "L2" which divides ngradient through mean(ngr^2). + +commit f7a32e3e25d463c20655060a6762968bdf622c6b +Author: mayrandy + + re-order arguments in rd file + +commit a981957a7f0d01f806a7ef3a0244dcdbd6cb4938 +Author: mayrandy + + Include different links in as.families(), see #25 + +commit 4619cfe889679f9b7009ab193e514499cda77050 +Author: Benjamin Hofner + + Do not use plot.cvrisk from mboost but plot.cvriskLSS(..., type = "line") + fixed some typoes etc. + +commit ba403b17c316d790f7331f0ece6103ce6f1f9dd0 +Author: Benjamin Hofner + + merged changes from #18 to devel + +commit eb4e59aca44a9f98f4b3afd3b996252115068502 +Author: Benjamin Hofner + + reindent lines + +commit 4abbee41c80a53ec17a5c44d6c785ae49b3f4fb3 +Merge: 2321180 e377769 +Author: Benjamin Hofner + + Merge pull request #20 from boost-R/mstop_nc_fit + +commit e377769df5f515917b34bef16bf249f5fb6aec53 +Author: Benjamin Hofner + + use correct syntax; closes #19 + +commit 73ca5bc3c891355f9d01b21435814a9493020979 +Author: mayrandy + + Update families.R + +commit e64737dc9320d5020aabe61d3dbc6cd39ab4ee74 +Author: Janek + + change mstop definition for noncyclical fitting + +commit 23211807854e2c5ae4d96179416d792336182ca8 +Author: Benjamin Hofner + + Added test and close #12 + +commit 109daf34aba93ff1821bb29df5c480348b99d2b3 +Author: mayrandy + + Update as.families.R + +commit e4b7cd07060fa34f9fdecd415565f012b2794f47 +Merge: 84e7740 8e9083a +Author: Benjamin Hofner + + Merge branch 'devel' of https://github.com/boost-R/gamboostLSS into devel + +commit 84e7740683bf6a40da3229cd0e2334990eb36853 +Author: Benjamin Hofner + + Increased version to 1.5-0 + Changed sequence of authors + +commit b810261ca6968eba945c1a4a22a23e68fd873ba0 +Author: Benjamin Hofner + + Update README.md + +commit 8e9083a8b9d6baa8d9b97980e4a97d24067f84f3 +Author: Benjamin Hofner + + Update README.md + +commit 21b6e197ba14c011ccfcf2abc26734b7274d6dc7 +Author: Benjamin Hofner + + Added tests for cvrisk and risk + +commit ecfe9d22b818d440d1174a0015bb2cdb817ac51c +Author: Benjamin Hofner + + fixed coverage badge + +commit 82683adb416a44fca3a194836c292b22de2c6eb0 +Author: Benjamin Hofner + + Readme in devel branch supposed to show devel stats + +commit bb3dc5e99ba719f6cf2ad7dedae6e61ca9d84799 +Author: Benjamin Hofner + + Updated README.md + +commit df49b82334ae34588dd43d4084e400adecab9989 +Author: Benjamin Hofner + + Updated README.md + +commit d303e4b276f025477557ac8e15ec6c426562a581 +Author: Benjamin Hofner + + Updated travis-ci and appveyor + +commit 7a9baad69ca73f9d994746d8f5b9ef5e330ee431 +Author: Benjamin Hofner + + Fixed .travis.yml + Updated .Rbuildignore + +commit a82f782cdb5df7c0ca49ec8c1e38e73f9d402e80 +Author: Benjamin Hofner + + Fixed .travis.yml + Updated .Rbuildignore + +commit 62d1cfeb765f23e65a1b4b3c3d4d999799a396d2 +Author: Benjamin Hofner + + Updated travis-ci and appveyor + +commit 9f50b4377aaaf1bfb24761aa8d03bdd23bbeddf5 +Author: Benjamin Hofner + + Moved patch/ to parent directory + +commit aab749b8104d7de448217e3c0697cbc8d0835e14 +Author: Benjamin Hofner + + Moved pkg/ to parent folder + +commit 530dafd8fd814437f5ad697408b1419ddeceb22c +Author: Benjamin Hofner + + Updated NEWS.md + +commit f0f1c060e98c1bf376094089a184d4c1be380551 +Author: Benjamin Hofner + + added Janek as author + +commit 19626ead366e06b973553620525509560141b29e +Author: mayrandy + + fix error in manual + +commit 4d2455196c712f6163acd3e6672b00c8afe676e2 +Merge: 6f6aa6d 97e8f86 +Author: ja-thomas + + Merge pull request #14 from fabian-s/fix-stabsel-for-listdata + +commit 97e8f86da75512da45e02a1bf85645d90f72a69e +Author: fabian-s + + make stabsel work for list-shaped coming from FDboost: use `[[1]]$ydim` instead of `dim(attr(, "data"))` + +commit 0ef3caf74db0d92158b058b1d6e9ae98158bef26 +Author: fabian-s + + make stabsel work fpr list-shaped : use `[[1]]$ydim` instead of `dim(attr(, "data"))` + +commit 6f6aa6dacae4aa5e79250b3865b0856c6c21c6f8 +Author: janek + + help file for stabsel, closes #11 + +commit b6f80aeb4ad1b1e43306f1f09a4e79381084c556 +Author: janek + + fixed issue #10 + +commit 7fbb813a8ddd19aba2c39fe4b823ca79e40dbc9f +Author: Benjamin Hofner + + Update appveyor.yml + +commit 0f6f5e528281e943fbe4016b15df3f9565267d5d +Author: Benjamin Hofner + + Update repository to boost-R + +commit 9cab89468aca9f35ac56e542401c3512cffa155b +Author: Benjamin Hofner + + Merged gamboostLSS 1.2-1 to pkg + +commit bf344e5dcd36eb34eb312f0980838615b3d77842 +Author: Benjamin Hofner + + gamboostLSS 1.2-1 on its way to CRAN + +commit 1486382e5c226ab743756bbe5379a818d1c7c230 +Author: Benjamin Hofner + + Updated .Rout.save files + +commit 2c552a9a61c8befccbb28ebec102a473a7e7c0a4 +Author: Benjamin Hofner + + Cleanup + +commit 082c25cda9627b5e4074357da9f36dba4b11228c +Merge: 1464e83 d9667c6 +Author: Benjamin Hofner + + Merge branch 'master' of github.com:hofnerb/gamboostLSS + +commit 1464e83e50ff921f2b15baf4e8e69b2d87892034 +Author: Benjamin Hofner + + Merge changes from patch to pkg + +commit 11548528476620626780709bf1df8b3016ab76f1 +Author: Benjamin Hofner + + Release candidate 1.2-1 + +commit a28230488ccf390979fc3674a7a36c867341909f +Author: Benjamin Hofner + + Fixed bug in cvrisk when no families are specified. Closes #9 + +commit 8b93bdc1f8ae2131dcdaf89726fd754dd43f763a +Author: Benjamin Hofner + + Added gamboostLSS_intern to NAMESPACE and patch/... + +commit d9667c60ecbd5189b6cc57d1be161ddadc00a646 +Merge: 7daead6 bfa9727 +Author: janek + + Merge branch 'noncyclical_fitting' + +commit bfa97275fd5cc896167ceec9bbbd49a65713d6b1 +Author: janek + + replaced = with <- + +commit 7daead622a6abcca16b88549e4ced3ebf9dc8e96 +Merge: 07747d1 becee65 +Author: Benjamin Hofner + + Merge branch 'master' of github.com:hofnerb/gamboostLSS + +commit 07747d1882bebd2e2bd71c1586c44de3b3610330 +Author: Benjamin Hofner + + Added gamboostLSS_intern to make FDboost happy + +commit becee653b8a8f467e1578877356b649c69d12170 +Author: Benjamin Hofner + + Update README.md + +commit 9dbbb204883ec3b15091d66f1f9f4eaa6d20e2c8 +Author: Benjamin Hofner + + Update README.md + +commit c0c634c957291a96b7af6ada3ea684af2e6507d8 +Author: Benjamin Hofner + + Update README.md + +commit 9d7202f5503f18f45bb4531c9db8382be2aeb114 +Author: janek + + fixed missing match.arg in mboostLSS + +commit ae00aaa56dc27c8d4c7cd649d53816b2323581ae +Author: Benjamin Hofner + + AppVeyor + +commit 38634d2b5cb030f7a7fd1a178e23f81a78d57204 +Author: janek + + added selected merge, and stabsel for nc fitting + +commit 4c0942b343bd4c4280f5a5efc58fe3e0f71cd0ab +Author: Benjamin Hofner + + also modified test for pkg/ + +commit 3cec7e04e6bd92a1353e6068b302fb1a84cc1571 +Author: Benjamin Hofner + + Modified test as stabilized WeibullLSS cannot be fitted to the simulated data + +commit 355a0a89cb399ed3dc14a2076c629386e61c36a0 +Author: Benjamin Hofner + + Updated .Rout.save files + +commit 7b320a72eda720c858565cdb7b303053abc9564d +Author: Benjamin Hofner + + AppVeyor: try to make artefacts available + +commit 592dd9ad4d35082c1fcc997cadae9e3c6bc67625 +Author: janek + + fixed bug for outer fitting, where u was not updated + +commit 8d1798c63f136278bf9016e723f9d14fabbcb4c7 +Author: janek + + fixed wrong definition again, names are confusing... + +commit e26ccc01ba9af8ad0810c42d1b732665268afa0e +Author: janek + + fixed wrong definition of Iboost inner and outer + +commit d76bb85be5122d4010c9d17e99f231a990296e3e +Author: janek + + new tests, model reduction for inner still not correctly working + +commit df0c35bc9226081c5eb24eb1445a3a271408bd40 +Author: janek + + moved fitting function to method call, which uses different iBoost variants + +commit b9bd78cd2b8fcfbc62a8274521edb4b99569b46e +Author: janek + + fixed bug with oobrisk but no weights + +commit 50773ef27a93f1f1c706147ba594a1ad14492d26 +Author: janek + + added gammboost outer loss functionality + +commit f6db804758da48a1f7d58d9bd8e83c5d822ee5f8 +Author: janek + + outer loss fitting with bols + +commit 2149e2f293e12ba0e1241dee21dcf954e0fab376 +Author: janek + + experimental fitting with outer loss + +commit 89d0535bd08f98e64f2485b8c9bfc0b39de40084 +Author: Benjamin Hofner + + Improve output of print and summary for models (closes #7) + +commit e833780fc0a7f67dafc6150e1320959dc2b5fb1a +Author: janek + + second fix for wrong oob weights + +commit 729391a47bba44934e1301e1fd37a99a5a9a463a +Author: janek + + fixed bug, where the subset function startet with wrong nuisence update + +commit e5422ba15c16f37082b34086730dfd7427cd86e1 +Merge: a5a9267 daa7a4a +Author: janek + + Merge branch 'master' of https://github.com/hofnerb/gamboostLSS into noncyclical_fitting + +commit a5a92676b41790ae9194f21827e5908f4ecd4b3a +Author: janek + + test for oob fitting bug + +commit 033800421678f35501edc0b479af0f1734e3e6de +Author: janek + + fixed bug where oob weights where used to fit the model + +commit 95fd89d4f1e2dee4a8aceb298de03a469004a375 +Author: janek + + added test function for nc fitting + +commit 9e9077fa57b772b015e90883594314b9b5db3ae0 +Author: janek + + fixed error in combined_risk init + +commit 0b3c4b477fc08c826d9749e2f6fddda883ff7a37 +Author: janek + + fixed error in check for minimal mstop value + +commit daa7a4a64eedc8d2688cbb4c759289e0b4e7436a +Author: Benjamin Hofner + + Update appveyor.yml + +commit 800174b8d10e0b51149d880d3da6ffd836001f2c +Author: Benjamin Hofner + + Update .travis.yml + +commit a0ac809b13e468d519aa146a0d4d0288a9caf44a +Author: Benjamin Hofner + + Update README.md + +commit a44080732e9b30d7339b925348ad9f7ba1297991 +Author: Benjamin Hofner + + Update .travis.yml + +commit 2212a38178c321c1669afb81bfccff6460846355 +Author: janek + + fixed bug that cv_risk.nc couldn't use combined_risk + +commit ade28506f863b91fc6f997ede33237f6e0693cce +Author: Benjamin Hofner + + Update README.md + +commit 3130ea497a548c0867d229e06ddb0bdc17e16209 +Merge: 68ddb5b 326e2db +Author: Benjamin Hofner + + Merge branch 'AppVeyor' of github.com:hofnerb/gamboostLSS into AppVeyor + +commit 68ddb5bd52b5425ac71faa309e2dce83ab8c5f21 +Author: Benjamin Hofner + + Added missing ) + +commit 326e2dbe971daea3c4ac1cb48198447f73de840c +Author: Benjamin Hofner + + Update appveyor.yml + +commit 0d4b24239d714448dcd189140b719473228ca032 +Author: Benjamin Hofner + + Update appveyor.yml + +commit c660e9ecc78dd06b35f43d8a049f30b4e9ba50f8 +Author: Benjamin Hofner + + Update appveyor.yml + +commit bd4082b7e481e851658cf974a7671db65c67cd03 +Author: Benjamin Hofner + + Update appveyor.yml + +commit cc9ec9fca122257175a5c2cd2d6a8added1b4fee +Author: janek + + fixed trace function for cycling = TRUE + +commit 09fda11bb0ddeeb7d31b55c0b036cf8c051fad46 +Author: Benjamin Hofner + + Update appveyor.yml + +commit f5616d8f4e7528a1f11c95da612312de4a22509a +Author: Benjamin Hofner + + Update appveyor.yml + +commit 58eb2230d8876ba700e68a3601d8032369b5b31c +Author: Benjamin Hofner + + Update appveyor.yml + +commit 1b7c5490565d8a9be5bd62604bb5d35647ab6844 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 93421b24ab0814ca5ebf47ac3fa7ccb1acbd2db3 +Author: janek + + added documentation for new parameter for cycling/noncycling algorithm + +commit 62d0615d5254b40f8197280e60f22e862695afd9 +Author: janek + + moved cyclical fitting to mboostLSS, glmboostLSS.. etc. + +commit dee063f63209f982d815030cd1491165ac61a234 +Author: Benjamin Hofner + + Update appveyor.yml + +commit df05ae5d7e51a2dc3dde547e3a472c1f3274f137 +Author: Benjamin Hofner + + Update appveyor.yml + +commit dc70cea2481b5d3c0c1d09b9300b36b377248afe +Author: Benjamin Hofner + + Update appveyor.yml + +commit b05e951c7236129530e13028bb544f772e57adf1 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 9c60e09b9097e1a692c56f48eae20b479d5e13ed +Author: Benjamin Hofner + + Update appveyor.yml + +commit d4372f9079d070b3b154aa0133ed947ef801f634 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 72887f057ec34cad2e01dbe9a05f3e1a26e974ea +Author: Benjamin Hofner + + Update appveyor.yml + +commit 5955acc1fc6c2d43bf7b41218f08c73296627200 +Author: janek + + added nc functions to namespace and aliased them in rd files + +commit 48f163c24307422db45b79016b081459ca3127e7 +Author: janek + + added nc_mboostLSS as class in nc_mboostLSS_fit + +commit 9522320b2165be0bad6cd9734220cfd6e930a6e7 +Author: janek + + added nc_mboostLSS and nc_blackboostLSS + +commit 101a30530585425038f45bb47b53938306ef8609 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 2fe6f316dd028998de926589b4d63d39733c7766 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 604b4f4db5d8dbeb41d8ff74bddc7ade5d74b245 +Author: janek + + moved new alternative fitting algorithm to this branch + +commit 9132bf94510e1f902c32396be850043ecdc58f45 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 6a477b30723663658579f1e168003ec050d36829 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 8867fb9690a731080ab7c053182e92b0bc5f2266 +Author: Benjamin Hofner + + Update appveyor.yml + +commit a676e856ee015cb60e89f2ccef8a2d74f6d75d3f +Author: Benjamin Hofner + + Update appveyor.yml + +commit 10c6ba28345bc89e19c4d6e0d3f38c82fc24fd41 +Author: Benjamin Hofner + + Update appveyor.yml + +commit 07e6346b1b0a6fea0daedf83cae51fcb7410f5ad +Author: Benjamin Hofner + + Update appveyor.yml + +commit 7915e605413ff8d29113f058f65939a52bf66676 +Author: Benjamin Hofner + + make code consistent by always using response(fitted()); close #5 + +commit 1bfc50e434ab81775a809e5446594db056cdb95e +Author: Benjamin Hofner + + Experimental version of AppVeyor for multiple folders + +commit 4a57c766bbacd92312300ba5abba5fd9ea1e95d8 +Author: Benjamin Hofner + + Update README.md + +commit 5ea9292df17e31cc7e09dc2e63267fa1088fc787 +Author: Benjamin Hofner + + Experimental version of .travis.yml (5) + +commit 20b3f462651282df21bee9344bc3c44726ccc5e7 +Author: Benjamin Hofner + + Experimental version of .travis.yml (4) + +commit 94a32b081f2be2f8cb9fe9c62ec122d81b10e659 +Author: Benjamin Hofner + + Experimental version of .travis.yml (3) + +commit f08e24445a42cbf167941631af2c9b577e7a05db +Author: Benjamin Hofner + + Experimental version of .travis.yml (2) + +commit 8fd062a832a806454ad90a0be06320ee58d3e825 +Author: Benjamin Hofner + + Experimental version of .travis.yml + +commit e57b086f5a1a6d6b67045cce927869a521d764a2 +Author: Benjamin Hofner + + Updated .travis.yml to make vignette compilation possible + +commit 669efbbce96f282399845c23d67e64562e089097 +Author: Benjamin Hofner + + Merged latest release to pkg/ + +commit 573a5de3782bb996b493dc41121f67d09afe20db +Author: Benjamin Hofner + + Fixed inst/CITATION + +commit 39204d00c6538d575539275130bbd77e2a2e4254 Author: Benjamin Hofner Release version 1.2-0 diff --git a/DESCRIPTION b/DESCRIPTION index a64d718..62ec6bf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,17 +1,22 @@ Package: gamboostLSS Type: Package Title: Boosting Methods for 'GAMLSS' -Version: 2.0-0 -Date: 2016-xx-yy -Author: Benjamin Hofner, Andreas Mayr, Nora Fenske, Janek Thomas, Matthias Schmid -Maintainer: Benjamin Hofner +Version: 2.1-0 +Date: 2025-02-14 +Authors@R: c(person("Benjamin", "Hofner", role = c("aut", "cre"), + email = "benjamin.hofner@pei.de", + comment = c(ORCID = "0000-0003-2810-3186")), + person("Andreas", "Mayr", role = "aut"), + person("Nora", "Fenske", role = "aut"), + person("Janek", "Thomas", role = "aut"), + person("Matthias", "Schmid", role = "aut")) 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 +Suggests: gamlss, gamlss.dist, survival, BayesX, R2BayesX, DirichletReg LazyLoad: yes LazyData: yes License: GPL-2 -URL: For source code, development versions and issue tracker see https://github.com/boost-R/gamboostLSS +URL: https://github.com/boost-R/gamboostLSS diff --git a/NAMESPACE b/NAMESPACE index 50dee1b..aaafed5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -8,15 +8,19 @@ importFrom("stats", "coef", "dlogis", "dnorm", "fitted", "median", "optimize", "plogis", "pnorm", "predict", "qlnorm", "qlogis", "qnorm", "qt", "qweibull", "rmultinom", "update", "var", "variable.names", "weighted.mean") importFrom("utils", "tail") +importFrom("stats", "setNames") export(glmboostLSS, gamboostLSS, blackboostLSS, mboostLSS, mboostLSS_fit, + plot.glmboostLSS, plot.gamboostLSS, model.weights, PI, predint, plot.predint, - make.grid, cvrisk.mboostLSS, + predict.mboostLSS, + make.grid, cvrisk.mboostLSS, cvrisk.nc_mboostLSS, + plot.cvriskLSS, plot.nc_cvriskLSS, selected, selected.mboostLSS, selected.stabsel_mboostLSS, stabsel.mboostLSS, Families, @@ -29,6 +33,7 @@ export(glmboostLSS, BetaLSS, BetaMu, BetaPhi, WeibullLSS, WeibullMu, WeibullSigma, ZIPoLSS, ZINBLSS, + DirichletAlpha, DirichletLSS, gamlss.Families, as.families, gamlss1parMu, gamlss2parMu, gamlss2parSigma, diff --git a/R/as.families.R b/R/as.families.R index d8355bd..82d0c8e 100755 --- a/R/as.families.R +++ b/R/as.families.R @@ -30,8 +30,22 @@ as.families <- function(fname = "NO", stabilization = c("none", "MAD", "L2"), fname <- as.character(substitute(fname)) gamlss.fam <- try(gamlss.dist::gamlss.family(fname), silent = TRUE) - if (inherits(gamlss.fam, "try-error")) - stop(sQuote("fname"), " specifies no valid gamlss family") + if (inherits(gamlss.fam, "try-error")){ + suffix <- substr(fname, nchar(fname)-1, nchar(fname)) + distName <- substr(fname, 1, nchar(fname)-2) + isCens <- c(as.integer(gregexpr("r",suffix)), + as.integer(gregexpr("l",suffix)), + as.integer(gregexpr("i",suffix))) + typeCens <- which(isCens > 0) + typesCens <- c("right", "left", "interval") + if(length(typeCens)==1 && as.integer(gregexpr("c",suffix))>0 && is.list(try(gamlss.dist::gamlss.family(distName), silent = TRUE))){ + print(paste0(fname, " specifies no valid gamlss family. Try to define a ", + "censored family with the following command first and then,", + " run your code again:")) + print(paste0("gen.cens(family = '", distName, "', name = 'cens', type = '", typesCens[typeCens], "')")) + } + stop(sQuote(fname), " specifies no valid gamlss family") + } stabilization <- check_stabilization(stabilization) diff --git a/R/cvrisk.R b/R/cvrisk.R index f85c70d..bfebd72 100644 --- a/R/cvrisk.R +++ b/R/cvrisk.R @@ -98,7 +98,7 @@ make.grid <- function(max, length.out = 10, min = NULL, log = TRUE, cvrisk.mboostLSS <- function(object, folds = cv(model.weights(object)), grid = make.grid(mstop(object)), papply = mclapply, trace = TRUE, - fun = NULL, ...) { + mc.preschedule = FALSE, fun = NULL, ...) { weights <- model.weights(object) if (any(weights == 0)) @@ -191,9 +191,17 @@ cvrisk.mboostLSS <- function(object, folds = cv(model.weights(object)), OOBweights <- matrix(rep(weights, ncol(folds)), ncol = ncol(folds)) OOBweights[folds > 0] <- 0 - oobrisk <- papply(1:ncol(folds), - function(i) dummyfct(i, weights = folds[, i], - oobweights = OOBweights[, i]), ...) + if (identical(papply, mclapply)) { + oobrisk <- papply(1:ncol(folds), + function(i) dummyfct(i, weights = folds[, i], + oobweights = OOBweights[, i]), + mc.preschedule = mc.preschedule, ...) + } else { + oobrisk <- papply(1:ncol(folds), + function(i) dummyfct(i, weights = folds[, i], + oobweights = OOBweights[, i]), + ...) + } ## get errors if mclapply is used if (any(idx <- sapply(oobrisk, is.character))) stop(sapply(oobrisk[idx], function(x) x)) diff --git a/R/cvrisk.nc_mboostLSS.R b/R/cvrisk.nc_mboostLSS.R index 0743e34..2dbde60 100644 --- a/R/cvrisk.nc_mboostLSS.R +++ b/R/cvrisk.nc_mboostLSS.R @@ -43,7 +43,7 @@ cvrisk.nc_mboostLSS <- function(object, folds = cv(model.weights(object)), OOBweights <- matrix(rep(weights, ncol(folds)), ncol = ncol(folds)) OOBweights[folds > 0] <- 0 - if (all.equal(papply, mclapply) == TRUE) { + if (identical(papply, mclapply)) { oobrisk <- papply(1:ncol(folds), function(i) dummyfct(i = i, weights = folds[, i], @@ -93,12 +93,12 @@ risk.nc_mboostLSS <- function(object, merge = FALSE, } -plot.nc_cvriskLSS <- function(x, type = "lines", - xlab = "Number of boosting iterations", ylab = NULL, +plot.nc_cvriskLSS <- function(x, xlab = "Number of boosting iterations", ylab = NULL, ylim = range(x), main = attr(x, "type"), ...) { - if (type != "lines") + dots <- list(...) + if ("type" %in% names(dots) && dots$type != "lines") warning("Only ", sQuote('type = "lines"'), " supported for noncyclical fitting") plot.cvriskLSS(x = x, type = "lines", xlab = xlab, ylab = ylab, ylim = ylim, main = main, ...) diff --git a/R/families.R b/R/families.R index 8c5c9a0..7e40f56 100644 --- a/R/families.R +++ b/R/families.R @@ -880,3 +880,103 @@ ZINBLSS <- function(mu = NULL, sigma = NULL, nu = NULL, fam } + +### +# Dirichtlet LSS Family +DirichletAlpha <- function(k = NULL, K = NULL, stabilization) { + # Generate argument names dynamically + arg <- c("y", paste0("a", 1:K)) + arg[arg == paste0("a", k)] <- "f" # Replace the current distributional parameter for `k` with `f` + + # Loss function + loss <- function(y, f) { + # Initialize A as NULL + A <- NULL + + # Dynamically create the R expression to build response matrix A + eval(parse(text = paste0( + # Start by defining the assignment to A using cbind + "A <- cbind(", + # Replace current response "f" with "exp(f)" in the arguments + gsub("f", "exp(f)", + # Dynamically generate the list of arguments for the other distributional parameters a1, a2, ..., f + paste0(grep("a|f", arg, value = TRUE), collapse = ",")), + # Close the cbind function + ")" + ))) + + # Compute the loss function + result <- - (lgamma(rowSums(A)) - rowSums(lgamma(A)) + rowSums((A - 1) * log(y))) + return(result) + } + + # Negative gradient function + ngradient <- function(y, f, w = 1) { + # Initialize A as NULL + A <- NULL + + # Dynamically create the R expression to build response matrix A + eval(parse(text = paste0( + # Start by defining the assignment to A using cbind + "A <- cbind(", + # Replace current response "f" with "exp(f)" in the arguments + gsub("f", "exp(f)", + # Dynamically generate the list of arguments for the other distributional parameters a1, a2, ..., f + paste0(grep("a|f", arg, value = TRUE), collapse = ",")), + # Close the cbind function + ")" + ))) + + # Compute the negative gradient vector + ngr <- A[, k] * (digamma(rowSums(A)) - digamma(A[, k]) + log(y[, k])) + ngr <- stabilize_ngradient(ngr, w, stabilization) + return(ngr) + } + + # Risk function + risk <- function(y, f, w = 1) { + sum(w * loss(y, f)) + } + + # Offset function + offset <- function(y, w) { + RET <- w * y[, k] + RET <- min(RET) + return(RET) + } + + # Return Family object + Family( + ngradient = ngradient, + risk = risk, + loss = loss, + response = function(f) exp(f), + offset = offset, + name = paste0("Dirichlet Distribution: a", k, " (log link)") + ) +} + + +DirichletLSS <- function(K = NULL, stabilization = c("none", "MAD", "L2")) { + # Check if number of categories in the data set K is specified + if (is.null(K)) { + stop("Number of categories 'K' must be specified.") + } + + stabilization <- check_stabilization(stabilization) + + # Create a named list of DirichletAlpha() for each distributional parameter in K + fam <- setNames( + lapply(1:K, function(k) DirichletAlpha(k = k, K = K, stabilization = stabilization)), + paste0("a", 1:K) + ) + + # Assign Families name + fam$name = "DIRLSS" + + # Pass the named list as arguments to Families() + fam <- do.call(Families, fam) + + fam +} + diff --git a/R/helpers.R b/R/helpers.R index d7a593c..df4612d 100644 --- a/R/helpers.R +++ b/R/helpers.R @@ -57,7 +57,7 @@ get_qfun <- function(x, ...) UseMethod("get_qfun") ## extract family name from a gamboostLSS model (used in plot_PI) -get_qfun.mboostLSS <- function(x) { +get_qfun.mboostLSS <- function(x, ...) { qfun <- attr(attr(x, "families"), "qfun") if (is.null(qfun)) stop("Currently not implemented for this family") @@ -66,7 +66,7 @@ get_qfun.mboostLSS <- function(x) { ## obtain pdf from gamlss.dist or global environment ## (needed in as.families) -get_qfun.character <- function(x) { +get_qfun.character <- function(x, ...) { qfun <- paste("gamlss.dist::q", x, sep = "") pdf <- try(eval(parse(text = qfun)), silent = TRUE) if (inherits(pdf, "try-error")) { @@ -139,10 +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) +## 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 @@ -188,3 +203,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 3e9fd19..54f05aa 100644 --- a/R/mboostLSS.R +++ b/R/mboostLSS.R @@ -107,6 +107,7 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), } mstop <- mstoparg <- control$mstop + combined_risk <- NA control$mstop <- 0 if (method == "cyclic") mstop <- check(mstop, "mstop", names(families)) @@ -122,16 +123,40 @@ 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"){ + + # 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) @@ -141,11 +166,15 @@ 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 <- check_y_family(response, families[[j]], + allow_matrix = (funchar == "FDboost")) + 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]]) - offset[[j]] <- families[[j]]@offset(y = response[[j]], w = weights) + response[[j]] <- check_y_family(response[[j]], families[[j]], + allow_matrix = (funchar == "FDboost")) + 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){ @@ -158,17 +187,28 @@ 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], fitted(fit[[k]], type = "response"), + 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 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, 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"), + dots)) + } + } iBoost <- function(niter, method) { @@ -182,6 +222,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)) @@ -204,7 +246,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(fitted(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)))) } @@ -212,9 +255,9 @@ mboostLSS_fit <- function(formula, data = list(), families = GaussianLSS(), for(b in 1:length(fit)){ st <- mstop(fit[[b]]) mstop(fit[[b]]) = st + 1 - risks[b] <- tail(risk(fit[[b]]), 1) + #risks[b] <- tail(risk(fit[[b]]), 1) #evalq({riskfct(y, fit, weights)}, envir = ENV[[b]]) - #risks[b] <- ENV[[b]][["riskfct"]](ENV[[b]][["y"]], ENV[[b]][["fit"]], ENV[[b]][["weights"]]) + risks[b] <- ENV[[b]][["riskfct"]](ENV[[b]][["y"]], ENV[[b]][["fit"]], ENV[[b]][["weights"]]) fit[[b]][st] ## fit[[b]][st] is not enough to reduce the model back to beginning, so @@ -248,8 +291,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(fitted(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 @@ -389,7 +432,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(fitted.mboost(fit[[k]])), environment(get("ngradient", environment(fit[[j]]$subset)))) } } @@ -438,11 +481,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 diff --git a/R/methods.R b/R/methods.R index ec52214..0ed5364 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)] @@ -97,13 +97,17 @@ selected.mboostLSS <- function(object, merge = FALSE, parameter = names(object), #merge is different for noncyclical fitting if (merge) { if (inherits(object, "nc_mboostLSS")){ - 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 { @@ -231,7 +235,7 @@ PI <- predint <- function(x, which, pi = 0.9, newdata = NULL, ...) { "base-learners of one numeric variable") pred_vars <- lapply(x, extract, what = "variable.names") - pred_vars <- unique(unlist(pred_vars)) + pred_vars <- unique(trimws(unlist(strsplit(unlist(pred_vars), ",")))) # fixing bug #55 if ("(Intercept)" %in% pred_vars) pred_vars <- pred_vars[pred_vars != "(Intercept)"] @@ -362,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) } @@ -386,13 +396,21 @@ stabsel.mboostLSS <- function(x, cutoff, q, PFER, cll <- match.call() p <- sum(sapply(x, function(obj) length(variable.names(obj)))) - n <- if(inherits(x, "FDboostLSS")) { - x[[1]]$ydim[1] + + if(inherits(x, "FDboostLSS")) { + if(is.null(x[[1]]$ydim)){ + n <- length(attr(x, "(weights)")) # scalar response + }else{ + n <- x[[1]]$ydim[1] # functional reponse + # correct the wrong default folds if necessary + if(nrow(folds) == length(model.weights(x))){ + folds <- subsample(rep(1, n), B = B) + } + } } else { - nrow(attr(x, "data")) + n <- nrow(attr(x, "data")) } - ## extract names of base-learners (and add paramter name) nms <- lapply(x, function(obj) variable.names(obj)) nms <- lapply(1:length(nms), function(i) @@ -413,13 +431,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 +445,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 +504,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 +520,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 +532,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) } diff --git a/README.md b/README.md index 367a9bb..f2641cf 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ 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) -[![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) -[![](http://cranlogs.r-pkg.org/badges/gamboostLSS)](http://cran.rstudio.com/web/packages/gamboostLSS/index.html) +[![Build Status (Linux)](https://travis-ci.org/boost-R/gamboostLSS.svg?branch=master)](https://app.travis-ci.com/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)](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)](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. @@ -17,13 +17,18 @@ 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). +- 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 here: -- [noncyclical fitting](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. (2018), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + *Statistics and Computing*. 28: 673-687. DOI [10.1007/s11222-017-9754-6](http://dx.doi.org/10.1007/s11222-017-9754-6). + (Preliminary version: [ArXiv 1611.10171](https://arxiv.org/abs/1611.10171)). ## Issues & Feature Requests diff --git a/SOP_release.txt b/SOP_release.txt index 89b1f2a..65fddf1 100644 --- a/SOP_release.txt +++ b/SOP_release.txt @@ -7,8 +7,6 @@ Update ChangeLog ------------------ - Go to patch/pkg directory of project: - git log abba..HEAD --pretty=short > ChangeLog @@ -24,7 +22,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 @@ -35,9 +33,9 @@ Increase patch or minor level in DESCRIPTION Update Date: field in DESCRIPTION - Update NEWS - - R CMD build --resave-data --compact-vignettes [[pkg OR patch]] && + Update inst/NEWS.Rd + + R CMD build --resave-data --compact-vignettes="gs+qpdf" gamboostLSS && R CMD check --as-cran --run-dontrun --run-donttest gamboostLSS_XXX.tar.gz Run check with R-devel @@ -45,18 +43,12 @@ If differences to .Rout.save occure: - Copy new .Rout files to .Rout.save [1,2]: - - Rscript copy_Rout_to_Routsave.R "path='pkg'" "vignettes=FALSE" - or - Rscript copy_Rout_to_Routsave.R "path='patch'" "vignettes=FALSE" - + Rscript copy_Rout_to_Routsave.R "vignettes=FALSE" + - Update vignette .Rout.save files if necessary [1,2]: + Rscript copy_Rout_to_Routsave.R "vignettes=TRUE" - Rscript copy_Rout_to_Routsave.R "path='pkg'" "vignettes=TRUE" - or - Rscript copy_Rout_to_Routsave.R "path='patch'" "vignettes=TRUE" - - [1] For details see + [1] For details see http://r.789695.n4.nabble.com/Generate-Rout-save-files-for-vignettes-td4652752.html [2] NOTE: Reference output should be produced without having the --timings option set. @@ -69,14 +61,17 @@ Commit changes - Update ChangeLog (see above) - - Now build package without test folder to be submitted to CRAN - - R CMD buildCRAN --resave-data --compact-vignettes pkg && R CMD check --as-cran gamboostLSS_XXX.tar.gz - or - 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. - + Update ChangeLog (see above) and amend previous commit + + Now build package without test folder to be submitted to CRAN. + Remove cvrisk results to reduce package size (see below) but do NOT COMMIT these changes to github. + Therefore, do the following: + + mv vignettes/gamboostLSS_Tutorial_CRAN.Rnw vignettes/gamboostLSS_Tutorial.Rnw + mv .RbuildignoreCRAN .Rbuildignore + cd .. + R CMD build --resave-data --compact-vignettes="gs+qpdf" gamboostLSS && R CMD check --as-cran --run-donttest gamboostLSS_XXX.tar.gz + cd gamboostLSS + git checkout -- .RbuildignoreCRAN .Rbuildignore vignettes/gamboostLSS_Tutorial_CRAN.Rnw vignettes/gamboostLSS_Tutorial.Rnw + Use web form at http://xmpalantir.wu.ac.at/cransubmit/. 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 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/inst/CITATION b/inst/CITATION index 0c4012e..c8576d0 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -4,13 +4,13 @@ year <- sub(".*(2[[:digit:]]{3})-.*", "\\1", meta$Date) vers <- paste("{R} package version", meta$Version) txt_vers <- paste("R package version", meta$Version) -citEntry( - entry="Manual", +bibentry( + bibtype ="Manual", title = "{gamboostLSS}: Boosting Methods for {GAMLSS} Models", - author = personList(as.person("Benjamin Hofner"), - as.person("Andreas Mayr"), - as.person("Nora Fenske"), - as.person("Matthias Schmid")), + author = c(person("Benjamin", "Hofner"), + person("Andreas", "Mayr"), + person("Nora", "Fenske"), + person("Matthias", "Schmid")), year = year, note = vers, url = "https://CRAN.R-project.org/package=gamboostLSS", @@ -21,8 +21,8 @@ citEntry( sep="") ) -citEntry( - entry="Article", +bibentry( + bibtype ="Article", title = "{gamboostLSS}: An {R} Package for Model Building and Variable Selection in the {GAMLSS} Framework", author = c(person(given = "Benjamin", family = "Hofner", @@ -47,14 +47,14 @@ citEntry( "doi:10.18637/jss.v074.i01") ) -citEntry( - entry="Article", +bibentry( + bibtype ="Article", title = "Generalized additive models for location, scale and shape for high-dimensional data - a flexible approach based on boosting", - author = personList(as.person("Andreas Mayr"), - as.person("Nora Fenske"), - as.person("Benjamin Hofner"), - as.person("Thomas Kneib"), - as.person("Matthias Schmid")), + author = c(person("Andreas", "Mayr"), + person("Nora", "Fenske"), + person("Benjamin", "Hofner"), + person("Thomas", "Kneib"), + person("Matthias", "Schmid")), journal = "Journal of the Royal Statistical Society, Series C - Applied Statistics", year = "2012", volume = "61", @@ -68,24 +68,27 @@ citEntry( ) -citEntry( - entry= "TechReport", - 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("Benjamin Hofner")), - year = "2016", - institution = "ArXiv", +bibentry( + bibtype = "Article", + title = "Gradient boosting for distributional regression - faster tuning and improved variable selection via noncyclical updates", + author = c(person("Janek", "Thomas"), + person("Andreas", "Mayr"), + person("Bernd", "Bischl"), + person("Matthias", "Schmid"), + person("Adam", "Smith"), + person("Benjamin", "Hofner")), + year = "2018", + journal = "{Statistics and Computing}", + volume = "28", + number = "3", + pages = "673--687", + doi = "10.1007/s11222-017-9754-6", 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. (2018).", + "Gradient boosting for distributional regression - faster tuning and improved variable selection via noncyclical updates.", + "Statistics and Computing. 28(3): 673-687. DOI 10.1007/s11222-017-9754-6") ) -citFooter('\nUse ', sQuote('toBibtex(citation("gamboostLSS"))'), ' to extract BibTeX references.') +citFooter('\nUse ', sQuote('toBibtex(citation("gamboostLSS"))'), ' to extract BibTeX references.\n') diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index a2619cb..4341783 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -1,38 +1,142 @@ \name{NEWS} \title{News for Package 'gamboostLSS'} -\section{Changes in gamboostLSS version 1.5-0 (2016-yy-zz)}{ +\section{Changes in gamboostLSS version 2.1-0 (2025-02-14)}{ \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 family \code{DirichletLSS} for Dirichlet regression models (implemented by Michael Balzer) } + } + \subsection{Minor changes:}{ + \itemize{ + \item{Improved error messages for families with censored response.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-7 (2023-03-09)}{ + \subsection{Bug-fixes}{ + \itemize{ + \item{Fixed minor bug of argument mismatch in internal S3 function \code{get_qfun}.} + \item{Updated \file{inst/CITATION} file to reflect current guidance on how to cite in packages.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-6 (2022-05-05)}{ + \subsection{Bug-fixes}{ + \itemize{ + \item{Fixed minor bug in \code{cvrisk}.} + \item{Fixed minor bug with out-of-bag risk for non-cyclical fitting.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-5 (2021-01-20)}{ + \subsection{Miscellaneous}{ + \itemize{ + \item{Added www and a / after the URLs to make CRAN happy.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-4 (2021-01-20)}{ + \subsection{Miscellaneous}{ + \itemize{ + \item{Changed http to https to make CRAN happy, hopefully finally.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-3 (2021-01-20)}{ + \subsection{Miscellaneous}{ + \itemize{ + \item{Minor changes to make CRAN happy.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-2 (2021-01-19)}{ + \subsection{Bug-fixes}{ + \itemize{ + \item{Initialize \code{combined_risk} in \code{mboostLSS_fit} to avoid writing + (and overwriting) the combined risk in the global environment. + Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/49}{#49}.} + \item{Fixed \code{stabsel.mboostLSS} for models fitted with FDboostLSS. + Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/51}{#51}.} + \item{Code in \file{man/families.Rd} failed. + Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/53}{#53}.} + \item{\code{predint} was not working when multiple variables were included + within a single baselearner. + Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/55}{#55}.} + \item{Fixed CRAN checks regarding \code{all.equal} by adding + \code{check.environment = FALSE}.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-1 (2018-06-14)}{ + \subsection{Miscellaneous}{ + \itemize{ + \item{Export plot functions, streamlined interface of cvrisk and updated manuals. + Closes issue \href{https://github.com/boost-R/gamboostLSS/issues/46}{#46}.} + \item{Export \code{predict.mboostLSS} to make \pkg{betaboost} happy.} + \item{Updated reference for Thomas et al. + Closes issues \href{https://github.com/boost-R/gamboostLSS/issues/47}{#47}.} + } + } +} + +\section{Changes in gamboostLSS version 2.0-0 (2017-05-05)}{ + \subsection{User-visible changes}{ + \itemize{ + \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-cyclical 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. (2017), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + \emph{Statistics and Computing}. Online First. + DOI \href{http://dx.doi.org/10.1007/s11222-017-9754-6}{10.1007/s11222-017-9754-6}\cr + (Preliminary version: \url{https://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 noncyclical 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()}. } } } @@ -167,8 +271,8 @@ (\code{make_grid}) \item added new function \code{as.families} to include \pkg{gamlss} families in \pkg{gamboostLSS} - \item added new families \code{BetaLSS}, \code{GammaLSS}, - \code{GaussianLSS}, \code{ZIPoLSS}, \code{ZINBLSS} + \item added new families \code{BetaLSS} (implemented by Florian Wickler), + \code{GammaLSS}, \code{GaussianLSS}, \code{ZIPoLSS}, \code{ZINBLSS} \item \code{GaussianLSS} is now the default for \code{families} \item added new functions \code{predint()} and \code{plot(predint())} to obtain and plot marginal prediction diff --git a/man/as.families.Rd b/man/as.families.Rd index 1ffa83e..fcea32a 100644 --- a/man/as.families.Rd +++ b/man/as.families.Rd @@ -78,7 +78,7 @@ gamlss.Families(...) corresponding family in \code{gamlss.dist} are applied. To extract the necessary information regarding partial derivatives - (for the \code{ngradient} - see \code{\link{Family}} for details) and + (for the \code{ngradient} - see \code{\link[mboost]{Family}} for details) and the log-likelihood (for the \code{loss}) the \code{gamlss.dist} package is loaded. If the package is not installed yet, this will prompt an error message. @@ -87,12 +87,12 @@ gamlss.Families(...) \code{gamlss2parSigma}, ... , \code{gamlss4parTau} are called internally to construct the sub-families. For one-parametric distributions, the function will prompt a warning and returns a - \code{\link{mboost}} family, which can be then used by the fitting - functions of the \code{\link{mboost}} package. + \code{mboost} family, which can be then used by the fitting + functions of the \code{mboost} package. For information on GAMLSS theory see Rigby and Stasinopoulos (2005), lists of available distributions are provided at - \url{http://gamlss.org}. For more on details boosting GAMLSS see Mayr + \url{https://www.gamlss.com/}. For more on details boosting GAMLSS see Mayr et al. (2012). Hofner et al. (2016) provides a worked example and more details on \code{as.families}. diff --git a/man/cvrisk.Rd b/man/cvrisk.Rd index 23db946..5fb229e 100644 --- a/man/cvrisk.Rd +++ b/man/cvrisk.Rd @@ -14,29 +14,34 @@ \usage{ \method{cvrisk}{mboostLSS}(object, folds = cv(model.weights(object)), grid = make.grid(mstop(object)), papply = mclapply, - trace = TRUE, fun = NULL, ...) + trace = TRUE, mc.preschedule = FALSE, fun = NULL, ...) make.grid(max, length.out = 10, min = NULL, log = TRUE, dense_mu_grid = TRUE) + +\method{cvrisk}{nc_mboostLSS}(object, folds = cv(model.weights(object)), + grid = 1:sum(mstop(object)), papply = mclapply, + trace = TRUE, mc.preschedule = FALSE, fun = NULL, ...) \method{plot}{cvriskLSS}(x, type = c("heatmap", "lines"), xlab = NULL, ylab = NULL, ylim = range(x), main = attr(x, "type"), ...) -\method{plot}{nc_cvriskLSS}(x, type = "lines", - xlab = "Number of boosting iterations", ylab = NULL, +\method{plot}{nc_cvriskLSS}(x, xlab = "Number of boosting iterations", ylab = NULL, ylim = range(x), main = attr(x, "type"), ...) } \arguments{ \item{object}{ - an object of class \code{mboostLSS}, i.e., a boosted GAMLSS model. + an object of class \code{mboostLSS} (i.e., a boosted GAMLSS model with + \code{method = "cyclic"}) or class \code{nc_mboostLSS} (i.e., a boosted + GAMLSS model with \code{method = "noncyclic"}) } \item{folds}{ a weight matrix with number of rows equal to the number of observations. The number of columns corresponds to the number of cross-validation runs. Can be computed using function - \code{\link{cv}} from package \pkg{mboost} and defaults to 25 + \code{\link[mboost]{cv}} from package \pkg{mboost} and defaults to 25 bootstrap samples. } \item{grid}{ @@ -60,6 +65,10 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, should status information beein printed during cross-validation? Default: \code{TRUE}. } + \item{mc.preschedule}{ + preschedule tasks if are parallelized using \code{\link{mclapply}} + (default: \code{FALSE})? For details see \code{\link{mclapply}}. + } \item{fun}{ if \code{fun} is NULL, the out-of-sample risk is returned. \code{fun}, as a function of \code{object}, may extract any other characteristic @@ -96,8 +105,8 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, computational costs. For details see examples. } \item{x}{ - an object of class \code{cvriskLSS}, which results from running - \code{cvrisk}. + an object of class \code{cvriskLSS} (cyclic fitting) or \code{nc_cvriskLSS} + (non-cyclic fitting), which results from running \code{cvrisk}. } \item{type}{ should \code{"lines"} or a \code{"heatmap"} (default) be plotted? @@ -121,7 +130,7 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, for different stopping parameters \code{mstop} are computed by this function which can be utilized to choose an appropriate number of boosting iterations to be applied. For details see - \code{\link{cvrisk.mboost}}. + \code{\link[mboost]{cvrisk.mboost}}. \code{make.grid} eases the creation of an equidistand, integer-valued grids, which can be used with \code{cvrisk}. Per default, the grid is @@ -132,15 +141,17 @@ make.grid(max, length.out = 10, min = NULL, log = TRUE, fold to fold. The heatmap shows only the average risk but in a nicer fashion. - For the \code{method = "noncyclic"} only the line plot for exists. + For the \code{method = "noncyclic"} only the line plot exists. 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. (2018) 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 - specified), basically a matrix containing estimates of the empirical + An object of class \code{cvriskLSS} or \code{nc_cvriskLSS} for cyclic and + non-cyclic fitting, respectively, (when \code{fun} wasn't specified); + Basically a matrix containing estimates of the empirical risk for a varying number of bootstrap iterations. \code{plot} and \code{print} methods are available as well as an \code{mstop} method. } @@ -150,9 +161,16 @@ 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. (2018), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + \emph{Statistics and Computing}. 28: 673-687. + \doi{10.1007/s11222-017-9754-6}\cr + (Preliminary version: \url{https://arxiv.org/abs/1611.10171}). } \seealso{ - \code{\link{cvrisk.mboost}} and \code{\link{cv}} (both in package + \code{\link[mboost]{cvrisk.mboost}} and \code{\link[mboost]{cv}} (both in package \pkg{mboost}) } \examples{ diff --git a/man/families.Rd b/man/families.Rd index 465108d..237fe0d 100644 --- a/man/families.Rd +++ b/man/families.Rd @@ -39,6 +39,9 @@ \alias{ZIPoLSS} \alias{ZINBLSS} +\alias{DirichletAlpha} +\alias{DirichletLSS} + \alias{options} \alias{stab_ngrad} \alias{stabilize_ngrad} @@ -112,6 +115,10 @@ LogLogLSS(mu = NULL, sigma = NULL, # Weibull distribution WeibullLSS(mu = NULL, sigma = NULL, stabilization = c("none", "MAD", "L2")) + +############################################################ +# Family for Dirichlet regression models +DirichletLSS(K = NULL, stabilization = c("none", "MAD", "L2")) ############################################################ # Constructor function for new GAMLSS distributions @@ -133,6 +140,7 @@ Families(..., qfun = NULL, name = NULL) standardized in each boosting step. It can be either "none", "MAD" or "L2". See also Details below. } + \item{K}{An integer specifying the number of categories in the Dirichlet distribution. This must be provided.} } \details{ @@ -159,22 +167,30 @@ Families(..., qfun = NULL, name = NULL) location and scale parameters (with log link) of the negative binomial component of the model. The zero-generating process (with logit link) is represented by \code{nu}. + + The \code{DirichletLSS} family can be used to fit Dirichlet regression models. + Here, \code{DirichletAlpha} corresponds to the distributional parameters in + the Dirichlet distribution which are dependent on the number of categories + in the respective compositional data (that is, proportions, amounts or rates.) + The number of categories, thereby distributional parameters in the data set + (K) has to be specified manually in the beginning of the fitting process + of the model. The \code{Families} function can be used to implements a new GAMLSS distribution which can be used for fitting by \code{\link{mboostLSS}}. Thereby, the function builds a list of sub-families, one for each distribution parameter. The sub-families themselves are objects of the class \code{boost_family}, and can be constructed via the function - \code{\link[mboost]{Family}} of the \code{mboost} Package. + \code{\link[mboost]{Family}} of the \pkg{mboost} Package. - Arguments to be passed to \code{Family}: The \code{loss} for every + Arguments to be passed to \code{\link[mboost]{Family}}: The \code{loss} for every distribution parameter (contained in objects of class \code{boost_family}) is the negative log-likelihood of the corresponding distribution. The \code{ngradient} is the negative partial derivative of the loss function with respect to the distribution parameter. For a two-parameter distribution (e.g. mu and sigma), the user therefore has to specify two sub-families with - \code{\link{Family}}. The \code{loss} is basically the same function + \code{\link[mboost]{Family}}. The \code{loss} is basically the same function for both paramters, only \code{ngradient} differs. Both sub-families are passed to the \code{Families} constructor, which returns an object of the class \code{families}. @@ -184,7 +200,10 @@ Families(..., qfun = NULL, name = NULL) the families. If \code{stabilization = "MAD"}, the negative gradient is divided by its (weighted) median absolute deviation \deqn{median_i (|u_{k,i} - median_j(u_{k,j})|)} in each boosting step. See Hofner et - al. (2016) for details. An alternative is \code{stabilization = "L2"}, where the gradient is divided by its (weighted) mean L2 norm. This results in negative gradient vectors (and hence also updates) of similar size for each distribution parameter, but also for every boosting iteration. + al. (2016) for details. An alternative is \code{stabilization = "L2"}, + where the gradient is divided by its (weighted) mean L2 norm. This + results in negative gradient vectors (and hence also updates) of similar + size for each distribution parameter, but also for every boosting iteration. } \value{ @@ -192,8 +211,10 @@ Families(..., qfun = NULL, name = NULL) } \author{ - \code{BetaLSS} for boosting beta regression was implmented by Florian + \code{BetaLSS} for boosting beta regression was implemented by Florian Wickler. + \code{DirichletLSS} for boosting Dirichlet regression models was implemented by + Michael Balzer. } \references{ @@ -252,9 +273,9 @@ newStudentTMu <- function(mu, df){ } # use the Family constructor of mboost - Family(ngradient = ngradient, risk = risk, loss = loss, - response = function(f) f, - name = "new Student's t-distribution: mu (id link)") + mboost::Family(ngradient = ngradient, risk = risk, loss = loss, + response = function(f) f, + name = "new Student's t-distribution: mu (id link)") } ## sub-Family for df @@ -279,9 +300,9 @@ newStudentTDf <- function(mu, df){ (y - mu)^2 / (1 + (y - mu)^2 / exp(f)) * (exp(-f) + 1)/2) } # use the Family constructor of mboost - Family(ngradient = ngradient, risk = risk, loss = loss, - response = function(f) exp(f), - name = "Student's t-distribution: df (log link)") + mboost::Family(ngradient = ngradient, risk = risk, loss = loss, + response = function(f) exp(f), + name = "Student's t-distribution: df (log link)") } ## families object for new distribution diff --git a/man/gamboostLSS-package.Rd b/man/gamboostLSS-package.Rd index 02a437f..666362d 100644 --- a/man/gamboostLSS-package.Rd +++ b/man/gamboostLSS-package.Rd @@ -14,8 +14,12 @@ This package uses boosting algorithms for fitting GAMLSS (generalized 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). + provided at \url{https://www.gamlss.com/}. For a tutorial on + \code{\link{gamboostLSS}} see Hofner et al. (2015). Thomas et al. (2018) + developed a novel non-cyclic approach to fit \code{\link{gamboostLSS}} models. + This approach is suitable for the combination with \code{\link[mboost]{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 @@ -28,7 +32,7 @@ \code{\link{gamboostLSS}} (for smooth effects) depend on their analogous companions \code{\link[mboost]{glmboost}} and \code{\link[mboost]{gamboost}} for generalized additive models - (contained in package \code{\link{mboost}}, see Hothorn et al. 2010, + (contained in package \code{mboost}, see Hothorn et al. 2010, 2015) and are similar in their usage. The package includes some pre-defined GAMLSS distributions, but the @@ -45,7 +49,7 @@ \author{ Benjamin Hofner, Andreas Mayr, Nora Fenske, Janek Thomas, Matthias Schmid - Maintainer: Benjamin Hofner + Maintainer: Benjamin Hofner } \references{ @@ -83,6 +87,13 @@ 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. (2018), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + \emph{Statistics and Computing}. 28: 673-687. + \doi{10.1007/s11222-017-9754-6}\cr + (Preliminary version: \url{https://arxiv.org/abs/1611.10171}). } \keyword{ package } @@ -92,7 +103,7 @@ fitting. Available distributions (families) are documented here: \code{\link{Families}}. - See also the \code{\link{mboost}} package for more on model-based boosting, or + See also the \code{mboost} package for more on model-based boosting, or the \code{\link[gamlss]{gamlss}} package for the original GAMLSS algorithms provided by Rigby and Stasinopoulos. } diff --git a/man/india.Rd b/man/india.Rd index aed230f..39ca541 100644 --- a/man/india.Rd +++ b/man/india.Rd @@ -49,7 +49,7 @@ data(india.bnd) which is funded by the U.S. Agency of International Development (USAID). It can be obtained for research purposes (after registration) from - \url{http://www.measuredhs.com/what-we-do/survey/survey-display-156.cfm} + \url{https://dhsprogram.com/data/dataset/India_Standard-DHS_1999.cfm} (Data set for All-India, Children's Recode: iakr42dt.zip) } \references{ For details on the data set see also: diff --git a/man/mboostLSS.Rd b/man/mboostLSS.Rd index 348e0a3..22cee99 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., 2018). + } \usage{ mboostLSS(formula, data = list(), families = GaussianLSS(), @@ -37,7 +42,7 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \arguments{ \item{formula}{ a symbolic description of the model to be fit. See - \code{\link{mboost}} for details. If \code{formula} is a single formula, + \code{\link[mboost]{mboost}} for details. If \code{formula} is a single formula, the same formula is used for all distribution parameters. \code{formula} can also be a (named) list, where each list element corresponds to one distribution parameter of the GAMLSS distribution. The names must be @@ -48,11 +53,15 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), specified by the user (see \code{\link{Families}} for details). Per default, we use the two-parametric \code{\link{GaussianLSS}} family.} \item{control}{ a list of parameters controlling the algorithm. For - more details see \code{\link{boost_control}}. } + more details see \code{\link[mboost]{boost_control}}. } \item{weights}{ a numeric vector of weights (optional). } - \item{fun}{ fit function. Either \code{\link{mboost}}, - \code{\link{glmboost}}, \code{\link{gamboost}} or - \code{\link{blackboost}}. Specified directly via the corresponding LSS + \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., 2018). + The latter requires a one dimensional \code{mstop} value.} + \item{fun}{ fit function. Either \code{\link[mboost]{mboost}}, + \code{\link[mboost]{glmboost}}, \code{\link[mboost]{gamboost}} or + \code{\link[mboost]{blackboost}}. Specified directly via the corresponding LSS function. E.g. \code{gamboostLSS()} calls \code{mboostLSS_fit(..., fun = gamboost)}. } \item{funchar}{ character representation of fit function. Either \code{"mboost"}, @@ -61,20 +70,20 @@ 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 - \code{\dots} can be all arguments of \code{mboostLSS_fit} and - \code{mboost_fit}. } + passed to \code{\link[mboost]{mboost}} and \code{\link[mboost]{mboost_fit}}. So + \code{\dots} can be all arguments of \code{mboostLSS_fit}and + \code{\link[mboost]{mboost_fit}}. } } \details{ 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). + the information provided at \url{https://www.gamlss.com/}. For a tutorial on + \code{\link{gamboostLSS}} see Hofner et al. (2016). Thomas et al. (2018) + developed a novel non-cyclic approach to fit gamboostLSS models. This approach + is suitable for the combination with \code{\link[mboost]{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 @@ -85,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 @@ -98,30 +107,32 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), \code{mboostLSS}, \code{glmboostLSS}, \code{gamboostLSS} and \code{blackboostLSS} all call \code{mboostLSS_fit} while \code{fun} is - the corresponding \code{\link{mboost}} function, i.e., the same + the corresponding \pkg{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]{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 + \code{\link[mboost]{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 is assumed to be the same as the order of the components in the \code{families}. For one-dimensional stopping, the user therefore can - specify, e.g., \code{mstop = 100} via \code{\link{boost_control}}. For + specify, e.g., \code{mstop = 100} via \code{\link[mboost]{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., 2018, called inner loss). + For details on the noncyclic fitting method see Thomas et. al. (2018). To (potentially) stabilize the model estimation by standardizing the negative gradients one can use the argument \code{stabilization} of @@ -129,8 +140,13 @@ mboostLSS_fit(formula, data = list(), families = GaussianLSS(), } \value{ - An object of class \code{mboostLSS} with corresponding methods to - extract information. + An object of class \code{mboostLSS} or \code{nc_mboostLSS} (inheriting from + class \code{mboostLSS}) for models fitted with \code{method = "cyclic"} + and \code{method = "non-cyclic"}, respectively, with corresponding methods to + extract information. A \code{mboostLSS} model object is a named list + with one list entry for each modelled distribution parameter. + Special "subclasses" inheriting from \code{mboostLSS} exist for each of the + model-types (with the same name as the function, e.g., \code{gamboostLSS}). } \references{ B. Hofner, A. Mayr, M. Schmid (2016). gamboostLSS: An R Package for @@ -156,16 +172,19 @@ 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. -arXiv preprint arXiv:1611.10171. + Thomas, J., Mayr, A., Bischl, B., Schmid, M., Smith, A., and Hofner, B. (2018), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + \emph{Statistics and Computing}. 28: 673-687. + \doi{10.1007/s11222-017-9754-6}\cr + (Preliminary version: \url{https://arxiv.org/abs/1611.10171}). } \seealso{ \code{\link{Families}} for a documentation of available GAMLSS distributions. - The underlying boosting functions \code{\link{mboost}}, \code{\link{gamboost}}, \code{\link{glmboost}}, - \code{\link{blackboost}} are contained in the \code{\link{mboost}} package. + The underlying boosting functions \code{\link[mboost]{mboost}}, \code{\link[mboost]{gamboost}}, \code{\link[mboost]{glmboost}}, + \code{\link[mboost]{blackboost}} are contained in the \pkg{mboost} package. See for example \code{\link{risk}} or \code{\link{coef}} for methods that can be used to extract information from \code{\link{mboostLSS}} objects. diff --git a/man/methods.Rd b/man/methods.Rd index 7c63c02..30f36c5 100644 --- a/man/methods.Rd +++ b/man/methods.Rd @@ -8,6 +8,7 @@ \alias{risk} \alias{risk.mboostLSS} +\alias{risk.nc_mboostLSS} \alias{[.mboostLSS} @@ -175,7 +176,7 @@ PI(x, which, pi = 0.9, newdata = NULL, ...) a character indicating how the empirical risk should be computed for each boosting iteration. Per default \code{risk} is set to the risk type specified for model fitting via - \code{\link{boost_control}}. For details and alternatives see there. + \code{\link[mboost]{boost_control}}. For details and alternatives see there. } \item{trace}{ a logical triggering printout of status information during the diff --git a/man/stabsel.mboostLSS.Rd b/man/stabsel.mboostLSS.Rd index 84800a0..513ec79 100644 --- a/man/stabsel.mboostLSS.Rd +++ b/man/stabsel.mboostLSS.Rd @@ -41,7 +41,7 @@ distributions of the selection probabilities and simultaneous selection probabilities. Only applicable for \code{sampling.type = "SS"}. For \code{sampling.type = "MB"} we - always use code{"none"}.} + always use \code{"none"}.} \item{sampling.type}{ use sampling scheme of of Shah & Samworth (2013), i.e., with complementarty pairs (\code{sampling.type = "SS"}), or the original sampling scheme of Meinshausen & Buehlmann (2010).} @@ -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. (2018). 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,7 +105,13 @@ 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. (2018), + Gradient boosting for distributional regression - faster tuning and improved + variable selection via noncyclical updates. + \emph{Statistics and Computing}. 28: 673-687. + \doi{10.1007/s11222-017-9754-6}\cr + (Preliminary version: \url{https://arxiv.org/abs/1611.10171}). } \seealso{ \code{\link[stabs]{stabsel}} and diff --git a/tests/Examples/gamboostLSS-Ex.Rout.save b/tests/Examples/gamboostLSS-Ex.Rout.save index 356229c..f276139 100644 --- a/tests/Examples/gamboostLSS-Ex.Rout.save +++ b/tests/Examples/gamboostLSS-Ex.Rout.save @@ -1,14 +1,12 @@ -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 4.4.2 (2024-10-31 ucrt) -- "Pile of Leaves" +Copyright (C) 2024 The R Foundation for Statistical Computing +Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. - Natural language support but running in an English locale - R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. @@ -20,6 +18,7 @@ Type 'q()' to quit R. > pkgname <- "gamboostLSS" > source(file.path(R.home("share"), "R", "examples-header.R")) > options(warn = 1) +> options(pager = "console") > 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", @@ -36,18 +35,16 @@ Type 'q()' to quit R. 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")’ -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 > > base::assign(".oldSearch", base::search(), pos = 'CheckExEnv') +> base::assign(".old_wd", base::getwd(), pos = 'CheckExEnv') > cleanEx() > nameEx("as.families") > ### * as.families @@ -81,11 +78,10 @@ The following object is masked from ‘package:stats’: + glmss <- glmboostLSS(y ~ x, families = as.families(NO())) + } 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 @@ -104,9 +100,16 @@ $sigma > library(gamlss) Loading required package: splines Loading required package: gamlss.data + +Attaching package: 'gamlss.data' + +The following object is masked from 'package:datasets': + + sleep + Loading required package: nlme - ********** GAMLSS Version 4.3-8 ********** -For more on GAMLSS look at http://www.gamlss.org/ + ********** GAMLSS Version 5.4-22 ********** +For more on GAMLSS look at https://www.gamlss.com/ Type gamlssNews() to see new features/changes/bug fixes. > glmss2 <- gamlss(y ~ x, sigma.formula = ~x, family = "NO") @@ -127,8 +130,8 @@ GAMLSS-RS iteration 3: Global Deviance = 3844.149 > 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' > nameEx("cvrisk") > ### * cvrisk @@ -138,7 +141,8 @@ detaching ‘package:gamlss’, ‘package:nlme’, ‘package:gamlss.data’, > 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 +340,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 +386,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 +548,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 +556,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 +566,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 +578,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] + [3] [400,28] + [3] [1,54] + [3] [2,54] + [3] [4,54] + [3] [7,54] + [3] [14,54] + [3] [28,54] + [3] [54,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] - [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] [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 +755,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 +1087,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 +1097,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 +1147,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 +1156,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 +1258,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 +1277,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 +1356,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 +1468,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 +1549,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 +1567,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 +1658,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] [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 +1747,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 +1756,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 +1778,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 +1877,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 +2047,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 +2056,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 +2076,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 +2247,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 +2257,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 +2268,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 +2367,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 +2378,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 +2388,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 +2486,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 +2567,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 +2666,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] @@ -2862,7 +2905,8 @@ Starting cross-validation... > ### NBinomialMu NBinomialSigma StudentTLSS StudentTMu StudentTSigma > ### StudentTDf LogNormalLSS LogNormalMu LogNormalSigma WeibullLSS > ### WeibullMu WeibullSigma LogLogLSS LogLogMu LogLogSigma ZIPoLSS ZINBLSS -> ### options stab_ngrad stabilize_ngrad stabilize_ngradient +> ### DirichletAlpha DirichletLSS options stab_ngrad stabilize_ngrad +> ### stabilize_ngradient > ### Keywords: models distributions > > ### ** Examples @@ -2885,15 +2929,15 @@ 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) + } + + # use the Family constructor of mboost -+ Family(ngradient = ngradient, risk = risk, loss = loss, -+ response = function(f) f, -+ name = "new Student's t-distribution: mu (id link)") ++ mboost::Family(ngradient = ngradient, risk = risk, loss = loss, ++ response = function(f) f, ++ name = "new Student's t-distribution: mu (id link)") + } > > ## sub-Family for df @@ -2910,16 +2954,17 @@ 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) )) - + (y - mu)^2 / (1 + (y - mu)^2 / exp(f)) * (exp(-f) + 1)/2) + } + # use the Family constructor of mboost -+ Family(ngradient = ngradient, risk = risk, loss = loss, -+ response = function(f) exp(f), -+ name = "Student's t-distribution: df (log link)") ++ mboost::Family(ngradient = ngradient, risk = risk, loss = loss, ++ response = function(f) exp(f), ++ name = "Student's t-distribution: df (log link)") + } > > ## families object for new distribution @@ -2932,18 +2977,24 @@ Starting cross-validation... > library(gamlss) ## required for rTF Loading required package: splines Loading required package: gamlss.data + +Attaching package: 'gamlss.data' + +The following object is masked from 'package:datasets': + + sleep + 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 ********** -For more on GAMLSS look at http://www.gamlss.org/ + ********** GAMLSS Version 5.4-22 ********** +For more on GAMLSS look at https://www.gamlss.com/ Type gamlssNews() to see new features/changes/bug fixes. > set.seed(1907) @@ -2962,11 +3013,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: @@ -3015,8 +3066,8 @@ $df > 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:gamlss.data', 'package:splines' > nameEx("gamboostLSS-package") > ### * gamboostLSS-package @@ -3088,17 +3139,12 @@ 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 -Note: Function plotsurf depends on akima which has - a restricted licence that explicitly forbids commercial use. - akima is therefore disabled by default and may be enabled by - akimaPermit(). Calling this function includes your agreement to - akima`s licence restrictions. > > > @@ -3106,7 +3152,7 @@ Note: Function plotsurf depends on akima which has > 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 @@ -3168,16 +3214,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 +3276,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 +3303,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)))) @@ -3282,11 +3328,11 @@ Final risk: 2703.712 > ### Name: methods > ### Title: Methods for mboostLSS > ### Aliases: print.mboostLSS summary.mboostLSS coef.mboostLSS -> ### coef.glmboostLSS risk risk.mboostLSS [.mboostLSS mstop.mboostLSS -> ### mstop.oobag mstop.cvriskLSS selected selected.mboostLSS -> ### fitted.mboostLSS predict.mboostLSS predint PI plot.glmboostLSS -> ### plot.gamboostLSS plot.predint update.mboostLSS model.weights -> ### model.weights.default model.weights.mboostLSS +> ### coef.glmboostLSS risk risk.mboostLSS risk.nc_mboostLSS [.mboostLSS +> ### mstop.mboostLSS mstop.oobag mstop.cvriskLSS selected +> ### selected.mboostLSS fitted.mboostLSS predict.mboostLSS predint PI +> ### plot.glmboostLSS plot.gamboostLSS plot.predint update.mboostLSS +> ### model.weights model.weights.default model.weights.mboostLSS > ### Keywords: methods > > ### ** Examples @@ -3321,43 +3367,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.58171162 2.47642528 1.38321574 0.35846956 -0.55844452 -1.37386807 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458716 -2.59383114 -2.94780874 -3.13830905 -3.18456718 -3.09471614 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86320002 -2.46725583 -1.87824932 -1.08842598 -0.09273069 1.10805069 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864871 4.00437954 5.60292639 7.22757826 8.84770033 10.46670890 $mu$`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.587567018 -0.597235489 -0.606895359 -0.616493825 -0.625795262 -0.634226162 +-0.587566961 -0.597235438 -0.606895315 -0.616493787 -0.625795231 -0.634226137 7 8 9 10 11 12 --0.640764144 -0.643706523 -0.640665097 -0.629114205 -0.606465892 -0.565608617 +-0.640764125 -0.643706510 -0.640665090 -0.629114203 -0.606465895 -0.565608623 13 14 15 16 17 18 --0.499359388 -0.406250941 -0.289077229 -0.151094932 -0.001816165 0.145180788 +-0.499359395 -0.406250945 -0.289077228 -0.151094925 -0.001816152 0.145180803 19 20 21 22 23 24 - 0.286945776 0.419084241 0.545588456 0.669020116 0.789859912 0.910388836 + 0.286945793 0.419084257 0.545588471 0.669020129 0.789859923 0.910388845 $mu$`bbs(x3, df = dfbase)` 1 2 3 4 5 6 - 0.56795274 0.55780411 0.54748652 0.53585628 0.51985234 0.49117077 + 0.56795279 0.55780416 0.54748657 0.53585633 0.51985238 0.49117080 7 8 9 10 11 12 - 0.42717980 0.28842829 0.05046406 -0.25478976 -0.54504698 -0.75532084 + 0.42717983 0.28842831 0.05046407 -0.25478976 -0.54504699 -0.75532086 13 14 15 16 17 18 --0.86898074 -0.89962648 -0.87265488 -0.81495209 -0.74603751 -0.67649672 +-0.86898076 -0.89962650 -0.87265489 -0.81495211 -0.74603752 -0.67649673 19 20 21 22 23 24 --0.61055474 -0.54837543 -0.48890118 -0.43106752 -0.37389397 -0.31679225 +-0.61055475 -0.54837543 -0.48890118 -0.43106752 -0.37389396 -0.31679224 $mu$`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 2.567451544 2.183750845 1.800221518 1.415979616 1.034193922 0.667283578 + 2.567451548 2.183750849 1.800221522 1.415979619 1.034193925 0.667283581 7 8 9 10 11 12 - 0.322037905 0.009307943 -0.257545411 -0.481058705 -0.669711734 -0.813301926 + 0.322037908 0.009307946 -0.257545406 -0.481058697 -0.669711726 -0.813301919 13 14 15 16 17 18 --0.899364082 -0.932976652 -0.928286940 -0.899492000 -0.856040251 -0.804129859 +-0.899364077 -0.932976649 -0.928286937 -0.899491998 -0.856040250 -0.804129860 19 20 21 22 23 24 --0.747632885 -0.688917493 -0.629440065 -0.569818844 -0.510251318 -0.450694813 +-0.747632886 -0.688917495 -0.629440068 -0.569818848 -0.510251322 -0.450694818 attr(,"offset") [1] 8.987845 @@ -3365,65 +3411,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.89659896 0.78713827 0.67616363 0.55710972 0.42730640 0.29198964 7 8 9 10 11 12 - 0.16213560 0.05105498 -0.03122623 -0.07636368 -0.07847080 -0.03347975 + 0.16213561 0.05105498 -0.03122624 -0.07636369 -0.07847081 -0.03347976 13 14 15 16 17 18 - 0.05806291 0.17903227 0.30635650 0.42810619 0.53761725 0.62880999 + 0.05806291 0.17903228 0.30635652 0.42810623 0.53761730 0.62881005 19 20 21 22 23 24 - 0.69997365 0.75391415 0.79637610 0.83506324 0.87429112 0.91365873 + 0.69997372 0.75391423 0.79637618 0.83506332 0.87429121 0.91365882 $sigma$`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.563658099 -0.511757632 -0.459777813 -0.407331656 -0.354135638 -0.300469789 +-0.563658099 -0.511757633 -0.459777813 -0.407331656 -0.354135637 -0.300469789 7 8 9 10 11 12 --0.248309055 -0.199527201 -0.154491030 -0.108894039 -0.058401175 -0.002441743 +-0.248309054 -0.199527201 -0.154491031 -0.108894041 -0.058401176 -0.002441743 13 14 15 16 17 18 - 0.056485633 0.113495345 0.164241662 0.204929795 0.235290786 0.264020513 + 0.056485634 0.113495347 0.164241665 0.204929797 0.235290786 0.264020512 19 20 21 22 23 24 - 0.296512365 0.333895128 0.373456407 0.413559904 0.453779441 0.494022639 + 0.296512364 0.333895129 0.373456411 0.413559910 0.453779449 0.494022650 $sigma$`bbs(x3, df = dfbase)` 1 2 3 4 5 6 --0.06993609 0.21499858 0.50028302 0.78648040 1.06468531 1.31096130 +-0.06993610 0.21499857 0.50028300 0.78648039 1.06468530 1.31096129 7 8 9 10 11 12 - 1.49064677 1.57871832 1.56759726 1.44135824 1.19071516 0.83344537 + 1.49064676 1.57871831 1.56759726 1.44135824 1.19071517 0.83344538 13 14 15 16 17 18 - 0.42510438 0.03477713 -0.30056403 -0.55740737 -0.72441644 -0.78900239 + 0.42510439 0.03477714 -0.30056403 -0.55740737 -0.72441644 -0.78900239 19 20 21 22 23 24 --0.75566343 -0.65077256 -0.49956583 -0.32729936 -0.14808084 0.03192021 +-0.75566343 -0.65077256 -0.49956584 -0.32729937 -0.14808085 0.03192020 $sigma$`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 0.96287395 0.92067646 0.87872609 0.83856810 0.80135245 0.76642932 + 0.96287396 0.92067646 0.87872610 0.83856811 0.80135246 0.76642933 7 8 9 10 11 12 - 0.73502975 0.69991232 0.65251688 0.58964226 0.51238783 0.41489277 + 0.73502975 0.69991233 0.65251689 0.58964226 0.51238783 0.41489277 13 14 15 16 17 18 0.29149880 0.14358469 -0.01622096 -0.18308842 -0.36174266 -0.55165256 19 20 21 22 23 24 --0.75216843 -0.96121405 -1.17697566 -1.39582787 -1.61463881 -1.83317154 +-0.75216843 -0.96121405 -1.17697567 -1.39582787 -1.61463882 -1.83317154 $sigma$`bbs(x5, df = dfbase)` 1 2 3 4 5 6 --0.35133403 -0.31818178 -0.28487218 -0.25048316 -0.21414472 -0.17551639 +-0.35133403 -0.31818178 -0.28487218 -0.25048316 -0.21414473 -0.17551639 7 8 9 10 11 12 --0.13478066 -0.09043638 -0.04036516 0.01140995 0.05490236 0.08804387 +-0.13478066 -0.09043638 -0.04036516 0.01140995 0.05490235 0.08804386 13 14 15 16 17 18 0.11539467 0.13861908 0.15950497 0.17917571 0.19811973 0.21841061 19 20 21 22 23 24 - 0.23971872 0.26186474 0.28466756 0.30781904 0.33074669 0.35356977 + 0.23971873 0.26186475 0.28466757 0.30781905 0.33074669 0.35356978 $sigma$`bbs(x6, df = dfbase)` 1 2 3 4 5 --0.2844651880 -0.2186158355 -0.1534117880 -0.0928846917 -0.0448736951 +-0.2844651853 -0.2186158339 -0.1534117873 -0.0928846920 -0.0448736963 6 7 8 9 10 --0.0144611066 -0.0007836747 0.0043527943 0.0116311707 0.0272086244 +-0.0144611085 -0.0007836771 0.0043527916 0.0116311680 0.0272086216 11 12 13 14 15 - 0.0517831869 0.0848199173 0.1248441166 0.1671483807 0.2026641167 + 0.0517831842 0.0848199149 0.1248441156 0.1671483825 0.2026641218 16 17 18 19 20 - 0.2336020503 0.2661041115 0.3023380856 0.3417998069 0.3836024077 + 0.2336020577 0.2661041203 0.3023380949 0.3417998164 0.3836024171 21 22 23 24 - 0.4268453691 0.4711745653 0.5160781652 0.5610761947 + 0.4268453784 0.4711745744 0.5160781740 0.5610762032 attr(,"offset") [1] -2.427222 @@ -3433,43 +3479,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.58171162 2.47642528 1.38321574 0.35846956 -0.55844452 -1.37386807 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458716 -2.59383114 -2.94780874 -3.13830905 -3.18456718 -3.09471614 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86320002 -2.46725583 -1.87824932 -1.08842598 -0.09273069 1.10805069 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864871 4.00437954 5.60292639 7.22757826 8.84770033 10.46670890 $`bbs(x2, df = dfbase)` 1 2 3 4 5 6 --0.587567018 -0.597235489 -0.606895359 -0.616493825 -0.625795262 -0.634226162 +-0.587566961 -0.597235438 -0.606895315 -0.616493787 -0.625795231 -0.634226137 7 8 9 10 11 12 --0.640764144 -0.643706523 -0.640665097 -0.629114205 -0.606465892 -0.565608617 +-0.640764125 -0.643706510 -0.640665090 -0.629114203 -0.606465895 -0.565608623 13 14 15 16 17 18 --0.499359388 -0.406250941 -0.289077229 -0.151094932 -0.001816165 0.145180788 +-0.499359395 -0.406250945 -0.289077228 -0.151094925 -0.001816152 0.145180803 19 20 21 22 23 24 - 0.286945776 0.419084241 0.545588456 0.669020116 0.789859912 0.910388836 + 0.286945793 0.419084257 0.545588471 0.669020129 0.789859923 0.910388845 $`bbs(x3, df = dfbase)` 1 2 3 4 5 6 - 0.56795274 0.55780411 0.54748652 0.53585628 0.51985234 0.49117077 + 0.56795279 0.55780416 0.54748657 0.53585633 0.51985238 0.49117080 7 8 9 10 11 12 - 0.42717980 0.28842829 0.05046406 -0.25478976 -0.54504698 -0.75532084 + 0.42717983 0.28842831 0.05046407 -0.25478976 -0.54504699 -0.75532086 13 14 15 16 17 18 --0.86898074 -0.89962648 -0.87265488 -0.81495209 -0.74603751 -0.67649672 +-0.86898076 -0.89962650 -0.87265489 -0.81495211 -0.74603752 -0.67649673 19 20 21 22 23 24 --0.61055474 -0.54837543 -0.48890118 -0.43106752 -0.37389397 -0.31679225 +-0.61055475 -0.54837543 -0.48890118 -0.43106752 -0.37389396 -0.31679224 $`bbs(x4, df = dfbase)` 1 2 3 4 5 6 - 2.567451544 2.183750845 1.800221518 1.415979616 1.034193922 0.667283578 + 2.567451548 2.183750849 1.800221522 1.415979619 1.034193925 0.667283581 7 8 9 10 11 12 - 0.322037905 0.009307943 -0.257545411 -0.481058705 -0.669711734 -0.813301926 + 0.322037908 0.009307946 -0.257545406 -0.481058697 -0.669711726 -0.813301919 13 14 15 16 17 18 --0.899364082 -0.932976652 -0.928286940 -0.899492000 -0.856040251 -0.804129859 +-0.899364077 -0.932976649 -0.928286937 -0.899491998 -0.856040250 -0.804129860 19 20 21 22 23 24 --0.747632885 -0.688917493 -0.629440065 -0.569818844 -0.510251318 -0.450694813 +-0.747632886 -0.688917495 -0.629440068 -0.569818848 -0.510251322 -0.450694818 attr(,"offset") [1] 8.987845 @@ -3479,13 +3525,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.58171162 2.47642528 1.38321574 0.35846956 -0.55844452 -1.37386807 7 8 9 10 11 12 --2.06458712 -2.59383111 -2.94780872 -3.13830905 -3.18456719 -3.09471615 +-2.06458716 -2.59383114 -2.94780874 -3.13830905 -3.18456718 -3.09471614 13 14 15 16 17 18 --2.86320001 -2.46725579 -1.87824927 -1.08842591 -0.09273062 1.10805073 +-2.86320002 -2.46725583 -1.87824932 -1.08842598 -0.09273069 1.10805069 19 20 21 22 23 24 - 2.48864870 4.00437945 5.60292622 7.22757798 8.84769996 10.46670845 + 2.48864871 4.00437954 5.60292639 7.22757826 8.84770033 10.46670890 attr(,"offset") [1] 8.987845 @@ -3493,13 +3539,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.89659896 0.78713827 0.67616363 0.55710972 0.42730640 0.29198964 7 8 9 10 11 12 - 0.16213560 0.05105498 -0.03122623 -0.07636368 -0.07847080 -0.03347975 + 0.16213561 0.05105498 -0.03122624 -0.07636369 -0.07847081 -0.03347976 13 14 15 16 17 18 - 0.05806291 0.17903227 0.30635650 0.42810619 0.53761725 0.62880999 + 0.05806291 0.17903228 0.30635652 0.42810623 0.53761730 0.62881005 19 20 21 22 23 24 - 0.69997365 0.75391415 0.79637610 0.83506324 0.87429112 0.91365873 + 0.69997372 0.75391423 0.79637618 0.83506332 0.87429121 0.91365882 attr(,"offset") [1] -2.427222 @@ -3566,6 +3612,89 @@ Warning in xy.coords(x, y, xlabel, ylabel, log) : > 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()) +> +> base::assign(".ptime", proc.time(), pos = "CheckExEnv") +> ### 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 (Intercept).sigma x5.sigma + 0.01 0.03 0.06 0.08 + x2.sigma x4.sigma x1.sigma x3.sigma + 0.70 0.70 0.71 0.71 + 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) +> +> +> +> base::assign(".dptime", (proc.time() - get(".ptime", pos = "CheckExEnv")), pos = "CheckExEnv") +> base::cat("stabsel.mboostLSS", base::get(".format_ptime", pos = 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n", file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t") +> cleanEx() > nameEx("weighted_median") > ### * weighted_median > @@ -3599,9 +3728,10 @@ Warning in xy.coords(x, y, xlabel, ylabel, log) : > 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") > ### *