U
    Kvfj                    @   s   d Z ddlmZ ddlZddlmZmZmZ ddl	Z
ddlZddlmZ ddlmZmZ ddlmZmZmZmZ dd	lmZ d
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"d d! Z#d"d# Z$d$d% Z%d&d' Z&d(d) Z'd*d+ Z(d,d- Z)d.d/ Z*d0d1 Z+d2d3 Z,d4d5 Z-d6d7 Z.d8d9 Z/d:d; Z0d<d= Z1d>d? Z2d@dA Z3dBdC Z4dDdE Z5dFdG Z6dHdI Z7dJdK Z8dLdM Z9dNdO Z:dPdQ Z;dRdS Z<dTdU Z=dVdW Z>dXdY Z?dZd[ Z@d\d] ZAejBjCd^d_ ZDd`da ZEdbdc ZFejBjCddde ZGdS )fzR
Tests for simulation of time series

Author: Chad Fulton
License: Simplified-BSD
    )	MONTH_ENDN)assert_assert_allcloseassert_equal)lfilter)EstimationWarningSpecificationWarning)dynamic_factorsarimax
structuralvarmax   )TVSSc                  C   sF  t jd d} t jj| d}tjdgdd}|jddg| d	 t j|df t |j	d
}t
d	gd	dg|}t|d	d  | tjdgdd}|jddg| d	 t j|df t |j	d
}t
d	dgd	g|}t|d	d  | tjdgdd}|jdddg| d	 t j|df t |j	d
}t
d	dgd	dg|}t|d	d  | d S )N'  d   sizer   r   r   r   order      ?      ?r   state_shocksinitial_state      ࿩r   r   r   r   r   r   皙?)nprandomseednormalr
   SARIMAXsimulater_zerosk_statesr   r   )nobsepsmodactualdesired r-   R/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/tsa/statespace/tests/test_simulate.pytest_arma_lfilter   s*    


r/   c                  C   s  t jd d} t jj| d}t jj| d}tjdgdd}|jddg| d	 t j|df t |j	d
}t | }t
| D ]6}|dkr|| ||< qzd||d	   ||  ||< qzt|d	d  | tjdgdd}|jddg| d	 t j|df t |j	d
}t | }t
| D ]:}|dkr.|| ||< nd||d	   ||  ||< qt|d	d  | tjdgdd}|jdddg| d	 t j|df t |j	d
}t | }t
| D ]J}|dkr|| ||< n,d||d	   d||d	    ||  ||< qt|d	d  | tjdgddd}|jddddg| d	 t j|df t |j	d
}t | }t
| D ]V}d}|dkr|||  ||< n0|d||d	    d||d	    ||  ||< qbt|d	d  | tjt | d	 ddd}|jdddddg| d	 t j|df t |j	d
}t | }t
| D ]b}dd|d	   }|dkrZ|||  ||< n0|d||d	    d||d	    ||  ||< q*t|d	d  | tjt | d	 t jd|f ddd}|jddddddg| d	 t j|df t |j	d
}t | }t
| D ]b}dd|d	   }|dkr<|||  ||< n0|d||d	    d||d	    ||  ||< q|d|  }t|d	d  | d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   cr   trendg?ct)exogr   r2   r   )r   r    r!   r"   r
   r#   r$   r%   r&   r'   ranger   )r(   r)   r4   r*   r+   r,   ir2   r-   r-   r.   test_arma_direct<   s    




 


0





 


r7   c               	   C   s  t jd d} t jj| d}t jj| d}t | }t | }d|d< t | }d|dd < tjdgdd}tjdgd	d
}|j	ddg| |t |j
d}|j	ddg| |t |j
d}	t||	 tjt | |dd}tjt | |d	d}|j	dddg| |t |j
d}|j	dddg| |t |j
d}	t||	 tdgd}
|
j	dg| |t |
j
d}t|| t}d}tj||d tdgd}
W 5 Q R X |
j	dg| |dgd}t|d|  tdgd}
|
j	dg| |dgd}t|d|  tdgd}
|
j	ddg| ||t |
j
d}t|||  tdgd}
|
j	dg| ||t |
j
d}t|||  t}d}tj||d tdgd}
W 5 Q R X |
j	ddg| ||ddgd}t||t d  tdgd}
|
j	dg| ||ddgd}t||t d  tdgd}
|
j	ddg| ||ddgd}|t jt ddt dd f  }	t||	 tdgd}
|
j	dg| |ddgd}t jt ddt dd f }	t||	 tdgd}
|
j	dddg| |t j||f ddgd}|t jt ddt dd f  }	t||	 |
j	dddg| |t j||f ddgd}|t jt dt dd d!f  }	t||	 tdgd"}
|
j	ddg| ||ddgd}|t jt d  }	t||	 |
j	ddg| ||ddgd}|t jt dt dd d!f  }	t||	 tdgd#}
|
j	ddg| |ddgd}t jt d }	t||	 |
j	ddg| |ddgd}t jt dt dd d!f }	t||	 tjdgdd!d$d%}
|
j	dg| |dgd}|t dd&gd }	t||	 tjdgdd!d'}
|
j	ddg| ||dgd}|t jt dd&gd(t d)d*gd(f  }	t||	 tjdgdd+d,}
|
j	dd-g| |ddgd}t d-t d-g}t d- t d-g}t ||g}|}	ddg}t| D ]&}|	|  |d 7  < t ||}qt||	 tjdgdd+d+d.}
|
j	ddd-g| |t j||f ddgd}t d-t d-g}t d- t d-g}t ||g}|}	ddg}t| D ].}|	|  |d 7  < t ||||  }qTt||	 d S )/N#  r   r   r   1   2   r   )autoregressiver   r   r   r   )r4   r;   )r4   r   r   Z	irregularr   )measurement_shocksr   zirregular component addedmatchzfixed intercept
   zdeterministic constantlocal levelr<   r   r   zrandom walkzfixed slopezdeterministic trendz local linear deterministic trendzrandom walk with driftzlocal linear trend      zsmooth trendzrandom trendF)seasonalZstochastic_seasonali)rD         iT)cycleg333333?)rG   Zstochastic_cycle)r   r    r!   r"   r&   r   UnobservedComponentsr
   r#   r$   r'   r   r   pytestwarnsaranger%   c_Ztilecossinarrayr5   dot)r(   r)   r4   eps1eps2eps3mod1mod2r+   r,   r*   warningr>   x1Zx2TZstatesr6   r-   r-   r.   test_structural   sZ   












    $
 
 $
 "
 
 "
 
 

 *

 rY   c               	   C   s  t jd d} t jj| d}t jj| dfd}t | }t | }d|d< t | }d|dd < tjdggdd	d
}tjdgdd}|j	dddg| |t |j
d}|j	dddg| |t |j
d}	t||	 tjdggdd	d
}tjdgdd}|j	dddg| |t |j
d}|j	dddg| |t |j
d}	t||	 t}
d}tj|
|d tjdggdd	d
}W 5 Q R X tjdgdd}|j	dddddg| |t |j
d}|j	dddddg| |t |j
d}	t||	 t}
d}tj|
|d tjdggddd
}W 5 Q R X tjdgddd
}|j	ddddddg| |t |j
d}|j	ddddddg| |t |j
d}	t||	 t ddgddgg}tjddggdd	d
}|j	t j| dddf | t j||f t |j
d}t|d |j	t j| dddf | t j||f ddgd}t | df}	t jd }t| D ]}||	|< t ||}q2t||	 tjddggdd	dd }|j	t j| dddddf | t j||f t j||f t |j
d!}t|t j||f  tjt | dfdd	|d"}|j	t j| d#d$dddf | t j||f ddgd}t | df}	t jd }t| D ]<}||	|< || d k r<||d  d#d$g t || }q<t||	 tjt jj| dfdd%d	d
}|	|j|  t}
d}tj|
|d& tjt jj| dfddd|d"}W 5 Q R X |	|j|  d S )&Niެ r   r   r   r9   r:   r   )rC   r   nr1   rC   r   r   r   r   r   r   )r   rC   )r   r   rC   zVARMA\(p,q\) models is notr=   rC   rC   )rC   r   rC   g?皙ɿr0   r?   gr   r   r   rC   )r   r   T)r   r2   Zmeasurement_errorrA   )r   r2   r4      )r   r   )r   r    r!   r"   r&   r   VARMAXr
   r#   r$   r'   r   r   rI   rJ   rO   r%   ravelrL   r5   rP   start_params)r(   r)   r4   rQ   rR   rS   rT   rU   r+   r,   rV   r>   
transitionr*   stater6   r-   r-   r.   test_varmaxU  s    

















 


 
$
    rf   c               	   C   s"  t jd d} t jj| d}t jj| dfd}t | }t | }d|d< t | }d|dd < tjddggddd	}tjdgd
d}|j	ddddddg| t j
||f |t |jd}|j	dddg| |t |jd}	t|d d df d|	  t|d d df d|	  tjt | dfdd|d}tjdgd
d}|j	ddddddddg| t j
||f |t |jd}|j	dddg| |t |jd}	t|d d df d|	 d|d d df    t|d d df d|	 d|d d df    tjt jj| dfddd|ddd}
|
	|
j|  d S )Ni+n r   r   r   r9   r:   r   rC   	k_factorsfactor_orderr[   r   g皙?r   r   r   rA   r   rh   ri   r4   r_   r`      T)rh   ri   r4   Zerror_orderZ	error_var)r   r    r!   r"   r&   r	   DynamicFactorr
   r#   r$   rL   r'   r   rc   )r(   r)   r4   rQ   rR   rS   rT   rU   r+   r,   r*   r-   r-   r.   test_dynamic_factor  sX    




 

..   rn   c            	   	   C   s  t jd d} t jj| d}t | }t | }d|d< t | }d|dd < tjdgdd	}|jdgdgg |j	d
dg| |d}t
|dd
t |    tdgd}|jdgdgg |j	ddg| ||d}t
|d| |  t d
dg}tjddggddd}|ddgt ddg |j	t j| dddf | t j||f t j||f d}t
|t jdd
t |   ddt |   f  tjddggddd}|dgdgg |j	ddddd
g| t j||f |d}dd
t |   }t
|t jd| d| f  d S )Nr8   r   r   r   r9   r:   r   r   r   r   r   )r   r@   )r<   r   r   r^   rZ   r1   rg   rj   )r   r    r!   r"   r&   r
   r#   ssmZinitialize_knownr$   r   rK   r   rH   Zdiagr   ra   r%   rb   rL   r	   rm   )	r(   r)   rQ   rR   rS   r*   r+   rd   tmpr-   r-   r.   test_known_initialization  sH    


rq   c                  C   s^   d} t jdgddd}|ddg| }t|t|  |ddg| }t|t| d  d S )Nr   r   )r   r   r   r0   r1   r   r?   )r
   r#   r$   r   r   Zones)Zn_simulationsr*   r+   r-   r-   r.   test_sequential_simulate+  s    rr   c            
      C   s   t dd} t| }|ddg}d}t ||jf}t ||jf}|jd }t	|d |j
|d|||d	}ddt d|d   }t	|| |j
|j|d|||d	}	t	|	| t	||| d S )
Nr   rF   r   r   r?   .r_   endanchorr<   r   r   )r   rK   r
   r#   filterr&   k_endogr'   predicted_stater   r$   paramsforecast
endogr*   resnsimulationsr<   r   r   r+   r,   
mod_actualr-   r-   r.   (test_sarimax_end_time_invariant_noshocks9  s2    



  
r   c            
      C   s   t t dd} tj| ddd}|ddg}d}t ||jf}t ||jf}|j	d	 }t
|d
 |j|d|||d}ddt d|d   }t
|| |j|j|d|||d}	t
|	| t
||| d S )Nr   rF   r   r   r   Tr   simple_differencingr   r   r?   rs   r_   ru   rv   r   )r   cumsumrK   r
   r#   rx   r&   ry   r'   rz   r   r$   r{   r|   r}   r-   r-   r.   <test_sarimax_simple_differencing_end_time_invariant_noshocks]  s2    


  
r   c                 C   s   t dd}t|}|ddg}d}t jj|d}t jj|d}|jd ddf }|j|d|||d	}t	dgdd
gt j
||f d d | }	t||	 |j|j|d|||d	}
t|
|	 d S )Nr   rF   r   r   r?   r   rt   ru   rv   r   )r   rK   r
   r#   rx   r    r"   rz   r$   r   r%   r   r{   reset_randomstater~   r*   r   r   r<   r   r   r+   r,   r   r-   r-   r.   "test_sarimax_time_invariant_shocks  s4    
"
  r   c            
      C   s   t t dd} tj| ddd}|ddg}d}t jj|d	}t jj|d	}|jd d
df }|j	|d|||d}t
d
gd
dgt j||f d d | }t|| |j	|j|d|||d}	t|	| d S )Nr   rF   r   Tr   r   r   r?   r   r   rt   ru   rv   r   )r   r   rK   r
   r#   rx   r    r"   rz   r$   r   r%   r   r{   r}   r-   r-   r.   :test_sarimax_simple_differencing_end_time_invariant_shocks  s4    "
  r   c            
   	   C   s   t dd} tj| dd}|dddg}d}t ||jf}t ||jf}|jd }t	|d	 |j
|d
|||d}tdgddgt jd	t ddf }t	|| |j
|j|d
|||d}	t	|	| t	||| d S )Nr   rF   tr2   r   r   r?   rs      ru   rv   r]      )r   rK   r
   r#   rx   r&   ry   r'   rz   r   r$   r   r%   r{   r|   r}   r-   r-   r.   (test_sarimax_time_varying_trend_noshocks  s2    

$
  
r   c            
   	   C   s   t t dd} tj| dddd}|dddg}d	}t ||jf}t ||jf}|j	d
 }t
|d |j|d|||d}tdgddgt jdt ddf }t
|| |j|j|d|||d}	t
|	| t
||| d S )Nr   rF   r   r   Tr   r2   r   r   r   r?   rs   r   ru   rv   r   r]   r   )r   r   rK   r
   r#   rx   r&   ry   r'   rz   r   r$   r   r%   r{   r|   r}   r-   r-   r.   <test_sarimax_simple_differencing_time_varying_trend_noshocks  s6    


$
  
r   c                 C   s   t dd}tj|dd}|dddg}d}t jj|d}t jj|d}|jd dd	f }|j|d
|||d}t j	||t dd f }	t
dgddg|	d d	 | }
t||
 |j|j|d
|||d}t||
 d S )Nr   rF   r   r   r   r   r?   r   rt   ru   rv      r]   r   rK   r
   r#   rx   r    r"   rz   r$   r%   r   r   r{   r   r~   r*   r   r   r<   r   r   r+   xr,   r   r-   r-   r.   &test_sarimax_time_varying_trend_shocks  s0    
  r   c                 C   s   t t dd}tj|dddd}|dddg}d	}t jj|d
}t jj|d
}|jd ddf }t	|d |j
|d|||d}t j||t dd f }	tdgddg|	d d | }
t	||
 |j
|j|d|||d}t	||
 d S )Nr   rF   r   r   Tr   r   r   r?   r   r   rt   r   ru   rv   r   r]   )r   r   rK   r
   r#   rx   r    r"   rz   r   r$   r%   r   r{   r   r-   r-   r.   :test_sarimax_simple_differencing_time_varying_trend_shocks,  s6    


  r   c               	   C   s  t dd} t ddd }tj| |d d d}|dddg}d}t ||jf}t ||jf}|jd	 }|j	||dd  d
|||d}t
dgddgt j|dgd f |dd   }	t||	 |j	|j||dd  d
|||d}
t|
|	 t||j||dd  d d S )Nr   rF   r   rC   r?   r4   r   r   rs   ru   r4   rw   r<   r   r   r]   r   	   )r   rK   r
   r#   rx   r&   ry   r'   rz   r$   r   r%   r   r{   r|   r~   r4   r*   r   r   r<   r   r   r+   r,   r   r-   r-   r.   'test_sarimax_time_varying_exog_noshocksO  s8    
 

  
 
r   c               	   C   s(  t t dd} t t ddd }tj| d|d d dd}|dd	dg}d
}t ||jf}t ||jf}|j	d }|j
||dd  d|||d}tdgddgt j|dgd f t |d
d   }	t||	 |j
|j||dd  d|||d}
t|
|	 t||j||dd  d d S )Nr   rF   r   rC   r   Tr   r4   r   r   r   r?   rs   ru   r   r   r]   r   r   )r   r   rK   r
   r#   rx   r&   ry   r'   rz   r$   r   r%   diffr   r{   r|   r   r-   r-   r.   ;test_sarimax_simple_differencing_time_varying_exog_noshocksu  s<    
 
  
 
r   c              	   C   s  t dd}t ddd }tj||d d d}|dddg}d}t jj|d	}t jj|d	}|jd dd
f }|j||dd  d|||d}	t j	||d d
 f }
t
dgddg|
|dd   | }t|	| |j|j||dd  d|||d}t|| d S )Nr   rF   r   rC   r?   r   r   r   r   rt   ru   r   r]   r   r   r~   r4   r*   r   r   r<   r   r   r+   r   r,   r   r-   r-   r.   %test_sarimax_time_varying_exog_shocks  s4    "
  
 r   c              	   C   s  t t dd}t t ddd }tj|d|d d dd}|dd	dg}d
}t jj|d}t jj|d}|jd ddf }|j	||dd  d|||d}	t j
||d d f }
tdgddg|
t |d
d   | }t|	| |j	|j||dd  d|||d}t|| d S )Nr   rF   r   rC   r   Tr   r   r   r?   r   r   rt   ru   r   r]   )r   r   rK   r
   r#   rx   r    r"   rz   r$   r%   r   r   r   r{   r   r-   r-   r.   9test_sarimax_simple_differencing_time_varying_exog_shocks  s<    "
  
 r   c            
      C   s   t dd} t| d}|ddg}d}t ||jf}t ||jf}|jd }|j	|d|||d}|d	 }t
|| |j	|j|d|||d}	t
|	| t
||| d S )
Nr   rF   llevelr   r?   rs   ru   rv   r   r   rK   r   rH   rx   r&   ry   r'   rz   r$   r   r{   r|   r}   r-   r-   r.   6test_unobserved_components_end_time_invariant_noshocks  s0    

  
r   c                 C   s   t dd}t|d}|ddg}d}t jj|d}t jj|d}|jd ddf }|j|d|||d	}|t 	t j
d
|d d f  | }	t||	 |j|j|d|||d	}
t|
|	 d S )Nr   rF   r   r   r?   r   rt   ru   rv   r   r   rK   r   rH   rx   r    r"   rz   r$   r   r%   r   r{   r   r-   r-   r.   4test_unobserved_components_end_time_invariant_shocks  s2    
  r   c               	   C   s   t dd} t ddd }tj| d|d d d}|dddg}d}t ||jf}t ||jf}|jd	 }|j	||dd  d
|||d}|d |dd   }	t
||	 |j	|j||dd  d
|||d}
t
|
|	 t
||j||dd  d d S )Nr   rF   r   rC   r   r?   r   r   rs   ru   r   r   r   r   r-   r-   r.   9test_unobserved_components_end_time_varying_exog_noshocks#  s4    

  
 
r   c              	   C   s   t dd}t ddd }tj|d|d d d}|dddg}d}t jj|d	}t jj|d	}|jd dd
f }|j||dd  d|||d}	|t 	t j
d|d d
 f  | |dd   }
t|	|
 |j|j||dd  d|||d}t||
 d S )Nr   rF   r   rC   r   r?   r   r   r   rt   ru   r   r   r   )r   r~   r4   r*   r   r   r<   r   r   r+   r,   r   r-   r-   r.   7test_unobserved_components_end_time_varying_exog_shocksH  s:    

  
 r   c            
   	   C   s   t dddd} tj| dd}|dddddddg}d}t ||jf}t ||jf}|j	d d d	f }|j
|d
|||d}|d d d f dt d  j}t|| |j
|j|d
|||d}	t|	| t||| d S )Nr   r   r?   rC   rZ   r   r   r   rt   ru   rv   )r   rK   reshaper   ra   rx   r&   ry   r'   rz   r$   rX   r   r{   r|   r}   r-   r-   r.   'test_varmax_end_time_invariant_noshocksh  s0     
  
r   c              	   C   s  t dddd}tj|dd}|dddddddg}d}t jj||jfd	}t jj||j	fd	}|j
d d d
f }|j|d|||d}t ||jf}	||	d< td|D ]$}
|	|
d   ||
d   |	|
< q|	| }	t||	 |j|j|d|||d}t||	 d S )Nr   r   r?   rC   rZ   r   r   r   r   rt   ru   rv   r   )r   rK   r   r   ra   rx   r    r"   ry   r'   rz   r$   r&   r5   sumr   r{   r   r~   r*   r   r   r<   r   r   r+   r,   r6   r   r-   r-   r.   %test_varmax_end_time_invariant_shocks  s6    "
  r   c                  C   sR  t dddd} tj| dd}|dddddddddddg}d}t ||jf}t ||jf}|j	d dd	 |j
d d d
f  }W 5 Q R X |j|d|||d}t ||jf}||d< dt dd }	td|D ],}
||
d   |	|
  ||
d   ||
< q|| }t|| |j|j|d|||d}t|| t||| d S )Nr   r   r?   rC   r3   r   r   r   r4   out_of_samplert   ru   rv   r   rF   )r   rK   r   r   ra   rx   r&   ry   r'   _set_final_predicted_staterz   copyr$   r5   r   r   r{   r|   )r~   r*   r   r   r<   r   r   r+   r,   	tmp_trendr6   r   r-   r-   r.   +test_varmax_end_time_varying_trend_noshocks  s<      *
  
r   c                 C   sJ  t dddd}tj|dd}|dddddddddddg}d}t jj||jfd	}t jj||j	fd	}|j
d dd
 |jd d df  }W 5 Q R X |j|d|||d}t ||jf}	||	d< dt dd }
td|D ],}|	|d   |
|  ||d   |	|< q|	| }	t||	 |j|j|d|||d}t||	 d S )Nr   r   r?   rC   r3   r   r   r   r   r   rt   ru   rv   r   rF   )r   rK   r   r   ra   rx   r    r"   ry   r'   r   rz   r   r$   r&   r5   r   r   r{   )r   r~   r*   r   r   r<   r   r   r+   r,   r   r6   r   r-   r-   r.   )test_varmax_end_time_varying_trend_shocks  s:      *
  r   c                  C   s  t dddd} t ddd }tj| d|d d d}|dddddddddg	}d}t ||jf}t ||jf}|j	|dd  dd	}|j
|dd
 |jd d df  }W 5 Q R X |j||dd  d|||d}	t ||jf}
||
d< td|D ]2}|
|d   |d|   ||d   |
|< q|
| }
t|	|
 |j|j||dd  d|||d}t||
 t|	|j||dd  d d S )Nr   r   r?   rC   rZ   r2   r4   r   r   r   r   rt   ru   r   r   r   )r   rK   r   r   ra   rx   r&   ry   r'   _validate_out_of_sample_exogr   rz   r   r$   r5   r   r   r{   r|   )r~   r4   r*   r   r   r<   r   tmp_exogr   r+   r,   r6   r   r-   r-   r.   *test_varmax_end_time_varying_exog_noshocks  s@     0
  
 
r   c                 C   s  t dddd}t ddd }tj|d d d|d d d}|d	d	d	d	d	d	d	d
d	g	}tj|d|d d d}|d	d	d	d	d	d	d	d
d	g	}d}t jj||jfd}t jj||j	fd}	|j
|dd  dd}
|j|
dd |jd d df  }W 5 Q R X |j||dd  d||	|d}|j||dd  d||	|jd d df d}t ||jf}||d< td|D ]2}||d   |d|   |	|d   ||< qr|| }t|| t|| |j|j||dd  d||	|d}t|| d S )Nr      rF   rC   r   r?   rZ   r   r   r   r   r   r   rt   ru   r   r`   r   )r   rK   r   r   ra   rx   r    r"   ry   r'   r   r   rz   r   r$   r&   r5   r   r   r{   )r   r~   r4   r*   r   rU   res2r   r<   r   r   r   r+   actual2r,   r6   r   r-   r-   r.   (test_varmax_end_time_varying_exog_shocks,  sN      0

  
 r   c                  C   s  t dddd} tj| ddd}d|j_|dddddg}d}t ||j	f}t ||j
f}|jd }|j|d	|||d
}t ||j	f}||d< td|D ] }	||	d  ||	d   ||	< q|| }t|| |j|j|d	|||d
}
t|
| t||| d S )Nr   r   r?   rC   rg   Tr   rs   ru   rv   r   r   rK   r   r	   rm   ro   filter_univariaterx   r&   ry   r'   rz   r$   r5   r   r{   r|   )r~   r*   r   r   r<   r   r   r+   r,   r6   r   r-   r-   r.   /test_dynamic_factor_end_time_invariant_noshocks\  s:    

  
r   c              	   C   s
  t dddd}tj|ddd}d|j_|dddddddg}d}t jj	||j
fd}t jj	||jfd}|jd	 }|j|d
|||d}t ||j
f}	||	d< td|D ] }
|	|
d  ||
d   |	|
< q|	| }	t||	 |j|j|d
|||d}t||	 d S )Nr   r   r?   rC   rg   Tr   r   rs   ru   rv   r   r   rK   r   r	   rm   ro   r   rx   r    r"   ry   r'   rz   r$   r&   r5   r   r{   r   r-   r-   r.   -test_dynamic_factor_end_time_invariant_shocks  s8    

  r   c               	   C   s\  t dddd} t ddd }tj| dd|d d d}d|j_|dddddddg}d}t ||j	f}t ||j
f}|jd }|j||dd  d	|||d
}t ||j	f}	||	d< td|D ] }
|	|
d  ||
d   |	|
< q|	| |dd d f  }	t||	 |j|j||dd  d	|||d
}t||	 t||j||dd  d d S )Nr   r   r?   rC   rk   Tr   rs   ru   r   r   r   r   )r~   r4   r*   r   r   r<   r   r   r+   r,   r6   r   r-   r-   r.   2test_dynamic_factor_end_time_varying_exog_noshocks  sB    



  
 
r   c              	   C   s  t dddd}t ddd }tj|d d dd|d d d}d|j_|d	d	d	d	d	d	d	g}tj|dd|d d d}d|j_|d	d	d	d	d	d	d	g}d}t jj	||j
fd
}t jj	||jfd
}	|jd }
|j||dd  d||	|
d}|j||dd  d||	|
d}t ||j
f}|
|d< td|D ]"}||d  |	|d   ||< q4|| |dd d f  }t|| t|| |j|j||dd  d||	|
d}t|| d S )Nr   r   rF   rC   r   r?   rk   Tr   r   rs   ru   r   rt   r   r   )r   r~   r4   r*   r   rU   r   r   r<   r   r   r+   r   r,   r6   r   r-   r-   r.   0test_dynamic_factor_end_time_varying_exog_shocks  sb    
   
   

 

  
 r   c                  C   s   t td} t| }|ddg}|jdtdtdd}t ddg}t|| |jddtdtdd}t 	dd}t jddg|d	}t|| t
|j|j d S )
NrC   r   r   r   r   r   rw   r   r      index)pdSeriesr   r&   r
   r#   rx   r$   r   
RangeIndexr   r   equalsr~   r*   r   r+   r,   ixr-   r-   r.   !test_pandas_univariate_rangeindex  s    


r   c                  C   s  t td} t| }|ddg}|jdtdtddd}t j	dgddgg}t j
td|d	}t|| t|j|j |jddtdtddd
}t dd}t j	dgddgg}t j
td||d}t|| t|j|j t|j|j d S )NrC   r   r   r   r   r   repetitionsyr   r\   columnsrw   r   r   r   r   r   r   )r   r   r   r&   r
   r#   rx   r$   
MultiIndexfrom_product	DataFramer   r   r   r   r   r   r~   r*   r   r+   r   r,   r   r-   r-   r.   -test_pandas_univariate_rangeindex_repetitions  s*    
 
 
r   c                  C   s   t jddtd} t jtd| d}t|}|ddg}|j	dtdtdd}t jd	dtd} t jd
d
g| d}t
|| t|j|j |j	ddtdtdd}t jddtd} t jd
d
g| d}t
|| d S )N2000rC   startZperiodsfreqr   r   r   r   r   2000-01r   r   2000-03r   
date_ranger   r   r   r&   r
   r#   rx   r$   r   r   r   r   r   r~   r*   r   r+   r,   r-   r-   r.    test_pandas_univariate_dateindex4  s"    

r   c                  C   s@  t jddtd} t jtd| d}t|}|ddg}|j	dtdtddd}t jd	dtd} t j
d
gddgg}t jtd| |d}t|| t|j|j |j	ddtdtddd}t jddtd} t j
d
gddgg}t jtd| |d}t|| t|j|j t|j|j d S )Nr   rC   r   r   r   r   r   r   r   r   r   r\   r   r   r   )r   r   r   r   r   r&   r
   r#   rx   r$   r   r   r   r   r   r   r   r   r   r~   r*   r   r+   r   r,   r-   r-   r.   ,test_pandas_univariate_dateindex_repetitionsK  s.    
 
 
r   c               	   C   s   t td} tj| dd}|dddddddg}|jdtdtdd	}t td}t|| |jddtdtdd
}t 	dd}t jtd|d}t|| t
|j|j d S )Nr\   rZ   r   r           r   r   rC   r   r   r   r   )r   r   r   r&   r   ra   rx   r$   r   r   r   r   r   r   r-   r-   r.   #test_pandas_multivariate_rangeindexf  s    

r   c               	   C   s0  t jtdddgd} tj| dd}|dddd	d
dd
g}|jdtdtddd}t j	ddgddgg}t jtd|d}t
|| t|j|j |jddtdtddd}t dd}t j	ddgddgg}t jtd||d}t
|| t|j|j t|j|j d S )Nr\   y1y2r   rZ   r   r   r   r   r   rC   r   r   r   rC   r   r   r   r   )r   r   r   r&   r   ra   rx   r$   r   r   r   r   r   r   r   r   r   r-   r-   r.   /test_pandas_multivariate_rangeindex_repetitions{  s*     
 
r   c               	   C   s   t jddtd} t jtd| d}tj|dd}|dd	d	d
dd	dg}|j	dtdtdd}t jtd| d}t
|| |j	ddtdtdd}t jddtd} t jtd| d}t
|| t|j|j d S )Nr   rC   r   r\   r   rZ   r   r   r   r   r   r   r   r   )r   r   r   r   r   r&   r   ra   rx   r$   r   r   r   r   r   r-   r-   r.   "test_pandas_multivariate_dateindex  s     

r   c               	   C   sH  t jddtd} t jtdddg| d}tj|dd	}|d
ddddddg}|j	dtdtddd}t j
ddgddgg}t jtd|| d}t|| t|j|j |j	ddtdtddd}t jddtd} t j
ddgddgg}t jtd| |d}t|| t|j|j t|j|j d S )Nr   rC   r   r\   r   r   )r   r   rZ   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r&   r   ra   rx   r$   r   r   r   r   r   r   r   r   r-   r-   r.   .test_pandas_multivariate_dateindex_repetitions  s,     
 
r   c                  C   s   t jddtd} t jtd| d}t|}|ddg}|j	ddtdtdd}|j	d| d tdtdd}t
|| t|j|j |j	dd	tdtdd}t
|| t|j|j d S )
Nr   rC   r   r   r   r   r   r   rt   r   )r   r~   r*   r   r,   r+   r-   r-   r.   test_pandas_anchor  s"    


r   c                 C   s   t td}|g d d S )Nr?   rC   r?   )r   r   r&   r$   r   r*   r-   r-   r.   test_time_varying  s    r   c                 C   s   t td}t|j|j|jf|d< t|j|d< d|dd d f< |dd d d d df d |d< |dd d d d df |d< t|d j|jj	|jj	f t|d j|j
|jj	f |jg dt|j
d	}t|d d
 |dd d d d
f j d S )Nr   obs_cov)r   .r   r   state_intercept	state_cov	selectionr?   )r   r   obs_intercept)r   r   r&   ry   r(   eyer   shapero   k_posdefr'   r$   r   rX   r   r*   simr-   r-   r.   test_time_varying_obs_cov  s     r   c                 C   s   t td}|dd d d d df d |d< |dd d d d df |d< d|dd d f< t|jj|jj|jf|d< t|jj|d< t|d j|j	|j	f t|d j|j
|jjf |g d}t||d	 j d S )
Nr   r   r   r   r   r   )r   .rt   r?   r   )r   r   r&   ro   r   r(   r   r   r   ry   r'   r$   r   rX   r   r-   r-   r.   test_time_varying_state_cov  s     r  c                 C   s   t td}|dd d d d df |d< |dd d d d df |d< t|d j|j|jf t|d j|jj|jjf |g d d S )Nr   r   r   r   r?   )	r   r   r&   r   r   ry   ro   r   r$   r   r-   r-   r.   test_time_varying_selection  s    r  )H__doc__Zstatsmodels.compat.pandasr   Znumpyr   Znumpy.testingr   r   r   Zpandasr   rI   Zscipy.signalr   Zstatsmodels.tools.sm_exceptionsr   r   Zstatsmodels.tsa.statespacer	   r
   r   r   Ztest_impulse_responsesr   r/   r7   rY   rf   rn   rq   rr   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   r   r   r   r   r   r   markZsmoker   r   r  r  r-   r-   r-   r.   <module>   st   d 6r-7$% !$&#&' $$% "",'-0)$,1
