
    Vfd1                       d Z ddlZddlZddlmZ ddlZddlZddl	Z	ddl
mZ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mZmZ ej                            ej                            e                    Zej                            d
d          Z ej         eej!        z   ez             Z"ej                            d
d          Z# ej         ej                            ee#                    Z$ G d d          Z% G d d          Z& G d d          Z' G d de'          Z( G d de(          Z) G d de(          Z* G d de'          Z+ G d de+          Z, G d de'          Z- G d d e-          Z. G d! d"e-          Z/ G d# d$e-          Z0 G d% d&e'          Z1 G d' d(e1          Z2 G d) d*e1          Z3 G d+ d,e1          Z4 G d- d.e1          Z5 G d/ d0          Z6 G d1 d2e6          Z7 G d3 d4e6          Z8 G d5 d6e6          Z9 G d7 d8e6          Z: G d9 d:e6          Z; G d; d<e6          Z< G d= d>e6          Z= G d? d@e6          Z> G dA dBe6          Z? G dC dDe6          Z@ G dE dFe6          ZA G dG dHe6          ZB G dI dJe6          ZC G dK dLe6          ZD G dM dNe6          ZE G dO dPe6          ZF G dQ dRe6          ZG G dS dTe6          ZH G dU dVe6          ZI G dW dXe6          ZJ G dY dZe6          ZK G d[ d\e6          ZL G d] d^e6          ZM G d_ d`e6          ZN G da dbe6          ZO G dc dde6          ZP G de dfe6          ZQ G dg dhe6          ZR G di dje6          ZS G dk dle6          ZT G dm dne6          ZU G do dpe6          ZV G dq dre6          ZW G ds dte6          ZX G du dve6          ZY G dw dxe6          ZZ G dy dze6          Z[ G d{ d|e6          Z\ G d} d~e6          Z] G d de6          Z^ G d de6          Z_ G d de6          Z` G d de6          Za G d de6          Zb G d de6          Zc G d de6          Zd G d de6          Ze G d de6          Zf G d de6          Zg G d de6          Zh G d de6          Zi G d de6          Zj G d de6          Zk G d de6          Zl G d de6          Zm G d de6          Zn G d de6          Zo G d de6          Zp G d de6          Zq G d de6          Zrd Zsd Ztd Zud Zvd Zwd Zxe	jy        jz        d             Z{d Z|d Z}ddZ~e	jy        j        d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ Ze	jy        j        dĄ             Zdń ZdƄ ZdǄ ZdS )zG
Tests for SARIMAX models

Author: Chad Fulton
License: Simplified-BSD
    N)PLATFORM_WIN)sarimaxtools   )results_sarimax)add_constant)Bunch)assert_assert_equalassert_almost_equalassert_raisesassert_allcloseresultszresults_realgdpar_stata.csvzresults_sarimax_coverage.csvc                   R    e Zd ZdZed             Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestSARIMAXStatsmodelsz
    Test ARIMA model using SARIMAX class against statsmodels ARIMA class

    Notes
    -----

    Standard errors are quite good for the OPG case.
    c                    t           j        | _        | j        d         }t                      }d|_        d|_        d|_        d|_        t          j	        g d          |_
        t          j	        g d          |_        || _        t          j        |dd	d
d
          | _        | j                            d          | _        d S )NdatagI=`gI=kq@gEs8r@g	VqYq@)gF?g%X?gEP^ڿ)g#W?gB½S?gm6@?r   r   r   cT)ordertrendsimple_differencinghamilton_representationdisp)r   wpi1_stationarytruer	   llfaicbichqicnparrayparamsbseresult_ar   SARIMAXmodel_bfitresult_b)clsendogr'   s      Mlib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_sarimax.pysetup_classz"TestSARIMAXStatsmodels.setup_class+   s    "2  77)((*(#H#H#HIIx D D DEEoe9C:>>BD D D {B//    c                 N    t          | j        j        | j        j                   d S N)r   r+   r   r'   selfs    r.   test_loglikez#TestSARIMAXStatsmodels.test_loglike?   "    )4=+<=====r0   c                 N    t          | j        j        | j        j                   d S r2   )r   r+   r    r'   r3   s    r.   test_aiczTestSARIMAXStatsmodels.test_aicB   r6   r0   c                 N    t          | j        j        | j        j                   d S r2   )r   r+   r!   r'   r3   s    r.   test_biczTestSARIMAXStatsmodels.test_bicE   r6   r0   c                 N    t          | j        j        | j        j                   d S r2   )r   r+   r"   r'   r3   s    r.   	test_hqicz TestSARIMAXStatsmodels.test_hqicH   s"    *DM,>?????r0   c                     | j         j                                        }d|d         z
  |d         z  |d<   t          | j        j        d d         |d           d S )Nr   r   r   g-C6
?atol)r'   r%   copyr   r+   )r4   params_as     r.   test_mlezTestSARIMAXStatsmodels.test_mleK   s]     =',,..8A;(1+5,SbS18$GGGGGGr0   c                     | j                             d          }|                                dz  }t          |dd         | j        j        dd          d           d S )NTapprox_complex_step      ?r   r   h㈵>r>   )r+   _cov_params_approxdiagonalr   r'   r&   )r4   cpar&   s      r.   test_bsezTestSARIMAXStatsmodels.test_bseR   s]    m..4.HHllnnc!AbD	4=#4QRR#8tDDDDDDr0   c                     dd l mc m} |                    | j                   |                    | j                   d S )Nr   )statsmodels.tools._testingr   _testingcheck_ttest_tvaluesr+   check_ftest_pvalues)r4   smts     r.   test_t_testz"TestSARIMAXStatsmodels.test_t_testX   sQ    000000000 	........r0   N)__name__
__module____qualname____doc__classmethodr/   r5   r8   r:   r<   rB   rK   rR    r0   r.   r   r   "   s          0 0 [0&> > >> > >> > >@ @ @H H HE E E/ / / / /r0   r   c                   4    e Zd ZdZed             Zd Zd ZdS )TestRealGDPARStataz
    Includes tests of filtered states and standardized forecast errors.

    Notes
    -----
    Could also test the usual things like standard errors, etc. but those are
    well-tested elsewhere.
    c                    t          j        t          d                                                   dd          j        }t          j        |ddd          | _        g d}| j                            |          | _	        d S )Nvaluer   )   r   r   nT)r   r   r   )g.*w?gdr
?gD{g	rm	gEg?Q?g1D
Y?gf4fg+I?gߔ$?gMQ>Ʊ?g=+[gƐr?)
r#   logrealgdp_resultsdiffvaluesr   r(   modelfilterr   )r,   dlgdpr%   s      r.   r/   zTestRealGDPARStata.setup_classi   s    w/005577;BOE3<@B B B	
 
 

 i&&v..r0   c                     t          d          D ]G}t          t          j        dd          d|dz   z           | j        j        j        |         d           Hd S )Nr]   r   zu%dư>r>   )ranger   r`   ilocr   filter_resultsfiltered_state)r4   is     r.   test_filtered_statez&TestRealGDPARStata.test_filtered_statev   sl    r 	 	A$QRR(!A#7+:1=    	 	r0   c                     t          t          j        dd          d         | j        j        j        d         d           d S )Nr   rstdr   MbP?r>   )r   r`   ri   r   rj   standardized_forecasts_errorr3   s    r.   !test_standardized_forecasts_errorz4TestRealGDPARStata.test_standardized_forecasts_error~   sJ     $V,L'DQG	
 	
 	
 	
 	
 	
r0   N)rS   rT   rU   rV   rW   r/   rm   rr   rX   r0   r.   rZ   rZ   `   sW          
/ 
/ [
/  
 
 
 
 
r0   rZ   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )SARIMAXStataTestsc                 R    t          | j        j        | j        d         d           d S )Nloglike   )r   resultr   r   r3   s    r.   r5   zSARIMAXStataTests.test_loglike   s1    KOIi !	
 	
 	
 	
 	
r0   c                 R    t          | j        j        | j        d         d           d S )Nr       )r   rx   r    r   r3   s    r.   r8   zSARIMAXStataTests.test_aic   1    KOIea	
 	
 	
 	
 	
r0   c                 R    t          | j        j        | j        d         d           d S )Nr!   rz   r   rx   r!   r   r3   s    r.   r:   zSARIMAXStataTests.test_bic   r{   r0   c                     d| j         j        z  dt          j        t          j        | j         j                            z  | j         j        j        d         z  z   }t          | j         j        |d           d S )N   r   rz   )	rx   r   r#   r_   nobs_effectiver%   shaper   r"   )r4   r"   s     r.   r<   zSARIMAXStataTests.test_hqic   sy    t{bfRVDK677888K$Q'(( 	
 	K!	
 	
 	
 	
 	
r0   c                 n    | j         j        }d | j         _        | j         j        }t          ||           d S r2   )rx   rq   _standardized_forecasts_errorr   )r4   
cython_sfe
python_sfes      r.   rr   z3SARIMAXStataTests.test_standardized_forecasts_error   s6    [=
481[=

J/////r0   N)rS   rT   rU   r5   r8   r:   r<   rr   rX   r0   r.   rt   rt      s_        
 
 

 
 

 
 
	
 	
 	
0 0 0 0 0r0   rt   c                   .    e Zd ZdZed             Zd ZdS )ARIMAz?
    ARIMA model

    Stata arima documentation, Example 1
    c                    || _         |d         }|                    dd           |                    dd           t          j        |g|R ddd|| _        d|d	         d
         z
  |d         d
         z  }t
          j        ||d	         |d         |d         f         }| j                            |          | _        d S )Nr   r   Tr   r   r   r   r   r   	params_arr   params_mean	params_maparams_variance)	r   
setdefaultr   r(   rc   r#   r_rd   rx   r,   r   argskwargsr-   	interceptr%   s          r.   r/   zARIMA.setup_class   s    V/6663T:::OE 5%)5 5# 5 5-35 5	
 k*1--m1DQ1GG	y${"3T+5F-./ 0 Y%%f--


r0   c                 ~    | j                             d          }t          |j        | j        j        d           d S Nr   r   rp   r>   rc   r*   r   r%   rx   r4   rx   s     r.   rB   zARIMA.test_mle   G    R((M4;-	
 	
 	
 	
 	
 	
r0   NrS   rT   rU   rV   rW   r/   rB   rX   r0   r.   r   r      sH         
 . . [.$
 
 
 
 
r0   r   c                   J     e Zd ZdZe fd            Zd Zd Zd Zd Z	 xZ
S )TestARIMAStationaryr
    Notes
    -----

    Standard errors are very good for the OPG and complex step approximation
    cases.
    c                 l    t          t          |                               t          j                   d S r2   )superr   r/   r   r   r,   	__class__s    r.   r/   zTestARIMAStationary.setup_class   6    !3''33+	
 	
 	
 	
 	
r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S 
NopgTFr   	se_ar_opgHz>r>   r   	se_ma_opgr   rx   cov_type_cov_approx_complex_step_cov_approx_centeredr   r&   r   r3   s    r.   rK   zTestARIMAStationary.test_bse       T[)5111T[94@@@T[5u===*DIk,BNNNN*DIk,BNNNNNNr0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S )
NTrD   rF   r   	se_ar_oimr   r>   r   	se_ma_oimrx   rH   rI   r   r   r4   r&   s     r.   test_bse_approxz#TestARIMAStationary.test_bse_approx   w    k,, $ - & &&.hjj#6A	+ 6TBBBBA	+ 6TBBBBBBr0   c                     | j         j                                        dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S )	NrF   r   r   rp   r>   r   r   {Gz?rx   cov_params_oimrI   r   r   r4   oim_bses     r.   test_bse_oimz TestARIMAStationary.test_bse_oim   sc    +,5577<
DIk$:FFFF
DIk$:FFFFFFr0   c                 J   | j         j                                        dz  }| j         j        }|                                dz  }t          j        | j        d         | j        d         f         }t          |dd         |d           t          |dd         |d           d S )	NrF   se_ar_robustse_ma_robustr   rz   r   r>   rp   )rx   cov_params_robust_oimrI   cov_params_robust_approxr#   r   r   r   )r4   robust_oim_bsecprarobust_approx_bsetrue_robust_bses        r.   test_bse_robustz#TestARIMAStationary.test_bse_robust  s    :CCEEsJ{3 MMOOS0%In%ty'@@
 	qs+_4HHHH)!A#.dKKKKKKr0   )rS   rT   rU   rV   rW   r/   rK   r   r   r   __classcell__r   s   @r.   r   r      s          
 
 
 
 [

O O OC C C0G G G	L 	L 	L 	L 	L 	L 	Lr0   r   c                   D     e Zd ZdZe fd            Zd Zd Zd Z xZ	S )TestARIMADiffuse
    Notes
    -----

    Standard errors are very good for the OPG and quite good for the complex
    step approximation cases.
    c                     d|d<   t           j        d         |d<    t          t          |           j        t           j        fi | d S )Napproximate_diffuseinitializationinitial_variance)r   wpi1_diffuser   r   r/   )r,   r   r   s     r.   r/   zTestARIMADiffuse.setup_class  se    #8 ();< 	!" 	1$$01M 	; 	;39	; 	; 	; 	; 	;r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S r   r   r3   s    r.   rK   zTestARIMADiffuse.test_bse  r   r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S )
NTrD   rF   r   r   -C6?r>   r   r   r   r   s     r.   r   z TestARIMADiffuse.test_bse_approx'  r   r0   c                     | j                                                                         dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S )	NrF   r   r   r   r>   r   r   皙?rx   _cov_params_oimrI   r   r   r   s     r.   r   zTestARIMADiffuse.test_bse_oim?  l    k))++4466;A	+ 6TBBBBA	+ 6TBBBBBBr0   
rS   rT   rU   rV   rW   r/   rK   r   r   r   r   s   @r.   r   r     s          ; ; ; ; [;O O OC C C0C C C C C C Cr0   r   c                   .    e Zd ZdZed             Zd ZdS )AdditiveSeasonalz^
    ARIMA model with additive seasonal effects

    Stata arima documentation, Example 2
    c                    || _         t          j        |d                   }|                    dd           |                    dd           t	          j        |g|R ddd|| _        d|d	         d
         z
  |d         d
         z  }t          j        ||d	         |d         |d         f         }| j                            |          | _	        d S )Nr   r   Tr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   
r   r#   r_   r   r   r(   rc   r   rd   rx   r   s          r.   r/   zAdditiveSeasonal.setup_classL  s    tF|$$/6663T:::O
;?
 
-S
 
CI
 
	 k*1--m1DQ1GG	y${"3T+5F-./ 0 Y%%f--


r0   c                 ~    | j                             d          }t          |j        | j        j        d           d S r   r   r   s     r.   rB   zAdditiveSeasonal.test_mle`  r   r0   Nr   rX   r0   r.   r   r   F  sH         
 . . [.&
 
 
 
 
r0   r   c                   D     e Zd ZdZe fd            Zd Zd Zd Z xZ	S )TestAdditiveSeasonalr   c                 l    t          t          |                               t          j                   d S r2   )r   r   r/   r   wpi1_seasonalr   s    r.   r/   z TestAdditiveSeasonal.setup_classp  s6    "C((44)	
 	
 	
 	
 	
r0   c                 Z   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        dd	         | j        d
         d           d S )Nr   TFr   r   rg   r>   r   rw   r   rG   r   r3   s    r.   rK   zTestAdditiveSeasonal.test_bsev  s    T[)5111T[94@@@T[5u===*DIk,BNNNN!,di.D!	# 	# 	# 	# 	# 	#r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |dd	         | j        d
         d           d S )NTrD   rF   r   r   r   r>   r   rw   r   r   r   s     r.   r   z$TestAdditiveSeasonal.test_bse_approx  s{    k,, $ - & &&.hjj#6A	+ 6TBBBBAaC$)K"8tDDDDDDr0   c                     | j                                                                         dz  }t          |d         | j        d         d           t          |dd         | j        d         d	           d S )
NrF   r   r   r   r>   r   rw   r   r   r   r   s     r.   r   z!TestAdditiveSeasonal.test_bse_oim  sp    k))++4466;A	+ 6TBBBBAaC$)K"8tDDDDDDr0   r   r   s   @r.   r   r   h  s          
 
 
 
 [

# # #E E E2E E E E E E Er0   r   c                   .    e Zd ZdZed             Zd ZdS )Airlinez`
    Multiplicative SARIMA model: "Airline" model

    Stata arima documentation, Example 3
    c                 h   || _         t          j        |d                   }|                    dd           |                    dd           t	          j        |g|R dddd|| _        t          j        |d	         |d
         |d         f         }| j                            |          | _	        d S )Nr   r   Tr   )r   r   r   )r   r   r   r]   r^   )r   seasonal_orderr   r   params_seasonal_mar   r   )r,   r   r   r   r-   r%   s         r.   r/   zAirline.setup_class  s    tF|$$/6663T:::O

 
"=
 
 &
 
	
 tK($/C*D-./ 0 Y%%f--


r0   c                     t          j                    5  t          j        d           | j                            d          }t          |j        | j        j        d           d d d            d S # 1 swxY w Y   d S )Nignorer   r   r   r>   )warningscatch_warningssimplefilterrc   r*   r   r%   rx   r   s     r.   rB   zAirline.test_mle  s    $&& 	 	!(+++Z^^^,,Ft{1   		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA22A69A6Nr   rX   r0   r.   r   r     sH         
 . . [."    r0   r   c                   D     e Zd ZdZe fd            Zd Zd Zd Z xZ	S )TestAirlineHamiltonr   c                 l    t          t          |                               t          j                   d S r2   )r   r   r/   r   air2_stationaryr   s    r.   r/   zTestAirlineHamilton.setup_class  r   r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S 
Nr   TFr   r   rg   r>   r   se_seasonal_ma_opgr   r3   s    r.   rK   zTestAirlineHamilton.test_bse      T[)5111T[94@@@T[5u===*DIk,BNNNN*DI6J,K!	# 	# 	# 	# 	# 	#r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S 
NTrD   rF   r   r   rg   r>   r   se_seasonal_ma_oimr   r   s     r.   r   z#TestAirlineHamilton.test_bse_approx  x    k,, $ - & &&.hjj#6A	+ 6TBBBBA	*> ?dKKKKKKr0   c                     | j         j                                        dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S NrF   r   r   r   r>   r   r   r   r   s     r.   r   z TestAirlineHamilton.test_bse_oim  d    +,5577<
DIk$:FFFF
DI.B$C$OOOOOOr0   r   r   s   @r.   r   r               
 
 
 
 [

# # #L L L6P P P P P P Pr0   r   c                   D     e Zd ZdZe fd            Zd Zd Zd Z xZ	S )TestAirlineHarveyr   c                 p    t          t          |                               t          j        d           d S )NF)r   )r   r  r/   r   r   r   s    r.   r/   zTestAirlineHarvey.setup_class  s=    %%11+U 	2 	
 	
 	
 	
 	
r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S r   r   r3   s    r.   rK   zTestAirlineHarvey.test_bse  r   r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S r   r   r   s     r.   r   z!TestAirlineHarvey.test_bse_approx  r   r0   c                     | j         j                                        dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S r   r   r   s     r.   r   zTestAirlineHarvey.test_bse_oim0  r   r0   r   r   s   @r.   r  r    r   r0   r  c                   P     e Zd ZdZe fd            Zd Zd Zd Zd Z	d Z
 xZS )TestAirlineStateDifferencingr   c                 r    t          t          |                               t          j        dd           d S )NF)r   r   )r   r  r/   r   r   r   s    r.   r/   z(TestAirlineStateDifferencing.setup_class?  s@    *C00<<+$) 	= 	
 	
 	
 	
 	
r0   c                 R    t          | j        j        | j        d         d           d S )Nr!   r   r}   r3   s    r.   r:   z%TestAirlineStateDifferencing.test_bicF  s3     	KOIea	
 	
 	
 	
 	
r0   c                     | j                             ddd          }t          |j        | j        j        d           d S )Nnmi  r   )methodmaxiterr   rp   r>   r   r   s     r.   rB   z%TestAirlineStateDifferencing.test_mleO  sK    tTBBM4;-	 	 	 	 	 	r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S r   r   r3   s    r.   rK   z%TestAirlineStateDifferencing.test_bseU  r   r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S )
NTrD   rF   r   r   r   r>   r   r   r   r   s     r.   r   z,TestAirlineStateDifferencing.test_bse_approx_  r   r0   c                     | j         j                                        dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S r   r   r   s     r.   r   z)TestAirlineStateDifferencing.test_bse_oimy  r   r0   )rS   rT   rU   rV   rW   r/   r:   rB   rK   r   r   r   r   s   @r.   r  r  7  s          
 
 
 
 [

 
 
  # # #L L L4P P P P P P Pr0   r  c                   *    e Zd ZdZedd            ZdS )Friedmanzb
    ARMAX model: Friedman quantity theory of money

    Stata arima documentation, Example 4
    Nc                    || _         t          j        |d         d                  }|t          |d         d                   }|                    dd           |                    dd           t          j        |g|R |dd|| _        t          j        |d	         |d
         |d         |d         f         }| j                            |          | _	        d S )Nr   consumpm2r   Tr   r   r   r   exogr   params_exogr   r   r   )
r   r#   r   r   r   r   r(   rc   rd   rx   )r,   r   r  r   r   r-   r%   s          r.   r/   zFriedman.setup_class  s    d6l9-.<VT 233D/6663T:::O
04
 
I
 
8>
 
	 tM*D,=K($/@*AB C Y%%f--


r0   r2   )rS   rT   rU   rV   rW   r/   rX   r0   r.   r  r    s>         
 . . . [. . .r0   r  c                   J     e Zd ZdZe fd            Zd Zd Zd Zd Z	 xZ
S )TestFriedmanMLERegressionr   c                 l    t          t          |                               t          j                   d S r2   )r   r  r/   r   friedman2_mler   s    r.   r/   z%TestFriedmanMLERegression.setup_class  s6    '--99)	
 	
 	
 	
 	
r0   c                     | j                             d          }|j        | j        j        z  }t	          |t          j        d          dd           d S )Nr   r      r   rp   r?   rtol)rc   r*   r%   rx   r   r#   ones)r4   rx   ratios      r.   rB   z"TestFriedmanMLERegression.test_mle  sM    R(( 22rwqzz4@@@@@@r0   c                    t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        dd         | j        d         d           t          | j        j        d         | j        d	         d
           t          | j        j        d         | j        d         d
           d S )Nr   TFr   r   se_exog_opgr   r>   r   rg   rz   r   r   r3   s    r.   rK   z"TestFriedmanMLERegression.test_bse  s    T[)5111T[94@@@T[5u===!,di.F!	# 	# 	# 	#*DIk,BNNNN*DIk,BNNNNNNr0   c                 <   | j                             d                                          dz  }t          |dd         | j        d         d           t          |d         | j        d	         d
           t          |d         | j        d         d
           d S )NTrD   rF   r   r   se_exog_oimr   r>   r   rg   rz   r   r   r   s     r.   r   z)TestFriedmanMLERegression.test_bse_approx  s    k,, $ - & &&.hjj#6AaC$)M":FFFFA	+ 6TBBBBA	+ 6TBBBBBBr0   c                 x   | j         j                                        dz  }t          |d         | j        d         d         d           t          |d         | j        d         d         d           t          |d         | j        d	         d           t          |d
         | j        d         d           d S )NrF   r   r'  r   r!  r   r>   r   r   rz   r   r   r   s     r.   r   z&TestFriedmanMLERegression.test_bse_oim  s    k(1133S8A	- 8 ;!DDDDA	- 8 ;$GGGGA	+ 6TBBBBA	+ 6TBBBBBBr0   )rS   rT   rU   rV   rW   r/   rB   rK   r   r   r   r   s   @r.   r  r    s          
 
 
 
 [

A A A	O 	O 	OC C C<C C C C C C Cr0   r  c                   b     e Zd ZdZe fd            Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Z xZS )TestFriedmanStateRegressiona@  
    Notes
    -----

    MLE is not very close and standard errors are not very close for any set of
    parameters.

    This is likely because we're comparing against the model where the
    regression coefficients are also estimated by MLE. So this test should be
    considered just a very basic "sanity" test.
    c                    t          t          j                  }t          |d         d                   dz  }|d         d d          |d<   |d         d d          |d<   g |d<   g |d<   t	          t
          |                               ||d	
           t          j        |d         |d         |d         |d         f         | _	        | j
                            | j	                  | _        d S )Nr   r        $@r  mle_params_exogr%  mle_se_exogse_exogF)r  mle_regressionr   r   r   )dictr   r  r   r   r+  r/   r#   r   true_paramsrc   rd   rx   )r,   r   r  r   s      r.   r/   z'TestFriedmanStateRegression.setup_class  s     O122DL.//#5"&}"5aaa"8"=1!!!4] ]Y)3//;;tE 	< 	
 	
 	
 %] 3T+5F $[ 148I3J!K L Y%%co66


r0   c                     | j                             d          }t          |j        | j        j        dd           d S )Nr   r   r   皙?r   r   r   s     r.   rB   z$TestFriedmanStateRegression.test_mle  sI    R((M4;-D	
 	
 	
 	
 	
 	
r0   c                 v    t          | j        j        j        dd df         dz  | j        d         d           d S )Nr   r   r-  r.  r   )r   rx   rj   rk   r   r3   s    r.   test_regression_parametersz6TestFriedmanStateRegression.test_regression_parameters	  sJ     	K&5bcc2g>DI'(!	
 	
 	
 	
 	
r0   c                     d S r2   rX   r3   s    r.   r5   z(TestFriedmanStateRegression.test_loglike      r0   c                     d S r2   rX   r3   s    r.   r8   z$TestFriedmanStateRegression.test_aic  r9  r0   c                     d S r2   rX   r3   s    r.   r:   z$TestFriedmanStateRegression.test_bic  r9  r0   c                 V   t          | j        j        d           t          | j        j        d           t          | j        j        d           t          | j        j        d         | j        d         d           t          | j        j        d         | j        d	         d           d S )
Nr   TFr   r   r   r>   r   r   r   r3   s    r.   rK   z$TestFriedmanStateRegression.test_bse"  r   r0   c                     | j                             d                                          dz  }t          |d         | j        d         d           t          |d         | j        d	         d           d S )
NTrD   rF   r   r   r   r>   r   r   r   r   s     r.   r   z+TestFriedmanStateRegression.test_bse_approx+  r   r0   c                     | j                                                                         dz  }t          |d         | j        d         d           t          |d         | j        d         d           d S )NrF   r   r   r   r>   r   r   r   r   s     r.   r   z(TestFriedmanStateRegression.test_bse_oimD  r   r0   )rS   rT   rU   rV   rW   r/   rB   r7  r5   r8   r:   rK   r   r   r   r   s   @r.   r+  r+    s        
 
 7 7 7 7 [7*
 
 

 
 
       O O OC C C2C C C C C C Cr0   r+  c                   P     e Zd ZdZe fd            Zd Zd Zd Zd Z	d Z
 xZS )TestFriedmanPredicta  
    ARMAX model: Friedman quantity theory of money, prediction

    Stata arima postestimation documentation, Example 1 - Dynamic forecasts

    This follows the given Stata example, although it is not truly forecasting
    because it compares using the actual data (which is available in the
    example but just not used in the parameter MLE estimation) against dynamic
    prediction of that data. Here `test_predict` matches the first case, and
    `test_dynamic_predict` matches the second.
    c                 l    t          t          |                               t          j                   d S r2   )r   r@  r/   r   friedman2_predictr   s    r.   r/   zTestFriedmanPredict.setup_classW  s6    !3''33-	
 	
 	
 	
 	
r0   c                     d S r2   rX   r3   s    r.   r5   z TestFriedmanPredict.test_loglike`  r9  r0   c                     d S r2   rX   r3   s    r.   r8   zTestFriedmanPredict.test_aicc  r9  r0   c                     d S r2   rX   r3   s    r.   r:   zTestFriedmanPredict.test_bicf  r9  r0   c                 l    t          | j                                        | j        d         d           d S )Npredictrz   )r   rx   rG  r   r3   s    r.   test_predictz TestFriedmanPredict.test_predicti  s;    K!!Ii !	
 	
 	
 	
 	
r0   c                     t          | j        d         d                   dz
  dz
  }t          | j                            |          | j        d         d           d S )Nr   r     r   dynamicdynamic_predictrz   )lenr   r   rx   rG  )r4   rL  s     r.   test_dynamic_predictz(TestFriedmanPredict.test_dynamic_predicto  sd    di'	233B6q8K00I'(!	
 	
 	
 	
 	
r0   )rS   rT   rU   rV   rW   r/   r5   r8   r:   rH  rO  r   r   s   @r.   r@  r@  K  s        
 
 
 
 
 
 [
      
 
 

 
 
 
 
 
 
r0   r@  c                   P     e Zd ZdZe fd            Zd Zd Zd Zd Z	d Z
 xZS )TestFriedmanForecasta  
    ARMAX model: Friedman quantity theory of money, forecasts

    Variation on:
    Stata arima postestimation documentation, Example 1 - Dynamic forecasts

    This is a variation of the Stata example, in which the endogenous data is
    actually made to be missing so that the predict command must forecast.

    As another unit test, we also compare against the case in State when
    predict is used against missing data (so forecasting) with the dynamic
    option also included. Note, however, that forecasting in State space models
    amounts to running the Kalman filter against missing datapoints, so it is
    not clear whether "dynamic" forecasting (where instead of missing
    datapoints for lags, we plug in previous forecasted endog values) is
    meaningful.
    c                    t          t          j                  }|d         d         dd          |d         d         dd          d|d<   |d         d         d d         |d         d         d d         d|d<   t          t          |                               |           | j                            | j        j	                  | _        d S )Nr   r  ir  )r  r  forecast_data)
r2  r   rB  r   rQ  r/   rc   rd   rx   r%   )r,   r   r   s     r.   r/   z TestFriedmanForecast.setup_class  s    O566 F|I.stt4v,t$STT*!
 !
_
 F|I.tt4v,t$TcT*
 
V
 	"C((44T:::Y%%cj&788


r0   c                     d S r2   rX   r3   s    r.   r5   z!TestFriedmanForecast.test_loglike  r9  r0   c                     d S r2   rX   r3   s    r.   r8   zTestFriedmanForecast.test_aic  r9  r0   c                     d S r2   rX   r3   s    r.   r:   zTestFriedmanForecast.test_bic  r9  r0   c                     t          | j        d         d                   dz   dz
  }t          | j        d         d                   }t          | j                            ||          | j        d         d	           d S )
Nr   r  rJ  r   rS  r  )endr  forecastrz   rN  r   r   r   rx   rG  )r4   rX  r  s      r.   test_forecastz"TestFriedmanForecast.test_forecast  s~    $)F#I.//214DIo6t<==KCd33Ij!1	
 	
 	
 	
 	
r0   c                 F   t          | j        d         d                   dz   dz
  }t          | j        d         d                   dz
  }t          | j        d         d                   }t          | j                            |||          | j        d         d	           d S )
Nr   r  rJ  r   rS  r  )rX  rL  r  dynamic_forecastrz   rZ  )r4   rX  rL  r  s       r.   test_dynamic_forecastz*TestFriedmanForecast.test_dynamic_forecast  s    $)F#I.//214di'	233A5DIo6t<==KCtDDI()1	
 	
 	
 	
 	
r0   )rS   rT   rU   rV   rW   r/   r5   r8   r:   r[  r^  r   r   s   @r.   rQ  rQ  w  s         " 9 9 9 9 [9&      
 
 

 
 
 
 
 
 
r0   rQ  c                   t    e Zd Zedd            Zd Zd Zd Zd Ze	j
        j        d             Zd	 Zd
 ZdS )SARIMAXCoverageTestrw   Nc                    |t           j        }t          j        |         d         | _        t          j        d t          j        |         d                             d          D                       | _        | j        d         dz  | j        d<   || _	        |
                    dd           |
                    d	d           t          j        |g|R i || _        d S )
Nr   c                 ,    g | ]}t          |          S rX   )float).0xs     r.   
<listcomp>z3SARIMAXCoverageTest.setup_class.<locals>.<listcomp>  s1     $P $P $PE!HH$P $P $Pr0   
parameters,r   r   r   Tr   )r   	wpi1_datacoverage_resultsloctrue_logliker#   r$   splitr3  decimalr   r   r(   rc   )r,   rl   rn  r-   r   r   s         r.   r/   zSARIMAXCoverageTest.setup_class  s     =#-E ,/259( $P $P.215lCII#NN$P $P $P 
 
 "ob114  	/6663T:::OE;D;;;F;;			r0   c                     | j                             | j                  | _        t	          | j        j        | j        dd| j         z  z             d S )Ngffffff?
   r>   )rc   rd   r3  rx   r   r   rl  rn  r3   s    r.   r5   z SARIMAXCoverageTest.test_loglike  s[    j''(899KOrT\M**	
 	
 	
 	
 	
 	
r0   c                     | j         j        }| j         j        }d| j         _        d| j         _        | j         j         || j         _        || j         _        d S )NF)rc   enforce_stationarityenforce_invertibilitystart_params)r4   statinvs      r.   test_start_paramsz%SARIMAXCoverageTest.test_start_params  sQ     z.j.*/
'+0
(
*.
'+.
(((r0   c                    | j         }|j        |j        }}| j        }|                    | j                   |j        }|j        }||                                         }|j        dk    s/t          j
        t          j        d|dd           f                   oAt          |          dk    p.t          j
        t          j        d|dd           f                   |_        |j        }|j        }	|	|	                                         }
|j        dk    s.t          j
        t          j        d|dd          f                   o@t          |
          dk    p-t          j
        t          j        d|
dd          f                   |_        |                    |          }|                    |          }t'          ||d           ||_        ||_        d S )Nr   r   rw   )rc   rr  rs  r3  updatepolynomial_arpolynomial_seasonal_arnonzerok_arr   is_invertibler#   r   rN  polynomial_mapolynomial_seasonal_mak_mauntransform_paramstransform_paramsr   )r4   rc   ru  rv  true_constrainedparpsarcontracted_psarpmapsmacontracted_psmaunconstrainedconstraineds                r.   test_transform_untransformz.SARIMAXCoverageTest.test_transform_untransform  s   
.0Kc+
 	T%&&&!+t||~~.Z1_G 3BE!c!""gX+4F G G E!!Q& D#BE!oabb.A-A*A$BCC 	" !+t||~~.Z1_F 3BE!SW*4E F F D!!Q& C#BE!_QRR-@*@$ABB 	# 001ABB,,];;K)91===%)"&)###r0   c                    | j                             | j                  | _        | j                                         | j        j         | j        j         | j        j         | j        j         | j        j	         | j        j
         d S r2   )rc   rd   r3  rx   summarycov_params_defaultcov_params_approxr   cov_params_opgr   r   r3   s    r.   test_resultsz SARIMAXCoverageTest.test_results  s|    j''(899 	 	&&%%"""")),,,,r0   c                     | j                             | j                  | _        | j                                         d S r2   )rc   rd   r3  rx   plot_diagnostics)r4   close_figuress     r.   test_plot_diagnosticsz)SARIMAXCoverageTest.test_plot_diagnostics  s8     j''(899$$&&&&&r0   c                    | j                             | j                  }|                                }t	          |j        | j         j        f           |                    dd          }t	          |j        d           |                    ddd          }t	          |j        d           | j         j        dk    r|                    | j         j        | j         j        dz   d          }t	          |j        d           |                    | j         j        | j         j        dz   d          }|                                }t	          |j        d           |                    d          }t	          |j        d	           d S | j         j        }t          j
        dg|z  d
z                               d
|          }|                    | j         j        | j         j        dz   d|          }t	          |j        d           |                    | j         j        | j         j        dz   d|          }t          j
        dg|z                               d|          }|                    |          }t	          |j        d           d S )Nrp     startrX  )   )r  rX  rL  r   ir   )rp  r  r  rX  rL  r  r   r  )rc   rd   r3  rG  r   r   nobsk_exogrY  r#   r   reshape)r4   rx   rG  rY  r  r  s         r.   rH  z SARIMAXCoverageTest.test_predict  sQ   ""4#344 ..""W]TZ_$6777..rr.22W]E***..rr2.>>W]E*** :!!nn4:?)-);S % J JG...nn4:?)-);S % J JG ((H...r**H/////Z&F5!VB'//F;;Dnn4:?)-);S*. % 0 0G ...nn4:?)-);S*. % 0 0G 5!V$,,Q77DD11H.....r0   c                 \   | j         }| j                                         }|j        j        }|j        j        }t          j        ||fi |}| j                             | j                  }|                    | j                  }t          rdnd}t          |j        |j        |           d S Nrg   gvIh%<=r)  )rc   _get_init_kwdsr   
orig_endog	orig_exogr   r(   rd   r3  r   r   r   	r4   mod1r   r-   r  model2res1res2r!  s	            r.   test_init_keys_replicatez,SARIMAXCoverageTest.test_init_keys_replicateH  s    z**,,	$y"7777z  !122}}T-..#.tt$(666666r0   )rw   N)rS   rT   rU   rW   r/   r5   rw  r  r  pytestmark
matplotlibr  rH  r  rX   r0   r.   r`  r`    s        < < < [<,
 
 
	/ 	/ 	/!* !* !*F- - - [' ' '
*/ */ */X7 7 7 7 7r0   r`  c                   .     e Zd Ze fd            Z xZS )Test_arc                 Z    d|d<    t          t          |           j        dg|R i | d S )Nrz   r   r   r   r   )r   r  r/   r,   r   r   r   s      r.   r/   zTest_ar.setup_classZ  ?    #w'gs';D;;;F;;;;;r0   rS   rT   rU   rW   r/   r   r   s   @r.   r  r  V  D         < < < < [< < < < <r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_as_polynomialc                 d    g dddf|d<    t          t          |           j        dg|R i | d S )Nr   r   r   )r   r  r/   r  s      r.   r/   z!Test_ar_as_polynomial.setup_classd  sK    $99a+w5#S))5aI$III&IIIIIr0   r  r   s   @r.   r  r  `  M         J J J J [J J J J Jr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_trend_cc                     d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d         z  | j        d<   d S )Nr  r   r   r   r   rw   r   )r   r  r/   r3  sumr,   r   r   tpsr   s       r.   r/   zTest_ar_trend_c.setup_classn  s{    #ww/os##/CDCCCFCCC o#ac(,,..0CF:r0   r  r   s   @r.   r  r  j  sD         ; ; ; ; [; ; ; ; ;r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_trend_ctc                     d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d d         z  | j        d d<   d S )Nr  r   ctr   r   r   r  )r   r  r/   r3  r  r  s       r.   r/   zTest_ar_trend_ct.setup_class}  s    #ww0$$0DTDDDVDDD o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r  y  D         = = = = [= = = = =r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_trend_polynomialc                     d|d<   g d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d d         z  | j        d d<   d S )	Nr  r   r   r   rz   r   r   r  )r   r  r/   r3  r  r  s       r.   r/   z$Test_ar_trend_polynomial.setup_class  s    #w&,,w8&,,8LTLLLVLLL o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r    r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_diffc                 Z    d|d<    t          t          |           j        dg|R i | d S )N)rz   r   r   r   rw   )r   r  r/   r  s      r.   r/   zTest_ar_diff.setup_class  s?    #w,lC  ,Q@@@@@@@@@r0   r  r   s   @r.   r  r    sM         A A A A [A A A A Ar0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r   r   rw   r   r  )r   r  r/   r  s      r.   r/   z!Test_ar_seasonal_diff.setup_class  sK    #w#/ 5#S))5aI$III&IIIIIr0   r  r   s   @r.   r  r    sM         J J J J [J J J J Jr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_diffusec                 n    d|d<   d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r       eAr      )r   r  r/   r  s      r.   r/   zTest_ar_diffuse.setup_class  sU    #w#8 %(!"/os##/CDCCCFCCCCCr0   r  r   s   @r.   r  r    sM         D D D D [D D D D Dr0   r  c                   4     e Zd Ze fd            Zd Z xZS )Test_ar_no_enforcec                     d|d<   d|d<   d|d<   d|d<   d|d	<    t          t          |           j        d
g|R i | d| j        j        _        d S )Nr  r   Frr  rs  r  r   r   loglikelihood_burnr  )r   r  r/   rc   ssmr  r  s      r.   r/   zTest_ar_no_enforce.setup_class  sz    #w).%&*/&'%(!"'(#$2 #&&21FtFFFvFFF ,-	(((r0   c                    | j         }| j                                         }|j        j        }|j        j        }t          j        ||fi |}|j        j        |j        _        | j         	                    | j
                  }|	                    | j
                  }t          rdnd}t          |j        |j        |           d S r  )rc   r  r   r  r  r   r(   r  r   rd   r3  r   r   r   r  s	            r.   r  z+Test_ar_no_enforce.test_init_keys_replicate  s    z**,,	$y"7777$(H$;
!z  !122}}T-..#.tt$(666666r0   )rS   rT   rU   rW   r/   r  r   r   s   @r.   r  r    sS         	- 	- 	- 	- [	-7 7 7 7 7 7 7r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ar_exogenousc                     d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr  r   r   r     )r   ri  r#   floorr   r  r/   r,   r   r   r-   r   s       r.   r/   zTest_ar_exogenous.setup_class  sc    #w)"(5//1A5v1%%1!EdEEEfEEEEEr0   r  r   s   @r.   r  r    sM         F F F F [F F F F Fr0   r  c                   :     e Zd Ze fd            Zd Zd Z xZS )Test_ar_exogenous_in_statec                    d|d<   t           j        }|t          j        |          z
  dz  |d<   d|d<    t	          t
          |           j        dg|R i | | j        d         | _        | j        d	d          | _        d S )
Nr  r   r   r  Fr1  r  r   r   )	r   ri  r#   r  r   r  r/   r3  true_regression_coefficientr  s       r.   r/   z&Test_ar_exogenous_in_state.setup_class  s    #w)"(5//1A5v#( :(#..:1NtNNNvNNN*-/!*<'/!""-r0   c                     | j                             | j                  | _        t	          | j        j        | j        d           d S )Nr   r>   )rc   rd   r3  rx   r   r   rl  r3   s    r.   r5   z'Test_ar_exogenous_in_state.test_loglike  sO     j''(899KO	
 	
 	
 	
 	
 	
r0   c                     | j                             | j                  | _        t	          | j        j        j        d         d         | j        | j                   d S )Nrz   r   )	rc   rd   r3  rx   r   rj   rk   r  rn  r3   s    r.   test_regression_coefficientz6Test_ar_exogenous_in_state.test_regression_coefficient  sZ     j''(899K&5a8<,L	
 	
 	
 	
 	
r0   )rS   rT   rU   rW   r/   r5   r  r   r   s   @r.   r  r    sb         . . . . [.	
 	
 	


 

 

 

 

 

 

r0   r  c                   .     e Zd Ze fd            Z xZS )Test_mac                 Z    d|d<    t          t          |           j        dg|R i | d S )Nr   r   rz   r      )r   r  r/   r  s      r.   r/   zTest_ma.setup_class  r  r0   r  r   s   @r.   r  r    r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_as_polynomialc                 d    ddg df|d<    t          t          |           j        dg|R i | d S )Nr   r   r   r  )r   r  r/   r  s      r.   r/   z!Test_ma_as_polynomial.setup_class  sK    a+w5#S))5aI$III&IIIIIr0   r  r   s   @r.   r  r    r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_trend_cc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r   	   )r   r  r/   r  s      r.   r/   zTest_ma_trend_c.setup_class#  sH    #ww/os##/CDCCCFCCCCCr0   r  r   s   @r.   r  r    sM         D D D D [D D D D Dr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_trend_ctc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r  r   rp  )r   r  r/   r  s      r.   r/   zTest_ma_trend_ct.setup_class.  sI    #ww0$$0EdEEEfEEEEEr0   r  r   s   @r.   r  r  *  M         F F F F [F F F F Fr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_trend_polynomialc                 h    d|d<   g d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r   r  )r   r  r/   r  s      r.   r/   z$Test_ma_trend_polynomial.setup_class9  sM    #w&,,w8&,,8MdMMMfMMMMMr0   r  r   s   @r.   r  r  5  sM         N N N N [N N N N Nr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_diffc                 Z    d|d<    t          t          |           j        dg|R i | d S )N)r   r   rz   r   r]   )r   r  r/   r  s      r.   r/   zTest_ma_diff.setup_classD  s?    #w,lC  ,RA$AAA&AAAAAr0   r  r   s   @r.   r  r  @  sM         B B B B [B B B B Br0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r  r      )r   r  r/   r  s      r.   r/   z!Test_ma_seasonal_diff.setup_classN  K    #w#/ 5#S))5bJ4JJJ6JJJJJr0   r  r   s   @r.   r  r  J  M         K K K K [K K K K Kr0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_diffusec                 n    d|d<   d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r   r  r      )r   r  r/   r  s      r.   r/   zTest_ma_diffuse.setup_classY  sU    #w#8 %(!"/os##/DTDDDVDDDDDr0   r  r   s   @r.   r  r  U  sM         E E E E [E E E E Er0   r  c                   .     e Zd Ze fd            Z xZS )Test_ma_exogenousc                     d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr  r   r   r  rJ  )r   ri  r#   r  r   r  r/   r  s       r.   r/   zTest_ma_exogenous.setup_classe  sc    #w)"(5//1A5v1%%1"FtFFFvFFFFFr0   r  r   s   @r.   r  r  a  M         G G G G [G G G G Gr0   r  c                   .     e Zd Ze fd            Z xZS )	Test_armac                 Z    d|d<    t          t          |           j        dg|R i | d S )N)rz   r   rz   r      )r   r  r/   r  s      r.   r/   zTest_arma.setup_classq  s?    #w)i)">t>>>v>>>>>r0   r  r   s   @r.   r  r  m  sD         ? ? ? ? [? ? ? ? ?r0   r  c                   .     e Zd Ze fd            Z xZS )Test_arma_trend_cc                     d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d d         z  | j        d d<   d S )Nrz   r   r   r   r   r      r   rw   )r   r  r/   r3  r  r  s       r.   r/   zTest_arma_trend_c.setup_class{  s    #ww1%%1"FtFFFvFFF o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r  w  r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_arma_trend_ctc                     d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d d         z  | j        d d<   d S )	Nr  r   r  r      r   r   r  )r   r  r/   r3  r  r  s       r.   r/   zTest_arma_trend_ct.setup_class  s    #ww2 #&&22GGGGGGG o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r    r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_arma_trend_polynomialc                     d|d<   g d|d<    t          t          |           j        dg|R i | | j        }d|dd                                         z
  |d d         z  | j        d d<   d S )	Nr  r   r   r      r   r   r  )r   r  r/   r3  r  r  s       r.   r/   z&Test_arma_trend_polynomial.setup_class  s    #w&,,w:(#..:2OOOOOOO o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r    r  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_arma_diffc                 Z    d|d<    t          t          |           j        dg|R i | d S )Nrz   r   r   r   r  )r   r   r/   r  s      r.   r/   zTest_arma_diff.setup_class  s?    #w.nc"".rCDCCCFCCCCCr0   r  r   s   @r.   r   r     sM         D D D D [D D D D Dr0   r   c                   .     e Zd Ze fd            Z xZS )Test_arma_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r  r      )r   r$  r/   r  s      r.   r/   z#Test_arma_seasonal_diff.setup_class  K    #w#/ 7%s++7LTLLLVLLLLLr0   r  r   s   @r.   r$  r$    M         M M M M [M M M M Mr0   r$  c                   .     e Zd Ze fd            Z xZS )Test_arma_diff_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr"  r   r  r      )r   r*  r/   r  s      r.   r/   z(Test_arma_diff_seasonal_diff.setup_class  s`    #w#/ <*C00<	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r*  r*    D         ! ! ! ! [! ! ! ! !r0   r*  c                   .     e Zd Ze fd            Z xZS )Test_arma_diffusec                 n    d|d<   d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr  r   r   r   r  r      )r   r/  r/   r  s      r.   r/   zTest_arma_diffuse.setup_class  sV    #w#8 %(!"1%%1"FtFFFvFFFFFr0   r  r   s   @r.   r/  r/    r  r0   r/  c                   .     e Zd Ze fd            Z xZS )Test_arma_exogenousc                     d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr  r   r   r     )r   ri  r#   r  r   r3  r/   r  s       r.   r/   zTest_arma_exogenous.setup_class  sc    #w)"(5//1A5v3!3''3BHHHHHHHHHr0   r  r   s   @r.   r3  r3    sM         I I I I [I I I I Ir0   r3  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr   r   r   r   rz   r   r   rw   r      )r   r7  r/   r  s      r.   r/   zTest_seasonal_ar.setup_class  K    #w#/ 0$$0EdEEEfEEEEEr0   r  r   s   @r.   r7  r7    r  r0   r7  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_as_polynomialc                 p    d|d<   g ddddf|d<    t          t          |           j        dg|R i | d S )Nr9  r   r   r   rw   r   r;  )r   r>  r/   r  s      r.   r/   z*Test_seasonal_ar_as_polynomial.setup_class  sm    #w$-IIq!Q#7 >,c22>	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r>  r>    r-  r0   r>  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_trend_cc                     d|d<   d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd	                                         z
  |d d         z  | j        d d<   d S )
Nr9  r   r:  r   r   r      r   rw   )r   rA  r/   r3  r  r  s       r.   r/   z$Test_seasonal_ar_trend_c.setup_class  s    #w#/ w8&,,8MdMMMfMMM o 3qs8<<>>1S!W<r0   r  r   s   @r.   rA  rA    D         = = = = [= = = = =r0   rA  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_trend_ctc                     d|d<   d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|d	d
                                         z
  |d d	         z  | j        d d	<   d S )Nr9  r   r:  r   r  r      r   r   r  )r   rF  r/   r3  r  r  s       r.   r/   z%Test_seasonal_ar_trend_ct.setup_class  s    #w#/ w9'--9"NtNNNvNNNo 3qs8<<>>1S!W<r0   r  r   s   @r.   rF  rF    r  r0   rF  c                   .     e Zd Ze fd            Z xZS )!Test_seasonal_ar_trend_polynomialc                     d|d<   d|d<   g d|d<    t          t          |           j        dg|R i | | j        }d|d	d
                                         z
  |d d	         z  | j        d d	<   d S )Nr9  r   r:  r   r   r      r   r   r  )r   rJ  r/   r3  r  r  s       r.   r/   z-Test_seasonal_ar_trend_polynomial.setup_class  s    #w#/ &,,wA/55A	!	! 	! 	!	! 	! 	! o 3qs8<<>>1S!W<r0   r  r   s   @r.   rJ  rJ    D         	= 	= 	= 	= [	= 	= 	= 	= 	=r0   rJ  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr   r   r   r   r:  r      )r   rO  r/   r  s      r.   r/   z!Test_seasonal_ar_diff.setup_class(  r  r0   r  r   s   @r.   rO  rO  $  r  r0   rO  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   )rz   r   r   rw   r      )r   rT  r/   r  s      r.   r/   z*Test_seasonal_ar_seasonal_diff.setup_class3  `    #w#/ >,c22>	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   rT  rT  /  r-  r0   rT  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_diffusec                 x    d|d<   d|d<   d|d<   d|d<    t          t          |           j        d	g|R i | d S )
Nr9  r   r:  r   r   r   r  r      )r   rY  r/   r  s      r.   r/   z$Test_seasonal_ar_diffuse.setup_class?  a    #w#/ #8 %(!"8&,,8MdMMMfMMMMMr0   r  r   s   @r.   rY  rY  ;  M         N N N N [N N N N Nr0   rY  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ar_exogenousc                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr9  r   r:  r   r   r      )r   ri  r#   r  r   r_  r/   r  s       r.   r/   z&Test_seasonal_ar_exogenous.setup_classL  n    #w#/ )"(5//1A5v:(#..:2OOOOOOOOOr0   r  r   s   @r.   r_  r_  H  M         P P P P [P P P P Pr0   r_  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_mac                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   r   r   rz   rw   r   !   )r   re  r/   r  s      r.   r/   zTest_seasonal_ma.setup_classY  r<  r0   r  r   s   @r.   re  re  U  r  r0   re  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_as_polynomialc                 p    d|d<   ddg ddf|d<    t          t          |           j        dg|R i | d S )Nr9  r   r   r   rw   r   rh  )r   rj  r/   r  s      r.   r/   z*Test_seasonal_ma_as_polynomial.setup_classd  sm    #w$%q)))Q#7 >,c22>	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   rj  rj  `  r-  r0   rj  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_trend_cc                 x    d|d<   d|d<   d|d<   d|d<    t          t          |           j        d	g|R i | d S )
Nr9  r   rg  r   r   r   rz   rn  "   )r   rm  r/   r  s      r.   r/   z$Test_seasonal_ma_trend_c.setup_classp  s^    #w#/ wy8&,,8MdMMMfMMMMMr0   r  r   s   @r.   rm  rm  l  r]  r0   rm  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_trend_ctc                 n    d|d<   d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   rg  r   r  r   #   )r   rq  r/   r  s      r.   r/   z%Test_seasonal_ma_trend_ct.setup_class}  sT    #w#/ w9'--9"NtNNNvNNNNNr0   r  r   s   @r.   rq  rq  y  sM         O O O O [O O O O Or0   rq  c                   .     e Zd Ze fd            Z xZS )!Test_seasonal_ma_trend_polynomialc                 |    d|d<   d|d<   g d|d<   d|d<    t          t          |           j        d	g|R i | d S )
Nr9  r   rg  r   r   r   rz   rn  $   )r   ru  r/   r  s      r.   r/   z-Test_seasonal_ma_trend_polynomial.setup_class  sw    #w#/ &,,wyA/55A	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   ru  ru    D         ! ! ! ! [! ! ! ! !r0   ru  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )NrQ  r   rg  r   %   )r   rz  r/   r  s      r.   r/   z!Test_seasonal_ma_diff.setup_class  r  r0   r  r   s   @r.   rz  rz    r  r0   rz  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   )r   r   rz   rw   r   &   )r   r~  r/   r  s      r.   r/   z*Test_seasonal_ma_seasonal_diff.setup_class  rW  r0   r  r   s   @r.   r~  r~    r-  r0   r~  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_diffusec                 x    d|d<   d|d<   d|d<   d|d<    t          t          |           j        d	g|R i | d S )
Nr9  r   rg  r   r   r   r  r   '   )r   r  r/   r  s      r.   r/   z$Test_seasonal_ma_diffuse.setup_class  r\  r0   r  r   s   @r.   r  r    r]  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_ma_exogenousc                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr9  r   rg  r   r   r  (   )r   ri  r#   r  r   r  r/   r  s       r.   r/   z&Test_seasonal_ma_exogenous.setup_class  rb  r0   r  r   s   @r.   r  r    rc  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_armac                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   rz   r   r   rw   r   )   )r   r  r/   r  s      r.   r/   zTest_seasonal_arma.setup_class  sK    #w#/ 2 #&&22GGGGGGGGGr0   r  r   s   @r.   r  r    sM         H H H H [H H H H Hr0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arma_trend_cc                     d|d<   d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|dd	                                         z
  |d d         z  | j        d d<   d S )
Nr9  r   r  r   r   r   *   r   rw   )r   r  r/   r3  r  r  s       r.   r/   z&Test_seasonal_arma_trend_c.setup_class  s    #w#/ w:(#..:2OOOOOOO o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r    rD  r0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arma_trend_ctc                     d|d<   d|d<   d|d<    t          t          |           j        dg|R i | | j        }d|d	d
                                         z
  |d d	         z  | j        d d	<   d S )Nr9  r   r  r   r  r   +   r   r   r  )r   r  r/   r3  r  r  s       r.   r/   z'Test_seasonal_arma_trend_ct.setup_class  s    #w#/ w;)3//;	!	! 	! 	!	! 	! 	! o 3qs8<<>>1S!W<r0   r  r   s   @r.   r  r    rM  r0   r  c                   4     e Zd Ze fd            Zd Z xZS )#Test_seasonal_arma_trend_polynomialc                     d|d<   d|d<   g d|d<   d|d<    t          t          |           j        d	g|R i | | j        }d
|dd                                         z
  |d d         z  | j        d d<   d S )Nr9  r   r  r   r   r   rz   rn  ,   r   r   r  )r   r  r/   r3  r  r  s       r.   r/   z/Test_seasonal_arma_trend_polynomial.setup_class  s    #w#/ &,,wyC1377C	!	! 	! 	!	! 	! 	! o 3qs8<<>>1S!W<r0   c                     | j                             | j                  | _        | j                                         | j        j         | j        j         | j        j         d S r2   rc   rd   r3  rx   r  r  r   r  r3   s    r.   r  z0Test_seasonal_arma_trend_polynomial.test_results  ]    j''(899 	 	&& 	""""""r0   rS   rT   rU   rW   r/   r  r   r   s   @r.   r  r    sS         
= 
= 
= 
= [
=# # # # # # #r0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arma_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )NrQ  r   r  r   -   )r   r  r/   r  s      r.   r/   z#Test_seasonal_arma_diff.setup_class  r'  r0   r  r   s   @r.   r  r    r(  r0   r  c                   .     e Zd Ze fd            Z xZS ) Test_seasonal_arma_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )Nr9  r   rz   r   r   rw   r   .   )r   r  r/   r  s      r.   r/   z,Test_seasonal_arma_seasonal_diff.setup_class   s`    #w#/ @.44@	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r  r    r-  r0   r  c                   4     e Zd Ze fd            Zd Z xZS )%Test_seasonal_arma_diff_seasonal_diffc                 d    d|d<   d|d<    t          t          |           j        dg|R i | d S )NrQ  r   r  r   /   )r   r  r/   r  s      r.   r/   z1Test_seasonal_arma_diff_seasonal_diff.setup_class,  s`    #w#/ E3S99E	!	! 	! 	!	! 	! 	! 	! 	!r0   c                     | j                             | j                  | _        | j                                         | j        j         | j        j         | j        j         d S r2   r  r3   s    r.   r  z2Test_seasonal_arma_diff_seasonal_diff.test_results3  r  r0   r  r   s   @r.   r  r  (  sS         ! ! ! ! [!# # # # # # #r0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arma_diffusec                     d|d<   d|d<   d|d<   d|d<   d	|d
<    t          t          |           j        dg|R i | d S )Nr9  r   r  r   rz   rn  r   r   r  r   0   )r   r  r/   r  s      r.   r/   z&Test_seasonal_arma_diffuse.setup_classG  sk    #w#/ y#8 %(!":(#..:2OOOOOOOOOr0   r  r   s   @r.   r  r  C  sM         P P P P [P P P P Pr0   r  c                   .     e Zd Ze fd            Z xZS )Test_seasonal_arma_exogenousc                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr9  r   r  r   r   r  1   )r   ri  r#   r  r   r  r/   r  s       r.   r/   z(Test_seasonal_arma_exogenous.setup_classU  s    #w#/ )"(5//1A5v<*C00<	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r  r  Q  rx  r0   r  c                   4     e Zd Ze fd            Zd Z xZS )Test_sarimax_exogenousc                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<    t	          t
          |           j        dg|R i | d S )Nr"  r   r  r   r   r  2   )r   ri  r#   r  r   r  r/   r  s       r.   r/   z"Test_sarimax_exogenous.setup_classc  sn    #w#/ )"(5//1A5v6$c**6rKDKKKFKKKKKr0   c                 T   | j                             | j                  }t          | j        dd         |j                   t          | j        dd         |j                   t          | j        dd         |j                   t          | j        dd         |j                   d S )Nr   rw   r  r  r  )rc   rd   r3  r   arparamsmaparamsseasonalarparamsseasonalmaparamsr   s     r.   test_results_paramsz*Test_sarimax_exogenous.test_results_paramsk  s    ""4#344(1-v???(1-v???(1-v/FGGG(2.0GHHHHHr0   )rS   rT   rU   rW   r/   r  r   r   s   @r.   r  r  _  s_         L L L L [LI I I I I I Ir0   r  c                   .     e Zd Ze fd            Z xZS )#Test_sarimax_exogenous_not_hamiltonc                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<   d|d<   d|d	<    t	          t
          |           j        d
g|R i | d S )Nr"  r   r  r   r   r  Fr   r   r  )r   ri  r#   r  r   r  r/   r  s       r.   r/   z/Test_sarimax_exogenous_not_hamilton.setup_classw  s    #w#/ )"(5//1A5v,1()(-$%C1377C	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r  r  s  sD         ! ! ! ! [! ! ! ! !r0   r  c                   .     e Zd Ze fd            Z xZS )Test_sarimax_exogenous_diffusec                     d|d<   d|d<   t           j        }|t          j        |          z
  dz  |d<   d|d<   d|d	<   d
|d<    t	          t
          |           j        dg|R i | d S )Nr"  r   r  r   r   r  rn  r   r   r  r   3   )r   ri  r#   r  r   r  r/   r  s       r.   r/   z*Test_sarimax_exogenous_diffuse.setup_class  s    #w#/ )"(5//1A5vy#8 %(!">,c22>	!	! 	! 	!	! 	! 	! 	! 	!r0   r  r   s   @r.   r  r    sD        
 	! 	! 	! 	! [	! 	! 	! 	! 	!r0   r  c                   .     e Zd Ze fd            Z xZS )'Test_arma_exog_trend_polynomial_missingc                    t           j        t          j                 }|t          j        |          z
  dz  dd          |d<   t           j        |dd<   |dd          |d d         z
  }t           j        |d<   d|d<   g d	|d
<   d|d<    t          t          |           j        dg|R d|i| | j	        }d|dd         
                                z
  |d         z  | j	        d<   d S )Nr   r   r  r  r  r   r  r   r   r   r   r   r   rn  4   r-   r  r   )r#   r   r   ri  r  nanr   r  r/   r3  r  )r,   r   r   r-   r  r   s        r.   r/   z3Test_arma_exog_trend_polynomial_missing.setup_class  s
   o/0 28E??2Q6;vfadabb	E#2#J&6a#w&,,wyG5s;;G	."	. 	. 	.	.&,	. 	. 	. o#ac(,,..0CF:r0   r  r   s   @r.   r  r    sD         ; ; ; ; [; ; ; ; ;r0   r  c                     t          j        d          dz  } d| z  }t          j        | |ddd          }t	          j                    5  t	          j        d           |                    d	
          }d d d            n# 1 swxY w Y   t          |j	        ddgd           t          |j
        j        d         dd          dgdz  d           d S )Nd         ?r   r9  TF)r  r   time_varying_regressionr1  r   r   r   r   r  r   rF   c   r  )r#   aranger   r(   r   r   r   r*   r   r%   rj   rk   )r-   r  modress       r.   test_simple_time_varyingr    s    IcNN3EU7D
/ $  C 
	 	"	"  h'''gg2g               
QFA... *9!<QRR@3%(ANNNNNs   	+B  BBc                  P    t          t          t          j        g ddd           d S )N)r   r   rz   T)r-   r1  r  )r   
ValueErrorr   r(   rX   r0   r.   test_invalid_time_varyingr    s8    ii $& & & & & &r0   c                     t           j        } t          j        | d          }|                    g d          }t          j        | d          }|j                            |j        j        |j        j	                   |                    g d          }t          j        | dd|j        j        |j        j	                  }|                    g d          }t          j        | dd          }|                    g d          }t          |j        |j                   t          |j        j        |j        j                   t          |j        |j                   t          |j        j        |j        j                   t          |j        |j                   t          |j        j        |j        j                   d S )Nr  r   rF   r5  r   r   knownr   r   initial_stateinitial_state_cov
stationary)r   r   )r   ri  r   r(   rd   r  initialize_knownrj   r  r  r   r   rk   	r-   r  r  mod2r  mod3res3mod4res4s	            r.   %test_manual_stationary_initializationr    s   %E ?5	222D;;)))**D ?5	222DHd1?"1CE E E;;)))**D ?Y)7-?	A A AD
 ;;)))**D ?5	,OOOD;;)))**D $(++++:+:< < < $(++++:+:< < < $(++++:+:< < < < <r0   c                     t           j        } t          j        | d          }|j                            d           |                    g d          }t          j        | d          }|j                            |j        j	        |j        j
                   |                    g d          }t          j        | dd|j        j	        |j        j
                  }|                    g d          }t          j        | ddd          }|                    g d          }t          |j        |j                   t          |j        j        |j        j                   t          |j        |j                   t          |j        j        |j        j                   t          |j        |j                   t          |j        j        |j        j                   d S )	Nr  r  r  r  r  r  r   )r   r   r   )r   ri  r   r(   r  initialize_approximate_diffuserd   r  rj   r  r  r   r   rk   r  s	            r.   .test_manual_approximate_diffuse_initializationr    s   %E ?5	222DH++C000;;)))**D ?5	222DHd1?"1CE E E;;)))**D ?Y)7-?	A A AD
 ;;)))**D ?5	*?,/1 1 1D ;;)))**D $(++++:+:< < < $(++++:+:< < < $(++++:+:< < < < <r0   c                     t           j        } t          j        | d          }|                    g dd          }t          |j        d           t          |j        d           t          |j        t          j
        dd          dt          j        z  z             t          |j        t          j
        dd          dt          j        z  z             t          |j        d	g           t          |j        d
g           d S )Nr  r  )rF         r   oim)r          @r   r   rF   r  )r   ri  r   r(   rd   r   arrootsmarootsarfreqr#   arctan2pimafreqr  r  )r-   r  r  s      r.   r  r  $  s    %E
/%y
1
1
1C
**^^^e*
4
4CR(((R(((
BJq!$4$4"%$@AAA
BJq!$4$4"%$@AAAse,,,tf-----r0   c                  :   d} d}t           j                            d           t           j                            | |f          }t           j        |d ddf<   t           j                            | df          }t           j                            | df          }t          j        dd	| 
          }t          j        ||          }t          j        |	                                |          }t          j        ||          }t          j        ||d          t          j        ||d          t          j        ||dd          t          j        ||d          t          j        ||d          t          j        ||dd          g}	|	D ]R}
|
j         |
                    d          }|                                 |                                 |                    d           |                                 t           j                            d|
j        f          }|                    d|           |                    d|           t           j                            d|
j        f          }t)          t*          |j        d|           t           j                            d|
j        dz   f          }t)          t*          |j        d|           Tt)          t*          t          j        |t          j        d          d           d S )Nr  r   i  sizerw   r   r   z
1970-01-01QSfreqperiodsindexr   r   r   r  F)r  r   r   r   TrK  )stepsr  )rp  rw   )r#   randomseednormalr  pd
date_range	DataFrameSeriessqueezer   r(   rt  r*   r  rG  get_predictionr  rY  get_forecastr   r  zeros)r  k_endogr-   exog1exog2r  endog_pdexog1_pdexog2_pdmodelsr  r  oos_exogs                r.   test_misc_exogr  4  s   DGINN4I4/22E6E"1"a%LI4),,EI4),,EM,T4@@@E|E///Hy666H|E///H 	E;;;E;;;E,1	3 	3 	3xyAAAxyAAAxy,1	3 	3 	3	F  H Hgg5g!!D!!!9##!SZ#9918,,,qx000 9##!SZ#99j#,ahGGGG9##!SZ!^)<#==j#,ahGGGGG *gou28G;L;L!# # # # # #r0   c                  &   t           j                            d           t           j                            ddd          } t           j                            ddd          }t	          j        | |d          }|                    d	           d S )
Ni r   rF   r  r  r   r   r   r  r   r   )r#   r  r   binomialr   r(   r*   )r-   r  r  s      r.   test_datasetsr  g  s     INN6Iq#C00E9a3//D
/%d)
<
<
<CGGGr0   c                     t           j                            d           t          j        t           j                            d                    } t          j        | d          }|                    |j	                  }|
                    dddg          }t          |j                            t          j        dg                    d	           d S )
N r  r  r  r  r   a)r  rX  r  T)r#   r  r   r  r  r  r   r(   smoothrt  rG  r   r  equalsIndex)r-   r  r  outs       r.   test_predict_custom_indexr  r  s    INN6L))r)2233E
/%y
1
1
1C
**S%
&
&C
++A1SE+
2
2C!!"(C5//22D99999r0   c                     t           j                            d           d} t          j        t           j                            |                     }t          j        |dd          }|                    |j	                  }t          |j        |j                   t          j        |dd          }|                    |j	                  }t          |j        dd dd f         |                                dd          j                   t           j                            |           }t          j        |           d	z  |z   }t          j        |           }t          j        |d|
          }d|j        _        |                    ddg          }t          |j        d         |d           t          j        |d|d          }d|j        _        |                    ddgt          j        ddg                     |                    dg          }t          |j        d         |d           t          |j        d         d	d           t          j        |d|dd          }d|j        _        |                    dgt          j        dg                     |                    ddg          }t          |j        d         d	d           d S )Nr  r  r  r9  F)r   measurement_error)r   r   r   r   rp  )r   r  Tr-  r  r   g|=r>   )r   r  r1          )r   r  r1  r  )r#   r  r   r  r  r  r   r(   r  rt  r   smoothed_stateTra   r"  r  filter_univariater  diag)r  r-   r  r  errorr  s         r.   test_arima000r'  {  s    INN6DL))t)4455E
/%yE
J
J
JC
**S%
&
&CC&000 /%yE
J
J
JC
**S%
&
&CC&qrr122v.

QRR0@0BCCC I$''EGDMMB&E74==D /%yt
<
<
<C $CG
**c2Y

CC&q)5u==== /%yt).0 0 0C $CG"cBGRH$5$5666
**bT

CC&q)5u====C&q)2E:::: /%yt).N N NC $CG#...
**b"X

CC&q)2E::::::r0   Fc           	         t          j        t          j                  }ddg}ddg}ddg}d t          j        |          g}d dg}ddg}ddg}dd l}	g d	}
|	                    |||||||          D ]}t          t          |
|                    }|	                    d
d          rd|d<   d|d<   t          j        |fi |}t          j        |fddi|}| |j        _        | |j        _        |j        }|                    |          }t           j        |df         }d}|d
         r|d         |dz  }|d         r|dz  }d}|d         s|d
         rd}t           j        |d |          |j        || d          z  f         }|                    |          }t%          |j        |j        |           |j        j        D ]?}|dk    r	t%          t+          |j        |          t+          |j        |                     @|j        }g d}|D ]>}t+          |j        |          }t+          |j        |          }t%          |||           ?g d}|j        j                                        |j        j        k    }t           j        | | d d f         }|D ]}}t+          |j        |          d|d f         }t+          |j        |          d|d f         }|dv r'|d
         rt%          ||         ||         |           kt%          |||           ~g d}|D ]}}t+          |j        |          d|d f         }t+          |j        |          d|d f         }|dv r'|d
         rt%          ||         ||         |           kt%          |||           ~g d}|D ]4}t+          ||          }t+          ||          }t%          |||           5|                    d          }|                    d          }t%          ||d|           |                    d          }|                    d          }t%          ||d|           |                    d           }|                    d           }t%          ||d|           d }|d         !t          j        d!|j         z
  dz   df          }|!                    d"d!d#|$          }|!                    d"d!d#|$          }t%          |j"        |j"        |           t%          |j#        |j#        |           t           j$        %                    d%           |j        j&        rt           j$        '                    d#&          } t           j$        '                    d#&          }!t           j$        '                    |j(        df&          }"|)                    d#| |!|"          }|)                    d#| |!|"          }t%          |||           |j        j&        r<|*                    d#          }|*                    d#          }t%          |||           d S )'Nr  r   r   r   r   r   r   r   r   r   r   rw   TFtr   r  r   r   r   r   r  r   r  r1  	toleranceconcentrate_scaler   r  r   rG   rp   r>   obs)predicted_staterk   	forecastsforecasts_errorkalman_gain)llf_obsrq   predicted_state_covfiltered_state_covtmp1tmp2tmp3tmp4.)r6  r7  )r"  smoothed_state_covsmoothed_state_autocovsmoothed_state_disturbancesmoothed_state_disturbance_cov smoothed_measurement_disturbance$smoothed_measurement_disturbance_covscaled_smoothed_estimatorscaled_smoothed_estimator_covsmoothing_errorsmoothed_forecastssmoothed_forecasts_errorsmoothed_forecasts_error_cov)r<  r=  )r    r!   r"   r  
jarquebera)r  )r!  r?   breakvarljungbox   r  rp  r  i6  r  )+r#   ra   r   ri  	ones_like	itertoolsproductr2  zipgetr   r(   r  r$  rt  r  r   scaler   r   shapesgetattrrj   r  r  rI   r   s_test_normalitytest_heteroskedasticitytest_serial_correlationr"  r  r  predicted_meanse_meanr  r   time_invariantr  k_statessimulateimpulse_responses)#r$  r-   ordersseasonal_orderssimple_differencingsexogstrendstime_varying_regressionsmeasurement_errorsrM  nameselementr   mod_origmod_concconc_paramsres_concorig_paramsk_snrr?   res_orignamedfilter_attractualdesiredfilter_attr_burndiffuse_maskixsmoothed_attroutputr  measurement_shocksstate_shocksr  s#                                      r.   check_concentrated_scalerz    s   GO-..E#F#\2O %=2<&&'EC[F $e}? ? ?E$$UFOV%7%=%9; ; o8 o8 c%))**::/77 	-',F#$  {?533F33?5KKDKFKK):&):& +??;// eKN+ +, 	1KQJE %& 	QJE%& 	&1J*K 	DeK%0$N[%-AAB C??;// 	hl>>>> L' 	D 	DDu}}GH$;TBB#H$;TBBD D D D '9 9 9   	8 	8DX4d;;Fh5t<<GFG$77777
< < <
 !/AJJLL 56UL=<-23$ 
	< 
	<DX4d;;CGDFh5t<<S!""WEG EEE45 Fr
GBKdCCCCCd;;;;;	9 	9 	9 " 	< 	<DX4d;;CGDFh5t<<S!""WEGHHH45 Ir
GBKdCCCCCd;;;;; >== 	8 	8DXt,,Fh--GFG$77777 (((==)))>>d>>>>111DD22*2EEd>>>>111DD22*2EEd>>>> &>%7C(-/!3Q788D((sR.2 ) 4 4))b/3 * 5 5-w/E!	# 	# 	# 	#dCCCC
 		u<& 	8!#!1!1r!1!:!:9+++44LI,,83Da2H,IIM&&r+=|'46 6F'',>(57 7GFG$7777 <& 	8//33F0044GFG$7777_o8 o8r0   c                  F    t          d           t          d           d S )NF)r$  T)rz  rX   r0   r.   test_concentrated_scaler|  j	  s*    u5555t444444r0   c            	         d} t          j        |           dz  }t          j        |           }t          j        ||d          }|                    g d          }d}t          j        d          }t          j        d          }t          |                    d|	          d           t          |                    d|	          d           t          |                    d|	          d           d
}t          j        |          }t          j        |df          }t          |                    ||	          d           t          |                    ||	          d           t          t          |j        |d	           t          t          |j        |ddg	           t          t          |j        |t          j        |df          	           d S )Nr  r  r  r  )r  r!  r  r  r   )r   r   r  rp  r   )	r#   r"  r   r(   r  r   rY  r   r  )	r  r-   r  r  r  exog_fcast_scalarexog_fcast_1dimexog_fcast_2dimhs	            r.   test_forecast_exogr  p	  s   DGDMMCE74==D
/%d)
<
<
<C
**___
%
%C gajjOgfooOCLL):L;;R@@@CLLL992>>>CLLL992>>> 	AgajjOgq!fooOCLLL992>>>CLLL992>>> *clAB7777*clAQF;;;;*clABGQFOODDDDDDr0   c                 t   g d}g d}|D ]=}t          |           t          t          ||          t          | |                     >|D ]8}t          t          |j        |          t          | j        |                     9t          |                                |                                            d S )N)r   state_errorr1  state_regressionr  r   rr  rs  r   r   rz  r  r{  r  polynomial_trendr}  k_ar_paramsk_diffr  k_ma_paramsseasonal_periodsk_seasonal_ark_seasonal_ar_paramsk_seasonal_diffk_seasonal_mak_seasonal_ma_paramsk_trendr  )r  r
  r[  k_posdefobs_interceptdesignobs_covstate_intercept
transition	selection	state_cov)printr   rS  r  r  )r  r  attrs	ssm_attrsattrs        r.   check_equivalent_modelsr  	  s    	 	 	EN N NI  > >dWT4(('#t*<*<==== F FWTXt,,gcgt.D.DEEEE$$&&(:(:(<(<=====r0   c            	      8   d} t          j        |           dz  }t          j        |           }ddg}ddg}ddg}d t          j        |          g}d d	g}ddg}ddg}	d
d l}
g d}|
                    |||||	||          D ]}t          t          ||                    }|                    dd          rd|d<   |                    dd           }t          j
        |fd|i|}t          j
        |fd|i|                                }t          ||           d S )Nr  r  r  r)  r*  r+  TFr,  r   r-  r  r1  r  )r#   r"  rL  rM  rN  r2  rO  rP  popr   r(   r  r  )r  r-   r  r^  r_  r`  ra  rb  rc  rd  rM  re  rf  r   r  r  s                   r.   test_recreate_modelr  	  sq   DGDMMCE74==D#F#\2O %=2<&&'EC[F $e}? ? ?E$$UFOV%7%=%9; ; + + c%))**::/77 	-',F#$zz&$''oe99$9&99uHH4H33E3E3G3GHHT****+ +r0   c            	      
   t          j        d          } t          j        |           }g d}t          j        | |dd          }|                    |          }t          j        | d d         |d d         dd          }|                    |          }|                    | dd          |dd                    }t          |j        |j                   t          |j
        |j
                   dD ].}t          t          ||          t          ||                     /d	D ].}t          t          ||          t          ||                     /t          |                    d
t          j        d
                    |                    d
t          j        d
                               t          j        t           d          5  |                    | dd                     d d d            d S # 1 swxY w Y   d S )Nr  r  r  r   r  r  r,  r  r   r   r  r  r  r   r5  r  rk   r7  r1  r6  r2  r3  forecasts_error_covrq   forecasts_error_diffuse_covpredicted_diffuse_state_covrB  rC  rD  r"  r<  r=  r@  r>  rA  r?  rp  !Cloning a model with an exogenousmatch)r#   r  rL  r   r(   r  appendr   specificationr   r  rS  rY  r"  r  raisesr  	r-   r  r%   r  r  r  r  r  r  s	            r.   test_append_resultsr  	  s0   IcNNE<DF?5t9CHHHD;;vD?5":D"IY!$& & &D;;vD;;uRSSzRSS	;22D#T%7888D+T-DEEE@ ? ?WT4(('$*=*=>>>>. ? ? 	WT4(('$*=*=>>>>DMM"272;;M77MM"272;;M779 9 9 
z)L	M	M	M    E"##J                                   s   G88G<?G<c            	         t          j        d          } t          j        |           }g d}t          j        | |dd          }|                    |          }t          j        | d d         |d d         dd          }|                    |          }|                    | dd          |dd                    }t          |j        |j        dd                     dD ]>}t          ||          }	|	|	d	dd f         }	t          t          ||          |	           ?t          |                    d
t          j        d
                    |                    d
t          j        d
                               t          j        t          d          5  |                    | dd                     d d d            d S # 1 swxY w Y   d S )Nr  r  r  r,  r  r  r  r  .rp  r  r  r#   r  rL  r   r(   r  extendr   r5  rS  r   rY  r"  r  r  r  
r-   r  r%   r  r  r  r  r  r  rr  s
             r.   test_extend_resultsr  	  s   IcNNE<DF?5t9CHHHD;;vD?5":D"IY!$& & &D;;vD;;uRSSzRSS	;22DDL$,rss"3444. 3 3 $%%c233h'GWT4(('2222DMM"272;;M77MM"272;;M779 9 9 
z)L	M	M	M    E"##J                                   s   GG	G	c            	         t          j        d          } t          j        |           }g d}t          j        | |dd          }|                    |          }t          j        | d d         |d d         dd          }|                    |          }|                    | dd          |dd                    }t          |j        |j        dd                     dD ]>}t          ||          }	|	|	d	d
d f         }	t          t          ||          |	           ?t          |                    dt          j        d          dz            |                    dt          j        d          dz                       t          j        t          d          5  |                    | dd                     d d d            d S # 1 swxY w Y   d S )Nr  r  r  r,  r  r   r  r  .r  rp  r   r  r  r  r  s
             r.   test_extend_by_oner  
  s   IcNNE<DF?5t9CHHHD;;vD?5":D"IY!$& & &D;;vD;;uRSSzRSS	;22DDL$,rss"3444. 3 3 $%%c233h'GWT4(('2222DMM"272;;?M;;MM"272;;?M;;= = = 
z)L	M	M	M    E"##J                                   s    GGGc            	      *   t          j        d          } t          j        |           }g d}t          j        | d d         |d d         dd          }|                    |          }t          j        | dd          |dd          dd          }|                    |          }|                    | d d         |d d                   }t          |j        |j                   t          |j
        |j
                   dD ].}t          t          ||          t          ||                     /d	D ].}t          t          ||          t          ||                     /t          |                    d
t          j        d
                    |                    d
t          j        d
                               t          j        t           d          5  |                    | dd                     d d d            d S # 1 swxY w Y   d S )Nr  r  r  r  r,  r  r  r  r  rp  r  r  )r#   r  rL  r   r(   r  applyr   r  r   r  rS  rY  r"  r  r  r  r  s	            r.   test_apply_resultsr  I
  sG   IcNNE<DF?5":D"IY!$& & &D;;vD?5:DIY!$& & &D;;vD::eCRCjtCRCy:11D#T%7888D+T-DEEE@ ? ?WT4(('$*=*=>>>>. ? ? 	WT4(('$*=*=>>>>DMM"272;;M77MM"272;;M779 9 9 
z)L	M	M	M  

5:                 s   HHHc                     t          j        t          d                                                   dd          j        } t          j        | d d         d          }d}t          j        t          |          5  |j
        }t          |ddddt          j        | d d                   g           d d d            n# 1 swxY w Y   t          j        | d d         d	d
          }d}t          j        t          |          5  |j
        }t          |dt          j        | d d                   g           d d d            d S # 1 swxY w Y   d S )Nr\   r   rw   )rw   r   r   r  zHToo few observations to estimate starting parameters for ARMA and trend.r  r   r9  )r   r   r   rw   )r   r   zGToo few observations to estimate starting parameters for seasonal ARMA.)r#   r_   r`   ra   rb   r   r(   r  warnsUserWarningrt  r   var)r-   r  r  rt  s       r.   test_start_params_small_nobsr  u
  s    F?7+,,1133ABB7>E /%)9
5
5
5CE	k	/	/	/ G G'q!Q26%)3D3D&EFFFG G G G G G G G G G G G G G G
 /%)9)57 7 7CE	k	/	/	/ > >'q"&rr*;*;&<===> > > > > > > > > > > > > > > > > >s$   :7B==CC4EE	E	c            
      h   t          j        t          d                   j        } t	          j        | t	          j        t          t          |                                         }t          j
        |dd          }t          |j                            |j        dd                               d S )Nr\   r  r  Tr   r   r   )r#   r_   r`   rb   r  r  r  rh   rN  r   r(   r
   _indexr  r  rb   r-   r  s      r.   #test_simple_differencing_int64indexr  
  s    VOG,--4FIfBHU3v;;-?-?$@$@AAAE
/%yd
K
K
KCCJek!""o../////r0   c            	      R   t          j        t          d                   j        } t	          j        | t	          j        dt          |                               }t          j	        |dd          }t          |j                            |j        dd                               d S )	Nr\   r   r  stopr  r  Tr  r   )r#   r_   r`   rb   r  r  
RangeIndexrN  r   r(   r
   r  r  r  r  s      r.   #test_simple_differencing_rangeindexr  
  s    VOG,--4FIfBMF$L$L$LMMME
/%yd
K
K
KCCJek!""o../////r0   c            	      T   t          j        t          d                   j        } t	          j        | t	          j        dt          |           d                    }t          j	        |dd          }t          |j                            |j        d	d                               d S )
Nr\   2000M)r  r  r  r  r  Tr  r   )r#   r_   r`   rb   r  r  period_rangerN  r   r(   r
   r  r  r  r  s      r.   "test_simple_differencing_dateindexr  
  s    VOG,--4FIfBOc&kk%5 %5 %5 6 6 6E
/%yd
K
K
KCCJek!""o../////r0   c            
         t          j        t          d                   j        } t	          j        t          t          |                                                   t                    }t	          j
        | |          }t          j        t                    5  t          j        |dd          }d d d            n# 1 swxY w Y   t!          |j                            t	          j        dt          |           dz
                                 t!          |j        j                            |dd                               d S )	Nr\   r  r  Tr  r   r   r  )r#   r_   r`   rb   r  r  rh   rN  mapstrr  r  r  r  r   r(   r
   r  r  r  r   
row_labels)rb   r  r-   r  s       r.   !test_simple_differencing_strindexr  
  sL   VOG,--4FHU3v;;''((,,S11EIfE***E	k	"	" P Poe9$OOOP P P P P P P P P P P P P P P CJbm!#f++/JJJKKLLLCH&&uQRRy1122222s   B>>CCc                  L   t          j        d          } t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            d S # 1 swxY w Y   d S )Nrp  r  r  )r   r   rz   rw   r#   r	  r  r  r  r   r(   r-   s    r.   test_invalid_orderr  
  s   HRLLE	z	"	" + +T****+ + + + + + + + + + + + + + +	z	"	" 3 3\22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s#   AAA5BB Bc                     t          j        d          } t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d           d d d            d S # 1 swxY w Y   d S )	Nrp  r  )r   )r   r   rz   rw   r  )r   r   r   r   )r   r   r   r   )r   r   r   r   r  r  r  s    r.   test_invalid_seasonal_orderr  
  s   HRLLE	z	"	" 4 4d33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z	"	" ? ?o>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	z	"	" < <l;;;;< < < < < < < < < < < < < < <	z	"	" < <l;;;;< < < < < < < < < < < < < < <	z	"	" < <l;;;;< < < < < < < < < < < < < < <	z	"	" < <l;;;;< < < < < < < < < < < < < < < < < <sk   AAA5BBB<CC#&C#D&&D*-D*
E--E14E1F55F9<F9c                     t           j        d         } t          j        ddt	          |                     }t          j        | |          }t          j        |dd          }|                                }|d	         }|	                    |d
         d          }|	                    |d
         |          }t          |j        |j                   |	                    |d
         |                                          }t          |j        |j                   |	                    |d
         |                    d                    }t          |j        |j                   d S )Nr   z1980-1-1MSr  r  r  r   r   iir]   rK  z%Y-%m-%d)r   r   r  r  rN  r  r   r(   r*   r  r   rX  to_pydatetimestrftime)r   r  seriesr  r  rL  rr  rq  s           r.   test_dynamic_strr  
  sF   *62DM*4TCCCEYt5)))F
/&	
=
=
=C
''))CCjG  sR 88Gc
G<<FF)7+ABBBc
G4I4I4K4KLLFF)7+ABBBc
(/(8(8(D(D   F FFF)7+ABBBBBr0   c                 "   t          j        t          j                            d          dd          }t          j        t          d          5  |                                }d d d            n# 1 swxY w Y   t          j	        t          d          5  |                    d	
           d d d            n# 1 swxY w Y   t          j                            d          }t          j        |dddd          }t          j        t          d          5  |                                }d d d            n# 1 swxY w Y   t          j	        t          d          5  |                    d
           d d d            d S # 1 swxY w Y   d S )Nrp  r  )rp  r   r   F)r   rr  zToo fewr  zLength of endogenous)rJ  r  )figsizer  r   )r   r   r   r]   )r   r   rr  rs  )rV  rJ  )r   r(   r#   r  r  r  r  r  r*   r  r  r  standard_normal)reset_randomstater  r   ys       r.   test_plot_too_few_obsr  
  ss   
 /
	b!!%  C 
k	3	3	3  ''))              	z)?	@	@	@ 2 2   1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2
	!!!$$A
/	$"#  C 
k	3	3	3  ''))              	z)?	@	@	@ 3 3   2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sH   A22A69A6B;;B?B?D::D>D> FFFc           
      P   t           j                            d          }t          j        |ddd                              d          }t          j        t          j        |                    t          |          t          |          dz   	                              sJ d S )
Nr  r   )r   r   r   r]   r^   )r-   r   r   r   Fr   r  r  
r#   r  r  r   r(   r*   allisfiniterG  rN  r  r  sarimax_models      r.   ,test_sarimax_starting_values_few_obsevationsr  
  s    
	!!"%%AOyc  	cucoo  6
M))ACFFRK)HHII      r0   c           
      V   t           j                            d          }g d}t          j        |dd                              d          }t          j        t          j        |                    t          |          t          |          dz   	                              sJ d S )
Nr  )g@gfffffx@gfffff@g33333@g     @g@g2@g33333t@g     L@g@g33333V@g     @g     @@g     @gfffff@g)@g@gfffffE@g33333@)r   r   r  r^   )r-   r   r   Fr   r  r  r  r  s      r.   4test_sarimax_starting_values_few_obsevations_long_mar     s    
	!!!$$A	 	 	A Oy  	cucoo  6
M))ACFFRK)HHII      r0   c                 N   t          j        d          }t          j        d          }t          j        ||dd          }|                    g d          }t          |                    dd          d           t          |                    d	d
d
g          dd           d S )Nrp  r  r   )r-   r  r   r   )r5  g?rF   r  r   r  g433333?r   r  g?)r#   r	  r   r(   r  r   rY  )r  r  re  r  r  s        r.    test_sarimax_forecast_exog_trendr    s     	A
A
/#
F
F
FC
**)))
*
*C CLLL++Y777 CLL"bL22IOOOOOr0   )F)rV   osr   statsmodels.compat.platformr   numpyr#   pandasr  r  statsmodels.tsa.statespacer   r   r   r   statsmodels.toolsr   statsmodels.tools.toolsr	   numpy.testingr
   r   r   r   r   pathdirnameabspath__file__current_pathjoinrealgdp_pathread_csvsepr`   coverage_pathrj  r   rZ   rt   r   r   r   r   r   r   r   r  r  r  r  r+  r@  rQ  r`  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r$  r*  r/  r3  r7  r>  rA  rF  rJ  rO  rT  rY  r_  re  rj  rm  rq  ru  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  smoker  r  r'  rz  slowr|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX   r0   r.   <module>r     s    
			  4 4 4 4 4 4          5 5 5 5 5 5 5 5 $ $ $ $ $ $ * * * * * * ) ) ) ) ) )             
 wrwx8899w||I'DEE"+lRV3lBCCY(FGG2;rw||L-HHII ;/ ;/ ;/ ;/ ;/ ;/ ;/ ;/|#
 #
 #
 #
 #
 #
 #
 #
L"0 "0 "0 "0 "0 "0 "0 "0J
 
 
 
 
 
 
 
B>L >L >L >L >L% >L >L >LB6C 6C 6C 6C 6Cu 6C 6C 6Cr
 
 
 
 
( 
 
 
D5E 5E 5E 5E 5E+ 5E 5E 5Ep               F7P 7P 7P 7P 7P' 7P 7P 7Pt7P 7P 7P 7P 7P 7P 7P 7PtFP FP FP FP FP7 FP FP FPR. . . . .  . . .4CC CC CC CC CC CC CC CCLhC hC hC hC hC( hC hC hCV)
 )
 )
 )
 )
( )
 )
 )
X>
 >
 >
 >
 >
8 >
 >
 >
B[7 [7 [7 [7 [7 [7 [7 [7|< < < < <! < < <J J J J J/ J J J; ; ; ; ;) ; ; ;= = = = =* = = == = = = =2 = = =A A A A A& A A AJ J J J J/ J J J	D 	D 	D 	D 	D) 	D 	D 	D7 7 7 7 7, 7 7 7B	F 	F 	F 	F 	F+ 	F 	F 	F#
 #
 #
 #
 #
!4 #
 #
 #
L< < < < <! < < <J J J J J/ J J JD D D D D) D D DF F F F F* F F FN N N N N2 N N NB B B B B& B B BK K K K K/ K K K	E 	E 	E 	E 	E) 	E 	E 	E	G 	G 	G 	G 	G+ 	G 	G 	G? ? ? ? ?# ? ? ?= = = = =+ = = == = = = =, = = == = = = =!4 = = =D D D D D( D D DM M M M M1 M M M	! 	! 	! 	! 	!#6 	! 	! 	!	G 	G 	G 	G 	G+ 	G 	G 	G	I 	I 	I 	I 	I- 	I 	I 	IF F F F F* F F F	! 	! 	! 	! 	!%8 	! 	! 	!= = = = =2 = = = = = = = = 3 = = == = = = =(; = = ="K K K K K/ K K K	! 	! 	! 	! 	!%8 	! 	! 	!
N 
N 
N 
N 
N2 
N 
N 
N
P 
P 
P 
P 
P!4 
P 
P 
PF F F F F* F F F	! 	! 	! 	! 	!%8 	! 	! 	!
N 
N 
N 
N 
N2 
N 
N 
N	O 	O 	O 	O 	O 3 	O 	O 	O! ! ! ! !(; ! ! !K K K K K/ K K K	! 	! 	! 	! 	!%8 	! 	! 	!
N 
N 
N 
N 
N2 
N 
N 
N
P 
P 
P 
P 
P!4 
P 
P 
PH H H H H, H H H= = = = =!4 = = = = = = = ="5 = = ="# # # # #*= # # #BM M M M M1 M M M	! 	! 	! 	! 	!': 	! 	! 	!# # # # #,? # # #6P P P P P!4 P P P! ! ! ! !#6 ! ! !I I I I I0 I I I(! ! ! ! !*= ! ! ! ! ! ! ! !%8 ! ! !$; ; ; ; ;.A ; ; ;4O O O4& & &$< $< $<N(< (< (<V. . . 0# 0# 0#f   : : :); ); );X@8 @8 @8 @8F 5 5 5
E E E@> > >4+ + +B'  '  ' T'  '  ' T'  '  ' T) ) )X> > >.0 0 00 0 00 0 03 3 33 3 3< < < C C C" 3 3 32
 
 
  $P P P P Pr0   