
    gq                        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?y)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                   F    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zy	)
CheckGenericMixinc                    d}t         j                  j                  d       t         j                  j                  |d      }t	        j
                  |      }|| _        dt        j                  d      z  | _        i | _	        d | _
        y )N  )    g      ?)      )nprandomseedrandnsmadd_constantexogonesxfpredict_kwdstransform_index)clsnobsxs      ^/var/www/html/venv/lib/python3.12/site-packages/statsmodels/base/tests/test_generic_methods.pysetup_classzCheckGenericMixin.setup_class(   sd    
		vIIOOD!$OOA'"    c                    t        j                  | j                         | j                  }t        j                  t        |j                              }|j                  |d         }d }|j                         }t        |j                  |j                  d   d       t         |d      t        |      v        |j                  d      }d}t        |t        |      v        |j                  d      }|j                  d	u rd
nd}|j                  d	u rdnd}	dd|	|ddg}
t!        |j"                  j$                  |
       y )Nr   c                 8    dj                  | 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   s   -llffS_%ZZA@zz|		3;;q>>t$D	12 zzz$ c$i   s +$'II$6G"yyE1s	=. "355==//6r*   c                 B    t        j                  | j                         y N)r7   check_ftest_pvaluesr9   rF   s    r(   test_ftest_pvaluesz$CheckGenericMixin.test_ftest_pvaluesM       -r*   c                 B    t        j                  | j                         y rS   )r7   check_fittedr9   rU   s    r(   test_fittedzCheckGenericMixin.test_fittedP   s    &r*   c                 B    t        j                  | j                         y rS   )r7   check_predict_typesr9   rU   s    r(   test_predict_typesz$CheckGenericMixin.test_predict_typesS   rW   r*   c                 r   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                  j!                  |d| j                  j                        }n'| j                  j                  j!                  |d      }| j#                  ||      }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|j2                  |   }
n|j2                  |   }
t%        |
|j2                  ||       t5        |d
      r7d}d}t*        st6        rd	}d}t%        |j8                  |j8                  ||       | 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       y )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   s   t||))BFF4KK?@)$,,*<*<+-66266266*B D D 0% 2 2 7 7 = =a @AB
E$,,"5"5";";A">?@S
 	 A1Q	  <<%%00S59\\5H5H 1 JD <<%%00S0ID$$Z>L14;;U"	$T[[,a0.u"	$TXXj)1-"dl+3SA {\\,/F\\,/F3SA4! DD~DJJ

DI\\$$))!,!T\\":(9(9:
!T\\"Z.FD4E4EF

JU;\\$$Ra(!T\\":(9(9:
!T\\"Q
]"3It7H7HI

JU;r*   c                 H   | j                   j                  }|j                  }|j                         } ||j                  |j
                  d d |f   fi |}| j                  r,|j                  | j                   j                  |   d      }|S |j                  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    ||!!..'')	djj$))AzM":HiH  ''t||':':<'H"%  'C 
 ''#'&C
r*   c                 B   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"                  }|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kD  r1|t        t        |||
j.                  z               z  }|
j.                  }t        |
t        j                        rt0        st2        nd }ddg}|D ]  }|dk7  r0t        | j                  j                  t        j                        r y |rt'        j4                  ||z         }| j                  j6                  d   }| j                  j6                  d   j9                         }| j:                  /t'        j<                  || j:                           || j:                  <   |||<   t?        |      5  |
jA                  |||d	      }d d d        |dk7  rt?        |      5  | j                  j                  jC                  |||d	      }d d d        nt?        |      5  t        | j                  j                  t        j                        r|
jA                         }n|
jA                  |
      }d d d        |dk7  r&| j                  j                  jC                  |
      }|dk(  r| j                  }t-        d      rtE        jF                  j6                  d   |j6                  d          d|j6                  v r|jF                  j6                  d   }tI        ||j6                  d   dd       tE        |j6                  d   |j6                  d          tI        |j6                  d   |j6                  d   dd       tI        j                   |   |j                   d       tI        |j                   |   dd       tI        |jJ                  |   |jJ                  d       tI        |jJ                  |   dd       |jL                  |   }tI        ||jL                  d       tN        stP        r|jR                  |   }n|jR                  |   }tI        ||jR                  dd       t-        |d      r#tI        |jT                  |jT                  dd       |j                  j                  jW                  d      }	 |jX                  |	fi | jZ                  } |jX                  |	|   fi | jZ                  }tI        ||dd       |j                  j                  d d }	t]        | di       } |jX                  |	fi |} |jX                  |	d d |f   fi |}tI        ||dd        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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   sc   dll((2663KK45)$,,*<*<+-66266266266*J L L 0% 2 2 7 7 = =a @AB
E$,,"5"5";";A">?@
 	 A1Q	  E$,,"5"5";";A">?@ ||!!..'')	__dii34djj"2	2% 2 2 7 7 = =a @AB
E$,,"4"4"9"9"?"?"BCD!3	"s{{QDvv/C!DEELkkG 0:#rvv/FO_*fj %(	! U	KH ;&Jt||7I7I79vv-?!xx(8922;?\\..~>CCE''3/1vvb9M9M6N/OBt++,-/\*!(+ E--x;G5;! . EDE {*%h/ M#||1155xCE=C!  6  MM M
 "(+ E"4<<#5#5@"113"1181DE {*<<--1181DD;&|| t^,T55BB;O!..{;=!T%6%6622??OC#C$($5$5n$E).U< !!2!2;!?!%!2!2;!?A#D$5$5n$E$($5$5n$E).U<
 DKK5t{{NDKK
3QUCDHH\2DHH4HDHHZ0!%@\\,/FFDLLt<  ;l3l3FDLLt%HtW%

DJJTN%%a(B%b>D,=,=>J%bnJ8I8IJJJ
EJ!$B4!126D%b1D1J%bJ&7@4@JJ
EJkU	K"E EM M
E Es%   9]:'*^%A^:^	^	^	N)__name__
__module____qualname__classmethodr)   rQ   rV   rZ   r]   r   ru   r    r*   r(   r   r   &   s:    # #74.'.?<B@Kr*   r   c                       e Zd Zd Zy)TestGenericOLSc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y Nr   r-   r   )r    r   r   r   sumr   rs   r   rn   r   r9   rF   r'   ys      r(   setup_methodzTestGenericOLS.setup_method,  a    II
		vEE!Hryyqwwqz22vva+//1r*   Nr   r   r   r   r   r*   r(   r   r   *      2r*   r   c                       e Zd Zd Zd Zy)TestGenericOLSOneExogc                    | j                   d d df   }t        j                  j                  d       |t        j                  j	                  |j
                  d         z   }t        j                  ||      j                         | _	        y )Nr-   r   r   )
r    r   r   r   r   rs   r   rn   r   r9   r   s      r(   r   z"TestGenericOLSOneExog.setup_method7  s\    IIadO
		v		
++vva|'')r*   c                 .    t        j                  d       y )Nz/Override since cannot remove the only regressor)rk   rl   rU   s    r(   r   z+TestGenericOLSOneExog.test_zero_constrained>  s    EFr*   N)r   r   r   r   r   r   r*   r(   r   r   4  s    *r*   r   c                       e Zd Zd Zy)TestGenericWLSc           	      x   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                   t        j                  t        |                  j                         | _        y )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  so    II
		vEE!Hryyqwwqz22vvaBGGCFODHHJr*   Nr   r   r*   r(   r   r   D  s    Kr*   r   c                       e Zd Zd Zy)TestGenericPoissonc                    | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                         z
              }t        j                  ||      }t        j                  g d      }|j                  |dd      | _        y )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    II
		v))##BFF1558affh+>$?@

7A&xx PQyyl6&' ! )r*   Nr   r   r*   r(   r   r   N  s    	)r*   r   c                       e Zd Zd Zy)TestGenericPoissonOffsetc                    | j                   }|j                  d   }t        j                  j	                  d       t        j                  j                  t        j                  |j                  d      |j                         z
              }t        j                  ||dt        j                  |      z  t        j                  |            }t        j                  g d      }|j                  |dd      | _        t        dt        j                  d	      z  t        j                  d	      
      | _        t        dd
      | _        y )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    IIwwqz
		v))##BFF1558affh+>$?@

7AdRWWT].B$&GGDM3 xx PQyyl6&' ! ) #D2771:,=bggajQ !A6r*   Nr   r   r*   r(   r   r   \  s    7r*   r   c                       e Zd Zd Zy)TestGenericNegativeBinomialc                    t         j                  j                  d       t        j                  j
                  j                         }t        j                  |j                        |_        t        j                  |j                        |_	        t        j                  |j                  d      }t        j                  |j                  |      }t        j                  g d      }|j                  |dd      | _        d| _        y )	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{{""'')JJtyy)	ZZ

+
tyy%8!!$**d3xx !H I wwLq#wN!r*   Nr   r   r*   r(   r   r   o  s    "r*   r   c                       e Zd Zd Zy)TestGenericLogitc                 B   | j                   }|j                  d   }t        j                  j	                  d       t        j                  j                  |      ddt        j                  |j                  d      |j                         z
        z   z  k  j                  t              }t        j                  ||      }t        j                  g d      }t        j                  t         d      5  |j#                  |ddd	
      | _        d d d        y # 1 sw Y   y xY w)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    IIwwqz
		v%q266!%%(QVVX:M3N/N(OOWWX[\"xx TU\\- DF 	F 99,,2 % FDL	F 	F 	Fs   1DDNr   r   r*   r(   r   r     s    Fr*   r   c                       e Zd Zd Zy)TestGenericRLMc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y 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y)TestGenericGLMc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y 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y)TestGenericGLMPoissonOffsetc           	         | j                   }|j                  d   }t        j                  j	                  d       t        j                  j                  t        j                  |j                  d      |j                         z
              }t        j                  ||t        j                  j                         dt        j                  |      z  t        j                  |            }t        j                  g d      }|j                  |dd      | _        t#        dt        j                  d	      z  t        j                  d	      
      | _        t#        dd
      | _        y )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    IIwwqz
		v))##BFF1558affh+>$?@w"++*=*=*?"RWWT]2 "/ xx PQyyl6&' ! ) #D2771:,=bggajQ !A6r*   Nr   r   r*   r(   r   r     s    7r*   r   c                       e Zd Zd Zy)TestGenericGEEPoissonc                 t   | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                         z
              }t        j                  j                  dd|j                  d         }t        j                  g d      }t        j                  j                         }t        j                  j                         }t        j                   || j                   |||      j#                  |      | _        y )	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    II
		v))##BFF1558affh+>$?@""1aaggaj"9xx 01]]'')$$&vvgtyy&+-//2ss/M 	r*   Nr   r   r*   r(   r   r     s    Nr*   r   c                       e Zd Zd Zy)TestGenericGEEPoissonNaivec                    | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                  d      j                  d      z
              }t        j                  j                  dd|j                  d         }t        j                  g d      }t        j                  j                         }t        j                  j                         }t        j                   || j                   |||      j#                  |d	      | _        y )
Nr   r-   r   r   r   r   r   naiver`   r   r  r  s          r(   r   z'TestGenericGEEPoissonNaive.setup_method  s    II
		v))##BFF1558aeeAhmmA6F+F$GH""1aaggaj"9xx 01]]'')$$&vvgtyy&+-//2s<C 03 0E 	r*   Nr   r   r*   r(   r  r    s    Er*   r  c                       e Zd Zd Zy)TestGenericGEEPoissonBCc                    | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                  d      j                  d      z
              }t        j                  j                  dd|j                  d         }t        j                  g d      }t        j                  j                         }t        j                  j                         }t        j                   || j                   |||      }|j#                  |d	      | _        y )
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    II
		v))##BFF1558aeeAhmmA6F+F$GH""1aaggaj"9xx 01 ]]'')$$&ffWdii2NwwL(6  8r*   Nr   r   r*   r(   r  r    s    8r*   r  c                   (    e Zd Zed        Zd Zd Zy)CheckAnovaMixinc                     dd l mc mc m} |j	                         }|j                          |j                  j                  g d      | _        | j                          y )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  s@    ::!99>>'*r*   c           
         | j                   }|j                  dddgd      }t        j                  t	        |j
                              }|d   }|ddg   }|d	   }|d
dg   }|dd }|g d   }	t        |||||||	|g       y )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    hh  U:xBXae fffS_%a&1Q%j!fAa5zq8^
R'3T:x!PQr*   c                     | j                   }|j                  dd      }t        j                  t	        |j
                              }|ddg   }|ddg   }t        ||||g       y )NT)r!  r#  r   r   r   rg   r&  )rF   rG   r)  r:   r+  r-  s         r(   test_categorieszCheckAnovaMixin.test_categories  s`    hh  T$ ?ffS_%1Q%jAa5zR#t-r*   N)r   r   r   r   r)   r0  r2  r   r*   r(   r  r    s     R.r*   r  c                    t        |      D ]L  \  }}| j                  |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                  s*t        |j                  |   | j                         O |j                  }| j                  r5t        |j                   d       t        |d   d       t        |d   d       n4t        |j                   d       t        |d   d       t        |d   d	       |j#                          y )
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(    sp   *% 71]]1T]*1-r||<1-ryy966Q;QWWQZARXX__QT*B/Q6

1ryy1R&&q)2.99Q67 I
yyR__c*Yq\3'Yq\5)R__f-Yq\6*Yq\8, r*   c                   "    e Zd Zed        Zd Zy)TestWaldAnovaOLSc                 ^    t        d| j                        }|j                  d      | _        y N0np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)F)rC   r   r   r   rG   r%   r   s     r(   r  zTestWaldAnovaOLS.initialize5  %    DchhO'''&r*   c                 >   | j                   j                  j                  }| j                   j                  j                  j                  }t        j                  |      }t        j                  ||      j                         }|j                  dddgd      }t        j                  t        |j                              }|D cg c]  }| }}|dd }|g d   }	t        ||||	|gz          d	gt        |      z  d
dgz   }
t!        |j"                  |
       y c c}w )NFr  r  Tr   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:   rowc_singler.  r/  r;  s              r(   test_noformulazTestWaldAnovaOLS.test_noformula:  s     $$xx~~"",,||D!ffUD!%%'  U0:H/E(, ! . ffS_%#&'CC''q8^
RZ,B!BC s8},1v5R&&7 (s   	DN)r   r   r   r   r  rR  r   r*   r(   rE  rE  3  s    ' '8r*   rE  c                   "    e Zd Zed        Zd Zy)TestWaldAnovaOLSFc                 Z    t        d| j                        }|j                         | _        y )NrH  rI  rJ  s     r(   r  zTestWaldAnovaOLSF.initializeT  s     DchhO'')r*   c                    | j                   d d j                         }t        j                  |j                  d<   | j
                  j                  |      }| j
                  j                  |dd        }t        |j                  |j                         t        |j                  dd  |       t        |j                  d   t        j                         y )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    YYr]!XX%%b)
XX%%bf-
:++RXX6JOOAB/<Z&&q)2662r*   N)r   r   r   r   r  rZ  r   r*   r(   rT  rT  R  s     3r*   rT  c                       e Zd Zed        Zy)TestWaldAnovaGLMc                 ^    t        d| j                        }|j                  d      | _        y 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y)TestWaldAnovaPoissonc                 v    ddl m} |j                  d| j                        }|j	                  d      | _        y )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  s.    ?""#KSXXV''5')r*   Nr^  r   r*   r(   r`  r`  l  s    * *r*   r`  c                       e Zd Zed        Zy)TestWaldAnovaNegBinc                 z    ddl m} d}|j                  || j                  d      }|j	                         | _        y )Nr   r   rc  nb2loglike_methodrd  r   re  r   r   rG   r%   r   formular   s       r(   r  zTestWaldAnovaNegBin.initializex  s8    H:++GSXX;@ , B'')r*   Nr^  r   r*   r(   rg  rg  v  s     r*   rg  c                       e Zd Zed        Zy)TestWaldAnovaNegBin1c                 ~    ddl m} d}|j                  || j                  d      }|j	                  d      | _        y )Nr   ri  rc  nb1rk  r   r   rm  rn  s       r(   r  zTestWaldAnovaNegBin1.initialize  s=    H:++GSXX;@ , B''5')r*   Nr^  r   r*   r(   rq  rq    s    * *r*   rq  c                       e Zd Zd Zy)CheckPairwisec                 "   | j                   }|j                  | j                        }|j                  | j                        }|j
                  }t        |j                  d d d df   j                  |j                         j                         y )Nr$  )
rG   r=   constraintst_test_pairwise	term_nameresult_framer   rX  rE   rB   )rF   rG   rI   pwpw_frames        r(   test_defaultzCheckPairwise.test_default  so    hhZZ(()  0??a!e,33((*11	3r*   N)r   r   r   r}  r   r*   r(   ru  ru    s    3r*   ru  c                   "    e Zd Zed        Zd Zy)TestTTestPairwiseOLSc                    ddl m} dd lmc mc m} |j                         }|j                          |j                  j                  g d      | _         |d| j                        }|j                         | _        d| _        g d| _        y )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   ry  rw  r%   r   r  r  r   s        r(   r)   z TestTTestPairwiseOLS.setup_class  g    /::!99>>'*<chhG'')#>r*   c                    | j                   j                  | j                  ddj                               }| j                   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                     y )NhommelzA B C)r   factor_labelsr   )r   r0      rb   r2   r   Tr   )FTF)zB-AzC-AzC-B)dtype)rG   rx  ry  splitr   rz  rX  rE   r   rY  r   r   object)rF   pw1pw2s      r(   
test_alphazTestTTestPairwiseOLS.test_alpha  s#   hh&&t~~h5<]]_ ' Fhh&&t~~h-1 ' 3((--a!e4;;((--a!e4;;%	IS%%**1b5188VAX	S%%**1b5188)	+ 	S%%++22XX36B	Dr*   N)r   r   r   r   r)   r  r   r*   r(   r  r    s    > >Dr*   r  c                       e Zd Zed        Zy)TestTTestPairwiseOLS2c                    ddl m} dd lmc mc m} |j                         }|j                          |j                  j                  g d      | _         |d| j                        }|j                         | _        d| _        g d| _        y )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y)TestTTestPairwiseOLS3c                    ddl m} dd lmc mc m} |j                         }|j                          |j                  j                  g d      | _         |d| j                        }|j                         | _        d| _        g d| _        y )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  sg    /::!99>>'*@#((K'')#:r*   Nr  r   r*   r(   r  r    s    : :r*   r  c                       e Zd Zed        Zy)TestTTestPairwiseOLS4c                    ddl m} dd lmc mc m} |j                         }|j                          |j                  j                  g d      | _         |d| j                        }|j                         | _        d| _        g d| _        y )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  sg    /::!99>>'*JCHHU'')1<r*   Nr  r   r*   r(   r  r    s    < <r*   r  c                       e Zd Zed        Zy)TestTTestPairwisePoissonc                 2   ddl m} dd lmc mc m} |j                         }|j                          |j                  j                  g d      | _        |j                  d| j                        }|j                  d      | _        d| _        g d| _        y )	Nr   rb  r  zDays ~ C(Duration) + C(Weight)r   r   r  r  )rd  r   r  r  r  r  r  r)   r   r  re  r   rG   ry  rw  )r%   r   r  r  r   s        r(   r)   z$TestTTestPairwisePoisson.setup_class  sr    ?::!99>>'*""#CSXX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   pandasrN  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  rT  r\  r`  rg  rq  ru  r  r  r  r  r  r   r*   r(   <module>r     s  
 3 M 
 7 0      , ( ( C~K ~KH2& 2-  K& K)* )70 7&""3 ""F( F"2& 22& 27"3 7(N- N"E!2 E&8/ 8,!. !.H88 8>3 3$' '*? *	/ 		*? 	*
3 
3D= DD>M >&:M :&<M <&>} >r*   