
    Vfd;                        d Z ddl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Z ddlmZmZmZmZmZmZmZ ddlmZmZmZ ddlmZ d	d
lmZ d                                ZdZd                                ez   dgz   Z ee         Z!ee          Z" G d d          Z# G d d          Z$ G d de#e$          Z% G d de#          Z& G d de$          Z' ej(        d          Z)dZ*dZ+ei  ej,        dg          fei  ej,        dg          fei  ej,        e+e)g          fei  ej,        e+e)e*g          fedd	i ej,        e+e)e*g          fei  ej,        e+e)e*g          fedd	i ej,        e+e)e*g          fei  ej,        e)g          fei  ej,        e)e*g          fedd	i ej,        e)e*g          fei  ej,        e)e*g          feddi ej,        e)e*g          fei  ej,        e)e*g          feddi ej,        e)e*g          fedd i ej,        e)g          fgZ-eeeeeeeegZ.d! Z/ e/            \  Z0Z1ej2        3                    d"e-          d#             Z4dS )$zK
Created on Sat Nov 13 12:48:37 2021

Author: Josef Perktod
License: BSD-3
    N)assert_allcloseassert_equal)add_constant)PredictionResultsMonotonic)BinaryModelLogitProbitPoissonNegativeBinomialNegativeBinomialPGeneralizedPoisson)ZeroInflatedPoissonZeroInflatedNegativeBinomialPZeroInflatedGeneralizedPoisson)DATA   )results_predictzaget aget2 educyr actlim totchrdocviszprivate medicaidconstc                        e Zd Zd Zd Zd ZdS )CheckPredictc                    | j         }| j        }t          | j        dd           }t          d| j        dz    d           }t	          |j        |         |j        |         | j                   t	          |j        |         |j        |         d| j        z             t	          |j        d         t          j	        |j        d                   | j                   d S )Nr   r   rtol   )
res1res2slicek_inflr   paramsr   bsenpexp)selfr   r   sl1sl2s        Glib/python3.11/site-packages/statsmodels/discrete/tests/test_predict.py
test_basiczCheckPredict.test_basic0   s    yyDKT**Aq)400C($+c*:KKKKtx}2	>JJJJBB)@)@!Y	( 	( 	( 	( 	( 	(    c                 ,   | j         }| j        }t          j        t                                        d          }|j        } |j        |fi | j        }t          |j
        |d         d         d           t          |j        |d         d         dd           t          |t                    r|                                d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           |                    d          d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           nd|                                d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           |                                \  }}t          ||j        dd           |j        } |j        dddi| j        }t          |j
        |d         d         d           t          |j        |d         d         dd           t          |t                    r|                                d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           |                    d          d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           nd|                                d         }t          |d         |d         d         dd           t          |d	         |d
         d         dd           |                                \  }}t          ||j        dd           |j        } |j        |fdt          j        d          d| j        }t          |j
        |d         d	d         d           t          |j        |d         d	d         dd           |                                }t          |d d df         |d         d	d         dd           t          |d d d	f         |d
         d	d         dd           |                                \  }}t          ||j        dd           |j        } |j        ddt          j        d          dd| j        }t          |j
        |d         d	d         d           t          |j        |d         d	d         dd           |                                }t          |d d df         |d         d	d         dd           t          |d d d	f         |d
         d	d         dd           |                                \  }}t          ||j        dd           |                    |j
                  \  }}t'          |d           t          d d         }	t          j        t+          |j        j                            }
d	|
d d<   |
|
                                z  }
 |j        d|	ddd| j        }|                                }|                    dd|
          }|                                }t          |j
        |j
        d           t          ||d           d S ) Nr   b-C6?r   se)r   atolllgMbP?r   uldeltamethodaverageTga2U0*3?g~jth?gMb@?prob   whichy_values   r9   r:   r5   g{Gzt?)value   mean)exogr9   r5   )r9   r5   agg_weightsvIh%<=gHz> )r   r   r#   asarrayr@   r?   results_margins_atmeansget_predictionpred_kwds_meanr   	predictedr.   
isinstancer   conf_intt_testtvaluesresults_margins_meanaranger   zeroslenmodelendogpred_kwds_6summary_frame)r%   r   r   exrdfpredcistat_df6awpm6dfm6pmwdfmws                  r(   test_predictzCheckPredict.test_predict;   s   yyZ""1%% *"t"2==)<==C$????T1DEEEEd677 	H#BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGGg..q1BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGGG#BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGG++--adlTBBBB'"t"GG4G43FGGC$????T1DEEEEd677 	H#BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGGg..q1BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGGG#BBqE3t9Q<d$GGGGBqE3t9Q<d$GGGG++--adlTBBBB *"t"2 :Vbill : :%)%8: :C1DAAAAT1Q3d$GGGG]]__111a4#d)AaC.t4HHHH111a4#d)AaC.t4HHHH++--adlTBBBB'"t" H")A,,+/H H373FH HC1DAAAAT1Q3d$GGGG]]__111a4#d)AaC.t4HHHH111a4#d)AaC.t4HHHH++--adlTBBBB++DN+33aT1 2A2hXc$**++,,2A2
bggii!d! 6s&$ 6 6$($46 6  ""!!"!MM  ""s}5AAAAd......r*   c                 `   | j         }|                    d          }|                    t          j        d                    }t          |j        j        d         d           t          |j        j        d         d           	 |	                    d	           d S # t          $ r Y d S w xY w)
N   )y_max   )	bin_edgesr   r;         )upp_xlim)r   get_diagnostictest_chisquare_probr#   rN   r   diff1shapeprobs_predicted
plot_probsImportError)r%   r   diares_chi2s       r(   test_diagnosticzCheckPredict.test_diagnostic   s    y!!!++**RYq\\*BBX^)!,a000S(.q12666	NNBN''''' 	 	 	DD	s   B 
B-,B-N)__name__
__module____qualname__r)   ra   rs   rC   r*   r(   r   r   .   sE        	( 	( 	(X/ X/ X/t    r*   r   c                   &    e Zd Zd Zd Zd Zd ZdS )CheckExtrasc                    | j         }t          j        t          d d                   } |j        |fddi| j        }t          |j                  |j        d         z
  }|dk    r5t          j	        |t          j
        |j        d         |f          f          }|                    |          }|                                }|                                }t          ||d           d S )N   r9   linearr   r   -q=r   )r   r#   rD   r@   rF   rG   rP   r!   rm   column_stackrO   rK   rJ   r   )r%   r   rU   rW   k_extrattcipcits           r(   test_predict_linearzCheckExtras.test_predict_linear   s    yZRaR!!"t"2MMXM9LMMdk""RXa[0Q;;"bhW/E&F&F!GHHB[[__mmookkmmSu------r*   c                    | j         }|                     t          t          j        d d d df                   }|                    dd          }t          j        |j        d d         dg|j        dd          g          }t          j	        dt          |          f          }d|d<   |j        j        d d dd f         }ddlm}  |||d	          } |||d f
          }	t          |	d d         |d d                     |||d|d          }
 |||d fd          }t          |d d         |
d d                    d S )Nr   newton,  r4   maxiterr   r   )r   )
score_test)params_constrainedk_constraints
exog_extrar7   HC0)r   r   r_matrixcov_typer   r   )r   klassrR   r@   valuesfitr#   concatenater!   rO   rP   rQ   %statsmodels.base._parameter_inferencer   r   )r%   r   modrresrparams_restrr   r   r   sc1sc2sc1_hcsc2_hcs               r(   test_score_testzCheckExtras.test_score_test   s   yzz%QQQV!455xxxx55~t{3B3'7!'+{233'7'9 : :8QL 1 1233Z_QQQV,
DDDDDDj,'(* * *j:t*<===BQBRaR)))D\*+hP P PDj$-?%*, , ,rr
F2A2J/////r*   c                    |                      t          t          j        d d d df                   }|                    dd          }t          j        |j        d d          dgg          }t          j        dt          |          f          }d|d<   t
          j
                            d           d	t
          j
                            t          j        d                   z  }dd
lm}m}  ||d |d           }t          j        |d                                                   rJ  ||d |f          }	|	d         d	k    sJ  ||d |fd          }
|
d         d	k    sJ d S )Nr   r   r   r   r   r   )r   r   iW:g{Gz?)r   _scorehess_extra)r   exog2_extra	hess_kwdsr   r   r   )r   rR   r@   r   r   r#   r   r!   rO   rP   randomseedrandnrm   r   r   r   isnanany)r%   r   r   r   r   r   r   r   shr   r   s              r(   test_score_test_alphaz!CheckExtras.test_score_test_alpha   s    zz%QQQV!455xxxx55~t{111~s&;<<8QL 1 1233 		y!!!BIOOEKN;;;
	* 	* 	* 	* 	* 	* 	* 	*
 dt*4F F F8BqE??&&((((( j4*<===1v}}}} DdJ-?%*, , ,ay4r*   c                     | j         }ddlm}  ||          }g d}|D ]}t          ||           |                                 d S )Nr   )MLEInfluence)cooks_distanced_fittedvaluesd_fittedvalues_scaledd_paramsdfbetashat_matrix_diagresid_studentized)r   $statsmodels.stats.outliers_influencer   getattrrT   )r%   r   r   influattrsattrs         r(   test_influencezCheckExtras.test_influence   sw    yEEEEEET""    	! 	!DE4    r*   N)rt   ru   rv   r   r   r   r   rC   r*   r(   rx   rx      sQ        . . .0 0 0,        D    r*   rx   c                   $    e Zd Zed             ZdS )TestNegativeBinomialPPredictc                     t           | _        t          t          t                                        dd          }|| _        t          j        | _        i | _	        i | _
        d| _        d| _        d S )Nr   r   r   r   :0yE>)r   r   rR   r@   r   r   respresults_nb_docvisr   rG   rS   r    r   )clsr   s     r(   setup_classz(TestNegativeBinomialPPredict.setup_class   s]    %	 --1131OO)
r*   Nrt   ru   rv   classmethodr   rC   r*   r(   r   r      -        	 	 [	 	 	r*   r   c                   $    e Zd Zed             ZdS )TestZINegativeBinomialPPredictc                 z   t          t          d         d          }t          t          t          |d          }t          j        g d          }|                    |dd	          }|| _        t          j
        | _        d
|                    d          i| _        d
|d d         i| _        d| _        d| _        d S )NagetF)prependr7   )	exog_inflp)gRQg{GzgRQ?g{Gz?g)\(?ggQ?g(\?gHzG?g(\?gףp=
?r   r   start_paramsr4   r   r   r   r>   r-   )r   r   r   rR   r@   r#   arrayr   r   r   results_zinb_docvisr   r?   rG   rS   r    r   )r   r   mod_zinbspr   s        r(   r   z*TestZINegativeBinomialPPredict.setup_class  s     fu===	0;DK K K X     
 ||Hc|JJ+)9>>!+<+<=&	"1"6
r*   Nr   rC   r*   r(   r   r   	  s-          [  r*   r   c                   $    e Zd Zed             ZdS )TestGeneralizedPoissonPredictc                     t           | _        t          t          t                    }|                    d          }|| _        t          j        | _        i | _	        i | _
        d| _        d| _        d S )Nr   r3   r   r   )r   r   rR   r@   r   r   r   r   r   rG   rS   r    r   )r   mod1r   s      r(   r   z)TestGeneralizedPoissonPredict.setup_class!  s]    &	!%..xxxx(()
r*   Nr   rC   r*   r(   r   r     r   r*   r         ?g      g?r   r7   loglike_methodnb1	geometricc                      t           j                            d           d} t          j        | df          }t           j                            |           }dd|z   dz  z  }t          j        |dz             }||fS )N\c:  r   r   r7         ?)r#   r   r   onesr   trunc)nobsxynys       r(   get_data_simulatedr   O  sm    INN9D
q	A			B	S2XMA
3Aa4Kr*   casec                 	   t           t          }}t          |          }t          j                            d           | \  }}}t          |t                    r|dk                        t                    } |||fi |}|}|
                    |          }	|	                    d          j        dk    sJ 	 |	                    |df                                          }
n8# t          $ r+ |	                    |                                          }
Y nw xY w ||
|fi |}|                    |dd          }|
                    |j                  }t%          |                                                                d         |
                                d	
           t%          |                                                                d         |
                                d	
           |                    d          }t%          ||                                                                d
           |                                }t%          |j        |
|z
  t          j        |          z  d
           t          |t                    s|                    dt          j        d                    }|j        t          |j                  dfk    sJ |                    dt          j        d          d          }t%          |j        |                    d          d
           |                                }|j         |t>          v rtA          j!                    5  tA          j"        dtF                     |$                                }|%                                 d d d            n# 1 swxY w Y   |j&        j        t          |
          fk    sJ 	 |'                                }|j        t          |
          fk    sJ n# tP          $ r Y nw xY w|)                                }|j        t          |
          fk    sJ |j*        }|j        t          |
          fk    sJ 	 tA          j!                    5  tA          j"        dtF                     |+                                 d d d            d S # 1 swxY w Y   d S # tX          $ r Y d S w xY wd S )Nr   r   r   )sizebfgsr   r   r   g?r   var)r9   r|   rB   r6   rz   r8   Tr<   g|=ignore)category)-y_countx_constrP   r#   r   r   
issubclassr   astypefloatget_distributionpmfndimrvssqueeze
ValueErrorr   r!   r   r?   r   predictresid_pearsonsqrtrN   rm   rR   rF   rH   rj   rn   models_influwarningscatch_warningssimplefilterUserWarningget_influencerT   residresid_score_factorAttributeErrorresid_scorer   plot_influencerp   )r   r   r   r   	cls_modelkwdsr!   mod
params_dgpdistry2resdistr2var_r?   probsprobs2rq   r   r   f_scs                        r(   
test_distrr  \  s,   GqAq66DINN9"ItV)[)) $WU##
)Aq
!
!D
!
!CJ  ,,E99Q<<!!!!,YYT1IY&&..00 , , ,YYDY!!))++, )B
"
"T
"
"C
''z&#'
F
FC !!#*--FFKKMM))++A.		DDDDFJJLL((**1-rvvxxcBBBB;;U;##DD&**,,..00u====;;==DC%T	RWT]]'BOOOOi-- &29Q<<@@{s39~~q11111##29Q<< $ ? ?(%**Q--eDDDD  "" L  $&& 	" 	"!([AAAA%%''E!!!		" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" { SWWK////	,,..E;3r77+----- 	 	 	D	 !!##{s2wwk))))*zc"gg[((((	(** ' '%hEEEE$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '  	 	 	DD	5 ! sm   8*C# #2DD-AN==OO)/P 
P&%P&;S 0S>S SS SS 
S&%S&)5__doc__r   numpyr#   numpy.testingr   r   pyteststatsmodels.tools.toolsr   &statsmodels.base._prediction_inferencer   #statsmodels.discrete.discrete_modelr   r   r	   r
   r   r   r    statsmodels.discrete.count_modelr   r   r   5statsmodels.sandbox.regression.tests.test_gmm_poissonr   resultsr   r   split
XLISTEXOG2
endog_name
exog_namesrR   r@   r   rx   r   r   r   logmualphawr   modelsr   r   r   r   markparametrizer  rC   r*   r(   <module>r&     s         7 7 7 7 7 7 7 7  0 0 0 0 0 0 M M M M M M                           G F F F F F , , , , , , /4466

%%''*4y@
ZJs s s s s s s slS S S S S S S Sl    <       \   ,    K    RVC[[
B# R3%!"hbh2w//0#R1b%.)A)AB#c1XxrxB/G/GH"B!R(@(@A"S!Hhbh2u~.F.FGb("(B4..!HBHb%[112a("(B;"7"78XRXr5k223#q828RK#8#89r828RK001(%0("(B;2G2GH(+6"G
& 

"!	   &%''  ((G G )(G G Gr*   