
    'YHh                     n    d dl Zd dlZd dlZd dlmZmZmZm	Z	 d dl
mZmZ d dlmZ d Zd Zd Zd Zd	 Zy)
    N)SlicedInverseRegSAVEPHDCORE)assert_equalassert_allclose)approx_fprimec                  f   t         j                  j                  d       t         j                  j                  d      } d| d d df   z  t        j                  d      | d d df   z  z   | d d df<   d| d d df   z  t        j                  d      | d d d	f   z  z   | d d d	f<   t         j
                  d
   }t        j                  | |      }t        j                  |      }t         j                  j                  |      }t        d      D ]   }|dk(  rt        ||       }|j                         }n|dk(  rt        ||       }|j                  d      }n|dk(  r!t        || d      }|j                  d      }n|d	k(  rgt        j                  || d d df   | d d df   | d d df   | d d d	f   | d d df   d      }t        j                  d|      }|j                         }nE|dk(  rt!        ||       }|j                         }n#|dk(  rt!        ||       }|j                  d      }t#        t        j$                  j&                  d   |j&                  d   z        dkD  d       t        j(                  |j*                        }	t        j                  |	d d df   |      }
|
t        j                  t        j,                  |	d d df   dz              z  }
|
t        j                  t        j,                  |dz              z  }
t#        t        j$                  |
      dkD  d       # y )Ni  )i     size      ?r   g      ?         )r   r   r   r      d   )slice_nT)bc   )yx0x1x2x3x4zy ~ 0 + x0 + x1 + x2 + x3 + x4)datar   )residgffffff?)nprandomseednormalsqrtr_dotexppoissonranger   fitr   pd	DataFramefrom_formular   r   abseigsasarrayparamssum)xmatblprevr   methodmodelrsltdfr1   qs              a/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/regression/tests/test_dimred.pytest_poissonr=      s   IINN5 99*DT!Q$Z"''*"5QT
"BBDAJT!Q$Z"''*"5QT
"BBDAJ
A
&&q/C	B
		"A( &-Q;$Q-E99;Dq[DME99S9)Dq[DT*E99S9)Dq[A%)!Q$Z%)!Q$Z%)!Q$Z%)!Q$Z%)!Q$Z1 2B %118rCE99;Dq[4LE99;Dq[4LE9949(D 	RVVDIIaL499Q<781<dC DKK(FF6!Q$<#	RWWRVVF1a4L!O,--	RWWRVVAqD\""RVVAY%t,M&-    c                     t         j                  j                  d       d} d}t         j                  j                  | |f      }t        j                  |t        j
                  dd|            }|j                  d      }|d|dz  z   z  t         j                  j                  |       z   }t        ||      }|j                         }t        j                  |dz
  |f      }t        |dz
        D ]  }	g d||	|	|	d	z   f<    t        j                  t        d
      5  |j                  dd	|z        }d d d        t        d      D ]  }t         j                  j                  |df      }
t         j                  j!                  |
d      \  }
}}t#        |
j%                         |j&                  d      }|j)                  |
j%                               }t+        ||dd        y # 1 sw Y   xY w)N*m   
   r   r   r   r   )r   r   r   zSIR.fit_regularized did notmatchr   r   Hz>h㈵>g-C6?atolrtol)r    r!   r"   r#   r&   linspacer2   r   r*   zerosr)   pytestwarnsUserWarningfit_regularizedlinalgsvdr	   ravel_regularized_objective_regularized_gradr   )npr3   y1y2r   r8   _fmatipagngrs                r<   test_sir_regularized_numdiffr`   B   s    IINN5A
A99!Q(D	bkk"a+	,B	!B
a"a%i299+++33AQ%E		A 88QqS!HD1Q3Z $#Q!A#X$ 
k)F	G -!!!QtV,- 1X 6YYAq6*99==Q'Aq288:u'C'CTJ$$RXXZ0BT56	- -s    G((G1c            	         t         j                  j                  d       d} d}t         j                  j                  | |f      }t        j                  |d d ddf   t         j
                  d         t         j                  j                  |       z   }t        ||      }|j                         }t        j                  d|f      }d	d
g|dddf<   d	d
g|d	ddf<   |j                  d	d|z        }t        j                  |      }g d|dd |j                  d d df   }	|j                  d d ddf   }
d }t         |||	       |||
      kD  d       t         |||
      dk  d       t        t        j                  t        j                  ||	      dz        t        j                  t        j                  ||
      dz        kD  d       y )Nr@   rA   rB   r   r   r   r   r   r   r   r   r   r   r   c                    | t        j                  t        j                  | | z              z  } |t        j                  t        j                  ||z              z  }dt        j                  t        j                  | |            z
  S )Nr   )r    r$   r2   r.   r&   )xr   s     r<   simz$test_sir_regularized_1d.<locals>.sim}   s^    q1u&&q1u&&266"&&A,'''r>   TMbP?)r    r!   r"   r#   r&   r%   r   r*   rL   rP   r1   r   r2   )rV   rW   r3   r   r8   r9   r[   rslt2pa0pa1pa2re   s               r<   test_sir_regularized_1drk   b   s   
 IINN5A
A99!Q(D
tAqsF|RUU<01BII4D4D!4D4LLAQ%E99;D 88QFDr7DAaCLr7DAaCL!!!QtV,E
((1+CC!H
++ad
C
,,q!A#v
C( S#S#.5 S#%t, tS)1,-rvvdC7H!7K0LLr>   c                  8   t         j                  j                  d       d} d}t         j                  j                  | |f      }t        j                  |d d ddf   t         j
                  d         }t        j                  |d d ddf   t         j
                  d         }|t        j                  |      z   t         j                  j                  |       z   }t        ||      }|j                         }t        j                  d	|f      }d
D ]  }	|	dk  r|j                  |	|      }
n6t        j                  t        d      5  |j                  |	|      }
d d d        |j                  d d d|	f   }t         j                  j!                  |d      \  }}}
j                  }t         j                  j!                  t        j                  |j"                  |            \  }}}t%        t        j&                  |      |	dd        y # 1 sw Y   xY w)Nr@   rA   rB   r   r   r   rb      r   )r   r   r   r   r   zSIR.fit_regularized didrD   g?rH   )r    r!   r"   r#   r&   r%   arctanr   r*   rL   rP   rM   rN   rO   r1   rQ   rR   Tr   r2   )rV   rW   r3   rX   rY   r   r8   rslt1r[   drg   ri   rZ   rj   ss                  r<   test_sir_regularized_2drs      s    IINN5A
A99!Q(D	Q!VbeeL1	2B	Q!VbeeL1	2B
RYYr]RYY--1-55AQ%EIIKE88QFD 
<q5))!T2Ek1JK 7--a67ll1ac6"IIMM#q)	Qll))--suuc 231aq	14d;
<7 7s   
HH	c            	      <   t         j                  j                  d       d} g }g }t        d      D ]  }t        j                  |       }t         j                  j                  d      }t        j                  |j                  |      |ddddf<   t         j                  j                  |      }d|z  d	|z  z   }t         j                  j                  || f      }t        j                  ||j                        }|j                  |       |j                  |t        j                  |      z          t        j                  |      }t        j                  |d
      }dD ]  }t        |||      }t         j                  j                  | |f      }	t         j                  j                  |	d      \  }	}
}
t        |	j!                         |j"                  d      }|j%                  |	j!                               }t'        ||dd       |j)                         }|j*                  }t-        |j.                  d   |        t-        |j.                  d   |       t'        t        j                  |j                  |      t        j                  |      dd       |dk(  s=t        j0                  | df      }t        j                  d      |ddddf<   t'        t        j2                  t        j                  |j                  |            ddd        y )Ni  r   r   )r   r   r   r   r   rA   2   )axis)r   r   r   rF   rG   r   g:0yE>rf   )rJ   rI   )r    r!   r"   r)   eyer#   r&   ro   rQ   choleskyappendonesconcatenater   rR   r	   rS   loglikescorer   r*   r1   r   shaperL   trace)rW   endogexogkcrd   crmdimptrZ   r^   gr9   projprojts                   r<   test_covreducer      s[   IINN5	AED1X %FF1III&) ffQSS!n!A#qs(YY"FRTMII1a&)FF1bddOAQ^$% NN5!E>>$Q'D 2%s#YYAs8,99==Q'Aq288:rzz48HHRXXZ 2tT*vvx{{TZZ]A&TZZ]C(tvvt,bffSk4F!8HHaV$E ffQiE!A#qs(OBHHRVVDFFE%:;Q!%D2+2r>   )numpyr    pandasr+   rM   statsmodels.regression.dimredr   r   r   r   numpy.testingr   r   statsmodels.tools.numdiffr	   r=   r`   rk   rs   r    r>   r<   <module>r      s:      ( ( 9 34-n6@(V<<.2r>   