
    M/Phw                     B   d Z ddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZmZmZ ddlmZ ddlmZ ddlmZmZ ddlmZ ddlmc mZ dd	lmZ dd
lm Z  ddl!m"Z" ddl#m$Z$m%Z%m&Z&  G d de$          Z' G d de%          Z( G d de&          Z) ej*        e)e(           dS )zI
Linear exponential smoothing models

Author: Chad Fulton
License: BSD-3
    N)
PandasData)GLM)
array_like	bool_like
float_likestring_likeint_like)initialization)MEMORY_CONSERVEMEMORY_NO_FORECAST)Appenderforg)SimpleTable)
fmt_params   )MLEModel
MLEResultsMLEResultsWrapperc                       e Zd ZdZ	 	 	 	 d fd	Z fdZed             Zdd	Zed
             Z	ed             Z
ed             Zed             Zd Zd Z	 	 ddZd Z	 	 ddZ fdZ eej        j                   fd            Z eej        j                  	 	 	 d fd	            Z eej        j                  	 	 	 d fd	            Z xZS )ExponentialSmoothinga-  
    Linear exponential smoothing models

    Parameters
    ----------
    endog : array_like
        The observed time-series process :math:`y`
    trend : bool, optional
        Whether or not to include a trend component. Default is False.
    damped_trend : bool, optional
        Whether or not an included trend component is damped. Default is False.
    seasonal : int, optional
        The number of periods in a complete seasonal cycle for seasonal
        (Holt-Winters) models. For example, 4 for quarterly data with an
        annual cycle or 7 for daily data with a weekly cycle. Default is
        no seasonal effects.
    initialization_method : str, optional
        Method for initialize the recursions. One of:

        * 'estimated'
        * 'concentrated'
        * 'heuristic'
        * 'known'

        If 'known' initialization is used, then `initial_level` must be
        passed, as well as `initial_slope` and `initial_seasonal` if
        applicable. Default is 'estimated'.
    initial_level : float, optional
        The initial level component. Only used if initialization is 'known'.
    initial_trend : float, optional
        The initial trend component. Only used if initialization is 'known'.
    initial_seasonal : array_like, optional
        The initial seasonal component. An array of length `seasonal`
        or length `seasonal - 1` (in which case the last initial value
        is computed to make the average effect zero). Only used if
        initialization is 'known'.
    bounds : iterable[tuple], optional
        An iterable containing bounds for the parameters. Must contain four
        elements, where each element is a tuple of the form (lower, upper).
        Default is (0.0001, 0.9999) for the level, trend, and seasonal
        smoothing parameters and (0.8, 0.98) for the trend damping parameter.
    concentrate_scale : bool, optional
        Whether or not to concentrate the scale (variance of the error term)
        out of the likelihood.

    Notes
    -----

    **Overview**

    The parameters and states of this model are estimated by setting up the
    exponential smoothing equations as a special case of a linear Gaussian
    state space model and applying the Kalman filter. As such, it has slightly
    worse performance than the dedicated exponential smoothing model,
    :class:`statsmodels.tsa.holtwinters.ExponentialSmoothing`, and it does not
    support multiplicative (nonlinear) exponential smoothing models.

    However, as a subclass of the state space models, this model class shares
    a consistent set of functionality with those models, which can make it
    easier to work with. In addition, it supports computing confidence
    intervals for forecasts and it supports concentrating the initial
    state out of the likelihood function.

    **Model timing**

    Typical exponential smoothing results correspond to the "filtered" output
    from state space models, because they incorporate both the transition to
    the new time point (adding the trend to the level and advancing the season)
    and updating to incorporate information from the observed datapoint. By
    contrast, the "predicted" output from state space models only incorporates
    the transition.

    One consequence is that the "initial state" corresponds to the "filtered"
    state at time t=0, but this is different from the usual state space
    initialization used in Statsmodels, which initializes the model with the
    "predicted" state at time t=1. This is important to keep in mind if
    setting the initial state directly (via `initialization_method='known'`).

    **Seasonality**

    In seasonal models, it is important to note that seasonals are included in
    the state vector of this model in the order:
    `[seasonal, seasonal.L1, seasonal.L2, seasonal.L3, ...]`. At time t, the
    `'seasonal'` state holds the seasonal factor operative at time t, while
    the `'seasonal.L'` state holds the seasonal factor that would have been
    operative at time t-1.

    Suppose that the seasonal order is `n_seasons = 4`. Then, because the
    initial state corresponds to time t=0 and the time t=1 is in the same
    season as time t=-3, the initial seasonal factor for time t=1 comes from
    the lag "L3" initial seasonal factor (i.e. at time t=1 this will be both
    the "L4" seasonal factor as well as the "L0", or current, seasonal factor).

    When the initial state is estimated (`initialization_method='estimated'`),
    there are only `n_seasons - 1` parameters, because the seasonal factors are
    normalized to sum to one. The three parameters that are estimated
    correspond to the lags "L0", "L1", and "L2" seasonal factors as of time
    t=0 (alternatively, the lags "L1", "L2", and "L3" as of time t=1).

    When the initial state is given (`initialization_method='known'`), the
    initial seasonal factors for time t=0 must be given by the argument
    `initial_seasonal`. This can either be a length `n_seasons - 1` array --
    in which case it should contain the lags "L0" - "L2" (in that order)
    seasonal factors as of time t=0 -- or a length `n_seasons` array, in which
    case it should contain the "L0" - "L3" (in that order) seasonal factors
    as of time t=0.

    Note that in the state vector and parameters, the "L0" seasonal is
    called "seasonal" or "initial_seasonal", while the i>0 lag is
    called "seasonal.L{i}".

    References
    ----------
    [1] Hyndman, Rob, Anne B. Koehler, J. Keith Ord, and Ralph D. Snyder.
        Forecasting with exponential smoothing: the state space approach.
        Springer Science & Business Media, 2008.
    FN	estimatedTc                 F	   t          |d          | _        t          |d          | _        t          |dd          | _        | j        d u| _        t          |d                                          | _        t          |
d          | _	        |	| _
        | j
        dgd	z  d
gz   | _
        | j        dk    rt          d          | j        r| j        t          d          | j        dvrt          d|z            | j        dk    rA|t          d          || j        rt          d          || j        rt          d          | j        r| j        d| _        n| j        | _        dt          | j                  z   | j        z   }d}t          j        |ddg|z            }t#                                          ||||||           | j	        rd| j        _        d| j        d<   d| j        d<   d| j        d<   d| j        d<   d| j        d<   | j        rd| j        ddd	df<   | j        rbdt          | j                  z   }d| j        dd|f<   d| j        d|d f<   t+          j        | j        dz
            | j        d|dz   |||dz
  f<   | j        dk    rAd!|z  }|t          |d"z            |t          |d#z            |t          |d$z            | j        d%k    rDt/          j        | j        d d df         | j        rd&nd | j        rd&nd | j        '          \  }}}n| j        d(k    rCt/          j        | j        d d df         | j        rd&nd | j        rd&nd | j        '          \  }}}n| j        dk    rt7          |d"          }| j        rt7          |d#          }| j        r{t9          |d$          }t;          |          | j        dz
  k    r)t*          j        |dt+          j        |          z
  f         }t;          |          | j        k    rt          d)          d%d(g}| j        |v r||d d d          }|| _         || _!        || _"        d | _#        g d*}| j        s | j        |v r| $                    |||           | xj%        g d+z  c_%        d S ),Ntrenddamped_trendseasonalT)optionalinitialization_methodconcentrate_scale)g-C6?gH.?   )g?\(\?r   z#Cannot have a seasonal period of 1.zIUnable to detect season automatically; please specify `seasonal_periods`.)concentratedr   simple	heuristicknownz#Invalid initialization method "%s".r%   zW`initial_level` argument must be provided when initialization method is set to "known".zy`initial_trend` argument must be provided for models with a trend component when initialization method is set to "known".z`initial_seasonal` argument must be provided for models with a seasonal component when initialization method is set to "known".r      )constant)k_statesk_posdefr
   datesfreq      ?)designr   r   	selectionr   r   	state_covr   r   )r-   r   r   )
transitionr   r   r2   r-   z6Cannot give `%%s` argument when initialization is "%s"initial_levelinitial_trendinitial_seasonalr#   addr   r   seasonal_periodsr$   znInvalid length of initial seasonal values. Must be one of s or s-1, where s is the number of seasonal periods.r#   r$   r%   )r   r   r   r   r4   r5   r6   boundsr   r*   r+   )&r   r   r   r	   r9   r   r   lowerr   r   r;   
ValueErrorNotImplementedError_seasonal_periodsintss_initInitializationsuper__init__ssmfilter_concentratednpeyees_init_initialization_simpleendog_initialization_heuristicr   r   lenr_sum_initial_level_initial_trend_initial_seasonal_initial_state_initialize_constant_statespace
_init_keys)selfrK   r   r   r   r   r4   r5   r6   r;   r   r*   r+   r(   r)   initkmsgmethods	__class__s                      p/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/exponential_smoothing.pyrD   zExponentialSmoothing.__init__   s   
 ug..
%lNCC (: M M M-T9%0!#:&< &<<AEGG 	"!*+<+>"@ "@ ;)*Q.+>DK  A%%BCCC= 	MT2:% 'L M M M % .N N NB45 6 6 6 %00$  "- . . . $$  "M N N N  'DM'  "M N N N
 } 	; 5 =%&D""%)%:D"s4:&)??%h01sX~? ? ?Hxu4 	 	9 	9 	9
 ! 	0+/DH( $& &("#&("# $& ')#$ : 	0-/DH\1Q3)* = 	3C
OO#A')DHXq!^$,.DH\1b()t,q011 H\1q5>1X\>AB %00K*+C( !6777( !6777+ '9!9:::%11.Jqqq!t$TZ,IEET&*m=UU%)%:< < < ;M=*:*:
 ';661Jqqq!t$TZ,IEET&*m=UU%)%:< < < ;M=*:*:
 '722&}oFFMz K *=/ J J} %#-.>.@$B $B  '((D,AA,EEE')u-=-.8H1I1I-I.J (K$ '((D,AAA$$% % % [)&'11$0/"5++!1"
 322  	CT%?7%J%J001AC C C 	 B B B 	B    c                 \    t                                                      }| j        |d<   |S )Nr   )rC   _get_init_kwdsr9   )rV   kwdsr[   s     r\   r_   z#ExponentialSmoothing._get_init_kwds7  s*    ww%%''0Zr]   c                 "    dt           t          fiS )Nfit)ExponentialSmoothingResults"ExponentialSmoothingResultsWrapper)rV   s    r\   _res_classesz!ExponentialSmoothing._res_classes<  s    3:< = 	=r]   c                 @    |t          d           | j        |fi |S )Nz-ExponentialSmoothing does not support `exog`.)r>   _clone_from_init_kwds)rV   rK   exogkwargss       r\   clonezExponentialSmoothing.cloneA  s;    %?A A A)t)%::6:::r]   c                     ddg}| j         r|dgz  }| j        r&|dgd t          d| j                  D             z   z  }|S )Nerrorlevelr   r   c                     g | ]}d |z  S )zseasonal.L%d .0is     r\   
<listcomp>z4ExponentialSmoothing.state_names.<locals>.<listcomp>N  s3      J  J  J$% !/ 2  J  J  Jr]   r   )r   r   ranger9   )rV   state_namess     r\   ru   z ExponentialSmoothing.state_namesG  sy    (: 	%G9$K= 	K  J  J).q$2G)H)H J  J  J JKK r]   c                    dg}| j         r|dgz  }| j        r|dgz  }| j        r|dgz  }| j        s|dgz  }| j        dk    rC|dgz  }| j         r|dgz  }| j        r)|d	gd
 t          d| j        dz
            D             z   z  }|S )Nsmoothing_levelsmoothing_trendsmoothing_seasonaldamping_trendsigma2r   r4   r5   r6   c                     g | ]}d |z  S )zinitial_seasonal.L%dro   rp   s     r\   rs   z4ExponentialSmoothing.param_names.<locals>.<listcomp>g  s3     E E E .1 E E Er]   r   )r   r   r   r   r   rt   r9   )rV   param_namess     r\   r}   z ExponentialSmoothing.param_namesS  s    (): 	/-..K= 	2011K 	-O,,K% 	&H:%K %44O,,Kz 100} F'(E E %a)>)B C CE E EEF
 r]   c                    d | j         D             }t          j        dg|d         R  g}| j        r|t          j        dg|d         R  gz  }| j        r|t          j        dg|d         R  gz  }| j        r|t          j        dg|d         R  gz  }| j        s|t          j        | j                  gz  }| j	        d	k    rt          j        | j        d d df         | j        rd
nd | j        rd
nd | j                  \  }}}||gz  }| j        r||gz  }| j        r(||                                d d d         d d         z  }t          j        |          S )Nc                 :    g | ]}|d          dz   |d         dz
  fS )r   gMbP?r   ro   )rq   xs     r\   rs   z5ExponentialSmoothing.start_params.<locals>.<listcomp>o  s-    BBB1Q4$;!t,BBBr]   g?r   g{Gz?r   r&   r!   r    r   r7   r8   r3   )r;   rG   clipr   r   r   r   varrK   r   rI   rJ   r9   tolistarray)rV   r;   start_paramsr4   r5   r6   s         r\   r   z!ExponentialSmoothing.start_paramsl  s    CBdkBBB 0fQi0001: 	8RWT6F1I66677L= 	8RWT6F1I66677L 	8RWT6F1I66677L% 	1RVDJ//00L %44.Jqqq!t$#':7%%4&*m=UU%)%:	< < < ;M=*: ]O+Lz 0/} E 0 7 7 9 9$$B$ ? DDx%%%r]   c                 >   dt          | j                  z   t          | j                  z   t          | j                   z   t          | j                  z   }| j        dk    r:|dt          | j                  z   t          | j                  | j        dz
  z  z   z  }|S )Nr   r   )r@   r   r   r   r   r   r?   )rV   k_paramss     r\   r   zExponentialSmoothing.k_params  s     DJ#dm"4"44D**++,.1$2C.D.DE 	 %44C
OO#DM""d&<q&@ABCH r]   c                 T   t          j        |d          }t          j        |          }| j        d         \  }}ddt          j        |d                    z   z  ||z
  z  |z   |d<   d}| j        rX| j        d         \  }}t          ||d                   }ddt          j        ||                    z   z  ||z
  z  |z   ||<   |dz  }| j        r[| j        d         \  }}t          |d|d         z
            }ddt          j        ||                    z   z  ||z
  z  |z   ||<   |dz  }| j        rB| j        d         \  }}ddt          j        ||                    z   z  ||z
  z  |z   ||<   |dz  }| j	        s||         dz  ||<   |dz  }| j
        dk    r||d          ||d <   |S )Nr   ndminr   r&   r    r   )rG   r   
zeros_liker;   expr   minr   r   r   r   )rV   unconstrainedconstrainedlowhighrr   s         r\   transform_paramsz%ExponentialSmoothing.transform_params  s    a888mM22 KN	TRV]1--.../4#:>D 	A : 	AICt[^,,DQq!1 12223tczBSH NFA = 	AICtQQ/00DQq!1 12223tczBSH NFA  	AICQq!1 12223tczBSH NFA % 	*1-q0KNFA %44+ABB/KOr]   c                 \   t          j        |d          }t          j        |          }| j        d         \  }}|d         |z
  ||z
  z  }t          j        |d|z
  z            |d<   d}| j        rY| j        d         \  }}t          ||d                   }||         |z
  ||z
  z  }t          j        |d|z
  z            ||<   |dz  }| j        r\| j        d         \  }}t          |d|d         z
            }||         |z
  ||z
  z  }t          j        |d|z
  z            ||<   |dz  }| j        rC| j        d         \  }}||         |z
  ||z
  z  }t          j        |d|z
  z            ||<   |dz  }| j	        s||         dz  ||<   |dz  }| j
        dk    r||d          ||d <   |S )Nr   r   r   r&   r    g      ?r   )rG   r   r   r;   logr   r   r   r   r   r   )rV   r   r   r   r   tmprr   s          r\   untransform_paramsz'ExponentialSmoothing.untransform_params  s   h{!444k22 KN	T1~#s
36#S/22a : 	AICt[^,,Dq>C'D3J7C!vcQWo66M!FA = 	AICtQQ/00Dq>C'D3J7C!vcQWo66M!FA  	AICq>C'D3J7C!vcQWo66M!FA % 	*1~s2M!FA %44 +ABBM!""r]   c                    t          j        d|g          }| j        r|t           j        ||f         }| j        r|t           j        ||f         }|dd          | _        t          j        | j        d         |          }|| j        _	        d S )N        r   r2   )
rG   r   r   rN   r   rS   dotrE   r
   r'   )rV   r4   r5   r6   r'   s        r\   rT   z4ExponentialSmoothing._initialize_constant_statespace  s     8R/00: 	6-3uX}45H= 	9-9uX'778H&qrrl 6$(<0(;;'/$$$r]   c                     | j         d         }| j         d         }|                    |                              |j                  | j        _        d S )Nr/   r1   )rE   r   Tr
   stationary_cov)rV   RQs      r\   %_initialize_stationary_cov_statespacez:ExponentialSmoothing._initialize_stationary_cov_statespace	  sC    H[!H[!-.UU1XX\\!#->->***r]   c                 `   |                      |||          }d|d         z
  | j        d<   |d         | j        d<   d}| j        r||         | j        d<   |dz  }| j        r6| j        dxx         ||         z  cc<   ||         | j        d|dz   df<   |dz  }| j        r||         | j        ddd	d
f<   |dz  }| j        s||         | j        d<   |dz  }| j        dk    r||         }|dz  }d }d }| j        r||         }|dz  }| j        r>|||| j        z   dz
           }t          j	        |dt          j
        |          z
  f         }|                     |||           g d}	| j        r/| j        |	v r&|                     | j        | j        | j                   |                                  d S )N)transformedincludes_fixedr   r   r.   )r/   r   r   )r/   r&   r   r/   r2   r    r&   r0   r   r:   )handle_paramsrE   r   r   r   r   r   r9   rG   rN   rO   rT   rP   rQ   rR   r   )
rV   paramsr   r   complex_steprr   r4   r5   r6   rZ   s
             r\   updatezExponentialSmoothing.update  s@   ##F3A $ C C '(&)m"#&,Qi"#: 	*0)DH&'FA= 	H&'''6!94'''.4QiDH[!a%*+FA 	-3AYDH\1Q3)*FA% 	*0)DH&'FA %44"1IMFA M#z  &q	Q} G#)!Q1F-F-J*J#K #%5)9)*RV4D-E-E)E*F $G 001AC C C 322 	(!;w!F!F00#T%8&( ( ( 	2244444r]   c                    t           t           z  |d<    t                      j        |g|R i | t	          j        | j        j        j        d         d          }| ddd dd f         }| ddd f         }| dd d dd f         	                                }d}| j
        rd	|d|f<   |dz  }| j        rd
|d|f<   d	|d<   ||                    |          z
  }	t	          j        | j        | j        dz
  f|	j                  }
||
d<   t#          | j        dz
            D ]#}|
|                             |	          |
|dz   <   $t%          ||
          }| j        rOt	          j        |          }d	|d| j         d f<   t	          j        d          }|                    ||f          }n|                                }|j        d         }| j
        r|j        d         nd }| j        r|j        | j         d          nd }|||fS )Nconserve_memoryr   T)copyr2   r   r/   r-   r,   r   )r   r3   )dtype)r   r   )r   r   rC   loglikerG   r   rE   _kalman_filterforecast_errorr   r   r   r   zerosnobsr(   r   rt   r   r   r9   fit_constrainedrb   r   )rV   r   argsri   y_tilder   r   Zrr   Dwmod_olsqres_olsr4   r5   r6   r[   s                    r\   _compute_concentrated_statesz1ExponentialSmoothing._compute_concentrated_states>  sN   $37I6I$I !0000000 (482A!D $& & & qrr122%&abb!111abb!&&((: 	AadGFA= 	AadGAeH aLHdi!2317CCC!ty1}%% 	# 	#Atxx{{Aa!eHHgq//
 = 	$a  A,.Aa$''((()  A--q!f55GGkkmmG  q)-1ZAq))T7;}NGND112233$ 	 m-===r]   c                    | j         dk    r[ | j         | j        |g|R i |  | j                                        }t          j        | j                  | j        j        _	        n t                      j        |g|R i |}|S )Nr"   )r   rT   r   rE   r   rG   r   r(   r
   r'   rC   )rV   r   r   ri   llfr[   s        r\   r   zExponentialSmoothing.loglikeq  s    %770D0226KDKKKFKKM M(""$$C/1x/F/FDH#,,!%''/&:4:::6::C
r]   c           	          | j         dk    r | j         | j        |g|R i |   t                      j        |g|R |||||d|}	| j         dk    r(t          j        | j                  | j        j	        _
        |	S Nr"   )cov_typecov_kwds
return_ssmresults_classresults_wrapper_class)r   rT   r   rC   filterrG   r   r(   rE   r
   r'   rV   r   r   r   r   r   r   r   ri   resultsr[   s             r\   r   zExponentialSmoothing.filter|       %770D0226KDKKKFKKM M !%''.J ;?J J%!"7J J CIJ J
 %77/1x/F/FDH#,r]   c           	          | j         dk    r | j         | j        |g|R i |   t                      j        |g|R |||||d|}	| j         dk    r(t          j        | j                  | j        j	        _
        |	S r   )r   rT   r   rC   smoothrG   r   r(   rE   r
   r'   r   s             r\   r   zExponentialSmoothing.smooth  r   r]   )FFNr   NNNNTNNN)NN)TFF)NNFNN)__name__
__module____qualname____doc__rD   r_   propertyre   rj   ru   r}   r   r   r   r   rT   r   r   r   r   r   r   r   r   __classcell__r[   s   @r\   r   r      sZ       t tj IMBFCG:>aB aB aB aB aB aBF    
 = = X=; ; ; ; 	 	 X	   X0 & & X&>   X* * *X* * *Z 7;9=0 0 0 04? ? ?
 ?D!.5 .5 .5 .5`1> 1> 1> 1> 1>f Xh&''    (' Xho%&&59/3%)     '&  Xho%&&59/3%)     '&    r]   r   c                   f     e Zd ZdZd fd	Z eej        j                  d fd	            Z xZS )rc   zC
    Results from fitting a linear exponential smoothing model
    Nc                 x    t                      j        ||||fi | |j        | _        t	          | j        t                    rq| j        j        }t          j	        |j        g|j
        dd                    | _        |j        r2|j        -|                    d          d d         | j        _        d S d S d S d S )Nr   )columnsr3   )rC   rD   rS   initial_state
isinstancedatar   
row_labelspd	DataFrameru   _index_dates_index_freqshiftindex)rV   modelr   filter_resultsr   ri   r   r[   s          r\   rD   z$ExponentialSmoothingResults.__init__  s    KKFKKK #1di,, 	?I(E!#%&0A!""0E"G "G "GD! ?e&7&C+0;;r??2A2+>"(((	? 	?? ?&C&Cr]   皙?c                 B   dg}| j         j        r"| j         j        r|                    d           n7| j         j        r|                    d           n|                    d           | j         j        r|                    d           n|                    d           dd                    |          z   dz   }t                                          ||d|          }| j         j        d	k    rt          j
        | j                  j        d
k    rd         | j         j        d
d          }d| j         j        z  g}|}fdt          t                              D             }	t!          |	||t"                    }
|j                            d|
           |S )NAAdNzETS(z, )zExponential Smoothing Results)alphastarttitle
model_namer   r   r   zinitialization method: %sc                 @    g | ]}t          |         d           gS )   )precr   )rq   rr   r   s     r\   rs   z7ExponentialSmoothingResults.summary.<locals>.<listcomp>  s=     8 8 8  !3334 8 8 8r]   )txt_fmtr3   )r   r   r   appendr   joinrC   summaryr   rG   r   r   ndimru   rt   rM   r   r   tablesinsert)rV   r   r   specificationr   r   namesparam_headerparams_stubsparams_datainitial_state_tabler   r[   s              @r\   r   z#ExponentialSmoothingResults.summary  s   : 	&
 7 	&  &&&&Z 	&  %%%%  %%%: 	&  %%%%  %%%dii666<
''//u,K! " # # :+{::Xd011F{QJ*122.E7"j>? @L L8 8 8 8$)#f++$6$68 8 8K #.k.:.:6@#B #B #B N!!"&9:::r]   r   )r   N)	r   r   r   r   rD   r   r   r   r   r   s   @r\   rc   rc     s         ? ? ? ? ? ? Xj ())$ $ $ $ $ *)$ $ $ $ $r]   rc   c                   n    e Zd Zi Z ej        ej        e          Zi Z ej        ej	        e          Z	dS )rd   N)
r   r   r   _attrswrapunion_dictsr   _wrap_attrs_methods_wrap_methodsro   r]   r\   rd   rd     sR        F"$"#4#@#)+ +KH$D$%6%D%-/ /MMMr]   rd   )+r   numpyrG   pandasr   statsmodels.base.datar   +statsmodels.genmod.generalized_linear_modelr   statsmodels.tools.validationr   r   r   r   r	   %statsmodels.tsa.exponential_smoothingr
   rI   statsmodels.tsa.statespacerA   (statsmodels.tsa.statespace.kalman_filterr   r   statsmodels.compat.pandasr   statsmodels.base.wrapperbasewrapperr   statsmodels.iolib.summaryr   statsmodels.iolib.tabler   !statsmodels.iolib.tableformattingr   mlemodelr   r   r   r   rc   rd   populate_wrapperro   r]   r\   <module>r     s%            , , , , , , ; ; ; ; ; ;A A A A A A A A A A A A A A L K K K K K @ @ @ @ @ @) ) ) ) ) ) ) ) / . . . . . ' ' ' ' ' ' ' ' ' * * * * * * / / / / / / 8 8 8 8 8 8 = = = = = = = = = =~	 ~	 ~	 ~	 ~	8 ~	 ~	 ~	B6 6 6 6 6* 6 6 6r/ / / / /): / / /  813 3 3 3 3r]   