
    !g                     t   d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
 ddlZddlmZ ddlZddlmZmZ ddlmZ ddlmc mZ ddlmc mZ ddlmc mZ ddlm Z m!Z! ddl"m#Z# dd	l$m%Z% ejL                  jO                  ejL                  jQ                  e)            Z* ejV                  d
      d        Z,dCdZ-d Z. G d d      Z/ G d de/      Z0d Z1d Z2d Z3d Z4ejj                  jl                  d        Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d  Z@ejj                  j                  d!d"d#g      d$        ZBd% ZCejj                  jl                  ejj                  j                  d&d'd(g      ejj                  j                  d)g d*      ejj                  j                  d+d,d-g      ejj                  j                  d. eDd"i /       eDd#i /      g      d0                                    ZEejj                  jl                  ejj                  j                  d1d,d-g      ejj                  j                  d2dd'g      ejj                  j                  d. eDd"i /       eDd#i /      g      d3                             ZFd4 ZGejj                  j                  d5g d6      ejj                  j                  d7d ej                  d8      ej                  j                  d8d8d-9      d:d:d;gg      d<               ZKejj                  j                  d=g d>      d?        ZLd@ ZMdA ZNejj                  jl                  dB        ZOy)DzTests for Regression Diagnostics and Specification Tests

Created on Thu Feb 09 13:19:47 2012

Author: Josef Perktold
License: BSD-3

currently all tests are against R

    N)assert_assert_allcloseassert_almost_equalassert_array_equalassert_equal)assert_frame_equal)	macrodatasunspots)OLS)Bunchadd_constant)AutoReg)ARIMAmodule)scopec                  4   t         j                  j                  d      } | j                  d      }| j                  d      }|j	                  d      |z   }t        j
                  |      }t        j                  t         j                  |||f   g d      }|S )NiX[  r         )ycx1x2x3columns)	nprandomRandomStatestandard_normalsum	ones_likepd	DataFramec_)rsexr   r   datas         d/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_diagnostic.pydiagnostic_datar,   &   sx    			x	(B
3A
8$A	a1A
QA<<aAg0LMDK    c                     t        | d   |d   d|d    z  d|d    z         t        | d   |d   d|d    z  d|d    z         y )Nr   	statistic
   )atolrtolr   pvalue)r   )spsp_dictdecimals      r+   compare_to_referencer7   2   sj    
1GAJ;GAJ;	 
1GAJ;GAJ;	r-   c                  (   t        j                         j                  } | d   }| d   }| d   }|}t        t        j
                  ||f         }t        ddddd	      }t        j                  ||d
      }t        ||d       t        |d   d       y )Nrealinvrealgdprealintgi*@c   b   g_&VF9f)r/   df1df2r3   distr      ?split   rF   r6   
increasing)r	   loadr*   r   r   r&   dictsmsdiahet_goldfeldquandtr7   r   )dr9   r:   r;   endogexoghet_gq_greatergqs           r+   test_gqrS   A   s    A	lG	lG	lGEgw./0D #$N 
	"	"5$c	:B^X>B&r-   c                      e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej6                  j9                  dej<                  ej>                  g      d        Z ej6                  j9                  dej<                  ej>                  g      d        Z!d Z"d Z#d Z$d Z%d Z&d Z'y )!TestDiagnosticGc                 v   t        j                         j                  }dt        j                  t        j
                  |d   j                              z  }dt        j                  t        j
                  |d   j                              z  }|d   d d j                  }|d   d d j                  }|}t        t        j                  ||f         }t        t        j                  ||f         }t        t        j                  |         }	t        ||      j                         }
t        ||      j                         }t        ||	      j                         }|
| _        || _        || _        | j                  j                  j                  | _        | j                  j                  j                   | _        y )N  r9   r:   r;   rH   tbilrate)r	   load_pandasr*   r   difflogvaluesr   r&   r   fitresres2res3modelrO   rP   )clsrN   gs_l_realinvgs_l_realgdplintrX   endoggexoggexogg2exogg3res_olsres_ols2res_ols3s                r+   setup_classzTestDiagnosticG.setup_classY   sT   !!#((RWWRVVAiL,?,?%@AARWWRVVAiL,?,?%@AA|CR ''Z="%,,RUU<#567beeL($:;<beeL12fe$((*vv&**,vv&**,GGMM''	77==%%r-   c                 v    t        j                  g d      }t        | j                  j                  |d       y )N)gF]Н"gqk3@g+ܥrF   rG   )r   arrayr   r^   params)selfrp   s     r+   
test_basiczTestDiagnosticG.test_basicr   s+     D
 	DHHOOVR@r-   c                 x   | j                   }t        j                  g d      j                  dd      }t        j                  g d      j                  dd      }t	        j
                  |dd      }t	        j                  |      }t        ||d	
       t        |t        j                  t        j                  |            d	
       t	        j
                  |dd      }t	        j                  |      }t        ||d	
       t        |t        j                  t        j                  |            d	
       y )N)	gSp7+?cCԿIqrt   gN?glx9?ru   gx9?gK?)r   r   F)order)	gL0@?ge7`ҿg9Dgd7`ҿgHmۺ?gvq9?g9Dgq9?gw:?   F)nlagsuse_correctionrF   rG   r0   )
r^   r   ro   reshapeswcov_hac_simplese_covr   sqrtdiag)rq   r^   	cov_hac_4
cov_hac_10covbse_hacs         r+   test_haczTestDiagnosticG.test_hac{   s    hh
 HH

 '&'
$ 	 XX

 '&'
$ 	 1UC))C.CB7GRWWRWWS\%:BG2eD))C.CR8GRWWRWWS\%:BGr-   c                 \   t        dddd      }t        dddd      }t        dddd      }t        dd	d
d      }| j                  | j                  }}t        j                  ||d      }t        ||d       t        |d   d       t        j                  ||dd      }t        ||d       t        |d   d       t        j                  ||dd      }t        ||d       t        |d   d       t        j                  ||ddd      }t        ||d       t        |d   d       y )Ng[/ ?g*?)r=   r=   r>   r/   r3   
parametersrA   gP:P?gN:`?gt&?gثV?)X   W   rB   rC   rE   rG   rH   rI   
decreasing)rD   alternativez	two-sidedZ      )rD   dropr   )rK   rO   rP   rL   rM   r7   r   )rq   rQ   het_gq_lesshet_gq_two_sidedhet_gq_two_sided_01rf   rg   rR   s           r+   test_het_goldfeldquandtz'TestDiagnosticG.test_het_goldfeldquandt   sJ   
 (%	
 ('	
  ('	
 #('	
 

DII&&vuC@RBRV\*&&E,
 	Rh?RV\*&&E+
 	R!18DRV[) &&E"+
 	R!4hGRV[)r-   c                     | j                   }t        dddd      }t        j                  |j                  |j
                  j                        }t        ||d       y )Ng:EY?g:p?   r>   r   rE   rG   r^   rK   rL   het_breuschpaganresidra   rP   r7   rq   r^   bptestbps       r+   test_het_breusch_paganz&TestDiagnosticG.test_het_breusch_pagan   sM    hh'$	
 $$SYY		?R:r-   c                    | j                   }t        j                  |j                  j                        d d df   }t        j                  t        d      5  t        j                  |j                  |       d d d        t        j                  |      }t        j                  t        d      5  t        j                  |j                  |       d d d        t        j                  |j                  j                        j                         }d|d d df<   t        j                  t        d      5  t        j                  |j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrH   zThe Breusch-Paganmatchr   )r^   r   asarrayra   rP   pytestraises
ValueErrorrL   r   r   r#   copy)rq   r^   r)   s      r+   test_het_breusch_pagan_1d_errz-TestDiagnosticG.test_het_breusch_pagan_1d_err   s   hhJJsyy~~&q"u-]]:-@A 	2##CIIq1	2LLO]]:-@A 	2##CIIq1	2JJsyy~~&++-!Q$]]:-@A 	2##CIIq1	2 	2	2 	2	2 	2	2 	2s$   !E1!E+5!E7E(+E47F c                     | j                   }t        dddd      }t        j                  |j                  |j
                  j                  d      }t        ||d	       y )
Ng }ٲ?gZdK?r   r>   r   F)robustrE   rG   r   r   s       r+    test_het_breusch_pagan_nonrobustz0TestDiagnosticG.test_het_breusch_pagan_nonrobust  sO    hh'%	
 $$SYY		uMR:r-   c                     | j                   }t        j                  |j                  |j                  j
                        }d}t        ||       y )N)gpy@@g d>g-@gA_>)r^   rL   	het_whiter   ra   rP   r   )rq   r^   hw	hw_valuess       r+   test_het_whitezTestDiagnosticG.test_het_white  s>    hh cii8
	 	B	*r-   c                     | j                   }t        j                  t        d      5  t	        j
                  |j                  |j                  j                  d d d df          d d d        y # 1 sw Y   y xY w)NzWhite's heteroskedasticityr   r   )	r^   r   r   r   rL   r   r   ra   rP   rq   r^   s     r+   test_het_white_errorz$TestDiagnosticG.test_het_white_error  sX    hh]]:-IJ 	?SYY		q"1"u(=>	? 	? 	?s   >A//A8c                 0   t        dddd      }t        dddd      }t        j                  | j                  j                  d	
      }t        j                  | j                  j                  d
      }t        |d d |d       t        |d d |d       y )NgUz@g#H9?rx   chi2r   g&K!@g$q?)rF   rx   ry   rF   r   )rF      rG   )rK   rL   het_archr^   r   r7   )rq   
archtest_4archtest_12at4at12s        r+   test_het_archzTestDiagnosticG.test_het_arch#  s    
 &$	

 '$	
 oodhhnnA6txx~~R8S!Wj(CT"1X{HEr-   c                    | j                   j                  }t        j                  |dd      }|d   }t        j                  |dd      }|d   }t	        |j
                  j                  |j
                  j                  d       t	        |d d |d d d       t        j                  |d      }t	        |d d |d d d       y )	N   T)ry   storerH   rF   rG   rx   r   )r^   r   rL   r   r   resolsrp   )rq   r   res1rs1r_   rs2r`   s          r+   test_het_arch2zTestDiagnosticG.test_het_arch2=  s     uAT:2huAT:2hCJJ--szz/@/@"MD!Hd2Ah; uA.D!Hd2Ah;r-   c                 >   | j                   }t        dddd      }t        dddd	      }t        j                  |d
      }|d   |d   |d   |d   g}t	        ||d       t        j                  |d       }t        j                  |d      }t	        ||d       y )Ng WU?g?)rx      r>   r   gjk4@goH]?r   r   rx   r   r/   r3      rG   r0   rF   )r^   rK   rL   acorr_breusch_godfreyr   )rq   r^   breuschgodfrey_fbreuschgodfrey_cbgbg_rbg2bg3s           r+   test_acorr_breusch_godfreyz*TestDiagnosticG.test_acorr_breusch_godfreyN  s    hh  '$ 
  '%	
 ))#Q7[)X&[)X&	
 	Bb1 **3d;**3b9Cb1r-   c                     t        t        j                  d            }t        j                  t
        d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nd   r   )r   zModel resid must be a 1d arrayr   )r   r   emptyr   r   r   rL   r   r   s     r+   #test_acorr_breusch_godfrey_multidimz3TestDiagnosticG.test_acorr_breusch_godfrey_multidims  sG    "((8,-]]:-MN 	.((-	. 	. 	.s   AA#c                     t        j                         j                  d   }t        |dd      j	                         }t        j                  |d       y )NSUNACTIVITY)r   r   r   n)rw   trendr   r   )r
   rY   r*   r   r]   rL   r   )rq   r*   r^   s      r+    test_acorr_breusch_godfrey_exogsz0TestDiagnosticG.test_acorr_breusch_godfrey_exogsx  sB    ##%**=9D	599;$$S2r-   c                 D   | j                   }t        dddd      }t        dddd      }t        j                  |j                  dd	
      }t        |j                  d   |j                  d   g|d       t        |j                  d   |j                  d   g|d       y )Ngl[@g(	f?r   r   r   gԞ@g>t?rx   T	boxpierce)rx   lb_stat)rx   	lb_pvaluerE   rG   )rx   bp_stat)rx   	bp_pvalue)r^   rK   rL   acorr_ljungboxr   r7   loc)rq   r^   ljung_box_4ljung_box_bp_4dfs        r+   test_acorr_ljung_boxz$TestDiagnosticG.test_acorr_ljung_box}  s      hh &$	
 &%	
 ""399a4@VVL!266.#9:	

 	VVL!266.#9:	
r-   c                    | j                   }t        ddd      }t        ddd      }t        d|j                  j                  d   d	z  d	z
        }t        j                  |j                  d
|      }|j                  j                         }t        |j                  |df   |j                  |df   g|d       t        |j                  |df   |j                  |df   g|d       y )Ng0O_tĄI@gDlV?r   )r/   r3   rA   g@RF@gf=e?(   r   r   Tr   lagsr   r   rE   rG   r   r   )r^   rK   minr   shaperL   r   indexmaxr7   r   )rq   r^   ljung_box_noneljung_box_bp_noner   r   idxs          r+    test_acorr_ljung_box_big_defaultz0TestDiagnosticG.test_acorr_ljung_box_big_default  s    hh '0@
 !'0@
 2syyq)Q.23""3994HhhllnVVCN#RVVC,<%=>	

 	VVCN#RVVC,<%=>	
r-   c                    | j                   }t        dddd      }t        dddd      }t        |j                  t        j
                        r|j                  d d }n|j                  j                  d d }t        j                  |d	d
      }|j                  j                         }t        |j                  |df   |j                  |df   g|d       t        |j                  |df   |j                  |df   g|d       y )Ng6{:#@gB"3?)r   r   r   gx@g@'6$?   Tr   r   r   r   rE   rG   r   r   )r^   rK   
isinstancer   r   ndarrayilocrL   r   r   r   r7   r   )rq   r^   ljung_box_smallljung_box_bp_smallr   r   r   s          r+   "test_acorr_ljung_box_small_defaultz2TestDiagnosticG.test_acorr_ljung_box_small_default  s    hh &#	
 "&#	
 cii,IIcrNEIINN3B'E""T
 hhllnVVCN#RVVC,<%=>	

 	VVCN#RVVC,<%=>	
r-   c                    t         j                  j                  d      }|j                  d      }|j                  d      }t        j                  |      }|d   |d<   t        dd      D ]"  }d||dz
     z  d||dz
     z  z
  ||   z   ||<   $ |dd  }g d	g d
g dg}g dg dg dg}t        j                  |d      }	t        j                  |d      }
t        d      D ]  \  }}|	j                  |   }t        ||   d   |j                  d   d       t        ||   d   |j                  d   d       |
j                  |   }t        ||   d   |j                  d   d       t        ||   d   |j                  d   d        t        j                  |dd      }t        |j                  d   dd       t        |j                  d   dd       t        j                  |ddd      }t        |j                  d   dd       y )Ni? r      r   r   rB   皙?i)g2U0*?r   g1%?)gu@r   g,eX?)gjt%@r0   g`vOj?)g @r   g<?)g]m{@r   gX9v?)gMO @r0   g3?r0   )r   r   r0   r   gMbP?r2   r   r   Tr   )r0   r   gm@)r0   r   g r?)r   model_dfgo?)r   r   r    r!   
zeros_likerangerL   r   	enumerater   r   )rq   reset_randomstater'   y1r(   y2ir_results_y1_lbr_results_y2_lbres_y1res_y2r   rowr^   s                 r+   test_acorr_ljung_box_against_rz.TestDiagnosticG.test_acorr_ljung_box_against_r  s   YY""7+$s#]]1!1q# 	<A"QU)OcAa!eHn4qt;BqE	<Y ! 
 ! 

 &&r2.&&r2.
+ 	FAs**S/C"1%swwy'9 "1%sww{';$ **S/C"1%swwy'9 "1%sww{';$	" ##Bd;.TB0%dC##BdQG0&tDr-   c                     t        dddd      }t        j                  | j                        }t	        ||d       t        j                  | j                  d	      }t        j                  |d
   |d
         rJ y )NgTƤ?g ?   tr   rE   rG      )skipr   )rK   rL   linear_harvey_collierr^   r7   r   allclose)rq   harvey_collierhchc_skips       r+   test_harvey_collierz#TestDiagnosticG.test_harvey_collier  sq     '%	
 ))$((3RB..txxbA;;r!ugaj1111r-   c                     t        dddd      }t        dddd      }t        j                  | j                        }t	        ||d	
       t        j                  | j                  d      }t	        ||d	
       y )Ngl?g1A?)e   r=   r>   r   gD?gF?)z   M   rE   rG   r   )frac)rK   rL   linear_rainbowr^   r7   )rq   raintestraintest_fraction_04rbs       r+   test_rainbowzTestDiagnosticG.test_rainbow.  sx     ($ 	
  $'$ 	 
 ""488,R8<""488#6R!5xHr-   c                 T   | j                   }| j                  }t        ddddd      }|j                  |      }t	        |d   |d   d	
       t	        |d   |d   d	
       t        ddd      }|j                  |      }t	        |d   |d   d	
       t	        |d   |d   d	
       y )Ng-?߇gMo8ygK@gw?)rx   r   r   )loglike1loglike2	chi2valuer3   r   r   r%  r   rG   r   r3   gEЛ@gL%'kH~?)      r   fvaluer3   r   r)  )r^   r`   rK   compare_lr_testr   compare_f_test)rq   r^   r`   lrtestlrtwaldtestwts          r+   test_compare_lrzTestDiagnosticG.test_compare_lrG  s    hhyy ''&&
 !!$'CFF;$7DCFF8$4bA#&
 %BqE8H#5rBBqE8H#5rBr-   c                     | j                   }| j                  }ddg}t        j                  ||      }t	        ||d   dd d       t        j                  ||      }t	        ||d   dd d       y )	N)zM1 + fitted(M2)g)vv?gl?g""'=@g;Mǐ?*)zM2 + fitted(M1)g,?g?g(8@gɁ}?z**r   r   r   rF   rG   r   )r^   r_   rL   	compare_jr   )rq   r^   r_   jtestjt1jt2s         r+   test_compare_jzTestDiagnosticG.test_compare_jd  sw    hhyy
& tS)Cq!A;sD)Cq!A;r-   compc                    |}t        |j                  |ddg         j                         }t        |j                  |ddg         j                         }t	        j
                  t        d      5   |||       d d d        y # 1 sw Y   y xY w)Nr   r   r   zendogenous variablesr   )r   r   r]   r   r   r   r   rq   r8  r,   r*   r   r_   s         r+   test_compare_errorz"TestDiagnosticG.test_compare_error  sy    4664d,-113477D#t-.224]]:-CD 	t	 	 	s   0
BBc                    |}t        |j                  |ddg         j                         }t        |j                  |g d         j                         }t        j                  t
        d      5   |||       d d d        t        j                  t
        d      5   |||       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Nr   r   )r   r   r   The exog in results_xr   )r   r   r]   r   r   r   r:  s         r+   test_compare_nestedz#TestDiagnosticG.test_compare_nested  s    4664d,-1134664 123779]]:-DE 	t	]]:-DE 	t	 		 		 	s   0
B0
B<0B9<Cc                 T   | j                   }| j                  }ddg}t        j                  ||      }t	        ||d   dd d       t        j                  ||      }t	        ||d   dd d       t        j                  ||d	
      \  }}}t        |t        j                        sJ y )N)zfitted(M1) ~ M2gdg}6_0?gznN ]gI? )zfitted(M2) ~ M1g6
ғg{6J!?g$qJgF͘E>z***r   r   r   rF   rG   r   T)r   )r^   r_   rL   compare_coxr   r   ResultsStore)rq   r^   r_   coxtestct1ct2_r   s           r+   test_compare_coxz TestDiagnosticG.test_compare_cox  s    hhyy
&   d+CAa"=  s+CAa"=((d$?1e%!4!4555r-   c                     t        dddd      }d}t        j                  | j                  j                  |      }t        ||d	       y )
Ng{Z?ge/ӳ? BBr   r   ddofrE   rG   )rK   rL   breaks_cusumolsresidr^   r   r7   )rq   	cusum_olsk_varscs_olss       r+   test_cusum_olszTestDiagnosticG.test_cusum_ols  sG     '%	
	 ,,TXX^^&IVYAr-   c                     t        dddd      }t        j                  | j                        }t	        |d   |d   d	       y )
Ng՞g4{?g]Öv?rI  rJ  r   r   r/   rF   rG   )rK   rL   breaks_hansenr^   r   )rq   breaks_nyblom_hansenbhs      r+   test_breaks_hansenz"TestDiagnosticG.test_breaks_hansen  sJ      $(%	 
 !!$((+qE'4b	
r-   c                 P   t        j                  g d      }t        j                  | j                  dd      }t        t        j                  |d   dd  d      |       t        |d   dd  t        j                  |      d       t        |d   dd  j                  d      d	d
       t        j                  | j                  j                  j                  j                  d         }t        j                  | j                  dd|      }t        |d   |d   d       t        j                  g d      }t        j                  g d      }|d   \  }}t        |d d |d
       t        |d d | d
       t        |dd  |d
       t        |dd  | d
       | j                  j                  j                  }	| j                  j                  j                  }
g }g }t!        dd      D ]u  }t#        |	d | |
d |       j%                         }|j'                  |j                  j)                  |j*                  |
|                |j'                  |j*                         w t        |d   dd |d
       t        |d   dd |	dd |z
  d
       t        |d   dd |d
       y )N)gh|?5gClgxgS㥛gףp=
gףp=
gvg      gvg}?5^g rhg/$gˡEgRQgKg=
ףpgK7gV-/ gM"!gT㥛 g7A`PgV- gp=
ף"gPn(gw/'g r&gzGa'gA`Т&gGzT)gv)gA`b'gB`"%g`"9(g+7(g/$*g%C'gm%g rhQ$g~jt"g$"gS㥛D!gh|?5g&1g}?5^gZdg'1ZgJ+gEgS	gMbXgd;OgMbX9gL7A`gZd;Og#~j<g/$gMbXgzGgV-g㥛  gGzgtg
ףp=
gQkgT㥛 gQgˡE}gLgzG	gQg?5^I	gSg5^IgKgV-gv/g      gQgq=
ףgVg=
ףp=gy&1gI+gtVg"~jgjtg-ֿgffffff?gn?g~jt?g|?5^?g(\gEؿg%C?gh|?5?gQ@gS@g"~	@gʡE@g r@gK7A`?g9v?gV-g!rh?g=
ףp=ҿg      gI+g-g+gtVgSgy&1g7A`g!rhgZd;OgV-glgK7Agffffff	g rgng$CgL7A`gQgngSgK7Ag?gMg333333?gjt?gRQ?g'1Z@gA`"@g(\@g?5^I@gX9@g5^I@g"~@gd;O@gʡE@gSc@g(\@gV-2@g9v@gq=
ף@gZd;OM @g
ףp=
@gMb@gn!@ @gvo!@gE#@gjt"@gR!@gJ+ @gX9!@gGz!@g
ףp= @gT㥛 @gV-@gbX9H @gMbX @rX  gffffff@gOn@g~jt @goʡ@gZd;@g@gGz@g33333s!@gK7A!@gZd;ߏ!@g33333 @gʡE"@g&1"@g{G$@g=
ףp$@g rh%@g rh%@ǧ$@gI+$@gy&1,'@g7A`&@gQ&@gOnR'@g%C%@gbX9$@gn
%@gn@$@gB`""@g+w#@g r!@gS#@gq=
ף0%@gx&1 @g%C@gfffff@r   gffffff?)r  alphar   r   rx   rK  gWr%@rG   r   )r  rY  order_bygư>r1   )g2*@ga+@gK]H+@g +@g6DT+@)gLHC@gg
!}C@g5C@gZC@g)&oC@      r0   r   rF   	   )r   ro   rL   recursive_olsresidualsr^   r   roundr   rZ   stdarangera   rO   r   r   rP   r  r   r]   appendpredictrp   )rq   reccumres_standardizerrrw   rr_orderub0ub1lbubrO   rP   rp   ypredr  resis                  r+   test_recursive_residualsz(TestDiagnosticG.test_recursive_residuals  s`    "HJ!
X **488!4HHHRU12Y"$9	
 	BqE!"Irww/D'EqIBqE!"IMMqM17AF		$((....44Q7800HH1D5
 	1x{6 hhM
 hhL
 ABBrFC3BrFSD!4BrsGS!4BrsGcT15 $$xx~~""q" 	'AuRay$r(+//1DLL++DKKaABMM$++&	' 	BqE!BK;BqE!BKqu)<bIBqE!AJ;r-   c                    | j                   }t        dddd      }t        dddd      }t        dd	dd      }t        j                  |j                  d
      }t        j                  |j                  dz  d
      }t        |j                  t        j                        r|j                  d d }n|j                  j                  d d }t        j                  |d
      }t        ||d       t        ||d       t        |d   |d   d       t        ||d       t        dddd      }	t        dddd      }
t        j                  |j                        }t        ||	d       t        j                  |j                  dz        }t        t        j                  |d                t        j                  |      }t        ||
d       y )NgԋЄ?gs?rI  -r   g;}H?gWMR`X5gh%f?gw)?approx)
pvalmethodr   r  rE   rG   r   r3   g|=r   )rF   r   g\?gtaw*9?g<q,O?gG\Pk?)r   r   r   )r   rF   )r^   rK   rL   
lillieforsr   r   r   r   r   r7   r   	normal_adr   isinf)rq   r^   lilliefors1lilliefors2lilliefors3lf1lf2r   lf3adr1adr3ad1ad2ad3s                 r+   test_normalityzTestDiagnosticG.test_normality  s   hh
 (&	
 '(	
 (	
 		h?		Q8Dcii,IIcrNEIINN3B'E(;S+x@h	
 	AH 5EBS+w?
 '(	
 (%	
 syy)S$9syyA~.Q !u%S$9r-   c                    | j                   }t        j                  |      }t        j                  j                  t        dd      }t        |d      5 }t        j                  |      }d d d        t        t        j                  d         j                  dd      |j                         d       t        t        j                  |d	         j                  dd      |j                  d       |j                   \  }}t        ||d
   d       t        |j"                  |d   d       t        |j$                  |d   d       |j&                  \  }}	t        ||d   d       t        |j(                  |d   d       t        j                  j                  t        d      }
t+        j,                  |
d      }t        j.                  |      }t        |j0                  |d d d df   d       t        |j2                  |d d df   d       t        ||d d df   d       t        ||d d df   d       t        |j"                  |d d df   d       y # 1 sw Y   xY w)Nresultsinfluence_lsdiag_R.jsonutf-8encodingz
cov.scaledr   rF   rG   zcov.unscaledcookshatstd.resdfitsstud.res results/influence_measures_R.csvr   	index_colrx   r   r\  )r^   oiOLSInfluenceospathjoincur_diropenjsonrJ   r   r   ro   r{   
cov_paramsnormalized_cov_paramscooks_distancehat_matrix_diagresid_studentized_internaldffitsresid_studentized_externalr$   read_csvr   dfbetas	cov_ratio)rq   r^   inflr  fplsdiagc0c1r  dffthfninfl_rinfl_r2s                r+   test_influencezTestDiagnosticG.test_influence  s   hh s#ww||GY0IJ$) 	#RYYr]F	# 	HHVL)*221a8NN	

 	HHVN+,44Q:%%	
 $$BBw<D00&-L++VI->	
 FF7OR@++VJ-?	
 WW\\'#EFR1- **V$DLL'!RaR%."EDNNGAqDM2FFGAqDM2>B1r:D00'!Q$-LU	# 	#s   II'N)(__name__
__module____qualname__classmethodrm   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r!  r0  r7  r   markparametrizerL   rA  r3  r;  r>  rG  rQ  rV  ro  r  r  rI  r-   r+   rU   rU   X   s   & &0A+HZ>*B;2;+?F4<"#2J.
3
.
`
8%
N-E^2I2C:<< [[Vf&8&8&:J:J%KL M [[Vf&8&8&:J:J%KL M6@B
 s<jI:V1Mr-   rU   c                       e Zd Zed        Zy)TestDiagnosticGPandasc                 <   t        j                         j                  }dt        j                  |d         j                         z  |d<   dt        j                  |d         j                         z  |d<   |d   j                  d      |d<   |d	   j                  d      |d	<   |j                         }|| _        |d   }t        |ddg         }t        |dd	g         }t        |dg         }t        ||      j                         }t        ||      j                         }t        ||      j                         }|| _        || _        || _        | j                  j                  j                   | _        | j                  j                  j"                  | _        y )
NrW   r9   rc   r:   rd   r;   r   re   rX   )r	   rY   r*   r   r[   rZ   shiftdropnarN   r   r   r]   r^   r_   r`   ra   rO   rP   )	rb   rN   rf   rg   rh   ri   rj   rk   rl   s	            r+   rm   z!TestDiagnosticGPandas.setup_classT  sd   !!#(("&&9"6";";"==."&&9"6";";"==.iL&&q)&	*++A.*HHJ>"Q789a <=>a 012fe$((*vv&**,vv&**,GGMM''	77==%%r-   N)r  r  r  r  rm   rI  r-   r+   r  r  S  s    & &r-   r  c            
         t         j                  j                  t        d      } g d}|D ]]  }t         j                  j                  | |      }t	        j
                  t        j                  |            }|j                  d   dz
  }|d d |f   }t	        j                  t	        j                  |j                  d   df      t	        j                  ||d      fd      }|t	        j                  |t        j                  j                  ||d      d         z
  }t        j                   ||      }	|dk(  rt#        |	g d	d
        |dk(  rt#        |	g dd
       7|dk(  rt#        |	g dd
       Nt#        |	g dd
       ` y )Nr  )
wspec1.csv
wspec2.csv
wspec3.csvz
wspec4.csvr   r   )axisrH   )rcondr  )g5^I
@gx&?r   r   rG   r  )gHzG@g~jt?r_  r  )g rh@guV?r]  )gC @gFx?r   )r  r  r  r  r   r   r$   r  r   concatenateonesdeletedotlinalglstsqrL   
spec_whiter   )
resdirwsfilesfilemdlfilemdllastcoldvdesignresidswsress
             r+   test_spec_whiter  p  s>   WW\\'9-FFG F'',,vt,jjW-.))A,"G_WWciilA&'3)CD1
 bffVRYY__VRr_%J1%MNN!!&&1<'8!D\!'8!D\!'8!D'91E-Fr-   c                    t        j                  t        d      5  t        j                  t
        j                  j                  d      t
        j                  j                  d             d d d        t        j                  t        d      5  t        j                  t
        j                  j                  d      t
        j                  j                  d             d d d        y # 1 sw Y   ~xY w# 1 sw Y   y xY w)NzWhite's specification test r   r   )r   r   r   )r   r   r   rL   r  r   r   r!   )r  s    r+   test_spec_white_errorr    s    	z)F	G 
II%%c*BII,E,Eh,O	

 
z)F	G 
II%%c*BII,E,Eh,O	

 
	
 

 
s   AC*AC6*C36C?c                    t         j                  j                  d      }t        t         j                  j                  d            }t	        ||      j                         }t        j                  |j                  |      }t        j                  ||d d dd f   dz  g      }t	        |j                  |      j                         }|j                  |j                  d   z  }t        |d   |       y )Nr   r   r   r   r   )r   r   r!   r   r   r]   rL   	linear_lmr   hstackrsquaredr   r   )r  rO   rP   r^   lm_resaugres_augstats           r+   test_linear_lm_directr    s    II%%c*E		11(;<D
eT



 Ccii.F
))T412;!+,
-C#))S!%%'Gciil*DF1It$r-   c                       t        ddd       y )NgNLo?gTi%4?)r     r(  )rK   rI  r-   r+   grangertestr    s     	!*;
Kr-   c                    t        t        j                  j                  dd            }|j	                  d      t        j                  j                  d      z   }t        ||      j                         }t        j                  |      }t        j                  |d      }t        t        j                  |d   d d df   |d   d d df   k               t        t        j                  |d   d d df   |d   d d df   k\               t        ||d d df         j                         }t        j                  |d	       |j                         }|j                          y )
Nr0   r   r   g{Gz?)rY  r\  r]  r   g?)r   r   r   randnr"   r   r]   r  summary_tabler   allget_influence)r  r)   r   r^   out_05out_01r_   r  s           r+   test_outlier_influence_funcsr    s   RYY__R+,A	a299??2&&A
a)--/Cc"Fc.FBFF6!9QT?fQi1o567BFF6!9QT?fQi1o567q!AqD'? DT&Dr-   c                  p   ddl m}  t        j                         j                  }dt        j                  |d         j                         j                         z  }dt        j                  |d         j                         j                         z  }|d   d d }|j                  |_	        |j                  |_	        t        t        j                  |      ||      } | |g d	
      }t        ||      j                         }t        j                  |      }|j!                         }	t#        t%        |	|              t&        j(                  j+                  t,        dd      }
t/        |
d      5 }t1        j2                  |      }d d d        |j4                  \  }}t7        |d   d       t7        |j8                  |d   d       t7        |j:                  |d   d       |j<                  \  }}t7        ||d   d       t7        |j>                  |d   d       t&        j(                  j+                  t,        d      }tA        jB                  |d      }t        jD                  |      }t7        |jF                  |d d d df   d       t7        |jH                  |d d df   d       y # 1 sw Y   'xY w)Nr   )r%   rW   r9   r:   r;   rH   )constre   lrealgdp)r  r  re   r   r  r  r  r  r  rF   r  r  r  r  r  r  r   rG   rx   )%pandasr%   r	   rY   r*   r   r[   rZ   r  r   rK   r#   r   r]   r  r  summary_framer   r   r  r  r  r  r  r  rJ   r  r   r  r  r  r  r$   r  r   r  r  )r%   rN   rc   rd   re   r*   rP   r^   r  r   r  r  r  r  r  r  r  r  r  r  s                       r+   test_influence_wrappedr    s8    $$A)-224;;==L)-224;;==LY<D LLbll4(tlKDT#@AD
lD
!
%
%
'C ??3D 
			BJr9%& 77<<,EFD	dW	% 2   FB F7OR0,,ve}rB77	9JBO KKMFEw4''
);R 
gA	BB[[q)F jj Gga!enbA1rB3 s   0J++J5c                     t        j                  d      } t         j                  j                  d       t         j                  j	                  dd      }t        | |      j                         }t        | dz  |      j                         }|j                         j                  }|j                         j                  }t        ||d       t        j                  g d      }t        ||d	       y )
Nr  {   r         ?g+=r   )g12?goT?g@0hm?g{'?gE;?g'O/?g}0M?gp*y?g/|?g%ލG?g[)Y?g1oY?gڹYQ?gOp?gbBۜp?geEt?gg|e?gt]:Z?g{u~/?gq=٥?   rG   )r   r  r   seedr  r   r]   r  r  r   ro   r   )r   r)   r   r_   cr1cr2cr3s          r+   test_influence_dtyper    s    
AIINN3
		AAq!9==?Dq3w? D




(
(C




(
(CC5)
((	
C0 S!,r-   c                     g d} g g dg dg dg dg dg dg dg d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g d,g d-g d.}g d/}||| fS )0N)-
accountantpilot	architectauthorchemistminister	professordentistreporterengineer
undertakerlawyer	physicianwelfare.workerteacher	conductor
contractorfactory.ownerstore.managerbanker
bookkeepermail.carrierinsurance.agentstore.clerk	carpenterelectricianRR.engineer	machinistauto.repairmanplumbergas.stn.attendant
coal.minerstreetcar.motormantaxi.drivertruck.drivermachine.operatorbarber	bartendershoe.shinercook
soda.clerkwatchmanjanitor	policemanwaiter)r  g      O@     U@)r        R@      S@)r  g     R@      W@)r       K@     V@)r        P@r#  )r        5@      U@)r  r)       @W@)r  g      T@g      Y@)r       P@     U@)r  r$  r#  )r        E@g     R@)r  r%  g     X@)r  r%       @X@)r       D@r+  )r        H@g     V@)r  r%        A@)r       J@     F@)r  g      N@g      L@)r  r/        F@)r  g     S@     T@)r        =@r$  )r  r2  r'  )r  r'  g     Q@)r  r8  g      I@)r  r*  g      7@)r       G@     C@)r       @T@      <@)r  g      B@      @@)r        6@r>  )r  r6        9@)r        .@r8  )r        @rA  )r  r/        :@)r        "@      3@)r  r*  r@  )r  r*        4@)r        0@rB  )r  rF  r<  )r  rC        1@)r  g      ,@r>  )r  g      (@g      >@)r  rG  r?  )r  rA  rE  )r  r3  r9  )r         @r=  )-r7  g     T@r(  r%  r(  r.  r,  r(  g      J@g      V@     L@g     @V@r0  g     M@g     @R@g      C@r%  r;  r5  r&  r:  r3  r1  rF  g     @@r4  r-  rI  rB  r8        $@r@  rD  rJ  g      *@g      8@rE  rA  g      @rF  g      @g      &@rH  r1  rJ  rI  )labelsrP   rO   s      r+   get_duncan_datarL  $  s   .F`... 	. 		.
 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.  	!." 	#.$ 	%.& 	'.( 	).* 	+., 	-.. 	/.0 	1.2 	3.4 	5.6 	7.8 	9.: 	;.< 	=.> 	?.@ 	A.B 	C.D 	E.F 	G.H 	I.J 	K.L 	M.N 	O.P 	Q.R 	S.T 	U.V 	W.X 	Y.Z 	[.D^.E` $r-   c                     t               \  } }}t        | |      j                         }g d}g d}g d}t        j                  |      }d||dkD  <   g d}t        j
                  |||f   }t        j                  |d|d      }	t        j                  j                  |	j                  |d	       t        j                  j                  |	j                  j                         |       t        j                  t        j                   | |f      d
j#                         |      }
t        j$                  d|
      j                         }t        j                  |dd      }t        |j                  |d	       t        |j                  j                         |       |j                  d      }|j'                  dgd      }t        |j                  |d	       t        |j                  j                         |       t)        |j                  |j                         |j                  dd      }t        |j                  j                         |       |j                  ddd      }t        |j                  j                         |d d        y )N)-gpz~	@g.[-gZԴ>Y @g^gP$W1?gH4*g6~Cg(?gAggw?g!)K?g/Ig|\gSXEQBg;2Ts?gPc>?g'<?gӈ l?gVTg(/V??gng:D?gᓭ?g)߿gk)b	Rv޿g7ʀzۿgr\xTڿgUf0ؿg?g1>P?g2u,0?g s?gEeӿgiǿgW9>??gO1:?gZ^OgذNH?gx^sg>}L/?gxY?g{Ŗlܩ?g$H?g~~.NG?)-gaUj?g9?g0!I?g=N_?gL?g?gLgǏ?g' ?g`F%3f?gCR?g8?g-8j"?gJ?gs?gK */'x?g۩er?gBI0?gLb&?gh\:?g	YG?gR S?g`	
?g?g4 0k?gQ?g3m-3_?gR<ao?g@Mwv?gå#?g+린,*?g-+V?gc5?Y?g`h?gלNurm?gkȓ2F?g?g-e?guLܺ?gp }?gd[?g*O ?gS]+?g ?gNBh?gi.a?)-gg֭L?gc7|?gk@g@g>m@gO@gfE@g5;M@g﷯@g(@g9*@g5fK,@g~0@goؾ0@g{41@gۻØ2@g"5b3@g5KF4@gG5@g;#46@g-;@g724COw;@g&2;@g1Qi;@g*;@gXKߥ<@g{a%>@gB6>@gpJ/ j?@g3kI@@gx@@glp@CA@g,nc)A@gֿz,A@gI[-C@gc'jC@gHdĪC@ghc3D@g~U<D@g5wE@g#48E@gD4=6E@g"B`E@g>-zF@gET|F@r   )-r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r	  r  r  r"  r  r  r  r  r  r  r  r  r   r  r  r  r  r   r!  r  r  r  r  bT)methodrK  rw   r]  zy const var1 var2)r   r   zy ~ const + var1 + var2 - 0)rO  rw   )rO  unadj_p)	ascendingg333333?)rO  rw   cutoff)rL  r   r]   r   ro   r&   r  outlier_testtestingr   r\   r   r   tolistr$   r%   column_stackrD   from_formulasort_valuesr   )rO   rP   rK  ndarray_modrstudentrP  bonf_psorted_labelsr_   r^   r*   res_pd	res_outl2	res_outl1	res_outl3	res_outl4s                   r+   test_outlier_testrb    s   )+E4eT"&&(K.H^.G^.F^ XXfFF6A:.M` 557F*+D
//+c&
MCJJ""3::tQ7JJ		M <<
&#))+D ;TBFFHFs$?I	(($2'')=9##3#/I%%ykT%BI	(($2'')=9y	8 ##3d#;I'')=9##3d4#HI'')=!+<=r-   c                  >   t        j                         j                  d   } t        | dd      j	                         }|j
                  }t        j                  |d      }t        j                  |dd      }t        |j                  d d df   |j                  d d df          t        j                  t        j                  |j                  d dd	f               sJ t        j                  |j                  dd d	f   |j                  dd d	f   k        sJ y )
Nr   rx   F	old_namesr0   r   )r   r   r   r   )r
   rY   r*   r   r]   r   rL   r   r   r   r   r  isnan)r*   r^   r   r   r_   s        r+   test_ljungbox_dof_adjrh    s    !&&}5D
$U
+
/
/
1CIIE  R0D  R!<DDIIadOTYYq!t_566"((499RaRU+,---66$))ABE"diiA&66777r-   c                    t        j                         j                  d   }t        |dd      j	                         }|j
                  }t        j                  |d      }t        j                  |dd      }t        |j                  d d df   |j                  d d df          |j                  d   d	k\  sJ |j                  d   d	k\  sJ t        j                  t        j                  |j                  d dd	f               sJ t        j                  |j                  dd d	f   |j                  dd d	f   k        sJ y )
Nr   rx   Frd  Tauto_lag)r   rk  r   r   )r
   rY   r*   r   r]   r   rL   r   r   r   r   r   r  rg  )r  r*   r^   r   r   r_   s         r+    test_ljungbox_auto_lag_selectionrl    s   !&&}5D
$U
+
/
/
1CIIE  6D  TBDDIIadOTYYq!t_5 ::a=A::a=A66"((499RaRU+,---66$))ABE"diiA&66777r-   c                     t         j                  j                  d      }t        j                  |d      }|j
                  d   dk\  sJ y )N  Trj  r   r   )r   r   r  rL   r   r   )r  r*   r^   s      r+   !test_ljungbox_auto_lag_whitenoisero    s>    99??4 D


t
4C 99Q<1r-   c                     t        j                         j                  d   } t        j                  t
        d      5  t        j                  | d       d d d        t        j                  t
        d      5  t        j                  | dd       d d d        t        j                  t
        d      5  t        j                  | dd	       d d d        t        j                  |        t        j                  | d
      }t        |t        j                        sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w)Nr   zmodel_df mustr   rH   )r   zperiod mustr   )r   periodr0   rf  )r
   rY   r*   r   r   r   rL   r   r   r$   r%   )r*   rets     r+   test_ljungbox_errors_warningsrt    s    !&&}5D	z	9 1dR01	z	7 ;dR:;	z	7 <dR;<
$


2
.Cc2<<(((1 1; ;< <s#   D8D*4D6D'*D36D?c                     t        j                         j                  d   } t        | dd      j	                         }t        j                  |j                  d      }t        j                  |j                  d      }t        ||       y )	Nr   rx   Frd  r   )rq     rf  )	r
   rY   r*   r   r]   rL   r   r   r   )r*   ar_resr^   r_   s       r+   test_ljungbox_periodrx    sh    !&&}5DT1.224F


R
8C  B7DsD!r-   cov_type	nonrobustHC0c           
         t         j                  j                  d      }t         j                  j                  d      }t         j                  j                  d      }t         j                  j                  d      }|t        j                  d      z  |z   }t        j                  |d d d df   |g      }t        j                  ||g      }t        ||      j                         }	t        ||      j                         }
t        j                  |	|
|       }t        |t        j                  ||d d dd f   |g            j                  |       }t        j                  d      }t        j                  d      |d d d	d f<   |j                  |d
d
      }t        t        j                  |j                              t        t        j                  |j                              t!        |j"                        t!        |j$                        f}t'        t        j(                  |j*                  d         |d       t        |t        j                  ||g            j                  |       }t        j                  d      }t        j                  d      |d d dd f<   |j                  |d
d
      }t        t        j                  |j                              t        t        j                  |j                              t!        |j"                        t!        |j$                        f}t'        t        j(                  |j*                  d         |d       y )Nr   r   r   r   r   r   r   r   )ry  )rx   r]  rx   T)use_fscalarr)   g:0yE>r[  )r   r]  r   rr  z)r   r   r!   r  r  r   r]   rL   compare_encompassingzeroseye	wald_testfloatsqueezer/   r3   intdf_numdf_denomr   r   r   )ry  r  r)   r(   x_extraz_extrar   r   z1r   r_   r   direct1r1direct_test_1expecteddirect2r2direct_test_2s                      r+   test_encompasing_directr    s   
		!!(+A
		!!(+Aii''1Gii''1G	BGGFOaA	Aa!eHg&	'B	Aw<	 Bq":>>Dq":>>D		$	$T4(	CB!RYYAaeHg678<<h<OG	.	!BBq"#vJ%%bT%BMbjj0012bjj--./M  !M""#	H BJJrvvc{+XDA!RYYG}-.22H2EG	.	!BBq"#vJ%%bT%BMbjj0012bjj--./M  !M""#	H BJJrvvc{+XDAr-   c                 .   t         j                  j                  d      }t         j                  j                  d      }t         j                  j                  d      }|t        j                  d      z  |z   }t        j                  ||g      }t        ||      j                         }t        ||      j                         }t        j                  t        d      5  t        j                  ||       d d d        t        j                  t        d      5  t        j                  |d       d d d        t        j                  t        d	      5  t        j                  d
d       d d d        y # 1 sw Y   ~xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Nr}  r~  r   r  r=  r   z!results_z must come from a linearr   z!results_x must come from a linearrx   )r   r   r!   r  r  r   r]   r   r   r   rL   r  	TypeError)r  r)   r(   r  r   r  r   r_   s           r+   test_encompasing_errorr    s*   
		!!(+A
		!!(+Aii''1G	BGGFOaA
		1g,Aq!9==?Dq!9==?D	z)@	A 0##D$/0	y(K	L -##D!,-	y(K	L *##Aq)* *	0 0- -* *s$   E3E?F3E<?FFpowerr   r   	test_type)fittedrP   princompr  TFr   )ry  
cov_kwargsc                    t        t        j                  j                  d            }t        j                  j                  d      }t        j                  ||d d dd f   dz  g      }|t        j
                  d      z  |z   }t        ||d d d df         j                         }t        j                  |f| ||d| y )N)rn  r   )rn  r   r   r   )r]  r   rx   )r  r  r  )
r   r   r   r!   r  r  r   r]   rL   linear_reset)	r  r  r  r   r  r)   r(   r   r^   s	            r+   test_reset_smoker  	  s     	RYY..y9:A
		!!),A
		1a12h!m$%A	BGGFOaA
a1bqb5



 C
IU>Ar-   r   rL  c                     t         j                  j                  d      }t        j                  |fd| |d| t        j                  |fd | d|d| y )N   r\  ry   r   rL  rF   )ry   r   rq  rL  r   r   r!   rL   acorr_lm)r   rL  r   r  r(   s        r+   test_acorr_lm_smoker    sN     			!!#&A
OOA>Qe$>#>
OOALTrLLr-   c                 t    t         j                  j                  d      }t        j                  |ddd       y )Nr  r\  Fr   r  r  )r  r(   s     r+   test_acorr_lm_smoke_no_autolagr  0  s(    
		!!#&A
OOAQe!4r-   r  )g      ?rB   g      ?rZ  r   )sizereplacex0r   c                    t        j                  t        j                  j	                  d            }t        j                  t        j                  j	                  d      t        d      D cg c]  }d| 	 c}      }|t        j                  d      z  |z   }t        ||      j                         }t        j                  || |       y c c}w )Nr~  r   r   r)   r   r   r   )r  rZ  r$   r%   r   r   r!   r  r  r   r]   rL   r  )r  rZ  r  r(   r  r)   r   r^   s           r+   test_rainbow_smoke_order_byr  5  s     	RYY..x89A

		!!(+"'(+Q1QC+	A 	
BGGFOaA
a)--/C
#D8<	 ,   -C
center)NgQ?i,  c                    t        j                  t        j                  j	                  d            }t        j                  t        j                  j	                  d      t        d      D cg c]  }d| 	 c}      }|t        j                  d      z  |z   }t        ||      j                         }t        j                  |d|        y c c}w )	Nr~  r   r   r)   r   r  T)use_distancer  r  )r  r  r(   r  r)   r   r^   s          r+   test_rainbow_smoke_centeredr  K  s    
RYY..x89A

		!!(+"'(+Q1QC+	A 	
BGGFOaA
a)--/C
#D@	 ,r  c                    t        j                  t        j                  j	                  d            }t        j                  t        j                  j	                  d      t        d      D cg c]  }d| 	 c}      }|t        j                  d      z  |z   }t        ||      j                         }t        j                  t        d      5  t        j                  |d	
       d d d        t        t        j                  |      t        j                  |            j                         }t        j                  t        d      5  t        j                  |d
       d d d        y c c}w # 1 sw Y   xY w# 1 sw Y   y xY w)Nr~  r   r   r)   r   r  zorder_by must containr   x5rZ  )r  )r$   r%   r   r   r!   r  r  r   r]   r   r   r  rL   r  r   )r  r(   r  r)   r   r^   s         r+   test_rainbow_exceptionr  W  s   
RYY..x89A

		!!(+"'(+Q1QC+	A 	
BGGFOaA
a)--/C	y(?	@ 2cD12
bjjmRZZ]
+
/
/
1C	y(?	@ 5cG45 5 ,2 25 5s   -E-
E2E>2E;>Fc                 J   t         j                  j                  d      }t         j                  j                  d      }|d d |d d t        j                  t
        d      5  t        j                  t        ||      j                                d d d        y # 1 sw Y   y xY w)Nr0   )r0   r   r   r   zThe initial regressor matrix,r   )
r   r   r!   r   r   r   rL   r`  r   r]   )r  r   r)   s      r+   test_small_skipr  f  sy    
		!!"%A
		!!'*AbqEAbqE	z)H	I 7%%c!Qimmo67 7 7s   ".BB"c                    d}t        j                  t        j                  j	                  |      t        j                  j	                  |      t        j                  j	                  |      d      }|d   t        |d         }}t        |d   t        |dg               j                         }t        |d   t        |ddg               j                         }t        |d   t        |dg               j                         }t        j                  |       t        j                  |d       t        j                  |d       t        j                  |d	       t        j                  ||       t        j                  |j                  |       t        j                  |j                  |       t        j                  |j                         t        j                  |       t        j                   |       t        j"                  |       t        j$                  |j                  |       t        j&                  |       t        j(                  |j                         t        j*                  |j                         t        j,                  |       t        j.                  ||       t        j0                  ||       t        j2                  ||       t        j4                  |       t        j4                  |t        j6                  |j8                  d
   dz
  dd             t        j:                  |j                  |       y )Nr   )r   r)   r  r   r)   r  r  )r  rP   r  r   r   rH   r  )r$   r%   r   r   randr   r   r]   rL   r  rM   r   r   r   r   r   r   r  r  r  r  rM  rS  rA  r  r3  r`  rc  r   r  )r  r   r   r   r)   r^   	res_large	res_others           r+   test_diagnostics_pandasr    sT    	A	"""	$
B c7LC)qA
bg|BuI.
/
3
3
5CBsG\"c3Z.9:>>@IBsG\"cU)4599;I
	"
	X6
	V4
	Z8
a#
CIIq)
SYY"
OOCII
  %
!
#
SYY"
  %
OOCII
		*

sI&
Y/
S)$
!!#&
!!bii
Qr: cii#r-   )rE   )P__doc__r  r  numpyr   numpy.testingr   r   r   r   r   r  r$   pandas.testingr   r   statsmodels.datasetsr	   r
   #statsmodels.regression.linear_modelr   statsmodels.stats.diagnosticstats
diagnosticrL   $statsmodels.stats.outliers_influenceoutliers_influencer  %statsmodels.stats.sandwich_covariancesandwich_covariancer|   statsmodels.tools.toolsr   r   statsmodels.tsa.ar_modelr   statsmodels.tsa.arima.modelr   r  abspathdirname__file__r  fixturer,   r7   rS   rU   r  r  r  r  r  r  smoker  r  r  rL  rb  rh  rl  ro  rt  rx  r  r  r  rK   r  r  r  rc  r   choicer  r  r  r  r  rI  r-   r+   <module>r     sI  	  	    -  4 3 - - 1 1 2 2 7 , -
''//"''//(3
4 h  '.lM lMv&O &:F8
%L   ;C|$-NRj`>F88
)" k5%9:"B ;"BJ*  1a&)&DE4-0	kb1e+ 1 F *  4-0!Q(	kb1e+M ) 1 M5
 !23		#
		36	t	=	 4= #45A 6A57D %$ %$r-   