
    M/Ph'                         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dS )    Nc                   2   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dS )HoltWintersArgsFc                 
   || _         || _        || _        || _        t	          j        |          | _        t	          j        |          | _        t	          j        ||z   dz
            | _        || _	        || _
        || _        d S )N   )_xi_p_bounds_ynpempty_lvl_b_s_m_n
_transform)selfxipboundsymn	transforms           f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/holtwinters/_smoothers.py__init__zHoltWintersArgs.__init__   sn    HQKK	(1++(1q519%%#    c                     | j         S Nr   r   s    r   r   zHoltWintersArgs.xi   s	    xr   c                     || _         d S r   r    r   values     r   r   zHoltWintersArgs.xi   s    r   c                     | j         S r   )r   r!   s    r   r   zHoltWintersArgs.p   	    w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
    y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                     || _         d S 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      sr       
$ 
$ 
$ 
$   X Y  Y   X   X   X   X   X   X   X   X   X          r   r   c                    | dd         \  }}}|d         rDt          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                    | dd         \  }}}|d         rDt          t          |d                   }t          dt          z
  |d                   }||z
  ||z
  z  }|d         r/|d         }t          | d         |d                   }||z
  ||z
  z  }|d	         r2|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                 R   | |j         |j                            t                    <   |j        r%t          |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    
 *+GIgj%%&  $&wy'*gnMMtQQimt)AaC.KBCYFHEgiGGKNGIaL$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      sv     #,Aw"7"7Aq!VQ	A
+C1a[[ < <!a%.Vs1q5z%:;A9s?r   c                 L   t          | |          \  }}}}}}|j        }|j        }	t          d|j                  D ]Z}
||
dz
           |||
dz
           |	|
dz
           |z  z  z  z   ||
<   |||
         ||
dz
           z  z  ||	|
dz
           |z  z  z   |	|
<   [|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1gi   J J!a%.Vs1q5zAa!eHO/K%LMAAQU+,1q5S1HI!9sQV|##r   c                 L   t          | |          \  }}}}}}|j        }|j        }	t          d|j                  D ]Z}
||
dz
           |||
dz
           ||	|
dz
           z  z   z  z   ||
<   |||
         ||
dz
           z
  z  ||z  |	|
dz
           z  z   |	|
<   [|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1gi   I I!a%.Vs1q5zC!AE(N/J%KLAAQU+,qQx1GH!9cAg&&r   c           	          | |j         |j                            t                    <   |j        r%t          |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+   )*GIgj%%& +*Iwz7>
 
tUU %Yrr]tU)AaC.KBC	122BYFHEYFgiGgiGGKNGIaaaLGIaaaLGKNGIaLGIk	k$sFE67GKKr   c           	      r   t          | |          \	  }}}}}}}}}|j        }|j        }|j        }	t	          d|j                  D ]Z}
||
dz
           ||
dz
           z  |||
dz
           z  z   ||
<   ||
dz
           ||
dz
           z  |||
dz
           z  z   ||
|	z   dz
  <   [|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 95Q1aFGW +C	A	A1gi   M M!a%.1QU8+#a!e*0EFAA#a!e*5&1QU8:KL!a%!)9sQz1q5z]***r   c           	      ~   t          | |          \	  }}}}}}}}}|j        }	|j        }
|j        }t	          d|j                  D ]`}||dz
           ||
|dz
           z  z
  ||	|dz
           z  z   |	|<   ||dz
           ||	|dz
           z  z
  ||
|dz
           z  z   |
||z   dz
  <   a|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 A=UAuaFGW +C	A	A1gi   
 
QU^!a% 01Vs1q5z5JK 	A AENes1q5z23v!a%7HI 	
!a%!) 9s?Qz1q5z]**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1gi   
 
!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%!) 9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1gi   
 
!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%!) 9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  sq     	a!!

+C	A	A	A1gi   
 
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%!)
 9sQw!JAhJ-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   {  sq     	a!!

+C	A	A	A1gi   
 
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%!)
 9sQ!JAhJ-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      bghbhuoo)**;  ;  ;  ;  ;  ;  ;  ; |$ $ $N! ! !H4/ 4 4 4 44    $_ $ $ $ $'_ ' ' ' 'Lo L L L L4+o + + + +$+o + + + +,7_ 7 7 7 7@6_ 6 6 6 6@!9_ !9 !9 !9 !9H!9_ !9 !9 !9 !9 !9 !9r   