
    'YHh4                        d Z ddlZddlZddlZddlZddlmZ ddl	m
Z
mZ ddlmZ  G d d      Z G d d	      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d      Zy)z=
Created on Mon May 05 17:29:56 2014

Author: Josef Perktold
    N)assert_allclose)OLSGLS)TheilGLSc                   f    e Zd Zed        Zd Zd Zd Zej                  j                  d        Zy)TestTheilTextilec                 D   t         j                  j                  t         j                  j                  t                    }t         j                  j                  |dd      }t        j                  |d      | _        dj                         }t        j                  dj                         t              j                  dd      }|d d d	f   }t        j                  |d d d
d f   t        j                  |j                   d         f      }t        j                  g dg dg      }d	dg}t        j                  ddgddgg      }	t#        |||||	      }
|
j%                  dd      | _        d| j&                  j(                  d<   d	dlm} |j,                  | _        y )Nresultsztheil_textile_predict.csv,)sepzyear	lconsump	lincome	lpricea_          1923	1.99651	1.98543	2.00432
        1924	1.99564	1.99167	2.00043
        1925	2	2	2
        1926	2.04766	2.02078	1.95713
        1927	2.08707	2.02078	1.93702
        1928	2.07041	2.03941	1.95279
        1929	2.08314	2.04454	1.95713
        1930	2.13354	2.05038	1.91803
        1931	2.18808	2.03862	1.84572
        1932	2.18639	2.02243	1.81558
        1933	2.20003	2.00732	1.78746
        1934	2.14799	1.97955	1.79588
        1935	2.13418	1.98408	1.80346
        1936	2.22531	1.98945	1.72099
        1937	2.18837	2.0103	1.77597
        1938	2.17319	2.00689	1.77452
        1939	2.2188	2.0162	1.78746         r   )r   r   r   )r   r   r   gffffffg
ףp=
?g{Gz)q_matrixsigma_prior
data-priorT)cov_typeuse_tg{:(?scale)results_theil_textile)ospathdirnameabspath__file__joinpdread_csvres_predictsplitnparrayfloatreshapecolumn_stackonesshaper   fitres1_cacher
   r   res2)clscur_dirfilepathnamesdataendogexogr_matrixr_meancov_rmod	resmodules               `/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/regression/tests/test_theil.pysetup_classzTestTheilTextile.setup_class   sJ    ''//"''//(";<77<< ;=++hC8.446xx &" ',egu#6" 7>gb!n# 	( QT
QURWWU[[^-DEF 88Y	23T7E*UG,<=>udHv5Q77L7=#9 ?22    c                    | j                   j                  d d d df   j                  }|\  }}}}}}t        | j                  j
                  |d       d}d}d}t        | j                  j                  |z  |d       t        | j                  j                  |z  |d       | j                  j                         }	t        |	d d df   |d       t        |	d d df   |d       t        | j                  j                  | j                   j                  d       | j                  j                  | j                   j                  z  }t        t        j                  | j                  j                  |z        | j                   j                   d       t        | j                  j"                  | j$                  d	   d
       y )N   >rtolgd64y?g_l)?r   r   g{Gz?fittedvaluesg    ׇA)atol)r,   params_tableTr   r*   paramsbsetvaluesconf_intrsquaredr2df_residdf_rr"   sqrt	mse_residrmserA   r    )
selfptparams2bse2tvalues2pvalues2ci_lowci_upp	corr_factcis
             r9   
test_basiczTestTheilTextile.test_basicE   s_   YY##AbqbD)++<>9x66		(('=
 '	'					14dC		))Y6tL YY!1Q3d31Q3d3		**DIILLtD II&&7			 3 3i ?@		T	3 			..((8s	Dr;   c                 h   | j                   j                         }t        t        j                  |d         | j
                  j                  d       t        t        j                  |d         | j
                  j                  d       | j                   j                         }t        |dd       y )Nr   r>   r?   r   gCcn(B:?)	r*   test_compatibilityr   r"   squeezer,   compatpvalue
share_data)rP   tcfracs      r9   
test_otherzTestTheilTextile.test_otherc   s{    YY))+

2a5)499+;+;$G

2a5)499+;+;$Gyy##% 	0t<r;   c                    t        | j                  j                  j                  | j                  j                  j                        j                         }| j                  j                  j                  dd      }t        |j                  |j                  d       t        |j                  |j                  d       y )Nr   r   )
pen_weightr   g|=r?   )	r   r*   modelr2   r3   r)   r   rE   rF   )rP   res_ols	res_theils      r9   test_no_penalizationz%TestTheilTextile.test_no_penalizationq   sz    diioo++TYY__-A-ABFFHIIOO''1|'L		(('..uE	w{{?r;   c                     t        j                  t              5  | j                  j	                          d d d        y # 1 sw Y   y xY w)N)pytestwarnsUserWarningr*   summary)rP   s    r9   test_summaryzTestTheilTextile.test_summaryw   s3    \\+& 	 II	  	  	 s	   >AN)__name__
__module____qualname__classmethodr:   rZ   rc   ri   rk   marksmokero    r;   r9   r   r      sD    +3 +3\D<=@ [[   r;   r   c                   *    e Zd ZddiZed        Zd Zy)CheckEquivalenceMixindefault)-C6?g#B;c                 J   t         j                  j                  d       d\  }}dt        j                  g d      z  }t         j                  j	                  ||      }d|d d df<   t        j
                  ||      dt         j                  j	                  |      z  z   }||fS )Ni@ )            ?)皙?r   r   r   r   r   r   r   )r"   randomseedr#   randndot)r-   nobsk_varsbetaxys         r9   
get_samplez CheckEquivalenceMixin.get_sample   s    
		vfRXX/00IIOOD&)!Q$FF1dOa"))//$"777!tr;   c                    g d}g d}dd l }|j                  |      }t        | dd      s|j                  |       |D ]  }t        | j                  |      }t        | j                  |      }t        j                  |      dk(  s|d t        |       }| j                  j                  || j                  d         \  }}	d|z   }
t        ||||	|
	        t        | j                  j                  | j                  j                  d
d       t        | j                  j                  | j                  j                  d
d       y )N)rE   rI   rK   df_modelllfaicbic)rF   rG   pvaluesr   skip_inferenceFr   ry   zattribute: )r@   rB   err_msgMbP?rz   )r@   rB   )copygetattrextendr*   r,   r"   sizelentolgetr   rA   resid)rP   attributes_fitattributes_inferencer   
attributesattr1rJ   r@   rB   messages              r9   test_attributesz%CheckEquivalenceMixin.test_attributes   s     =YY~.
t-u523 		KCC(BC(B772;!#R\ c488I+>?JD$#c)GBD'J		K 			..		0F0F!	.		!	.r;   N)rp   rq   rr   r   rs   r   r   rv   r;   r9   rx   rx   }   s#    m
$C .r;   rx   c                       e Zd Zed        Zy)
TestTheil1c                     | j                         \  }}t        ||g d      }|j                  d      | _        t	        ||d d d df         j                         | _        y )Nr   r         ?r   r   @    r   r   r)   r*   r   r,   r-   r   r   mod1s       r9   r:   zTestTheil1.setup_class   sS    ~~11.988F#q!ArrE(#'')r;   Nrp   rq   rr   rs   r:   rv   r;   r9   r   r      s     * *r;   r   c                       e Zd Zed        Zy)
TestTheil2c                     | j                         \  }}t        ||g d      }|j                  d      | _        t	        ||      j                         | _        y )Nr   r   r   r   r   s       r9   r:   zTestTheil2.setup_class   sB    ~~11.988A;q!9==?r;   Nr   rv   r;   r9   r   r      s     # #r;   r   c                       e Zd Zed        Zy)
TestTheil3c                    d| _         | j                         \  }}t        j                  ||f      }t        j                  ddd      }t        |||      }|j                  dd      | _        t        ||      j                         | _	        y )NTr}   
   r4   r   r   r   )
r   r   r"   r&   eyer   r)   r*   r   r,   )r-   r   r   xdr4   r   s         r9   r:   zTestTheil3.setup_class   ss    !~~1__aV$66!R#2188EL89q!9==?r;   Nr   rv   r;   r9   r   r      s     # #r;   r   c                       e Zd Zed        Zy)TestTheilGLSc                    | j                         \  }}t        |      }t        j                  |      |dz  k  dz   }t	        |||g d      }|j                  d      | _        t        ||d d d df   |      j                         | _        y )Nr   r~   r   )sigmar   r   r   )r   )	r   r   r"   aranger   r)   r*   r   r,   )r-   r   r   r   weightsr   s         r9   r:   zTestTheilGLS.setup_class   s{    ~~11v99T?dai0C71GH88F#q!ArrE('2668r;   Nr   rv   r;   r9   r   r      s     9 9r;   r   c                       e Zd Zed        Zy)TestTheilLinRestrictionc                 x   | j                         \  }}|d d d df   j                         }|d d dfxx   |d d df   z  cc<   t        ||d d d df   g dg      }|j                  d      | _        t        ||      j                         | _        ddd	}|j                  | j                         || _        y )
Nr   r   r   r   r   r   r   r   )rz   gH׊>)gMb@?r   )r   rG   )	r   r   r   r)   r*   r   r,   updater   )r-   r   r   x2r   r   s         r9   r:   z#TestTheilLinRestriction.setup_class   s    ~~1q"1"uX]]_
1a4AadG1QU8
|<88F#q":>># '#%

377r;   Nr   rv   r;   r9   r   r      s      r;   r   c                       e Zd Zed        Zy)TestTheilLinRestrictionApproxc                    | j                         \  }}|d d d df   j                         }|d d dfxx   |d d df   z  cc<   t        ||d d d df   g dg      }|j                  d      | _        t        ||      j                         | _        dd l}|j                  | j                        }dd	d
d}|j                  |       || _        y )Nr   r   r   r   r   d   r   )g333333?r   )g?r   )g{Gz?r   )ry   rE   r   )	r   r   r   r)   r*   r   r,   r   r   )r-   r   r   r   r   r   r   tol2s           r9   r:   z)TestTheilLinRestrictionApprox.setup_class   s    ~~1q"1"uX]]_
1a4AadG1QU8
|<88C=q":>># 	ii %$( 	

4r;   Nr   rv   r;   r9   r   r      s      r;   r   c                   (    e Zd Zed        Zd Zd Zy)TestTheilPanelc                    d}d}||z  }d}ddl m}  ||||d      }d|j                  j                  |      z   |_        t        d	|j                         |j                         }t        j                  |j                  d d d
d f   |j                  d d d f   t        j                  |      k(  f      }|| _        || _        || _
        t        ||      j!                         | _        y )Ni,  r}   r   r   )PanelSampleiɠ )r   r   r   r   )&statsmodels.sandbox.panel.random_panelr   random_stater   group_meansprintr   generate_panelr"   r&   r3   groupsr   dgpr2   r   r)   rg   )	r-   r   nobs_in_groupsr   r   r   r   r   s	            r9   r:   zTestTheilPanel.setup_class  s     6>F$v>c..44X>>fchh OOSXXad^ ZZ$/299X3FFH I	!Qimmor;   c                 `   | j                   }| j                  }| j                  j                  | j                  j                  }}t        j                  |dz
        d|z  t        j                  |dz
  |dz
  f      z  z
  }t
        j                  t        j                  |dz
  |f      |f   }t        j                  |dz
        }d|d d |dz
  f<   d}t        |||||      }	|	j                         }
t        j                  g d      }t        |
j                  |       |	j                  d      }|	j                  d      }|	j                  d	      }|	j                  d
      }t        ||d       t        |dd       t        |dd       t        |dd       t        |dd       y )Nr   r   r   r4   r   r   )>gUG4?g$?gw3?gS?d @g;ۣ@gZ8@gq?g:_@gpp@gDTק	@ge?.@g$d@g30@ga)y@gYr>	@gFbz@gSi<@g@$~@g D,(@gx@gV4JUb@g}?B@g!@g7@g>{V@g2f"@gk^4;]	@gl~4@g{CCY@g!Hc@g?gd?gpC9@gҚ|^?g6g@go&X@gcF	@gx*gs@gK@g\23y ?gW@@gwƚ@gܤ?	@g<Z@g'U<@gں'Q'{@gn@g>({*3@g &B!@gcAJ-@gƉ^@grC|@g+WOZ@g&Ϧ@geY@g9M%@g"4Ə	@gW3|UxA@g$,_ @g|]@gOyL@gF}@aicc)methodgcvcvr   r   r?   g%f@rz   gfffff@g "@g2gf?)r2   r3   r   r   r   r"   r   r'   c_zerosr   r)   r#   r   rE   select_pen_weight)rP   r   r   r   r   RgRrlambdr7   resparams1pen_weight_aiccpen_weight_gcvpen_weight_cvpen_weight_bics                   r9   test_regressionzTestTheilPanel.test_regression!  s   JJII88,,dhhoo&ffXaZ 2=Axz23$4 4EE"((HqL&12B67HHX\"!VAX+q!a!Gggi (( % & 	

G,//v/>..e.<--T-:..e.<cB$?$?
>z=r;   c           	      >   | j                   }| j                  }t        |      }|dz  }t        j                  j                  d       t        j                  j                  t        j                  |            }||   }||   }d}t        |d | |d |d |f         j                         }	t        ||d  ||d d |f         j                         }
|
j                  |	j                  z  }t        ||d  ||d d |f   t        j                  |      |	j                  ||	j                         z        }|j                  d      }|j                  d      }t        ||d d d |f         j                         }t        |j                  |j                  d	       t        j                   |j                  |j                  z        }t        |j"                  |j"                  |z  d
	       t        j$                  g d      }t        |j"                  |d	       y )Nr   i r   r   r   r   sandwichg&.>r?   r   )
gYf{?g#|?gԒ?gKe7?gW:%?g]U?gNlp.?g:->?gˤ]w?g*A?gHz>)r2   r3   r   r"   r   r   permutationr   r   r)   r   r   r   rE   
cov_paramsr   rM   rF   r#   )rP   r2   r3   r   n05shuffle_idxysxskres_ols0res_ols1wmod_1res_1pres_1sres_olsfrX   bse1s                     r9   test_combine_subset_regressionz-TestTheilPanel.test_combine_subset_regressionL  s   

yy5zai
		vii++BIIdO<;+r$3xDSD"1"H.224r#$xCD"1"H.224NNX^^+CD2cdBQBh<"&&)"*//%&)<)<)>%>@ L1J/r2a!e9%))+xTBGGFLL8>>9:	

HLL9$<4H
 xx L M 	

Dt4r;   N)rp   rq   rr   rs   r:   r   r   rv   r;   r9   r   r   
  s    & &()>V#5r;   r   )__doc__r   numpyr"   pandasr   rk   numpy.testingr   #statsmodels.regression.linear_modelr   r   (statsmodels.sandbox.regression.penalizedr   r   rx   r   r   r   r   r   r   r   rv   r;   r9   <module>r     s    
    ) 8 =f  f R*. *.Z*& *#& ##& # 
9( 
93 *$9 2e5 e5r;   