@@ -44,13 +44,19 @@ class Ridge2Regressor():
4444
4545 type_pi: a string;
4646 Type of prediction interval (currently "gaussian",
47- or "bootstrap" or "blockbootstrap")
47+ "bootstrap", (circular) "blockbootstrap", "movingblockbootstrap", or "rvinecopula ")
4848
4949 block_length: an integer
50- length of block for multivariate circular block bootstrap (`type_pi == blockbootstrap`)
50+ length of block for multivariate block bootstrap (`type_pi == blockbootstrap` or
51+ `type_pi == movingblockbootstrap`)
52+
53+ margins: a string;
54+ distribution of residuals' marginals for `type_pi == rvinecopula`: "empirical" (default),
55+ "gaussian"
5156
5257 B: an integer;
53- Number of bootstrap replications for `type_pi == bootstrap` or `type_pi == blockbootstrap`
58+ Number of bootstrap replications for `type_pi == bootstrap`, "blockbootstrap",
59+ "movingblockbootstrap", or "rvinecopula"
5460
5561 type_aggregation: a string;
5662 Type of aggregation, ONLY for bootstrapping; either "mean" or "median"
@@ -140,6 +146,7 @@ def __init__(
140146 dropout = 0 ,
141147 type_pi = "gaussian" ,
142148 block_length = 3 , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
149+ margins = "empirical" ,
143150 B = 100 ,
144151 type_aggregation = "mean" ,
145152 centers = 2 ,
@@ -148,6 +155,12 @@ def __init__(
148155 date_formatting = "original" ,
149156 seed = 123 ,
150157 ):
158+
159+ if not config .R_IS_INSTALLED :
160+ raise ImportError ("R is not installed! \n " + config .USAGE_MESSAGE )
161+
162+ if not config .RPY2_IS_INSTALLED :
163+ raise ImportError (config .RPY2_ERROR_MESSAGE + config .USAGE_MESSAGE )
151164
152165 self .h = h
153166 self .level = level
@@ -161,6 +174,7 @@ def __init__(
161174 self .dropout = dropout
162175 self .type_pi = type_pi
163176 self .block_length = block_length
177+ self .margins = margins
164178 self .B = B
165179 self .type_aggregation = type_aggregation
166180 self .centers = centers # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
@@ -209,29 +223,28 @@ def forecast(self, df, xreg = None):
209223
210224 if xreg is None :
211225
212- with cv .localconverter (default_converter + config .NONE_CONVERTER ):
213- self .fcast_ = config .AHEAD_PACKAGE .ridge2f (
214- y ,
215- xreg = xreg ,
216- h = self .h ,
217- level = self .level ,
218- lags = self .lags ,
219- nb_hidden = self .nb_hidden ,
220- nodes_sim = self .nodes_sim ,
221- activ = self .activation ,
222- a = self .a ,
223- lambda_1 = self .lambda_1 ,
224- lambda_2 = self .lambda_2 ,
225- dropout = self .dropout ,
226- type_pi = self .type_pi ,
227- block_length = self .block_length , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
228- B = self .B ,
229- type_aggregation = self .type_aggregation ,
230- centers = self .centers , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
231- type_clustering = self .type_clustering ,
232- cl = self .cl ,
233- seed = self .seed ,
234- )
226+ self .fcast_ = config .AHEAD_PACKAGE .ridge2f (
227+ y ,
228+ h = self .h ,
229+ level = self .level ,
230+ lags = self .lags ,
231+ nb_hidden = self .nb_hidden ,
232+ nodes_sim = self .nodes_sim ,
233+ activ = self .activation ,
234+ a = self .a ,
235+ lambda_1 = self .lambda_1 ,
236+ lambda_2 = self .lambda_2 ,
237+ dropout = self .dropout ,
238+ type_pi = self .type_pi ,
239+ margins = self .margins ,
240+ block_length = self .block_length , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
241+ B = self .B ,
242+ type_aggregation = self .type_aggregation ,
243+ centers = self .centers , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
244+ type_clustering = self .type_clustering ,
245+ cl = self .cl ,
246+ seed = self .seed ,
247+ )
235248
236249 else : # xreg is not None:
237250
@@ -263,6 +276,7 @@ def forecast(self, df, xreg = None):
263276 lambda_2 = self .lambda_2 ,
264277 dropout = self .dropout ,
265278 type_pi = self .type_pi ,
279+ margins = self .margins ,
266280 block_length = self .block_length , # can be NULL, but in R (use 0 in R instead of NULL for v0.7.0)
267281 B = self .B ,
268282 type_aggregation = self .type_aggregation ,
@@ -295,7 +309,8 @@ def forecast(self, df, xreg = None):
295309 for i in range (n_series )
296310 )
297311
298- if self .type_pi == "bootstrap" or self .type_pi == "blockbootstrap" :
312+ if self .type_pi in ("bootstrap" , "blockbootstrap" ,
313+ "movingblockbootstrap" , "rvinecopula" ):
299314 self .sims_ = tuple (
300315 np .asarray (self .fcast_ .rx2 ["sims" ][i ]) for i in range (self .B )
301316 )
0 commit comments