
    "g{_              $       x   d dl Zd dlZd dlZd dlmZmZmZ d dl	m
ZmZ d dlmZ d Zd Zd Zej&                  j)                  dd d d d  ej*                  d	g      d
fdd d d  ej*                  dd	g      d
fdd d d  ej*                  ddg      d
fdd d d  ej*                  g d      d
fdd d d  ej*                  dgdz  dgz         d
fd dd d  ej*                  d	g      d
fd ddd ej*                  d	g      d
fddd d  ej*                  dd	g      d
fdddd ej*                  dd	g      d
fd d d d  ej*                  d	g      dfdd d d  ej*                  dd	g      dfdd d d  ej*                  ddg      dfdd d d  ej*                  g d      dfdd d d  ej*                  dgdz  dgz         dfd dd d  ej*                  d	g      dfd ddd ej*                  d	g      dfddd d  ej*                  dd	g      dfdddd ej*                  dd	g      dfg      d        Zej&                  j)                  dddddddddddddgd d dd d dd d d!fddd d d d d ddgdd d d!fdddgd ddgddgd ddgdd d d!fd"d#d$d%d&d'd(dd)gddddddd*d!d d fd+d)gddddddd*d!d d fd+d)d,gddddddd*d!d d fd d)d,gddddddd*d!d d fd-g      d.        Zd/ Zd0 Zej&                  j)                  d1d2d3dddg d4fd5d3dddg d6fd7d3dddg d8fd9d3dddg d:fd2d;dddd<d=gfd5d3d ddd<d=gfd5d3d!ddg d>fd5d3dd dg d6fd5d3dd!dg d6fd5d3ddd g d>fg
      d?        Zd@ Zy)A    N)assert_equalassert_allcloseassert_raises)constrain_stationary_univariate!unconstrain_stationary_univariate)specificationc                    |\  }}}|\  }	}
}}t        | j                  |||f       t        | j                  |	|
||f       t        | j                  |       t        | j                  |       t        | j
                  |       t        | j                  |	       t        | j                  |
       t        | j                  |       t        | j                  |       t        | j                  t        |t              r|nt        j                  d|dz                t        | j                  t        |t              r|nt        j                  d|dz                t        | j                   t        |	t              r|	nt        j                  d|	dz                t        | j"                  t        |t              r|nt        j                  d|dz                t        |t              r|d   n|}t        |t              r|d   n|}t        |	t              r|	d   n|	}t        |t              r|d   n|}t        | j$                  |       t        | j&                  |       t        | j(                  |       t        | j*                  |       t        | j,                  |||z  z          t        | j.                  |||z  z          t        | j0                  |       t        | j2                  |       t        | j4                  |       y )N   )r   orderseasonal_orderar_orderdiffma_orderseasonal_ar_orderseasonal_diffseasonal_ma_orderseasonal_periodsar_lags
isinstancelistnparangema_lagsseasonal_ar_lagsseasonal_ma_lagsmax_ar_ordermax_ma_ordermax_seasonal_ar_ordermax_seasonal_ma_ordermax_reduced_ar_ordermax_reduced_ma_orderenforce_stationarityenforce_invertibilityconcentrate_scale)specr   r   r#   r$   r%   pdqPDQsr   r   r   r    s                    k/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/arima/tests/test_specification.pycheck_attributesr/      sm   GAq!JAq!QaAY'$$q!Ql3"A"''+##Q'''+&&*!!T*!		!QU0CF!!T*!		!QU0CF &&!!T*!		!QU0CF&&!!T*!		!QU0CF 'q$/1R5QL&q$/1R5QL%/4%8AbEa%/4%8AbEa""L1""L1++-BC++-BC** 5 99;** 5 99; **,@A++-BC''):;    c                 f   |\  }}}|\  }}}}t        |      }t        |t              rt        |      n|}t        |t              rt        |      n|}t        |t              rt        |      n|}t        |t              rt        |      n|}t        |       }||	z   |
z   |z   |z   }|s|j	                  d       t        | j                  |       t        | j                  |       t        | j                  ||z   dkD         t        | j                  |dkD         t        | j                  |       t        | j                  |       t        | j                  |       t        | j                  |       t        | j                  |       t        | j                  ||z   |z   |z   |z   |z          t        | j                   |       t        | j"                  |	       t        | j$                  |
       t        | j&                  |       t        | j(                  |       t        | j*                  |       y )Nsigma2r   )lenr   r   intappendr   is_ar_consecutiveis_ma_consecutiveis_integratedis_seasonalk_exog_paramsk_ar_paramsk_ma_paramsk_seasonal_ar_paramsk_seasonal_ma_paramsk_params
exog_namesar_namesma_namesseasonal_ar_namesseasonal_ma_namesparam_names)r&   r   r   r#   r$   r%   r6   r7   r@   rA   rB   rC   rD   r'   r(   r)   r*   r+   r,   r-   r:   r;   r<   r=   r>   k_variance_paramsrE   s                              r.   check_propertiesrG   ;   s    GAq!JAq!Q
OM&q$/#a&QK&q$/#a&QK%/4%83q6a%/4%83q6a 112(836GG$%K8$''):;''):;##QUQY/!!1q5)##]3!!;/!!;/**,@A**,@A,{:%&(<="#$
 *-))''):;''):;!!;/r0   c           	      X
   t         j                  ||||	|
|f   }||||	|
d}|s||d<   t        | j                  |      |       t         | j                  d	i ||       t        | j                  |      d        t        t        | j
                  g        t        t        | j
                  dg|dd  j                         z          t        t        | j
                  t         j                  t         j                  |dd  f          t        t        | j
                  t         j                  t         j                  |dd  f          | j                  dkD  rxt         j                  |t        j                  |      |t        j                  |	      |
|f   }|rt        t        | j
                  |       nt        | j                  |      d        | j                  dkD  rxt         j                  ||t        j                  |      |	t        j                  |
      |f   }|rt        t        | j
                  |       nt        | j                  |      d        | j                  dkD  rxt         j                  |t        j                  |      |t        j                  |	      |
|f   }|rt        t        | j
                  |       nt        | j                  |      d        | j                   dkD  rxt         j                  ||t        j                  |      |	t        j                  |
      |f   }|rt        t        | j
                  |       nt        | j                  |      d        |sht         j                  ||||	|
df   }t        t        | j
                  |       t         j                  ||||	|
df   }t        t        | j
                  |       |}|}|	}|
}|}| j                  dkD  r |rt#        t        j$                  |            }| j                  dkD  r!|rt#        t        j$                  |             }| j                  dkD  r |rt#        t        j$                  |	            }| j                   dkD  r!|rt#        t        j$                  |             }|s|dz  }t         j                  ||||||f   }t         j                  ||||	|
|f   }t'        | j)                  |      |       t'        | j+                  |      |       t'        | j+                  | j)                  |            |       y )
N)exog_params	ar_params	ma_paramsseasonal_ar_paramsseasonal_ma_paramsr2   ar
   r           r         ? )r   r_r   split_paramsjoin_paramsvalidate_paramsr   
ValueErrortolistinfnanr   	ones_like
zeros_liker   r   r    unconstrainarrayr   unconstrain_paramsconstrain_params)r&   r   r   r#   r$   r%   rI   rJ   rK   rL   rM   r2   paramsdesiredunconstrained_ar_paramsunconstrained_ma_params unconstrained_seasonal_ar_params unconstrained_seasonal_ma_paramsunconstrained_sigma2unconstrained_paramss                       r.   check_methodsrh   e   s    UU	F #002G """6*G4!!!,G,f5%%f-t4 *d22B7 *d22%&*++--/ *d22%%qr
*+-*d22%%qr
*+- 1LL#MM,-
  *d&:&:FC--f5t<1LL#MM,-
 !*d&:&:FC--f5t<!!A%MM)$LL+,
  *d&:&:FC--f5t<!!A%MM)$LL+,
 !*d&:&:FC--f5t< 
 	j$"6"6?
 	j$"6"6? (''9$'9$!1!5"-bhhy.A"B1!6"-rxx	/B.B"C!!A%*>!345 	)!!A%*?"BCCD 	)3s:55((	 UU	F D++F35IJD))*>?Hd55f=>Hr0   zn,d,D,s,params,which      ?r'   r
   rP   皙ɿ      Y@   )rj   rP   rk      rO      r)   c           
         |dk(  r(| |d}}}t        d|dz         D cg c]  }d|z  	 }	}g }
n'd|| }}}g }	t        d|dz         D cg c]  }d|z  	 }
}|d | }||d }|d   }d|d|f\  }}}}|||f||||ff}d d d d}|j                         }|j                  ddg |	|
g g d	       |j                         }|j                  g ||g g |d
       t        j                  |||f||||f      }t        |g|i | t        |g|i | t        |g|i | t        j                  |||||||      }t        |g|i | t        |g|i | t        |g|i | y c c}w c c}w )Nr'   r   r
   ar.L%dma.L%dr   r#   r$   r%   Tr6   r7   r@   rA   rB   rC   rD   rI   rJ   rK   rL   rM   r2   )r   r   )r   r   r   r   r   r   r   )rangecopyupdater   SARIMAXSpecificationr/   rG   rh   )nr(   r+   r-   r`   whichr'   r)   irA   rB   rJ   rK   r2   r*   r,   argskwargsproperties_kwargsmethods_kwargsr&   s                        r.   test_specification_ar_or_mar     s   2 |Qa1*/1q5/:QHqL::Qa1*/1q5/:QHqL::r
IqIBZFAq!JAq!Q1I1a|$D $!%!F !!! " [[]N    --!QiAq!6D T+D+F+T6D6$56$000 --Q!1qBD T+D+F+T6D6$56$000i ;
 ;s   E&E+zUendog,exog,p,d,q,P,D,Q,s,enforce_stationarity,enforce_invertibility,concentrate_scale)NNr   r   r   r   r   r   r   TTF)NNr
   r   r
   r   r   r   r   TTF)NNr
   r
   r
   r   r   r   r   TTF)NNr
   r   r   r   r   r   rn   TTF)NNr   r   r   r
   r
   r
   rn   TTF)NNr
   r   r   r
   r   r   rn   TTF)NNr
   r   r   r
   r
   r
   rn   TTF)NNrl   r
      rn   r
   r      TTFr   TF)NNrl   r
   r   rn   r
   r   r   FFT)NNrl   r
   r   rn   r
   r   r   TFT)NNrl   r
   r   rn   r
   r   r   FTT)TNrl   r
   r   rn   r
   r   r   FTT)Nrl   rl   r
   r   rn   r
   r   r   FTT)Trl   rl   r
   r   rn   r
   r   r   FTT)yNrl   r
   r   rn   r
   r   r   FTTx1r   r   x2)r   rl   rl   r
   r   rn   r
   r   r   FTTc                 	   t        |t              rt        |      }|d   }n|x}}t        |t              rt        |      }|d   }n|x}}t        |t              rt        |      }|d   }n|x}}t        |t              rt        |      }|d   }n|x}}|||z  z   t        d|z  dz   d|z  |z  dz   |||z        z   dz   }| du rt	        j
                  |      dz  } nKt        | t              r.t        j                  t	        j
                  |      dz  |       } n| t        d      t        |t              rYt        |      D cg c]
  }d|dz   z   }}t	        j
                  |t        |      z        j                  |t        |            }ntt        |t              rT|}t	        j
                  |t        |      z        j                  |t        |            }t        j                  ||	      }n|g }nt        d
      |||f||||ff}|	|
|d}|j                         }t        |t               xr |dk(  }t        |t               xr |dk(  }|j                  |||t        |t              r|nt        d|dz         D cg c]  }d|z  	 c}t        |t              r|nt        d|dz         D cg c]  }d|z  	 c}t        |t              r|nt        d|dz         D cg c]
  }d||z  z   c}t        |t              r|nt        d|dz         D cg c]
  }d||z  z   c}d       |j                         }|j                  t	        j
                  t        |            |dk(  rg n t!        t	        j
                  |      dz        |dk(  rg n#t!        t	        j
                  |      dz   dz        |dk(  rg n t!        t	        j
                  |      dz
        |dk(  rg n#t!        t	        j
                  |      dz
  dz        |rg ndd       t#        j$                  | ||||f||||f|	|
|      }t'        |g|i | t)        |g|i | t+        |g|i | t#        j$                  | |||||||||	|
|      }t'        |g|i | t)        |g|i | t+        |g|i | y c c}w c c}w c c}w c c}w c c}w )Nr   r   r
   Tri   namezInvalid `endog` in test setup.zx%dcolumnszInvalid `exog` in test setup.rr   r   rp   rq   zar.S.L%dzma.S.L%drs   
   d   rn   g46<@rt   )exogr   r   r#   r$   r%   )r   r   r   r   r   r   r   r   r#   r$   r%   )r   r   r3   maxr   r   strpdSeriesrV   r4   ru   reshape	DataFramerv   rw   	constrainr   rx   r/   rG   rh   )endogr   r'   r(   r)   r*   r+   r,   r-   r#   r$   r%   r;   r   r<   r   r=   r   r>   r    nobsr{   r@   r|   r}   r~   r6   r7   r   r&   s                                 r.   test_specificationr   X  s   T !T!fu%&&l!T!fu%&&l!T"1v !"7884!T"1v !"7884 q1u9s1|+a/44q81<'0146 6 9::D
 }		$#%	E3			"))D/C/e<		9::$/4T{;!eq1uo;
;yyJ/088s:O	D$	
yyJ/088s:O||D*5	
899 1I1a|$D 4!6.F
 &q$//N4IQ4N&q$//N4IQ4N..  &a.aE!QUOF qLF
 &a.aE!QUOF qLF
 &a.aE!QUOF !a% F
 &a.aE!QUOF !a% FG H" [[]NyyZ1"Bbii,r12"Bryy-2c9:&!+Bbii 459:&!+Bryy!56;sBC)"v7 8" --D!QiAq!13+-D T+D+F+T6D6$56$000 --DQ!1q13+-D T+D+F+T6D6$56$000] <2FFFFs   R;S 9S*S
Sc            	      J   t        j                         } t        | j                  d       t        | j                  d       t        j                  t        j                  dgd      t        j                  ddggddg      d	d
ddd      } d}t        t        |       |       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r
   r
   rl   )rl   r
   r   r   FT)r   r   r   r   r#   r$   r%   zSARIMAXSpecification(endog=y, exog=['x1', 'x2'], order=(1, 1, 2), seasonal_order=(2, 1, 0, 12), enforce_stationarity=False, enforce_invertibility=False, concentrate_scale=True))	r   rx   r   r   r   r   r   r   repr)r&   ra   s     r.   	test_miscr     s    --/DY'$$l3 --ii#&\\Aq6(T4L9"% D*G dW%r0   c                     t        t        t        j                  dd       t        t        t        j                  dd       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d	       t        t        t        j                  d
       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  dt	        j
                  d             t        j                  d      } t        t        | j                         t        t        | j                  ddg       y )Nr
   r   r   r
   )r   r   )r   r   )r   r   r   )r   )      ?r   r   )r   r   r   )r   r   r   )r   )r   r   r   rn   )r   )r   r   r   rn   )r   r   r   rn   )r   r   r   rn   )r
   r   r   r   )r
   r   r   r   )r
   r   r   r
   )r
   )r   rl   )r   r   )r   g?g333333?)rJ   )r   rV   r   rx   r   zerosrT   r&   s    r.   test_invalidr     s   *m@@!A/*m@@!*aA*m@@"$*m@@#%*m@@"$*m@@#%*m@@*m@@!/1*m@@!.0*m@@!/1*m@@!.0*m@@!/1*m@@!-/*m@@!.0*m@@!-/*m@@!%' *m@@!'):< --q9D*d../*d..3*Er0   zWorder,seasonal_order,enforce_stationarity,enforce_invertibility,concentrate_scale,validr   r   )yule_walkerburginnovationshannan_rissaneninnovations_mle
statespacer   )r   r   r   r   r   )r   r   r
   )r   r   r   r   )r
   r   r
   )r   r   r   )r
   r   r   rn   r   r   )r   r   r   r   c                 \   t        j                  | ||||      }h d}t        |      }t        |j                  |       |D ]  }	t        |j                  |	      d         |j                  |      D ])  }	t        |	|       t        t        |j
                  |	       + t        j                  t        j                  g| ||||      }t        |j                  dh       t        |j                  d      d        |j                  dg      D ]  }	t        t        |j
                  |	        y )N)r   r   r#   r$   r%   >   r   r   r   r   r   r   )r   r   r   r#   r$   r%   r   )r   rx   setr   valid_estimatorsvalidate_estimator
differenceprintr   rV   r   rY   )
r   r   r#   r$   r%   validr&   
estimatorsra   	estimators
             r.   test_valid_estimatorsr   7  s#   F --N13+	-DFJ%jG&&0 ?	T,,Y7>?**73 F	i-.j$"9"99EF
 --vvhN13+-D &&7((6=**L>: F	j$"9"99EFr0   c                  b    t        j                         } t        t        | j                  d       y )Nnot_an_estimator)r   rx   r   rV   r   r   s    r.   test_invalid_estimatorr   x  s#    --/D*d557IJr0   )numpyr   pandasr   pytestnumpy.testingr   r   r    statsmodels.tsa.statespace.toolsr   r   r   r\   statsmodels.tsa.arimar   r/   rG   rh   markparametrizer]   r   r   r   r   r   r   rQ   r0   r.   <module>r      s      F F6 0*<Z'0T^HB /1a2$%1a3)$c*1a4,'-1a+,c2Aq("((C52:./51a2$%1a2$%1a3)$c*1a3)$c*1a2$%1a3)$c*1a4,'-1a+,c2Aq("((C52:./51a2$%1a2$%1a3)$c*1a3)$c*-2 0711071t  . 98888889 
4!QAq!Q4u=	4Aq!QA4u=	4!a!Q!QQFAtT5I ;99 :668	D61aAq!Rd;4&!Q1aBtT:4,1aAq"eT4@	D$<Aq!Q2udDA5;1 B}1C B}1@&('FT 4 
L$d
+	, 
L$d
+	, 
L$d
	 
L$d	=	?	L$d
\	*	, 
L$d
\	*	,	L%t	A	C	L$d
	 
L$t
	 
L$d	A	C76@FA@FBKr0   