U
    md                    @   s  d Z ddlZddlZddlmZmZmZ ddl	Z	ddl
m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
 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/d0 Z)d1d2 Z*d3d4 Z+d5d6 Z,d7d8 Z-d9d: Z.d;d< Z/d=d> Z0d?d@ Z1dAdB Z2dCdD Z3dEdF Z4dGdH Z5dIdJ Z6dKdL Z7dMdN Z8dOdP Z9dQdR Z:dSdT Z;dUdV Z<dWdX Z=dYdZ Z>d[d\ Z?e	j@jAd]d^ ZBd_d` ZCdadb ZDe	j@jAdcdd ZEdS )ezR
Tests for simulation of time series

Author: Chad Fulton
License: Simplified-BSD
    N)assert_assert_allcloseassert_equal)lfilter   )TVSS)SpecificationWarningEstimationWarning)sarimax
structuralvarmaxdynamic_factorc                  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,   g/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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   r1   r   )r   r   r    r!   r
   r"   r#   r$   r%   r&   ranger   )r'   r(   r3   r)   r*   r+   ir1   r,   r,   r-   test_arma_direct3   s    




 


0





 


r6   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   )r3   r:   )r3   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)rC         iT)cycleg333333?)rF   Zstochastic_cycle)r   r   r    r!   r%   r   UnobservedComponentsr
   r"   r#   r&   r   r   pytestwarnsaranger$   c_Ztilecossinarrayr4   dot)r'   r(   r3   eps1eps2eps3mod1mod2r*   r+   r)   warningr=   x1Zx2TZstatesr5   r,   r,   r-   test_structural   sZ   












    $
 
 $
 "
 
 "
 
 

 *

 rX   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   r8   r9   r   )rB   r   nr0   rB   r   r   r   r   r   r   )r   rB   )r   r   rB   zVARMA\(p,q\) models is notr<   rB   rB   )rB   r   rB   g?皙ɿr/   r>   gr   r   r   rB   )r   r   T)r   r1   Zmeasurement_errorr@   )r   r1   r3      )r   r   )r   r   r    r!   r%   r   VARMAXr
   r"   r#   r&   r   r	   rH   rI   rN   r$   ravelrK   r4   rO   start_params)r'   r(   r3   rP   rQ   rR   rS   rT   r*   r+   rU   r=   
transitionr)   stater5   r,   r,   r-   test_varmaxL  s    

















 


 
$
    re   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   r8   r9   r   rB   	k_factorsfactor_orderrZ   r   g皙?r   r   r   r@   r   rg   rh   r3   r^   r_      T)rg   rh   r3   Zerror_orderZ	error_var)r   r   r    r!   r%   r   DynamicFactorr
   r"   r#   rK   r&   r   rb   )r'   r(   r3   rP   rQ   rR   rS   rT   r*   r+   r)   r,   r,   r-   test_dynamic_factor  sX    




 

..   rm   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 )Nr7   r   r   r   r8   r9   r   r   r   r   r   )r   r?   )r;   r   r   r]   rY   r0   rf   ri   )r   r   r    r!   r%   r
   r"   ssmZinitialize_knownr#   r   rJ   r   rG   Zdiagr   r`   r$   ra   rK   r   rl   )	r'   r(   rP   rQ   rR   r)   r*   rc   tmpr,   r,   r-   test_known_initialization  sH    


rp   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   r/   r0   r   r>   )r
   r"   r#   r   r   Zones)Zn_simulationsr)   r*   r,   r,   r-   test_sequential_simulate"  s    rq   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   rE   r   r   r>   .r^   endanchorr;   r   r   )r   rJ   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_noshocks0  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   rE   r   r   r   Tr   simple_differencingr   r   r>   rr   r^   rt   ru   r   )r   cumsumrJ   r
   r"   rw   r%   rx   r&   ry   r   r#   rz   r{   r|   r,   r,   r-   <test_sarimax_simple_differencing_end_time_invariant_noshocksT  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   rE   r   r   r>   r   rs   rt   ru   r   )r   rJ   r
   r"   rw   r   r!   ry   r#   r   r$   r   rz   reset_randomstater}   r)   r~   r   r;   r   r   r*   r+   r   r,   r,   r-   "test_sarimax_time_invariant_shocksy  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   rE   r   Tr   r   r   r>   r   r   rs   rt   ru   r   )r   r   rJ   r
   r"   rw   r   r!   ry   r#   r   r$   r   rz   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   rE   tr1   r   r   r>   rr      rt   ru   r\      )r   rJ   r
   r"   rw   r%   rx   r&   ry   r   r#   r   r$   rz   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   rE   r   r   Tr   r1   r   r   r   r>   rr   r   rt   ru   r   r\   r   )r   r   rJ   r
   r"   rw   r%   rx   r&   ry   r   r#   r   r$   rz   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   rE   r   r   r   r   r>   r   rs   rt   ru      r\   r   rJ   r
   r"   rw   r   r!   ry   r#   r$   r   r   rz   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   rE   r   r   Tr   r   r   r>   r   r   rs   r   rt   ru   r   r\   )r   r   rJ   r
   r"   rw   r   r!   ry   r   r#   r$   r   rz   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   rE   r   rB   r>   r3   r   r   rr   rt   r3   rv   r;   r   r   r\   r   	   )r   rJ   r
   r"   rw   r%   rx   r&   ry   r#   r   r$   r   rz   r{   r}   r3   r)   r~   r   r;   r   r   r*   r+   r   r,   r,   r-   'test_sarimax_time_varying_exog_noshocksF  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   rE   r   rB   r   Tr   r3   r   r   r   r>   rr   rt   r   r   r\   r   r   )r   r   rJ   r
   r"   rw   r%   rx   r&   ry   r#   r   r$   diffr   rz   r{   r   r,   r,   r-   ;test_sarimax_simple_differencing_time_varying_exog_noshocksl  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   rE   r   rB   r>   r   r   r   r   rs   rt   r   r\   r   r   r}   r3   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   rE   r   rB   r   Tr   r   r   r>   r   r   rs   rt   r   r\   )r   r   rJ   r
   r"   rw   r   r!   ry   r#   r$   r   r   r   rz   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   rE   llevelr   r>   rr   rt   ru   r   r   rJ   r   rG   rw   r%   rx   r&   ry   r#   r   rz   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   rE   r   r   r>   r   rs   rt   ru   r   r   rJ   r   rG   rw   r   r!   ry   r#   r   r$   r   rz   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   rE   r   rB   r   r>   r   r   rr   rt   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   rE   r   rB   r   r>   r   r   r   rs   rt   r   r   r   )r   r}   r3   r)   r~   r   r;   r   r   r*   r+   r   r,   r,   r-   7test_unobserved_components_end_time_varying_exog_shocks?  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>   rB   rY   r   r   r   rs   rt   ru   )r   rJ   reshaper   r`   rw   r%   rx   r&   ry   r#   rW   r   rz   r{   r|   r,   r,   r-   'test_varmax_end_time_invariant_noshocks_  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>   rB   rY   r   r   r   r   rs   rt   ru   r   )r   rJ   r   r   r`   rw   r   r!   rx   r&   ry   r#   r%   r4   sumr   rz   r   r}   r)   r~   r   r;   r   r   r*   r+   r5   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>   rB   r2   r   r   r   r3   out_of_samplers   rt   ru   r   rE   )r   rJ   r   r   r`   rw   r%   rx   r&   _set_final_predicted_statery   copyr#   r4   r   r   rz   r{   )r}   r)   r~   r   r;   r   r   r*   r+   	tmp_trendr5   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>   rB   r2   r   r   r   r   r   rs   rt   ru   r   rE   )r   rJ   r   r   r`   rw   r   r!   rx   r&   r   ry   r   r#   r%   r4   r   r   rz   )r   r}   r)   r~   r   r;   r   r   r*   r+   r   r5   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>   rB   rY   r1   r3   r   r   r   r   rs   rt   r   r   r   )r   rJ   r   r   r`   rw   r%   rx   r&   _validate_out_of_sample_exogr   ry   r   r#   r4   r   r   rz   r{   )r}   r3   r)   r~   r   r;   r   tmp_exogr   r*   r+   r5   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      rE   rB   r   r>   rY   r   r   r   r   r   r   rs   rt   r   r_   r   )r   rJ   r   r   r`   rw   r   r!   rx   r&   r   r   ry   r   r#   r%   r4   r   r   rz   )r   r}   r3   r)   r~   rT   res2r   r;   r   r   r   r*   actual2r+   r5   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>   rB   rf   Tr   rr   rt   ru   r   r   rJ   r   r   rl   rn   filter_univariaterw   r%   rx   r&   ry   r#   r4   r   rz   r{   )r}   r)   r~   r   r;   r   r   r*   r+   r5   r   r,   r,   r-   /test_dynamic_factor_end_time_invariant_noshocksS  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>   rB   rf   Tr   r   rr   rt   ru   r   r   rJ   r   r   rl   rn   r   rw   r   r!   rx   r&   ry   r#   r%   r4   r   rz   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>   rB   rj   Tr   rr   rt   r   r   r   r   )r}   r3   r)   r~   r   r;   r   r   r*   r+   r5   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   rE   rB   r   r>   rj   Tr   r   rr   rt   r   rs   r   r   )r   r}   r3   r)   r~   rT   r   r   r;   r   r   r*   r   r+   r5   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 )
NrB   r   r   r   r   r   rv   r   r      index)pdSeriesr   r%   r
   r"   rw   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 )NrB   r   r   r   r   r   repetitionsyr   r[   columnsrv   r   r   r   r   r   r   )r   r   r   r%   r
   r"   rw   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dd} t jtd| d}t|}|ddg}|jdtdtdd	}t jd
ddd} t jddg| d}t	|| t
|j|j |jddtdtdd}t jdddd} t jddg| d}t	|| d S )N2000rB   MstartZperiodsfreqr   r   r   r   r   2000-01r   r   2000-03r   
date_ranger   r   r%   r
   r"   rw   r#   r   r   r   r   r   r}   r)   r~   r*   r+   r,   r,   r-    test_pandas_univariate_dateindex+  s"    

r   c                  C   s@  t jdddd} t jtd| d}t|}|ddg}|jdtdtddd	}t jd
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 jdddd} t j	
dgddgg}t jtd| |d}t|| t|j|j t|j|j d S )Nr   rB   r   r   r   r   r   r   r   r   r   r   r[   r   r   r   )r   r   r   r   r%   r
   r"   rw   r#   r   r   r   r   r   r   r   r   r   r}   r)   r~   r*   r   r+   r,   r,   r-   ,test_pandas_univariate_dateindex_repetitionsB  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[   rY   r   r           r   r   rB   r   r   r   r   )r   r   r   r%   r   r`   rw   r#   r   r   r   r   r   r   r,   r,   r-   #test_pandas_multivariate_rangeindex]  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   rY   r   r   r   r   r   rB   r   r   r   rB   r   r   r   r   )r   r   r   r%   r   r`   rw   r#   r   r   r   r   r   r   r   r   r   r,   r,   r-   /test_pandas_multivariate_rangeindex_repetitionsr  s*     
 
r   c               	   C   s   t jddd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dd} t jtd| d}t	|| t
|j|j d S )Nr   rB   r   r   r[   r   rY   r   r   r   r   r   r   r   r   )r   r   r   r   r%   r   r`   rw   r#   r   r   r   r   r   r,   r,   r-   "test_pandas_multivariate_dateindex  s     

r   c               	   C   sH  t jddd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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   rB   r   r   r[   r   r   )r   r   rY   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r%   r   r`   rw   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d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   rB   r   r   r   r   r   r   r   rs   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>   rB   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%   rx   r'   eyer   shapern   k_posdefr&   r#   r   rW   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   .rs   r>   r   )r   r   r%   rn   r   r'   r   r   r   rx   r&   r#   r   rW   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   rx   rn   r   r#   r   r,   r,   r-   test_time_varying_selection  s    r  )F__doc__numpyr   Zpandasr   Znumpy.testingr   r   r   rH   Zscipy.signalr   Ztest_impulse_responsesr   Zstatsmodels.tools.sm_exceptionsr   r	   Zstatsmodels.tsa.statespacer
   r   r   r   r.   r6   rX   re   rm   rp   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   r   r   r   r   r   r   markZsmoker   r   r  r  r,   r,   r,   r-   <module>   sr   d 6r-7$% !$&#&' $$% "",'-0)$,1
