
    !gI                        d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	  ed      Z
e
j                  d         e	e
dd	      j                  e      Z
 G d
 d      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y)(    )StringION)anova_lm)ols)read_csva  Days      Duration Weight ID
    0.0      1      1      1
    2.0      1      1      2
    1.0      1      1      3
    3.0      1      1      4
    0.0      1      1      5
    2.0      1      1      6
    0.0      1      1      7
    5.0      1      1      8
    6.0      1      1      9
    8.0      1      1     10
    2.0      1      2      1
    4.0      1      2      2
    7.0      1      2      3
   12.0      1      2      4
   15.0      1      2      5
    4.0      1      2      6
    3.0      1      2      7
    1.0      1      2      8
    5.0      1      2      9
   20.0      1      2     10
   15.0      1      3      1
   10.0      1      3      2
    8.0      1      3      3
    5.0      1      3      4
   25.0      1      3      5
   16.0      1      3      6
    7.0      1      3      7
   30.0      1      3      8
    3.0      1      3      9
   27.0      1      3     10
    0.0      2      1      1
    1.0      2      1      2
    1.0      2      1      3
    0.0      2      1      4
    4.0      2      1      5
    2.0      2      1      6
    7.0      2      1      7
    4.0      2      1      8
    0.0      2      1      9
    3.0      2      1     10
    5.0      2      2      1
    3.0      2      2      2
    2.0      2      2      3
    0.0      2      2      4
    1.0      2      2      5
    1.0      2      2      6
    3.0      2      2      7
    6.0      2      2      8
    7.0      2      2      9
    9.0      2      2     10
   10.0      2      3      1
    8.0      2      3      2
   12.0      2      3      3
    3.0      2      3      4
    7.0      2      3      5
   15.0      2      3      6
    4.0      2      3      7
    9.0      2      3      8
    6.0      2      3      9
    1.0      2      3     10
z\s+python)sepenginec                   "    e Zd Zed        Zd Zy)TestAnovaLMc                 n    t         | _        t        d| j                        j                         | _        y )Nz(np.log(Days+1) ~ C(Duration) * C(Weight)datakidney_tabler   r   fit	kidney_lmclss    _/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_anova.pysetup_classzTestAnovaLM.setup_classL   s+      F XX''*su 	    c                    t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  dddt         j                  g      }t        j                  ddd	t         j                  g      }t        | j                        }t         j
                  j                  |d
   j                  |       t         j
                  j                  |d   j                  |d       t         j
                  j                  |d   j                  |d       t         j
                  j                  |d   j                  |       y )N)      r   6   )p@ v0@盯HPW?46<<@)r    v @盯HPW?N-?g5\n@x/@$}?gF<G?r%t`>Ի?dfsum_sq   FPR(>F)	nparraynanr   r   testingassert_equalvaluesassert_almost_equalselfDfr(   mean_sqf_valuepr_fresultss          r   test_resultszTestAnovaLM.test_resultsT   s    XXm$BC((DE((Hh	266BCxxL)RVVDE4>>*


 4 4b9


&&wx'8'?'?K


&&ws|':':GQG


&&wx'8'?'?Fr   N__name__
__module____qualname__classmethodr   r;    r   r   r   r   K       - -Gr   r   c                   "    e Zd Zed        Zd Zy)TestAnovaLMNoconstantc                 n    t         | _        t        d| j                        j                         | _        y )Nz,np.log(Days+1) ~ C(Duration) * C(Weight) - 1r   r   r   s    r   r   z!TestAnovaLMNoconstant.setup_classc   s+      J XX''*su 	r   c                    t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  dddt         j                  g      }t        j                  ddd	t         j                  g      }t        | j                        }t         j
                  j                  |d
   j                  |       t         j
                  j                  |d   j                  |d       t         j
                  j                  |d   j                  |d       t         j
                  j                  |d   j                  |       y )N)r   r   r   r   )gZc@r   r   r   )gTgZS@r    r!   r"   gn9/xb@r#   r$   gA#ac;r%   r&   r'   r(   r)   r*   r+   r,   r4   s          r   r;   z"TestAnovaLMNoconstant.test_resultsk   s    XXm$EF((FG((K9bffEFxx|YGH4>>*


 4 4b9


&&wx'8'?'?K


&&ws|':':GQG


&&wx'8'?'?Fr   Nr<   rA   r   r   rD   rD   b   rB   r   rD   c                       e Zd Zd Zy)TestAnovaLMComparec                    t        d| j                        j                         }t        || j                        }t        j                  ddg      }t        j                  ddg      }t        j                  ddg      }t        j                  t
        j                  dg      }t        j                  t
        j                  d	g      }t        j                  t
        j                  d
g      }t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |d       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       y )Nz(np.log(Days+1) ~ C(Duration) + C(Weight)8   r   0=@r   r   r   r   r$   r&   df_residssrr)   df_diffss_diffr*   Pr(>F)r   r   r   r   r   r-   r.   r/   r0   r1   r2   r3   	r5   	new_modelr:   Res_DfRSSr6   	Sum_of_Sqr*   PrFs	            r   r;   zTestAnovaLMCompare.test_results   s   B		##&35 	9dnn5  hhw  XX  HHVVY 	 HHVVY  hhVVY  	


 3 : :FC


&&wu~'<'<c1E


&&wy'9'@'@"E


&&wy'9'@'@)L


&&ws|':':A>


&&wx'8'?'?Er   Nr=   r>   r?   r;   rA   r   r   rH   rH          Fr   rH   c                       e Zd Zd Zy)TestAnovaLMCompareNoconstantc                    t        d| j                        j                         }t        || j                        }t        j                  ddg      }t        j                  ddg      }t        j                  ddg      }t        j                  t
        j                  dg      }t        j                  t
        j                  d	g      }t        j                  t
        j                  d
g      }t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |d       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       t
        j                  j                  |d   j                  |       y )Nz,np.log(Days+1) ~ C(Duration) + C(Weight) - 1rJ   r   rK   r   r   r   r   r$   r&   rL   rM   r)   rN   rO   r*   rP   rQ   rR   s	            r   r;   z)TestAnovaLMCompareNoconstant.test_results   s   F		##&35 	9dnn5  hhw  XX  HHVVY 	 HHVVY  hhVVY  	


 3 : :FC


&&wu~'<'<c1E


&&wy'9'@'@"E


&&wy'9'@'@)L


&&ws|':':A>


&&wx'8'?'?Er   NrX   rA   r   r   r[   r[      rY   r   r[   c                       e Zd Zd Zy)
TestAnova2c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |d      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr   r   r   0np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum))ggc%Y@9#J*@簻֛b?g\8;@r   r   r   3   g<i
@ٱׅ(@??g !P?]dʑ?/.?IItypr'   r(   r)   r*   r+   r   dropr   r   r-   r.   r/   r   r0   r1   r2   r3   r5   r   anova_iiSum_Sqr6   F_valuerW   r:   s           r   r;   zTestAnova2.test_results   s(   yy~~g&I $&&)ce 	    XX   ((xBFF  hhy"&&  8.


 4 4b9


&&wx'8'?'?K


&&ws|':':GQG


&&wx'8'?'?Er   NrX   rA   r   r   r^   r^          Fr   r^   c                       e Zd Zd Zy)TestAnova2Noconstantc                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |d      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   z4np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum) - 1)gw6HVc@rb   rc   rd   )r   r   r   rf   gCOoa@rg   rh   g_C>e;ri   rj   rk   rl   r'   r(   r)   r*   r+   rn   rp   s           r   r;   z!TestAnova2Noconstant.test_results   s(   yy~~g&M $&&)ce 	    XX   (((Irvv  hh<BFF  8.


 4 4b9


&&wx'8'?'?K


&&ws|':':GQG


&&wx'8'?'?Er   NrX   rA   r   r   rv   rv      rt   r   rv   c                       e Zd Zd Zy)TestAnova2HC0c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   g^Ib@gi<@gC8*@rc   rd   re   gY @gȘ+@督G?gqap?gǛG6>uDa?rk   hc0rm   robustr'   r*   r)   r+   rn   r5   r   rq   rr   r6   r*   rW   r:   s           r   r;   zTestAnova2HC0.test_results  s	   yy~~g&I $&&)ce 	    XX   HHw	266  hhy"&&  8e<


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   ry   ry         Fr   ry   c                       e Zd Zd Zy)TestAnova2HC1c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   re   gb@gzNzߨ(@珹|5Q?g"&$?g3/xw?twy?rk   hc1r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova2HC1.test_results.  s	   yy~~g&I $&&)ce 	    XX   HHxBFF  hhx  8e<


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   r   r   +  rt   r   r   c                       e Zd Zd Zy)TestAnova2HC2c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   re   gB@gtρ(@257?g{{ӏ?gv?)?rk   hc2r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova2HC2.test_resultsI  s	   yy~~g&I $&&)ce 	    XX   HHxBFF  hhy"&& 
 8e<


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   r   r   F  s    Fr   r   c                       e Zd Zd Zy)TestAnova2HC3c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  dddt        j                  g      }t	        j
                  dd	d
t        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   re   gz2@g%̴%@SF?gD?g}p
?玿5j?rk   hc3r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova2HC3.test_resultse  s	   yy~~g&I $&&)ce 	    XX   HHxBFF  hhy"&&  8e<


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   r   r   b  rt   r   r   c                       e Zd Zd Zy)
TestAnova3c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  ddddt        j                  g      }t	        j
                  d	d
ddt        j                  g      }t        |d      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   r   r   r   r   rf   gPn|q@gu=uw@gvOj(@rh   grOq;gm|)?gUx?rj   IIIrl   r'   r(   r)   r*   r+   rn   )r5   r   	anova_iiirr   r6   rs   rW   r:   s           r   r;   zTestAnova3.test_results  s,   yy~~g&J $&&)ce 	    XX   ((x9bff  hh:|Y  9%0


 4 4b9


&&wx'8'?'?K


&&ws|':':GQG


&&wx'8'?'?Er   NrX   rA   r   r   r   r   }  rt   r   r   c                       e Zd Zd Zy)TestAnova3HC0c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  ddddt        j                  g      }t	        j
                  d	d
ddt        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   r   g8EGrr@gG \@g(y+@r|   g7Q;g5C)?gуSo>r}   r   r~   r   r'   r*   r)   r+   rn   r5   r   r   rr   r6   r*   rW   r:   s           r   r;   zTestAnova3HC0.test_results     yy~~g&J $&&)ce 	    XX   HHx9bff  hh:|Y  9%>


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   r   r     r   r   r   c                       e Zd Zd Zy)TestAnova3HC1c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  ddddt        j                  g      }t	        j
                  d	d
ddt        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   r   g\Cp@g@߾|@gV؟(@r   guA;gQ ֗?g墼?r   r   r   r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova3HC1.test_results  s   yy~~g&J $&&)ce 	    XX   HHwBFF  hh*lHbff  9%>


 4 4b9


&&ws|':':AqA


&&wx'8'?'?Er   NrX   rA   r   r   r   r     rt   r   r   c                       e Zd Zd Zy)TestAnova3HC2c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  ddddt        j                  g      }t	        j
                  d	d
ddt        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   r   gH}8p@g xL@g"b(@r   g\<-;giD@K?g4L?r   r   r   r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova3HC2.test_results  r   r   NrX   rA   r   r   r   r     rt   r   r   c                       e Zd Zd Zy)TestAnova3HC3c                    | j                   j                  g d      }t        d|      j                         }t	        j
                  g d      }t	        j
                  g d      }t	        j
                  ddddt        j                  g      }t	        j
                  d	d
ddt        j                  g      }t        |dd      }t        j                  j                  |d   j                  |       t        j                  j                  |d   j                  |d       t        j                  j                  |d   j                  |       y )Nr`   ra   r{   r   g+eLm@g@gu%@r   g-f};gѩɠ?gU ?r   r   r   r   r'   r*   r)   r+   rn   r   s           r   r;   zTestAnova3HC3.test_results  r   r   NrX   rA   r   r   r   r     rt   r   r   )ior   numpyr-   statsmodels.stats.anovar   statsmodels.formula.apir   pandasr   r   seekastypeintr   rD   rH   r[   r^   rv   ry   r   r   r   r   r   r   r   r   rA   r   r   <module>r      s     , '  = =~   ! &BII#NG G.G GLF FBF; FBF F8F; FRFK F8FK F6FK F8FK F6F F6FK F8FK F6FK F6FK Fr   