
    !g,                         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y)    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       y )Ng{r??   gF@bӱ?   g.Bk?   g      ?g?g?gP|?g?axisr   )r   r
   xnparrayT)st_RXs     d/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_statstools.pytest_durbin_watsonr      s    Da($3Dad+T26DaecAcrFl&:;T2FDaecAcrFl&:;T2FDaecAcrFl&:;T2F
!QADaa0"((D$<2H"Macc2BHHdD\4JBO    c                  J   ddl m}  t        j                  g dg dg      }t	        t
              }t        ||d d df   d       | j                  t
              }t        ||d d df   d       | j                  t
              }t        ||d d df   d       t        j                  g d	g d
g      }t
        dz  }t	        |      }t        ||d d df   d       | j                  |      }t        ||d d df   d       | j                  |      }t        ||d d df   d       y )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   hhJKMNG 
q	BGAqDM2.		BGAqDM2.			A	BGAqDM2.hhKTVWG 
AB	r	BGAqDM2.		BGAqDM2.			B	BGAqDM2.r   c                     t         j                  j                  dd      }t        |      }t        |d      }t        |j                  d      }t        ||d       t        ||d       y )N      r   r   r      decimal)r   randomrandnr   r   r   )reset_randomstater   nt1nt2nt3s        r   test_omni_normtest_axisr8   V   sT    
		AA

C

"C
!
$CS"-S"-r   c                     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       y )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    hh*,>?@G	Q	BGR(hh89G	QT	2A	BGR(hh*,>?@G	RVVAqD\	"2A	&BGR(hh*,>?@G	RVVQTE]	#BQ	'BGR(r   c                      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       y )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     $hh)+<=>G	BGQ' hh-/JKLG	A1c(+	+BGQ'hh+-@ABG	1	BGQ' hh,.BCDG	A	BGQ'r   c                     g } t        j                  ddg      }t        t              }t	        ||d       | j                  |       t        j                  ddg      }t        t        dz        }t	        ||d       | j                  |       t        j                  dd	g      }t        t        j                  t        dz              }t	        ||d       | j                  |       t        j                  d
dg      }t        t        j                  t        dz               }t	        ||d       | j                  |       t        t        j                  t        t        dz  t        j                  t        dz        t        j                  t        dz         f      j                  d      }t	        |t        j                  |       d       y )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      sY   Ehh*,>?@G	1BGR(	LLhh-/DEFG	1a4BGR(	LLhh*,>?@G	266!Q$<	 BGR(	LLhh-/DEFG	2661a4%=	!BGR(	LL	2??Aq!tRVVAqD\2661a4%=#IJLL
BBOOE2B7r   c                     t         j                  j                  d      }t        j                  |      }t        t        |      t        |      d       y )N2   r/   r0   )r   r2   r3   pdSeriesr   r
   )r4   r   x_seriess      r   test_durbin_watson_pandasrP      s7    
		Ayy|Ha(-*A2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y)TestStattoolsc                    t         j                  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
  } ||||kD            ||||	k           z
   ||||
kD            ||||
k           z
  z  dz
  }||z
  ||z
  z  d	z
  }|| _        t        j                  ||||g      | _        t        j                  g d
      | _	        y )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   sV   II%%d+%']]16`%a"BBBa):;S#!}}Q0GHc3wwQa[BFF1I-34s:RBG$b14FFAa#gJ$qSz"22tAa#gJ7G$qQRUXQXzJZ7Z[^ppd{sSy),>> "#sC)= >!#*h!ir   c                     t        j                  t        j                  d      d      }t        |d       }t	        |t        |j                                      y )N      Y@rL   r   r   )r   reshapearanger   r   ravel)selfr   mcs      r   test_medcouple_no_axisz$TestStattools.test_medcouple_no_axis   s<    JJryy'1qt$B	!'') 45r   c                     t        j                  t        j                  d      d      }t        t        t
        |       y )Nry   rz   )r   r{   r|   r   
ValueErrorr   r~   r   s     r   test_medcouple_1dzTestStattools.test_medcouple_1d   s'    JJryy'/j-3r   c                 X    t        t        j                  d            }t        |d       y )NrX   r   )r   r   r|   r   r~   r   s     r   test_medcouple_symmetricz&TestStattools.test_medcouple_symmetric   s    ryy~&B"r   c                 \    t        t        j                  g d            }t        |d       y )Nr   r      	         $@g1UUտ)r   r   r   r   r   s     r   test_medcouple_nonzeroz$TestStattools.test_medcouple_nonzero   s     rxx 234B
+r   c                     t        t        j                  g d            }t        t        j                  g d            }t        ||       y )N)r   r   r   r   
   r   )r   r   r   r   )r~   mc1mc2s      r   test_medcouple_intz TestStattools.test_medcouple_int   s4    !123!345S#r   c                     t         j                  j                  d      }t        |      }t        |       }t	        ||z   d       y )Nd   r   )r   r2   r]   r   r   )r~   r4   r   mcpmcns        r   test_medcouple_symmetryz%TestStattools.test_medcouple_symmetry   s8    II%%c*lmC#Iq)r   c                 `    t        j                  g d      }t        |      }t        |d       y )N)r   r   r   r.   r@   gUUUUUU?)r   r   r   r   )r~   r4   r   r   s       r   test_medcouple_tiesz!TestStattools.test_medcouple_ties   s#    HH_%q\B	*r   c                     t         j                  j                  d      }t        t        j                  |      dz        t        j
                  ||      z  }t        |t        |             y )Nr          @)r   r2   r]   sumdiffdotr   r
   )r~   r4   r   dws       r   r   z TestStattools.test_durbin_watson   sJ    II%%c*S!BFF1aL0Ba 01r   c                 l   d}t         j                  j                  d      }t        t        j                  |      dz        t        j
                  ||      z  }t        j                  |d d d f   |      }t        t        j                  |t        j                  |      z        t        |             y )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}    II%%c*S!BFF1aL0GGAagJ&BJJrBGGEN':;]1=MNr   c                 r   d}t         j                  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             y )N)r   r   r   r   r   r   r   r   r   s        r   test_durbin_watson_3dz#TestStattools.test_durbin_watson_3d   s    II%%c*S!BFF1aL0GGAdAtm$e,BJJrBGGEN':;]1ST=UVr   c                     t        j                  d      }t        |      }t        t        j                  |      t        j
                  d             y )Ng      5@r@   )r   r|   r   r   r   zeros)r~   r   sks      r   test_robust_skewness_1dz%TestStattools.test_robust_skewness_1d   s3    IIdOQBHHRL"((1+6r   c                     t         j                  j                  d      }|d d d f   }t        |      }t        |d       }t	        t        j
                  |      t        j
                  |             y )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   sQ    IIOOBagJq!qt,BHHTNBHHTN;r   c                    t         j                  j                  d      }t        j                  |t        j                  d      | g      }t        |      }t        t        j                  |      t        j                  d             y )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   sY    II%%c*IIq"((1+r*+QBHHRL"((1+6r   c                 0   t         j                  j                  d      }t        j                  |t        j                  d      | g      }t        j
                  |d      }t        |d      }t        j                  d      }|D ]  }t        ||        y )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  sx    II%%c*IIq"((1+r*+GGA{#*(# 	,BF+	,r   c                    t         j                  j                  d      }||dkD  xx   dz  cc<   t        j                  |      }|j	                  d      }|j                         |z
  |z  }t        |      \  }}}}t        ||       y )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  ss    II%%d+	!a%AIIaLEEqEMFFHqLA%&q)1a#&r   c                     t         j                  j                  d      }|d d d f   }t        j                  t	        |            }t        j                  t	        |d             }t        ||       y )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  sS    IIOOC agJxx*+xx56D$'r   c                     | j                   }t        t        j                  t	        |            | j
                         y )N)ra   r   r   r   r   rb   r   s     r   test_robust_kurtosisz"TestStattools.test_robust_kurtosis  s)    OOBHH_Q%78$:P:PQr   c                    t        j                  | j                  d      }t        j                  t	        |d            }t        | j                        D ]*  \  }}t        |t        j                  d      z  ||          , y )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!  sg    GGDOO[188OAA67d445 	DDAqBGGH$5 5x{C	Dr   c                     | j                   }| j                  | j                  z   }t        j                  t        |d            }t        ||       y )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'  s@    OO))D,C,CC88OAe<=Hh/r   c           	         | j                   }d\  }}t        | j                   ||fd      }t        j                  ||t        j                  |d|z
        kD           t        j                  ||t        j                  ||      k           z
  }t        j                  ||t        j                  |d|z
        kD           t        j                  ||t        j                  ||      k           z
  }t        |d   ||z         y )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    OO"t"4??d|ERgga"--%%-889:RWWQqWXY^I_G_E`=aa!BMM!EDL99:;bgga"--XYZ^J_H_F`>aaHQKU3r   c                     | j                   }d\  }}t        | j                   ||fd      }t        j                  ||d|z
  |d|z
  g      }t	        |d   |d   |d   z
  |d   |d   z
  z         y )	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  sv    OO#u"4??e}USMM!UE%KeDEHQK!A$1+!A$1+)F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6
4#,*+
2
OW7
<7,'(RD04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
 BHH @ A
PD/B.)&(088OOH OHr   