From 2fd6dc99ffa28f9010727dffe5944ab045084945 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Mon, 13 Nov 2023 10:02:00 +1000 Subject: [PATCH] bug fix converting tau to sigma for autoregressive propagation --- R/forecast.mvgam.R | 2 +- R/mvgam.R | 4 ++-- R/trends.R | 4 ++-- src/mvgam.dll | Bin 1061888 -> 1061888 bytes tests/testthat/Rplots.pdf | Bin 22892 -> 22901 bytes 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/R/forecast.mvgam.R b/R/forecast.mvgam.R index 90b9047c..d73ef59b 100644 --- a/R/forecast.mvgam.R +++ b/R/forecast.mvgam.R @@ -676,7 +676,7 @@ forecast_draws = function(object, ending_time = ending_time) } - # Any model in which a an autoregressive process was included should be + # Any model in which an autoregressive process was included should be # considered as VAR1 for forecasting purposes as this will make use of the # faster c++ functions if('Sigma' %in% names(trend_pars) | diff --git a/R/mvgam.R b/R/mvgam.R index 4c9d920b..e6562c0a 100644 --- a/R/mvgam.R +++ b/R/mvgam.R @@ -1915,7 +1915,7 @@ mvgam = function(formula, warmup = burnin, chains = chains, data = model_data, - cores = 1, + cores = min(c(chains, parallel::detectCores() - 1)), init = inits, verbose = FALSE, thin = thin, @@ -1929,7 +1929,7 @@ mvgam = function(formula, warmup = burnin, chains = chains, data = model_data, - cores = min(c(chains, parallel::detectCores() - 1)), + cores = 1, init = inits, verbose = FALSE, thin = thin, diff --git a/R/trends.R b/R/trends.R index cf9962be..9fac6de6 100644 --- a/R/trends.R +++ b/R/trends.R @@ -1122,7 +1122,7 @@ forecast_trend = function(trend_model, use_lv, trend_pars, # Construct VARMA parameters if('Sigma' %in% names(trend_pars)){ - Sigma <- trend_pars$sigma + Sigma <- trend_pars$Sigma } else { Sigma <- rlang::missing_arg() } @@ -1231,7 +1231,7 @@ forecast_trend = function(trend_model, use_lv, trend_pars, Sigmamat <- matrix(0, nrow = length(trend_pars$last_lvs), ncol = length(trend_pars$last_lvs), byrow = TRUE) - diag(Sigmamat) <- 1 / sqrt(trend_pars$tau) + diag(Sigmamat) <- 1 / trend_pars$tau } diff --git a/src/mvgam.dll b/src/mvgam.dll index 0d00c5a14d9418d4d0fae2f4d845e442b9eff77f..2fc4de66739d5c838c4de5bfd34dd9071474c817 100644 GIT binary patch delta 77 zcmZp8;n48HVL}J9c}n2KZeJ$98I8AEZ!xysVrsp`+n*;mxA?Vgg0yaDzs3JE5&&o5BPaj> delta 77 zcmZp8;n48HVL}JdV%bL%aZ)?2Ktx7b>5vA5phXuZYR hdW);|7I*6{p4MBut+)8L-s0D~3DUZq{TBbvNC3sHB}D)L diff --git a/tests/testthat/Rplots.pdf b/tests/testthat/Rplots.pdf index d4d55f4ea744e1877f49b3dd7ad56c44923e8c83..de4dd13c455c14b809ddc5b02f4470406e09bbd1 100644 GIT binary patch delta 9662 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

Y|I$N06oTowIBVcGZ^EU%2bck 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,v0C!oaBWG; zo?O_G+AVNXuu0rWoAf{m=r-Ag%_N7<4x7Bo%`!ZKK4y>pOLS^wFUu2pa6{G%(CBh5 zNuGu=bBGOzmzN>}z1yZeLJtDX-Q8BiX!Lk?s{AnVAznFwJGb3=fLE?zGx=e&Dq50p zTvz!waD?y=f9S6uFN6@Ghs-IkVl{V*1;F&2>Kyx@5dwBIcEKsv`)P@cwN7FdPzE;c z#rcLd!+2hsQ|c@TT()@sR^23EZqi@`;8(<5lg+43fo z`)UcFsL|mJq3W<76EAaX54g3ZE`?MEy)iHt8I!l7L@nu&-I@&gJ;pwN8)u5kgn;ar!{`!2HJ z4Tvgqz5l@7g68%BB=HO{M1JFsLWm3sro<5jxDE7Qvt0ww3C*8TP;;V&svj9RbCUNM z5aGRX=xYx~`p8y7)tJoCb+|3O3ZK~+P^}E z5A%f`)cXcUe6yH8y9zCSV6O1*$Cf|oDRjQVDamlmla}qd+6H@dp~dLb&fwl+0y%>( z+$aX*Y(4uiTjOqhAuvd3d5~VoGxyYH42I1%SC%4X@as=q!y=a+3-AKb{kH=9&j4Qi zRWs|csvNFKtEfkY=WxAh#iT0KHh}o0g(w=))n!q=CVNie;P0HrImW{a$!k&yGXLkE zjP(EKo}7HNvze{2oYa5)yOflato;AECoTKmTS-aDNc{I>!F#gO(R}8bjIt6^jDmui IhFXmO4_7~$(*OVf delta 9653 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