@@ -298,6 +298,11 @@ def summary_top(results, title=None, gleft=None, gright=None, yname=None, xname=
298
298
#create dictionary with default
299
299
#use lambdas because some values raise exception if they are not available
300
300
#alternate spellings are commented out to force unique labels
301
+ def num_to_str (x , width = 6 ):
302
+ if np .isnan (x ):
303
+ return (width - 3 ) * ' ' + 'NaN'
304
+ return "%#6d" % x
305
+
301
306
default_items = dict ([
302
307
('Dependent Variable:' , lambda : [yname ]),
303
308
('Dep. Variable:' , lambda : [yname ]),
@@ -307,16 +312,16 @@ def summary_top(results, title=None, gleft=None, gright=None, yname=None, xname=
307
312
('Time:' , lambda : time_of_day ),
308
313
('Number of Obs:' , lambda : [results .nobs ]),
309
314
#('No. of Observations:', lambda: ["%#6d" % results.nobs]),
310
- ('No. Observations:' , lambda : ["%#6d" % results .nobs ]),
315
+ ('No. Observations:' , lambda : [num_to_str ( results .nobs ) ]),
311
316
#('Df model:', lambda: [results.df_model]),
312
- ('Df Model:' , lambda : ["%#6d" % results .df_model ]),
317
+ ('Df Model:' , lambda : [num_to_str ( results .df_model ) ]),
313
318
#TODO: check when we have non-integer df
314
- ('Df Residuals:' , lambda : ["%#6d" % results .df_resid ]),
315
- #('Df resid:', lambda: [results.df_resid]),
316
- #('df resid:', lambda: [results.df_resid]), #check capitalization
317
- ('Log-Likelihood:' , lambda : ["%#8.5g" % results .llf ]) # doesn't exist for RLM - exception
318
- #('Method:', lambda: [???]), #no default for this
319
- ])
319
+ ('Df Residuals:' , lambda : [num_to_str ( results .df_resid ) ]),
320
+ # ('Df resid:', lambda: [results.df_resid]),
321
+ # ('df resid:', lambda: [results.df_resid]), #check capitalization
322
+ ('Log-Likelihood:' , lambda : ["%#8.5g" % results .llf ]) # doesn't exist for RLM - exception
323
+ # ('Method:', lambda: [???]), # no default for this
324
+ ])
320
325
321
326
if title is None :
322
327
title = results .model .__class__ .__name__ + 'Regression Results'
0 commit comments