
    M/Ph                         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dS )    N)GLM)families)links)GEE)Independence)assert_allclosec                       e Zd Zd Zd ZdS )CheckGEEGLMc                 p    | j         }| j        }t          |j        j        |j        j        dd           d S Ngư>g|=)rtolatol)result1result2r   paramsvaluesselfres1res2s      e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/genmod/tests/test_gee_glm.py
test_basiczCheckGEEGLM.test_basic   sD    ||*DK,>!	/ 	/ 	/ 	/ 	/ 	/    c                 D   | 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           d S 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 	3 	3 	3*D,>!	/ 	/ 	/ 	/ 	/ 	/r   N)__name__
__module____qualname__r   r     r   r   r
   r
      s2        / / // / / / /r   r
   c                   $    e Zd Zed             ZdS )TestCompareLogitc                    t                      }t          j                    }t          j                            d           dt          j                            d          dk     z  }t          j                            d          }t          j                            d          }t          j                            d          }t          j                            ddd          }t          j	        ||||d          }t          j        d||||	          }	|	                                | _        t          j        d||
          }
|
                    d          | _        d S 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(   s1   ^^"$$
	v!!s!++a/0Y3''Y3''Y3''""1ac"22Lq"B??@@ 2FA#)b: : :hhjj 26JJJhhEh**r   Nr!   r"   r#   classmethodrM   r$   r   r   r&   r&   &   -        + + [+ + +r   r&   c                   $    e Zd Zed             ZdS )TestComparePoissonc                    t                      }t          j                    }t          j                            d           t          j        dt          j                            d          z             }t          j                            d          }t          j                            d          }t          j                            d          }t          j                            ddd          }t          j
        ||||d          }t          j        d||||	          }	|	                                | _        t          j        d||
          }
|
                    d          | _        d S r(   )r   r   Poissonr=   r>   r?   expr@   rA   rB   rC   r   rD   rE   r   r   r   rF   s              r   rM   zTestComparePoisson.setup_class?   s6   ^^!##
	vF1ry''S'11122Y3''Y3''Y3''""1ac"22Lq"B??@@ 2FA#)b: : :hhjj 26JJJhhEh**r   NrN   r$   r   r   rR   rR   =   rP   r   rR   c                   $    e Zd Zed             ZdS )TestCompareGaussianc                    t                      }t          j                    }t          j                            d           t          j                            d          }t          j                            d          }t          j                            d          }t          j                            d          }t          j        t          j        d          t          j	        d                    }t          j        ||||d          }t          j        d||||          }	|	                                | _        t!          j        d|	                                          | _        d S )
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I#&&Y3''Y3''Y3''2

33Lq"B??@@0&!%+< < <ffhh&'9BBBFFHHr   NrN   r$   r   r   rW   rW   T   s2        I I [I I Ir   rW   c                   $    e Zd Zed             ZdS )TestCompareGammac                    t                      }t          j        t          j                              }t
          j                            d           t          j        dt
          j        	                    d          z             }t
          j        	                    d          }t
          j        	                    d          }t
          j        	                    d          }t
          j        
                    ddd          }t          j        ||||d          }t          j        d	||||
          }	|	                                | _        t#          j        d	||          }
|
                    d          | _        d S )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   sB    ^^UY[[111
	vF3))s)33344Y3''Y3''Y3''""1ac"22Lq"B??@@ 2FA'-"> > >hhjj 26JJ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      sk           ; ; ; ; ; ; ' ' ' ' ' ' - - - - - - C C C C C C 6 6 6 6 6 6 ) ) ) ) ) )/ / / / / / / /2+ + + + +{ + + +.+ + + + + + + +.I I I I I+ I I I.+ + + + +{ + + + + +r   