
    !gp                         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=y)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                   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      h/var/www/dash_apps/app1/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_tvalues2   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)r6   check_ftest_pvaluesr8   rE   s    r'   test_ftest_pvaluesz$CheckGenericMixin.test_ftest_pvaluesL       -r)   c                 B    t        j                  | j                         y rR   )r6   check_fittedr8   rT   s    r'   test_fittedzCheckGenericMixin.test_fittedO   s    &r)   c                 B    t        j                  | j                         y rR   )r6   check_predict_typesr8   rT   s    r'   test_predict_typesz$CheckGenericMixin.test_predict_typesR   rV   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^   绽|=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_constrainedU   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^   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    ||!!..'')	djj$))AzM":HiH  ''t||':':<'H"%  'C 
 ''#'&C
r)   c                 6   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        nd }ddg}|D ]  }|dk7  r0t        | j                  j                  t        j                        r y |rt'        j2                  ||z         }| j                  j4                  d   }| j                  j4                  d   j7                         }| j8                  /t'        j:                  || j8                           || j8                  <   |||<   t=        |      5  |
j?                  |||d	      }d d d        |dk7  rt=        |      5  | j                  j                  jA                  |||d	      }d d d        nt=        |      5  t        | j                  j                  t        j                        r|
j?                         }n|
j?                  |
      }d d d        |dk7  r&| j                  j                  jA                  |
      }|dk(  r| j                  }t-        d      rtC        jD                  j4                  d   |j4                  d          d|j4                  v r|jD                  j4                  d   }tG        ||j4                  d   dd       tC        |j4                  d   |j4                  d          tG        |j4                  d   |j4                  d   dd       tG        j                   |   |j                   d       tG        |j                   |   dd       tG        |jH                  |   |jH                  d       tG        |jH                  |   dd       |jJ                  |   }tG        ||jJ                  d       tL        stN        r|jP                  |   }n|jP                  |   }tG        ||jP                  dd       t-        |d      r#tG        |jR                  |jR                  dd       |j                  j                  jU                  d      }	 |jV                  |	fi | jX                  } |jV                  |	|   fi | jX                  }tG        ||dd       |j                  j                  d d }	t[        | di       } |jV                  |	fi |} |jV                  |	d d |f   fi |}tG        ||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_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_   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
 /9bff.E*4 %(	! 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%   3]4!*^A^4]>	^	^	N)__name__
__module____qualname__classmethodr(   rP   rU   rY   r\   r   rt   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   rr   r   rm   r   r8   rE   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   rr   r   rm   r   r8   r   s      r'   r   z"TestGenericOLSOneExog.setup_method3  s\    IIadO
		v		
++vva|'')r)   c                 .    t        j                  d       y )Nz/Override since cannot remove the only regressor)rj   rk   rT   s    r'   r   z+TestGenericOLSOneExog.test_zero_constrained:  s    EFr)   N)r   r   r   r   r   r   r)   r'   r   r   0  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   rr   r   rn   r    r:   r   r8   r   s      r'   r   zTestGenericWLS.setup_methodB  so    II
		vEE!Hryyqwwqz22vvaBGGCFODHHJr)   Nr   r   r)   r'   r   r   @  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   rx   r   Poissonarrayr   r8   )rE   r&   y_countrh   r_   s        r'   r   zTestGenericPoisson.setup_methodL  s    II
		v))##BFF1558affh+>$?@

7A&xx PQyyl6&' ! )r)   Nr   r   r)   r'   r   r   J  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   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_methodZ  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   X  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   r8   r#   )rE   datar   r   r_   s        r'   r   z(TestGenericNegativeBinomial.setup_methodm  s    
		v{{""'')JJtyy)	ZZ

+
tyy%8!!$**d3xx !H I wwLq#wN!r)   Nr   r   r)   r'   r   r   k  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   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    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   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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   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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   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    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   rx   randintrr   r   r   r   Independencer   r   ri   r   r8   rE   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   )rE   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   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    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   rf   r%  )rE   rF   r(  r9   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(   r/  r1  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   tablerD   	statisticr>   ndimrr   r   r?   df_constraintsrB   df_denomdf_resid	col_namesdistributionrA   )rF   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)rB   r   r   r   rF   r$   r   s     r'   r  zTestWaldAnovaOLS.initialize1  %    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   )rF   rh   r   r   	orig_exogpd	DataFramer   rm   r   r&  r   r9   r:   r;   r'  r   r:  )rE   r   r   rF   r(  r9   rowc_singler-  r.  r:  s              r'   test_noformulazTestWaldAnovaOLS.test_noformula6  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  rQ  r   r)   r'   rD  rD  /  s    ' '8r)   rD  c                   "    e Zd Zed        Zd Zy)TestWaldAnovaOLSFc                 Z    t        d| j                        }|j                         | _        y )NrG  rH  rI  s     r'   r  zTestWaldAnovaOLSF.initializeP  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 )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_missingU  s    YYr]!XX%%b)
XX%%bf-
:++RXX6JOOAB/<Z&&q)2662r)   N)r   r   r   r   r  rY  r   r)   r'   rS  rS  N  s     3r)   rS  c                       e Zd Zed        Zy)TestWaldAnovaGLMc                 ^    t        d| j                        }|j                  d      | _        y rF  )r   r   r   rF   rI  s     r'   r  zTestWaldAnovaGLM.initializeb  rJ  r)   Nr   r   r   r   r  r   r)   r'   r[  r[  `  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   rF   )r$   r   r   s      r'   r  zTestWaldAnovaPoisson.initializej  s.    ?""#KSXXV''5')r)   Nr]  r   r)   r'   r_  r_  h  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   rb  nb2loglike_methodrc  r   rd  r   r   rF   r$   r   formular   s       r'   r  zTestWaldAnovaNegBin.initializet  s8    H:++GSXX;@ , B'')r)   Nr]  r   r)   r'   rf  rf  r  s     r)   rf  c                       e Zd Zed        Zy)TestWaldAnovaNegBin1c                 ~    ddl m} d}|j                  || j                  d      }|j	                  d      | _        y )Nr   rh  rb  nb1rj  r   r   rl  rm  s       r'   r  zTestWaldAnovaNegBin1.initialize  s=    H:++GSXX;@ , B''5')r)   Nr]  r   r)   r'   rp  rp  ~  s    * *r)   rp  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#  )
rF   r<   constraintst_test_pairwise	term_nameresult_framer   rW  rD   rA   )rE   rF   rH   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'   rt  rt    s    3r)   rt  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   rF   rx  rv  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   r/      ra   r1   r   Tr   )FTF)zB-AzC-AzC-B)dtype)rF   rw  rx  splitr   ry  rW  rD   r   rX  r   r   object)rE   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   ra  r  zDays ~ C(Duration) + C(Weight)r   r   r  r  )rc  r   r  r  r  r  r  r(   r   r  rd  r   rF   rx  rv  )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.scipyr	   numpyr   numpy.testingr
   r   r   r   pandasrM  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'  rD  rS  r[  r_  rf  rp  rt  r~  r  r  r  r  r   r)   r'   <module>r     s  
 3 M 
 1      , ( ( C{K {KB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)   