
    !g'                        d dl Z ej                   ej                  e      j
                        Z G d d      Zd Zd Z	defdZ
defdZdefd	Zdefd
ZdefdZdefdZdefdZdefdZdefdZdefdZdefdZy)    Nc                       e Zd ZddZed        Zej                  d        Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zed        Zej                  d        Zy)HoltWintersArgsc                    || _         || _        || _        || _        t	        j
                  |      | _        t	        j
                  |      | _        t	        j
                  ||z   dz
        | _        || _	        || _
        || _        y )N   )_xi_p_bounds_ynpempty_lvl_b_s_m_n
_transform)selfxipboundsymn	transforms           c/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/holtwinters/_smoothers.py__init__zHoltWintersArgs.__init__   si    HHQK	((1+((1q519%#    c                     | j                   S Nr   r   s    r   r   zHoltWintersArgs.xi   s    xxr   c                     || _         y r   r    r   values     r   r   zHoltWintersArgs.xi   s	    r   c                     | j                   S r   )r   r!   s    r   r   zHoltWintersArgs.p       wwr   c                     | j                   S r   )r	   r!   s    r   r   zHoltWintersArgs.bounds   s    ||r   c                     | j                   S r   )r
   r!   s    r   r   zHoltWintersArgs.y#   r&   r   c                     | j                   S r   )r   r!   s    r   lvlzHoltWintersArgs.lvl'   s    yyr   c                     | j                   S r   )r   r!   s    r   bzHoltWintersArgs.b+   r&   r   c                     | j                   S r   )r   r!   s    r   szHoltWintersArgs.s/   r&   r   c                     | j                   S r   )r   r!   s    r   r   zHoltWintersArgs.m3   r&   r   c                     | j                   S r   )r   r!   s    r   r   zHoltWintersArgs.n7   r&   r   c                     | j                   S r   r   r!   s    r   r   zHoltWintersArgs.transform;   s    r   c                     || _         y r   r2   r#   s     r   r   zHoltWintersArgs.transform?   s	    r   N)F)__name__
__module____qualname__r   propertyr   setterr   r   r   r*   r,   r.   r   r   r    r   r   r   r      s   
$   YY                       r   r   c                 &   | dd \  }}}|d   r4t        t        |d         }t        dt        z
  |d         }||||z
  z  z   }|d   r|d   }t        ||d         }||||z
  z  z   }|d	   r"|d
   }t        d|z
  |d         }||||z
  z  z   }|||fS )a  
    Transform parameters from the unrestricted [0,1] space
    to satisfy both the bounds and the 2 constraints
    beta <= alpha and gamma <= (1-alpha)

    Parameters
    ----------
    p : ndarray
        The parameters to transform
    sel : ndarray
        Array indicating whether a parameter is being estimated. If not
        estimated, not transformed.
    bounds : ndarray
        2-d array of bounds where bound for element i is in row i
        and stored as [lb, ub]

    Returns
    -------

    N   r   r   r   r   r   r   r   r   r   r      r@   r         ?r@   r   maxLOWER_BOUNDminr   selr   ar,   glbubs           r   to_restrictedrN   D   s    * eGAq!
1vfTl+[&,/b2g
1vD\F4L!b2g
1vD\q&,'b2ga7Nr   c                 2   | dd \  }}}|d   r4t        t        |d         }t        dt        z
  |d         }||z
  ||z
  z  }|d   r"|d   }t        | d   |d         }||z
  ||z
  z  }|d	   r%|d
   }t        d| d   z
  |d         }||z
  ||z
  z  }|||fS )z
    Transform parameters to the unrestricted [0,1] space

    Parameters
    ----------
    p : ndarray
        Parameters that strictly satisfy the constraints

    Returns
    -------
    ndarray
        Parameters all in (0,1)
    Nr;   r   r<   r   r=   r>   r?   r@   rA   rB   rC   rD   rH   s           r   to_unrestrictedrP   k   s    $ eGAq!
1vfTl+[&,/VR 
1vD\1vd|$VR 
1vD\qtVD\*VR a7Nr   hw_argsc                    | |j                   |j                  j                  t              <   |j                  r0t        |j                   |j                  |j                        \  }}}n|j                   dd \  }}|j                   dd \  }}}d|z
  }d|z
  }	||j                  z  }
||j                  d<   ||j                  d<   |||||	|
fS )z,
    Initialization for the Holt Models
    Nr@   r;      r   r   )
r   r   astypeboolr   rN   r   r   r*   r,   )xrQ   alphabeta_l0b0phialphacbetacy_alphas              r   	holt_initr`      s    
 *+GIIgjj%& &wyy'**gnnMtQiimt))Aa.KBCYFHEgiiGGKKNGIIaL$VUG33r   c                     t        | |      \  }}}}}}|j                  }|j                  }t        d|      D ]  }||dz
     |||dz
     z  z   ||<    |j                  |z
  S )zH
    Simple Exponential Smoothing
    Minimization Function
    (,)
    r   )r`   r   r*   ranger   )rV   rQ   rY   r]   r_   r   r*   is           r   holt__rd      su     #,Aw"7Aq!VQ		A
++C1a[ <!a%.Vs1q5z%:;A<99s?r   c                 D   t        | |      \  }}}}}}|j                  }|j                  }	t        d|j                        D ]H  }
||
dz
     |||
dz
     |	|
dz
     |z  z  z  z   ||
<   |||
   ||
dz
     z  z  ||	|
dz
     |z  z  z   |	|
<   J |j
                  ||	|z  z  z
  S )z]
    Multiplicative and Multiplicative Damped
    Minimization Function
    (M,) & (Md,)
    r   r`   r*   r,   rb   r   r   rV   rQ   rY   rX   r\   r]   r^   r_   r*   r,   rc   s              r   holt_mul_damrh      s     ,5Q+@(AtS&%
++C		A1gii  J!a%.Vs1q5zAa!eHO/K%LMAAQU+,1q5S1HI!J 99sQV|##r   c                 D   t        | |      \  }}}}}}|j                  }|j                  }	t        d|j                        D ]H  }
||
dz
     |||
dz
     ||	|
dz
     z  z   z  z   ||
<   |||
   ||
dz
     z
  z  ||z  |	|
dz
     z  z   |	|
<   J |j
                  |||	z  z   z
  S )zQ
    Additive and Additive Damped
    Minimization Function
    (A,) & (Ad,)
    r   rf   rg   s              r   holt_add_damrj      s     ,5Q+@(AtS&%
++C		A1gii  I!a%.Vs1q5zC!AE(N/J%KLAAQU+,qQx1GH!I 99cAg&&r   c           	      t   | |j                   |j                  j                  t              <   |j                  r0t        |j                   |j                  |j                        \  }}}n|j                   dd \  }}}|j                   dd \  }}}|j                   dd }d|z
  }	d|z
  }
d|z
  }||j                  z  }||j                  z  }d|j                  dd d|j                  dd d|j                  dd ||j                  d<   ||j                  d<   ||j                  d|j                   |||||	|
|||f	S )z3Initialization for the Holt Winters Seasonal ModelsNr;   rS   r   r   )r   r   rT   rU   r   rN   r   r   r*   r,   r.   r   )rV   rQ   rW   rX   gammarZ   r[   r\   s0r]   r^   gammacr_   y_gammas                 r   holt_win_initrp      s-   )*GIIgjj%&*IIwzz7>>
tU %YYr]tU))Aa.KBC	12BYFHEYFgiiGgiiGGKKNGIIaLGIIaLGKKNGIIaLGIIk		$sFE67GKKr   c           	      j   t        | |      \	  }}}}}}}}}|j                  }|j                  }|j                  }	t	        d|j
                        D ]H  }
||
dz
     ||
dz
     z  |||
dz
     z  z   ||
<   ||
dz
     ||
dz
     z  |||
dz
     z  z   ||
|	z   dz
  <   J |j                  ||d|	dz
    z  z
  S )zD
    Multiplicative Seasonal
    Minimization Function
    (,M)
    r   Nrp   r*   r.   r   rb   r   r   )rV   rQ   rY   r]   rn   r_   ro   r*   r.   r   rc   s              r   holt_win__mulrs      s     9F	795Q1aFGW ++C		A		A1gii  M!a%.1QU8+#a!e*0EFAA#a!e*5&1QU8:KL!a%!)M 99sQz1q5]***r   c           	      v   t        | |      \	  }}}}}}}}}|j                  }	|j                  }
|j                  }t	        d|j
                        D ]N  }||dz
     ||
|dz
     z  z
  ||	|dz
     z  z   |	|<   ||dz
     ||	|dz
     z  z
  ||
|dz
     z  z   |
||z   dz
  <   P |j                  |	z
  |
d|dz
    z
  S )z>
    Additive Seasonal
    Minimization Function
    (,A)
    r   Nrr   )rV   rQ   rW   rY   rl   r]   rn   r_   ro   r*   r.   r   rc   s                r   holt_win__addru     s     AN	7A=UAuaFGW ++C		A		A1gii  
QU^!a% 01Vs1q5z5JK 	A AENes1q5z23v!a%7HI 	
!a%!)	
 99s?Qz1q5]**r   c           	         t        | |      \	  }}}}}}}}}	|j                  }
|j                  }|j                  }|j                  }t        d|j                        D ]  }||dz
     ||dz
     z  ||
|dz
     |||dz
     z  z   z  z   |
|<   ||
|   |
|dz
     z
  z  ||z  ||dz
     z  z   ||<   |	|dz
     |
|dz
     |||dz
     z  z   z  |||dz
     z  z   |||z   dz
  <    |j                  |
||z  z   |d|dz
    z  z
  S )zp
    Additive and Additive Damped with Multiplicative Seasonal
    Minimization Function
    (A,M) & (Ad,M)
    r   N)rp   r*   r,   r.   r   rb   r   r   )rV   rQ   rY   rX   r\   r]   r^   rn   r_   ro   r*   r,   r.   r   rc   s                  r   holt_win_add_mul_damrw     s]     	a!
		
++C		A		A		A1gii  
!a%.1QU8+c!a%j31q5>12
A AQU+,qQx1GH!A#a!e*sQq1uX~*EFQq1uX
!a%!)
 99cAg:q1uX666r   c           	         t        | |      \	  }}}}}}}}}	|j                  }
|j                  }|j                  }|j                  }t        d|j                        D ]  }||dz
     ||dz
     z  ||
|dz
     ||dz
     |z  z  z  z   |
|<   ||
|   |
|dz
     z  z  |||dz
     |z  z  z   ||<   |	|dz
     |
|dz
     ||dz
     |z  z  z  |||dz
     z  z   |||z   dz
  <    |j                  |
||z  z  |d|dz
    z  z
  S )z|
    Multiplicative and Multiplicative Damped with Multiplicative Seasonal
    Minimization Function
    (M,M) & (Md,M)
    r   Nrp   r*   r.   r,   r   rb   r   r   )rV   rQ   rY   rX   r\   r]   r^   rn   r_   ro   r*   r.   r,   r   rc   s                  r   holt_win_mul_mul_damrz   7  s]     	a!
		
++C		A		A		A1gii  
!a%.1QU8+c!a%j1QU8s?23
A AQU+,1q5S1HI!A#a!e*qQx3*FGQq1uX
!a%!)
 99af*a!eH555r   c           	         t        | |      \	  }}}}}}}}	}
|j                  }|j                  }|j                  }|j                  }t        d|j                        D ]  }|	|dz
     |||dz
     z  z
  |||dz
     |||dz
     z  z   z  z   ||<   |||   ||dz
     z
  z  ||z  ||dz
     z  z   ||<   |
|dz
     |||dz
     |||dz
     z  z   z  z
  |||dz
     z  z   |||z   dz
  <    |j                  |||z  z   |d|dz
    z   z
  S )zj
    Additive and Additive Damped with Additive Seasonal
    Minimization Function
    (A,A) & (Ad,A)
    r   Nry   rV   rQ   rW   rX   rl   r\   r]   r^   rn   r_   ro   r*   r.   r,   r   rc   s                   r   holt_win_add_add_damr}   W  ss     	a!

++C		A		A		A1gii  
QU^qQx!QUcAa!eHn457 	A
 AQU+,qQx1GH!AENAE
S1QU8^346!a% " 	
!a%!)
 99sQw!JAh-788r   c           	         t        | |      \	  }}}}}}}}	}
|j                  }|j                  }|j                  }|j                  }t        d|j                        D ]  }|	|dz
     |||dz
     z  z
  |||dz
     ||dz
     |z  z  z  z   ||<   |||   ||dz
     z  z  |||dz
     |z  z  z   ||<   |
|dz
     |||dz
     ||dz
     |z  z  z  z
  |||dz
     z  z   |||z   dz
  <    |j                  ||z  |z  |d|dz
    z   z
  S )zv
    Multiplicative and Multiplicative Damped with Additive Seasonal
    Minimization Function
    (M,A) & (M,Ad)
    r   Nry   r|   s                   r   holt_win_mul_add_damr   {  ss     	a!

++C		A		A		A1gii  
QU^qQx!QUaAh#o568 	A
 AQU+,1q5S1HI!AENAE
Qq1uX_457!a% " 	
!a%!)
 99sQ!JAh-788r   )numpyr   sqrtfinfofloatepsrF   r   rN   rP   r`   rd   rh   rj   rp   rs   ru   rw   rz   r}   r   r9   r   r   <module>r      s    bgghbhhuo))*;  ; |$N!H4/ 44 $_ $'_ 'Lo L4+o +$+o +,7_ 7@6_ 6@!9_ !9H!9_ !9r   