
    M/Phq                        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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$          Z0 G d% d&e$          Z1 G d' d(          Z2d) Z3 G d* d+e2          Z4 G d, d-e2          Z5 G d. d/e2          Z6 G d0 d1e2          Z7 G d2 d3e2          Z8 G d4 d5e2          Z9 G d6 d7          Z: G d8 d9e:          Z; G d: d;e:          Z< G d< d=e:          Z= G d> d?e:          Z> G d@ dAe:          Z?dS )BzTests 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)PYTHON_IMPL_WASM)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      k/var/www/html/test/jupyter/venv/lib/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
            S )Nz[{:4.3F}      {:4.3F}]r      )formatalphas    r(   <lambda>z6CheckGenericMixin.test_ttest_tvalues.<locals>.<lambda>;   s*    '?'F'F',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)r7   check_ftest_pvaluesr9   rF   s    r(   test_ftest_pvaluesz$CheckGenericMixin.test_ftest_pvaluesM       -----r*   c                 8    t          j        | j                   d S rS   )r7   check_fittedr9   rU   s    r(   test_fittedzCheckGenericMixin.test_fittedP   s    &&&&&r*   c                 8    t          j        | j                   d S rS   )r7   check_predict_typesr9   rU   s    r(   test_predict_typesz$CheckGenericMixin.test_predict_typesS   rW   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_   绽|=r3   atol:0yE>residg-q=r2      ) 
isinstancer9   modelr   GEEpytestskipRLMOLSWLSuse_start_paramslistranger    shaper<   
_fit_zeros_get_constrainedr   r   bser   tvaluesr   r
   r@   hasattrr   rf   meanpredictr#   )rF   rp   
keep_indexkeep_index_p
drop_indexires1res2toltvals1pvals1r3   rd   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_   ra   )	r9   ri   	__class___get_init_kwdsendogr    rp   fitr<   )rF   r{   r|   mod2mod_cls	init_kwdsmodrG   s           r(   ru   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          st2          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          rtE          |j#        j        d         |j        d                    d|j        v r|j#        j        d         }tI          ||j        d         dd           tE          |j        d         |j        d                    tI          |j        d         |j        d         dd           tI          |j        |         |j        d           tI          |j        |         dd           tI          |j%        |         |j%        d           tI          |j%        |         dd           |j&        |         }tI          ||j&        d           tN          stP          r|j)        |         }n|j)        |         }tI          ||j)        dd           t-          |d          rtI          |j*        |j*        dd           |j        j        +                    d          }	 |j,        |	fi | j-        } |j,        |	|         fi | j-        }tI          ||dd           |j        j        d d         }	t]          | di           } |j,        |	fi |} |j,        |	d d |f         fi |}tI          ||dd           ~d S )NzNot completely generic yetr-   r   k_extra	nonrobustHC0	optimizerr`   )cov_typer`   methoddispr   mle_settingsrb   g#B;rc   gư>r2   re   gHj>gKH9rf   h㈵>gdy=rg   predict_kwds_5)/rh   r9   ri   r   rj   rk   rl   rm   rn   ro   GLMrp   rq   rr   r    rs   r<   r   r   r   column_stackr   rx   r   r	   r   zerosr   copyr$   expr   _fit_collinearr   r   results_constrainedr   rv   rw   r   r
   r@   rf   ry   rz   r#   getattr)rF   rp   r{   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 0:#rv/F/FjO_j**fj %(	! 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   9MM#	&M#	?$N//N3	6N3	
AP&&P*	-P*	N)__name__
__module____qualname__classmethodr)   rQ   rV   rZ   r]   r   ru   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   rs   r   rn   r   r9   rF   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   rs   r   rn   r   r9   r   s      r(   r   z"TestGenericOLSOneExog.setup_method7  sh    IaaadO
	v	
+++va||''))r*   c                 .    t          j        d           d S )Nz/Override since cannot remove the only regressor)rk   rl   rU   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   4  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   rs   r   ro   r!   r;   r   r9   r   s      r(   r   zTestGenericWLS.setup_methodF  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   D  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   ry   r   Poissonarrayr   r9   )rF   r'   y_countri   r`   s        r(   r   zTestGenericPoisson.setup_methodP  s    I
	v)##BF15588affhh+>$?$?@@
7A&&x P P PQQyyl6&' ! ) )r*   Nr   r   r*   r(   r   r   N  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   rg   r   r   )r    rs   r   r   r   r   r   r   ry   r   r   r!   r   r   r9   dictr   r#   rF   r'   r&   r   ri   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   \  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   r9   r$   )rF   datar    r   r`   s        r(   r   z(TestGenericNegativeBinomial.setup_methodq  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   o  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    rs   r   r   r   randr   r   ry   astypeintr   Logitr   rk   warnsFutureWarningr   r9   )rF   r'   r&   y_binri   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   rs   r   rm   r   r9   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   rs   r   r   r   r9   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   rg   r   )r    rs   r   r   r   r   r   r   ry   r   r   familiesr   r!   r   r   r9   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   ry   randintrs   r   r   r   Independencer   r   rj   r   r9   rF   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  )rF   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   rg      r-   r   rg   rG   wald_test_termsr   r:   r;   r<   compare_waldres)
rF   rG   war:   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   rg   r&  )rF   rG   r)  r:   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)   r0  r2  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   tablerE   	statisticr?   ndimrs   r   r@   df_constraintsrC   df_denomdf_resid	col_namesdistributionrB   )rG   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)rC   r   r   r   rG   r%   r   s     r(   r  zTestWaldAnovaOLS.initialize5  -    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>G  s    '''CC'''r*   r   r$  r%  r-   r   r   )rG   ri   r   r   	orig_exogpd	DataFramer   rn   r   r'  r   r:   r;   r<   r(  r   r;  )
rF   r   r    rG   r)  r:   c_singler.  r/  r;  s
             r(   test_noformulazTestWaldAnovaOLS.test_noformula:  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  rU  r   r*   r(   rE  rE  3  s<        ' ' ['8 8 8 8 8r*   rE  c                   *    e Zd Zed             Zd ZdS )TestWaldAnovaOLSFc                 b    t          d| j                  }|                                | _        d S )NrH  rI  rJ  s     r(   r  zTestWaldAnovaOLSF.initializeT  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 )Nrg   )r   r-   r-   r   )r   r   r   nanilocrG   rz   r   indexr   r   rE   )rF   r   r   r   s       r(   test_predict_missingz&TestWaldAnovaOLSF.test_predict_missingY  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(   rW  rW  R  s<          [3 3 3 3 3r*   rW  c                   $    e Zd Zed             ZdS )TestWaldAnovaGLMc                 f    t          d| j                  }|                    d          | _        d S rG  )r   r   r   rG   rJ  s     r(   r  zTestWaldAnovaGLM.initializef  rK  r*   Nr   r   r   r   r  r   r*   r(   r_  r_  d  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   rG   )r%   r   r   s      r(   r  zTestWaldAnovaPoisson.initializen  sE    ??????""#KSXVV''5'))r*   Nra  r   r*   r(   rc  rc  l  s-        * * [* * *r*   rc  c                   $    e Zd Zed             ZdS )TestWaldAnovaNegBinc                     ddl m} d}|                    || j        d          }|                                | _        d S )Nr   r   rf  nb2loglike_methodrg  r   rh  r   r   rG   r%   r   formular   s       r(   r  zTestWaldAnovaNegBin.initializex  sQ    HHHHHH:++GSX;@ , B B''))r*   Nra  r   r*   r(   rj  rj  v  s-          [  r*   rj  c                   $    e Zd Zed             ZdS )TestWaldAnovaNegBin1c                     ddl m} d}|                    || j        d          }|                    d          | _        d S )Nr   rl  rf  nb1rn  r   r   rp  rq  s       r(   r  zTestWaldAnovaNegBin1.initialize  sW    HHHHHH:++GSX;@ , B B''5'))r*   Nra  r   r*   r(   rt  rt    s-        * * [* * *r*   rt  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$  )
rG   r=   constraintst_test_pairwise	term_nameresult_framer   r[  rE   rB   )rF   rG   rI   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(   rx  rx    s#        3 3 3 3 3r*   rx  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   rG   r|  rz  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   r0      rb   r2   r   Tr   )FTF)zB-AzC-AzC-B)dtype)rG   r{  r|  splitr   r}  r[  rE   r   r\  r   r   object)rF   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   re  r  zDays ~ C(Duration) + C(Weight)r   r   r  r  )rg  r   r  r  r  r  r  r)   r   r  rh  r   rG   r|  rz  )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.pythonr	   statsmodels.compat.scipyr
   numpyr   numpy.testingr   r   r   r   pandasrR  rk   statsmodels.apiapir   r  r   r   statsmodels.tools._testingtools_testingr7   statsmodels.tools.sm_exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r(  rE  rW  r_  rc  rj  rt  rx  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         
 7 6 6 6 6 6 0 0 0 0 0 0                           , , , , , , , , ( ( ( ( ( ( ( ( ( C C C C C C~K ~K ~K ~K ~K ~K ~K ~KH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*   