
    !gv                    v   d Z ddlmZ ddlZddlZddlZddlmZm	Z	m
Z
mZmZmZmZ ddlZddlZddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&c mZ' dd	l(m)Z)m*Z*m+Z+m,Z, d
dl-m.Z.m/Z/m0Z0m1Z1 	 ddl2Z2dZ3dZ5dZ6dZ7dZ8dZ9dZ:d
Z;dZ<d Z=d Z>d Z?ddZ@d ZA G d d      ZB G d deB      ZC G d deC      ZD G d d       ZE G d! d"eD      ZF G d# d$eD      ZG G d% d&eD      ZH G d' d(eD      ZI G d) d*eD      ZJ G d+ d,eD      ZK G d- d.eD      ZL G d/ d0eD      ZM G d1 d2eD      ZN G d3 d4eD      ZO G d5 d6      ZP G d7 d8eP      ZQ G d9 d:eP      ZR G d; d<eP      ZSej                  j                  e3 d=>       G d? d@             ZV G dA dB      ZW G dC dD      ZX G dE dFeX      ZY G dG dHeX      ZZ G dI dJeX      Z[ G dK dLeX      Z\ G dM dNeX      Z] G dO dPeX      Z^ G dQ dR      Z_ G dS dTe_      Z` G dU dVe`      Za G dW dXe`      Zb G dY dZe_      Zc G d[ d\eDeE      Zd G d] d^eE      Ze G d_ d`eDeE      Zf G da dbeC      Zg G dc dd      Zh G de dfeheC      Zi G dg dheheC      Zj G di djeheC      Zk G dk dleheC      Zl G dm dneheC      Zm G do dpeC      Zn G dq dren      Zo G ds dten      Zpdu Zqdv Zrdw Zsdx Ztdy Zudz Zvd{ Zwd| Zxd} Zyd~ Zzd Z{d Z|d Z}d Z~d Z G d d      Z G d d      Z G d d      Z G d d      Z G d deheC      Z G d deheC      Z G d deheC      Z G d deheC      Z G d deX      Z G d d      Z G d d      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zd Zd Zd Zd Zd Zd Zy# e4$ r dZ3Y 2w xY w)z
Tests for discrete models

Notes
-----
DECIMAL_3 is used because it seems that there is a loss of precision
in the Stata *.dta -> *.csv output, NOT the estimator for the Poisson
tests.
    )assert_index_equalN)assert_assert_allcloseassert_almost_equalassert_array_equalassert_array_lessassert_equalassert_raisesstats)nbinom)_iscount_isdummy)
CountModelGeneralizedPoissonLogitMNLogitNegativeBinomialNegativeBinomialPPoissonProbit)ConvergenceWarningPerfectSeparationErrorSpecificationWarningValueWarning   )Anes
DiscreteL1RandHIESpectorTF   
   	            c                      t         j                  j                  j                         } t	        j
                  | j                        | _        t	        j
                  | j                        | _        | S N)smdatasetsanes96loadnpasarrayendogexogdatas    e/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/discrete/tests/test_discrete.pyload_anes96r4   E   sG    ;;""$DDJJ'DJ

499%DIK    c                      t         j                  j                  j                         } t	        j
                  | j                        | _        t	        j
                  | j                        | _        | S r(   )r)   r*   spectorr,   r-   r.   r/   r0   r1   s    r3   load_spectorr8   K   sG    ;;##%DDJJ'DJ

499%DIKr5   c                      t         j                  j                  j                         } t	        j
                  | j                        | _        t	        j
                  | j                  t              | _        | S )Ndtype)	r)   r*   randhier,   r-   r.   r/   r0   floatr1   s    r3   load_randhier>   R   sI    ;;##%DDJJ'DJ

499E2DIKr5   c                 .   || j                   }n|}|j                  j                  }|j                  j                  |j                        j                  d      }|j                  j                  |j                        }t        ||t               t        |j                  t        t        f      ry |j                  j                  |j                        }|j                  j                  |j                        }t        |t              s|d d d f   |z  }n&|\  }	}
t        j                  |	d d d f   |z  |
f      }t!        ||d       |j                  j#                  |j                        }|j                  j%                  |j                        }t        |t              s||j&                  z  j)                  |      }n|\  }}}||j&                  z  j)                  |      }t        j*                  |j&                  j)                  |            }t        j*                  |j                  d            }t        j,                  t        j                  ||j&                  f      t        j                  ||f      f      }t!        ||d       y )Nr   绽|=rtol)res1modelr0   	score_obsparamssumscorer   	DECIMAL_9
isinstancer   r   score_factortupler-   column_stackr   hessianhessian_factorTdot
atleast_2dvstack)selfresrC   r0   jacsumrH   s1sfs2sf0sf1h1hfh2hf0hf1hf2h00h10h11s                       r3   	check_jacre   Y   s   
{yy::??DZZ!!$++.2215FJJT[[)Ey1$**/9: 
		dkk	*B		 	 	-Bb% 4[4S__c!T'lT1378B' 
		DKK	(B		"	"4;;	/Bb% 466kt$S#TVV|  &mmCEEIIdO,mmCGGAJ'YYcee5c
35 6 B'r5   c                    | j                         }| j                  j                  | j                        }| j                         }|j	                         }t        |t        j                  |      d       |j	                         }t        |t        j                  |      d       | j                  d      }|j                         }t        |t        j                  |      d       y )Nr@   rA   varwhich)	get_distributionrD   rF   predictmeanr   r-   squeezerg   )rU   distrdistr1mm2vv2s          r3   check_distrrt      s      "EYY''

3FA	BArzz"~E2	BArzz"~E2% A	BArzz"~E2r5   c                       e Zd Zd Zy)CheckModelMixinc                     | j                   j                  }t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nzis not supported, use eithermatchfoomethod)rC   rD   pytestraises
ValueErrorfit_regularized)rT   rD   s     r3   #test_fit_regularized_invalid_methodz3CheckModelMixin.test_fit_regularized_invalid_method   sD    		]]:-LM 	0!!!/	0 	0 	0s   AAN)__name__
__module____qualname__r    r5   r3   rv   rv      s    
0r5   rv   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  dde      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)CheckModelResultszm
    res2 should be the test results from RModelWrap
    or the results as defined in model_results_data
    c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   rF   res2	DECIMAL_4rT   s    r3   test_paramszCheckModelResults.test_params   "    DII,,dii.>.>	Jr5   c                 x    t        | j                  j                         | j                  j                  d       y )Ngh㈵?rA   r   rC   conf_intr   r   s    r3   test_conf_intzCheckModelResults.test_conf_int   s%    		**,dii.@.@tLr5   c                 v    t        | j                  j                  | j                  j                  t
               y r(   )r   rC   tvaluesr   zr   r   s    r3   
test_zstatzCheckModelResults.test_zstat        DII--tyy{{IFr5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   pvaluesr   r   r   s    r3   test_pvalueszCheckModelResults.test_pvalues   s"    DII--tyy/@/@)Lr5   c                     t        | j                  d      st        j                  d      t	        | j
                  j                         | j                  j                  t               y )N
cov_paramszTODO: implement res2.cov_params)hasattrr   r}   skipr   rC   r   r   r   s    r3   test_cov_paramsz!CheckModelResults.test_cov_params   sG    tyy,/++?@@DII002 II00%	'r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   llfr   r   r   s    r3   test_llfzCheckModelResults.test_llf       DIIMM499==)Dr5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   llnullr   r   r   s    r3   test_llnullzCheckModelResults.test_llnull   r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   llrr   	DECIMAL_3r   s    r3   test_llrzCheckModelResults.test_llr   r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   
llr_pvaluer   r   r   s    r3   test_llr_pvaluez!CheckModelResults.test_llr_pvalue   s&    DII00 II00%	'r5   -Test has not been implemented for this class.Treasonstrictr~   c                     t         r(   NotImplementedErrorr   s    r3   test_normalized_cov_paramsz,CheckModelResults.test_normalized_cov_params   
     "!r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   bser   r   r   s    r3   test_bsezCheckModelResults.test_bse   r   r5   c                     t        | j                  j                  | j                  j                         t        | j                  j                  | j                  j                         y r(   )r	   rC   df_modelr   df_residr   s    r3   test_dofzCheckModelResults.test_dof   s>    TYY''););<TYY''););<r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   aicr   r   r   s    r3   test_aiczCheckModelResults.test_aic   r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   bicr   r   r   s    r3   test_biczCheckModelResults.test_bic   r   r5   c                     t        | j                  j                  j                  | j                  j                        | j
                  j                  t               y r(   )r   rC   rD   rk   rF   r   phatr   r   s    r3   test_predictzCheckModelResults.test_predict   s6    DIIOO33DII4D4DE IINNI	7r5   c                     t        | j                  j                  j                  | j                  j                  d      | j
                  j                  t               y )Nlinearrh   )r   rC   rD   rk   rF   r   yhatr   r   s    r3   test_predict_xbz!CheckModelResults.test_predict_xb   s@    DIIOO33DII4D4D"* 4 , IINNI	7r5   c                     | j                   j                  j                  | j                   j                        j	                         }t        || j                   j                  t               y r(   )rC   rD   
loglikeobsrF   rG   r   r   
DECIMAL_14)rT   llobssums     r3   test_loglikeobsz!CheckModelResults.test_loglikeobs   sA    99??--dii.>.>?CCEHdiimmZ@r5   c                     t        |        y r(   re   r   s    r3   test_jaczCheckModelResults.test_jac   	    $r5   c                 @   | j                   j                         }|j                         }t        |j	                               }t        | j                   j                  t              s1|dt        j                  | j                   j                        z   k(  sJ d|v sJ y )N   zCovariance Type:)rC   summaryas_latexlen
splitlinesrJ   rD   r   r-   sizerF   )rT   summltxn_liness       r3   test_summary_latexz$CheckModelResults.test_summary_latex   sv    yy  "mmocnn&'$))//73b277499+;+;#<<<<<!S(((r5   c                 .    t        | j                         y r(   rt   rC   r   s    r3   
test_distrzCheckModelResults.test_distr       DIIr5   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r}   markxfailr   r   r   r   r   r   r   r   r   r   r   r   r   r5   r3   r   r      s    
KMGM'EKE'
 [[M"+>  @"@"E=EE77
A
)r5   r   c                   V    e Zd Zd Zd Zd Zej                  j                  d        Z	y)CheckBinaryResultsc                 t    t        | j                  j                         | j                  j                         y r(   )r   rC   
pred_tabler   r   s    r3   test_pred_tablez"CheckBinaryResults.test_pred_table   s#    499//14993G3GHr5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   	resid_devr   r   r   s    r3   test_resid_devz!CheckBinaryResults.test_resid_dev   s%    DII//1D1D	r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   resid_generalizedr   r   r   s    r3   test_resid_generalizedz)CheckBinaryResults.test_resid_generalized  s&    DII77 II77	Dr5   c                 0    | j                   j                   y r(   )rC   resid_responser   s    r3   test_resid_responsez&CheckBinaryResults.test_resid_response  s    		  r5   N)
r   r   r   r   r   r   r}   r   smoker   r   r5   r3   r   r      s1    ID [[! !r5   r   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)CheckMargEffz9
    Test marginal effects (margeff) and its options
    c                    | j                   j                         }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               |j                         }|d   j                  }t        ||j                  d       t        |j                  |j                  j                  df       y )Ndy/dxvIh%<=rA      )rC   get_margeffr   margeffr   margeff_nodummy_dydxr   
margeff_semargeff_nodummy_dydx_sesummary_framevaluesr   r	   shaper   rT   meme_frameeffs       r3   test_nodummy_dydxoverallz%CheckMargEff.test_nodummy_dydxoverall  s    YY""$BJJ		..		;BMM		119	> ##%w&&RZZe4X^^bjjooq%9:r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   at)	rC   r   r   r   r   margeff_nodummy_dydxmeanr   r  margeff_nodummy_dydxmean_serT   r  s     r3   test_nodummy_dydxmeanz"CheckMargEff.test_nodummy_dydxmean  sT    YY""f"-BJJ		22I	?BMM		55y	Br5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nmedianr  )	rC   r   r   r   r   margeff_nodummy_dydxmedianr   r  margeff_nodummy_dydxmedian_ser  s     r3   test_nodummy_dydxmedianz$CheckMargEff.test_nodummy_dydxmedian#  sU    YY""h"/BJJ		44i	ABMM		77	Dr5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j
                  t               y )Nzeror  )rC   r   r   r   r   margeff_nodummy_dydxzeror   r  r  s     r3   test_nodummy_dydxzeroz"CheckMargEff.test_nodummy_dydxzero*  sS    YY""f"-BJJ		22I	?BMM		22I	?r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Ndyexr{   )	rC   r   r   r   r   margeff_nodummy_dyexr   r  margeff_nodummy_dyex_ser  s     r3   test_nodummy_dyexoverallz%CheckMargEff.test_nodummy_dyexoverall1  S    YY""&"1BJJ		..		;BMM		119	>r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   r  r  r|   )	rC   r   r   r   r   margeff_nodummy_dyexmeanr   r  margeff_nodummy_dyexmean_ser  s     r3   test_nodummy_dyexmeanz"CheckMargEff.test_nodummy_dyexmean8  V    YY""fV"<BJJ		22I	?BMM		55y	Br5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r  r#  )	rC   r   r   r   r   margeff_nodummy_dyexmedianr   r  margeff_nodummy_dyexmedian_ser  s     r3   test_nodummy_dyexmedianz$CheckMargEff.test_nodummy_dyexmedian?  W    YY""hv">BJJ		44i	ABMM		77	Dr5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r  r#  )	rC   r   r   r   r   margeff_nodummy_dyexzeror   r  margeff_nodummy_dyexzero_ser  s     r3   test_nodummy_dyexzeroz"CheckMargEff.test_nodummy_dyexzeroF  r'  r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Neydxr{   )	rC   r   r   r   r   margeff_nodummy_eydxr   r  margeff_nodummy_eydx_ser  s     r3   test_nodummy_eydxoverallz%CheckMargEff.test_nodummy_eydxoverallM  r!  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxmeanr   r  margeff_nodummy_eydxmean_ser  s     r3   test_nodummy_eydxmeanz"CheckMargEff.test_nodummy_eydxmeanT  r'  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxmedianr   r  margeff_nodummy_eydxmedian_ser  s     r3   test_nodummy_eydxmedianz$CheckMargEff.test_nodummy_eydxmedian[  r,  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxzeror   r  margeff_nodummy_eydxzero_ser  s     r3   test_nodummy_eydxzeroz"CheckMargEff.test_nodummy_eydxzerob  r'  r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Neyexr{   )	rC   r   r   r   r   margeff_nodummy_eyexr   r  margeff_nodummy_eyex_ser  s     r3   test_nodummy_eyexoverallz%CheckMargEff.test_nodummy_eyexoveralli  r!  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexmeanr   r  margeff_nodummy_eyexmean_ser  s     r3   test_nodummy_eyexmeanz"CheckMargEff.test_nodummy_eyexmeanp  r'  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexmedianr   r  margeff_nodummy_eyexmedian_ser  s     r3   test_nodummy_eyexmedianz$CheckMargEff.test_nodummy_eyexmedianw  r,  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexzeror   r  margeff_nodummy_eyexzero_ser  s     r3   test_nodummy_eyexzeroz"CheckMargEff.test_nodummy_eyexzero~  r'  r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y NTdummy)	rC   r   r   r   r   margeff_dummy_dydxr   r  margeff_dummy_dydx_ser  s     r3   test_dummy_dydxoverallz#CheckMargEff.test_dummy_dydxoverall  S    YY""".BJJ		,,i	9BMM		//	<r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   T)r  rV  )	rC   r   r   r   r   margeff_dummy_dydxmeanr   r  margeff_dummy_dydxmean_ser  s     r3   test_dummy_dydxmeanz CheckMargEff.test_dummy_dydxmean  sV    YY""fD"9BJJ		00)	=BMM		33Y	@r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr2  T)r|   rV  )	rC   r   r   r   r   margeff_dummy_eydxr   r  margeff_dummy_eydx_ser  s     r3   test_dummy_eydxoverallz#CheckMargEff.test_dummy_eydxoverall  sU    YY""&"=BJJ		,,i	9BMM		//	<r5   c                     | j                   j                  ddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nrl   r2  T)r  r|   rV  )	rC   r   r   r   r   margeff_dummy_eydxmeanr   r  margeff_dummy_eydxmean_ser  s     r3   test_dummy_eydxmeanz CheckMargEff.test_dummy_eydxmean  sX    YY""fV4"HBJJ		00)	=BMM		33Y	@r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )NT)count)	rC   r   r   r   r   margeff_count_dydxr   r  margeff_count_dydx_ser  s     r3   test_count_dydxoverallz#CheckMargEff.test_count_dydxoverall  rZ  r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )NTrl   )rh  r  )	rC   r   r   r   r   margeff_count_dydxmeanr   r  margeff_count_dydxmean_ser  s     r3   test_count_dydxmeanz CheckMargEff.test_count_dydxmean  sV    YY""&"9BJJ		00)	=BMM		33Y	@r5   c                     | j                   j                  dd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )NT)rh  rV  )	rC   r   r   r   r   margeff_count_dummy_dydxoverallr   r  "margeff_count_dummy_dydxoverall_ser  s     r3   test_count_dummy_dydxoverallz)CheckMargEff.test_count_dummy_dydxoverall  sW    YY""T":BJJ		999	FBMM		<<i	Ir5   c                     | j                   j                  ddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )NTrl   )rh  rV  r  )	rC   r   r   r   r   margeff_count_dummy_dydxmeanr   r  margeff_count_dummy_dydxmean_ser  s     r3   test_count_dummy_dydxmeanz&CheckMargEff.test_count_dummy_dydxmean  sY    YY""Tf"EBJJ		66		CBMM		999	Fr5   N)r   r   r   r   r  r  r  r  r   r&  r+  r0  r5  r9  r=  rA  rF  rJ  rN  rR  rY  r^  rb  rf  rk  ro  rs  rw  r   r5   r3   r   r   
  s    
;BD?>BDB>BDB>BDB<@<@<@IFr5   r   c                   "    e Zd Zed        Zd Zy)TestProbitNewtonc                     t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  dd      | _        t        j                  }|| _
        y NFprependnewtonr   r|   dispr8   r)   add_constantr0   r   r/   fitrC   r    probitr   clsr2   r   s      r3   setup_classzTestProbitNewton.setup_class  sU    ~OODIIu=	$**dii044H14M~~r5   c                 <   | j                   j                  j                  }| j                   j                  j                  }t	        j
                  t        |            }t        j                  t        d      5  t        |||       d d d        y # 1 sw Y   y xY w)Nzunknown kwargsrx   )weights)rC   rD   r/   r0   r-   onesr   r}   warnsr   r   )rT   r/   r0   r   s       r3   test_init_kwargsz!TestProbitNewton.test_init_kwargs  sj    		%%yy##GGCJ\\,.>? 	+5$*	+ 	+ 	+s   :BBN)r   r   r   classmethodr  r  r   r5   r3   ry  ry    s     +r5   ry  c                       e Zd Zed        Zy)TestProbitBFGSc                     t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  dd      | _        t        j                  }|| _
        y NFr|  bfgsr   r  r  r  s      r3   r  zTestProbitBFGS.setup_class  sZ    ~OODIIu=	$**dii044F 5 ~~r5   Nr   r   r   r  r  r   r5   r3   r  r    s     r5   r  c                       e Zd Zed        Zy)TestProbitNMc                     t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  ddd      | _
        y )NFr|  nmr     r|   r  maxiterr8   r)   r  r0   r    r  r   r   r/   r  rC   r  s      r3   r  zTestProbitNM.setup_class  s\    ~OODIIu=	~~$**dii044DC 5 !r5   Nr  r   r5   r3   r  r    s    ! !r5   r  c                       e Zd Zed        Zy)TestProbitPowellc                     t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  ddd      | _
        y )NFr|  powellr   :0yE>)r|   r  ftolr  r  s      r3   r  zTestProbitPowell.setup_class  s\    ~OODIIu=	~~$**dii044H 5 r5   Nr  r   r5   r3   r  r    s     r5   r  c                       e Zd Zed        Zy)TestProbitCGc                 X   t               }t        j                  |j                  d      |_        t        j
                  }|| _        ddlm}  ||j                        } ||j                        }t        |j                  |      j                  dddd      }|j                  |j                        }t        ||j                  d	d
       t        |j                  |j                        j                  |ddd	d      | _        t!        | j                  j"                  d   d       y )NFr|  r   )StandardizeTransformcg  r  )r|   r  r  gtolh㈵>ư>rB   atol)start_paramsr|   r  r  r  fcallsd   )r8   r)   r  r0   r    r  r   !statsmodels.tools.transform_modelr  r   r/   r  transform_paramsrF   r   rC   r   mle_retvals)r  r2   r   r  transfexog_stres1_str  s           r3   r  zTestProbitCG.setup_class  s    ~OODIIu=	~~ 	K%dii0# ""%#T4+0 #& #2 	 ..w~~>dkk4H$**))%%(Sl04d.3! &) &= 	
 	#((..x8#>r5   Nr  r   r5   r3   r  r    s    ? ?r5   r  c                       e Zd Zed        Zy)TestProbitNCGc                    t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  dddd      | _
        y )NFr|  ncgr   r  )r|   r  avextolwarn_convergencer  r  s      r3   r  zTestProbitNCG.setup_class  s`    ~OODIIu=	~~$**dii044E:;TFK 5 Mr5   Nr  r   r5   r3   r  r    s    M Mr5   r  c                       e Zd Zed        Zy)TestProbitBasinhoppingc                 L   t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  }t        j                  j                  d        |dddddd	
      | _        y )NFr|  r   basinhoppingr      zL-BFGS-Br  )r|   tol)r|   r  niter	minimizer)r8   r)   r  r0   r    r  r   r   r/   r  r-   randomseedrC   r  r2   r   r  s       r3   r  z"TestProbitBasinhopping.setup_class   st    ~OODIIu=	~~TZZ+//
		qn1A.8$"GIr5   Nr  r   r5   r3   r  r    s    I Ir5   r  c                       e Zd Zed        Zy)TestProbitMinimizeDefaultc                    t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  } |dddd      | _
        y )NFr|  minimizer   r  r  )r|   r  r  r  r  r  s       r3   r  z%TestProbitMinimizeDefault.setup_class.  s[    ~OODIIu=	~~TZZ+//jqFr5   Nr  r   r5   r3   r  r  ,  s    G Gr5   r  c                       e Zd Zed        Zy)TestProbitMinimizeDoglegc                 
   t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  } |ddddd      | _
        y )	NFr|  r  r   r  r  dogleg)r|   r  r  r  
min_methodr  r  s       r3   r  z$TestProbitMinimizeDogleg.setup_class:  s`    ~OODIIu=	~~TZZ+//jq$,.r5   Nr  r   r5   r3   r  r  8  s    . .r5   r  c                       e Zd Zed        Zy)#TestProbitMinimizeAdditionalOptionsc                    t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  dddddd      | _
        y )	NFr|  r  r   r  zNelder-Mead-C6?)r|   r  r  r  xatolfatolr  r  s      r3   r  z/TestProbitMinimizeAdditionalOptions.setup_classG  se    ~OODIIu=	~~$**dii044JQ=@@M;?t 5 Mr5   Nr  r   r5   r3   r  r  E  s    M Mr5   r  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	CheckLikelihoodModelL1z>
    For testing results generated with L1 regularization
    c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z"CheckLikelihoodModelL1.test_paramsV  r   r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   )r   rC   r   r   r   r   s    r3   r   z$CheckLikelihoodModelL1.test_conf_intY  s)    		""$dii&8&8)	Er5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_bse]  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   
nnz_paramsr   r   r   s    r3   test_nnz_paramsz&CheckLikelihoodModelL1.test_nnz_params`  s&    		$$dii&:&:I	Gr5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_aicd  !    		tyy}}i	9r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_bich  r  r5   N)
r   r   r   r   r   r   r   r  r   r   r   r5   r3   r  r  R  s)    KEEG99r5   r  c                   "    e Zd Zed        Zd Zy)TestProbitL1c           	      6   t               }t        j                  |j                  d      |_        t	        j
                  g d      }t        |j                  |j                        j                  d|ddddd	
      | _	        t        j                  }|| _        y )NTr|  )皙?皙?g333333?r"   l1r   auto{Gz?r@   r  )r|   alphar  	trim_modeauto_trim_tolaccr  )r8   r)   r  r0   r-   arrayr   r/   r   rC   r   r  r   )r  r2   r  r   s       r3   r  zTestProbitL1.setup_classo  sy    ~OODIIt<	,-$**dii0@@u1E4 A 9   r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r   rC   r   r   r   r   s    r3   r   zTestProbitL1.test_cov_paramsz  )    		$$&		(<(<i	Ir5   Nr   r   r   r  r  r   r   r5   r3   r  r  m       Ir5   r  c                       e Zd Zed        Zy)TestMNLogitL1c                 x   t               }|j                  }t        j                  |d      }t        j                  |j
                  |      }dt        j                  |j                  dz
  |j                  f      z  }d|dd d f<   |j                  d|dd	d
d      | _        t        j                  }|| _        y )NFr|        $@r   r   r  r  r  r@   )r|   r  r  r  r  r  )r4   r0   r)   r  r   r/   r-   r  JKr   rC   r   mnlogitr   )r  	anes_data	anes_exog
mlogit_modr  r   s         r3   r  zTestMNLogitL1.setup_class  s    M	NN	OOIu=	ZZ	;
bggz||a/>??bd--5F$ . # !!r5   Nr  r   r5   r3   r  r    s     r5   r  c                   "    e Zd Zed        Zd Zy)TestLogitL1c           	      Z   t               }t        j                  |j                  d      |_        dt	        j
                  g d      z  | _        t        |j                  |j                        j                  d| j                  dddd	d
      | _
        t        j                  }|| _        y )NTr|  r%   )              ?r  r  r  r   r   r  r@   r  )r|   r  r  r  size_trim_tolr  r  )r8   r)   r  r0   r-   r  r  r   r/   r   rC   r   logitr   r  s      r3   r  zTestLogitL1.setup_class  s    ~OODIIt<	!122	TYY/??syyqFE4 @ 9 r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r  r   s    r3   r   zTestLogitL1.test_cov_params  r  r5   Nr  r   r5   r3   r  r    r  r5   r  1Skipped test_cvxopt since cvxopt is not available)r   c                   "    e Zd Zed        Zd Zy)
TestCVXOPTc                    t         st        j                  d       t        j                  j
                  j                         | _        t        j                  | j                  j                        | j                  _
        t        j                  | j                  j                        | j                  _        t        j                  | j                  j                  d      | j                  _        y )Nr  Tr|  )
has_cvxoptr}   r   r)   r*   r7   r,   r2   r-   r.   r/   r0   r  r  s    r3   r  zTestCVXOPT.setup_class  s    KKKL;;&&++-CHHNN3

388==1tDr5   c           	         dt        j                  g d      z  | _        t        | j                  j
                  | j                  j                        j                  d| j                  dddd      }t        | j                  j
                  | j                  j                        j                  d	| j                  dddd
d      }t        |j                  |j                  t               y )N      @)r   r   r   r  r  r   r@   r  r  r|   r  r  r  r  r  l1_cvxopt_cp{Gz?)r|   r  r  abstolr  r  r  )r-   r  r  r   r2   r/   r0   r   r   rF   r   )rT   	res_slsqp
res_cvxopts      r3   test_cvxopt_versus_slsqpz#TestCVXOPT.test_cvxopt_versus_slsqp  s    "((=11
$))//499>>:JJtzzud K 	 499??DIINN;KK!!ED$ L @
 	I,,j.?.?Kr5   N)r   r   r   r  r  r  r   r5   r3   r  r    s     E E	Lr5   r  c                   "    e Zd Zed        Zd Zy)TestSweepAlphaL1c                    t               }t        j                  |j                  d      |_        t	        |j
                  |j                        | _        t        j                  g dg dg dg      | _	        t        j                  | _        y )NTr|  )r  r  r  r  )皙?r        ?r  )r  r  r   r   )r8   r)   r  r0   r   r/   rD   r-   r  alphasr   sweeprC   r  r2   s     r3   r  zTestSweepAlphaL1.setup_class  sb    ~OODIIt<	$**dii0	XX(($&'
 ##r5   c           	          t        d      D ]h  }| j                  |d d f   }| j                  j                  d|dddd      }t	        |j
                  | j                  j
                  |   t               j y )Nr%   r  r   r@   offr  )r|   r  r  r  r  r  )ranger  rD   r   r   rF   rC   r   )rT   ir  r   s       r3   test_sweep_alphaz!TestSweepAlphaL1.test_sweep_alpha  sq    q 	MAKK1%E::--u1%#T . 3D  TYY-=-=a-@)L	Mr5   N)r   r   r   r  r  r!  r   r5   r3   r  r    s    $ $Mr5   r  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	CheckL1Compatabilityz
    Tests compatability between l1 and unregularized by setting alpha such
    that certain parameters should be effectively unregularized, and others
    should be ignored by the model.
    c                 D   | j                   }t        | j                  j                  d | | j                  j                  d | t
               | j                  j                  j                  j                  d   }t        d| j                  j                  || t
               y )Nr   r   )	rp   r   	res_unregrF   res_regr   rD   r0   r  )rT   rp   kvarss      r3   r   z CheckL1Compatability.test_params  s|    FFNN!!"1%t||':':2A'>		K ""''--a0At||221U;YGr5   c                     | j                   }t        | j                  j                         d |d |f   | j                  j                         d |d |f   t
               y r(   )rp   r   r%  r   r&  	DECIMAL_1)rT   rp   s     r3   r   z$CheckL1Compatability.test_cov_params  sX    FFNN%%'BQB/LL##%bqb"1"f-	r5   c                     t        | j                  j                  | j                  j                         t        | j                  j                  | j                  j                         y r(   )r	   r%  r   r&  r   r   s    r3   test_dfzCheckL1Compatability.test_df  s>    T^^,,dll.C.CDT^^,,dll.C.CDr5   c                    | j                   }| j                  }t        | dd      }| j                  j	                  t        j                  t        | j                  j                                    }| j                  j	                  t        j                  ||z               }t        |j                  d | |j                  d | t               t        |j                  d | |j                  d | t               t        t
        j                  |j                  |          t        |j                   d | |j                   d | d       t        t
        j                  |j                   |          y )Nk_extrar   g~jth?r  )rp   r'  getattrr%  t_testr-   eyer   rF   r&  r   effectr   sdnanr   tvalue)rT   rp   r'  extrat_unregt_regs         r3   test_t_testz CheckL1Compatability.test_t_test  s    FF

i+..''s4>>3H3H/I(JK##BFF55=$9:GNN2A.Ra0@)LGJJrNEHHRaL)DBFFEHHQK0r*ELL!,<4HBFFELLO4r5   c                    | j                   }| j                  }t        | dd      }| j                  j	                  t        j                  t        | j                  j                              d |       }| j                  j	                  t        j                  ||z         d |       }t        |j                  |j                  dd       t        |j                  |j                  t               y )Nr-  r   giUMu>MbP?r  )rp   r'  r/  r%  f_testr-   r1  r   rF   r&  r   fvaluer   pvaluer   )rT   rp   r'  r6  f_unregf_regs         r3   test_f_testz CheckL1Compatability.test_f_test  s    FF

i+..''s4>>3H3H/I(J2A(NO##BFF55=$9"1$=>4dKGNNELL)Dr5   c                     | j                   }t        t        | j                  j                  t        j                  |             y r(   )r'  r
   r   r&  r<  r-   r1  )rT   r'  s     r3   test_bad_r_matrixz&CheckL1Compatability.test_bad_r_matrix  s)    

j$,,"5"5rvve}Fr5   N)
r   r   r   r   r   r   r+  r9  rA  rC  r   r5   r3   r#  r#    s)    
HE5EGr5   r#  c                       e Zd Zed        Zy)TestPoissonL1Compatabilityc                    d| _         d| _        t               }|j                  j	                  t
              j                  t        |j                        d      }t        j                  |d      }|d d d | j                  f   }t        j                  |j                  |      }|j                  dd      | _        dt        |j                        z  t        j                  | j                         z  }d	|d | j                   t        j                  |j                  |      j!                  d
|dddd      | _        y )Nr"      r  Tr|  r~  Fr  r   r  r@     r  r  )r'  rp   r>   r0   viewr=   reshaper   r)   r  r   r/   r  r%  r-   r  r   r&  )r  	rand_data	rand_exogexog_no_PSI	mod_unregr  s         r3   r  z&TestPoissonL1Compatability.setup_class
  s    	 N	NN''.66s9>>7JBO	OOIt<	6CEE6	*JJy<	!XEBS))BGGCII,>>fsuujj)<LLu5eT M r5   Nr  r   r5   r3   rE  rE    s     r5   rE  c                       e Zd Zed        Zy)#TestNegativeBinomialL1Compatabilityc                    d| _         d| _        t               }|j                  j	                  t
              j                  t        |j                        d      }||j                  d      z
  |j                  d      z  }t        j                  |d      }|d d d | j                  f   }t        j                  |j                  |      }|j                  dd	      | _        dt        |j                        z  t!        j"                  | j                   d
z         z  }d|d | j                   d|d<   t        j                  |j                  |      }|j%                  d|dddd      | _        d
| _        y )Nr"   rG  r  r   Tr|  r~  Fr  r   r  r@   rH  r  r  )r'  rp   r>   r0   rI  r=   rJ  r   rl   stdr)   r  r   r/   r  r%  r-   r  r   r&  r-  r  rK  rL  rand_exog_strM  rN  r  mod_regs           r3   r  z/TestNegativeBinomialL1Compatability.setup_class  s7   	 N	NN''.66s9>>7JBO	!INN1$55q9IIOOL$?	6CEE6	*''	E	!XEBS))BGGCIIM,BBfsuub	%%iooyA--u5eT .  r5   Nr  r   r5   r3   rP  rP    s     r5   rP  c                       e Zd Zed        Zy)&TestNegativeBinomialGeoL1Compatabilityc                    d| _         d| _        t               }|j                  j	                  t
              j                  t        |j                        d      }t        j                  |d      }|d d d | j                  f   }t        j                  |j                  |d      }|j                  dd	
      | _        dt        |j                        z  t        j                  | j                         z  }d|d | j                   t        j                  |j                  |d      }|j!                  d|d	ddd      | _        t%        |j&                  d       y )Nr"   rG  r  Tr|  	geometricloglike_methodr~  Fr  r   r  r@   rH  r  r  )r'  rp   r>   r0   rI  r=   rJ  r   r)   r  r   r/   r  r%  r-   r  r   r&  r	   r[  )r  rK  rL  rM  rN  r  rU  s          r3   r  z2TestNegativeBinomialGeoL1Compatability.setup_class9  s   	 N	NN''.66s9>>7JBO	OOIt<	6CEE6	*''	8CE	!XEBS))BGGCII,>>fsuu%%iooy5@B--u5eT .  	W++[9r5   Nr  r   r5   r3   rW  rW  7  s    : :r5   rW  c                       e Zd Zed        Zy)TestLogitL1Compatabilityc                    d| _         d| _        t               }t        j                  |j
                  d      |_        t        j                  g d      }t        |j                  |j
                        j                  d|ddd	d
      | _        |j
                  d d d | j                  f   }t        |j                  |      j                  dd      | _        y Nr$   r%   Tr|  r   r   r   r"   r  r   V瞯<rH  r  r  r  r  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  r  r2   r  rM  s       r3   r  z$TestLogitL1Compatability.setup_classS  s    	~OODIIt<	'DJJ		2BBu1% C  ii6CEE6	*djj+6::u:Mr5   Nr  r   r5   r3   r]  r]  Q  s    N Nr5   r]  c                   d    e Zd Zed        Zd Zej                  j                  d      d        Z	y)TestMNLogitL1Compatabilityc                    d| _         d| _        t               }t        j                  |j
                  d      |_        t        j                  g d      }t        |j                  |j
                        j                  d|ddd	d
      | _        |j
                  d d d | j                  f   }t        |j                  |      j                  dddd      | _        y )Nr$   r%   Tr|  r`  r  r   ra  rH  r  r  r  r  r  r  r|   r  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  rc  s       r3   r  z&TestMNLogitL1Compatability.setup_classe  s    	~OODIIt<	'djj$))4DDu1% E  ii6CEE6	*

K8<<vt = =r5   c                 *   | j                   }| j                  }| j                  j                  t	        j
                  |            }| j                  j                  t	        j
                  |            }t        |j                  |j                  d | t               t        |j                  |j                  d | t               t        t        j                  |j                  |          t        |j                  |j                  d | t               y r(   )rp   r'  r%  r0  r-   r1  r&  r   r2  r   r3  r4  r5  )rT   rp   r'  r7  r8  s        r3   r9  z&TestMNLogitL1Compatability.test_t_testt  s    FF

..''q	2##BFF5M2GNNELL!,<iHGJJ!i@BFFEHHQK0GNNELL!,<iHr5   zSkipped test_f_test for MNLogitc                      y r(   r   r   s    r3   rA  z&TestMNLogitL1Compatability.test_f_test~  s    r5   N)
r   r   r   r  r  r9  r}   r   r   rA  r   r5   r3   re  re  c  s>    = =I [[78 9r5   re  c                       e Zd Zed        Zy)TestProbitL1Compatabilityc                    d| _         d| _        t               }t        j                  |j
                  d      |_        t        j                  g d      }t        |j                  |j
                        j                  d|ddd	d
      | _        |j
                  d d d | j                  f   }t        |j                  |      j                  dd      | _        y r_  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  rc  s       r3   r  z%TestProbitL1Compatability.setup_class  s    	~OODIIt<	'TZZ3CCu1% D  ii6CEE6	*tzz;7;;;Nr5   Nr  r   r5   r3   rk  rk    s    O Or5   rk  c                       e Zd ZdZd Zy)	CompareL1z
    For checking results for l1 regularization.
    Assumes self.res1 and self.res2 are two legitimate models to be compared.
    c                    t        | j                  j                  | j                  j                  t               t        | j                  j                         | j                  j                         t               t        | j                  j                         | j                  j                         t               t        | j                  j                  | j                  j                  t               t        | j                  j                         | j                  j                         t               t        | j                  j                  | j                  j                  t               t        | j                  j                  | j                  j                  t               t        | j                  j                  | j                  j                  t               t        | j                  j                  | j                  j                  t               t        | j                  j                  | j                  j                  t               t        | j                  j                  d   du        y )N	convergedT)r   rC   rF   r   r   r   r   r   r   r   r   r   r   r   r  r   s    r3   test_basic_resultszCompareL1.test_basic_results  si   DII,,dii.>.>	JDII002DII4H4H4J%	'DII..0$))2D2D2F%	'DII--tyy/@/@)LDII002DII4H4H4J%	'DIIMM499==)DDIIMM499==)DDIIMM499==)DDIIMM499==)DDII--tyy/@/@)L		%%k2d:;r5   N)r   r   r   r   rq  r   r5   r3   rn  rn    s    <r5   rn  c                       e Zd ZdZd Zy)CompareL11Dz?
    Check t and f tests.  This only works for 1-d results
    c                    t        j                  t        | j                  j                  j                                     }t        | j                  j                  |      j                  | j                  j                  |      j                  t               t        | j                  j                  |      j                  | j                  j                  |      j                  t               y r(   )r-   r1  r   rC   rF   ravelr   r0  r>  r   r   r<  )rT   restrictmats     r3   
test_testszCompareL11D.test_tests  s    ffS!1!1!7!7!9:;DII,,[9@@ II,,[9@@)	MDII,,[9@@ II,,[9@@)	Mr5   N)r   r   r   r   rw  r   r5   r3   rs  rs    s    Mr5   rs  c                   "    e Zd Zed        Zd Zy)TestL1AlphaZeroLogitc           	      F   t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  ddddddd	      | _        t	        |j
                  |j                        j                  dd
      | _	        y NTr|  r  r   ra  r  r  r  r|   r  r  r  r  r  r  rb  )
r8   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z TestL1AlphaZeroLogit.setup_class  s~    ~OODIIt<	TYY/??11%  @ 6 TYY/333Fr5   c           	          | j                   j                  j                  ddddddd      }t        |j                  d   d	u        y )
Nr  r   ra  r   r  r  r|  rp  F)rC   rD   r   r   r  )rT   rU   s     r3   test_convergedz#TestL1AlphaZeroLogit.test_converged  sG    iioo--11%  . 6
 	,56r5   N)r   r   r   r  r  r~  r   r5   r3   ry  ry    s     G G7r5   ry  c                       e Zd Zed        Zy)TestL1AlphaZeroProbitc           	      F   t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  ddddddd	      | _        t	        |j
                  |j                        j                  dd
      | _	        y r{  )
r8   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z!TestL1AlphaZeroProbit.setup_class  s~    ~OODIIt<	$**dii0@@11%  A 6 $**dii044!4Gr5   Nr  r   r5   r3   r  r    s     H Hr5   r  c                       e Zd Zed        Zy)TestL1AlphaZeroMNLogitc           	      J   t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  ddddddd	      | _        t	        |j
                  |j                        j                  ddd
d      | _	        y )NFr|  r  r   ra  r  r  r  r|  r  rg  )
r4   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z"TestL1AlphaZeroMNLogit.setup_class  s    }OODIIu=	4::tyy1AA11%  B 6 4::tyy15515=C>B 6 Dr5   Nr  r   r5   r3   r  r    s    D Dr5   r  c                   @    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
y)	TestLogitNewtonc                     t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  dd      | _        t        j                  }|| _
        y r{  )r8   r)   r  r0   r   r/   r  rC   r    r  r   r  s      r3   r  zTestLogitNewton.setup_class  sU    ~OODIIu=	TYY/338!3L}}r5   c                 n    t        | j                  j                  | j                  j                  d       y Nr  r   rC   resid_pearsonr   r   s    r3   test_resid_pearsonz"TestLogitNewton.test_resid_pearson  %    DII33 II33Q	8r5   c                     | j                   j                  ddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )N       @r  r   r&   atexog	rC   r   r   r   r   margeff_nodummy_atexog1r   r  margeff_nodummy_atexog1_ser  s     r3   test_nodummy_exog1z"TestLogitNewton.test_nodummy_exog1  Y    YY""s*;"<BJJ		119	>BMM		44i	Ar5   c                     | j                   j                  dddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )N      5@r   r   r&   rl   r  r  	rC   r   r   r   r   margeff_nodummy_atexog2r   r  margeff_nodummy_atexog2_ser  s     r3   test_nodummy_exog2z"TestLogitNewton.test_nodummy_exog2  [    YY""s*:v"FBJJ		119	>BMM		44i	Ar5   c                     | j                   j                  dddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r  r  Tr  rV  	rC   r   r   r   r   margeff_dummy_atexog1r   r  margeff_dummy_atexog1_ser  s     r3   test_dummy_exog1z TestLogitNewton.test_dummy_exog1  Z    YY""s*;4"HBJJ		//	<BMM		22I	?r5   c                    | j                   j                  ddddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r   r  rl   Tr  r  rV  	rC   r   r   r   r   margeff_dummy_atexog2r   r  margeff_dummy_atexog2_ser  s     r3   test_dummy_exog2z TestLogitNewton.test_dummy_exog2
  a    YY""s*:v # BJJ		//	<BMM		22I	?r5   c                    d}d}d}d}dd l mc m} | j                  j	                         }| j                  j
                  j                  }t        j                  |d|z
  f      }t        j                  |d|z
  f      }	g d}
t        j                  |
      d d }|j                  ||	||d 	      }t        |j                  |d
       t        |j                  |       t        |j                  |d       t        |j                   j"                  |df       t        |j                   j%                  d      |
       y )Nr  g'8?g!u?r%   r   r   )rG  r   rG  r   r   r  )sort_varbinsdfgdy=rA   giUMu?r.  r&   ) statsmodels.stats.diagnostic_genr   diagnostic_genrC   rk   rD   r/   r-   rM   cumsumtest_chisquare_binningr   	statisticr	   r  r>  freqsr  rG   )rT   n_groupschi2r>  r  diafittedencountsexpectedgroup_sizesindicesrU   s                r3   test_diagnosticzTestLogitNewton.test_diagnostic  s     66""$YY__"""a"f.??FAJ#78%))K("-((F.5$ ) @t%8SVVR 

F6SYY__xm4SYY]]1%{3r5   N)r   r   r   r  r  r  r  r  r  r  r  r   r5   r3   r  r    s4     8AA??4r5   r  c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)TestLogitNewtonPrependc                    t               }t        j                  |j                  d      |_        t	        |j
                  |j                        j                  dd      | _        t        j                  }|| _
        t        j                  t        j                  t        | j                  j                              d      | _        y )NTr|  r~  r   r  r   )r8   r)   r  r0   r   r/   r  rC   r    r  r   r-   rollaranger   rF   slicer  s      r3   r  z"TestLogitNewtonPrepend.setup_class0  s}    ~OODIIt<	TYY/338!3L}}GGBIIc#((//&:;Q?	r5   c                 n    t        | j                  j                  | j                  j                  d       y r  r  r   s    r3   r  z)TestLogitNewtonPrepend.test_resid_pearson9  r  r5   c                     | j                   j                  ddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r  r   r%   r  r  r  s     r3   r  z)TestLogitNewtonPrepend.test_nodummy_exog1=  r  r5   c                     | j                   j                  dddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r   r&   r%   rl   r  r  r  s     r3   r  z)TestLogitNewtonPrepend.test_nodummy_exog2D  r  r5   c                     | j                   j                  dddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r  r  Tr  r  r  s     r3   r  z'TestLogitNewtonPrepend.test_dummy_exog1K  r  r5   c                    | j                   j                  ddddd      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y )Nr  r   r  rl   Tr  r  r  s     r3   r  z'TestLogitNewtonPrepend.test_dummy_exog2R  r  r5   N)
r   r   r   r  r  r  r  r  r  r  r   r5   r3   r  r  ,  s3     @ @8AA??r5   r  c                       e Zd Zed        Zy)TestLogitBFGSc                     t               }t        j                  |j                  d      |_        t        j
                  }|| _        t        |j                  |j                        j                  dd      | _
        y r  )r8   r)   r  r0   r    r  r   r   r/   r  rC   r  s      r3   r  zTestLogitBFGS.setup_class]  sU    ~OODIIu=	}}TYY/3363Jr5   Nr  r   r5   r3   r  r  [  s    K Kr5   r  c                        e Zd Zed        Zd Zd Zd Zd Ze	j                  j                  dd       fd	       Z xZS )
TestPoissonNewtonc                     t               }t        j                  |j                  d      }t	        |j
                  |      j                  dd      | _        t        j                  }|| _
        y r{  )r>   r)   r  r0   r   r/   r  rC   r   poissonr   r  r2   r0   r   s       r3   r  zTestPoissonNewton.setup_classh  sO    ~tyy%84::t,00q0Ir5   c                     | j                   j                         }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y r(   )	rC   r   r   r   r   margeff_nodummy_overallr   r  margeff_nodummy_overall_ser  s     r3   test_margeff_overallz&TestPoissonNewton.test_margeff_overallp  sO    YY""$BJJ		119	>BMM		44i	Ar5   c                     | j                   j                  d      }t        |j                  | j                  j
                  t               t        |j                  | j                  j                  t               y rT  )	rC   r   r   r   r   margeff_dummy_overallr   r  margeff_dummy_overall_ser  s     r3   test_margeff_dummy_overallz,TestPoissonNewton.test_margeff_dummy_overallw  sS    YY""".BJJ		//	<BMM		22I	?r5   c                 n    t        | j                  j                  | j                  j                  d       y )Nr&   )r   rC   residr   r   s    r3   
test_residzTestPoissonNewton.test_resid~  s    DIIOOTYY__a@r5   c                 H   t         j                  j                  t         j                  j                  t                    }t         j                  j                  |dd      }t        j                  |d      }| j                  j                         d d }t        ||d       y )Nresultszpredict_prob_poisson.csv,)	delimiterr     )ospathdirnameabspath__file__joinr-   loadtxtrC   predict_probr   )rT   cur_dirr  	probs_resprobss        r3   test_predict_probz#TestPoissonNewton.test_predict_prob  so    ''//"''//(";<ww||GY0JKJJts3	 		&&(#.E9a0r5   +res2.cov_params is a zero-dim array of NoneTr   r   c                 "    t         |           y r(   superr   rT   	__class__s    r3   r   z!TestPoissonNewton.test_cov_params       	!r5   )r   r   r   r  r  r  r  r  r  r}   r   r   r   __classcell__r  s   @r3   r  r  f  sY     A?A1 [[K"  $"$"r5   r  c                   T    e Zd Zej                  j                  dde      d        Zy)CheckNegBinMixinz.pvalues do not match, in some cases wrong sizeTr   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   zCheckNegBinMixin.test_pvalues  s(     	DII-- II--%	'r5   N)r   r   r   r}   r   r   AssertionErrorr   r   r5   r3   r  r    s2     [[N">  ;';'r5   r  c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)TestNegativeBinomialNB2Newtonc                     t               }t        j                  |j                  d      }t	        |j
                  |d      j                  dd      | _        t        j                  }|| _
        y )NFr|  nb2r~  r   r  r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_nb2_bfgsr   r  s       r3   r  z)TestNegativeBinomialNB2Newton.setup_class  sT    ~tyy%8#DJJe<@@WX@Y00r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   rC   r   r   r   r   s    r3   r   z&TestNegativeBinomialNB2Newton.test_bse  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z)TestNegativeBinomialNB2Newton.test_params  r   r5   c                    | j                   j                   t        | j                   j                  | j                  j                  t
               t        | j                   j                  | j                  j                  t
               y r(   rC   r   r   lnalphar   r   lnalpha_std_errr   s    r3   
test_alphaz(TestNegativeBinomialNB2Newton.test_alpha  T    		DII--tyy/@/@%	'DII55 II55y	Br5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r   rC   r   r   r   r   s    r3   r   z+TestNegativeBinomialNB2Newton.test_conf_int  (    DII..0$))2D2D%	'r5   c                 |    t        | j                  j                  d d | j                  j                  t               y Nr  r   rC   r   r   	DECIMAL_2r   s    r3   r   z(TestNegativeBinomialNB2Newton.test_zstat  ,    DII--cr2DII4E4E%	'r5   c                     t        | j                  j                  d d | j                  j                  d d t               y Nr"   r   rC   fittedvaluesr   r   r   s    r3   test_fittedvaluesz/TestNegativeBinomialNB2Newton.test_fittedvalues  4    DII223B7 II223B7	Dr5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       t               y r  r   rC   rk   r-   expr   r  r   r   s    r3   r   z*TestNegativeBinomialNB2Newton.test_predict  @    DII--/4FF499#9#9#2#>?	Lr5   c                     t        | j                  j                  d      d d | j                  j                  d d t
               y Nr   rh   r"   r   rC   rk   r   r  r   r   s    r3   r   z-TestNegativeBinomialNB2Newton.test_predict_xb  <    DII--H-=crB II223B7	Dr5   Nr   r   r   r  r  r   r   r  r   r   r  r   r   r   r5   r3   r  r    sB     EKB''DLDr5   r  c                       e Zd Zed        Zd Zd Zd Zd Ze	j                  j                  dde      d	        Ze	j                  j                  dde      d
        Zy)TestNegativeBinomialNB1Newtonc                     t               }t        j                  |j                  d      }t	        |j
                  |d      }|j                  ddd      | _        t        j                  }|| _
        y )NFr|  nb1r~  r  r   r|   r  r  r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_nb1_bfgsr   )r  r2   r0   rD   r   s        r3   r  z)TestNegativeBinomialNB1Newton.setup_class  sW    ~tyy%8 T5999Hc9B00r5   c                 v    t        | j                  j                  | j                  j                  t
               y r(   r   rC   r   r   r   r)  r   s    r3   r   z(TestNegativeBinomialNB1Newton.test_zstat  r   r5   c                    | j                   j                   t        | j                   j                  | j                  j                  d       t        | j                   j
                  | j                  j
                  t               y Nr%   rC   r   r   r  r   r  r   r   s    r3   test_lnalphaz*TestNegativeBinomialNB1Newton.test_lnalpha  Q    		DII--tyy/@/@!DDII55 II55y	Br5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z)TestNegativeBinomialNB1Newton.test_params  r   r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r   rC   r   r   r  r   s    r3   r   z+TestNegativeBinomialNB1Newton.test_conf_int  *     	DII..0$))2D2D%	'r5   r   Tr   c                     t         r(   r   r   s    r3   r   z*TestNegativeBinomialNB1Newton.test_predict  r   r5   c                     t         r(   r   r   s    r3   r   z-TestNegativeBinomialNB1Newton.test_predict_xb  r   r5   Nr   r   r   r  r  r   r4  r   r   r}   r   r   r   r   r   r   r5   r3   r)  r)    s     GBK' [[M"+>  @"@" [[M"+>  @"@"r5   r)  c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)TestNegativeBinomialNB2BFGSc                     t               }t        j                  |j                  d      }t	        |j
                  |d      j                  ddd      | _        t        j                  }|| _
        y )NFr|  r  r  r   r  r  r  r  s       r3   r  z'TestNegativeBinomialNB2BFGS.setup_class  s^    ~tyy%8#DJJe<@@7=A8< A > 00r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r	  r   s    r3   r   z$TestNegativeBinomialNB2BFGS.test_bse  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z'TestNegativeBinomialNB2BFGS.test_params   r   r5   c                    | j                   j                   t        | j                   j                  | j                  j                  t
               t        | j                   j                  | j                  j                  t
               y r(   r  r   s    r3   r  z&TestNegativeBinomialNB2BFGS.test_alpha  r  r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r  r   s    r3   r   z)TestNegativeBinomialNB2BFGS.test_conf_int
  r  r5   c                 |    t        | j                  j                  d d | j                  j                  t               y r  r  r   s    r3   r   z&TestNegativeBinomialNB2BFGS.test_zstat  r  r5   c                     t        | j                  j                  d d | j                  j                  d d t               y r  r  r   s    r3   r  z-TestNegativeBinomialNB2BFGS.test_fittedvalues  r  r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       t               y r  r   r   s    r3   r   z(TestNegativeBinomialNB2BFGS.test_predict  r"  r5   c                     t        | j                  j                  d      d d | j                  j                  d d t
               y r$  r%  r   s    r3   r   z+TestNegativeBinomialNB2BFGS.test_predict_xb  r&  r5   Nr'  r   r5   r3   r>  r>    sB     EKB''DLDr5   r>  c                       e Zd Zed        Zd Zd Zd Zd Ze	j                  j                  dde      d	        Ze	j                  j                  dde      d
        Zy)TestNegativeBinomialNB1BFGSc                     t               }t        j                  |j                  d      }t	        |j
                  |d      j                  ddd      | _        t        j                  }|| _
        y )NFr|  r+  r  r  r   r,  r-  r  s       r3   r  z'TestNegativeBinomialNB1BFGS.setup_class!  s_    ~tyy%8#DJJe<@@ILFG A I 00r5   c                 v    t        | j                  j                  | j                  j                  t
               y r(   r0  r   s    r3   r   z&TestNegativeBinomialNB1BFGS.test_zstat+  r   r5   c                    | j                   j                   t        | j                   j                  | j                  j                  d       t        | j                   j
                  | j                  j
                  t               y r2  r3  r   s    r3   r4  z(TestNegativeBinomialNB1BFGS.test_lnalpha.  r5  r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z'TestNegativeBinomialNB1BFGS.test_params4  r   r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r8  r   s    r3   r   z)TestNegativeBinomialNB1BFGS.test_conf_int7  r9  r5   r   Tr   c                     t         r(   r   r   s    r3   r   z(TestNegativeBinomialNB1BFGS.test_predict=  r   r5   c                     t         r(   r   r   s    r3   r   z+TestNegativeBinomialNB1BFGS.test_predict_xbB  r   r5   Nr<  r   r5   r3   rI  rI    s     GBK' [[M"+>  @"@" [[M"+>  @"@"r5   rI  c                   ^    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zy)!TestNegativeBinomialGeometricBFGSc                     t               }t        j                  |j                  d      }t	        |j
                  |d      }|j                  dd      | _        t        j                  }|| _
        y )NFr|  rY  r  r   r  )r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_geometric_bfgsr   r  r2   r0   modr   s        r3   r  z-TestNegativeBinomialGeometricBFGS.setup_classN  sU    ~tyy%8tzz4=77&q7166r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_aicY  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r   r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_bic\  r   r5   c                 ~    t        | j                  j                         | j                  j                  t               y r(   r  r   s    r3   r   z/TestNegativeBinomialGeometricBFGS.test_conf_int_  r  r5   c                     t        | j                  j                  d d | j                  j                  d d t               y r  r  r   s    r3   r  z3TestNegativeBinomialGeometricBFGS.test_fittedvaluesc  r  r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       t               y r  r   r   s    r3   r   z.TestNegativeBinomialGeometricBFGS.test_predictg  r"  r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   rF   r   r   r   s    r3   r   z-TestNegativeBinomialGeometricBFGS.test_paramsk  r   r5   c                     t        | j                  j                  d      d d | j                  j                  d d t
               y r$  r%  r   s    r3   r   z1TestNegativeBinomialGeometricBFGS.test_predict_xbn  r&  r5   c                 v    t        | j                  j                  | j                  j                  t
               y r(   r0  r   s    r3   r   z,TestNegativeBinomialGeometricBFGS.test_zstatr  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   r   r   r)  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_llfu  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   )r   rC   r   r   r  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_llrx  r   r5   c                 v    t        | j                  j                  | j                  j                  t               y r(   r	  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_bse{  r   r5   N)r   r   r   r  r  r   r   r   r  r   r   r   r   r   r   r   r   r5   r3   rR  rR  H  sW      EE'DLKDGEEEr5   rR  c                        e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                  j                  d	d
       fd       Zej                  j                  dd
e       fd       Z xZS )CheckMNLogitBaseZeroc                    | j                   j                         }t        |j                  | j                  j
                  d       t        |j                  | j                  j                  d       |j                         }|d   j                  j                  |j                  j                  d      }t        ||j                  d       t        |j                  t        j                  |j                        df       y )Nr   r   Forderr   rA   )rC   r   r   r   r   margeff_dydx_overallr  margeff_dydx_overall_ser  r  rJ  r  r   r	   r-   r   r  s       r3   r  z)CheckMNLogitBaseZero.test_margeff_overall  s    YY""$BJJ		(F(FJBMM499+L+LaP##%w&&..rzz/?/?s.KRZZe4X^^bggbjj&91%=>r5   c                     | j                   j                  d      }t        |j                  | j                  j
                  d       t        |j                  | j                  j                  d       y )Nrl   r  rG  )rC   r   r   r   r   margeff_dydx_meanr  margeff_dydx_mean_ser  s     r3   test_margeff_meanz&CheckMNLogitBaseZero.test_margeff_mean  sM    YY""f"-BJJ		(C(CQGBMM499+I+I1Mr5   c                    | j                   }|j                   d   }t        j                  |j                  |f      }t	        j
                  |d      }t        |j                  |      j                  dd      }|j                  d      }t        |j                  | j                  j                  d	       t        |j                  | j                  j                  d	       |j                  dd
      }t        |j                  | j                  j                   d       t        |j                  | j                  j"                  d	       y )NvoteFr|  r~  r   r  TrU  r   r2  )rV  r|   r  )r2   r-   rM   r0   r)   r  r   r/   r  r   r   r   r   margeff_dydx_dummy_overallr  margeff_dydx_dummy_overall_semargeff_eydx_dummy_overallmargeff_eydx_dummy_overall_se)rT   r2   ro  r0   rU   r  s         r3   test_margeff_dummyz'CheckMNLogitBaseZero.test_margeff_dummy  s    yyyy 		401tU3djj$'++8!+D__4_(BJJ		(L(L	BMM		77	<__4_7BJJ		(L(L	BMM		77	<r5   c                     t        | j                  j                  j                  | j                  j                         y r(   )r	   rC   rD   r  r   r   s    r3   test_jzCheckMNLogitBaseZero.test_j  "    TYY__&&		4r5   c                     t        | j                  j                  j                  | j                  j                         y r(   )r	   rC   rD   r  r   r   s    r3   test_kzCheckMNLogitBaseZero.test_k  rw  r5   c                 Z    t        | j                  j                  d d       d   g d       y )Nr   )zy=1zy=2zy=3zy=4zy=5zy=6)r	   rC   _get_endog_namer   s    r3   test_endog_namesz%CheckMNLogitBaseZero.test_endog_names  s&    TYY..tD9!<?	Ar5   c                 t   g d}t        | j                  j                         j                  d      |       t        | j                  j	                         j                  d      t        j                  |             g dg dg dg dg dg d	g d
g}t        | j                  j	                         |       y )N(  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r  r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r&   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r  r   r   r   r   r   r   r  r  r   r   r  r  r&   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r  r   r   r   r  r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r  r  r  r   r   r   r   r   r   r  r   r   r   r&   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r  r   r   r  r   r   r  r   r   r   r   r   r   r   r  r   r   r   r  r&   r  r  r   r  r  r  r   r  r   r   r  r&   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   r   r   r  r&   r   r   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r  r  r   r   r   r   r&   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r  r   r   r   r&   r  r  r   r  r   r   r  r   r   r  r  r   r   r  r   r   r   r&   r  r   r  r   r&   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r  r&   r  r&   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   )g     _@g     D@r  r  r        (@      3@)g     @S@g     @R@r  r  r  g      .@r~  )g     B@     E@r  r  r  r        @)r~        "@r  r  r  r  g      @)r  r  r  r  r        4@r  )g      6@      9@r  r  r  g      ?@g     Q@)r  r  r  r  r  g      2@g     a@)r   rC   rk   argmaxr   rG   r-   bincount)rT   preds     r3   r   z$CheckMNLogitBaseZero.test_pred_table  s    ,LZ 	499,,.55a8$? 	499//155a8"++d:KL BAAAAAAC 	499//148r5   c                 l    t        | j                  j                  | j                  j                         y r(   )r   rC   resid_misclassifiedr   r  r   s    r3   r  zCheckMNLogitBaseZero.test_resid  s    49988$))//Jr5   r  Tr  c                 "    t         |           y r(   r  r  s    r3   r   z$CheckMNLogitBaseZero.test_cov_params  r  r5   r   r   c                 "    t         |           y r(   )r  r   r  s    r3   r   zCheckMNLogitBaseZero.test_distr  s     	r5   )r   r   r   r  rm  rt  rv  ry  r|  r   r  r}   r   r   r   r   r   r  r  s   @r3   rc  rc    s    ?N
<"55A=9~K [[K"  $"$" [[M"+>  @@r5   rc  c                       e Zd Zed        Zy)TestMNLogitNewtonBaseZeroc                     t               x| _        }|j                  }t        j                  |d      }t        |j                  |      j                  dd      | _        t        j                  }|| _        y r{  )r4   r2   r0   r)   r  r   r/   r  rC   r   mnlogit_basezeror   r  s       r3   r  z%TestMNLogitNewtonBaseZero.setup_class  s]    %-'4yytU34::t,00q0I$$r5   Nr  r   r5   r3   r  r    s     r5   r  c                       e Zd Zed        Zy)TestMNLogitLBFGSBaseZeroc           	         t               x| _        }|j                  }t        j                  |d      }t        |j                  |      }|j                  dddddd|j                  	      | _	        t        j                  }|| _        y )
NFr|  lbfgsr   iP  (   r@   g      @)r|   r  r  rp   pgtolfactrloglike_and_score)r4   r2   r0   r)   r  r   r/   r  r  rC   r   r  r   )r  r2   r0   mymodelr   s        r3   r  z$TestMNLogitLBFGSBaseZero.setup_class  sz    %-'4yytU3$**d+;;gAu E")";";  = $$r5   Nr  r   r5   r3   r  r    s     r5   r  c                     d } t         j                  j                  ddd      }t         j                  j                  ddd      }t        |t	        j
                  |            }|j                  d       |j                  d|        y )	Nc                       y)Nr   r   )argss    r3   callbz(test_mnlogit_basinhopping.<locals>.callb  s    r5   r   r  r  r%   r  r{   )r|   callback)r-   r  randintr   r)   r  r  )r  xyrD   s       r3   test_mnlogit_basinhoppingr    sl     			!S$'A
		!Q%AArq)*E	II^I$	II^eI4r5   c                  4   t         j                  j                  t         j                  j                  t                    } t         j                  j                  | ddddd      }t         j                  j                  |      }t        j                  t         j                  j                  |d      dd      }|d d d	f   }|d d d d	f   }||d
k7     }||d
k7     }t        j                  |d      }t        ||      }d|_        t        t        |j                  d       d|_        t        j                   t"              5  |j                  dd      }d d d        t%        j&                  d           |j                  ddd       y # 1 sw Y   7xY w)Nz..genmodtestsr  ziris.csvr  r   )r  skip_headerr  r&   Tr|  r  )r  F2   )r  r  rp  r  r  )r  r  r  r  r  r  r-   
genfromtxtr)   r  r   raise_on_perfect_predictionr
   r   r  r}   r  r   r   r  )r  iris_diririsr  XrV  rU   s          r3   test_perfect_predictionr     sC   ggoobggooh78Gww||GT47INHwwx(H==h
;s%&(DQUAQVA	!q&	A	!q&	A
4(A
1+C&*C#(#''4@&+C#	(	) .gg5"g-.,,- GG6rG2. .s   FFc                     t               } t        j                  | j                  d      }t        j                  | j
                  |      j                  dd      }|j                         }|j                  |      }t        ||       |j                  |dd      }t        ||       |j                  |dd      }t        d|z  |       |j                  |t        j                  d      d      }t        d|z  |       y )	NTr|  r~  r   r  r   )offsetexposurer&   )r>   r)   r  r0   r   r/   r  rk   r   r-   log)r2   r0   rU   pred1pred2pred3s         r3   test_poisson_predictr  9  s    >D??499d3D
**TZZ
&
*
*(
*
CCKKMEKKEu%KKQK3Eu%KKQK3E%'KKRVVAYK;E%'r5   c                  @   d} t         j                  j                  d       t         j                  j                  | d      }t	        j
                  |d      }t         j                  j                  t        j                  |j                  d                  }t	        j                  ||      }t        j                  t              5  |j                  t        j                  d       dd	
      }d d d        t        j                   d           y # 1 sw Y   #xY w)Ni'  i) r%   Tr|  r   r$   r~  r   r  r|   r  rp  )r-   r  r  randnr)   r  r  r!  rG   r   r}   r  r   r  r  r   r  )nobsr  y_countrV  rU   s        r3   test_poisson_newtonr  J  s    DIINN6
		a A
4(AiiquuQx 01G
**Wa
 C	(	) IggBGGAJ;xagHI ,,-I Is   	)DDc                     t               } | j                  }|d d d df   }t        j                  |d      }t        j                  | j
                  |      j                  dd      }dj                  |j                         j                         j                  d      dd        }t        j                  j                  t        j                  j                  t                    }t        j                  j                  |d	d
      }t!        |d      5 }|j#                         }d d d        t$        j&                  j)                  |d d        |j+                          y # 1 sw Y   =xY w)Nr  Tr|  r~  r   r  
r#   r  zmn_logit_summary.txtzutf-8)encoding)r4   r0   r)   r  r   r/   r  r  r   as_textsplitr  r  r  r  r  openreadr-   testingr	   summary2)r2   r0   rC   smryr  test_case_filefd	test_cases           r3   test_issue_339r  Y  s   =D99D#2#;D??4.D::djj$'++8!+DD99T\\^++-33D9!"=>Dggoobggooh78GWW\\'96LMN	nw	/ 2GGI	JJD)CR.1MMO	 s   E$$E-c                     t               } | j                  }|d d d df   }t        j                  |d      }t        j                  | j
                  |      j                  dd      }|d   }t        j                  j                  |j                  |      j                  d       t        j                  j                  |j                  |d          j                  d       y )Nr  Tr|  r~  r   r  )r   rG  )r4   r0   r)   r  r   r/   r  r-   r  r	   rk   r  )r2   r0   rC   r  s       r3   test_issue_341r  l  s    =D99D#2#;D??4.D::djj$'++8!+DDQAJJDLLO1159JJDLL4177?r5   c                  <   t        j                  t        d      5  t        j                  j                          d d d        t        j                  t        d      5  t        j                  j                  t        j                  j                  j                  d             d d d        t        j                         5  t        j                  d       t        j                  j                  d       d d d        t        j                  t              5  t        j                  j                  t        j                  j                  j                  d      d       d d d        y # 1 sw Y   4xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz4Negative binomial dispersion parameter alpha not setrx   r  )r  )linkerror)r  r  )r}   r  UserWarningr)   familiesr   linksr   warningscatch_warningssimplefilterFutureWarningr   r5   r3   *test_negative_binomial_default_alpha_paramr  x  s7   	k *< 
= '
$$&' 
k *< 
= O
$$"++*;*;*B*B*B*M$NO 
	 	 	" 0g&
$$3$/0 
m	$ 0
$$"++*;*;*B*B*B*M+. 	% 	00 0' 'O O0 00 0s1   E-A	E:6FA
F-E7:FFFc                     t         j                  j                  d      } t         j                  j                  ddd      | d d df<   t         j                  j                  ddd      | d d df<   t         j                  j                  ddd      | d d d	f<   t         j                  j                  d
dd      | d d df<   t        |       }t	        |ddg       y )Nr  r"   r   r"   r  r   r&   r   r   r$   )r-   r  r  r   r	   r  	count_inds     r3   test_iscountr    s    
		"AYYq"2.AacFYYq"2.AacFYYq!"-AacFYYsBR0AacFIQF#r5   c                     t         j                  j                  d      } t         j                  j                  ddd      | d d df<   t         j                  j                  ddd      | d d df<   t         j                  j                  ddd      | d d d	f<   t         j                  j                  d
dd      | d d df<   t        |       }t	        |d	dg       y )Nr  r   r"   r  r  r&   r   r   r$   r  )r-   r  r  r   r	   r  s     r3   test_isdummyr    s    
		"AYYq"2.AacFYYq!"-AacFYYq!"-AacFYYsBR0AacFIQF#r5   c                      g d} t         j                  j                  dd      }t        t        t
        | |       g d} t        t        t        | |       y )N)r   r&   r   r&   r   r&   r   r&   )r   r   r   r   r   r  )r-   r  r  r
   r   r   r   )r  r  s     r3   test_non_binaryr    s<    A
		1A*eQ*A*fa+r5   c            	         t         j                  j                  j                         } | j                  j                  t        t        t        d      d                  | d<   t        j                  | j                  d      }t        j                  | j                  |      }|j                  d      }|j                  }|j                         }|j                  |j                   d dd d f         }| d   }d |_        t        j                  ||      }t%        j&                  d	d
j)                  | j                  j*                        z   | j,                        }|j                  d      }|j                  }	|j                         }t/        |	|d       |j                  | j                  j                   d dd d f         }
t/        |
|d       y )NrG  ABCDEFGr/   Tr|  r   r  r  zPID ~ z + r@   rA   )r)   r*   r+   load_pandasr/   replacedictzipr  r  r0   r   r  rF   r   rk   ilocnamesmfr  r  columnsr2   r   )dtar0   rV  rU   rF   r   	predictedendognr   params_fpredicted_fs              r3   test_mnlogit_factorr    sX   
++


(
(
*C99$$T#eAh	*B%CDCL??388T2D
**SYY
%C
''q'/CZZFkkmGDIIbqb!e,-I\FFK
**VT
"C ++hCHH,<,<!==sxx
HC777?D{{HllnGHf51,,sxx}}RaRU34KK7r5   c            	      @   t         j                  j                  j                         } | j                  j                  t        t        t        d      d                  | d<   t        j                  | j                  d      }t        j                  | j                  |      }|j                  d      }| d   j                  d      | d<   t        j                  | j                  |      }|j                  d      }t        |j                  |j                         y )	NrG  r  r/   Tr|  r   r  category)r)   r*   r+   r  r/   r  r  r  r  r  r0   r   r  astyper   rF   )r  r0   rV  rU   res_cats        r3   test_mnlogit_factor_categoricalr    s    
++


(
(
*C99$$T#eAh	*B%CDCL??388T2D
**SYY
%C
''q'/Cw<&&z2CL
**SYY
%Cgg1goGCJJ/r5   c                  *   g ddddt         j                  gdgdz  t         j                  j                  d      g dd} t	        j
                  |       }t        j                  d	||d
         }t        t        |j                        t         j                  u d       t	        j                  t         j                  j                  d            }d|j                  d<   t        t        t         j"                  |j$                  |ddg   |       y )Nr   r&   r"      r   r&   r%   r$   r  r   r%   r&         ?FooBarconstantr  r  	Foo ~ Barr  r2   r  zExposure is not ndarray)msgr  )r%   r  r  r  )r  )r-   r4  r  uniformpd	DataFramer  r  r   typer  ndarraySerieslocr
   r   r)   r   r  )dr  mod1r  s       r3   test_formula_missing_exposurer    s    Aq"&&(9S1W299+<+<!+<+D	A 
aB ;;{bnEDD2::-3LM yy***23HBFF8*bjj"&&"j%5H2I#%r5   c                     dd l } g dg ddgdz  t        j                  d      gdz  g dd} | j                  |      }t	        j
                  d||d	   
      }t        j                  ddg      }|j                  |d      }|ddg   j                  }t        j                  ||      dz   }t        ||       |j                  |t        j                  d      gdz  d      }|dz   }	t        ||	       y )Nr   r  )r   r&   r%   r$   r   r$   r  r  r   r  r  r  r   rh   r  r  r&   )r  ri   )pandasr-   r!  r  r   from_formular  rk   r  rQ   r   )
r  r
  r  r  rF   r  r  r  r  	expected2s
             r3   test_predict_with_exposurer    s     S1WBFF1I;q=	A 
aB"";R,.zN<D XXq"gF<<h</D 	J&&Avva 1$HD(# LL266!9+a-xLHE1IE9%r5   c                     d} t        j                  |       }d|ddg<   t        |t        j                  |             j	                  d      }t        j
                  ddgddgg      }t        |j                         |       t        |t        j                  |             j	                  d      }t        j
                  ddgddgg      }t        |j                         |       y )	Nr"   r   r%   r   r  g       @r  r  )	r-   zerosr   r  r  r  r	   r   r   )r  r  rU   r  s       r3   test_binary_pred_table_zerosr    s    D
AAqeH
2774=
!
%
%1
%
-Cxx2rBZ01H!8,
!RWWT]
#
'
'Q
'
/Cxx2rBZ01H!8,r5   c                   d    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zy)TestGeneralizedPoisson_p2c                    t               }t        j                  |j                  d      |_        t	        |j
                  |j                  d      }|j                  dd      | _        t        j                  }|| _
        y NFr|  r&   pr~  r   r  r>   r)   r  r0   r   r/   r  rC   r   generalizedpoisson_gp2r   )r  r2   rV  r   s       r3   r  z%TestGeneralizedPoisson_p2.setup_class
  s[    ~OODIIu=	 TYY!<77(73--r5   c                 p    t        | j                  j                  | j                  j                  d       y Nr  r.  r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_bse      		tyy}}4@r5   c                 p    t        | j                  j                  | j                  j                  d       y r  r   rC   rF   r   r   s    r3   r   z%TestGeneralizedPoisson_p2.test_params  "    		(($))*:*:Fr5   c                     t        | j                  j                  | j                  j                         t        | j                  j                  | j                  j                  d       y r  r   rC   r  r   r  r   s    r3   r  z$TestGeneralizedPoisson_p2.test_alpha  sD    		))499+<+<=		11 II55D	Br5   c                 x    t        | j                  j                         | j                  j                  d       y Nr;  r.  r   r   s    r3   r   z'TestGeneralizedPoisson_p2.test_conf_int  (    		**,dii.@.@!	#r5   c                 l    t        | j                  j                  | j                  j                         y r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_aic"      		tyy}}5r5   c                 l    t        | j                  j                  | j                  j                         y r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_bic%  r+  r5   c                 l    t        | j                  j                  | j                  j                         y r(   r	   rC   r   r   r   s    r3   r+  z!TestGeneralizedPoisson_p2.test_df(       TYY''););<r5   c                 l    t        | j                  j                  | j                  j                         y r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_llf+  r+  r5   c                 P   | j                   j                  t        j                  t	        | j                   j
                              d d d      }t        |j                  | j                  j                         t        |j                  | j                  j                  d       y )NTscalarra  r.  )rC   	wald_testr-   r1  r   rF   r   r  r   wald_statisticr>  wald_pvalue)rT   results     r3   	test_waldz#TestGeneralizedPoisson_p2.test_wald.  ss    $$RVVC		0@0@,A%B3B%G,0 % 2(($))*B*BCtyy'<'<5Ir5   c                     t        j                  | j                  j                  j                        }| j                  j                  |      }t        | j                  j                  |j                         y r(   	r-   identityrC   rF   r   r0  r   r   r5  rT   unit_matrixr0  s      r3   test_tz TestGeneralizedPoisson_p2.test_t4  L    kk$))"2"2"7"78!!+.		))6==9r5   c                     t        |        y r(   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_jac9  r   r5   c                 .    t        | j                         y r(   r   r   s    r3   r   z$TestGeneralizedPoisson_p2.test_distr<  r   r5   N)r   r   r   r  r  r   r   r  r   r   r   r+  r   r;  rA  r   r   r   r5   r3   r  r    sV      AGB
#66=6J:
r5   r  c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)"TestGeneralizedPoisson_transparamsc                    t               }t        j                  |j                  d      |_        t	        |j
                  |j                  d      j                  dd      | _        t        j                  }|| _
        y r  r  r  s      r3   r  z.TestGeneralizedPoisson_transparams.setup_classC  s_    ~OODIIu=	%djj$))qAEE! F %--r5   c                 p    t        | j                  j                  | j                  j                  d       y r  r  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_bseL  r   r5   c                 p    t        | j                  j                  | j                  j                  d       y r  r"  r   s    r3   r   z.TestGeneralizedPoisson_transparams.test_paramsO  r#  r5   c                     t        | j                  j                  | j                  j                         t        | j                  j                  | j                  j                  d       y r  r%  r   s    r3   r  z-TestGeneralizedPoisson_transparams.test_alphaR  sC    		))499+<+<=		11		11	>r5   c                 x    t        | j                  j                         | j                  j                  d       y r'  r   r   s    r3   r   z0TestGeneralizedPoisson_transparams.test_conf_intW  r(  r5   c                 l    t        | j                  j                  | j                  j                         y r(   r*  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_aic[  r+  r5   c                 l    t        | j                  j                  | j                  j                         y r(   r-  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_bic^  r+  r5   c                 l    t        | j                  j                  | j                  j                         y r(   r/  r   s    r3   r+  z*TestGeneralizedPoisson_transparams.test_dfa  r0  r5   c                 l    t        | j                  j                  | j                  j                         y r(   r2  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_llfd  r+  r5   N)r   r   r   r  r  r   r   r  r   r   r   r+  r   r   r5   r3   rF  rF  @  s@      AG>
#66=6r5   rF  c                   F    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zy	)
TestGeneralizedPoisson_p1c                 .   t               | _        t        j                  | j                  j                  d      | j                  _        t        | j                  j                  | j                  j                  d      j                  dd      | _        y )NFr|  r   r  r~  r   r  )	r>   r2   r)   r  r0   r   r/   r  rC   r  s    r3   r  z%TestGeneralizedPoisson_p1.setup_classk  s]    >uE%HHNNCHHMMQ0038!0L 	r5   c                    t        j                  | j                  j                  | j                  j                        j                  | j                  j                  d d       }t        j                  | j                  j                  | j                  j                  d      j                  t        | j                  j                  d d       dgz         }t        ||       y )Nr  r   r  r   )r)   r   r2   r/   r0   loglikerC   rF   r   listr   )rT   poisson_llfgenpoisson_llfs      r3   r   z"TestGeneralizedPoisson_p1.test_llfr  s    jjIIOOTYY^^--4WIISb!.# 	 ..IIOOTYY^^q229'!!#2&'1#-3/ 	 	4r5   c                    t        j                  | j                  j                  | j                  j                        j                  | j                  j                  d d       }t        j                  | j                  j                  | j                  j                  d      j                  t        | j                  j                  d d       dgz         }t        |d d |d       y )Nr  r   r  r   g&.>r.  )r)   r   r2   r/   r0   rH   rC   rF   r   rU  r   rT   poisson_scoregenpoisson_scores      r3   
test_scorez$TestGeneralizedPoisson_p1.test_score{  s    

IIOOTYY^^--2UIISb!.# 	 00IIOOTYY^^q227%!!#2&'1#-3/ 	 	("-}4Hr5   c                    t        j                  | j                  j                  | j                  j                        j                  | j                  j                  d d       }t        j                  | j                  j                  | j                  j                  d      j                  t        | j                  j                  d d       dgz         }t        |d dd df   |d       y )Nr  r   r  r   r@   r.  )r)   r   r2   r/   r0   rN   rC   rF   r   rU  r   rY  s      r3   test_hessianz&TestGeneralizedPoisson_p1.test_hessian  s    

IIOOTYY^^--4WIISb!.# 	 00IIOOTYY^^q229'!!#2&'1#-3/ 	 	("SbS1=uMr5   c                     t        j                  | j                  j                  j                        }| j                  j                  |      }t        | j                  j                  |j                         y r(   r=  r?  s      r3   rA  z TestGeneralizedPoisson_p1.test_t  rB  r5   c                 F   | j                   j                  }t        j                  t	        | j                   j
                              }d|dd  |j                  |dz  d      }|j                  |dz  d      }|j                  |dz  d      }t        |j
                  | j                   j
                  d       t        |j                  | j                   j                  d	       t        | j                   j
                  d d d
z  j                         dd	       t        |j
                  d d d
z  j                         dd	       t        |j
                  d d d
z  j                         dd	       t        |j
                  d d d
z  j                         dd	       y )Nr   r4  r  )r  r  r  r  -C6
?r.  r  r&   g.?rA   gI?g'~ۅ?gM5rK7?)
rC   rD   r-   r  r   rF   r   r   r   rl   )rT   rD   r  res_reg1res_reg2res_reg3s         r3   test_fit_regularizedz.TestGeneralizedPoisson_p1.test_fit_regularized  s^   		 DII,,-.bc
((uTz(B((uSyq(A((uTz(B)9)9Ediimm$? 	))#2.1779,4	9"-q0668,4	9"-q0668,4	9"-q0668.T	;r5   c                     | j                   j                  j                         }t        d|v        t	        |d   d       y Nr  r   rC   rD   _get_init_kwdsr   r	   rT   kwdss     r3   test_init_kwdsz(TestGeneralizedPoisson_p1.test_init_kwds  2    yy--/tT#Y"r5   c                 .    t        | j                         y r(   r   r   s    r3   r   z$TestGeneralizedPoisson_p1.test_distr  r   r5   N)r   r   r   r  r  r   r\  r^  rA  re  rl  r   r   r5   r3   rQ  rQ  h  s=     M M5IN:
;0#
r5   rQ  c                   @    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
y)	&TestGeneralizedPoisson_underdispersionc                 
   g d| _         t        j                  j                  d       d}t        j                  |df      }d|d |dz  df<   t        j
                  |j                  | j                   d d             }t        j                  j                  j                  || j                   d   dt        |            | _        t        j                  | j                  |d      }|j                  d	d
ddd      | _        y )N)r         g     r&   r   r  r  r  r  r    r   )r|   xtolr  maxfunr  )expected_paramsr-   r  r  r  r!  rQ   r)   distributionsgenpoisson_prvsr   r/   r   r  rU   )r  r  r0   mu_truemodel_gps        r3   r  z2TestGeneralizedPoisson_underdispersion.setup_class  s    .
		twway!XdAgXq[&&#"5"5cr":;<$$1155g#QS\ 6 ;	((DA>,,dt&*  4r5   c                 h   | j                   }|j                  j                  }t        |j	                         dd       t        |j                         dd       t        |j                  | j                  dd       t        |j                  d   d	u        t        |j                  d
   dd       y )NgQ?r;  rA   gaTR'?gQ?r  r  rB   rp  Tfoptg6?r  )
rU   rD   r/   r   rl   rg   rF   rx  r   r  )rT   rU   r/   s      r3   
test_basicz1TestGeneralizedPoisson_underdispersion.test_basic  s    hh		

d6		V$7 	

D$8$8t#N,45/1BNr5   c                    | j                   }|j                  j                  |j                  dd      }t	        |j                  j                  |j                        t        j                  t        |j                              d       t	        |j                  j                  |j                        t        j                  t        |j                              d       t	        |j                  |j                  d       y )Nr~  r   r  r  r.  r@   r  )	rU   rD   r  rF   r   rH   r-   r  r   )rT   rU   r   s      r3   test_newtonz2TestGeneralizedPoisson_underdispersion.test_newton  s    hhyy}}#**XA}N		

3T[[!12	?		4T[[!12	@

DKKd;r5   c                    t        | j                  j                         j                         | j                  j                         dd       t        | j                  j                         j                         | j                  j
                  j                         z  | j                  j                         dd       y )Nr  r  r  )r   rU   rk   rl   r/   _dispersion_factorrg   r   s    r3   test_mean_varz4TestGeneralizedPoisson_underdispersion.test_mean_var  s    ((*//14::??3D!	. 	HH##%(C(C(H(H(JJJJNN4d	4r5   c                    | j                   }|j                  j                  }t        j                  |j                  t                    }|j                  d      }t        j                  j                  j                  t        j                  d      d d d f   |j                         |j                  d   d      j                  }t        ||dd       |j!                  d      }|dxx   |j"                  d   |j!                         z
  z  cc<   t        |j!                         |j!                         d	
       ddlm}  |j(                  ||      }t        |d d  dd
       y )Nprobrh   r   r  r   r@   r  r   r   rA   r   )g;ܛA?gP1/#?r  )rU   rD   r/   r-   r  r  intrk   r)   ry  rz  pmfr  rF   rP   r   rG   r  scipyr   	chisquare)	rT   rU   r/   freqprpr2r  r   r  s	            r3   r  z8TestGeneralizedPoisson_underdispersion.test_predict_prob  s	   hh		{{5<<,-[[v[&++//		!QW0E(+szz"~qJJK! 	Ce%866!9hlln44
HLLN?utX.Q!I!	#r5   c                 2    t        | | j                         y )N)rU   )re   rU   r   s    r3   r   z/TestGeneralizedPoisson_underdispersion.test_jac  s    $DHH%r5   c                 .    t        | j                         y r(   )rt   rU   r   s    r3   r   z1TestGeneralizedPoisson_underdispersion.test_distr  s    DHHr5   N)r   r   r   r  r  r  r  r  r  r   r   r   r5   r3   rp  rp    s3    4 4
O<4#,&r5   rp  c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)TestNegativeBinomialPNB2Newtonc                     t               }t        j                  |j                  d      }t	        |j
                  |d      }|j                  dd      | _        t        j                  }|| _
        y r  r>   r)   r  r0   r   r/   r  rC   r   r  r   rU  s        r3   r  z*TestNegativeBinomialPNB2Newton.setup_class   sU    ~tyy%8

DA677(7300r5   c                 r    t        | j                  j                  | j                  j                  dd       y Nr;  r  r  r   s    r3   r   z'TestNegativeBinomialPNB2Newton.test_bse
  #    		tyy}}!	.r5   c                 p    t        | j                  j                  | j                  j                  d       y NgHz>r.  r"  r   s    r3   r   z*TestNegativeBinomialPNB2Newton.test_params  s%    		(($))*:*:!	#r5   c                    | j                   j                   t        | j                   j                  | j                  j                         t        | j                   j
                  | j                  j
                  d       y r  rC   r   r   r  r   r  r   s    r3   r  z)TestNegativeBinomialPNB2Newton.test_alpha  sO    				))499+<+<=		11		11!	#r5   c                 z    t        | j                  j                         | j                  j                  dd       y r  r   r   s    r3   r   z,TestNegativeBinomialPNB2Newton.test_conf_int  *    		**,dii.@.@!	.r5   c                 x    t        | j                  j                  d d | j                  j                  dd       y Nr  {Gzt?r  r   rC   r   r   r   s    r3   r   z)TestNegativeBinomialPNB2Newton.test_zstat  .    		))#2.		0A0A!	.r5   c                 x    t        | j                  j                  d d | j                  j                  d d        y r  r   rC   r  r   r   s    r3   r  z0TestNegativeBinomialPNB2Newton.test_fittedvalues!  s1    		..s3		..s3	5r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d              y r  r   rC   rk   r-   r!  r   r  r   s    r3   r   z+TestNegativeBinomialPNB2Newton.test_predict%  s=    		))+CR0tyy55cr:;	=r5   c                     t        | j                  j                  d      d d | j                  j                  d d        y r$  r   rC   rk   r   r  r   s    r3   r   z.TestNegativeBinomialPNB2Newton.test_predict_xb)  s9    		)))9#2>		..s3	5r5   Nr'  r   r5   r3   r  r    s<     .##..5=5r5   r  c                   @    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
y)	TestNegativeBinomialPNB1Newtonc                     t               }t        j                  |j                  d      }t	        |j
                  |d      }|j                  ddd      | _        t        j                  }|| _
        y )	NFr|  r   r  r~  r  r   r,  r>   r)   r  r0   r   r/   r  rC   r   r.  r   rU  s        r3   r  z*TestNegativeBinomialPNB1Newton.setup_class0  sW    ~tyy%8

DA677(Ca7@00r5   c                 r    t        | j                  j                  | j                  j                  dd       y Nr  r  r   rC   r   r   r   r   s    r3   r   z)TestNegativeBinomialPNB1Newton.test_zstat9  s%    		))499;;!	.r5   c                     | j                   j                   t        | j                   j                  | j                  j                         t        | j                   j
                  | j                  j
                         y r(   r  r   s    r3   r4  z+TestNegativeBinomialPNB1Newton.test_lnalpha=  sL    				))499+<+<=		11 II55	7r5   c                 l    t        | j                  j                  | j                  j                         y r(   r"  r   s    r3   r   z*TestNegativeBinomialPNB1Newton.test_paramsC  s     		(($))*:*:;r5   c                 z    t        | j                  j                         | j                  j                  dd       y r  r   r   s    r3   r   z,TestNegativeBinomialPNB1Newton.test_conf_intF  ,     			**,dii.@.@!	.r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       dd       y Nr"   r;  r  r  r   s    r3   r   z+TestNegativeBinomialPNB1Newton.test_predictL  B    		))+CR0tyy55cr:;!	.r5   c                     t        | j                  j                  d      d d | j                  j                  d d dd       y Nr   rh   r"   r;  r  r  r   s    r3   r   z.TestNegativeBinomialPNB1Newton.test_predict_xbQ  >    		)))9#2>		..s3!	.r5   N)r   r   r   r  r  r   r4  r   r   r   r   r   r5   r3   r  r  .  s2     .7<..
.r5   r  c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)TestNegativeBinomialPNB2BFGSc                     t               }t        j                  |j                  d      }t	        |j
                  |d      j                  ddd      | _        t        j                  }|| _
        y )	NFr|  r&   r  r  r   r  r  r  r  s       r3   r  z(TestNegativeBinomialPNB2BFGS.setup_classY  s^    ~tyy%8$TZZ;??7=A8< @ > 00r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r  r   s    r3   r   z%TestNegativeBinomialPNB2BFGS.test_bsed  r  r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r"  r   s    r3   r   z(TestNegativeBinomialPNB2BFGS.test_paramsh  '    		(($))*:*:!	.r5   c                    | j                   j                   t        | j                   j                  | j                  j                  dd       t        | j                   j
                  | j                  j
                  dd       y )Nr  r  r  r   s    r3   r  z'TestNegativeBinomialPNB2BFGS.test_alphal  sX    				))499+<+<!	.		11		11!	.r5   c                 z    t        | j                  j                         | j                  j                  dd       y r  r   r   s    r3   r   z*TestNegativeBinomialPNB2BFGS.test_conf_intt  r  r5   c                 x    t        | j                  j                  d d | j                  j                  dd       y r  r  r   s    r3   r   z'TestNegativeBinomialPNB2BFGS.test_zstatx  r  r5   c                 ~    t        | j                  j                  d d | j                  j                  d d dd       y )Nr"   r  r  r  r   s    r3   r  z.TestNegativeBinomialPNB2BFGS.test_fittedvalues|  s6    		..s3		..s3!	.r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       dd       y r  r  r   s    r3   r   z)TestNegativeBinomialPNB2BFGS.test_predict  r  r5   c                     t        | j                  j                  d      d d | j                  j                  d d dd       y r  r  r   s    r3   r   z,TestNegativeBinomialPNB2BFGS.test_predict_xb  r  r5   Nr'  r   r5   r3   r  r  W  s<     ......
.
.r5   r  c                   d    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zy)TestNegativeBinomialPNB1BFGSc                     t               }t        j                  |j                  d      }t	        |j
                  |d      j                  ddd      | _        t        j                  }|| _
        y )	NFr|  r   r  r  r  r   r,  r  r  s       r3   r  z(TestNegativeBinomialPNB1BFGS.setup_class  s_    ~tyy%8$TZZ;??vILFG @ I 00r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_bse  r  r5   c                 r    t        | j                  j                  | j                  j                  dd       y Nr  r  r*  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_aic  #    		tyy}} s	,r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r-  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_bic  r  r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r2  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_llf  r  r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r2  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_llr  r  r5   c                 r    t        | j                  j                  | j                  j                  dd       y r  r  r   s    r3   r   z'TestNegativeBinomialPNB1BFGS.test_zstat  s%    		))499;; s	,r5   c                     t        | j                  j                  | j                  j                  dd       t        | j                  j                  | j                  j                  dd       y r  r%  r   s    r3   r4  z)TestNegativeBinomialPNB1BFGS.test_lnalpha  sM    		))499+<+<!	.		11		11!	.r5   c                 r    t        | j                  j                  | j                  j                  dd       y N皙?r  r"  r   s    r3   r   z(TestNegativeBinomialPNB1BFGS.test_params  r  r5   c                 z    t        | j                  j                         | j                  j                  dd       y r  r   r   s    r3   r   z*TestNegativeBinomialPNB1BFGS.test_conf_int  r  r5   c                     t        | j                  j                         d d t        j                  | j
                  j                  d d       dd       y )Nr"   r  r  r  r   s    r3   r   z)TestNegativeBinomialPNB1BFGS.test_predict  r  r5   c                     t        | j                  j                  d      d d | j                  j                  d d dd       y )Nr   rh   r"   r  r  r  r   s    r3   r   z,TestNegativeBinomialPNB1BFGS.test_predict_xb  r  r5   c                     | j                   j                  j                         }t        d|v        t	        |d   d       y rg  rh  rj  s     r3   rl  z+TestNegativeBinomialPNB1BFGS.test_init_kwds  rm  r5   N)r   r   r   r  r  r   r   r   r   r   r   r4  r   r   r   r   rl  r   r5   r3   r  r    sP     .,,..,....
.
#r5   r  c                       e Zd Zed        Zy)$TestNegativeBinomialPL1Compatabilityc                    d| _         d| _        t               }t        j                  |j
                        |_        t        j                  |j                  t              |_        |j                  j                  t              j                  t        |j                        d      }||j                  d      z
  |j                  d      z  }t        j                  |d      }|d d d | j                  f   }t        j                  |j
                  |      }|j!                  dd	      | _        dt        |j
                        z  t        j$                  | j                   d
z         z  }d|d | j                   d|d<   t        j                  |j
                  |      }|j'                  d|dddd      | _        d
| _        y )Nr"   rG  r:   r  r   Tr|  r~  r  r   r  Fr@   rH  r  r  )r'  rp   r>   r-   r.   r/   r0   r=   rI  rJ  r   rl   rR  r)   r  r   r  r%  r  r   r&  r-  rS  s           r3   r  z0TestNegativeBinomialPL1Compatability.setup_class  sa   	 N	**Y__5	INN%@	NN''.66s9>>7JBO	!INN1$55q9IIOOL$?	6CEE6	*((+F	!XA>S))BGGCIIM,BBfsuub	&&y	B--u5eT .  r5   Nr  r   r5   r3   r  r    s     r5   r  c                       e Zd Zd Zd Zy) TestNegativeBinomialPPredictProbc                    ddg}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   t        j                  |j                  |            }d}d|z  |z  }|||z   z  }t        j                  ||t        |            }t        j                  ||      j                  d	
      }	|	j                         }
d|z  |
z  }|||
z   z  }|	j                  d      }t        |t        j                  t        j                  d      d d d f   ||      j                   dd       |	j                  |d	dg   d      }t        ||d	dg   dd       y )Nr   rr  rs  rt  r&   r  r  r  r   r  r  rh   r  r  r  r  )r0   ri   r@   ra  r  r-   r  r  r  r!  rQ   r   r{  r   r)   r   r  rk   r   r  r  rP   )rT   rx  r  r0   r|  r  r   r  r/   rU   mur  probs_exs                r3   test_predict_prob_p1z5TestNegativeBinomialPPredictProb.test_predict_prob_p1  sT   d)
		twway!XdAgXq[&&/23EzG#tg~&

4CL9""5$/333;[[]EzBtby!&)JJryy|AdF+T48::D	" ;;D!RM;@%B.u5Ir5   c                 v   ddg}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   t        j                  |j                  |            }d}d|z  }|||z   z  }t        j                  ||t        |            }t        j                  ||d	      j                  d
      }	|	j                         }
d|z  }|||
z   z  }t        |	j                  d      t        j                  t        j                  d      d d d f   ||      j                   dd       y )Nr   rr  rs  rt  r&   r  r  r  r  r   r  r  rh   r  r  r  r  )rT   rx  r  r0   r|  r  r   r  r/   rU   r  s              r3   test_predict_prob_p2z5TestNegativeBinomialPPredictProb.test_predict_prob_p2	  s   d)
		twway!XdAgXq[&&/23Eztg~&

4CL9""5$!488a8@[[]Eztby!&1JJryy|AdF+T48::D	"r5   N)r   r   r   r  r  r   r5   r3   r  r    s    J4"r5   r  c                   "    e Zd Zed        Zd Zy)	CheckNullc                     t        j                  g d      }t        |      }t        j                  t        j                  |      |f      }t        j                  g d      }||fS )N)r  r  g      >@g     A@g      D@g     F@g      I@)i  i  i  i  i@  i  i  )r-   r  r   rM   r  )r  r  r  r0   r/   s        r3   	_get_datazCheckNull._get_data!	  sN    HH?@1vq12CDd{r5   c                 `   | j                   j                  | j                  d      }d|j                  _        |j
                  }|j                  }t        ||j                  d       | j                  }t        ||j                  d       t        |j                  |j                  d       y )Nr   r  r  Tr  rA   ra  )
rD   r  r  _results_attach_nullmodelr   res_nullr   r   rF   )rT   rU   llf0	res_null0	res_null1s        r3   r   zCheckNull.test_llnull)	  s    jjnn$*;*;!nD)-&zzLL	imm$7MM	imm$7 		(()*:*:Fr5   N)r   r   r   r  r  r   r   r5   r3   r  r  	  s     Gr5   r  c                       e Zd Zed        Zy)TestPoissonNullc                     | j                         \  }}t        ||      | _        t        ||d d df         j                  dgd      | _        ddg| _        y )Nr   g      !@r  )r  r   rD   r  r  r  r  r/   r0   s      r3   r  zTestPoissonNull.setup_class9	  sS    mmotE4(	ud1a4j155C5q5Q8r5   Nr  r   r5   r3   r  r  7	  s    $ $r5   r  c                       e Zd Zed        Zy)TestNegativeBinomialNB1Nullc                 
   | j                         \  }}t        ||d      | _        t        ||d d df   d      | _        | j                  j	                  ddgdddd	      | _        t        j                  g d
      | _        y )Nr+  rZ  r   r  r  r  r  ,  r  r|   r  r  r  g0@g?$?g     @	r  r   rD   
model_nullr  r  r-   r  r  r  s      r3   r  z'TestNegativeBinomialNB1Null.setup_classD	  s|    mmot$UDG	)%ad9>@~~))4y17e25A * ? 88$FGr5   Nr  r   r5   r3   r  r  B	  s    	H 	Hr5   r  c                       e Zd Zed        Zy)TestNegativeBinomialNB2Nullc                 
   | j                         \  }}t        ||d      | _        t        ||d d df   d      | _        | j                  j	                  ddgdddd	      | _        t        j                  g d
      | _        y )Nr  rZ  r   r  r  r  r  r  r  g#$ @g7<$BD?gki,?r  r  s      r3   r  z'TestNegativeBinomialNB2Null.setup_classS	  s|    mmot$UDG	)%ad9>@~~))3x17e25A * ? 88$HIr5   Nr  r   r5   r3   r  r  Q	  s    J Jr5   r  c                   "    e Zd Zed        Zd Zy)TestNegativeBinomialNBP2Nullc                 
   | j                         \  }}t        ||d      | _        t        ||d d df   d      | _        | j                  j	                  ddgdddd	      | _        t        j                  g d
      | _        y )Nr&   r  r   r  r   r  r  r  r  r  	r  r   rD   r  r  r  r-   r  r  r  s      r3   r  z(TestNegativeBinomialNBP2Null.setup_classa	  sx    mmot%eTQ7	*5$q!t*B~~))1v17e25A * ? 88$HIr5   c                     | j                   j                  | j                   j                  }}t        ||d      }|j	                         }| j                   j	                         }t        ||d       y )Nr  rZ  -q=rA   rD   r/   r0   r   _get_start_params_nullr   rT   r/   r0   	model_nb2sp1sp0s         r3   test_start_nullz,TestNegativeBinomialNBP2Null.test_start_nullk	  W    jj&&

t$UDG	..0jj//1Su-r5   Nr   r   r   r  r  r  r   r5   r3   r  r  _	  s    J J.r5   r  c                   "    e Zd Zed        Zd Zy)TestNegativeBinomialNBP1Nullc                 
   | j                         \  }}t        ||d      | _        t        ||d d df   d      | _        | j                  j	                  ddgdddd	      | _        t        j                  g d
      | _        y )Nr  r  r   r   r  r  r  r  r  r  r  r  s      r3   r  z(TestNegativeBinomialNBP1Null.setup_classu	  sx    mmot%eTR8	*5$q!t*B~~))1v17e25A * ? 88$FGr5   c                     | j                   j                  | j                   j                  }}t        ||d      }|j	                         }| j                   j	                         }t        ||d       y )Nr+  rZ  r  rA   r  r
  s         r3   r  z,TestNegativeBinomialNBP1Null.test_start_null	  r  r5   Nr  r   r5   r3   r  r  s	  s    H H.r5   r  c                       e Zd Zed        Zy)TestGeneralizedPoissonNullc                 
   | j                         \  }}t        ||d      | _        t        ||d d df   d      | _        | j                  j	                  ddgdddd	      | _        t        j                  g d
      | _        y )Nr  r  r   g @r   r  r  r  r  )gY$@g^?g3 7I?)	r  r   rD   r  r  r  r-   r  r  r  s      r3   r  z&TestGeneralizedPoissonNull.setup_class	  sx    mmot&udc:	+E41:E~~))Qx17e25A * ? 88$HIr5   Nr  r   r5   r3   r  r  	  s    J Jr5   r  c                     d} t        j                  d      }d|d | dz  df<   t        j                  |j                  d            }t         j                  j                  |      }t        ||      j                  t        j                  ddg      d      }|j                  }t        t        |d      du        |j                  d	
       |j                  }t        |j                  j                  d   t        j                  |j!                               d       t#        |j                  j                  d   d       t        ||       |j                  d	dgd       |j                  }t        |j                  j                  d   dgd       t#        |j                  j                  d   d       |j%                          t        d|j&                  v        t#        |j&                  d   |       t        d|j&                  v        t#        |j&                  d   |       |j                  d       t        d|j&                  v       t#        |j&                  d   d       y )Nr"   )   r&   r   r&   r   r  
res_llnullFT)attach_resultsr  r@   rA   	optimizerr  r  r  )r  r  r|   	prsquaredr   i  )r   )r-   r  r!  rG   r  r  r   r  r  r   r   r   set_null_optionsr   r  mle_settingsrl   r	   r   _cache)r  r0   r  r/   rU   llnull0llns          r3   test_null_optionsr#  	  s    D777DD$!)Q		BIIb!E
%

"
"1vQ
"
GCjjGGC&%/0-
**CCLL--n=FF5::<(u6**;7@C!C5N
**CCLL--n=u **;7>KKMK3::%&H%,K3::%&H%, $Kszz)*H%,r5   c                     t         j                  j                  t         j                  j                  t                    } t         j                  j                  | dd      }t        j                  |      }dg}||   ||   j                         z
  ||   j                         z  }|d   j                  }t        j                  ||   j                               }d }t        dd      }t        |||      }	 |	j                   dd	d
i|}
t#        |||      }	|	j!                  d
|      }t%        |j&                  d   d d |
j(                  d       t+        |j&                  d   |       t%        |j-                         j                         |j                         d       t        dd      }t/        |||d      }	|	j!                  d
|      }t%        |j&                  d   d d |
j(                  d       t+        |j&                  d   |       t%        |j-                         j                         |j                         d       t1        |||d      }	|	j!                  d
d|      }t%        |j&                  d   d d |
j(                  d       t+        |j&                  d   |       t%        |j-                         j                         |j                         d       y )Nr  z
sm3533.csvppnumr  ru  )r|   r  )r  r  r   )r  optim_kwds_prelimr  r  r  rA   r'  r  r&   )r  r  r  rt  )r  r  r'  r   )r  r  r  r  r  r  r  read_csvrl   rR  r  r)   r  copyr  r   r  r   r   r  rF   r	   rk   r   r   )r  filepathr  featuresr  r  r0   r  r'  rD   res_poirU   s               r3   test_optim_kwds_prelimr-  	  ss    ggoobggooh78Gww||GY=H	X	BvH	H8))+	+R\-=-=-??A
5	A??1X;++-.D F D$7AtF+Eeii4Q4"34GQV4E
)).?)
@CC$$^4Sb97>>!!"568IJCKKM&&(!&&(= D$7af:E
)).?)
@CC$$^4Sb97>>!!"568IJCKKM&&(!&&(= q$v=E
))C;L)
MCC$$^4Sb97>>!!"568IJCKKM&&(!&&(=r5   c                  F   t               } t        j                  d       t        j                  | j
                  | j                  d      }t        j                  g d      }|j                  |d      }t        |j                  d       t        j                  g d      }|j                  d	|d
      }t        |j                  dk7         |j                  |d      }t        |j                  |j                         t        |j                  |j                         y )Nr  r  rZ  )
gXgBP'˿g)my|?gV6㢞gqmP?g˯?ghh?g,y?g˨?gI"$?r   r  r  )
g|~!<ڨgS9ÿg1&7i?gmqdgo ?gT
}?g$&9?r  r  g,[?r  )r  r  r  )r>   r  r  r)   r   r/   r0   r-   r  r  r	   r   r   r   r   )r2   rD   rF   rC   
reg_paramsr   res3s          r3   "test_unchanging_degrees_of_freedomr1  	  s    >D'"

DIIeLEXX 0 1F 99&q91D" H IJ   s! LDDMMQ 99&q91D ..r5   c                  .   t        j                  g dg dd      } t        j                  t        d      5  t        j                  d|       j                         }d d d        j                         j                         }d|v sJ y # 1 sw Y   .xY w)	N)r  皙?r   r   r3  )r   r   r   r   r   )ABz+endog contains values are that not int-likerx   zA ~ B)formular2   zA=1.1)
r  r  r}   r  r   r  r  r  r   r  )r  r:  r   s      r3   test_mnlogit_float_namer7  
  sz    	0G	HB	*I
K =W26::<= >>##%Dd??	= =s   &BBc                      t         j                  j                  j                         } t        j                  | j
                  d      }t        j                  | j                  |      j                  dd      }|j                         }|j                         }t        j                  t        j                  |            }|j                  d d df   |j                  d d df   z
  dt        j                   j#                  d      z  z  }t%        ||       t'        |j(                  |j(                         t'        |j(                  |j*                         t-        |j(                  t.        j0                        sJ y )	NFr|  r~  r   r  r   r&   g333333?)r)   r*   r+   r  r  r0   r   r/   r  r   r   r-   sqrtdiagr  r   normppfr   r   indexr  rJ   r  
MultiIndex)r2   r0   rC   covcisese2s          r3   test_cov_confint_pandasrC  
  s    ;;))+D??499e4D::djj$'++8!+DD
//
C	B		B771a4=2771a4=(Q1F-F
GCBrxx+syy#++.bhh...r5   c                     t         j                  j                  j                         } t        j                  | j
                  d      }t        j                  | j                  |      j                  d      }t        j                  |j                         j                  d         }|j                  |      }|j                  |      }t        j                  | j
                  d      }t        j                  | j                        t        j                  |      }}t        j                  ||      j                  d      }|j                  |      }|j                  |      }	t!        |j"                  |j"                         t!        |j$                  |	j$                         |j                  t        j&                  t        j(                  |j*                                    }
t!        |
j,                  j/                  ddd      |j0                  j3                                |j                  t        j&                  t        j(                  |j*                                    }
t!        |
j,                  j/                  ddd      |j0                         |j5                  t        j&                  t        j(                  |j*                              d   d	      }t!        |j6                  |j8                  j3                         d
          |j                  d      }
|j5                  dd	      }t!        |
j6                  |j6                         |j5                  dd	      }t!        |j$                  dd       y )NFr|  r   r  r   re  rf  Tr5  )r   r   y1_logpopulzy1_logpopul, y2_logpopulgf,@r  rA   )r)   r*   r+   r,   r  r0   r   r/   r  r-   r  r   r  r0  r<  r.   r   r2  r  r1  r   rF   r5  rJ  r   to_numpyr7  r>  r   )r2   r0   rC   rt1f1r/   r   t2f2ttwts               r3   test_mlogit_t_testrN  
  sV   ;;""$D??499e4D::djj$'+++3D
!''*+A	QB	QB??499e4D**TZZ("**T*:4E::eT"&&A&.D	QB	QBBIIryy)BLL",,/	RVVBGGDKK01	2BBII%%a%5t||7L7L7NO	RVVBGGDKK01	2BBII%%a%5t||D	rwwt{{34Q7	EBBIIt||446t<= 
]	#B	d	3BBIIryy)	24	@BBLL*48r5   r(   )r   statsmodels.compat.pandasr   r  r  numpyr-   numpy.testingr   r   r   r   r   r	   r
   r  r  r}   r  r   scipy.statsr   statsmodels.apiapir)   %statsmodels.discrete.discrete_marginsr   r   #statsmodels.discrete.discrete_modelr   r   r   r   r   r   r   r   statsmodels.formula.apir6  r  statsmodels.tools.sm_exceptionsr   r   r   r   results.results_discreter   r   r   r    cvxoptr
  ImportErrorr   
DECIMAL_10rI   r   r   r  r)  	DECIMAL_0r4   r8   r>   re   rt   rv   r   r   r   ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r   skipifr  r  r#  rE  rP  rW  r]  re  rk  rn  rs  ry  r  r  r  r  r  r  r  r  r)  r>  rI  rR  rc  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rF  rQ  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r-  r1  r7  rC  rN  r   r5   r3   <module>r_     s   9 	          D	 	 	 & %  I HJ
 

						*(Z3
0 
0U Up!* !"qF qFh+) +&	' 		!% 	!	) 	?% ?6
M& 
MI/ I	G 2 	G
.1 
.M*< M9 96I) I$* "I( I$ 
N ,> ?L L?L.M M,4G 4Gn!5 **> 4:-A :4N3 N$!5 @O 4 O"< <.	M) 	M7; 7*
HK 
HDY DB4(, B4J,?\ ,?^K& K'") '"T' '*D$46G *DZ%"$46G %"P,D"24E ,D^&""24E &"R4E(8:K 4Enu, up 4 3 "	532(".&	@0$$,82	0%$&<-6 6r%6 %6PH HVH HV-5%57H -5`&.%57H &.R2.#35F 2.jB##35F B#J+? 60" 0"fG G0$i $H) HJ) J.9 .(.9 .(
J 
J#-L/>d/4/!9KO  Js   ?N- -N87N8