← Back
Editing: test_multivariate.cpython-311.pyc
� d�c�� � �� � d Z ddlZddlmZmZmZmZmZmZ ddl Z ddl m Z ddlm Z ddlZddlZddlZddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 dd lm1Z1m2Z2 dd l3m4Z4 ddl5m6Z6 ddl7m8Z8 dd l9m:Z: d� Z; G d� d� � Z<d� Z= G d� d� � Z> G d� d� � Z? G d� d� � Z@d� ZA G d� d� � ZB G d� d� � ZC G d� d� � ZD G d� d � � ZE G d!� d"� � ZF G d#� d$� � ZG G d%� d&� � ZH G d'� d(� � ZI G d)� d*� � ZJ G d+� d,� � ZK G d-� d.� � ZLd/� ZMd0� ZNdS )1z8 Test functions for multivariate normal distributions. � N)�assert_allclose�assert_almost_equal�assert_array_almost_equal�assert_equal�assert_array_less�assert_)�raises� )�check_distribution_rvs)�_PSD�_lnB�_cho_inv_batch�multivariate_normal_frozen)�multivariate_normal�multivariate_hypergeom� matrix_normal�special_ortho_group�ortho_group�random_correlation� unitary_group� dirichlet�beta�wishart�multinomial� invwishart�chi2�invgamma�norm�uniform�ks_2samp�kstest�binom� hypergeom�multivariate_t�cauchy� normaltest�random_table�uniform_direction)�_covariance� Covariance)�romb)�multigammaln)�check_random_state_property)�patchc � � t j | � � t j |� � }} t | |g|�R i |�� t | j |j � � d S �N)�np�asarrayr r �shape)�res�ref�args�kwargss �E/usr/lib/python3/dist-packages/scipy/stats/tests/test_multivariate.py�assert_closer9 ( sU � ��z�#���� �3����C��C��.�t�.�.�.�v�.�.�.����C�I�&�&�&�&�&� c �" � e Zd Zd� Zej ej j ej j ej j d� d�Z ej ee � � � � Z ej g d�� � g d�g d�g d�g ej g d�� � g d �g d �g d�gd�Ze e d d� e g d� e dd� d�Zej � de dd� � � d� � � Zej � d ee� � � � ej � de � � d� � � � � Zej � dd e� � d dg� � ej � d ee� � � � ej � de � � d� � � � � � � Zej � d e� � dg� � ej � de � � d� � � � � Zd� Zej � d� � d� � � ZdS )�TestCovariancec � � d}t j t |�� � 5 t j t j d� � � � d d d � � n# 1 swxY w Y d}t j t |�� � 5 t j t j d� � t j d� � �� � d d d � � n# 1 swxY w Y d}t j t |�� � 5 t j d� � d d d � � n# 1 swxY w Y d }t j t |�� � 5 t j t j d� � � � d d d � � n# 1 swxY w Y d }t j t |�� � 5 t j dt j d� � f� � d d d � � n# 1 swxY w Y d}t j t |�� � 5 t j t j d� � df� � d d d � � n# 1 swxY w Y d}t j t |�� � 5 t j g d �t j d� � f� � d d d � � d S # 1 swxY w Y d S )Nz:The input `precision` must be a square, two-dimensional...��match� z0`precision.shape` must equal `covariance.shape`.� )� covariancez7The input `diagonal` must be a one-dimensional array...�alpacaz9The input `cholesky` must be a square, two-dimensional...z4The input `eigenvalues` must be a one-dimensional...z,The input `eigenvectors` must be a square...z9The shapes of `eigenvalues` and `eigenvectors` must be...�r r@ rA )�pytestr � ValueErrorr) �CovViaPrecisionr1 �ones�eye�CovViaDiagonal�CovViaCholesky�CovViaEigendecomposition��self�messages r8 �test_input_validationz$TestCovariance.test_input_validation0 s: � �N�� �]�:�W� 5� 5� 5� 4� 4��'���� � �3�3�3� 4� 4� 4� 4� 4� 4� 4� 4� 4� 4� 4���� 4� 4� 4� 4� E�� �]�:�W� 5� 5� 5� I� I��'���q� � �b�f�Q�i�i�H�H�H�H� I� I� I� I� I� I� I� I� I� I� I���� I� I� I� I� L�� �]�:�W� 5� 5� 5� 1� 1��&�x�0�0�0� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1���� 1� 1� 1� 1� N�� �]�:�W� 5� 5� 5� 3� 3��&�r�w�q�z�z�2�2�2� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3���� 3� 3� 3� 3� I�� �]�:�W� 5� 5� 5� H� H��0�(�B�F�1�I�I�1F�G�G�G� H� H� H� H� H� H� H� H� H� H� H���� H� H� H� H� A�� �]�:�W� 5� 5� 5� I� I��0�"�'�!�*�*�h�1G�H�H�H� I� I� I� I� I� I� I� I� I� I� I���� I� I� I� I� N�� �]�:�W� 5� 5� 5� I� I��0�)�)�)�R�V�A�Y�Y�1G�H�H�H� I� I� I� I� I� I� I� I� I� I� I� I���� I� I� I� I� I� Is} �'A�A�A�9;C � C�C�(D � D �D �1'E$�$E(�+E(�)G�G�G�))H�H"�%H"�+I>�>J�Jc �$ � t | d�� � S )NT��allow_singular)r )�xs r8 �<lambda>zTestCovariance.<lambda>R s � �%)�!�D�%A�%A�%A� r: )�Diagonal� Precision�Cholesky�Eigendecomposition�PSDrD )� r rA )r � � )rA r] � )r r rA )r[ ���r )r_ r[ r �r r r )�diagonal full rankzgeneral full rankzdiagonal singularzgeneral singularr N)r ���r_ rb � cov_type_namer_ c �� � t j g d�� � }g d�}t t d|� �� � }| j | }t t d|� � � � �� � } | ||� � � � } | ||� � � � }t |� � t |� � k sJ �t |� |� � |� |� � � � d S )NrD )���r@ r[ �CovVia�from_) r1 �diag�getattrr) �_covariance_preprocessingr* �lower�typer �whiten) rN rc �ArT �cov_type� preprocessing�factoryr4 r5 s r8 �test_factorieszTestCovariance.test_factories^ s� � ��G�I�I�I�����J�J���;�(@��(@�(@�A�A���6�}�E� ��*�&E�m�.A�.A�.C�.C�&E�&E�F�F���g�m�m�A�&�&�'�'���h�}�}�Q�'�'�(�(���C�y�y�D��I�I�%�%�%�%��� � �1� � �s�z�z�!�}�}�5�5�5�5�5r: �matrix_typec � � d|� d|� d�}|| j | vrt j |� � | j | }t t d|� �� � }| j | }t |d�� � } | ||� � � � }t |j |j � � t |j |j � � t |j t j |� � j � � t |j t j |� � � � t j � d� � } | � d�� � } |� | � � }| |j z }t ||z ||z � � t) |d � � r'd |vr#t |� |� � | � � | � d�� � } |� | � � }| |j z }t |dz � d �� � |dz � d �� � � � t) |d � � r)d |vr't |� |� � | � � d S d S d S )Nrf � does not support � matricesTrR � �VGi�V�K rA ��size� _colorize�singular�r@ r] rA r@ r_ ��axis)� _cov_typesrE �skip� _matricesri r) rj r r9 �log_pdetr �rankr3 r1 r2 rB �random�default_rngrm �U�hasattr�colorize�sum) rN rs rc rO rn ro rp �psd� cov_object�rngrT r4 r5 s r8 �test_covariancezTestCovariance.test_covariancel sZ � ��M� � �[� � � ������ <�<�<��K�� � � ��N�;�'���;�(@��(@�(@�A�A���6�}�E� ��1�T�*�*�*�� �X�m�m�A�.�.�/�/� ��Z�(�#�,�7�7�7��Z�_�c�h�/�/�/��Z�%�r�z�!�}�}�':�;�;�;��Z�*�B�J�q�M�M�:�:�:� �i�#�#�$7�8�8���J�J�A�J��������"�"���#�%�i���S�3�Y��c� �*�*�*��:�{�+�+� 6� �+�0M�0M���,�,�S�1�1�1�5�5�5� �J�J�I�J�&�&������"�"���#�%�i���c�1�f�\�\�r�\�*�*�S�!�V�L�L�b�L�,A�,A�B�B�B��:�{�+�+� 6� �+�0M�0M���,�,�S�1�1�1�5�5�5�5�5� 6� 6�0M�0Mr: ry r| c �z � d|� d|� d�}|| j | vrt j |� � | j | }t t d|� �� � }| j | }g d�} | ||� � � � } t } t ||d�� � }t || d�� � }t j � d� � } | � |||�� � }t j � d� � } | � || || � � � }t j � d� � } | || | � � � � |�� � }t | t j � � rEt |t j |� � � � t |t j |� � � � nDt! |j |j � � t! |j |j � � t ||� � t | � ||| � � |� |� � � � t |� |� � |� |� � � � t | � ||| � � |� |� � � � t |� |� � |� |� � � � t | � || � � |� � � � � t |� � � |� � � � � d S )Nrf ru rv �皙�����?皙�����?�333333�?TrR rw rx �ry �random_state��seed)r rE r� r� ri r) rj r r1 r� r� �rvs� isinstance� CovViaPSDr9 �squeezer r3 �pdf�logpdf�entropy)rN ry rs rc rO rn ro rp �meanr� �mvn�dist0�dist1r� rT �x1�x2s r8 �test_mvn_with_covariancez'TestCovariance.test_mvn_with_covariance� s� � ��M� � �[� � � ������ <�<�<��K�� � � ��N�;�'���;�(@��(@�(@�A�A���6�}�E� ������X�m�m�A�.�.�/�/� �!��#�D�!�D�A�A�A��#�D�*�T�J�J�J���i�#�#�$7�8�8���#�#�D�!�$�#�7�7���i�#�#�$7�8�8�� �W�W�T�:�D�s�W� C� C���i�#�#�$7�8�8�� �S��z�� ,� ,� ,� 0� 0�d� 0� ;� ;���j�+�"7�8�8� !���R�Z��]�]�+�+�+���R�Z��]�]�+�+�+�+����1�7�+�+�+����1�7�+�+�+���R� � � ��S�W�W�Q��j�1�1�5�9�9�Q�<�<�@�@�@��U�Y�Y�q�\�\�5�9�9�Q�<�<�0�0�0��S�Z�Z��4��4�4�e�l�l�1�o�o�F�F�F��U�\�\�!�_�_�e�l�l�1�o�o�6�6�6��S�[�[��z�2�2�E�M�M�O�O�D�D�D��U�]�]�_�_�e�m�m�o�o�6�6�6�6�6r: c � � d}| j | }t t d|� �� � }| j | }g d�} | ||� � � � }t } t ||d�� � } t ||d�� � }t j � d� � }|� |||�� � } t | � | ||� � | � | � � � � t |� | � � | � | � � � � t | � | ||� � | � | � � � � t |� | � � | � | � � � � d S )Nra rf r� TrR rw rx )r� ri r) rj r r1 r� r� r9 �cdf�logcdf)rN ry rc rs rn ro rp r� r� r� r� r� r� rT s r8 �test_mvn_with_covariance_cdfz+TestCovariance.test_mvn_with_covariance_cdf� s[ � � +���N�;�'���;�(@��(@�(@�A�A���6�}�E� ������X�m�m�A�.�.�/�/� �!��#�D�!�D�A�A�A��#�D�*�T�J�J�J���i�#�#�$7�8�8���#�#�D�!�$�#�7�7���S�W�W�Q��j�1�1�5�9�9�Q�<�<�@�@�@��U�Y�Y�q�\�\�5�9�9�Q�<�<�0�0�0��S�Z�Z��4��4�4�e�l�l�1�o�o�F�F�F��U�\�\�!�_�_�e�l�l�1�o�o�6�6�6�6�6r: c � � d}t j t |�� � 5 t � � d d d � � d S # 1 swxY w Y d S )Nz7The `Covariance` class cannot be instantiated directly.r>