@@ -33,7 +33,7 @@ class ARMA(object):
33
33
u: (mxt) matrix of input variables
34
34
TREND: (pxt) matrix like y or a p-dim vector
35
35
"""
36
- def __init__ (self , A = None , B = None , C = None , TREND = None , rand_state = None ):
36
+ def __init__ (self , A , B = None , C = None , TREND = None , rand_state = None ):
37
37
self .A = np .asarray (A [0 ]).reshape (A [1 ], order = 'F' )
38
38
if B is not None :
39
39
self .B = np .asarray (B [0 ]).reshape (B [1 ], order = 'F' )
@@ -58,14 +58,6 @@ def __init__(self, A=None, B=None, C=None, TREND=None, rand_state=None):
58
58
else :
59
59
self .rand = np .random .RandomState ()
60
60
61
- def _set_array_by_mask (self , arr , mask , values ):
62
- mask = np .where (~ mask )
63
- arr [mask ] = values
64
-
65
- def _get_array_by_mask (self , arr , mask ):
66
- mask = np .where (~ mask )
67
- return arr [mask ]
68
-
69
61
def _get_num_non_consts (self ):
70
62
a = np .sum (~ self .Aconst )
71
63
b = np .sum (~ self .Bconst )
@@ -74,10 +66,9 @@ def _get_num_non_consts(self):
74
66
75
67
@property
76
68
def non_consts (self ):
77
- a , b , c = self ._get_num_non_consts ()
78
- A = self ._get_array_by_mask (self .A , self .Aconst )
79
- B = self ._get_array_by_mask (self .B , self .Bconst )
80
- C = self ._get_array_by_mask (self .C , self .Cconst )
69
+ A = self .A [~ self .Aconst ]
70
+ B = self .B [~ self .Bconst ]
71
+ C = self .C [~ self .Cconst ]
81
72
return np .hstack ([A , B , C ])
82
73
83
74
@non_consts .setter
@@ -89,9 +80,9 @@ def non_consts(self, values):
89
80
A_values = values [:a ]
90
81
B_values = values [a :a + b ]
91
82
C_values = values [a + b :a + b + c ]
92
- self ._set_array_by_mask ( self . A , self .Aconst , A_values )
93
- self ._set_array_by_mask ( self . B , self .Bconst , B_values )
94
- self ._set_array_by_mask ( self . C , self .Cconst , C_values )
83
+ self .A [ ~ self .Aconst ] = A_values
84
+ self .B [ ~ self .Bconst ] = B_values
85
+ self .C [ ~ self .Cconst ] = C_values
95
86
96
87
def _check_consistency (self , A , B , C , TREND ):
97
88
if A is None :
@@ -141,7 +132,7 @@ def simulate(self, y0=None, u0=None, sampleT=100, noise=None):
141
132
u0 = u0 if u0 is not None else np .zeros ((c , m ))
142
133
143
134
# generate white noise if necessary
144
- if not noise :
135
+ if noise is None :
145
136
noise = self ._get_noise (sampleT , p , b )
146
137
w0 , w = noise
147
138
@@ -182,7 +173,7 @@ def forecast(self, y, u=None):
182
173
m = self .C .shape [2 ] if self .C else 0
183
174
TREND = self .TREND
184
175
185
- # ToDo: Let these be parameters and do consistensy check
176
+ # ToDo: Let these be parameters and do consistency check
186
177
sampleT = predictT = y .shape [0 ]
187
178
pred_err = np .zeros ((sampleT , p ))
188
179
0 commit comments