
    M/Ph4                     H   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dS )z=
Created on Mon May 05 17:29:56 2014

Author: Josef Perktold
    N)assert_allclose)OLSGLS)TheilGLSc                   `    e Zd Zed             Zd Zd Zd Zej	        j
        d             ZdS )TestTheilTextilec                 P   t           j                            t           j                            t                              }t           j                            |dd          }t          j        |d          | _        d	                                }t          j        d	                                t                                        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#          |||||	          }
|
                    dd          | _        d| j        j        d<   d	dlm} |j        | _        d S )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               g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/regression/tests/test_theil.pysetup_classzTestTheilTextile.setup_class   s    '//"'//(";";<<7<< ;= =+hC888.4466x &" ',eggu#6 6" 7>gb!nn# 	( QQQT
QQQURWU[^-D-DEFF 8YYY			233T7E*UG,<=>>udHv5QQQ77L7==#9 ??????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                                        }	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
           d S )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   Y#AAAbqbD)+<>9x66	('====
 '	'				14dCCCC	)Y6tLLLL Y!!111Q3d3333111Q3d3333	*DILtDDDD I&7		 3i ?@@	T	3 	3 	3 	3 		.(8s	D 	D 	D 	D 	D 	Dr;   c                 ^   | j                                         }t          t          j        |d                   | j        j        d           t          t          j        |d                   | j        j        d           | j                                         }t          |dd           d S )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    Y))++
2a5))49+;$GGGG
2a5))49+;$GGGGy##%% 	0t<<<<<<r;   c                 8   t          | j        j        j        | j        j        j                                                  }| j        j                            dd          }t          |j        |j        d           t          |j        |j        d           d S )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   s    dio+TY_-ABBFFHHIO''1|'LL		('.uEEEE	w{??????r;   c                     t          j        t                    5  | j                                         d d d            d S # 1 swxY w Y   d S )N)pytestwarnsUserWarningr*   summary)rP   s    r9   test_summaryzTestTheilTextile.test_summaryw   s    \+&& 	  	 I	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAN)__name__
__module____qualname__classmethodr:   rZ   rc   ri   rk   marksmokero    r;   r9   r   r      s        +3 +3 [+3\D D D<= = =@ @ @ [         r;   r   c                   2    e Zd ZddiZed             Zd ZdS )CheckEquivalenceMixindefault)-C6?g#B;c                 F   t           j                            d           d\  }}dt          j        g d          z  }t           j                            ||          }d|d d df<   t          j        ||          dt           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RX///000IOOD&))!!!Q$F1dOOa")//$"7"777!tr;   c                 p   g d}g d}dd l }|                     |          }t          | dd          s|                    |           |D ]}t          | j        |          }t          | j        |          }t          j        |          dk    s|d t          |                   }| j        	                    || j        d                   \  }}	d|z   }
t          ||||	|
	           t          | j        j        | j        j        d
d           t          | j        j        | j        j        d
d           d S )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   sd       =<<YY~..
t-u55 	42333 		K 		KCC((BC((B72;;!##R\ c48I+>??JD$#c)GBD'JJJJJ 		.	0F!	. 	. 	. 	.	!	. 	. 	. 	. 	. 	.r;   N)rp   rq   rr   r   rs   r   r   rv   r;   r9   rx   rx   }   sF        m
$C  [. . . . .r;   rx   c                   $    e Zd Zed             ZdS )
TestTheil1c                     |                                  \  }}t          ||g d          }|                    d          | _        t	          ||d d d df                                                   | _        d S )Nr   r         ?r   r   @    r   r   r)   r*   r   r,   r-   r   r   mod1s       r9   r:   zTestTheil1.setup_class   sq    ~~11...99988F##q!AAArrE(##''))r;   Nrp   rq   rr   rs   r:   rv   r;   r9   r   r      s/         * * [* * *r;   r   c                   $    e Zd Zed             ZdS )
TestTheil2c                     |                                  \  }}t          ||g d          }|                    d          | _        t	          ||                                          | _        d S )Nr   r   r   r   r   s       r9   r:   zTestTheil2.setup_class   sY    ~~11...99988A;;q!99==??r;   Nr   rv   r;   r9   r   r      s/         # # [# # #r;   r   c                   $    e Zd Zed             ZdS )
TestTheil3c                 D   d| _         |                                 \  }}t          j        ||f          }t          j        ddd          }t          |||          }|                    dd          | _        t          ||                                          | _	        d S )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   s    !~~1_aV$$6!R##211188EL899q!99==??r;   Nr   rv   r;   r9   r   r      s/         # # [# # #r;   r   c                   $    e Zd Zed             ZdS )TestTheilGLSc                 V   |                                  \  }}t          |          }t          j        |          |dz  k     dz   }t	          |||g d          }|                    d          | _        t          ||d d d df         |                                          | _        d S )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1vv9T??dai0C71GHHH88F##q!AAArrE('2226688r;   Nr   rv   r;   r9   r   r      s/         9 9 [9 9 9r;   r   c                   $    e Zd Zed             ZdS )TestTheilLinRestrictionc                    |                                  \  }}|d d d df                                         }|d d dfxx         |d d df         z  cc<   t          ||d d d df         g dg          }|                    d          | _        t          ||                                          | _        ddd	}|                    | j                   || _        d S )
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qqq"1"uX]]__
111a4AaaadG1QQQU8


|<<<88F##q"::>>## '#% %

37r;   Nr   rv   r;   r9   r   r      s/           [  r;   r   c                   $    e Zd Zed             ZdS )TestTheilLinRestrictionApproxc                    |                                  \  }}|d d d df                                         }|d d dfxx         |d d df         z  cc<   t          ||d d d df         g dg          }|                    d          | _        t          ||                                          | _        dd l}|                    | j                  }dd	d
d}|                    |           || _        d S )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qqq"1"uX]]__
111a4AaaadG1QQQU8


|<<<88C==q"::>>## 	ii  %$(  	

4r;   Nr   rv   r;   r9   r   r      s/           [  r;   r   c                   0    e Zd Zed             Zd Zd ZdS )TestTheilPanelc                    d}d}||z  }d}ddl m}  ||||d          }d|j                            |          z   |_        t          d	|j                   |                                }t          j	        |j
        d d d
d f         |j        d d d f         t          j        |          k    f          }|| _        || _        || _
        t          ||                                          | _        d S )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FFFFFk$v>>>c.44X>>>fch  OSXaaad^ Z$/29X3F3FFH I I	!Qiimmoor;   c                 p   | 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          |||||          }	|	                                }
t          j        g d          }t          |
j        |           |	                    d          }|	                    d          }|	                    d	          }|	                    d
          }t          ||d           t          |dd           t          |dd           t          |dd           t          |dd           d S )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   JI8,dho&fXaZ  2=Axz233$4 4E"(HqL&122B67HX\""!!!VAX+q!a!GGGggii ( % % % & & 	
G,,,//v/>>..e.<<--T-::..e.<<cBBBB$????$????
>>>>z======r;   c           	      r   | j         }| j        }t          |          }|dz  }t          j                            d           t          j                            t          j        |                    }||         }||         }d}t          |d |         |d |d |f                   	                                }	t          ||d          ||d d |f                   	                                }
|
j
        |	j
        z  }t          ||d          ||d d |f         t          j        |          |	j        ||	                                z            }|	                    d          }|	                    d          }t          ||d d d |f                   	                                }t          |j        |j        d	           t          j        |j
        |j
        z            }t          |j        |j        |z  d
	           t          j        g d          }t          |j        |d	           d S )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    
y5zzai
	vi++BIdOO<<;+r$3$xDSD"1"H..2244r#$$xCDD"1"H..2244NX^+CDD2cddBQBh<"&))"*/%&)<)<)>)>%>@ @ @ L11J//r2aaa!e9%%))++xTBBBBGFL8>9::	
HL9$<4HHHH
 x L L L M M 	
Dt444444r;   N)rp   rq   rr   rs   r:   r   r   rv   r;   r9   r   r   
  sL        & & [&()> )> )>V#5 #5 #5 #5 #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 8 8 8 8 8 8 8 = = = = = =f  f  f  f  f  f  f  f R*. *. *. *. *. *. *. *.Z* * * * *& * * *# # # # #& # # ## # # # #& # # # 
9 
9 
9 
9 
9( 
9 
9 
9    3   *    $9   2e5 e5 e5 e5 e5 e5 e5 e5 e5 e5r;   