
    'YHhF                     z    d Z ddlZddlmZmZ ddlZddlmZ ddl	m
c mZ ddlmZ  G d d      Z G d d	      Zy)
z=
Created on Fri Sep 15 13:38:13 2017

Author: Josef Perktold
    N)assert_allcloseassert_equal)Poisson)PoissonDiagnosticc                   Z    e Zd Zed        Zd Zej                  j                  d        Z	y)TestCountDiagnosticc                    g d}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   d}t        j                  |j                  |d d       |z         }t         j                  j                  |dz        }t        ||      }|j                  d	d
d      }|| _	        || _
        || _        || _        y )N)   r
   g      ?i i     r   r
      bfgsi  F)methodmaxiterdisp)nprandomseedonesexpdotpoissonr   fitexogendogresnobs)	clsexpected_paramsr   r   offsetmu_true	endog_poi	model_poires_pois	            c/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/discrete/tests/test_diagnostic.pysetup_classzTestCountDiagnostic.setup_class   s     &
		vwway!XdAgXq[ &&/#2"67&@AII%%gk2	 It,	--vt%-H	    c                 X   t        j                  | j                        }t        j                  | j                        }t	        |d d |d   dz  |d   fd       t        j                  | j                  | j
                        }d}t	        ||d       t        |j                  d       y )Nr   r   r
   gh㈵>rtol)gl	
m?gkW
w?gMb@?)diatest_poisson_zeroinflation_jhr    test_poisson_zeroinflation_broekr   r   r   df)selftzi1tzi2tzi3tzi3_1s        r%   
test_countzTestCountDiagnostic.test_count-   s    00:33DHH=Ra47A:tAw"7dC00499E <f40TWWa r'   c                 V   | j                   }| j                  j                         }t        j                  | j
                        |z  }t        j                  | j                  |d d d df         }d}t        |d d |d       t        j                  ||j                  d             y )Nr   )gg<?g$h6?g-C6
?r)   r   )r   r   predict_probr   bincountr   r+   test_chisquare_probr   
plot_probsmean)r/   close_figuresr   probsfreqtzir0   s          r%   
test_probszTestCountDiagnostic.test_probs<   s    yy%%'{{4::&-%%dhha!e=*BQD1 	tUZZ]+r'   N)
__name__
__module____qualname__classmethodr&   r4   pytestmark
matplotlibr?    r'   r%   r   r      s7     4! [[, ,r'   r   c                   "    e Zd Zed        Zd Zy)TestPoissonDiagnosticClassc                    t         j                  j                  d       d}d}t        j                  |      }t        j                  |t        j
                  ddg      |z        }|j                  d   }|d d d f   |k(  j                  t         j                        }t        j
                  ddgt         j                        }||z  }t        j                  |      }	t         j                  j                  |	      }
|
| _        || _        y )	NiW:r
   r   (   <   r   g?g333333?)r   r   r   arangerepeatarrayshapeastypefloat64r   r   r   r   )r   nrn_groupslabelsxr   r   betalinpredr:   ys              r%   r&   z&TestPoissonDiagnosticClass.setup_classM   s    
		y!8$IIfbhhBx0256wwqz!T'
f$,,RZZ8 xxc
BJJ/+vvgIId#	r'   c           
         t        j                  ddgddgddgddgddgddgd	d
gg      }t        j                  ddgddgddgddgg      }t        | j                  | j                        j                  d      }t        |      } |j                         }t        j                  |j                  |j                  f      }t        ||d       | j                  j                  d   } |j                  dt        j                  |            } |j                  d      }	 |j                  d      }
 |j                  t        j                   d            }t        j"                  |d d |	d d |
d d |d d g      }t        ||d        |j                  d| j                        }t        j                  ddg      }t        |d d |d       y )NgS?gmmr?g1+?gj?gHo	?g#-^?gs&^?g\kY?g@5)?g3 ?gm`Џb?gad?gA{׿gdHϿgaް?g'}ͮ?g>7?r   )r   g:0yE>r)   broek)r   	exog_infl)r   prob   )	bin_edgesr   gIۦ%@@gPS?)r   rO   r   r   r   r   r   test_dispersioncolumn_stack	statisticpvaluer   rP   test_poisson_zeroinflationr   r8   rM   vstack)r/   res_dispersionres_zirespoir+   t_dispres_dispr   t_zi_jht_zibt_zimt_zichi2t_zit_zi_ex	res_zi_exs                  r%   test_spec_testsz*TestPoissonDiagnosticClass.test_spec_testsa   s   o.o.o.o.o.o.o.#  ////	  TYY/333;'$$$&??F$4$4fmm#DE.t<zz"0#00;=774=J...g>...f=*3**RYYq\Byy'"1+uRay%)Xbq\JKf40 1#00;?99FHHo?@	YT:r'   N)r@   rA   rB   rC   r&   rr   rG   r'   r%   rI   rI   K   s     &';r'   rI   )__doc__numpyr   numpy.testingr   r   rD   #statsmodels.discrete.discrete_modelr   'statsmodels.discrete._diagnostics_countdiscrete_diagnostics_countr+   statsmodels.discrete.diagnosticr   r   rI   rG   r'   r%   <module>r{      s6     7  7 5 5 =8, 8,v=; =;r'   