
    Vfdp                        d Z ddlmZ ddlmZmZ ddlmZmZm	Z	 ddl
mZ ddlZddl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mZ ddlmc mZ dd	l m!Z!  G d
 d          Z" G d de"          Z# G d de"          Z$ G d de"          Z% G d de"          Z& G d de"          Z' G d de"          Z( G d de"          Z) G d de"          Z* G d de"          Z+ G d de"          Z, G d  d!e"          Z- G d" d#e"          Z. G d$ d%e"          Z/ G d& d'          Z0d( Z1 G d) d*e0          Z2 G d+ d,e0          Z3 G d- d.e0          Z4 G d/ d0e0          Z5 G d1 d2e0          Z6 G d3 d4e0          Z7 G d5 d6          Z8 G d7 d8e8          Z9 G d9 d:e8          Z: G d; d<e8          Z; G d= d>e8          Z< G d? d@e8          Z=dS )AzTests that use cross-checks for generic methods

Should be easy to check consistency across models
Does not cover tsa

Initial cases copied from test_shrink_pickle

Created on Wed Oct 30 14:01:27 2013

Author: Josef Perktold
    )pytest_warns)assert_index_equalassert_series_equal)PLATFORM_LINUX32PLATFORM_OSXPLATFORM_WIN32)SCIPY_GT_14N)assert_assert_allcloseassert_array_equalassert_equal)glmols)HessianInversionWarningc                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
CheckGenericMixinc                    d}t           j                            d           t           j                            |d          }t	          j        |          }|| _        dt          j        d          z  | _        i | _	        d | _
        d S )N  )    g      ?)      )nprandomseedrandnsmadd_constantexogonesxfpredict_kwdstransform_index)clsnobsxs      Klib/python3.11/site-packages/statsmodels/base/tests/test_generic_methods.pysetup_classzCheckGenericMixin.setup_class(   sp    
	vIOOD!$$OA'"    c                    t          j        | j                   | j        }t          j        t          |j                            }|                    |d                   }d }|                                }t          |j
        |j        d         d           t           |d          t          |          v            |                    d          }d}t          |t          |          v            |                    d          }|j        d	u rd
nd}|j        d	u rdnd}	dd|	|ddg}
t!          |j        j        |
           d S )Nr   c                 "    d| dz  d| dz  z
  fz  S )Nz[%4.3F      %4.3F]r       alphas    r'   <lambda>z6CheckGenericMixin.test_ttest_tvalues.<locals>.<lambda>;   s$    ';',qy!UQY,?@ (@ r)   g&.>rtolg?g?r.   z[0.05       0.95]FzP>|z|zP>|t|ztcoefzstd errzConf. Int. LowzConf. Int. Upp.)smtcheck_ttest_tvaluesresultsr   eyelenparamst_testsummaryr   pvaluepvaluesr
   strsummary_frameuse_tr   columnsvalues)selfresmatttstring_confintsummsssummfpvstring_use_ttstring_use_tcolss              r'   test_ttest_tvaluesz$CheckGenericMixin.test_ttest_tvalues3   sF   ---lfS__%%ZZA@ @zz||	3;q>>>>>t$$D		1222 zzz$$ c$ii     s ++$'I$6$6G"yE11s	=. "355=/66666r)   c                 8    t          j        | j                   d S N)r6   check_ftest_pvaluesr8   rE   s    r'   test_ftest_pvaluesz$CheckGenericMixin.test_ftest_pvaluesM       -----r)   c                 8    t          j        | j                   d S rR   )r6   check_fittedr8   rT   s    r'   test_fittedzCheckGenericMixin.test_fittedP   s    &&&&&r)   c                 8    t          j        | j                   d S rR   )r6   check_predict_typesr8   rT   s    r'   test_predict_typesz$CheckGenericMixin.test_predict_typesS   rV   r)   c                    t          | j        j        t          j                  rt          j        d           t          | j        j        t          j        t          j        t          j	        f           }|| _
        t          t          | j        j        j        j        d                             }t          t          | j        j        j        d                             }dg}|D ]}||= ||= 	|r-| j        j                            |d| j        j                  }n!| j        j                            |d          }|                     ||          }t%          |j        |         |j        dd           t'          |j        |         d           t%          |j        |         |j        dd           t'          |j        |         d           t*          rd	nd}|j        |         }	t%          |	|j        ||           t.          st0          r|j        |         }
n|j        |         }
t%          |
|j        ||           t5          |d
          r3d}d}t*          st6          rd	}d}t%          |j        |j        ||           | j        j        j                            d          } |j        |fi | j        } |j        ||         fi | j        }t%          ||d           | j        j        j        d d         } |j        |fi | j        } |j        |d d |f         fi | j        }t%          ||d           d S )Nz%GEE does not subclass LikelihoodModelr,   r   r   )maxiterstart_paramsr^   绽|=r2   atol:0yE>residg-q=r1      ) 
isinstancer8   modelr   GEEpytestskipRLMOLSWLSuse_start_paramslistranger   shaper;   
_fit_zeros_get_constrainedr   r   bser   tvaluesr   r	   r?   hasattrr   re   meanpredictr"   )rE   ro   
keep_indexkeep_index_p
drop_indexires1res2toltvals1pvals1r2   rc   ex
predicted1
predicted2s                   r'   test_zero_constrainedz'CheckGenericMixin.test_zero_constrainedV   si   t|)BF44 	AK?@@@)$,*<+-62626*B D  D D 0% 2 7 =a @AABB
E$,"5";A">??@@S
 	  	 A1Q 	J<%00S59\5H 1 J JDD <%00S0IID$$Z>>L14;U"	$ 	$ 	$ 	$T[,a000.u"	$ 	$ 	$ 	$TXj)1---"-ddl+3SAAAA  	0{ 	0\,/FF\,/F3SAAAA4!! 		J DD ~ DJ
DIIII\$))!,,!T\"::(9::
!T\"Z.FFD4EFF

JU;;;;\$RaR(!T\"::(9::
!T\"QQQ
]"3IIt7HII

JU;;;;;;r)   c                    | j         j        }|j        }|                                } ||j        |j        d d |f         fi |}| j        r(|                    | j         j        |         d          }n|                    d          }|S )Nr   )r_   r^   r`   )	r8   rh   	__class___get_init_kwdsendogr   ro   fitr;   )rE   rz   r{   mod2mod_cls	init_kwdsmodrF   s           r'   rt   z"CheckGenericMixin._get_constrained   s    |!.''))	gdj$)AAAzM":HHiHH  	'''t|':<'H"%  ' 'CC ''#'&&C
r)   c                    t          | j        j        t          j                  rt          j        d           t          | j        j        t          j        t          j        t          j	        t          j
        f           }|| _        t          t          | j        j        j        j        d                             }t          t          | j        j        j        d                             }g }|D ]}||= ||= 	t          t          | j        j        j        d                             }| j        j        }|j        }|                                }t'          j        |j        |j        f          }	 ||j        |	fi |}
t          t          | j        j        j        j        d                             }t          t          | j        j        j        j        d                             }|	j        d         }d}t-          |
d          r:|
j        dk    r/|t          t          |||
j        z                       z  }|
j        }t          |
t          j
                  rt0          nd }ddg}|D ]|}|dk    r't          | j        j        t          j                  r d S |rt'          j        ||z             }| j        j        d         }| j        j        d                                         }| j        't'          j        || j                           || j        <   |||<   t=          |          5  |
                    |||d	          }d d d            n# 1 swxY w Y   |dk    rJt=          |          5  | j        j                             |||d	          }d d d            n# 1 swxY w Y   nt=          |          5  t          | j        j        t          j                  r|
                                }n|
                    |
          }d d d            n# 1 swxY w Y   |dk    r | j        j                             |
          }|dk    r| j        }t-          |d          rtC          |j"        j        d         |j        d                    d|j        v r|j"        j        d         }tG          ||j        d         dd           tC          |j        d         |j        d                    tG          |j        d         |j        d         dd           tG          |j        |         |j        d           tG          |j        |         dd           tG          |j$        |         |j$        d           tG          |j$        |         dd           |j%        |         }tG          ||j%        d           tL          stN          r|j(        |         }n|j(        |         }tG          ||j(        dd           t-          |d          rtG          |j)        |j)        dd           |j        j        *                    d          }	 |j+        |	fi | j,        } |j+        |	|         fi | j,        }tG          ||dd           |j        j        d d         }	t[          | di           } |j+        |	fi |} |j+        |	d d |f         fi |}tG          ||dd           ~d S )NzNot completely generic yetr,   r   k_extra	nonrobustHC0	optimizerr_   )cov_typer_   methoddispr   mle_settingsra   g#B;rb   gư>r1   rd   gHj>gKH9re   h㈵>gdy=rf   predict_kwds_5).rg   r8   rh   r   ri   rj   rk   rl   rm   rn   GLMro   rp   rq   r   rr   r;   r   r   r   column_stackr   rw   r   r   zerosr   copyr#   expr   _fit_collinearr   r   results_constrainedr   ru   rv   r   r	   r?   re   rx   ry   r"   getattr)rE   ro   rz   r{   r|   r}   r   r   r   r   r   k_varsr   warn_cls	cov_typesr   r_   r   spr~   r   spcr   r   r   r   kwdss                              r'   test_zero_collinearz%CheckGenericMixin.test_zero_collinear   s   dl(2633 	6K4555)$,*<+-6262626*J L  L L 0% 2 7 =a @AABB
E$,"5";A">??@@
 	  	 A1QE$,"5";A">??@@ |!.''))	_di344gdj"22	22% 2 7 =a @AABB
E$,"4"9"?"BCCDD!3	"" 	"s{QDvv/C!D!DEEELkG
 /9bf.E.EO**4 %(	! U	K U	KH ;&&Jt|7I79v-? -?& E!x(8992;?\.~>CCEE'3/1vb9M6N/O/OBt+,-/\*!(++ E E--x;G5;! . E EDE E E E E E E E E E E E E E E {**%h// M M#|155xCE=C!  6  M  MM M M M M M M M M M M M M M M
 "(++ E E"4<#5@@ E"1133"1181DDE E E E E E E E E E E E E E E {**<-1181DDD;&&| t^,, <T5B;O!.{;= = =!T%6662?OC#C$($5n$E).U< < < < !!2;!?!%!2;!?A A A#D$5n$E$($5n$E).U< < < <
 DK5t{NNNNDK
3QUCCCCDH\2DH4HHHHDHZ0!%@@@@\,/FFDLt<<<<   4; 4l3l3FDLt%HHHHtW%% O
DJTNNNN%%a((B%b>>D,=>>J%bnJJ8IJJJJ
EJJJJ!$B4!1266D%b11D11J%bJ&7@@4@@JJ
EJJJJJkU	K U	Ks7   2MM	M	8$N((N,	/N,	APP#	&P#	N)__name__
__module____qualname__classmethodr(   rP   rU   rY   r\   r   rt   r   r-   r)   r'   r   r   &   s        # # [#7 7 74. . .' ' '. . .?< ?< ?<B  }K }K }K }K }Kr)   r   c                       e Zd Zd ZdS )TestGenericOLSc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S Nr   r,   r   )r   r   r   r   sumr   rr   r   rm   r   r8   rE   r&   ys      r'   setup_methodzTestGenericOLS.setup_method)  j    I
	vEE!HHryqwqz222va++//11r)   Nr   r   r   r   r-   r)   r'   r   r   '  #        2 2 2 2 2r)   r   c                       e Zd Zd Zd ZdS )TestGenericOLSOneExogc                    | j         d d df         }t          j                            d           |t          j                            |j        d                   z   }t          j        ||                                          | _	        d S )Nr,   r   r   )
r   r   r   r   r   rr   r   rm   r   r8   r   s      r'   r   z"TestGenericOLSOneExog.setup_method4  sh    IaaadO
	v	
+++va||''))r)   c                 .    t          j        d           d S )Nz/Override since cannot remove the only regressor)rj   rk   rT   s    r'   r   z+TestGenericOLSOneExog.test_zero_constrained;  s    EFFFr)   N)r   r   r   r   r   r-   r)   r'   r   r   1  s2        * * *    r)   r   c                       e Zd Zd ZdS )TestGenericWLSc           	      v   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j         t          j	        t          |                                                              | _        d S )Nr   r,   r   )weights)r   r   r   r   r   r   rr   r   rn   r    r:   r   r8   r   s      r'   r   zTestGenericWLS.setup_methodC  s}    I
	vEE!HHryqwqz222vaBGCFFOODDDHHJJr)   Nr   r-   r)   r'   r   r   A  s(        K K K K Kr)   r   c                       e Zd Zd ZdS )TestGenericPoissonc                    | j         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j	        ||          }t          j
        g d          }|                    |dd          | _        d S )Nr   r,   gc<sm?g&?g`C?gZ9(
?bfgsr   r_   r   r   )r   r   r   r   poissonr   r   rx   r   Poissonarrayr   r8   )rE   r&   y_countrh   r_   s        r'   r   zTestGenericPoisson.setup_methodM  s    I
	v)##BF15588affhh+>$?$?@@
7A&&x P P PQQyyl6&' ! ) )r)   Nr   r-   r)   r'   r   r   K  s#        	) 	) 	) 	) 	)r)   r   c                       e Zd Zd ZdS )TestGenericPoissonOffsetc                    | j         }|j        d         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j
        ||dt          j        |          z  t          j        |                    }t          j        g d          }|                    |dd          | _        t          dt          j        d	          z  t          j        d	          
          | _        t          dd
          | _        d S )Nr   r   r,   {Gz?)offsetexposurer   r   r   rf   r   r   )r   rr   r   r   r   r   r   r   rx   r   r   r    r   r   r8   dictr   r"   rE   r&   r%   r   rh   r_   s         r'   r   z%TestGenericPoissonOffset.setup_method[  s   Iwqz
	v)##BF15588affhh+>$?$?@@
7AdRWT]].B$&GDMM3 3 3 x P P PQQyyl6&' ! ) ) #D271::,=bgajjQQQ !A666r)   Nr   r-   r)   r'   r   r   Y  s#        7 7 7 7 7r)   r   c                       e Zd Zd ZdS )TestGenericNegativeBinomialc                    t           j                            d           t          j        j                                        }t          j        |j                  |_        t          j        |j	                  |_	        t          j
        |j        d          }t          j        |j	        |          }t          j        g d          }|                    |dd          | _        d| _        d S )	Nr   F)prepend)gJtصgiڋIѿg}E	?g0on~gLa/?g9?gigZ?g<pc?g}[D?g!4'x?r   r   )r_   r   r^   )r   r   r   r   datasetsrandhieloadasarrayr   r   r   NegativeBinomialr   r   r8   r#   )rE   datar   r   r_   s        r'   r   z(TestGenericNegativeBinomial.setup_methodn  s    
	v{"''))Jty))	Z
++
ty%888!$*d33x !H !H !H I I wwLq#wNN!r)   Nr   r-   r)   r'   r   r   l  s#        " " " " "r)   r   c                       e Zd Zd ZdS )TestGenericLogitc                 \   | j         }|j        d         }t          j                            d           t          j                            |          ddt          j        |                    d          |                                z
            z   z  k     	                    t                    }t          j        ||          }t          j        g d          }t          j        t           d          5  |                    |ddd	
          | _        d d d            d S # 1 swxY w Y   d S )Nr   r         ?r,   )gdb=}gu7$gGZHgzdz"Keyword arguments have been passed)matchr   r   )r_   r   r   r   )r   rr   r   r   r   randr   r   rx   astypeintr   Logitr   rj   warnsFutureWarningr   r8   )rE   r&   r%   y_binrh   r_   s         r'   r   zTestGenericLogit.setup_method  s]   Iwqz
	v%%q26!%%((QVVXX:M3N3N/N(OOWWX[\\""x T T TUU\- DF F F 	F 	F 99,,2 % F FDL	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   5D!!D%(D%Nr   r-   r)   r'   r   r   }  s(        F F F F Fr)   r   c                       e Zd Zd ZdS )TestGenericRLMc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S r   )r   r   r   r   r   r   rr   r   rl   r   r8   r   s      r'   r   zTestGenericRLM.setup_method  r   r)   Nr   r-   r)   r'   r   r     r   r)   r   c                       e Zd Zd ZdS )TestGenericGLMc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S r   )r   r   r   r   r   r   rr   r   r   r   r8   r   s      r'   r   zTestGenericGLM.setup_method  r   r)   Nr   r-   r)   r'   r   r     r   r)   r   c                       e Zd Zd ZdS )TestGenericGLMPoissonOffsetc           	         | j         }|j        d         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j
        ||t          j                                        dt          j        |          z  t          j        |                    }t          j        g d          }|                    |dd          | _        t#          dt          j        d	          z  t          j        d	          
          | _        t#          dd
          | _        d S )Nr   r   r,   r   )familyr   r   r   r   r   rf   r   )r   rr   r   r   r   r   r   r   rx   r   r   familiesr   r    r   r   r8   r   r   r"   r   s         r'   r   z(TestGenericGLMPoissonOffset.setup_method  s#   Iwqz
	v)##BF15588affhh+>$?$?@@w"+*=*=*?*?"RWT]]2 "/ / / x P P PQQyyl6&' ! ) ) #D271::,=bgajjQQQ !A666r)   Nr   r-   r)   r'   r   r     s#        7 7 7 7 7r)   r   c                       e Zd Zd ZdS )TestGenericGEEPoissonc                 p   | j         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j                            dd|j	        d                   }t          j
        g d          }t          j                                        }t          j                                        }t          j        || j         |||                              |          | _        d S )	Nr   r,   r   r   sizeg        r   r   r   r   
cov_struct)r_   r   r   r   r   r   r   r   rx   randintrr   r   r   r   Independencer   r   ri   r   r8   rE   r&   r   groupsr_   vir   s          r'   r   z"TestGenericGEEPoisson.setup_method  s    I
	v)##BF15588affhh+>$?$?@@""1aagaj"99x 0 0 011]''))$$&&vgty&+-/ / //2ss/M/M 	r)   Nr   r-   r)   r'   r   r     s(        N N N N Nr)   r   c                       e Zd Zd ZdS )TestGenericGEEPoissonNaivec                    | j         }t          j                            d           t          j                            t          j        |                    d          |                    d                              d          z
                      }t          j                            dd|j	        d                   }t          j
        g d          }t          j                                        }t          j                                        }t          j        || j         |||                              |d	          | _        d S )
Nr   r,   r   r   r   r   r   naiver_   r   r   r  s          r'   r   z'TestGenericGEEPoissonNaive.setup_method  s   I
	v)##BF15588aeeAhhmmA6F6F+F$G$GHH""1aagaj"99x 0 0 011]''))$$&&vgty&+-/ / //2s<C 03 0E 0E 	r)   Nr   r-   r)   r'   r  r    s(        E E E E Er)   r  c                       e Zd Zd ZdS )TestGenericGEEPoissonBCc                    | j         }t          j                            d           t          j                            t          j        |                    d          |                    d                              d          z
                      }t          j                            dd|j	        d                   }t          j
        g d          }t          j                                        }t          j                                        }t          j        || j         |||          }|                    |d	          | _        d S )
Nr   r,   r   r   r   r   r   bias_reducedr	  r   )rE   r&   r   r  r_   r  r   r   s           r'   r   z$TestGenericGEEPoissonBC.setup_method  s    I
	v)##BF15588aeeAhhmmA6F6F+F$G$GHH""1aagaj"99x 0 0 011 ]''))$$&&fWdi2NNNwwL(6  8 8r)   Nr   r-   r)   r'   r  r    s#        8 8 8 8 8r)   r  c                   0    e Zd Zed             Zd Zd ZdS )CheckAnovaMixinc                     dd l mc mc m} |                                }|                                 |j                            g d          | _        |                                  d S )Nr   r   r,   r   )	"statsmodels.stats.tests.test_anovastatstests
test_anova
TestAnova3r(   r   drop
initialize)r$   ttmodtests      r'   r(   zCheckAnovaMixin.setup_class  sx    ::::::::::::!!9>>'''**r)   c           
      2   | j         }|                    dddgd          }t          j        t	          |j                            }|d         }|ddg         }|d	         }|d
dg         }|dd         }|g d         }	t          |||||||	|g           d S )NFDurationWeightTskip_singlecombine_termsscalarr   r   r   r,   r   rf      r,   r   rf   rF   wald_test_termsr   r9   r:   r;   compare_waldres)
rE   rF   war9   c_constc_wc_dc_dwc_weight
c_durations
             r'   test_combinedzCheckAnovaMixin.test_combined  s    h  U:xBXae fffS__%%a&1Q%j!fAa5zqs8^
R'3T:x!PQQQQQr)   c                     | j         }|                    dd          }t          j        t	          |j                            }|ddg         }|ddg         }t          ||||g           d S )NT)r  r!  r   r   r   rf   r$  )rE   rF   r'  r9   r)  r+  s         r'   test_categorieszCheckAnovaMixin.test_categories	  sn    h  T$ ??fS__%%1Q%jAa5zR#t-----r)   N)r   r   r   r   r(   r.  r0  r-   r)   r'   r  r    sN          [R R R. . . . .r)   r  c                    t          |          D ])\  }}|                     |d          }t          |j        j        |df         |j                   t          |j        j        |df         |j                   |j        dk    r|j        d         nd}t          |j        j        |df         |           t          |j        |         |j                   t          |j
        |         |j                   t          |j        |         |           | j        r t          |j        |         | j                   +|j        }| j        rBt          |j        d           t          |d         d           t          |d         d           nAt          |j        d           t          |d         d           t          |d         d	           |                                 d S )
NT)r!  r   r,   r   FzP>Fchi2zP>chi2)	enumerate	wald_testr   tablerD   	statisticr>   ndimrr   r   r?   df_constraintsrB   df_denomdf_resid	col_namesdistributionrA   )rF   r'  
constrastsr}   cwtdfr<  s           r'   r&  r&    s   *%% 7 71]]1T]**1-r|<<<1-ry9996Q;;QWQZZARX_QT*B///Q666
1ry111R&q)2...9 	7Q666I
y -R_c***Yq\3'''Yq\5))))R_f---Yq\6***Yq\8,,, r)   c                   *    e Zd Zed             Zd ZdS )TestWaldAnovaOLSc                 f    t          d| j                  }|                    d          | _        d S N0np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)F)rB   r   r   r   rF   r$   r   s     r'   r  zTestWaldAnovaOLS.initialize2  -    DchOO'''&&r)   c                    | j         j        j        }| j         j        j        j        }t          j        |          }t          j        ||          	                                }|
                    dddgd          }t          j        t          |j                            }d |D             }|dd         }|g d	         }t          |||||gz              d
gt          |          z  ddgz   }	t!          |j        |	           d S )NFr  r  Tr  c                     g | ]}|S r-   r-   ).0rows     r'   
<listcomp>z3TestWaldAnovaOLS.test_noformula.<locals>.<listcomp>D  s    '''CC'''r)   r   r"  r#  r,   r   r   )rF   rh   r   r   	orig_exogpd	DataFramer   rm   r   r%  r   r9   r:   r;   r&  r   r9  )
rE   r   r   rF   r'  r9   c_singler,  r-  r9  s
             r'   test_noformulazTestWaldAnovaOLS.test_noformula7  s
    $x~",|D!!fUD!!%%''  U0:H/E(, ! . . fS__%%''3'''qs8^
RZ,B!BCCC s8}},1v5R&77777r)   N)r   r   r   r   r  rS  r-   r)   r'   rC  rC  0  s<        ' ' ['8 8 8 8 8r)   rC  c                   *    e Zd Zed             Zd ZdS )TestWaldAnovaOLSFc                 b    t          d| j                  }|                                | _        d S )NrF  rG  rH  s     r'   r  zTestWaldAnovaOLSF.initializeQ  s'    DchOO''))r)   c                    | j         d d                                         }t          j        |j        d<   | j                            |          }| j                            |dd                    }t          |j        |j                   t          |j        dd          |           t          |j        d         t          j                   d S )Nrf   )r   r,   r,   r   )r   r   r   nanilocrF   ry   r   indexr   r   rD   )rE   r   r   r   s       r'   test_predict_missingz&TestWaldAnovaOLSF.test_predict_missingV  s    Yrr]!!X%%b))
X%%bf--
:+RX666JOABB/<<<Z&q)2622222r)   N)r   r   r   r   r  r[  r-   r)   r'   rU  rU  O  s<          [3 3 3 3 3r)   rU  c                   $    e Zd Zed             ZdS )TestWaldAnovaGLMc                 f    t          d| j                  }|                    d          | _        d S rE  )r   r   r   rF   rH  s     r'   r  zTestWaldAnovaGLM.initializec  rI  r)   Nr   r   r   r   r  r-   r)   r'   r]  r]  a  s-        ' ' [' ' 'r)   r]  c                   $    e Zd Zed             ZdS )TestWaldAnovaPoissonc                 ~    ddl m} |                    d| j                  }|                    d          | _        d S )Nr   r   &Days ~ C(Duration, Sum)*C(Weight, Sum)r   r   )#statsmodels.discrete.discrete_modelr   from_formular   r   rF   )r$   r   r   s      r'   r  zTestWaldAnovaPoisson.initializek  sE    ??????""#KSXVV''5'))r)   Nr_  r-   r)   r'   ra  ra  i  s-        * * [* * *r)   ra  c                   $    e Zd Zed             ZdS )TestWaldAnovaNegBinc                     ddl m} d}|                    || j        d          }|                                | _        d S )Nr   r   rd  nb2loglike_methodre  r   rf  r   r   rF   r$   r   formular   s       r'   r  zTestWaldAnovaNegBin.initializeu  sQ    HHHHHH:++GSX;@ , B B''))r)   Nr_  r-   r)   r'   rh  rh  s  s-          [  r)   rh  c                   $    e Zd Zed             ZdS )TestWaldAnovaNegBin1c                     ddl m} d}|                    || j        d          }|                    d          | _        d S )Nr   rj  rd  nb1rl  r   r   rn  ro  s       r'   r  zTestWaldAnovaNegBin1.initialize  sW    HHHHHH:++GSX;@ , B B''5'))r)   Nr_  r-   r)   r'   rr  rr    s-        * * [* * *r)   rr  c                       e Zd Zd ZdS )CheckPairwisec                    | j         }|                    | j                  }|                    | j                  }|j        }t          |j        d d d df         j        |	                                j                   d S )Nr"  )
rF   r<   constraintst_test_pairwise	term_nameresult_framer   rY  rD   rA   )rE   rF   rH   pwpw_frames        r'   test_defaultzCheckPairwise.test_default  s    hZZ())  00?aaa!e,3((**1	3 	3 	3 	3 	3r)   N)r   r   r   r~  r-   r)   r'   rv  rv    s#        3 3 3 3 3r)   rv  c                   *    e Zd Zed             Zd ZdS )TestTTestPairwiseOLSc                 0   ddl m} dd lmc mc m} |                                }|                                 |j        	                    g d          | _         |d| j                  }|
                                | _        d| _        g d| _        d S )Nr   r   r  z(np.log(Days+1) ~ C(Duration) + C(Weight)	C(Weight)zC(Weight)[T.2]zC(Weight)[T.3]zC(Weight)[T.3] - C(Weight)[T.2]statsmodels.formula.apir   r  r  r  r  r  r(   r   r  r   rF   rz  rx  r$   r   r  r  r   s        r'   r(   z TestTTestPairwiseOLS.setup_class      //////::::::::::::!!9>>'''**c<chGG''))#> > >r)   c                 f   | j                             | j        dd                                          }| j                             | j        dd          }t	          |j        j        d d d df         j        |j        j        d d d df         j        d           t          |j        j        d d d	f         j        d
gdz             t          |j        j        d d d	f         j        g d           t          |j        j	        j        t          j        g dt                               d S )NhommelzA B C)r   factor_labelsr   )r   r/      ra   r1   r   Tr   )FTF)zB-AzC-AzC-B)dtype)rF   ry  rz  splitr   r{  rY  rD   r   rZ  r   r   object)rE   pw1pw2s      r'   
test_alphazTestTTestPairwiseOLS.test_alpha  sY   h&&t~h5<]]__ ' F Fh&&t~h-1 ' 3 3(-aaa!e4;(-aaa!e4;%	I 	I 	I 	IS%*111b518VAX	 	 	S%*111b518)))	+ 	+ 	+ 	S%+2X3336BBB	D 	D 	D 	D 	Dr)   N)r   r   r   r   r(   r  r-   r)   r'   r  r    sA        > > [>D D D D Dr)   r  c                   $    e Zd Zed             ZdS )TestTTestPairwiseOLS2c                 0   ddl m} dd lmc mc m} |                                }|                                 |j        	                    g d          | _         |d| j                  }|
                                | _        d| _        g d| _        d S )Nr   r  r  z(np.log(Days+1) ~ C(Weight) + C(Duration)r  r  r  r  s        r'   r(   z!TestTTestPairwiseOLS2.setup_class  r  r)   Nr   r   r   r   r(   r-   r)   r'   r  r    -        > > [> > >r)   r  c                   $    e Zd Zed             ZdS )TestTTestPairwiseOLS3c                 0   ddl m} dd lmc mc m} |                                }|                                 |j        	                    g d          | _         |d| j                  }|
                                | _        d| _        g d| _        d S )Nr   r  r  z,np.log(Days+1) ~ C(Weight) + C(Duration) - 1r  )zC(Weight)[2] - C(Weight)[1]zC(Weight)[3] - C(Weight)[1]zC(Weight)[3] - C(Weight)[2]r  r  s        r'   r(   z!TestTTestPairwiseOLS3.setup_class  s    //////::::::::::::!!9>>'''**c@#(KK''))#: : :r)   Nr  r-   r)   r'   r  r    s-        : : [: : :r)   r  c                   $    e Zd Zed             ZdS )TestTTestPairwiseOLS4c                 0   ddl m} dd lmc mc m} |                                }|                                 |j        	                    g d          | _         |d| j                  }|
                                | _        d| _        g d| _        d S )Nr   r  r  z6np.log(Days+1) ~ C(Weight, Treatment(2)) + C(Duration)zC(Weight, Treatment(2)))z-C(Weight, Treatment(2))[T.1]z;C(Weight, Treatment(2))[T.3] - C(Weight, Treatment(2))[T.1]zC(Weight, Treatment(2))[T.3]r  r  s        r'   r(   z!TestTTestPairwiseOLS4.setup_class  s    //////::::::::::::!!9>>'''**cJCHUU''))1< < <r)   Nr  r-   r)   r'   r  r    s-        < < [< < <r)   r  c                   $    e Zd Zed             ZdS )TestTTestPairwisePoissonc                 H   ddl m} dd lmc mc m} |                                }|                                 |j        	                    g d          | _        |
                    d| j                  }|                    d          | _        d| _        g d| _        d S )	Nr   rc  r  zDays ~ C(Duration) + C(Weight)r   r   r  r  )re  r   r  r  r  r  r  r(   r   r  rf  r   rF   rz  rx  )r$   r   r  r  r   s        r'   r(   z$TestTTestPairwisePoisson.setup_class  s    ??????::::::::::::!!9>>'''**""#CSXNN''5'))#> > >r)   Nr  r-   r)   r'   r  r    r  r)   r  )>__doc__statsmodels.compat.pytestr   statsmodels.compat.pandasr   r   statsmodels.compat.platformr   r   r   statsmodels.compat.scipyr	   numpyr   numpy.testingr
   r   r   r   pandasrP  rj   statsmodels.apiapir   r  r   r   statsmodels.tools._testingtools_testingr6   statsmodels.tools.sm_exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  rC  rU  r]  ra  rh  rr  rv  r  r  r  r  r  r-   r)   r'   <module>r     s   
 
 3 2 2 2 2 2 M M M M M M M M         
 1 0 0 0 0 0                           , , , , , , , , ( ( ( ( ( ( ( ( ( C C C C C C{K {K {K {K {K {K {K {KB2 2 2 2 2& 2 2 2    -    K K K K K& K K K) ) ) ) )* ) ) )7 7 7 7 70 7 7 7&" " " " ""3 " " ""F F F F F( F F F"2 2 2 2 2& 2 2 22 2 2 2 2& 2 2 27 7 7 7 7"3 7 7 7(N N N N N- N N N"E E E E E!2 E E E&8 8 8 8 8/ 8 8 8,!. !. !. !. !. !. !. !.H  88 8 8 8 8 8 8 8>3 3 3 3 3 3 3 3$' ' ' ' ' ' ' '* * * * *? * * *	 	 	 	 	/ 	 	 		* 	* 	* 	* 	*? 	* 	* 	*
3 
3 
3 
3 
3 
3 
3 
3D D D D D= D D DD> > > > >M > > >&: : : : :M : : :&< < < < <M < < <&> > > > >} > > > > >r)   