
    M/PhF                         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dS )
z=
Created on Fri Sep 15 13:38:13 2017

Author: Josef Perktold
    N)assert_allcloseassert_equal)Poisson)PoissonDiagnosticc                   T    e Zd Zed             Zd Zej        j        d             Z	dS )TestCountDiagnosticc                    g d}t           j                            d           d}t          j        |df          }d|d |dz  df<   d}t          j        |                    |d d                   |z             }t           j                            |dz            }t          ||          }|                    d	d
d          }|| _	        || _
        || _        || _        d S )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	            j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/discrete/tests/test_diagnostic.pysetup_classzTestCountDiagnostic.setup_class   s     &++
	vway!!XdAgXq[ &/#2#"677&@AAI%%gk22	 It,,	--vt%-HH	    c                 P   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           d S )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::3DH==RaR47A:tAw"7dCCCC049EE <f40000TWa     r'   c                 R   | j         }| j                                        }t          j        | j                  |z  }t          j        | j        |d d d df                   }d}t          |d d         |d           t          j	        ||
                    d                     d S )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    y%%''{4:&&-%dhaaa!e==*BQBD1111 	tUZZ]]+++++r'   N)
__name__
__module____qualname__classmethodr&   r4   pytestmark
matplotlibr?    r'   r%   r   r      s]          [4! ! ! [, , , , ,r'   r   c                   *    e Zd Zed             Zd ZdS )TestPoissonDiagnosticClassc                    t           j                            d           d}d}t          j        |          }t          j        |t          j        ddg          |z            }|j        d         }|d d d f         |k                        t           j                  }t          j        ddgt           j                  }||z  }t          j	        |          }	t           j        
                    |	          }
|
| _        || _        d S )	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$$IfbhBx002566wqz!!!T'
f$,,RZ88 xc
BJ//+vgI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                                      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           d S )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.#   ////	   TY//333;;''$$&&?F$4fm#DEE.t<<<<z"0#0;=74==J J J..g>>>..f===*3*RYq\\BBBy'"1"+uRaRy%)Xbqb\JKKf40000 1#0;?9F F FHo?@@	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{      s         7 7 7 7 7 7 7 7  7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 = = = = = =8, 8, 8, 8, 8, 8, 8, 8,v=; =; =; =; =; =; =; =; =; =;r'   