
    M/Ph,                         d dl Zd dlZd dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZ  ej        g d          Zd Zd Zd Zd	 Zd
 Zd Zd Z G d d          ZdS )    N)assert_almost_equalassert_raisesassert_equalassert_allclose)	normal_ad)omni_normtestjarque_beradurbin_watson_medcouple_1d	medcouplerobust_kurtosisrobust_skewness)g_vOgBiqg o_y?g/$g47ؿg^K=Ϳg}?5^gZӼ˿gׁsF?g6<R?gGr׿g	?gz6ÿg7[ Ag2U0*g$~?gea?gJY8Ϳgc]KgCl?c            	      >   d} t          t          t                    | d           d} t          t          t          dz            | d           d} t          t          t          dd          dt          d d         z  z             | d           d	} t          t          t          dd          d
t          d d         z  z             | d           d} t          t          t          dd          dt          d d         z  z             | d           t          j        t          t          g          }d} t          t          |d          t          j        | | g          d           t          t          |j        d          t          j        | | g          d           d S )Ng{r??   gF@bӱ?   g.Bk?   g      ?g?g?gP|?g?axisr   )r   r
   xnparrayT)st_RXs     g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/tests/test_statstools.pytest_durbin_watsonr      sh    Da(($333Dad++T2666DaecAcrcFl&:;;T2FFFDaecAcrcFl&:;;T2FFFDaecAcrcFl&:;;T2FFF
!QADaa000"(D$<2H2H"MMMac222BHdD\4J4JBOOOOO    c                     ddl m}  t          j        g dg dg          }t	          t
                    }t          ||d d df         d           |                     t
                    }t          ||d d df         d           |                     t
                    }t          ||d d df         d           t          j        g d	g d
g          }t
          dz  }t	          |          }t          ||d d df         d           |                     |          }t          ||d d df         d           |                     |          }t          ||d d df         d           d S )Nr   )stats)g<N@g?PcgͰHa?)g{Ӯ_?gr䭏?g^ZTc?r   r   r      )gpBA@g/%?ѷ@gEi@)g   (a>g  >g ?   )	scipyr    r   r   r   r   r   skewtestkurtosistest)r    st_pv_Rntstktx2s         r   test_omni_normtestr+   5   s   hJJJKKKMN NG 
q		BGAAAqDM2...			BGAAAqDM2...			A		BGAAAqDM2...hKKKTTTVW WG 
AB	r		BGAAAqDM2...			BGAAAqDM2...			B		BGAAAqDM2.....r   c                     t           j                            dd          }t          |          }t          |d          }t          |j        d          }t          ||d           t          ||d           d S )N      r   r   r      decimal)r   randomrandnr   r   r   )reset_randomstater   nt1nt2nt3s        r   test_omni_normtest_axisr8   V   sz    
	AA


C

"
"
"C
!
$
$
$CS"----S"------r   c                  z   t          j        ddg          } t          t                    d d         }t	          || d           t          j        ddg          } t          t          dz            d d         }t	          || d           t          j        dd	g          } t          t          j        t          dz                      d d         }t	          || d           t          j        d
dg          } t          t          j        t          dz                       d d         }t	          || d           d S )Ng@$u?gV?r   r   gS]S@g        r/   gVl@g5{j?gΐ	1@g1%>?)r   r   r	   r   r   logexp)r&   jbs     r   test_jarque_berar=   `   s   h*,>?@@G	Q	BGR(((h899G	QT		2A2	BGR(((h*,>?@@G	RVAqD\\	"	"2A2	&BGR(((h*,>?@@G	RVQTE]]	#	#BQB	'BGR(((((r   c                  T   ddl m}  t          j        ddg          } | t                    }t          ||d           t          j        ddg          } | t          dz            t          j        d	d
g          z  }t          ||d           t          j        ddg          } | t          j        t          dz                      }t          ||d           t          j        ddg          } | t          j        t          dz                       }t          ||d           d S )Nr   )shapirog  Z?gU+?   g   ?gw3gӒ?r   r   g     @   g   ЎZ?g
?g   80?gYd=
Z?)scipy.statsr?   r   r   r   r   r:   r;   )r?   r&   shs      r   test_shapirorD   s   s)    $#####h)+<=>>G	BGQ''' h-/JKLLG	A1c(++	+BGQ'''h+-@ABBG	1		BGQ''' h,.BCDDG	A		BGQ'''''r   c                     g } t          j        ddg          }t          t                    }t	          ||d           |                     |           t          j        ddg          }t          t          dz            }t	          ||d           |                     |           t          j        dd	g          }t          t          j        t          dz                      }t	          ||d           |                     |           t          j        d
dg          }t          t          j        t          dz                       }t	          ||d           |                     |           t          t          j        t          t          dz  t          j        t          dz            t          j        t          dz             f          j	        d          }t	          |t          j        |           d           d S )Ng op?gVd?r"   g\d@g+ww>r   r!   gsO?gD>0?gY[?g!.،D?r   r   )
r   r   r   r   r   appendr:   r;   column_stackr   )st_pvr&   ads      r   test_adnormrJ      s   Eh*,>?@@G	1BGR(((	LLh-/DEFFG	1a4BGR(((	LLh*,>?@@G	26!Q$<<	 	 BGR(((	LLh-/DEFFG	261a4%==	!	!BGR(((	LL	2?Aq!tRVAqD\\261a4%==#IJJL
 
 
BBOE22B77777r   c                     t           j                            d          }t          j        |          }t          t          |          t          |          d           d S )N2   r/   r0   )r   r2   r3   pdSeriesr   r
   )r4   r   x_seriess      r   test_durbin_watson_pandasrP      sM    
	Ay||Ha((-*A*A2NNNNNNr   c                       e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestStattoolsc                    t           j                            d          }t          j        |d          \  }}}}}}}t          j        |d          \  }	}
}t          j        |d          \  }}}}t           j        } || ||          z
  t          j        |          z  dz            dz
  }||z
  ||z
  z   ||z
  z  dz
  } ||||k                        ||||	k                        z
   ||||
k                        ||||
k                        z
  z  dz
  }||z
  ||z
  z  d	z
  }|| _        t          j        ||||g          | _        t          j        g d
          | _	        d S )N  )g      )@      9@g     B@      I@g     @O@     R@g     U@)      @rV   g     W@)g      @rU   rW   g     `X@g      @      @ܝ?ˎ@Qį,?@)rY   rZ   r[   r\   )
r   r2   standard_normal
percentilemeanstd
kurtosis_xr   expected_kurtosiskurtosis_constants)clsr   e1e2e3e4e5e6e7c05c50c95f025f25f75f975r_   kr1kr2kr3kr4s                        r   setup_classzTestStattools.setup_class   s   I%%d++%']16`%a%a"BBBa):;;S#!}Q0GHHc3wdQa[BF1II-344s:RBG$b14FFtAa#gJ$$qSz"2"22ttAa#gJ7G7G$$qQRUXQXzJZJZ7Z[^ppd{sSy),>> "#sC)= > >!#*h*h*h!i!ir   c                     t          j        t          j        d          d          }t          |d           }t	          |t          |                                                     d S )N      Y@rL   r   r   )r   reshapearanger   r   ravel)selfr   mcs      r   test_medcouple_no_axisz$TestStattools.test_medcouple_no_axis   sU    Jry''11qt$$$B	!'')) 4 455555r   c                     t          j        t          j        d          d          }t          t          t
          |           d S )Nry   rz   )r   r{   r|   r   
ValueErrorr   r~   r   s     r   test_medcouple_1dzTestStattools.test_medcouple_1d   s5    Jry''//j-33333r   c                 h    t          t          j        d                    }t          |d           d S )NrX   r   )r   r   r|   r   r~   r   s     r   test_medcouple_symmetricz&TestStattools.test_medcouple_symmetric   s-    ry~~&&B"""""r   c                 l    t          t          j        g d                    }t          |d           d S )Nr   r      	         $@g1UUտ)r   r   r   r   r   s     r   test_medcouple_nonzeroz$TestStattools.test_medcouple_nonzero   s6    rx 2 2 23344B
+++++r   c                     t          t          j        g d                    }t          t          j        g d                    }t          ||           d S )N)r   r   r   r   
   r   )r   r   r   r   )r~   mc1mc2s      r   test_medcouple_intz TestStattools.test_medcouple_int   sT    !1!1!12233!3!3!34455S#r   c                     t           j                            d          }t          |          }t          |           }t	          ||z   d           d S )Nd   r   )r   r2   r]   r   r   )r~   r4   r   mcpmcns        r   test_medcouple_symmetryz%TestStattools.test_medcouple_symmetry   sI    I%%c**llmmC#Iq)))))r   c                 p    t          j        g d          }t          |          }t          |d           d S )N)r   r   r   r.   r@   gUUUUUU?)r   r   r   r   )r~   r4   r   r   s       r   test_medcouple_tiesz!TestStattools.test_medcouple_ties   s6    H___%%q\\B	*****r   c                     t           j                            d          }t          t          j        |          dz            t          j        ||          z  }t          |t          |                     d S )Nr          @)r   r2   r]   sumdiffdotr   r
   )r~   r4   r   dws       r   r   z TestStattools.test_durbin_watson   s]    I%%c**S!!BF1aLL0Ba 0 011111r   c                    d}t           j                            d          }t          t          j        |          dz            t          j        ||          z  }t          j        |d d d f         |          }t          t          j        |t          j	        |          z            t          |                     d S )N)r   r   r   r   r   r2   r]   r   r   r   tiler   squeezeonesr
   r~   r4   shaper   r   s        r   test_durbin_watson_2dz#TestStattools.test_durbin_watson_2d   s    I%%c**S!!BF1aLL0GAaaagJ&&BJrBGENN':;;]1=M=MNNNNNr   c                    d}t           j                            d          }t          t          j        |          dz            t          j        ||          z  }t          j        |d d d d f         |          }t          t          j        |t          j	        |          z            t          |d                     d S )N)r   r   r   r   r   r   r   r   r   s        r   test_durbin_watson_3dz#TestStattools.test_durbin_watson_3d   s    I%%c**S!!BF1aLL0GAdAAAtm$e,,BJrBGENN':;;]1ST=U=U=UVVVVVr   c                     t          j        d          }t          |          }t          t          j        |          t          j        d                     d S )Ng      5@r@   )r   r|   r   r   r   zeros)r~   r   sks      r   test_robust_skewness_1dz%TestStattools.test_robust_skewness_1d   sB    IdOOQBHRLL"(1++66666r   c                    t           j                            d          }|d d d f         }t          |          }t          |d           }t	          t          j        |          t          j        |                     d S )N   r   )r   r2   r3   r   r   r   )r~   r4   r   ysk_xsk_ys         r   test_robust_skewness_1d_2dz(TestStattools.test_robust_skewness_1d_2d   sk    IOOBaaagJq!!qt,,,BHTNNBHTNN;;;;;r   c                    t           j                            d          }t          j        |t          j        d          | g          }t          |          }t          t          j        |          t          j        d                     d S )Nr   r   r@   )r   r2   r]   hstackr   r   r   r   )r~   r4   r   r   s       r   test_robust_skewness_symmetricz,TestStattools.test_robust_skewness_symmetric   sj    I%%c**Iq"(1++r*++QBHRLL"(1++66666r   c                 6   t           j                            d          }t          j        |t          j        d          | g          }t          j        |d          }t          |d          }t          j        d          }|D ]}t          ||           d S )Nr   r   r   r   r   r   r   r   r   )r   r2   r]   r   r   r   r   r   )r~   r4   r   sk_3dresultr   s         r   test_robust_skewness_3dz%TestStattools.test_robust_skewness_3d  s    I%%c**Iq"(1++r*++GA{##***(## 	, 	,BF++++	, 	,r   c                 <   t           j                            d          }||dk    xx         dz  cc<   t          j        |          }|                    d          }|                                |z
  |z  }t          |          \  }}}}t          ||           d S )NrT   r   r.   )ddof)r   r2   r]   medianr`   r_   r   r   )r~   r4   r   msexpected_sk4s           r   test_robust_skewness_4z$TestStattools.test_robust_skewness_4  s    I%%d++	!a%AIaLLEEqEMMFFHHqLA%&q))1a#&&&&&r   c                    t           j                            d          }|d d d f         }t          j        t	          |                    }t          j        t	          |d                     }t          ||           d S )Nr   r   )r   r2   r3   r   r   r   )r~   r4   r   r   kr_xkr_ys         r   test_robust_kurtosis_1d_2dz(TestStattools.test_robust_kurtosis_1d_2d  so    IOOC  aaagJx**++x55566D$'''''r   c                 |    | j         }t          t          j        t	          |                    | j                   d S )N)ra   r   r   r   r   rb   r   s     r   test_robust_kurtosisz"TestStattools.test_robust_kurtosis  s4    OBH_Q%7%788$:PQQQQQr   c                 
   t          j        | j        d          }t          j        t	          |d                    }t          | j                  D ]0\  }}t          |t          j        d          z  ||                    1d S )Nr   r   r   r   )	r   r   ra   r   r   	enumeraterb   r   r   )r~   r   kurtosisirs        r   test_robust_kurtosis_3dz%TestStattools.test_robust_kurtosis_3d!  s    GDO[118OAA66677d455 	D 	DDAqBGH$5$5 5x{CCCC	D 	Dr   c                     | j         }| j        | j        z   }t          j        t          |d                    }t          ||           d S )NF)excess)ra   rb   rc   r   r   r   r   )r~   r   r   r   s       r   !test_robust_kurtosis_excess_falsez/TestStattools.test_robust_kurtosis_excess_false'  sK    O)D,CC8OAe<<<==Hh/////r   c           	         | j         }d\  }}t          | j         ||fd          }t          j        ||t          j        |d|z
            k                       t          j        ||t          j        ||          k                        z
  }t          j        ||t          j        |d|z
            k                       t          j        ||t          j        ||          k                        z
  }t          |d         ||z             d S )Nr   g     F@F)abr   ry   r   )ra   r   r   r_   r^   r   )r~   r   alphabetar   numdenoms          r   test_robust_kurtosis_abz%TestStattools.test_robust_kurtosis_ab-  s    O"t"4?d|ERRRga"-%%-8889::RWQqWXY^I_I_G_E`=a=aa!BM!EDL999:;;bga"-XYZ^J_J_H_F`>a>aaHQKU33333r   c                     | j         }d\  }}t          | j         ||fd          }t          j        ||d|z
  |d|z
  g          }t	          |d         |d         |d         z
  |d         |d         z
  z             d S )	Nr   F)dgr   ry   r.   r   r   r   )ra   r   r   r^   r   )r~   r   deltagammar   qs         r   test_robust_kurtosis_dgz%TestStattools.test_robust_kurtosis_dg6  s    O#u"4?e}USSSM!UE%KeDEEHQK!A$1+!A$1+)FGGGGGr   N)__name__
__module____qualname__classmethodrw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   rR   rR      s|       j j [j6 6 6
4 4 4# # #, , ,  * * *+ + +
2 2 2
O O OW W W7 7 7
< < <7 7 7, , ,' ' '( ( (R R RD D D0 0 04 4 4H H H H Hr   rR   )numpyr   pandasrM   numpy.testingr   r   r   r   statsmodels.stats._adnormr   statsmodels.stats.stattoolsr   r	   r
   r   r   r   r   r   r   r   r+   r8   r=   rD   rJ   rP   rR   r   r   r   <module>r      s          , , , , , , , , , , , , 0 / / / / /K K K K K K K K K K K K K K K K K K
 BH @ @ @ A A
P P PD/ / /B. . .) ) )&( ( (08 8 88O O OOH OH OH OH OH OH OH OH OH OHr   