
    'YHh4                        d dl mZ d dl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Zd dlmZmZmZmZ d dlmZmZmZmZ d dlmZ d dlmc mZ ddlmZ  G d	 d
      Zd Z  G d d      Z! G d d      Z" G d de"      Z#d Z$ejJ                  jM                  ejJ                  jO                  e(            Z)ejJ                  jU                  e)d      Z+ ejX                  e+      Z-e-D  cg c](  } | j]                  d      s| j_                  d      s'| * c} Z-ej`                  jc                  de-      ej`                  jc                  dddg      ej`                  jc                  dddg      d                      Z2d Z3d Z4ej`                  jj                  d        Z6d Z7ej`                  jj                  d         Z8d! Z9 G d" d#      Z:d$ Z; G d% d&      Z<d' Z=d( Z>yc c} w ))    )PLATFORM_OSXN)sparse)MixedLMMixedLMParams_smw_solver_smw_logdet)assert_almost_equalassert_equalassert_allcloseassert_)
_penalties   )lme_r_resultsc                       e Zd ZdZd Zy)	R_ResultsaY  
    A class for holding various results obtained from fitting one data
    set using lmer in R.

    Parameters
    ----------
    meth : str
        Either "ml" or "reml".
    irfs : str
        Either "irf", for independent random effects, or "drf" for
        dependent random effects.
    ds_ix : int
        The number of the data set
    c                 l   d|||fz  }t        t        d|z         | _        t        t        d|z         | _        t        t        d|z         | _        t        t        d|z         | _        t        t        d|z         | _        t        t        d|z         rTt        t        d|z         | _        t        t        d|z         | _	        t        j                  | j                        | _	        t        j                  j                  t        j                  j                  t                     }t        j                  j#                  |d	      }t        j                  j#                  |d
|z        }t%        |d      5 }t'        j(                  |      }	t+        |	      }
|	D cg c]  }|D cg c]  }t-        |       c} }}}d d d        t        j.                        }|d d 
j1                  d      f   | _        |d d |
j1                  d      f   | _        t7        |
      D cg c]  \  }}|j9                  d      s| }}}|d d |f   | _        t7        |
      D cg c]  \  }}|j9                  d      s| }}}|d d |f   | _        y c c}w c c}}w # 1 sw Y   xY wc c}}w c c}}w )Nz	_%s_%s_%dcoefvcovcov_rescaleloglike
ranef_meanranef_condvarresultszlme%02d.csvzutf-8)encodingendoggroupsexog_feexog_re)getattrr   r   vcov_rcov_re_rscale_rr   hasattrranef_postmeanr   np
atleast_2dospathdirnameabspath__file__joinopencsvreadernextfloatasarrayindexr   r   	enumerate
startswithr   r   )selfmethirfsds_ixbnamecur_dirrdirfnamefidrdrheaderlinexdataiiis                   ^/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/regression/tests/test_lme.py__init__zR_Results.__init__)   s*   tT511M6E>:	mVe^<x%/?@}go>}i%.?@=,"67")-9M"ND!()85)@"BD!#t/A/A!BD ''//"''//(";<ww||GY/T=5#89%'* 	>c**S/C#YF9<=t,!U1X,=D=	> zz$ !V\\'223
1fll8445%f-IDAqi1HaIIArE{%f-IDAqi1HaIIArE{ -=	> 	> JIsH   8&J	J'J9J>J&J* J*#J0=J0JJJ'N)__name__
__module____qualname____doc__rH        rG   r   r      s     #rN   r   c                       fd}|S )Nc                     t        j                  | j                  j                  j                        }j                  |       S )N)has_fe
profile_fe)r   from_packedk_fek_reuse_sqrtr   )rC   paramsrQ   modelrS   s     rG   fzloglike_function.<locals>.fP   sA    **uzz5::u~~fFf<<<rN   rM   )rY   rS   rQ   rZ   s   ``` rG   loglike_functionr[   L   s    =
 HrN   c                       e Zd Zej                  j
                  ej                  j                  dddg      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Zd Z	ej                  j
                  ej                  j                  d	               Zd
 Zd Zd Zd Zd Zd Zd Zej                  j
                  d        Zd Zej                  j
                  d        Zy)TestMixedLMrW   FTremlrS   c           	         d}d}d}d}t         j                  j                  d       t         j                  j                  ||z  |f      }t         j                  j                  ||z  |f      }	d|	d d df<   t         j                  j                  ||z  df      }
t         j                  j                  ||f      }|d d d	fxx   dz  cc<   t        j                  |t        j
                  |df            }t         j                  j                  |df      }t        j                  |t        j
                  |df            }|d d d	fxx   dz  cc<   ||	z  j                  d      }||
z  j                  d      }t         j                  j                  ||z        }|j                  d      |z   |z   |z   }t        j                  t        |      t        j
                  |            }i i d
}t        |      D ]8  }t        j                  ||k(        }|
|ddf   |d   |<   |
|ddf   |d   |<   : t        j                  t        d      5  t        ||||	||      }d d d        j                  |      }t        |||       }	 t        d      D ]  }t         j                  j                  |      }t         j                  j                  ||f      }t        j                  |j                   |      }t         j                  j                  d      dz  }t#        j$                  |||      }|j'                  | |      }|j)                  ||       }t+        j,                  ||      }t/        ||d        |du r|du r|j1                  |j2                        \  } }!|!rt        j4                  d       | d	z  } |j2                  j'                  dd      }t        |dd      }"t+        j6                  ||"      }#t/        | |#d       y y y # 1 sw Y   xY w# t8        $ r t:        rt        j<                  d       Y y  w xY w)N            i  sizer   r   abrh   ri   Using deprecated variancematch)exog_vcrW   r^   )rS   rQ   )r   vcomprQ   rW   rR   MbP?rtolFzhessian should not be singularT)rW   rQ   z4fails on OSX due to unresolved numerical differences)r&   randomseednormalkrononessumrangeflatnonzeropytestwarnsUserWarningr   fitr[   dotTr   from_components
get_packedscorendapprox_fprimer   hessianparams_objectfailapprox_hessAssertionErrorr   xfail)$r7   rW   r^   rS   n_grpgrpsizerU   rV   r   r   rm   slopes	slopes_vc	re_values	vc_valueserrr   r   vcrE   ixrY   rsltr   kr	fe_paramsr   ro   rX   
params_vecgrngrhesssing	loglike_hnhesss$                                       rG   test_compare_numdiffz TestMixedLM.test_compare_numdiff[   s    
		t))""$(?"@))""$(?"@1))""!(<"=!!t}!5q"u'1!67II$$5!*$5	GGIrww|'<=	!R%Ag%**1-	(--a0	iiEGO4A*Y6<urwww'78Bu 	*A!,B QqS)BsGAJ QqS)BsGAJ	*
 \\+-HI 	#!#E	# yydy#"jZA'	Ah 4II,,$,7	))d|)<&1		((a(0!3&66fE;#..)>H / >
 kk&Zk@@&&z7;Cd34& e#(e*;"]]4+=+=>
dKK @A
!//::"4 ; 1
,eD:	z9=e$7 +<#E	# 	#Z  	  5 6 	s   P"F
P/ "P,/$QQc                    t         j                  j                  d       t         j                  j                  d      }t        j                  t        j
                  d      g d      }t        j                  t         j                  j                  d      g d      }|j                  d      |z   t         j                  j                  d      z   }t        |||      j                         }t        |||t        j                  d            j                         }t        |j                  |j                  d	       y )
N  ,     rd   d   r   r   r   r   r      decimal)r&   rt   ru   rv   rw   arangery   r   r   rx   r	   rX   )r7   exogr   g_errorsr   mdf1mdf2s          rG   test_default_rezTestMixedLM.test_default_re   s    
		tyyX.3377299+++5yAh&)9)9s)9)CCudF+//1udFBGGCL9==?DKKa@rN   c                    t         j                  j                  d       t         j                  j                  d      }t        j                  t        j
                  d      g d      }t        j                  t         j                  j                  d      g d      }|j                  d      |z   t         j                  j                  d      z   }t        |||      }|j                  d	      }t        t        |d
      d       y )Nr   r   rd   r   r   r   r   T)full_outputhist)r&   rt   ru   rv   rw   r   ry   r   r   r
   r$   )r7   r   r   r   r   modr   s          rG   test_historyzTestMixedLM.test_history   s    
		tyyX.3377299+++5yAh&)9)9s)9)CCeT6*ww4w(WT6*D1rN   c                    t         j                  j                  d       d}d}d}t         j                  j                  ||z  |f      }t        j                  ||z  df      }t        j
                  t        j                  |      t        j                  |            }t         j                  j                  ||z        }t         j                  j                  ||z        }d}	t        j
                  t         j                  j                  d      t        j                  |            }
|	|
|d d df   z   z  }	t         j                  j                  |      }|	t        j
                  |t        j                  |            |z  z  }	t         j                  j                  |      }|	t        j
                  |t        j                  |            |z  z  }	|	t         j                  j                  ||z        z  }	|j                  d      |	z   }i i d}t        |      D ]>  }t        j                  ||k(        }||   d d d f   |d	   |<   ||   d d d f   |d
   |<   @ t        j                  t        d      5  t        |||||      j                         }d d d        j                  dddddd       |j                  d
ddddd       y # 1 sw Y   8xY w)NiV&  rc   rb   r   rd   r   r   rg   rh   ri   rj   rk   )r   r   rm   re)vtypedist_lownum_low	dist_highnum_highr         ?)r&   rt   ru   rv   rx   rw   r   ry   rz   r{   r|   r}   r~   r   r   
profile_re)r7   rU   gsizer   r   r   r   vcavcberrorsr   rcr   r   krF   r   s                    rG   test_profile_inferencez"TestMixedLM.test_profile_inference   s    			tyyeemT%:;''55=!,-5)2775>:iiEEM2iiEEM277299+++5rwwu~F(WQT]**YY5)"''"bggen-33YY5)"''"bggen-33"))"""66f$Bu 	*A!,BRD)BsGAJRD)BsGAJ	* \\+-HI 	>5$v#*B88; 	> 	1"#a 	 	14#q"% 	 	3	> 	>s   KK"c                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  t        j
                  d      t        j                  d            }t         j                  j                  d      }|d d dfxx   d	z  cc<   t        j                  |t        j                  d
            |z  }|j                  d      t         j                  j                  d      z   }|j                  d      |z   }t        dd	d      }t        j                  d      |_	        t        j                  d	      |_        t        j                  d      |_        t        ||||      }|j                  |      }	i i d}
t!        |j"                        D ]2  \  }}|j$                  |   }||ddf   |
d   |<   ||dd	f   |
d   |<   4 t'        j(                  t*        d      5  t        ||||
      }d d d        j                         }|j-                          t/        |	j                  |j                  d       t/        t        j0                  |	j                        |j                  dd       t/        |	j2                  g d   |j2                  dd       y # 1 sw Y   xY w)N  )  r   rd   )r   rc   r   r   )r   rc   r   rc   r   r   r   r   )r   )freerg   rh   ri   rj   rk   )rm   -C6?)atol{Gz?)r   rs   )r   r   rb   )r&   rt   ru   rv   rw   r   rx   ry   r   r   eyer   zerosro   r   r   r5   group_labelsrow_indicesr|   r}   r~   summaryr   diagbse)r7   r   r   r   r   r   r   r   model1result1rm   r   groupr   model2result2s                   rG   test_vcomp_1zTestMixedLM.test_vcomp_1   sP    			tyyX.))"""134!!x!0q!t1G;A!1!1s!1!;;f$Q1%ffQiXXa[
fg>**$*'$!&"5"56 	3HAu##E*B")"ac'"2GCL")"ac'"2GCL	3 \\+-HI 	CUD&'BF	C**,))7+<+<4HGGGNN#W]]D	JKK	"GKKd	G	C 	Cs   %KK'c                    t         j                  j                  d       d}t         j                  j                  |df      }t        j                  t        j
                  |dz        t        j                  d            }d}t         j                  j                  |df      }t         j                  j                  |dz  df      }t        j                  |t        j                  d            |z  }||j                  d      z  }t        j                  t        j
                  |d	z        t        j                  d	            }|t        j                  dt         j                  j                  |d	z        z  t        j                  d	            z  }t        j                  t        j
                  |dz        t        j                  d            }|t        j                  dt         j                  j                  |dz        z  t        j                  d            z  }|t         j                  j                  |      z  }|j                  d      |z   }	t        j                  t        |      
      }
|	|
d<   ||
d<   |d d df   |
d<   |d d df   |
d<   |d d df   |
d<   |d d df   |
d<   ||
d<   ||
d<   ddd}t        j                  d|d||
      }|j                         }t        |j                  g dd       t        |j                   ddgddggd       t        |j"                  d d!gd       t        |j$                  j&                  dd" g d#d       y )$Na  i@  rc   rd      r   )r   r   r   r   r4   yr   x1x2z1z2v1v2z	0 + C(v1)z	0 + C(v2)rg   zy ~ x1 + x2z0+z1+z2r   
re_formula
vc_formularD   )gE>'?gh㈵?g|'f?r   rr   gCl?g㥛 ?gV-?rq   gjt@g`"@rb   )gFx$?gD;)?g?)r&   rt   ru   rv   rw   r   rx   ry   pd	DataFramerz   r   from_formular   r   r   r   ro   r   iloc)r7   nr   r   r   r   r   
subgroups1
subgroups2r   dfvcfr   r   s                 rG   test_vcomp_2zTestMixedLM.test_vcomp_2  s    			tyyaV,1r6*BGGBK8  ))""A"/!!R|!4!12W<&**Q- WWRYYq1u-rwwqz:
"''!bii..AF.;;RWWQZHH WWRYYq1u-rwwqz:
"''!bii..AF.;;RWWQZHH 	"))"""**f$\\a)381:41:41a4=41a4=444  k2%%  **, 	:	GNNeU^eU^<4	Iu~DAKKQq!#>T	KrN   c                 \   t         j                  j                  d       t         j                  j                  d      }t        j                  t        j
                  d      t        j                  d            }t         j                  j                  d      }t        j                  |t        j                  d            |z  }|t         j                  j                  d      z   }ddi}t        j                  |||d      }t        j                  d	d
||      }|j                         }|j                          t        |j                  j                  dd t         j                   d   d       t        |j"                  j                  dd t         j                   d   d       y )Nr   r   rd   r   r   rh   z0 + x1)r   r   r   zy ~ 1r   )r   r   rD   r   )gSvA]g{?gб?gP4`_rq   rr   )ghg 8L?g!Va̿g&R?o*)r&   rt   ru   rv   rw   r   rx   r   r   r   r   r   r   r   residr   r_fittedvalues)	r7   r   r   r   r   vc_fmlr   rY   results	            rG   test_vcomp_3zTestMixedLM.test_vcomp_3Q  sD    			tYY3'34!!s!+,r1RYY%%3%//x\\v>?$$HbBLLa"EE:;	 	$$Qq)EE;<	rN   c                 `   t         j                  j                  t         j                  j                  t                    }t         j                  j                  |d      }t         j                  j                  |d      }t        j                  |      }ddi}t        j                  ddd||      }|j                         }t        j                  ddd|d	|
      }|j                         }	t        |j                  |	j                         t        |j                  |	j                         y )Nr   
pastes.csvcask0 + caskstrength ~ 1batch1r   T)r   r   r   
use_sparserD   )r(   r)   r*   r+   r,   r-   r   read_csvr   r   r   r   rX   r   )
r7   r<   r=   r>   rD   r   rY   r   r   r   s
             rG   test_sparsezTestMixedLM.test_sparsek  s    ''//"''//(";<ww||GY/T<0 {{5!z"$$  %% **,w~~6

GKK0rN   c                    t         j                  j                  t         j                  j                  t                    }t         j                  j                  |d      }t         j                  j                  |d      }t        j                  |      }t        j                  dd|      }|j                         }t        |j                  t        j                  d   d       t        |j                  d	d
 t        j                  d   d       t        |j                   dd       t        |j"                  dd       t        |j%                  |j&                        dd       t        j                  |      }t        j                  dd|      }|j                  d      }t        |j                  t        j                  d   d       t        |j                  d	d
 t        j                  d   d       t        |j                   dd       t        |j"                  dd       t        |j%                  |j&                        dd       y )Nr   
dietox.csvWeight ~ TimePigr   rD   )gMqr/@gD @h㈵>rr   r   rc   )gKz7?gd"?g$0ܻ&@g-!l2D@ǧɢFrn   )g73pr/@g"J @)gǎ?g\?g0|&@gC@g/Ţ)r(   r)   r*   r+   r,   r-   r   r  r   r   r   r   r   r&   r   r   r   r   r   r   r7   r<   r=   r>   rD   rY   r   s          rG   test_dietoxzTestMixedLM.test_dietox  s    ''//"''//(";<ww||GY/T<0 {{5!$$_UN 	bee$78t	E 	JJqORUU#9:	G 	hT: 	xd; 	MM&../	G {{5!$$_UN& 	bee$78t	E 	JJqORUU#78t	E 	hT: 	xd; 	MM&../	GrN   c                 Z   t         j                  j                  t         j                  j                  t                    }t         j                  j                  |d      }t         j                  j                  |d      }t        j                  |      }t        j                  ddd|      }|j                  d      }t        |j                  t        j                  d	   d
       t        |j                  dd t        j                  d   d       t        |j                   dd       t        |j"                  j$                  j'                         t        j                  d   d       t        |j)                  |j*                        dd
       t        j                  |      }t        j                  ddd|      }|j                  dd      }t        |j                  t        j                  d   d
       t        |j                  dd t        j                  d   d       t        |j                   dd       t        |j"                  j$                  j'                         t        j                  d   d       t        |j)                  |j*                        dd
       y )Nr   r  r  r  z1 + Time)r   r   rD   cg)method)g|a2U0z/@g@r	  rr   r   rc   )gUx_?gcoo?rq   gJY&@)g
zS~3@矊%?r  g=Ƃ ?皙?gMbRF)r  r^   )g`-z/@g(yu@)gS~;{?gjt1K?g?V&@)g@C03@wo?r  gl`q8?r   gK7O)r(   r)   r*   r+   r,   r-   r   r  r   r   r   r   r   r&   r   r   r   r   valuesravelr   r   r
  s          rG   test_dietox_slopeszTestMixedLM.test_dietox_slopes  s    ''//"''//(";<ww||GY/T<0 {{5!$$EjtM$' 	bee$78t	E 	JJqORUU#78t	E 	gD9 	MM  &&(EE=>	 	MM&../	G {{5!$$EjtM$U3 	(("%%0A*BN 	JJqORUU#9:	G 	hT: 	MM  &&(EE9:	 	MM&../	GrN   c                    t         j                  j                  t         j                  j                  t                    }t         j                  j                  |d      }t         j                  j                  |d      }t        j                  |      }ddi}t        j                  ddd||      }|j                         }t        |j                  j                  d	   d
d       t        |j                  j                  d	   dd       t        |j                  j                  d   dd       t        |j                   dd       t        |j"                  dd       t%        |j&                  t(        j*                         t%        |j,                  t(        j*                         t(        j.                  d   }t        |j0                  d	d |d       t(        j.                  d   }	t        |j2                  d	d |	d       t        j                  ddd||      }|j                  d      }t        |j                  j                  d	   d
d       t        |j                  j                  d	   dd       t        |j                  j                  d   dd       t        |j                   dd       t        |j"                  dd       t        |j&                  dd       t        |j,                  dd       y )Nr   r   r   r   r   r   r   r   r   g;pΈN@rq   rr   ga2U0*?)r   r   gPn?gV-?g(\^r  )gVQ?g7BZg4Kbg0_^?gDra   )&NwPO@r  9}N@r  g7ُiO@r   Frn   g%C?gv/?g5{?g+^go@grp@)r(   r)   r*   r+   r,   r-   r   r  r   r   r   r   r   r   r   r   r   llfr
   aicr&   nanbicr   r   r   )
r7   r<   r=   r>   rD   r   rY   r   r   r   s
             rG   test_pastes_vcompzTestMixedLM.test_pastes_vcomp  sZ    ''//"''//(";<ww||GY/T<0{{5!z" $$  	((--a0'E 	

*F> 	**40%dC 	e$7 	

G$7 	VZZ(VZZ(  " #Qq)5t< eeDE++Aa0#DA $$ & 	((--a0'E 	

*E= 	**40%dC 	gD9 	

H48 	

H48 	

H48rN   c                    t         j                  j                  d       d}t         j                  j                  |df      }d|d d df<   g }t        j                  t        j
                  |dz        t        j                  d            }d}t         j                  j                  |df      }t         j                  j                  |dz  df      }t        j                  |t        j                  d            |z  }||j                  d      z  }t         j                  j                  |df      }t         j                  j                  |dz  df      }|d d dd fxx   dz  cc<   t        j                  |t        j                  d            |z  }||j                  d      z  }|t         j                  j                  |      z  }|j                  d      |z   }i i d	}	t        t        t        |dz                    D ];  \  }
}t        j                  ||k(        }||ddf   |	d
   |<   ||dd f   |	d   |<   = t        j                  t        d      5  t        |||||	      }d d d        j!                         }t#        j$                  |d d dd f   dg      }||d<   |d d df   |d<   |d d df   |d<   |d d df   |d<   |d d df   |d<   |d d df   |d<   |d d df   |d<   ddd	}t        j&                  d|d||      }|j!                         }t)        |j*                  |j*                  d       t)        |j,                  |j,                  d       t)        |j.                  |j.                  d       t)        |j0                  |j0                  d       t)        |j2                  |j2                  d       y # 1 sw Y   bxY w) Nr   i   rc   rd   r   r   r   r   rg   rh   ri   rj   rk   )r   rm   r   columnsr   re1re2vc1vc2vc3rb   vc4z0 + vc1 + vc2z0 + vc3 + vc4y ~ x1z0 + re1 + re2r   g:0yE>rr   )r&   rt   ru   rv   rw   r   rx   ry   r5   rz   intr{   r|   r}   r~   r   r   r   r   r   r   r   r   ro   rX   r   )r7   r   r   ex_vcr   r   r   r   r   rm   r   r   r   r   r   r   r   r   r   s                      rG   test_vcomp_formulazTestMixedLM.test_vcomp_formula^  sh    			tyyaV,QT
1q5)2771:6))""A"/!!Q{!31G;&**Q-		  q!f -!!Q{!3q!"u1E9&**Q-"))"""**f$$!%AE
"34 	0HAu%0B"'AaC.GCL"'AB-GCL	0 \\+-HI 	.UD&'%,.F	. **,\\$q!"u+v63AqDM5	AqDM5	!Q$K5	!Q$K5	!Q$K5	!Q$K5	*A
%%&! **,))7+<+<4HTBw}}4@TBW[[t<5	. 	.s   &OO!c                 ,	   t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  t        j
                  d      g d      }|t        j                  t         j                  j                  d      g d      z  }|j                  d      |z   t         j                  j                  d      z   }t        ||||      }t        |j                  j                  g dk(         t        |j                  j                  d	gk(         t        |j                  j                  d
gk(         |j                         }t        j                  d|i      }t!        |j"                  d         D ]  }	|d d |	f   |d|	z  <    ||d<   d}
d}t        j$                  |
|||      }t        |j                  j                  g dk(         t        |j                  j                  dgk(         t        |j                  j                  dgk(         |j                         }t'        |j(                  |j(                         ||d<   t        j$                  |
||d      }t        |j                  j                  g dk(         t        |j                  j                  dgk(         t        |j                  j                  dgk(         |j                  |j(                        }t+        |j(                  |j(                  d       t        j,                  t/        |      t         j0                        }t        ||||      }t3        j4                         5  t3        j6                  d       |j                         }d d d        ddlm}  ||
|d      }t        |j                  j                  dgk(         t        |j                  j                  dgk(         t3        j4                         5  t3        j6                  d       |j                         }d d d        t'        j(                  j(                         y # 1 sw Y   xY w# 1 sw Y   6xY w)Nj	  r   rd   r   r   r   r   )r   r   x3x4x_re1z	x_re1 Varr   exog%dr   )endog ~ 0 + exog0 + exog1 + exog2 + exog3z0 + exog_rer   r   exog0exog1exog2exog3exog_re Varr   start_paramsr   rr   dtypeignorer   )mixedlmr   z
groups Var)r&   rt   ru   rv   rw   r   ry   r   r   rD   xnamesexog_re_namesexog_re_names_fullr   r   r   rz   shaper   r	   rX   r   rx   lenfloat64warningscatch_warningssimplefilterstatsmodels.formula.apir=  )r7   r   r   r   r   r   mod1rslt1r   r   fmlre_fmlmod2rslt2mod3rslt3mod4rslt4r=  mod5rslt5s                        rG   test_formulaszTestMixedLM.test_formulas  sq   
		tyyX.))""",33RWWRYY%5%53%5%?KKh&)9)9s)9)CCudFG4		  $<<=		''G945		,,=>
 \\7E*+tzz!}% 	*A#AqDzBx!|	*99##CvN		  $HHI		''I;67		,,?@
ELL%,,7 8##x9		  $HHI		''I;67		,,?@ell3ell>
 ''#e*BJJ7udFG4$$& 	!!(+HHJE	 	4sBx0		''H:56		,,>?$$& 	!!(+HHJE	 	ELL%,,7	 		 	s   &Q>/&R
>R
Rc                    t         j                  j                  d       t         j                  j                  d      }t        j                  t        j
                  d      t        j                  d            }|d d df   |d d df   z
  }|t        j                  t         j                  j                  d      t        j                  d            z   t         j                  j                  d      z   }t        |||      }|j                  d	
      }|j                          t        |||      }|j                  dt        j                  d      z  
      }|j                          t        j                         }|j                  |d      }	|	j                          t        j                         }t        j                         5  t        j                  d       |j                  |d      }
d d d        
j                          t        j                  d      }|j                  |d	      }|j                          y # 1 sw Y   RxY w)Ni}  )r   ra   rd   r   r   r   rc   r   g      ?)alpha
   ra   g        )r  rW  r<  g      $@g333333?)r&   rt   ru   rv   rw   r   rx   r   fit_regularizedr   	penaltiesL2rE  rF  rG  PseudoHuber)r7   r   r   expected_endogr   mdr   r   penmdf3mdf4mdf5s               rG   test_regularizedzTestMixedLM.test_regularized  s    			tyyX.34add1a4j0GGBII$$#$.
;<II#&'
 UD&)!!!+ UD&)!!RWWQZ!8 lln!!B!7 lln$$& 	=!!(+%%S%<D	= 	 ##C(!!B!7	= 	=s   )IIN)rI   rJ   rK   r|   markslowparametrizer   r   r   smoker   r   r   r   r  r  r  r  r)  rU  rc  rM   rN   rG   r]   r]   X   s'    [[[[Z%7[[VeT]3[[\E4=9R : 4 8 Rh	A	2 [[[[3  3B$GL=K~41<<G|CGJP9d [[4= 4=l98v [[# #rN   r]   c                   .    e Zd Zed        Zd Zd Zd Zy)TestMixedLMSummaryc                 P   t        j                  ddgd      }t        j                  dgd      }g d}g d}g d}t        j                  |||||d      }|d	   j                  }|g d
   j                  }|d   j                  }	t        |||	      j                         | _        y Nr   r   ra   rX  )
r   ra      rb   ra   r   rc      	   r   )
rm  rc   r   r   r   r   rb   r   rc   r   )
r   r   rc   rb   r   ra   rm  rl  r   rn  )r   pidx0r   r   r   )rp  r   r   ro  r>  )r&   repeatr   r   r  r   r   res
clsro  rp  r   r   r   r   r   r   r   s
             rG   setup_classzTestMixedLMSummary.setup_class  s     iiA"YYsB++*\\#RrLM3$%,,E!!%f599;rN   c                     | j                   j                         }g d}|j                  d   j                  j                  }t        ||       y )N)constr   r   	Group Varr   rr  r   tablesr4   r  r
   r7   summdesiredactuals       rG   test_summaryzTestMixedLMSummary.test_summary
  s<    xx!4Q%%,,VW%rN   c                     | j                   j                  g d      }g d}|j                  d   j                  j                  }t        ||       y )N)ConstantAgeWeight)xname_fe)r  r  r  rx  r   ry  r{  s       rG   test_summary_xname_fez(TestMixedLMSummary.test_summary_xname_fe  sF    xx)FG<uVV 	VW%rN   c                     | j                   j                  dg      }g d}|j                  d   j                  j                  }t        ||       y )NRandom Effects)xname_re)rw  r   r   r  r   ry  r{  s       rG   test_summary_xname_rez(TestMixedLMSummary.test_summary_xname_re  sI    xx*:);<9uVV 	VW%rN   N)rI   rJ   rK   classmethodru  r  r  r  rM   rN   rG   ri  ri    s#    < <&&&rN   ri  c                       e Zd Zed        Zy)TestMixedLMSummaryRegularizedc                 P   t        j                  ddgd      }t        j                  dgd      }g d}g d}g d}t        j                  |||||d      }|d	   j                  }|g d
   j                  }|d   j                  }	t        |||	      j                         | _        y rk  )r&   rq  r   r   r  r   rY  rr  rs  s
             rG   ru  z)TestMixedLMSummaryRegularized.setup_class)  s     iiA"YYsB++*\\#RrLM3$%,,E!!%f5EEGrN   N)rI   rJ   rK   r  ru  rM   rN   rG   r  r  &  s     H HrN   r  c                 l   |r|dk  ry |rdnd}| rdnd}t        |||      }t        |j                  |j                  |j                  |j
                        }|st        j                  t        j                  |j                        dk        rGt        j                         5  t        j                  d       |j                  d| 	      }d d d        n2|j                  d| 	      }n|j                  j                  d
   }|j
                  j                  d
   }	t        ||	d      }
t        j                   |      |
_        t        j$                  |	      |
_        t        j(                  g       |
_        t        j                  t        j                  |j                        dk        rGt        j                         5  t        j                  d       |j                  | d|
      }d d d        n|j                  | d|
      }t-        j"                  |j.                  d       t-        |j&                  |j                  d       t-        |j0                  |j2                  d       |j4                  }t-        |j6                  |j9                         d|d|f   d       t-        |j:                  |j<                  d   d       |sKt-        |j>                  d   |j@                  d       t-        |jB                  d   |jD                  d       y y # 1 sw Y   xY w# 1 sw Y   +xY w)Nrm  irfdrfr^   mlr	  r<  Hz>)gtolr^   r   r   )r^   r  r   r   r   rb   rc   )#r   r   r   r   r   r   r&   anyr   r"   rE  rF  rG  r   rB  r   rx   r   r   r   arrayro   r	   r   r   r#   rU   r!   
cov_paramsr  r   random_effectsr%   random_effects_covr   )r^   r  r:   r9   r8   r   r^  mdfrU   rV   r   s              rG   do1r  <  s    uqy5UD6tDT4'D 
T\\4;;	EB66"''$--(4/0((* 3%%h/ff$Tf23 3 &&d&.C ||!!!$||!!!$T4+ffTlXXb\
66"''$--(4/0((* >%%h/ff$Tf=> > &&dD&9Ctyy!<

DMM1=		4<<;77DS^^%afafn5qB a!< q!4#6#6	C""1%t'9'91	F ?3 3> >s   #)L*L)L&)L3r   lmez.csvr>   r^   FTr  c                 :    t        | dd       }t        |||       y )Nrb   ra   )r'  r  )r>   r^   r  r:   s       rG   test_rr  |  s     a
OEc5rN   c                  p   t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }t        j                  t        j
                  d      g d      }|t        j                  t         j                  j                  d      g d      z  }| j                  d      |z   t         j                  j                  d      z   }t        j                  d|i      }t        | j                  d         D ]  }| d d |f   |d	|z  <    ||d
<   d}d}t        j                  ||||      }	|	j                         }
|
j                          g d}dd
g}g d}t        |	j                   j"                  |k(         t        |	j                   j$                  |k(         t        |	j                   j&                  |k(         |
j(                  }t        |j*                  j-                         ||z   k(         |
j.                  }t        |j*                  j-                         ||z   k(         |
j0                  }t        |j*                  j-                         ||z   k(         |
j3                         }t        |j*                  j-                         ||z   k(         t        |j4                  j-                         ||z   k(         |
j6                  }t        |j*                  j-                         |k(         |
j8                  }t        |j*                  j-                         |k(         |
j:                  }t        |j*                  j-                         |k(         t        |j4                  j-                         |k(         |
j<                  }t        |j*                  j-                         |k(         t        |j4                  j-                         |k(         |
j>                  }t        |j*                  j-                         |k(         y )Nr+  r   rd   r   r   r   r   r   r/  r   r0  z	~ exog_rer1  r2  Group)rx  zGroup x exog_re Covr7  ) r&   rt   ru   rv   rw   r   ry   r   r   rz   rB  r   r   r   r   r   rD   r?  r@  rA  rX   r4   tolistr   tvaluesr  r  r   bse_fer   cov_re_unscaledbse_re)r   r   r   r   r   r   r   rK  rL  rM  r   r?  re_namesre_names_fullrX   r   r  r  fer  r   cov_re_ur  s                          rG   test_mixed_lm_wrapperr    s5   IINN499*DiiC(GWWRYYs^Y/F!1!1s!1!;YGGHHHQK("RYY%5%53%5%??E 
w&	'B4::a=! &1:8a<&ByM
5CFRF6JDXXZF
NN1F#HGMDII&'DII##x/0DII((M9:]]FFLL!Vm%;;<
**CCII&="889nnGGMM  "f}&<<=""$JJ##%-)??@J%%'6M+AAB			BBHHOO'(]]FFLL!V+,]]FFLL!X-.FNN!!#x/0%%HHNN!!#x/0H##%12]]FFLL!]23rN   c                  n   t         j                  j                  d       d} d}d}d}|t         j                  j                  |       z  }t        j                  |t        j
                  |            }||t         j                  j                  | |z        z  z   }t        j                  t        j                  |       t        j
                  |            }t        j
                  | |z        }t        |||      }	|	j                         }
|
j                  }t        t        |t                     t        t        |      | k(         t        t        |d   t        j                               t        t        |d         d	k(         t        ||||
      }	|	j                         }
|
j                  }t        t        |t                     t        t        |      | k(         t        t        |d   t        j                               t        t        |d         d	k(         t         j                  j                  | |z  df      }d	|d d df<   t        j                   dd	|      }t        j                  t        j
                  |       |      |d d d	f<   t        ||||
      }	|	j                         }
|
j                  }t        t        |t                     t        t        |      | k(         t        t        |d   t        j                               t        t        |d         dk(         y )Ni[  r   rX  rc   rb   rd   r>  r   r   )r   r   rf   )r&   rt   ru   rv   rw   rx   r   r   r   r  r   
isinstancedictrC  r   Serieslinspace)ngrpr   rsdgsdmngmnr   r   rC   rY   r   r   xrqps                 rG   test_random_effectsr    sd   IINN5 DE
C
C	ryyT*	*B
''"bggen
%CcBII$$$,$777A	4"''%.	1B
uAAq$EYY[F			BJr4 !CGtOJr!ubii()C1J!O Aq!B/EYY[F			BJr4 !CGtOJr!ubii()C1J!O 
		ua0		1BBq!tH	RE	"Bwwrwwt}b)Bq!tHAq"R0EYY[F			BJr4 !CGtOJr!ubii()C1J!OrN   c            
         t         j                  j                  d       t         j                  j                  d      } t	        j
                  |       } g d| _        t        j                  t        j                  d      t        j                  d            | d<   t         j                  j                  d      }t        j                  |t        j                  d	            }|d d d
f   |d d df   | j                  z  z   |d d df   | j                  z  z   | d<   | dxx   |d d df   | j                  z  t         j                  j                  d      z   z  cc<   t         j                  | j                  d<   t         j                  | j                  d<   t         j                  | j                  d<   t         j                  | j                  d<   t         j                  | j                  d<   t         j                  | j                  d<   d}d}ddd}dD ]U  }dD ]L  }i }| j                         }g d}	|r||d<   |	j!                  d       |r||d<   |	j#                  dd g       ||	   j%                         }t'        j(                         5  t'        j*                  d!       t-        j.                  |fd|d"|}
|
j1                         }t-        j.                  |fd| d#d$|}|j1                         }t3        |j4                  |j4                         t3        |j6                  |j6                         t9        t;        |j<                        |j>                         d d d        O X y # 1 sw Y   ^xY w)%Ni[  )r   rm  rd   )r   gr   r   c1c22   rc   r  )r  r   )rc   r   r   r   r   rb   r   )r   r   )rc   r  )rb   r   )r   r   )ra   r  )rm  r  r&  z1 + z1z0 + c1z0 + c2rg   )FT)r   r  r   r   r   r   r  r  r<  r  drop)r   rD   missing) r&   rt   ru   rv   r   r   r  rw   r   rx   r   r  r  r  loccopyappendextenddropnarE  rF  rG  r   r   r   r   rX   r   r
   rC  r   nobs)r   r   rK  r   r   
include_re
include_vckwargsdxvar   r   r   r   s                 rG   test_handle_missingr    s    IINN5			x		(B	b	B3BJggbiimRWWQZ0BsG			w		'B	RWWV_	%BAhAqDBEE))Bq!tHruu,<<BsGsGr!Q$x"%%"))"2"2"2"<<<GVVBFF6NVVBFF6NffBFF7OffBFF7OffBFF7OffBFF7O
CJh/J!  F
% 	FJFB!B'1|$		$'1|$		4,'BB
 ((* F%%h/ !--8 #"8068 **, !--H #"fH@FH **,?W[[9S!5!56EF F!	F F"F Fs   CM55M?c                     ddl m}  g d}g d}t        j                  g d      }|||d}t	        j
                  |      }t        j                  g d      }t        j                  d||d	   
      }|j                  |      }t        j                  g d      }t        j                  d||d	   
      }	|	j                  |      }
 | ||
gdg d      }d}t        t        |      |       y )Nr   )summary_col)r   r   r   r   r   rc   rc   rc   rc   rb   rb   rb   rb   rb   rb   )r   rc   rb   r   ra   rm  rl  r   rn  rX                 )goʡ?gd;OgZd;@gZd;O@gjt@gl@grh@gGz@g"~@g(\O$@g$@gDl)1@g-F1@g`"-@g-,@)YXIDS)g@{Fg~eJ?gͣT?Y ~ Xr  r>  r8  )g&ʓ@g.?g<H.*?zX ~ YT)rx  	Interceptr  r  )starsregressor_ordera  
=============================
              Y         X    
-----------------------------
Group Var 0.1955    1.3854   
          (0.6032)  (2.7377) 
Intercept -1.2672   3.4842*  
          (1.6546)  (1.8882) 
X         1.1618***          
          (0.1959)           
Y                   0.5529***
                    (0.2080) 
=============================
Standard errors in
parentheses.
* p<.1, ** p<.05, ***p<.01)statsmodels.iolib.summary2r  r&   r  r   r   r   r   r   r
   str)r  idsrC   r   dsp1rI  results1sp2rM  results2outss                rG   test_summary_colr     s    6
7C;A
 	  	A a$A
QA ((7
8C1U8<DxxSx)H
((7
8C1U8<DxxSx)H
	8<C

HA S1rN   c                  
   t         j                  j                  d       d} d}g g g g g g g g g f	\	  }}}}}}}}	}
t        |       D ]a  }t         j                  j	                  |df      }|d d df   dt         j                  j	                  |      z  z   }t         j                  j	                  |df      }t         j                  j	                  d      }|dxx   dz  cc<   |d	xx   d	z  cc<   |t        j
                  ||      j                  z  }|j                  |       t        j                  t         j                  d
   t        j                  |dz              j                  t              }t         j                  j	                  d      }|||   z  }|j                  |       |	j                  |       t        j                  t        j                  |dz        t         j                  d
         j                  t              }t         j                  j	                  d      }|||   z  }|j                  |       |
j                  |       |j                  |       |j                  |       |j                  |       |j                  d|z  g|z         d t        j                  |      }t        j                  |      }t        j                  |      }t        j                  |      }t        j                  |      }t        j                  |      }t        j                  ||d d df   |d d d	f   |d d df   |d d d	f   |||d      }t        j                   |      }t        j                   |	      }	t        j                   |
      }
t        j                  |	|
fd	      }t#        j$                  dddddd|      }|j'                         }|j(                  }t        |       D cg c]  }|d|z     dd  }}t        j                   |      }t        j*                  |d d df   |d d df         d
   dkD  sJ t        j*                  |d d d	f   |d d d	f         d
   dkD  sJ t        |       D cg c]  }|d|z     dd  }}t        j                   |      }t        d      D ].  }t        j*                  |d d |f   |d d |f         d
   dkD  r.J  |j,                  }|j/                         D ]'  }||   j0                  }||   j2                  ||fk(  r'J  y c c}w c c}w )Ni  i  rX  rc   rd   r   r   rb   r   )r   r   zg%d)r   rp  r   z0r   v0r   r  )axiszy ~ x0 + x1z~0 + z0 + z1z~0+C(v0)z0+C(v1))r  r   r  )r   r   r   rD   g?rm  r   )r&   rt   ru   rz   rv   r   flatr  rw   r   rx   astyper'  concatenater   r   r3   r   r   r   r  corrcoefr  keysre   rB  )ngmr   rC   zr  r   r  ri   c0r  rE   xxyyzzbbvv0cc0vv1cc1r   ccrY   r   refr   b0cf0refcps                                 rG   test_random_effects_gettersr  F  s   
 IINN5	B
A$&BBBB$F!Aq!RQ2r2Y " YYAq6*1Xbii..A.666 YYAq6*YY1%
1

1

bffRn!!!	 ggbeeDk27716?3::3?iiA&
c#h
		#
		# ggbgga1foruuT{3::3?iiA&
c#h
		#
		#				%!)q!?"B 	qA
qA
qA		B		B
qA	1g1g1g1g	 	
B 	

1A	BB	BB	Rq	)B  !
 E YY[F


C',Ry	1!#eai.1
	1B	1	BBKK1a4!AqD'*403676KK1a4!AqD'*403676(-b	
213uqy>!A
2C
2
**S/C1X >C1Ir!Q$x06<=<> $$DYY[ )FKKQ!Q'(') 
2
 3s   ?T9T>c           
         ||z
  }t         j                  j                  | |f      }t        j                  |j                  |      }t        j
                  ||f      }t         j                  j                  ||f      |d|d|f<   t         j                  j                  |      }t        j                  d|z        |||||f<   t         j                  j                  |d|d|f         }	d}t         j                  j                  |       }
t         j                  j                  |t        j                  | |       z  t        j                  |t        j                  ||j                              z   |
      }t        ||||	|      } ||
      }t        ||       t        |t        j                  |      t        j                  |      |	|      } ||
      }t        ||       y )Nrd   r   r   r   )r&   rt   rv   r   r   r   uniformr   linalginvsolver   r   r   r   
csr_matrix)r  qrr  r  AAtABdiQirC   y2rZ   y1s                 rG   check_smw_solverr    s    	
AA
		q!f%A
&&a.C
!QA))""A"/Aac1Q3hK					"B''!b&/Aac1Q3hK	q1ac{	#BA
		a A	RVVAq\)BFF1bffQn,EEq	IBAq#r2&A	
1BBAv((+V->->s-CR	A	
1BBrN   c                   *   e Zd Zed        Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  dd	d
g      ej                  j                  dddg      d                             Zy)TestSMWSolverc                 B    t         j                  j                  d       y N   r&   rt   ru   rt  s    rG   ru  zTestSMWSolver.setup_class      
		rrN   r  ra   rX  r  r   r   r  rc   rb   r  r   r   c                      t        ||||       y N)r  r7   r  r  r  r  s        rG   test_smw_solverzTestSMWSolver.test_smw_solver      
 	Aq!$rN   N)	rI   rJ   rK   r  ru  r|   rd  rf  r  rM   rN   rG   r  r          [[S1b'*[[S1a&)[[S1a&)[[S1c(+% , * * +%rN   r  c           
         ||z
  }t         j                  j                  | |f      }t        j                  |j                  |      }t        j
                  ||f      }t         j                  j                  ||f      }t        j                  |j                  |      |d|d|f<   t         j                  j                  |      }	t        j                  d|	z        |||||f<   t         j                  j                  |d|d|f         }
d}t         j                  j                  |t        j                  | |       z  t        j                  |t        j                  ||j                              z         \  }}t         j                  j                  |      \  }}t        ||||
|	|      }t        rdnd}t        |||       y )Nrd   r   r   r   gư>r  rr   )r&   rt   rv   r   r   r   r   r   r  r  slogdetr   r   r   r   )r  r  r  r  r  r  r  r	  cr
  r  _d2bdd1rs   s                   rG   check_smw_logdetr$    sn   	AA
		q!f%A
&&a.C
!QA
		q!f%A&&a.Aac1Q3hK					"B''!b&/Aac1Q3hK	q1ac{	#BAIIa"&&A,.266!QSS>1JJKEArIIa EAr	Q3B	+B4TDB&rN   c                   *   e Zd Zed        Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  dd	d
g      ej                  j                  dddg      d                             Zy)TestSMWLogdetc                 B    t         j                  j                  d       y r  r  r  s    rG   ru  zTestSMWLogdet.setup_class  r  rN   r  ra   rX  r  r   r   r  rc   rb   r  r   r   c                      t        ||||       y r  )r$  r  s        rG   test_smw_logdetzTestSMWLogdet.test_smw_logdet  r  rN   N)	rI   rJ   rK   r  ru  r|   rd  rf  r)  rM   rN   rG   r&  r&    r  rN   r&  c                  @   t         j                  j                  d       d} t         j                  j                  | d      }t	        j
                  |ddg      }t	        j                  |j                  D cg c]  }|dz  	 c}|j                        |d	<   t        j                  t              5 }t        j                  d
||d	         }|j                         }|j                          |st        j                  d       d d d        y c c}w # 1 sw Y   y xY w)Ni_  r   rc   r  r  r  rb   r   classr  r>  zwarning expected)r&   rt   ru   randnr   r   r  r4   r|   r}   Warningr   r   r   r   r   )r   rD   r   rE   wrnr^  r  s          rG   test_singularr/    s     IINN4A99??1a D	dS#J	/B))BHH5qQU5RXXFBwK	g	 ,#!!'2bkBffhKK*+, , 6, ,s   8D3ADDc            	         t         j                  j                  d       d} d}t         j                  d   }t        j                  ddgddgg      }t         j                  d   }d	}t         j                  j                  | df
      }t         j                  j                  | df
      }t         j                  j                  | df
      }t         j                  j                  | df
      }	t        j                  t        j                  |t              | |z        }
t        j                  ||      }t         j                  j                  |df
      }t        j                  |t         j                  j                  |      j                        }t        j                  |d         t         j                  j                  |df
      z  }t        j                  |d         t         j                  j                  |df
      z  }|||
d d f   |z  j                  d      z   }|||
d d f   |z  j                  d      z  }|||
d d f   |	z  j                  d      z  }|t        j                  |      t         j                  j                  | 
      z  z  }t        j                   ||d d df   |d d df   |d d df   |d d df   |
d      }|d d df   |d<   |d d df   |d<   |	d d df   |d<   |	d d df   |d<   ddd}t#        j$                  ddd||      }dd l}|j(                  j*                  j,                  }|j/                  |||      }|j1                  dd      }|t3        |      d xxx |z  ccc |j5                  ||d       }|j7                  d      }t        j                  ||      |z  j                  d      j9                         }||d   |dz  j                  d      j9                         z  z  }||d   |	dz  j                  d      j9                         z  z  }||z  }t;        t        j<                  ||z
        |dd       y ) N   r   rX  )r   r   r   rc   )g      ?g      @g      ?rd   r:  r   )r   r   r   r  r   grpr   z3z4z5z0 + z2 + z3z0 + z4 + z5rg   zy ~ 0 + x1 + x2r3  z0 + z0 + z1r   )r   r   ro   TFrp   r   r   )rs   r   )r&   rt   ru   r   r3   rv   rq  r   r'  r   r  choleskyr   sqrtry   r   r   r   r   statsmodels
regressionmixed_linear_modelr   r   r   rC  get_distributionrvsmeanr   var)r   n_groupsr   r   ro   r   r   r   exog_vcaexog_vcbr   eyuu1u2r   r   r   r  r9  mppopadistyrvs                             rG   test_get_distributionrM    s   IINN3AHeIZZ!SC8,-FEE.!EEiiQF+GiiQF+GyyaV,HyyaV,HYYryy58|%F 
	#B
		xm,A
q"))$$V,../A	q	RYY--Ha=-A	AB	q	RYY--Ha=-A	AB
a	lW$))!,,A"VQY-(
"	'	'	**A"VQY-(
"	'	'	**A"))***2	22A	AWQT]'!Q$-$QT]'!Q$-$& 
'B 1~BtH1~BtH1~BtH1~BtHM
2C.u(5(+"	6A 				2	2	@	@B			i"' 
 
)B	dU	3Bs9~5  b%.D	!B 
	 7	*//2779AqXq[%%a(--/	//AqXq[%%a(--/	//AJABFF27OQT=rN   )?statsmodels.compat.platformr   r(   r/   rE  numpyr&   pandasr   scipyr   r|   )statsmodels.regression.mixed_linear_modelr   r   r   r   numpy.testingr	   r
   r   r   statsmodels.baser   rZ  statsmodels.tools.numdifftoolsnumdiffr   r   r   r   r[   r]   ri  r  r  r)   r*   r+   r,   r<   r-   r=   listdirfnamesr6   endswithrd  rf  r  r  r  re  r  r  r  r  r  r$  r&  r/  rM  )rC   s   0rG   <module>r[     s   4 	 
     6 6$ $ 5 & & "
0# 0#f	\
 \
D&& &&XH$6 H,3Fr ''//"''//(3
4	ww||GY'	D		Jq||E2qzz&7I!	J &)%/. / 0 *04f*Z 5F 5Fp#L [) [)|8
% 
%'.
% 
%,$?>Y 
Ks   'G>GG