
    >hr                        S r SSKJr  SSKJrJrJrJrJr  SSK	J
r
  SSKrSSKJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJr  SSKJrJrJr  S r\
" S/ SQ5      r SRC                  \"" \\RF                  RI                  S5      5      5      r%Sr&Sr'Sr(\(r)\&\'-   \)-   r*Sr+\" SS\%\*S9\" \+5       " S S5      5       5       r,\&\)-   r*\" SS\%\*S9\" \+5       " S S\,5      5       5       r- " S S5      r.g)z
Rolling OLS and WLS

Implements an efficient rolling estimator that avoids repeated matrix
multiplication.

Copyright (c) 2019 Kevin Sheppard
License: 3-clause BSD
    )lstsq)AppenderSubstitutioncache_readonlycall_cached_funcget_cached_doc)
namedtupleN)	DataFrame
MultiIndexSeries)stats)model)LikelihoodModelResultsModel)RegressionModelRegressionResults)
array_likeint_likestring_likec                 <    U R                  S5      (       a  U SS  $ U $ )N    )
startswith)lines    qC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\statsmodels/regression/rolling.pystrip4r   "   s!    sABxK    RollingStore	paramsssrllfnobss2xpxixeexcentered_tssuncentered_tss
zvwindow : int
    Length of the rolling window. Must be strictly larger than the number
    of variables in the model.
z
weights : array_like, optional
    A 1d array of weights.  If you supply 1/W then the variables are
    pre- multiplied by 1/sqrt(W).  If no weights are supplied the
    default value is 1 and WLS results are the same as OLS.
a)  min_nobs : {int, None}
    Minimum number of observations required to estimate a model when
    data are missing.  If None, the minimum depends on the number of
    regressors in the model. Must be smaller than window.
missing : str, default "drop"
    Available options are "drop", "skip" and "raise". If "drop", any
    observations with nans are dropped and the estimates are computed using
    only the non-missing values in each window. If 'skip' blocks containing
    missing values are skipped and the corresponding results contains NaN.
    If 'raise', an error is raised. Default is 'drop'.
expanding : bool, default False
    If True, then the initial observations after min_nobs are filled using
    an expanding scheme until ``window`` observations are available, after
    which rolling is used.
aB  
Rolling %(model_type)s Least Squares

%(parameters)s
%(extra_parameters)s

See Also
--------
statsmodels.regression.linear_model.%(model)s
    %(model)s estimation and parameter testing.

Notes
-----
Tested against %(model)s for accuracy.

Results may differ from %(model)s applied to windows of data if this
model contains an implicit constant (i.e., includes dummies for all
categories) rather than an explicit constant (e.g., a column of 1s).

Examples
--------
>>> from statsmodels.regression.rolling import Rolling%(model)s
>>> from statsmodels.datasets import longley
>>> data = longley.load()
>>> exog = add_constant(data.exog, prepend=False)
>>> mod = Rolling%(model)s(data.endog, exog)
>>> rolling_res = mod.fit(reset=50)

Use params_only to skip all calculations except parameter estimation

>>> rolling_params = mod.fit(params_only=True)

Use expanding and min_nobs to fill the initial results using an
expanding scheme until window observation, and the roll.

>>> mod = Rolling%(model)s(data.endog, exog, window=60, min_nobs=12,
... expanding=True)
>>> rolling_res = mod.fit()
WeightedWLS)
model_typer   
parametersextra_parametersc                       \ rS rSr SSSSSS.S jjrS rS rS	 rS
 rS r	S r
S r      SS jr\\" \R                   R"                  5       SS j5       5       rSrg)
RollingWLS   NdropFweightsmin_nobsmissing	expandingc                   [        USSS9nUS:w  a  SOSn[        R                  " XX(S S9  U R                  n	U R                  R
                  n
[        R                  " XUSSS9  Xl        XR                  l        [        US	5      U l        U R                  R                  S
   n[        US	SUS 4S9U l	        [        USSS9n[        USSU4S9nUb  UOU R                  R                  S
   U l        US LU l        Uc  [        R                  " U5      OUU l        [        R                   " U R                  5      nXR                  -  U l        US S 2S 4   U R                  -  U l        [        USSS9nUb  UOU R                  R                  S   U l        U R&                  U R                  R                  S   :  d  U R&                  U R                  :  a  [)        S5      eXpl        [        R,                  " U R                  [.        S9U l        U R3                  5       U l        U R                  R
                  U l        US:H  U l        g )Nr6   )r2   raiseskipoptionsr9   r2   )r6   hasconstnoneFendogr      )ndimshapewindowToptionalr4   )rE   rB   r5      zWmin_nobs must be larger than the number of regressors in the model and less than windowdtyper:   )r   r   __init__
k_constantdata	const_idxr   _yrB   _xr   _window	_weightednpones_weightssqrt_wy_wx	_min_nobs
ValueError
_expanding
zeros_likebool_is_nan
_find_nans_has_nan_skip_missing)selfr?   exogrC   r4   r5   r6   r7   	temp_msngk_constrL   r#   w12s                r   rI   RollingWLS.__init__   s    Y(A
 &0Fg	tDdK//II''	tD&5I!'		UG,ww}}QT74,G&(T:Wi$tgN!'!3vq9I ,)0gggdmm$=q$w<$'')Hj4@%-%9tww}}Q?O>>DGGMM!,,0M? 
 $}}TWWD9),,$.r   c                 4    [         R                  " XX#U40 UD6$ N)r   _handle_data)r`   r?   ra   r6   r=   kwargss         r   rh   RollingWLS._handle_data   s$    !!
4:
 	
r   c                    [         R                  " U R                  5      nU[         R                  " [         R                  " U R                  5      SS9-  nU[         R                  " U R
                  5      -  nXR                  S S & [         R                  " U5      nU R                  nX#S-
  S  US US-
  *  -
  X#S-
  S & U R                  (       a  SUS U R                  & OSUS US-
  & UR                  [        5      $ )NrF   axisF)rQ   isnanrM   anyrN   rS   r\   cumsumrO   rY   rW   astyper[   )r`   nanshas_nanws       r   r]   RollingWLS._find_nans   s    xx rxx(q11''Q))D/LL"q57+gj!a%.AAA??(-G$dnn%$GGa!e~~d##r   c                 T   U R                   nX:  a  [        X-
  U5      nO[        U5      nU R                  U   nU R                  U   nU R                  U   nU R
                  U   nU R                  U   nU) n	[        R                  " U5      (       a  XI   nXY   nXi   nXy   nXEXgU	4$ rg   )	rO   slicerM   rU   rV   rS   r\   rQ   ro   )
r`   idxrC   locywywxr4   r6   not_missings
             r   	_get_dataRollingWLS._get_data   s    =c*C*CGGCLXXc]XXc]--$,,s#h66'??ABB*Gb;..r   c                    X@R                   :  a  g  US:X  d  U(       d  [        R                  R                  U5      nUS:X  a  WU-  n	OOU R	                  U5      u  pn  n
US:X  a  [        X5      S   n	O$[        R                  R                  U5      nX-  n	 XR                  US-
  '   U(       a  g U R	                  U5      u  ppn
U R                  XXU5      u  nnnUUS S 2S 4   -  nUR                  U-  nUR                  S   nUUU-
  -  nU R                  XU5      u  nnUUR                  US-
  '   UUR                  US-
  '   XER                  US-
  '   UUR                   US-
  '   WUR"                  US-
  '   UUR$                  US-
  '   UUR&                  US-
  '   UUR(                  US-
  '   g ! [        R                  R                   a     g f = f)Ninvr   r   rF   )rW   rQ   linalgr   r~   r   pinvLinAlgErrorr    _loglikeTrB   _sum_of_squaresr!   r"   r#   r$   r%   r&   r'   r(   )r`   rx   wxpwxwxpwyr#   storeparams_onlymethodwxpwxir    _r{   r|   	wxpwxiwxprz   r4   wresidr!   r"   wxwresidwxepwxe
tot_paramsr$   r'   r(   s                            r   _fit_singleRollingWLS._fit_single   s   .. 	%u-%"&.."5r1aW$"2]1-F "		r 2I&^F !'S1W $s 3rA==R$GSq$w'**x'XXa[
D:%&'+';';A7'K$n 		#' 		#'"

37q$

37%

37&237#(6S1W%- yy$$ 		s   7F5 
*F5 5#F5 5GGc                 F   US-  nX#U-  -
  n[         R                  " US-  SS9n[         R                  " U5      * U-  n	U	S[         R                  " [         R                  U-  5      -   U-  -  n	U	S[         R                  " [         R                  " U5      5      -  -  n	XxU	4$ )Ng       @r@   r   rl   rF   g      ?)rQ   sumlogpi)
r`   r    r{   r|   r4   r#   nobs2r   r!   r"   s
             r   r   RollingWLS._loglike  s    s
6k!ffVq[q)vvc{lU"BFF2555=))U22sRVVBFF7O,,,Cr   c                     [         R                  " XS9n[         R                  " X1U-
  S-  -  5      n[         R                  " X"5      nXV4$ )N)r4   r@   )rQ   averager   dot)r`   rz   r{   r4   meanr'   r(   s          r   r   RollingWLS._sum_of_squares  s?    zz!-vvgTa78++r   c                     U R                  U5      u  p#pBnUR                  5       nUR                  U-  nUR                  U-  nXxU4$ )z.Compute xpx and xpy using a single dot product)r~   r   r   )	r`   rx   r   r{   r|   r}   r#   xpxxpys	            r   _resetRollingWLS._reset  sG    $(NN3$7!rk ddRiddRi~r   c                    [        USSS9n[        USSS9nUc  U R                  R                  S   OUnUS:  a  [	        S	5      eU R
                  R                  u  px[        [        R                  " Xx4[        R                  5      [        R                  " U[        R                  5      [        R                  " U[        R                  5      [        R                  " U[        S
9[        R                  " U[        R                  5      [        R                  " XxU4[        R                  5      [        R                  " XxU4[        R                  5      [        R                  " U[        R                  5      [        R                  " U[        R                  5      S9	n	U R                  n
U R                  (       a  U R                  OU
nU R                  U5      u  pnU R                   US-
     (       a  U R"                  (       d  U R%                  XXXU5        U R&                  U R(                  p[+        US-   U R
                  R                  S   S-   5       GH  nU R                   US-
     (       a  U R"                  (       a  M.  UU-  S:X  a  U R                  U5      u  pnOU R,                  UU
-
  S-
     (       dI  UU
:  aC  UUU
-
  S-
  UU
-
   nUUR.                  U-  -  nUUR.                  UUU
-
  S-
  UU
-
   -  -  nUS-  nU R,                  US-
     (       d7  UUS-
  U nUUR.                  U-  -  nUUR.                  UUS-
  U -  -  nUS-  nU R%                  UXXyXa5        GM     [1        X	U R2                  XR5      $ )a  
Estimate model parameters.

Parameters
----------
method : {'inv', 'lstsq', 'pinv'}
    Method to use when computing the the model parameters.

    * 'inv' - use moving windows inner-products and matrix inversion.
      This method is the fastest, but may be less accurate than the
      other methods.
    * 'lstsq' - Use numpy.linalg.lstsq
    * 'pinv' - Use numpy.linalg.pinv. This method matches the default
      estimator in non-moving regression estimators.
cov_type : {'nonrobust', 'HCCM', 'HC0'}
    Covariance estimator:

    * nonrobust - The classic OLS covariance estimator
    * HCCM, HC0 - White heteroskedasticity robust covariance
cov_kwds : dict
    Unused
reset : int, optional
    Interval to recompute the moving window inner products used to
    estimate the model parameters. Smaller values improve accuracy,
    although in practice this setting is not required to be set.
use_t : bool, optional
    Flag indicating to use the Student's t distribution when computing
    p-values.
params_only : bool, optional
    Flag indicating that only parameters should be computed. Avoids
    calculating all other statistics or performing inference.

Returns
-------
RollingRegressionResults
    Estimation results where all pre-sample values are nan-filled.
r   )r   r   r   r;   resetTrD   r   rF   z reset must be a positive integerrG   r   )r   r   rM   rB   rX   rN   r   rQ   fullnanzerosintrO   rY   rW   r   r^   r_   r   rV   rU   ranger\   r   RollingRegressionResultsrJ   )r`   r   cov_typecov_kwdsr   use_tr   r#   kr   rt   firstr   r   r|   r{   iremove_xadd_xs                      r   fitRollingWLS.fit#  s   \ H&>
 $7$)Ma u19?@@''--77D9bff-bff%bff%$c*wwtRVV$$1rvv.$1rvv.rvv.7740

 LL"&//qU+$eai(T-?-?UEO488Buqy$''--"2Q"67A}}QU#(:(:5yA~!%Q$||AEAI.1q5!!a%!)a!e4H8::00C8::1q519q1u(===CAID||AE*q1uqME577U?*C577RA]22CAIDQ${K# 8& (%
 	
r   c                    Ub  UR                   U   nUR                  SS 5      nUc  SnOUS:X  a  SSKJn	  U	" 0 5      nOUS-  nUR	                  SS5      n
SS	KJnJn  U" S
/ S9nU" UUUSUS9nUu  nnUR                  S:  a  UR                  S   S:  d  UR                  S:  a$  [        SR                  UR                  5      5      eUR                  XS.5        Ub  XGS'   U " UU/UQ70 UD6nUUl        UUR                  l        U$ )Neval_envr@   r   )EvalEnvironmentrF   r6   r:   )NAAction	dmatricesr9   )on_NANA_types	dataframe)return_type	NA_actionzendog has evaluated to an array with multiple columns that has shape {}. This occurs when the variable converted to endog is non-numeric (e.g., bool or str).)r6   rC   r4   )ry   poppatsyr   getr   r   rA   rB   rX   formatupdateformularK   frame)clsr   rK   rC   r4   subsetargsri   r   r   r6   r   r   	na_actionresultr?   ra   mods                     r   from_formulaRollingWLS.from_formula  s%   
 88F#D::j$/H^-&r*HMH**Y/-7R8	#
 tJJNu{{1~1ejj1n( )/u{{(;	  	'<= '9%///
r   )rY   r^   r\   rW   r_   rP   rS   rO   rV   rU   rN   rM   rL   rJ   rg   )r   	nonrobustNNFF)NN)__name__
__module____qualname____firstlineno__rI   rh   r]   r~   r   r   r   r   r   classmethodr   r   r   __doc____static_attributes__ r   r   r0   r0      s     	0/ 0/d

$/&&7P , ]
~ e  (()9=* * *r   r0   OrdinaryOLSc                   :   ^  \ rS rSr SSSSS.U 4S jjjrSrU =r$ )	
RollingOLSi  Nr2   F)r5   r6   r7   c          
      ,   > [         TU ]  UUUS UUUS9  g )Nr3   )superrI   )r`   r?   ra   rC   r5   r6   r7   	__class__s          r   rI   RollingOLS.__init__  s,     	 	 	
r   r   rg   )r   r   r   r   rI   r   __classcell__)r   s   @r   r   r     s"     	
 
 
r   r   c                   p   \ rS rSrSr\" 5       rS\4S jrS r	\
\" \" \R                  5      5      S 5       5       r\
\" \" \R                  5      5      S 5       5       rS(S jr\
S	 5       r\
\" \" \R$                  5      5      S
 5       5       r\
\" \" \R&                  5      5      S 5       5       r\
\" \R*                  R                  5      S 5       5       r\
S 5       r\
\" \" \R.                  5      5      S 5       5       r\
\" \" \R0                  5      5      S 5       5       r\
\" \" \R2                  5      5      S 5       5       r\
\" \" \R4                  5      5      S 5       5       r\
\" \" \R6                  5      5      S 5       5       r\
\" \R8                  R                  5      S 5       5       r\
\" \R:                  R                  5      S 5       5       r\
\" \" \R<                  5      5      S 5       5       r\
\" \" \R>                  5      5      S 5       5       r\
\" \" \R@                  5      5      S 5       5       r \
\" \" \RB                  5      5      S 5       5       r!\
S 5       r"S r#\
\" \" \RH                  5      5      S 5       5       r$\
\" \" \RJ                  5      5      S 5       5       r%\
\" \" \RL                  5      5      S 5       5       r&\
\" \" \'RP                  5      5      S 5       5       r(\
\" \" \'RR                  5      5      S 5       5       r)S  r*\" \'RV                  R                  5      S)S" j5       r+\,S# 5       r-\.\" \'R^                  R                  5      S$ 5       5       r/\'R`                  r0\" \'Rb                  R                  5      S*S% j5       r1     S+S& jr2S'r3g!),r   i  a{  
Results from rolling regressions

Parameters
----------
model : RollingWLS
    Model instance
store : RollingStore
    Container for raw moving window results
k_constant : bool
    Flag indicating that the model contains a constant
use_t : bool
    Flag indicating to use the Student's t distribution when computing
    p-values.
cov_type : str
    Name of covariance estimator
r   c                    Xl         UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l
        UR                  U l        UR                  U l        UR                  U l        UR"                  U l        X0l        U R                  R(                  S   U l        Uc  US:H  nX@l        XPl        U R                   R0                  R2                  S LU l        / U l        0 U l        g )Nr   r   )r   r    _paramsr!   _ssrr"   _llfr#   _nobsr$   _s2r%   _xpxir&   _xepxer'   _centered_tssr(   _uncentered_tss_k_constantrB   _nvar_use_t	_cov_typerK   
row_labels_use_pandas
_data_attr_cache)r`   r   r   rJ   r   r   s         r   rI   !RollingRegressionResults.__init__  s     
||II	II	ZZ
88ZZ
jj"//$33%ZZ%%b)
=+E!::??55TAr   c                    U R                   (       d  U$ U R                  R                  R                  nU R                  R                  R                  nUR
                  S:X  a	  [        XS9$ UR
                  S:X  a
  [        XUS9$ [        R                  " X245      n[        R                  " USUR                  S   45      n[        XUS9$ )z4Wrap output as pandas Series or DataFrames as neededrF   )indexr@   columnsr   r   )r   r   rK   param_namesr   rA   r   r
   r   from_productrQ   reshaperB   )r`   val	col_names	row_namesmis        r   _wrapRollingRegressionResults._wrap  s    JJJOO//	JJOO..	88q=#//88q=S9EE(())?@B**S2syy}"56CS2>>r   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   aicr`   s    r   r  RollingRegressionResults.aic  "     zz*+<+@+@$GHHr   c                     [         R                  " SS9   U R                  [        [        R
                  U 5      5      sS S S 5        $ ! , (       d  f       g = f)Nignore)divide)rQ   errstater  r   r   bicr  s    r   r  RollingRegressionResults.bic  s7     [[)::./@/D/DdKL *))   )A
Ac                 J    U R                  [        R                  " XUS95      $ )N)	dk_params)r  r   info_criteria)r`   critr  s      r   r  &RollingRegressionResults.info_criteria  s#    zz++D)L
 	
r   c                 8    U R                  U R                  5      $ )zEstimated model parameters)r  r   r  s    r   r    RollingRegressionResults.params  s     zz$,,''r   c                 8    U R                  U R                  5      $ rg   )r  r   r  s    r   r!   RollingRegressionResults.ssr!       zz$))$$r   c                 8    U R                  U R                  5      $ rg   )r  r   r  s    r   r"   RollingRegressionResults.llf&  r  r   c                 4    U R                   U R                  -
  $ rg   )r   r   r  s    r   df_model!RollingRegressionResults.df_model+  s     zzD,,,,r   c                     U R                   $ )z5Flag indicating whether the model contains a constant)r   r  s    r   rJ   #RollingRegressionResults.k_constant0  s     r   c                     U R                   $ rg   )r   r  s    r   r'   %RollingRegressionResults.centered_tss5  s     !!!r   c                     U R                   $ rg   )r   r  s    r   r(   'RollingRegressionResults.uncentered_tss:  s     ###r   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   rsquaredr  s    r   r'  !RollingRegressionResults.rsquared?  s"     zz*+<+E+EtLMMr   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   rsquared_adjr  s    r   r*  %RollingRegressionResults.rsquared_adjD  s&     zz.;;TB
 	
r   c                 8    U R                  U R                  5      $ rg   )r  r   r  s    r   r#   RollingRegressionResults.nobsK  s     zz$**%%r   c                 l    U R                  U R                  U R                  -
  U R                  -
  5      $ rg   )r  r   r  r   r  s    r   df_resid!RollingRegressionResults.df_residP  s+     zz$**t}}4t7G7GGHHr   c                     U R                   $ rg   )r   r  s    r   r   RollingRegressionResults.use_tU  s     {{r   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   essr  s    r   r4  RollingRegressionResults.essZ  r	  r   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   	mse_modelr  s    r   r7  "RollingRegressionResults.mse_model_  "     zz*+<+F+FMNNr   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   	mse_residr  s    r   r;  "RollingRegressionResults.mse_residd  r9  r   c                 T    U R                  [        [        R                  U 5      5      $ rg   )r  r   r   	mse_totalr  s    r   r>  "RollingRegressionResults.mse_totali  r9  r   c                     U R                   S:X  a!  U R                  S S 2S S 4   U R                  -  $ U R                  U R                  -  U R                  -  $ )Nr   )r   r   r   r   r  s    r   _cov_params$RollingRegressionResults._cov_paramsn  sH    >>[(88AtTM*TZZ77::+djj88r   c                 8    U R                  U R                  5      $ )a  
Estimated parameter covariance

Returns
-------
array_like
    The estimated model covariances. If the original input is a numpy
    array, the returned covariance is a 3-d array with shape
    (nobs, nvar, nvar). If the original inputs are pandas types, then
    the returned covariance is a DataFrame with a MultiIndex with
    key (observation, variable), so that the covariance for
    observation with index i is cov.loc[i].
)r  rA  r  s    r   
cov_params#RollingRegressionResults.cov_paramsu  s     zz$**++r   c                     [         R                  " SS9   U R                  [        [        R
                  U 5      5      sS S S 5        $ ! , (       d  f       g = fNr  invalid)rQ   r  r  r   r   f_pvaluer  s    r   rJ  !RollingRegressionResults.f_pvalue  s9     [[*:: !2!;!;TB +**r  c                 2   U R                   S:X  a  U R                  U R                  -  $ U R                  R                  S   n[
        R                  " U[
        R                  5      nU R                  R                  S   n[
        R                  " U5      n[        [        U5      5      nU R                  (       a%  UR                  U R                  R                  5        U(       d  U$ XE   nU R                  nXF-  UR                   -  nU R                  n[        U5       Hq  n	XU	S-    UR                   -  n
U
R                  S   n[
        R"                  R%                  Xy   5      n[
        R&                  " X-  U
R                   -  5      U-  X)'   Ms     U$ )Nr   r   rF   )r   r7  r;  r   rB   rQ   r   r   eyelistr   rJ   r   r   rL   rA  r   r   r   squeeze)r`   r#   statr   rlocsvcvrvcvrpr   rpdenominv_covs                r   fvalueRollingRegressionResults.fvalue  s4    >>[(>>DNN22<<%%a(D774(D""1%Aq	Aa>D--.A""CGaccMEA4[1q5\ACC'))--1**R\BDD%89EA	 !
 Kr   c           
          [         R                  " SS9   U R                  [         R                  " [         R                  " U R
                  SS5      5      5      sS S S 5        $ ! , (       d  f       g = f)Nr  rH  r   r@   )rQ   r  r  rT   diagonalrA  r  s    r   bseRollingRegressionResults.bse  sD     [[*::bggbkk$2B2BAq&IJK +**s   AA$$
A2c                     [         R                  " SS9   U R                  [        [        R
                  U 5      5      sS S S 5        $ ! , (       d  f       g = frG  )rQ   r  r  r   r   tvaluesr  s    r   r`   RollingRegressionResults.tvalues  s9     [[*:: !7!?!?F +**r  c                 J   U R                   (       a  [        U SU R                  5      n[        R                  " U5      S S 2S 4   n[        R
                  " SS9   [        R                  R                  [        R                  " U R                  5      U5      S-  sS S S 5        $ [        R
                  " SS9   [        R                  R                  [        R                  " U R                  5      5      S-  sS S S 5        $ ! , (       d  f       g = f! , (       d  f       g = f)Ndf_resid_inferencer  rH  r@   )r   getattrr/  rQ   asarrayr  r   tsfabsr`  norm)r`   r/  s     r   pvalues RollingRegressionResults.pvalues  s     ::t%94==IHzz(+AtG4HX.wwzz"&&"6AAE /. X.zz}}RVVDLL%9:Q> /. /. /.s   AD9A D
D
D"c                 n   [         R                  " U R                  5      nU R                  (       a]  [        R
                  n[        U SU R                  5      n[         R                  " U5      S S 2S 4   nUR                  SUS-  -
  U5      nO'[        R                  nUR                  SUS-  -
  5      n[         R                  " U R                  5      nXvU-  -
  nXvU-  -   n	Ub(  [         R                  " U5      nUS S 2U4   nU	S S 2U4   n	[         R                  " [        [        X5      5      5      $ )Nrc  rF   r@   )rQ   re  r]  r   r   rf  rd  r/  ppfri  r    rN  zip)
r`   alphacolsr]  distr/  qr    loweruppers
             r   	_conf_int"RollingRegressionResults._conf_int  s    jj"::77Dt%94==IHzz(+AtG4HUQY1A::DUQY'ADKK(S S ::d#D!T'NE!T'NEzz$s50122r   Nc                    U R                  X5      nU R                  (       d  U$ SnU R                  R                  R                  nU R                  R                  R
                  nUb  U Vs/ s H  ovU   PM	     nn[        R                  " Xd45      n[        R                  " [        R                  " USS5      UR                  S   S45      n[        X8US9$ s  snf )N)rs  rt  rF   r@   r   r   r   )ru  r   r   rK   r   r   r   r   rQ   r   swapaxesrB   r
   )	r`   ro  rp  cici_namesr  r   r   r  s	            r   conf_int!RollingRegressionResults.conf_int  s    ^^E(I%JJOO..	JJOO//	/34t!1tI4$$i%:;ZZB1-R/@Ay99 5s   .Cc                     U R                   $ )zName of covariance estimator)r   r  s    r   r   !RollingRegressionResults.cov_type  s     ~~r   c                 .    [         R                  " U5      $ rg   )r   load)r   fnames     r   r  RollingRegressionResults.load  s     &**511r   c                 0    [         R                  " XU5      $ rg   )r   save)r`   r  remove_datas      r   r  RollingRegressionResults.save  s    %**4DDr   c                 `   SSK JnJn  Ub  U R                  US5      nU R                  R
                  R                  n	U	c-  [        R                  " U R                  R                  S   5      n	U R                  R                  S   n
U R                  R
                  R                  nUc  [        [        U
5      5      nO[        U[        [         45      (       a  U/n/ n[        [#        U5      5       H  nX   nX;   a"  UR%                  UR'                  U5      5        M.  [        U[        5      (       a  UR%                  U5        MV  SR)                  X   SR+                  U5      5      n[-        U5      e   U" 5         U" XE5      nSnSSKn[        U	UR0                  5      (       a  U	R3                  5       n	[        R4                  " U	5      n	U GHH  nUR7                  [#        U5      SUS-   5      nU R                  SS2U4   n[        R8                  " U R                  SS2U4   5      ) nU	U   nUR;                  UUU   5        Ub  [        R<                  " WSS2SS2U4   S5      n[        R>                  " [        R8                  " U5      5      (       dM  UR;                  UUSS2S4   U   SS	S
9  UR;                  UUSS2S4   U   SSS
9  US:X  a  URA                  US9  URC                  US   US   5        URE                  X   5        US-  nGMK     URG                  5         U$ )a  
Plot the recursively estimated coefficients on a given variable

Parameters
----------
variables : {int, str, Iterable[int], Iterable[str], None}, optional
    Integer index or string name of the variables whose coefficients
    to plot. Can also be an iterable of integers or strings. Default
    plots all coefficients.
alpha : float, optional
    The confidence intervals for the coefficient are (1 - alpha)%. Set
    to None to exclude confidence intervals.
legend_loc : str, optional
    The location of the legend in the plot. Default is upper left.
fig : Figure, 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).

Returns
-------
Figure
    The matplotlib Figure object.
r   )_import_mplcreate_mpl_figNrF   zQvariable {} is not an integer and was not found in the list of variable names: {}z, )r   r@   zk:zLower CI)labelzUpper CI)ry   r   )$statsmodels.graphics.utilsr  r  ru  r   rK   r   rQ   aranger   rB   r   rN  r   
isinstancer   strlenappendr   r   joinrX   pandasPeriodIndexto_timestampre  add_subplotrn   plotr   alllegendset_xlim	set_titletight_layout)r`   	variablesro  
legend_locfigfigsizer  r  ry  r   k_variablesr   variable_idxr   variablemsgry   pdaxr    validrow_lblthis_cis                          r   plot_recursive_coefficient3RollingRegressionResults.plot_recursive_coefficient  s   F 	Kt,BZZ__//
4<<#5#5a#89Jll((+jjoo11k 23L)c3Z00&K	L3y>*$<* ''(9(9((CD#.. ''1$$*F%L$))K*@%  %S/) +  	S*j"..11#002JZZ
+
A\!2AsQw?B\\!Q$'FXXdll1a4011E 'GGGGVE]+ **R1a[':vvbhhw/00GGAu!5t:   GGAu!5t:   ax		j	1KK
GBK0LL(1HC' * 	
r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   )皙?N)F)Nr  z
upper leftNN)4r   r   r   r   r   tuple_data_in_cacher   rI   r  r   r   r   r   r  r  r  r    r!   r"   r   r  rJ   r'   r(   r'  r*  r#   r/  r   r4  r7  r;  r>  rA  rD  rJ  rY  r]  r   r`  rj  ru  r{  propertyr   r   r  r  r  r  r   r   r   r   r   r     s   $ WN(.? n.2234I 5 I n.2234M 5 M

 ( ( n.2234% 5 % n.2234% 5 % o&&../- 0 -     n.;;<=" > " n.==>?$ @ $ n.7789N : N n.;;<=
 > 

 n.3345& 6 & o&&../I 0 I %%--. /  n.2234I 5 I n.889:O ; O n.889:O ; O n.889:O ; O 9 9,  n.7789 :  n.5567 8 0 n.2234L 5 L n3;;<= >  n3;;<=? > ?3* $--556: 7:   $))1122 3 2 )44K$))112E 3E
 br   r   )/r   statsmodels.compat.numpyr   statsmodels.compat.pandasr   r   r   r   r   collectionsr	   numpyrQ   r  r
   r   r   scipyr   statsmodels.baser   statsmodels.base.modelr   r   #statsmodels.regression.linear_modelr   r   statsmodels.tools.validationr   r   r   r   r   r  map_model_params_docsplitcommon_paramswindow_parametersweight_parameters_missing_param_doc
extra_baser.   _docr0   r   r   r   r   r   <module>r     sF   +  #  0 0  " @ K J 
 		#fe&=&=&C&CD&IJK   $  
$'88:E &R 
%	 
$d d dN	 %z1  
%	 
$
 
 
,E Er   