'Plot the recursively estimated coefficients on a given variable
Parameters
variables : int or str or iterable of int or string, optional
Integer index or string name of the variable whose coefficient will
be plotted. Can also be an iterable of integers or strings. Default
is the first variable.
alpha : float, optional
The confidence intervals for the coefficient are (1 - alpha) %
legend_loc : string, optional
The location of the legend in the plot. Default is upper left.
fig : Matplotlib Figure instance, optional
If given, subplots are created in this figure instead of in a new
figure. Note that the grid will be created in the provided
figure using `fig.add_subplot()`.
figsize : tuple, optional
If a figure is created, this argument allows specifying a size.
The tuple is (width, height).
Notes
All plots contain (1 - `alpha`) %  confidence intervals.'

def plot_recursive_coefficient(self, variables=0, alpha=0.05, legend_loc='upper    left', fig=None, figsize=None):

    if isinstance(variables, (int, str)):
        variables = [variables]
    k_variables = len(variables)
    exog_names = self.model.exog_names
    for i in range(k_variables):
        variable = variables[i]
        if isinstance(variable, str):
            variables[i] = exog_names.index(variable)
    from scipy.stats import norm
    from statsmodels.graphics.utils import _import_mpl, create_mpl_fig
    plt = _import_mpl()
    fig = create_mpl_fig(fig, figsize)
    for i in range(k_variables):
        variable = variables[i]
        ax = fig.add_subplot(k_variables, 1, (i + 1))
        if (hasattr(self.data, 'dates') and (self.data.dates is not None)):
            dates = self.data.dates._mpl_repr()
        else:
            dates = np.arange(self.nobs)
        llb = self.loglikelihood_burn
        coef = self.recursive_coefficients
        ax.plot(dates[llb:], coef.filtered[variable, llb:], label=('Recursive    estimates:    %s' % exog_names[variable]))
        (handles, labels) = ax.get_legend_handles_labels()
        if (alpha is not None):
            critical_value = norm.ppf((1 - (alpha / 2.0)))
            std_errors = np.sqrt(coef.filtered_cov[variable, variable, :])
            ci_lower = (coef.filtered[variable] - (critical_value * std_errors))
            ci_upper = (coef.filtered[variable] + (critical_value * std_errors))
            ci_poly = ax.fill_between(dates[llb:], ci_lower[llb:], ci_upper[llb:], alpha=0.2)
            ci_label = ('$%.3g    \\%%$    confidence    interval' % ((1 - alpha) * 100))
            if (i == 0):
                p = plt.Rectangle((0, 0), 1, 1, fc=ci_poly.get_facecolor()[0])
                handles.append(p)
                labels.append(ci_label)
        ax.legend(handles, labels, loc=legend_loc)
        if (i < (k_variables - 1)):
            ax.xaxis.set_ticklabels([])
    fig.tight_layout()
    return fig
