
    M/PhgJ                        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
Z
ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZ ddlmZ ej                            ej                             e!                    Z"dej#        z   dz   Z$ e	j%        e"ej#        z   e$z             Z&dej#        z   dz   Z' e	j%        e"ej#        z   e'z             Z( ej)                    j*        Z+ e	j,        ddd          e+_-        e+d         Z. ee+d                   Z/d Z0d Z1d%dZ2d Z3d Z4d Z5e
j6        j7        d             Z8d Z9d Z:d Z;d  Z<d! Z=d" Z>d# Z?d$ Z@dS )&zW
Tests for recursive least squares models

Author: Chad Fulton
License: Simplified-BSD
    N)assert_allcloseassert_equalassert_raises)norm)	macrodata)GLM)OLS)RecursiveLS)recursive_olsresiduals)add_constant)aicbic)ValueWarningresultszresults_rls_R.csvzresults_rls_stata.csvz
1959-01-01z
2009-07-01QS)startendfreqcpim1c                     t          t          j        t          j                  } |                                 }t          t          t                    }|                                }t          |j        |j                   t          t          t          d         j                  } |                                 }t          t          t          d                   }|                                }t          |j        |j                   d S )Nr   )	r
   endogvaluesexogfitr	   r   paramsdtamodresmod_olsres_olss       n/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/regression/tests/test_recursive_ls.py
test_endogr$   '   s    
elDK
0
0C
''))C %GkkmmGCJ/// eSY-
.
.C
''))C %T##GkkmmGCJ/////    c            	      n   t          t          t          d                   } |                                 }t	          t          t          d                   }|                                }t          |j        |j                   t          |j        |j                   t          |j        j	        d         |j
                   | j        d d df         t          j        | ddd d d d f         |j        z  d          z
  }t          ||j                   |                    |j        |j
                  }t          |j        |           t          j        |j        ddd f         |j        j	        d         dz  z  d	z            | j        z  }t          j        t)          j        |j        d|dz  
                                                    }t          ||j                   |                    dt          j        d                    }t          ||                    t          j        d                               t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j         |j                    t          |j!        |j!                   t          |j"        |j"                   |#                    d          }|#                    d          }t          |j$        |j$                   t          |j%        |j%        d           |&                    d          }|&                    d          }t          |j$        |j$                   t          |j%        |j%        d           tO          ||j(        |j)                  }t          ||j'                   tU          ||j(        |j)                  }	t          |	|j*                   d S )Nr   r   r   r   designaxisscale         ?   locr,   
   )r-   r-   r2   r(   )r2   r-   m1 = 0V瞯<atol)+r
   r   r   r   r	   r   r   bsefilter_resultsobs_covr,   npsumsmoothed_stateresidloglikellf_recursivestandardized_forecasts_errornobslogr   pdfresid_recursivellfforecastonespredictessssrcentered_tssuncentered_tssrsquared	mse_model	mse_resid	mse_totalt_test	statisticpvaluef_testr   nobs_effectivedf_modelr   )
r   r    r!   r"   actualdesiredscale_alternativellf_alternative
actual_aic
actual_bics
             r#   test_olsr^   :   s   
eSY
'
'C
''))C%T##GkkmmG CJ///CGW[))) C&.t4gmDDD i1ofS1aaa*+c.@@qIIIJFFGM***
 oognGMoBBGC%w/// (ABB/"4(#-	.01 2 3 358X> fTXc&9q,=s,BD D D E EEHSUU OW[111 \\"RWZ%8%8\99FFGOOBGG,<,<==>>> CGW[)))CGW[)))C$g&:;;;C&(>???CL'"2333 CM7#4555CM7#4555CM7#4555 ZZ!!FnnX&&GF$g&7888FM7>>>>>ZZ!!FnnX&&GF$g&7888FM7>>>>> _c&8#,GGJJ,,,_c&8#,GGJJ,,,,,r%   c           	      ^   t           j        }t          t           ddg                   }t          |||           }|                                }t          ||          }| |                                }n|                    |           }t          |j        |j                   t          |j	        |j	        d           t          |j
        j        d         |j                   t          |j        dz
  |j                   |j        d d df         t!          j        |d	dd d d d f         |j        z  d
          z
  }t          ||j        d           |                    |j        |j                  }t          |j        |           t!          j        |j        ddd f         |j
        j        d         dz  z  dz            |j        z  }	t!          j        t3          j        |j        d|	dz                                                      }
t          |
|j                   | at!          j        d          }|                    d|          }t          ||                    t!          j        d                               n1t!          j        d          }tA          tB          |j        d|           |"                    d          }|"                    d          }t          |j#        |j#                   t          |j$        |j$        d           |%                    d          }|%                    d          }t          |j#        |j#                   t          |j$        |j$                   tM          |
|j'        |j                  }t          ||j&                   d S )Nunempr   constraintsư>r6   r'   r-   r   r(   r)   gHz>r+   r.   r/   r0   )r-      r2   r2   r3   )r2   rd   )r/   rd   r2   r4   r5   )(r   inflr   r
   r   r   fit_constrainedr   r   r8   r9   r:   r,   r   rW   r   r;   r<   r=   resid_responser?   r@   rA   rB   rC   r   rD   rE   rF   rH   rG   rI   r   NotImplementedErrorrR   rS   rT   rU   r   rV   )rb   r   r   r   r    mod_glmres_glmrX   rY   rZ   r[   r(   r\   s                r#   test_glmrk      sm    HEWdO,--D
eT{
;
;
;C
''))C%G++--))k)BB CJ///CGW[t4444 C&.t4gmDDD !7#3444 i1ofS1aaa*+c.@@qIIIJFFG2>>>>
 oognGMoBBGC%w/// (ABB/"4(#-	.01 2 3 358X> fTXc&9q,=s,BD D D E EEHSUU OW[111 $$b000@0@ A ABBBB$$)3<FKKKK ZZ!!FnnX&&GF$g&7888FM7>>>>>ZZ!!FnnX&&GF$g&7888FM7>222 _c&8#,GGJJ,,,,,r%   c                  &    t          d           d S )Nm1 + unemp = 1ra   )rk    r%   r#   test_glm_constrainedro      s    )******r%   c                      t          t          t                    } |                                 }t	          t          t                    }|                                }t          |j        |j                   d S N)r
   r   r   filterr	   r   r   r   r   s       r#   test_filterrs      sV    
eT
"
"C
**,,C %GkkmmGCJ/////r%   c                     t          t          t                    } |                                 }t	          | j        d           t          |j        j        d d ddf         j	        t          j        d d         ddg         d           t          |j        j        d d d	d
f         j	        t          j        dd         ddg                    t          |j        j        d d dd f         j	        t          j        dd          ddg                    t          t          t                    }|                                }t          |j        |j                   d S )Nr   r/   r2      beta1beta2h㈵>rtol	                  )r
   r   r   r   r   start_paramsr   recursive_coefficientsfilteredT	results_Rilocr	   r   r   s       r#   test_estimatesr      sJ   
eT
"
"C
''))C !1%%% C.71R4@BN2A2&'9:G G G GC.71R4@BN1R4('7);<> > >C.7233?AN233''(:;= = = %GkkmmGCJ/////r%   c                    t          t          ddg                   }t          t          |          }|                                }	 ddlm}  |             n# t          $ r Y nw xY w|                                }|                    dg          }|                    g d          }|	                                }dD ]}|	                    |          }t          t          |j	        d	           |                                }t          t          j        |j                  }|                                }|                                }|	                                }|                                }d S )
Nr   popr   )register_matplotlib_converters)	variables)r   r   r   ){Gz?皙?alpharh|?)r   r   r
   r   r   pandas.plottingr   ImportErrorplot_recursive_coefficient
plot_cusumr   
ValueErrorplot_cusum_squaresr   )close_figuresr   r   r    r   figr   s          r#   
test_plotsr     s   T5M*++D
eT
"
"C
''))CBBBBBB&&((((   

(
(
*
*C 
(
(D6
(
:
:C 
(
(3C3C3C
(
D
DC ..

C  * *nn5n)) *cnE:::: 
 
 
"
"C elDK
0
0C
''))C 
(
(
*
*C ..

C 
 
 
"
"CCCs   A 
A%$A%c                  \   t          j        t          d          5  t          j        dt
                    } d d d            n# 1 swxY w Y   |                                 }t          j        dt
                    }|                                }t          |j	        |j	                   d S )NzNo frequency informationmatchzcpi ~ m1)data)
pytestwarnsr   r
   from_formular   r   r	   r   r   r   s       r#   test_from_formular   2  s    	l*D	E	E	E = =&z<<<= = = = = = = = = = = = = = = ''))C z444GkkmmGCJ/////s   AAAc                     t          t          t                    } |                                 }t	          |j        dd         j        t          j        d d         d                    t	          |j        dd         j        t          j        dd         d                    t	          |j        d	d          j        t          j        d
d          d                    t	          |j        dd          t          j        dd          d         dd           t          t          t                    }|                                }t          |          d         dd          }t	          |j        dd          |           d S )Nr/   r2   ru   	rec_residr{   r|   r}   r~   r   r   rd   rrrx   r7   rz      )r
   r   r   r   r   rE   r   r   r   results_statar	   r   )r   r    r!   r"   desired_resid_recursives        r#   test_resid_recursiver   >  sb   
eT
"
"C
''))C C'"-/N2A2&{35 5 5C'"-/N1R4(57 7 7C',.N233'46 6 6 C'+!&qrr*40t$H H H H %GkkmmG4W==a@DC'+-DEEEEEr%   c           	         ddl m} t          j                            d          }|                                }t          d|j        d                   D ]*}||xx         dd||dz
           z  z   ||         z   z  cc<   + ||dd          dd	
                                          }t          j
        t          d          5  t          |           d d d            d S # 1 swxY w Y   d S )Nr   )ARIMA   r-   r   g?r|   )r-   r   r   c)ordertrendz!res a regression results instancer   )statsmodels.tsa.arima.modelr   r;   randomstandard_normalcopyrangeshaper   r   raises	TypeErrorr   )reset_randomstater   eyir    s         r#   %test_recursive_olsresiduals_bad_inputr   U  s9   111111
	!!#&&A	A1agaj!! , ,	!cAa!eHn$qt++
%"##gS
1
1
1
5
5
7
7C	y(K	L	L	L $ $s###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   C  C$'C$c                     t          t          t                    } |                                 }|j        }|j        t          j        |j        |d          d          z  }||j        |         z  }|t          j        |j        |dz   d          d          z  }|dd          }t          |t          j        dd          d         dd           t          t          t                    }|                                }t          |          d         dd          }t          |j        |d	           |                    d
dt          j        |dz   |j                            }t          j        dd          ddg         j        }t          ||d	           |                    d
dt          j        ||j                            }t          |          d         }t          ||           t%          t&          |j        d           d S )Nr-   )ddofrd   cusumrc   rx   r   ry   皙?r   r   pointslwuwr   r   r   )r
   r   r   r   nobs_diffuser   r;   stdrE   r   r   r   r	   r   _cusum_significance_boundsarangerB   r   r   r   "_cusum_squares_significance_bounds)	r   r    dr   r!   r"   desired_cusumactual_boundsdesired_boundss	            r#   
test_cusumr   `  s   
eT
"
"C
''))C 	AIs21226Q????E	S ##E	RVC'!-A6666E!""IEE=-abb1':DQQQQ %GkkmmG*733B7;MCI}48888
 2229QqS#(#;#; 3 = =M"'+T4L9;NM>==== 2229Q#9#9 3 ; ;M+G44R8NM>222 *cD     r%   c            	         t          t          t          d          } t          j        t
                    5  |                                 }d d d            n# 1 swxY w Y   t          |j        |j	                  }t          |j        dd          t          j        dd          d         dd           t          |j        t          j        dd          d         d           t          |j        t          j        dd          d         d           |                    d	d
t#          j        |dz   |j        dz                       }t          j        dd          ddg         j        }t          ||d           |                    d	t#          j        |dz   |j        dz                       }t          j        dd          ddg         j        }t          ||d           d S )Nrd   )loglikelihood_burnr   rx   r   r   r6   cusum2r   r   r-   r   r   r   )r   r   lwwuwwr   )r
   r   r   r   r   UserWarningr   maxr   r   r   rE   r   r   r   cusum_squaresr   r;   r   rB   r   r   )r   r    r   r   r   s        r#   
test_statar     s   
eTa
8
8
8C	k	"	"  ggii              Cc455AC'+]-?-CD-ID* * * *CI}1!""5g>TJJJJC%}'9!""'=h'G    2229QqS#(1*#=#= 3 ? ?M"'+T4L9;NM>==== ::29QqS#(1*55 ; 7 7M"'+UEN;=NM>======s   AAAc                     t           d         } t          t           ddg                   }t          | |d          }|                                }g d}t	          |j        |           g d}t          j        |j                  }t	          |d         |d         d	
           t	          |dd          |dd          d
           d}t          j	        |j
        ddd f         |j        j        d         dz  z  dz            |j        z  }t          j        t          j        |j        d|dz                      	                                }t	          ||           d S )Nre   r   r`   rm   ra   )҆ٲIg礻F^/?) ?UO¢$A?r   r   r   r6   r-   -C6?~I/or'   r.   r/   r0   r   r   r
   r   r   r   r;   asarrayr8   r<   rA   r9   r:   rB   rC   r   rD   rE   )r   r   r   r    rY   r8   rZ   r[   s           r#   test_constraints_statar     sw   KET7O,--D
eT/?
@
@
@C
''))C DCCGCJ((( 655G
*SW

CCFGAJT2222CGWQRR[t4444 !G (ABB/"4(#-	.01 2 3 358X> fTXc&9q,=s,BD D D E EEHSUU OW-----r%   c                     t           d         } t          t           g d                   }ddg}t          | ||          }|                                }g d}t	          |j        |d           g d	}t          j        |j                  }t	          |d
         |d
         d           t	          |dd         |dd         d           d}t          j	        |j
        d
dd f         |j        j        d         dz  z  dz            |j        z  }t          j        t          j        |j        d
|dz                      	                                }t	          ||           d S )Nre   )r   r`   r   rm   zcpi = 0ra   )r   r   r   r   g|=r6   )r   r   r   r   r   r   r-   r   r   r   r'   r.   r/   r0   r   )	r   r   rb   r   r    rY   r8   rZ   r[   s	            r#   test_multiple_constraintsr     s   KE222344D 	K
 eT{
;
;
;C
''))C GFFGCJe4444 988G
*SW

CCFGAJT2222C"Iwqt}48888 !G (ABB/"4(#-	.01 2 3 358X> fTXc&9q,=s,BD D D E EEHSUU OW-----r%   c                     t          g dg d          } t          j        t          d          5  |                     ddi          5  |                                  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          d          5  |                     ddi           d d d            d S # 1 swxY w Y   d S )N)r   r-   r   r-   )r-   r-   r-   r-   z2Linear constraints on coefficients should be givenr   constr   )r
   r   r   r   
fix_paramsr   rf   )r   s    r#   test_fix_paramsr     s   
lllLLL
1
1C	z += 
? 
? 
?  ^^WcN++ 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	              
 
z += 
? 
? 
? , ,WcN+++, , , , , , , , , , , , , , , , , ,sG   B A)B )A-	-B 0A-	1B  BB&CCCrq   )A__doc__osnumpyr;   numpy.testingr   r   r   pandaspdr   scipy.statsr   statsmodels.datasetsr   statsmodels.genmod.apir   #statsmodels.regression.linear_modelr	   #statsmodels.regression.recursive_lsr
   statsmodels.stats.diagnosticr   statsmodels.toolsr   statsmodels.tools.eval_measuresr   r   statsmodels.tools.sm_exceptionsr   pathdirnameabspath__file__current_pathsepresults_R_pathread_csvr   results_stata_pathr   load_pandasr   r   
date_rangeindexr   r   r$   r^   rk   ro   rs   r   mark
matplotlibr   r   r   r   r   r   r   r   r   rn   r%   r#   <module>r     s    
			     F F F F F F F F F F            * * * * * * & & & & & & 3 3 3 3 3 3 ; ; ; ; ; ; ? ? ? ? ? ? * * * * * * 4 4 4 4 4 4 4 4 8 8 8 8 8 8wrwx8899RV#&99BKrv->??	'*AA L2614FFGGi"BM,TJJJ	E
|CI0 0 0&K- K- K-\O- O- O- O-h+ + +0 0 00 0 00 +# +# +#\	0 	0 	0F F F.$ $ $, , ,^> > >4. . .< .  .  .F	, 	, 	, 	, 	,r%   