'Summarize the Model
Parameters
alpha : float, optional
Significance level for the confidence intervals. Default is 0.05.
start : int, optional
Integer of the start observation. Default is 0.
model_name : string
The name of the model used. Default is to use model class name.
Returns
summary : Summary instance
This holds the summary table and text, which can be printed or
converted to various output formats.
See Also
statsmodels.iolib.summary.Summary'

def summary(self, alpha=0.05, start=None, title=None, model_name=None, display_params=True):

    from statsmodels.iolib.summary import Summary
    model = self.model
    if (title is None):
        title = 'Statespace    Model    Results'
    if (start is None):
        start = 0
    if self.model._index_dates:
        ix = self.model._index
        d = ix[start]
        sample = [('%02d-%02d-%02d' % (d.month, d.day, d.year))]
        d = ix[(-1)]
        sample += [('-    ' + ('%02d-%02d-%02d' % (d.month, d.day, d.year)))]
    else:
        sample = [str(start), ('    -    ' + str(self.nobs))]
    if (model_name is None):
        model_name = model.__class__.__name__
    try:
        het = self.test_heteroskedasticity(method='breakvar')
    except:
        het = np.array([([np.nan] * 2)])
    try:
        lb = self.test_serial_correlation(method='ljungbox')
    except:
        lb = np.array([([np.nan] * 2)]).reshape(1, 2, 1)
    try:
        jb = self.test_normality(method='jarquebera')
    except:
        jb = np.array([([np.nan] * 4)])
    if (not isinstance(model_name, list)):
        model_name = [model_name]
    top_left = [('Dep.    Variable:', None)]
    top_left.append(('Model:', [model_name[0]]))
    for i in range(1, len(model_name)):
        top_left.append(('', [('+    ' + model_name[i])]))
    top_left += [('Date:', None), ('Time:', None), ('Sample:', [sample[0]]), ('', [sample[1]])]
    top_right = [('No.    Observations:', [self.nobs]), ('Log    Likelihood', [('%#5.3f' % self.llf)]), ('AIC', [('%#5.3f' % self.aic)]), ('BIC', [('%#5.3f' % self.bic)]), ('HQIC', [('%#5.3f' % self.hqic)])]
    if hasattr(self, 'cov_type'):
        top_left.append(('Covariance    Type:', [self.cov_type]))
    format_str = (lambda array: [',    '.join(['{0:.2f}'.format(i) for i in array])])
    diagn_left = [('Ljung-Box    (Q):', format_str(lb[:, 0, (-1)])), ('Prob(Q):', format_str(lb[:, 1, (-1)])), ('Heteroskedasticity    (H):', format_str(het[:, 0])), ('Prob(H)    (two-sided):', format_str(het[:, 1]))]
    diagn_right = [('Jarque-Bera    (JB):', format_str(jb[:, 0])), ('Prob(JB):', format_str(jb[:, 1])), ('Skew:', format_str(jb[:, 2])), ('Kurtosis:', format_str(jb[:, 3]))]
    summary = Summary()
    summary.add_table_2cols(self, gleft=top_left, gright=top_right, title=title)
    if ((len(self.params) > 0) and display_params):
        summary.add_table_params(self, alpha=alpha, xname=self.data.param_names, use_t=False)
    summary.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, title='')
    etext = []
    if (hasattr(self, 'cov_type') and ('description' in self.cov_kwds)):
        etext.append(self.cov_kwds['description'])
    if (self._rank < len(self.params)):
        etext.append(('Covariance    matrix    is    singular    or    near-singular,    with    condition    number    %6.3g.    Standard    errors    may    be    unstable.' % np.linalg.cond(self.cov_params())))
    if etext:
        etext = ['[{0}]    {1}'.format((i + 1), text) for (i, text) in enumerate(etext)]
        etext.insert(0, 'Warnings:')
        summary.add_extra_txt(etext)
    return summary
