U
    md                     @   sN   d Z ddlZddlmZmZ ddlmZ ddlm	Z	 G dd dZ
dd	 ZdS )
zUnit tests for NonlinearDeltaCov and LikelihoodResults._get_wald_nonlinear
Created on Sun Mar 01 01:05:35 2015

Author: Josef Perktold
License: BSD-3

    N)assert_allcloseassert_equal)OLS)NonlinearDeltaCovc                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestDeltacovOLSc                 C   s`   d\}}t j||}d|d d df< |d d d df dt j| }t|| | _d S )N)d         r   )nprandomZrandnsumr   fitres)clsZnobsZk_varsxy r   ^/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_deltacov.pysetup_class   s
    &zTestDeltacovOLS.setup_classc                    s   | j }|jj  fdd}t||j| }||}t| | dd t|	 |	 dd |j
}|jd|d}|jd|d}tt|t| d S )Nc                    s   t  | d S )N   r   dotparamsr   r   r   fun   s    z(TestDeltacovOLS.test_method.<locals>.fun-q=rtolTuse_tdf)r   modelexogr   r   
cov_params_get_wald_nonlinearr   se_vectorized	predicteddf_residsummaryr   str)selfr   r   nlZnlmr"   t1t2r   r   r   test_method   s    
zTestDeltacovOLS.test_methodc           
         sB  | j }|jj  fdd}t||j| }| }| }t|||jdd t|t	
t	| dd |j dd}t||jdd t||jdd t| | dd | }| }tt|t| | }| }|j}	|j dd}t|jd|	d| dd	d
 |jd|	d}| }tt|t| d S )Nc                    s   t  | S )Nr   r   r   r   r   r   1   s    z'TestDeltacovOLS.test_ttest.<locals>.funr   r   F)r!   Tr    g|=)r   Zatol)r   r#   r$   r   r   r%   r(   r'   r   r   sqrtZdiagZcovZt_testZeffectsdZconf_intr*   r   r+   r)   )
r,   r   r   r-   r(   settr.   r/   r"   r   r   r   
test_ttest,   s4     zTestDeltacovOLS.test_ttestc                    s`   | j }|jj  fdd}t||j| }t| |jd dd t| |j	d dd d S )Nc                    s0   t  | t  d d dd f | dd   S )Nr	   r   r   r   r   r   r   T   s    z&TestDeltacovOLS.test_diff.<locals>.funr   r   r   )
r   r#   r$   r   r   r%   r   r(   r'   Zbse)r,   r   r   r-   r   r   r   	test_diffP   s    zTestDeltacovOLS.test_diffN)__name__
__module____qualname__classmethodr   r0   r5   r6   r   r   r   r   r      s
   
$r   c                     s   dd l m  m  m}  |  }|  |j  jj  fdd}t	| j
  } jdd}t| d d |jdd t| d d |jdd  |}t| d d |jdd t| d d |jdd d S )	Nr   c                    s2    j jdd d d f } j | |}t|S )Nr   )r#   r$   mean_derivative_exogr   Zsqueeze)pexZfvZres_poir   r   fh   s    z test_deltacov_margeff.<locals>.fr;   )atr
   gvIh%<=r   )Z(statsmodels.discrete.tests.test_discreteZdiscretetestsZtest_discreteZTestPoissonNewtonr   Zres1r#   r<   r   r   r%   Zget_margeffr   r'   Z
margeff_ser(   Zmargeffr&   )dtZtcr@   ZnlpZmargZnlpmr   r?   r   test_deltacov_margeff]   s    
rD   )__doc__numpyr   Znumpy.testingr   r   Z#statsmodels.regression.linear_modelr   Zstatsmodels.stats._delta_methodr   r   rD   r   r   r   r   <module>   s   M