
    !g                         d dl Zd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl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y)    N)GLM)families)links)GEE)Independence)assert_allclosec                       e Zd Zd Zd Zy)CheckGEEGLMc                     | j                   }| j                  }t        |j                  j                  |j                  j                  dd       y Ngư>g|=)rtolatol)result1result2r   paramsvaluesselfres1res2s      b/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/genmod/tests/test_gee_glm.py
test_basiczCheckGEEGLM.test_basic   s9    ||||**DKK,>,>!	/    c                    | j                   }| j                  }t        |j                  |j                  dd       t        |j                  |j                  dd       t        |j
                  |j
                  dd       t        |j                  |j                  dd       t        |j                  |j                  dd       y r   )r   r   r   resid_responseresid_pearsonresid_devianceresid_anscomberesid_workingr   s      r   
test_residzCheckGEEGLM.test_resid   s    ||||++T-@-@!	/**D,>,>!	/++T-@-@!	/++T-@-@!%E	3**D,>,>!	/r   N)__name__
__module____qualname__r   r     r   r   r
   r
      s    //r   r
   c                       e Zd Zed        Zy)TestCompareLogitc                    t               }t        j                         }t        j                  j                  d       dt        j                  j                  d      dk  z  }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  ddd      }t        j                  ||||d      }t        j                  d||||	      }	|	j                         | _        t        j                  d||
      }
|
j                  d      | _        y N    d   sizer      YX1X2X3Y ~ X1 + X2 + X3family
cov_structdatar6   Fdisp)r   r   Binomialnprandomseednormalrandintpd	DataFramer   from_formulafitr   r   r   clsvsr6   r0   r1   r2   r3   groupsDmod1mod2s              r   setup_classzTestCompareLogit.setup_class(   s   ^""$
		v!!s!+a/0YY3'YY3'YY3'""1ac"2LLq"B?@ 2FA#)b:hhj 26JhhEh*r   Nr!   r"   r#   classmethodrM   r$   r   r   r&   r&   &       + +r   r&   c                       e Zd Zed        Zy)TestComparePoissonc                    t               }t        j                         }t        j                  j                  d       t        j                  dt        j                  j                  d      z         }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  ddd      }t        j                  ||||d      }t        j                  d||||	      }	|	j                         | _        t        j                  d||
      }
|
j                  d      | _        y r(   )r   r   Poissonr=   r>   r?   expr@   rA   rB   rC   r   rD   rE   r   r   r   rF   s              r   rM   zTestComparePoisson.setup_class?   s   ^!!#
		vFF1ryy''S'112YY3'YY3'YY3'""1ac"2LLq"B?@ 2FA#)b:hhj 26JhhEh*r   NrN   r$   r   r   rR   rR   =   rP   r   rR   c                       e Zd Zed        Zy)TestCompareGaussianc                    t               }t        j                         }t        j                  j                  d       t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }t        j                  t        j                  d      t        j                  d            }t        j                  ||||d      }t        j                  d||||      }	|	j                         | _        t!        j                  d|	      j                         | _        y )
Nr)   r+   r,         r/   r4   r5   )r9   )r   r   Gaussianr=   r>   r?   r@   kronarangeonesrB   rC   r   rD   rE   r   r   r   )
rG   rH   r6   r0   r1   r2   r3   rI   rJ   mds
             r   rM   zTestCompareGaussian.setup_classV   s    ^""$
		vII#&YY3'YY3'YY3'2
3LLq"B?@0&!%+<ffh&&'9BFFHr   NrN   r$   r   r   rW   rW   T   s    I Ir   rW   c                       e Zd Zed        Zy)TestCompareGammac                    t               }t        j                  t        j                               }t
        j                  j                  d       t        j                  dt
        j                  j                  d      z         }t
        j                  j                  d      }t
        j                  j                  d      }t
        j                  j                  d      }t
        j                  j                  ddd      }t        j                  ||||d      }t        j                  d	||||
      }	|	j                         | _        t#        j                  d	||      }
|
j                  d      | _        y )N)linkr)   g?r+   r,   r   r.   r/   r4   r5   r8   Fr:   )r   r   Gammar   Logr=   r>   r?   rU   r@   rA   rB   rC   r   rD   rE   r   r   r   rF   s              r   rM   zTestCompareGamma.setup_classm   s    ^UYY[1
		vFF3))s)334YY3'YY3'YY3'""1ac"2LLq"B?@ 2FA'-">hhj 26JhhEh*r   NrN   r$   r   r   ra   ra   k   s    + +r   ra   )numpyr=   pandasrB   +statsmodels.genmod.generalized_linear_modelr   statsmodels.genmodr   statsmodels.genmod.familiesr   3statsmodels.genmod.generalized_estimating_equationsr   statsmodels.genmod.cov_structr   numpy.testingr   r
   r&   rR   rW   ra   r$   r   r   <module>rn      sY      ; ' - C 6 )/ /2+{ +.+ +.I+ I.+{ +r   