
    M/Ph                     `    d dl Zd dlZd dlmZ d dlmZm	Z	 d dl
mZmZ d Zd Zd Zd Zd ZdS )	    N)BayesGaussMIMI)assert_allcloseassert_equalc                     t          j        dt           j        dgt           j        dt           j        gdt           j        dgt           j        dt           j        gg dg          } t          |           }t	          |j        d         t           j        d                    t	          |j        d         t           j        d                    d S )N         r   )r	   r
   r   )r   r
   )r   r	   )npasarraynanr   r   patternsr_)xbms     j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/imputation/tests/test_bayes_mi.pytest_patr      s    

QNRVQ$7!RVQVQ'4 	5 	5A	aBBKNBE$K000BKNBE$K00000    c                  v   t           j                            d           t           j                            d          } d}|| d d df         z  t          j        d|dz  z
            | d d df         z  z   | d d df<   | d d dfxx         dz  cc<   | d d dfxx         dz  cc<   | d d dfxx         dz  cc<   | d d dfxx         dz  cc<   t           j                            | j        d                   }t           j        | |dk    df<   t           j                            | j        d                   }t           j        | |dk    df<   t          |           }t          d	          D ]}|	                                 d}d}d}d}t          d	          D ]h}|	                                 ||j
        z  }||j        z  }||j        
                    d          z  }|t          j        |j        j                  z  }i|d	z  }|d	z  }|d	z  }|d	z  }t          |t           j        d
         d           t          |t           j        d
         d           t          |t          j        dd|z  gd|z  dgg          d           t          |t          j        dd|z  gd|z  dgg          d           d S )Nij  )  r
   size      ?r   r   r
   r	     )r   g?      	   )r   randomseednormalsqrtshaper   r   rangeupdatemeancovdataTr   r   r   )	r   rur   kr&   r'   dmeandcovs	            r   test_2x2r/      s    INN4
	i((AA!!!Q$i"'!AqD&//!AAAqD'11AaaadGaaadGGGqLGGGaaadGGGqLGGGaaadGGGqLGGGaaadGGGqLGGG 		agaj))A&Aa!eQhK
	agaj))A&Aa!eQhK	aB 3ZZ  
		 D
CED3ZZ " "
		rva rwy!!!CKD3JC	SLECKDD"%,,,,E25<---Ca1X!Qx$8993???D"*q!A#h1a%9::C@@@@@r   c                  2   t           j                            d           t           j                            d          } t           j        | g ddf<   t           j        | g ddf<   t           j        | g dd	f<   t           j        | g d
df<   d }dD ]}t           j                            d           t          |                                           }t          |t          j	        |d          }|
                                }|                                 t          |j        t           j        d         dd           t          j        g dg dg dg          }t          |                                |dd           t#          j        |           } d S )N     r   r   r   r	   r   r   r   r   r	   r   r
         r
   r7      c   r	   c                     t          |           t          j        u r| d d df         | d d dd f         fS | j        d d df         j        | j        d d dd f         j        fS Nr   r   )typer   ndarrayilocvaluesr   s    r   model_args_fnztest_MI.<locals>.model_args_fnH   so     77bj  aaadGQqqq!""uX&&F111a4L'122)=>>r   )r   r   &	  )burng"؟agO+cdg0@˹?      ?g,Hz!q?Z~3?ftY6rI   g-xp?ō)?rJ   rL   gpt?333333?)r   r   r    r!   r   r   copyr   smOLSfitsummaryr   paramsr   r   
cov_paramspd	DataFrame)r   rC   jimpmir*   cs          r   test_MIr\   ?   s   INN3
	h''AfAiiilOfAiiilOAkkk1nAlllAo? ? ?   
	t16688$$RV]333FFHH			 	"%0#237	< 	< 	< J===<<<===? @ @ 	3222 LOO# r   c                     t           j                            d           t           j                            d          } | d d dfxx         d| d d df         z  z  cc<   dt          j        d          z  dt          j        d          z  g}ddg}t          d	          D ]I\  }}|                                 }||d d df         z  t          j        d|d
z  z
            |d d d
f         z  z   |d d d
f<   t           j        |dddf<   d }t           j                            d           t          |                                          }t          |t          j        |dd          }|                                }t          j        |j        d         ||         z
            ||         z  }	|	dk     sJ t          j        |j        d         ||         z
            }	|	dk     sJ Kd S )Nr1   )r   r	   r   r   r   r   r   r   )r   gH.?r
   c                 2    | d d df         | d d df         fS r=    rB   s    r   
model_argsz test_MI_stat.<locals>.model_argsz   s'     aaadGQqqq!tW%%r   rD   d   
   )nrepskipgQ?g?)r   r   r    r!   r"   	enumeraterO   r   r   r   rP   rQ   rR   absbsefmi)
zexprh   rX   r*   r   r`   rY   rZ   ds
             r   test_MI_statrl   d   s    INN3
	i((AaaadGGGs1QQQT7{GGG RWS\\>1RWT]]?
+C(C+&&  1FFHHAaaadG)bga!Q$h//!!!Q$77!!!Q$f!C%(	& 	& 	&
 		t16688$$RVZc;;;FFHH F158c!f$%%A.4xxxx F158c!f$%%4xxxxx- r   c                     t           j                            d           t           j                            d          } t           j        | g ddf<   t           j        | g ddf<   t           j        | g dd	f<   t           j        | g d
df<   t          j        | d d df         | d d df         | d d d	f         | d d df         d          }d}d }t           j                            d           t          |                                          }t          |t          j        |d|          }d }|                    |          }|                                 t          |j        t           j        d         dd           t          j        g dg dg dg          }t          |                                |dd           t'          t)          |j                  d           d S )Nr1   r2   r   r4   r   r5   r   r6   r
   r9   r	   )yx1x2x3zy ~ 0 + x1 + x2 + x3c                 
    d| iS )Nr(   r_   rB   s    r   model_kwds_fnz&test_mi_formula.<locals>.model_kwds_fn   s    {r   rD   )formularE   rs   c                     | S )Nr_   rB   s    r   <lambda>z!test_mi_formula.<locals>.<lambda>   s    1 r   )
results_cbrF   rG   rH   rK   rM   rN      )r   r   r    r!   r   rV   rW   r   rO   r   rP   rQ   rR   rS   r   rT   r   r   rU   r   lenresults)	r   dffmlrs   rY   rZ   rw   r*   r[   s	            r   test_mi_formular}      s   INN3
	h''AfAiiilOfAiiilOAkkk1nAlllAo	AaaadG1QQQT7qqq!tWAaaadG5 5 
6 
6B
 C   INN4
rwwyy
!
!C	C1'
) 
) 
)B J
*%%AIIKKK AHbe0237< < < 	
999888999; 	< 	<A ALLNNAsA...QY$$$$$r   )numpyr   pandasrV   statsmodels.apiapirP   statsmodels.imputation.bayes_mir   r   numpy.testingr   r   r   r/   r\   rl   r}   r_   r   r   <module>r      s                  < < < < < < < < 7 7 7 7 7 7 7 71 1 1+A +A +A\" " "J& & &R"% "% "% "% "%r   