@@ -172,6 +172,8 @@ def __init__(
172
172
if len (endog_names ) != k_endog :
173
173
raise ValueError ("Length of provided endog_names does not match provided k_endog" )
174
174
175
+ needs_exog_data = False
176
+
175
177
if k_exog is not None and not isinstance (k_exog , int | dict ):
176
178
raise ValueError ("If not None, k_endog must be either an int or a dict" )
177
179
if exog_state_names is not None and not isinstance (exog_state_names , list | dict ):
@@ -199,6 +201,7 @@ def __init__(
199
201
"If both k_endog and exog_state_names are provided, lengths of exog_state_names "
200
202
"lists must match corresponding values in k_exog"
201
203
)
204
+ needs_exog_data = True
202
205
203
206
if k_exog is not None and exog_state_names is None :
204
207
if isinstance (k_exog , int ):
@@ -207,12 +210,14 @@ def __init__(
207
210
exog_state_names = {
208
211
name : [f"{ name } _exogenous_{ i } " for i in range (k )] for name , k in k_exog .items ()
209
212
}
213
+ needs_exog_data = True
210
214
211
215
if k_exog is None and exog_state_names is not None :
212
216
if isinstance (exog_state_names , list ):
213
217
k_exog = len (exog_state_names )
214
218
elif isinstance (exog_state_names , dict ):
215
219
k_exog = {name : len (names ) for name , names in exog_state_names .items ()}
220
+ needs_exog_data = True
216
221
217
222
# If exog_state_names is a dict but 1) all endog variables are among the keys, and 2) all values are the same
218
223
# then we can drop back to the list case.
@@ -245,7 +250,7 @@ def __init__(
245
250
mode = mode ,
246
251
)
247
252
248
- self ._needs_exog_data = exog_state_names is not None and len ( exog_state_names ) > 0
253
+ self ._needs_exog_data = needs_exog_data
249
254
250
255
# Save counts of the number of parameters in each category
251
256
self .param_counts = {
0 commit comments