
    M/PhFp              
          d Z ddlmZmZmZmZmZ ddlZddl	m
Z
mZmZmZ ddlZddlmZ ddlZddl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 ddl m!c m"Z# ddl m$Z$m%Z% ej&        j'        Z(e(dd         dz  Z)e(dz  Z*d Z+d Z,d Z-d Z.d Z/ej0        j1        d             Z2d Z3d Z4d Z5d Z6d Z7d Z8 G d d          Z9erdneZ:ee: deddd d!d"d#d$g
Z;g d%Z<d&  e=e;e<          D             Z>ej0        ?                    d'e>          d(             Z@ G d) d*          ZA G d+ d,          ZB G d- d.          ZCd/ ZDdS )0z/tests for some time series analysis functions

    )PD_LT_2_2_0QUARTER_ENDYEAR_ENDassert_frame_equalassert_series_equalN)assert_array_almost_equalassert_array_equalassert_equalassert_raises)	to_offset)
regression)	macrodata)	stattools)savedrvs)mlacfmlccfmlpacfmlywar)vecvechi     @@c                  .   t          j        t          ddd          } t          t          j                                        | d           t          j        t          ddd          } t          t          j                                        | d           d S )NF   )adjustedfftnlags   )	r   acfx100r   r   acf100ravelx1000acf1000)acf_xs    d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_tsa_tools.pytest_acfr&   )   s    M$EDDDEel0022E1===M%%U"EEEEua        c                     t          j        t          dd          t          d d         d          d d         } t          t          j                                        d d         d d d         | d           t          j        t          dd          t          d d         d          d d         } t          t          j                                        d d         d d d         | d           d S )N   F)r      r   )	r   ccfr   r   r   ccf100r!   r"   ccf1000)ccf_xs    r%   test_ccfr1   2   s    M$qrr(D"I>>>ssCEel00223B37"=uaHHHM%)U3B3Z%@@@"EEem1133CRC82>qIIIIIr'   c                  *   t          j        t          dd          } t          t          j                                        | d           t          j        t          dd          } t          t          j                                        | d           d S )Nr   mlemethod      )	r   pacf_ywr   r   r   pacf100r!   r"   pacf1000)pacfyws    r%   test_pacf_ywr<   9   sv    tR666Ffn2244fa@@@ub777Ffo3355vqAAAAAr'   c                  "   t          j        t          d          } t          t          j                                        | d           t          j        t          d          } t          t          j                                        | d           d S )Nr   r   )	r   pacf_olsr   r   r   r9   r!   r"   r:   )pacfolss    r%   test_pacf_olsr@   A   sl     r**Gfn2244gqAAA ++Gfo3355wBBBBBr'   c                     t          t          j        dd          t          j        t
          dd          d          d           t          t          j        dd          t          j        t          dd          d          d           d S )Nr6   
   r3   r4   r   r   r   )r   r   	arcoef100r   yule_walkerr   
arcoef1000r"    r'   r%   test_ywcoefrG   I   s    		b	7	7	7	::	  
 !""		r%	8	8	8	;;	    r'   c                  \    t          j        g d          } t          j        | d           d S )N)r6   r,   r7   r7   r   r6   r   r   r      )nparrayr   rD   )xs    r%   test_yule_walker_interrO   V   s3     	55566A1a     r'   c           
      P   t          dd          D ]}t          j        t          j                            ||dz   z  dz                      }t          j        |          }t          j        t          |          t          j	        |t          |                              sJ d S )Nr7   rB   r6   )rangetoolsunvechrL   randomrandnduplication_matrixarray_equalr   dotr   )reset_randomstatekmDks       r%   test_duplication_matrixr]   ^   s    1b\\ ; ;La!e)9::;;%a((~c!ffbfRa&9&9::::::; ;r'   c           
         t          dd          D ]z}t          j                            ||          }t	          j        |          }t          j        t          |          t          j        |t          |                              sJ {d S )Nr7   rB   )
rQ   rL   rT   rU   rR   elimination_matrixrW   r   rX   r   )rY   rZ   r[   Lks       r%   test_elimination_matrixra   e   s{    1b\\ ; ;IOOAq!!%a((~d1ggrvb#a&&'9'9::::::; ;r'   c           	         t           j                            dd          }t          j        dd          }t          j        t          |j                  t          j        |t          |                              sJ d S )Nr)   rK   )	rL   rT   rU   rR   commutation_matrixrW   r   TrX   )rY   r[   Ks      r%   test_commutation_matrixrf   l   sa    
	1A A&&A>#ac((BF1c!ff$5$56666666r'   c                      t          j        ddgddgg          } t          j        t          |           g d          sJ d S )Nr6   r7   rK   r)   )r6   rK   r7   r)   )rL   rM   rW   r   arrs    r%   test_vecrj   r   sF    
(QFQF#
$
$C>#c((LLL1111111r'   c                      t          j        g dg dg dg          } t          j        t          |           g d          sJ d S )N)r6   r7   rK   )r)         )   r   	   )r6   r)   rn   rl   r   ro   )rL   rM   rW   r   rh   s    r%   	test_vechrp   w   sO    
(IIIyyy)))4
5
5C>$s))%7%7%78888888r'   c                      t          j        g d          } t          j        t          j        |                                                     rJ d S )N)	g     @g      Yg      $      ?        rr         $@g      Y@r   )rL   rM   isnanrR   _ar_transparamsanyrh   s    r%   test_ar_transparamsrx   |   sQ    
(DDD C x-c2233779999999r'   c                       e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
TestLagmatc                 
   t          j                    }|j        g d         | _        t	          | j        j                  }|                    d          | _        |                    d          | _        t          j
                            d           t          j
                            d          | _        d t          | j        j        | j        j                  D             }|| j        _        | j        j        | _        d S )Nyearquarterrealgdpcpir   r   90  d   c                     g | ]A\  }}t          t          |                    d z   t          t          |                    z   BS z-Qstrint.0yrqus      r%   
<listcomp>z*TestLagmat.setup_class.<locals>.<listcomp>   N     
 
 
B BLL4#c"gg,,.
 
 
r'   )r   load_pandasdatamacro_dflistcolumnsindexrealgdp_loccpi_locrL   rT   seedrU   random_datazipr}   r~   r   series)clsr   colsr   s       r%   setup_classzTestLagmat.setup_class   s    $&&y!F!F!FGCL())**Y//jj''
	u)//#..
 
cl/1EFF
 
 
 #\%


r'   c                 D   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        || j
        d          }t          ||           d S Nr7   rK   Bothtrimr,   r   valuesastypefloatr   lagmatrL   column_stackrR   add_lagr   r
   selfr   nddatar   resultslag_datas         r%   test_add_lag_insertzTestLagmat.test_add_lag_insert   s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=t'7;;Xw'''''r'   c                 2   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        || j
        dd          }t          ||           d S Nr7   rK   r   r   Finsertr   r   s         r%   test_add_lag_noinsertz TestLagmat.test_add_lag_noinsert   s    }#U##!&A,???/6!""aaa%=&"9::=t'75IIIXw'''''r'   c                    | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        || j
        dd          }t          ||           t          j	        || j
        dd          }t          ||           d S Nr,   rK   r   r   Fr   T)r   r   r   r   r   r   rL   r   rR   r   r   r
   r   r   r   r   r   r   	lag_data2s          r%   test_add_lag_noinsert_atendz&TestLagmat.test_add_lag_noinsert_atend   s    }#U##!&B-@@@/6!""aaa%=&"9::=t|QuEEEXw'''M$aEEE	Y(((((r'   c                 :   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        |dd          }t          ||           d S r   r   r   r   r   r   r   rL   r   rR   r   r
   r   s         r%   test_add_lag_ndarrayzTestLagmat.test_add_lag_ndarray   s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=A..Xw'''''r'   c                 (   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        |ddd          }t          ||           d S r   r   r   s         r%   test_add_lag_noinsert_ndarrayz(TestLagmat.test_add_lag_noinsert_ndarray   s    }#U##!&A,???/6!""aaa%=&"9::=Ae<<<Xw'''''r'   c                 x   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        |ddd          }t          ||           t          j	        |ddd          }t          ||           d S r   r   r   s          r%   "test_add_lag_noinsertatend_ndarrayz-TestLagmat.test_add_lag_noinsertatend_ndarray   s    }#U##!&B-@@@/6!""aaa%=&"9::=Ae<<<Xw'''M&"a===	Y(((((r'   c                 J   | j         }|j        d         }t          j        |ddd          \  }}t	          j        |dz   df          }t          d          D ]}|||||z   |f<   |d d d df         }|d d dd f         }t          ||           t          ||           d S )Nr   rK   nonesepr   originalr)   r6   )r   shaper   r   rL   zerosrQ   r
   )	r   r   nr   leadsexpectediexpected_leadsexpected_lagss	            r%   test_sep_returnzTestLagmat.test_sep_return   s    JqM!(qvNNN8QUAJ''q 	* 	*A%)HQQY\""!!!!RaR% ABB]F+++^U+++++r'   c                    | j         }t          j        |dd          }t          j        |dd          |f          }t          j        |dd          }t          ||           |d d d f         }t          j        |dd          }t          j        |dd          |f          }t          j        |dd          }t          ||           d S )NrK   r   r   Tlagsr   )r   r   r   rL   r   rR   r   r
   )r   r   r   r   r   s        r%   test_add_lag1dzTestLagmat.test_add_lag1d   s    !$777/48V"455=Ad;;;Wh''' AAAtG}!$777/48V"455=Ad;;;Wh'''''r'   c                     | j         }t          j        |dd          }t          j        |ddd          }t          ||           t          j        |ddd          }t          ||           d S )NrK   r   r   T)r   dropr   F)r   r   r   rR   r   r
   )r   r   r   r   s       r%   test_add_lag1d_dropzTestLagmat.test_add_lag1d_drop   sy    !$777=ADFFFVX&&& =ADGGGVX&&&&&r'   c                 x   t          j        ddt          fg          }| j        }||d<   t	          j        |ddd          }t          j        |ddd	
          }t          ||           t          j        |ddd
          }t          ||           t          j        |dd	
          }t          ||           d S )Nr   variabledtyperK   r   inr   r   Tr   F	rL   r   r   r   r   r   rR   r   r
   r   r   r   r   r   s        r%   test_add_lag1d_structz TestLagmat.test_add_lag1d_struct   s    xZ$7#8999!!Z!&!&4HHH=qq>>>VX&&&=qq???VX&&&=Ad;;;VX&&&&&r'   c                     t          j        ddt          fg          }| j        }||d<   t	          j        |dd          }t          j        |dd          }t          ||           d S )	Nr   r   r   rK   r   r   T)r   r   r   r   s        r%   test_add_lag_1d_drop_structz&TestLagmat.test_add_lag_1d_drop_struct   ss    xZ$7#8999!!Z!&!&999=AD999VX&&&&&r'   c                 H   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        || j
        dd          }t          ||           d S )Nr7   rK   r   r   r,   T)r   r   r   s         r%   test_add_lag_drop_insertz#TestLagmat.test_add_lag_drop_insert  s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=t'7FFFXw'''''r'   c                 X   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd t          j        g d          f         |f          }t          j
        || j        ddd          }t          ||           d S )	Nr7   rK   r   r   )r   r6   rK   FT)r   r   )r   r   r   r   r   r   rL   r   rM   rR   r   r   r
   r   s         r%   test_add_lag_drop_noinsertz%TestLagmat.test_add_lag_drop_noinsert  s    }#U##!&A,???/6!""bhyyy.A.A*A#BF"KLL=$"Ae$
 
 
 	Xw'''''r'   c                    | j         }t          j        |ddd          }t          j        |j        ddd          }t	          ||           t          j        |ddd          }t          j        |j        ddd          }t	          ||           t          j        |ddd          \  }}t          j        |j        ddd          \  }}t	          ||           t	          ||           d S )	NrK   bothr   r   r   exforwardr   )r   r   r   r   r
   )r   r   r   both_npr   lags_npleadlead_nps           r%   test_dataframe_without_pandasz(TestLagmat.test_dataframe_without_pandas  s    }aftDDD"4;NNNT7###aftDDD"4;NNNT7###%dAINNN
d$+KU
 
 
 	T7###T7#####r'   c                 \   | j         }t          |j                  }|j        d         }t	          j        |dz   df          }|j        |d |d df<   t          dd          D ]Afd|D             }|                    |           |j        ||z   dz  ddz   z  f<   B|j	        }|d |         }t          j        |||          }|j        dd          }t          j        | j         ddd	d
          }t          ||           t          j        | j         dddd
          }	t          |	|j        d d dd f                    t          j        | j         dddd
          \  }	}
t          |	|j        d d dd f                    t          |
|j        d d d df                    d S )Nr   rK      r)   r6   c                 :    g | ]}|d z   t                    z   S .L.r   r   collags     r%   r   z2TestLagmat.test_dataframe_both.<locals>.<listcomp>1  (    ???3ec#hh.???r'   r   r   r   r   Tr   r   
use_pandasr   r   )r   r   r   r   rL   r   r   rQ   extendr   pd	DataFrameilocr   r   r   r   r   r   r   r   new_colsr   r   r   r   r   r   s              @r%   test_dataframe_bothzTestLagmat.test_dataframe_both*  s   }t|$$JqM1q5"+&&rr2A2vA;; 	I 	IC????$???HNN8$$$=A[F3S=!c'AqM"99::
<uEEE=$M16DT
 
 
 	4***M16DT
 
 
 	4qqq!""u!5666%M16Ed
 
 

d 	4qqq!""u!56664qqq"1"u!566666r'   c                     t          t          t          j        | j        dd           t          t          t          j        | j        j        d           d S )Ni,  Tr   r   
ValueErrorr   r   r   r   r   s    r%   test_too_few_observationsz$TestLagmat.test_too_few_observationsG  sM    	($-	
 	
 	
 	
 	j)"2DM4H#NNNNNr'   c                     t          t          t          j        | j        ddd           t          t          t          j        | j        j        dd           d S )NrK   unknownTr   r   r   r  r  s    r%   test_unknown_trimzTestLagmat.test_unknown_trimM  sj    M	
 	
 	
 	
 	M 	
 	
 	
 	
 	
 	
r'   c                 >   | j         }t          |j                  }|j        d         }t	          j        |dz   df          }|j        |d |d df<   t          dd          D ]Afd|D             }|                    |           |j        ||z   dz  ddz   z  f<   B|j	        }|d |         }t          j        |||          }t          j        | j         ddd	d
          }t          ||           t          j        | j         dddd
          }	t          |	|j        d d dd f                    t          j        | j         dddd
          \  }	}
t          |	|j        d d dd f                    t          |
|j        d d d df                    d S )Nr   rK   r   r)   r6   c                 :    g | ]}|d z   t                    z   S r   r   r   s     r%   r   z5TestLagmat.test_dataframe_forward.<locals>.<listcomp>e  r   r'   r   r   r   Tr   r   r   )r   r   r   r   rL   r   r   rQ   r   r   r   r   r   r   r   r   r   s              @r%   test_dataframe_forwardz!TestLagmat.test_dataframe_forward^  s   }t|$$JqM1q5"+&&rr2A2vA;; 	I 	IC????$???HNN8$$$=A[F3S=!c'AqM"99::
<uEEEM19t
 
 
 	4***M19t
 
 
 	4qqq!""u!5666%M19u
 
 

d 	4qqq!""u!56664qqq"1"u!566666r'   c                 N   t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           d S )NrK   r   Tr  backward)r   r  r   r   r   r   r  s    r%   test_pandas_errorszTestLagmat.test_pandas_errorsy  s    M	
 	
 	
 	
 	M	
 	
 	
 	
 	K	
 	
 	
 	
 	K	
 	
 	
 	
 	
 	
r'   c           	         t          j        | j        j        g d          }| j        |d<   t	          dd          D ]<}| j                            |          |dt          t          |                    z   <   =|                    d          }t          j
        | j        dd	d
d          }t          ||           t          j
        | j        dd	dd          }t          ||j        d d dd f                    t          j
        | j        dd	dd          \  }}t          ||j        d d d df                    t          ||j        d d dd f                    d S )Nr   zcpi.L.1zcpi.L.2zcpi.L.3r   r   r   r6   r)   cpi.L.rs   rK   r   r   Tr   r   r   )r   r   r   r   rQ   shiftr   r   fillnar   r   r   r   r   r   r   r   r   r   s         r%   test_series_forwardzTestLagmat.test_series_forward  s   <+#<<<
 
 
 +A;; 	H 	HC151B1B31G1GHXCHH-..??3''KTd
 
 
 	4***KTd
 
 
 	4qqq!""u!5666%KUt
 
 

d 	4qqq"1"u!56664qqq!""u!566666r'   c           	         t          j        | j        j        g d          }| j        |d<   t	          dd          D ]<}| j                            |          |dt          t          |                    z   <   =|j        dd          }t          j
        | j        ddd	d
          }t          ||           t          j
        | j        dddd
          }t          ||j        d d dd f                    t          j
        | j        dddd
          \  }}t          ||j        d d d df                    t          ||j        d d dd f                    d S )Nr  r  r   r6   r)   r  rK   r   r   Tr   r   r   )r   r   r   r   rQ   r  r   r   r   r   r   r   r  s         r%   test_series_bothzTestLagmat.test_series_both  s   <+#<<<
 
 
 +A;; 	H 	HC151B1B31G1GHXCHH-..=$K$4
 
 
 	4***K$4
 
 
 	4qqq!""u!5666%K%D
 
 

d 	4qqq"1"u!56664qqq!""u!566666r'   c                 *   t          j        t          j        d                              d                    }t          j        d          |_        t          j        |dd          }|j	        dk    sJ t          |j                  g dk    sJ d S )N   r,   r7   r7   Tmaxlagr   )r   r)   )z0.L.1z1.L.1z0.L.2z1.L.2)r   r   rL   arangereshape
RangeIndexr   r   r   r   r   )r   dfresults      r%   test_range_index_columnsz#TestLagmat.test_range_index_columns  s    \")C..0099::]1%%
!"Q4@@@|x''''FN##'K'K'KKKKKKKr'   c                     t          j        t          j        d                              d                    }ddg|_        t          j        t          d          5  t          j
        |dd	           d d d            d S # 1 swxY w Y   d S )
Nr  r  r   0zColumns names must bematchr7   Tr  )r   r   rL   r  r   r   pytestraisesr  r   r   r   r"  s     r%   test_duplicate_column_namesz&TestLagmat.test_duplicate_column_names  s    \")C..0099::X
]:-DEEE 	< 	<Rd;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   BB
BN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r$  r,  rF   r'   r%   rz   rz      s       & & [& ( ( (( ( (	) 	) 	)( ( (( ( (	) 	) 	)
, 
, 
,( ( (' ' '' ' '' ' '( ( (( ( ($ $ $"7 7 7:O O O
 
 
"7 7 76 
  
  
D7 7 707 7 70L L L< < < < <r'   rz   Az-MARQSzQS-APRWzW-MONBDh)
r6   r6   r)   r)   r)   4   r7  rl   rn      c                     g | ]	\  }}||f
S rF   rF   )r   fes      r%   r   r     s     999DAq!Q999r'   freq_expectedc                     | \  }}t          t          j        |          |           t          t          j        t          |                    |           d S )N)r
   rR   freq_to_periodr   )r<  freqr   s      r%   test_freq_to_periodr@    sM    "ND(%d++X666%ioo66AAAAAr'   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestDetrendc                     t          j        d          | _        t          j        d                              dd          | _        d S )Ng      @rt   rl   r7   )rL   r  data_1dr   data_2dr   s    r%   r   zTestDetrend.setup_class  s4    innioo--a33r'   c                     | j         }t          t          j        |d          t	          j        |                     t          t          j        |d          g d           d S )Nr6   orderr   rI   r,   r   r6   r7   )rD  r   rR   detrendrL   
zeros_liker   r   s     r%   test_detrend_1dzTestDetrend.test_detrend_1d  sr    |!M$a((("-*=*=	
 	
 	
 	"M$a(((*;*;*;	
 	
 	
 	
 	
r'   c           	      R   | j         }t          t          j        |dd          t	          j        |                     t          t          j        |dd          ddgddgddgddgddgg           t          t          j        |dd          dd	gdd	gdd	gdd	gdd	gg           d S )
Nr6   r   rI  axisr*   rI   r7   r)               ?)rE  r   rR   rK  rL   rL  rM  s     r%   test_detrend_2dzTestDetrend.test_detrend_2d  s    |!M$aa000"-2E2E	
 	
 	
 	"M$aa000"XBx!Q!Q!Q8	
 	
 	
 	"M$aa000C[4+c{T3K$M	
 	
 	
 	
 	
r'   c                    t          j        | j        d          }t          j        |d          }t          |j        t          j        |                     t          |t          j        |j        d                     t          j        |d          }t          |j        t          j        g d                     t          |t          j        |j        d                     d S )None)namer6   rH  r   rJ  )
r   SeriesrD  rR   rK  r   r   rL   rL  r   )r   r   	detrendeds      r%   test_detrend_serieszTestDetrend.test_detrend_series  s    yE222M$a000	!)"2BM$4G4GHHHIry1A'N'N'NOOOM$a000	!bi(9(9(9::	
 	
 	
 	Iry1A'N'N'NOOOOOr'   c           	         ddg}d dD             }t          j        | j        ||          }t          j        |dd          }t          |j        t          j        |                     t          |t          j        |j        ||                     t          j        |dd          }t          |j        d	d	gd
d
gddgddgddgg           t          |t          j        |j        ||                     t          j        |dd          }t          |j        ddgddgddgddgddgg           t          |t          j        |j        ||                     d S )NrV  twoc                     g | ]}|S rF   rF   )r   cs     r%   r   z6TestDetrend.test_detrend_dataframe.<locals>.<listcomp>  s    $$$q$$$r'   abcder   r6   r   rP  r*   rI   r7   r)   rR  rS  )
r   r   rE  rR   rK  r   r   rL   rL  r   )r   r   r   r   rY  s        r%   test_detrend_dataframez"TestDetrend.test_detrend_dataframe  s   %.$$G$$$|DL'GGGM$aa888	!)"2BM$4G4GHHHL)7%HHH	
 	
 	

 M$aa888	!Bx"bAq6Aq6Aq6J	
 	
 	
 	L)7%HHH	
 	
 	

 M$aa888	!C[4+c{T3K$M	
 	
 	
 	L)7%HHH	
 	
 	
 	
 	
r'   c                 j    t          t          t          j        t	          j        d                     d S )N)rK   rK   rK   )r   NotImplementedErrorrR   rK  rL   onesr  s    r%   test_detrend_dim_too_largez&TestDetrend.test_detrend_dim_too_large:  s'    )5="'):L:LMMMMMr'   N)
r-  r.  r/  r0  r   rN  rT  rZ  r`  rd  rF   r'   r%   rB  rB    s        4 4 [4
 
 

 
 
	P 	P 	P
 
 
>N N N N Nr'   rB  c                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestAddTrendc                 z   d| _         t          j        t          | j                             | _        t          j        t          j        t          | j                             d d d f         d          | _        t          j        | j                   | _        t          j        d| j         dz             | _	        d S )Nr  r7   rr   r6   )
r   rL   r  r   arr_1dtilearr_2drc  r^  trF  s    r%   r   zTestAddTrend.setup_class?  s    YuSU||,,
WRYuSU||44QQQW=qAA
	#suqy))r'   c                 6   t          j        | j                  }t          j        |          }t          j        |          }| j        |d<   t          ||           t          j        |d          }t          j        |          }|                    dd| j                   t          ||           t          j        | j                  }t          j        |d          }t          j        |          }| j        |d<   | j	        |d<   t          ||           d S )NconstTprependr   cttrendrr  )
r   rX  rh  rR   	add_trendr   r^  r   r   rk  )r   sappendedr   	prependeds        r%   test_serieszTestAddTrend.test_seriesG  s    Idk""?1%%<?? F8X...OAt444	<??7DF+++8Y///Idk""?1D111<?? F F8X.....r'   c                 
   t          j        | j                  }t          j        |          }|                                }| j        |d<   t          ||           t          j        |d          }|                                }|                    dd| j                   t          ||           t          j        | j                  }t          j        |d          }|                                }| j	        |d<   t          ||           t          j        | j                  }t          j        |d          }|                                }| j        |d<   | j	        |d<   | j	        d	z  |d
<   t          ||           d S )Nrm  Trn  r   rk  rq  rr  cttr7   trend_squared)
r   r   rj  rR   rs  copyr^  r   r   rk  )r   r"  ru  r   rv  s        r%   test_dataframezTestAddTrend.test_dataframeZ  sR   \$+&&?2&&7799 F8X...OB555	77997DF+++8Y///\$+&&?2S1117799 F8X...\$+&&?2U3337799 F F$(FaK!8X.....r'   c                    t          t          t          j        | j        dd           t          t          t          j        | j        dd           t          j        | j                  }t          t          t          j        |dd           t          t          t          j        |dd           t          j        | j        d          }t          || j        d d d f                    t          j        | j        dd          }t          j	        | j        | j
        f          j        }t          ||           t          j        | j        dd          }t          j	        | j        | j        f          j        }t          ||           t          j        | j        dd          }t          j	        | j        | j        | j
        f          j        }t          ||           d S )	Nr^  raise)rN   rr  has_constantrp  rq  skip)rr  r  add)r   r  rR   rs  r^  r   r   r
   rL   vstackrk  rd   )r   r"  skippedskipped_constr   addeds         r%   test_duplicate_constz!TestAddTrend.test_duplicate_constt  s   Of 	
 	
 	
 	
 	Of 	
 	
 	
 	
 \$&!!2Sw	
 	
 	
 	
 	2T	
 	
 	
 	
 /$&444WdfQQQWo...F$V
 
 
 9dfdf-..0]H---cFFF9dfdf-..0UH%%%dGGG9dfdfdf5668UH%%%%%r'   c                     t          j        | j        ddg          }t          j        |d           t          j        |dd           d S )Nrm  rr  )r   rp  rq  Trr  ro  )r   r   rj  rR   rs  r+  s     r%   test_dataframe_duplicatez%TestAddTrend.test_dataframe_duplicate  sO    \$+/ABBB$''''$555555r'   c                 *   t          j        | j        | j        | j        | j        dz  f          j        }t          t          j        | j                  |d d d df                    t          t          j        | j        d          |d d ddgf                    t          t          j        | j        d          |d d d df                    t          t          j        | j        d          |           t          j	        | j        d d d f         | j        d d d f         | j        d d d f         dz  | j
        f          }t          t          j        | j
        d	          |d d g d
f                    t          t          j        | j
        dd          |d d g df                    t          t          j        | j
        dd          |d d g df                    t          t          j        | j
        dd          |           d S )Nr7   rk  rq  r   rp  rK   ry  Trn  )r   rK   r)   r  )r6   rK   r)   )r   r6   rK   r)   )rL   r  rh  r^  rk  rd   r
   rR   rs  hstackrj  )r   bases     r%   
test_arrayzTestAddTrend.test_array  s   y$+tvtvtv{CDDFU_T[1142A2;???U_T[<<<d111q!f9oNNNU_T[===tAAArrE{KKKU_T[>>>EEEyqqq$wqqq$wqqq$w1$	
 
 	ODK666QQQ			\8J	
 	
 	
 	ODKsDAAAIII	
 	
 	
 	ODKtTBBBLLL!	
 	
 	
 	ODKudCCCT	
 	
 	
 	
 	
r'   c                 T    t          t          t          j        | j        d           d S )Nr  )rN   rr  )r   r  rR   rs  rh  r  s    r%   test_unknown_trendzTestAddTrend.test_unknown_trend  s0    4;i	
 	
 	
 	
 	
 	
r'   c                 F   t          t          j        | j        d          | j                   t          j        | j        d          | j        usJ t          t          j        | j        d          | j                   t          j        | j        d          | j        usJ d S )Nr   )r
   rR   rs  rh  rj  r  s    r%   test_trend_nzTestAddTrend.test_trend_n  s    U_T[#66DDDt{C00CCCCU_T[#66DDDt{C00CCCCCCr'   N)r-  r.  r/  r0  r   rw  r|  r  r  r  r  r  rF   r'   r%   rf  rf  >  s        * * [*/ / /&/ / /4&& && &&P6 6 6

 
 
<
 
 

D D D D Dr'   rf  c                   T    e Zd Zed             Zed	d            Zd Zd Zd Z	d Z
dS )
TestLagmat2DSc                 p   t          j                    }|j        g d         | _        t          j                            d           t          j                            d          | _        d t          | j        j
        | j        j                  D             }|| j        _        | j        j        | _        d S )Nr|   r   r   c                     g | ]A\  }}t          t          |                    d z   t          t          |                    z   BS r   r   r   s      r%   r   z-TestLagmat2DS.setup_class.<locals>.<listcomp>  r   r'   )r   r   r   r   rL   rT   r   rU   r   r   r}   r~   r   r   r   )r   r   r   s      r%   r   zTestLagmat2DS.setup_class  s    $&&y!F!F!FG
	u)//#..
 
cl/1EFF
 
 
 #\%


r'   frontc                 N   | j         \  }}t          j        ||z   |dz   |z  f          }t          |          D ]Z}t          |dz             D ]E}||k     r!| d d |f         ||| |z   |dz   |z  |z   f<   )| d d |f         ||d |dz   |z  |z   f<   F[|dk    r|d |          }|S )Nr6   r  )r   rL   r   rQ   )r   r   r   rk  rZ   r   r   r   s           r%   _prepare_expectedzTestLagmat2DS._prepare_expected  s    z18QXqA~67788 	F 	FC4!8__ F Ft88DH3EHQ$]TAX,<q,@@AA :>aaafHQRR$(c!1A!5566F 7??$'Hr'   c                    | j         }|j        }t          j        |d          }|                     |d          }t          ||           t          j        |d d d df         d          }|                     |d d d df         d          }t          ||           | j        j        }t          j        |d          }|                     |d d d f         d          }t          ||           d S )Nr7   rK   rl   )r   r   r   	lagmat2dsr  r	   r   )r   r   npdatar   r   s        r%   test_lagmat2ds_numpyz"TestLagmat2DS.test_lagmat2ds_numpy  s    }$VQ//))&!4468,,,$VAAArrE]A66))&BQB-;;68,,,#$VQ//))&D/1==68,,,,,r'   c                    | j         }t          j        |d          }|                     |j        d          }t          ||           t          j        |j        d d d df         dd          }|                     |j        d d d df         d          }|dd          }t          ||           | j        }t          j        |d          }|                     |j        d d d f         d          }t          ||           d S )Nr7   rK   r   r   rl   )r   r   r  r  r   r	   r   r   )r   r   r   r   s       r%   test_lagmat2ds_pandasz#TestLagmat2DS.test_lagmat2ds_pandas  s   }$T1--))$+q9968,,,$TYqqq"1"u%5qvFFF))$+aaa!e*<a@@ABB<68,,,{$T1--))$+aaag*>BB68,,,,,r'   c                    | j         }t          j        |dd          }|                     |j        d          }g }|D ]X}t          d          D ]F}|dk    r|                    |           |                    |dz   t          |          z              GYt          j	        ||j
        |          }t          ||           t          j        |j        d d d df         ddd	          }|                     |j        d d d df         d          }g }|j        d d d df         D ]X}t          d
          D ]F}|dk    r|                    |           |                    |dz   t          |          z              GYt          j	        ||j
        |          }|j        dd          }t          ||           | j        }t          j        |dd          }|                     |j        d d d f         d          }g }|j        }t          d          D ]F}|dk    r|                    |           |                    |dz   t          |          z              Gt          j	        ||j
        |          }t          ||           d S )Nr7   Tr  rK   r   r   r  r   )r   r   r)   rl   rm   )r   r   r  r  r   rQ   appendr   r   r   r   r   r   r   rW  )r   r   r   r   r   r^  r   s          r%   test_lagmat2ds_use_pandasz'TestLagmat2DS.test_lagmat2ds_use_pandas	  s   }$T1>>>))$+q99 	7 	7Aa 7 7199KKNNNNKKE	CII 56666	7
 <
DIII68,,,$Iaaa!eaDv
 
 
 ))$+aaa!e*<a@@111bqb5! 	7 	7Aa 7 7199KKNNNNKKE	CII 56666	7
 <
DIII=$68,,,{$T1>>>))$+aaag*>BBI!HH 	3 	3DqyyAAID		12222<
DIII68,,,,,r'   c                 p   t          j        d          }t          j        t                    5  t          j        |d           d d d            n# 1 swxY w Y   t          j        d          }t          j        t                    5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr7   rl   )r   r7   r7   )rL   rM   r)  r*  r  r   r  r   rM  s     r%   test_3d_errorzTestLagmat2DS.test_3d_error5  s   x{{]:&& 	) 	)a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) x$$]:&& 	) 	)a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s#   AAAB++B/2B/N)r  )r-  r.  r/  r0  r   staticmethodr  r  r  r  r  rF   r'   r%   r  r    s        
& 
& [
&    \- - - - - - *- *- *-X) ) ) ) )r'   r  c                     t           j                            dd          } t          j        t
          d          5  t          j        | dd          }d d d            n# 1 swxY w Y   |d         \  }}|\  }}}|j        |j	        usJ d S )Nr   r7   verboser'  F)r  r  r6   )
rL   rT   randr)  warnsFutureWarningr   grangercausalitytestscentered_tssuncentered_tss)r   outr#  modelsres2down
res2djointrconstrs          r%   test_grangercausalityr  ?  s    9>>#q!!D	m9	5	5	5 M M-d1eLLLM M M M M M M M M M M M M M MVNFF$*!Hj'"**CCCCCCCs   A  A$'A$)E__doc__statsmodels.compat.pandasr   r   r   r   r   numpyrL   numpy.testingr   r	   r
   r   pandasr   pandas.tseries.frequenciesr   r)  statsmodelsr   statsmodels.datasetsr   statsmodels.tsar   statsmodels.tsa.tests.resultsr   )statsmodels.tsa.tests.results.datamlw_tlsr   r   r   r   statsmodels.tsa.tsatoolstsatsatoolsrR   r   r   rvsdataxar2xor   r"   r&   r1   r<   r@   rG   marksmokerO   r]   ra   rf   rj   rp   rx   rz   ANNUALfreqsr   r   r<  parametrizer@  rB  rf  r  r  rF   r'   r%   <module>r     s                                     0 0 0 0 0 0  " " " " " " * * * * * * % % % % % % 2 2 2 2 2 2            ) ( ( ( ( ( ( ( ( . . . . . . . .	$%%y6
V  J J JB B BC C C
 
 
 ! ! !; ; ;; ; ;7 7 72 2 2
9 9 9
: : :U< U< U< U< U< U< U< U<p
 	)OOO	 -,,99CCx$8$8999 -88B B 98BHN HN HN HN HN HN HN HNVJD JD JD JD JD JD JD JDZq) q) q) q) q) q) q) q)hD D D D Dr'   