
    M/Ph@.                         d Z ddl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 dd	Zd
 Zd Zd ZddZd Zd ZdS )z
Tests for concentrating the scale out of the loglikelihood function

Note: the univariate cases is well tested in test_sarimax.py

Author: Chad Fulton
License: Simplified-BSD
    N)Bunch   )results_varmax)sarimaxvarmax)assert_raisesassert_allcloseFc                    |                     dd           t          j        | fi |}d|j        _        ||j        _        |j        }d|d<   |                    |          }|j        }t          j        | fi |}||j        _        |	                                }d|
                    dd          z   }	|||	 d          z  ||	 d <   |                    |          }
t          d	i ||||||
|dS )
N	tolerancer   Tr   measurement_errorF)mod_concparams_concmod_origparams_origres_concres_origscale )
setdefaultr   SARIMAXssmfilter_concentratedfilter_univariatestart_paramssmoothr   copygetr   )endogr   kwargsr   r   r   r   r   r   k_varsr   s              r/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_concentrated.pyget_sarimax_modelsr#      s#   
k1%%% u////H'+HL$%6HL"'KKO{++HNE u////H%6HL"""$$K/777F!K$99K{++H % % ( (h"$ $ % % %    c                     d} t           j                            d           t           j                            |           }i }t	          |          }t          |j        j        |j        j                   t          |j        j	        |j        j	                   t          |j
                            |j                  |j                            |j                             t          |j
                            |j                  |j                            |j                             t           j        |dd<   t	          |          }t          |j        j        |j        j                   t          |j        j	        |j        j	                   t          |j
                            |j                  |j                            |j                             t          |j
                            |j                  |j                            |j                             d|d<   t	          |fi |}t          |j        j        |j        j                   t          |j        j	        dd          |j        j	        dd                     t          |j
                            |j                  |j                            |j                             t          |j
                            |j                  dd          |j                            |j                  dd                     d|d	<   d
|d<   t          j        |           |d<   t	          |fi |}t          |j        j        |j        j                   t          |j        j	        dd          |j        j	        dd                     t          |j
                            |j                  |j                            |j                             t          |j
                            |j                  dd          |j                            |j                  dd                     d S )N   q  size   
   r   r   r   r*   seasonal_order   loglikelihood_burnctrendexog)nprandomseednormalr#   r	   r   llfr   llf_obsr   logliker   r   r   
loglikeobsnanarange)nobsr   r    outs       r"   !test_concentrated_loglike_sarimaxr?   ,   s    DINN5I$''EF U
#
#CCL$cl&6777CL(#,*>???CL((99L((99; ; ;CL++CO<<L++CO<<> > > &E!B$K
U
#
#CCL$cl&6777CL(#,*>???CL((99L((99; ; ;CL++CO<<L++CO<<> > >  ,F
U
-
-f
-
-CCL$cl&6777CL(,cl.B122.FGGGCL((99L((99; ; ;CL++CO<<QRR@L++CO<<QRR@B B B $%F F7OYt__F6N
U
-
-f
-
-CCL$cl&6777CL(,cl.B122.FGGGCL((99L((99; ; ;CL++CO<<QRR@L++CO<<QRR@B B B B Br$   c                  .   d} t           j                            d           t           j                            |           }t	          |          }t          |j                                        |j                                                   t          |j        	                    d          |j        	                    d                     t          |j                            ddd          |j                            ddd                     d S )	Nr&   r'   r(   r.   r   -   r+   startenddynamic)
r3   r4   r5   r6   r#   r	   r   predictr   forecast)r=   r   r>   s      r"   !test_concentrated_predict_sarimaxrH   c   s     DINN5I$''E U
#
#CCL((**CL,@,@,B,BCCCCL))!,,cl.C.CA.F.FGGGCL((qb"(EEL((qb"(EEG G G G Gr$   c            	      N   d} t           j                            d           t           j                            |           }ddt          j        t          j        |                     d}t          j        |fddi|}t          j        |fi |}|j        }|d	xx         d
z  cc<   t          t          t          |                    |d d	                   |                    |                     |j                            |d	                   5  |                    |d d	                   }|                    |d d	                   }|                    |d d	                   }d d d            n# 1 swxY w Y   |                    |          }	|                    |          }
|                    |          }t          |j        |	j                   t          |j        dd          |	j        dd                     t          ||
           t          ||           d S )Nr&   r'   r(   r,   ct)r-   r1   r2   concentrate_scaleTr   g333333?r*   )r3   r4   r5   r6   sinr<   r   r   r   r   AssertionErrorr	   r9   r   fixed_scaler   r:   r7   r8   )r=   r   r    r   r   paramsres1llf1llf_obs1res2llf2llf_obs2s               r"   test_fixed_scale_sarimaxrV   s   sN   DINN5I$''E&ry'' F uGGGGGH u////H "F
2JJJ#JJJ ./""6#2#;//1A1A&1I1IK K K 
	!	!&*	-	- 4 4vcrc{++ss,,&&vcrc{334 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 ??6""DF##D""6**HDHdh'''DL$dl122&6777D$Hh'''''s   AE77E;>E;c                    t          j        ddd          }t          j        t          j        g d|          }t          j        |d                                                   |d<   t          j        |d	                                                   |d
<   t          j        |d                                                   |d<   |j        dddd
gf         }|rBt
          j	        |j
        d<   t
          j	        |j
        ddd d f<   t
          j	        |j
        d<   |                    ddi           t          j        |fi |}t          j        |fi |}d|j        _        | |j        _        | |j        _        |j        }||j                 d         }	|                    dd          dk    r||j        xx         |	z  cc<   n||j        xx         |	dz  z  cc<   |                    |          }
|
j        }|                                }|                    dd          dk    r||j        xx         |z  cc<   n||j        xx         |dz  z  cc<   ||j        xx         |z  cc<   |                    |          }t1          |
j        |j                   |j        j        D ]?}|dk    r	t1          t7          |
j        |          t7          |j        |                     @|
j        }|
j        }g d}|D ]>}t7          |
j        |          }t7          |j        |          }t1          ||d           ?g d}|D ]R}t7          |
j        |          d|d f         }t7          |j        |          d|d f         }t1          ||d           Sg d }|D ]>}t7          |
j        |          }t7          |j        |          }t1          ||d           ?|j        }|
                    d!|d"z   d#$          }|
                    d!|d"z   d#$          }t1          |j         |j                    t1          |j!        |j!                   d S )%Nz
1960-01-01z
1982-10-01QS)freq)invincconsump)columnsindexrZ   dln_invr[   dln_incr\   dln_consumpz
1960-04-01z
1978-10-01)r   r      r.   )   r   r   r   Terror_cov_typeunstructureddiagonalg      ?obs)predicted_statefiltered_state	forecastsforecasts_errorkalman_gaingHz>)atol)standardized_forecasts_errorpredicted_state_covfiltered_state_covtmp1tmp2tmp3tmp4.)smoothed_statesmoothed_state_covsmoothed_state_autocovsmoothed_state_disturbancesmoothed_state_disturbance_cov smoothed_measurement_disturbance$smoothed_measurement_disturbance_covscaled_smoothed_estimatorscaled_smoothed_estimator_covsmoothing_errorsmoothed_forecastssmoothed_forecasts_errorsmoothed_forecasts_error_covr+   2   (   rB   )"pd
date_range	DataFramer   lutkepohl_datar3   logdifflocr;   ilocupdater   VARMAXr   r   r   r   _params_state_covr   r   r   r   _params_obs_covr	   r7   shapesgetattrfilter_resultsr/   r=   get_predictionpredicted_meanse_mean)r   missingr    r^   dtar   r   r   conc_paramsstart_scaler   r   orig_paramsr   namedfilter_attractualdesiredfilter_attr_burnsmoothed_attrr=   	pred_conc	pred_origs                           r"   check_concentrated_scaler      s   M,4@@@E
,~4888G G GCVCJ'',,..C	NVCJ'',,..C	NI//4466CGL-	9/EEFE  "6
4V
1Q366
4 MM;"###}U--f--H}U--f--H'+HL$%6HL"%6HL" 'Kh89!<Kzz"N33zAAH.///;>////H.///;3CC/// {++HNE ""$$Kzz"N33zAAH.///58////H.///5#:=/// ()))U2))) {++H HL(,/// # @ @5== 7>> 7>>	@ 	@ 	@ 	@ NE#A5 5 5K  4 40$77(1488d33333
8 8 8 ! 4 40$77QRR@(1488abbAd33333	5 	5 	5M  4 40$77(1488d33333 =D''bdRi'LLI''bdRi'LLII,i.FGGGI%y'899999r$   c                      t          d           t          dd           t          dd           t          dd           t          ddd	           d S )
NFr   Tr   r   rf   r   rd   r   r   r+   r   r   r/   r   r   r$   r"   $test_concentrated_scale_conventionalr     s}    u5555uMMMMu,68 8 8 8udCCCCud024 4 4 4 4 4r$   c                      t          d           t          dd           t          dd           t          dd           t          ddd           d S )	NTr   r   rf   r   r   r+   r   r   r   r$   r"   "test_concentrated_scale_univariater     st    t4444ttLLLLtJOOOOtTBBBBtT024 4 4 4 4 4r$   )F)FF)__doc__numpyr3   pandasr   statsmodels.tools.toolsr   resultsr   statsmodels.tsa.statespacer   r   numpy.testingr   r	   r#   r?   rH   rV   r   r   r   r   r$   r"   <module>r      s            ) ) ) ) ) ) # # # # # # 6 6 6 6 6 6 6 6 8 8 8 8 8 8 8 8% % % %44B 4B 4BnG G G &( &( &(Rr: r: r: r:j4 4 44 4 4 4 4r$   