U
    KvfÀ'  ã                   @   sn   d Z ddlZddlmZmZ ddlZddlm	Z	m
Z
 ddlmZ ddlmZ dd„ ZG d	d
„ d
ƒZdd„ ZdS )z>
Created on Sun Apr 20 17:12:53 2014

author: Josef Perktold

é    N)Úassert_allcloseÚassert_equal)ÚOLSÚWLS)Úwls_prediction_std)Úget_predictionc                  C   sl  d} t  dd| ¡}t j||d d t  | ¡f }t j d¡ dddg}t  ||¡}t  | ¡}d	|t| d
 d ƒd …< d}||| t jj| d  }|d d …ddgf }t	||ƒ 
¡ }	|	 ¡ }
|	j|t  |
|j¡j  d¡ }t  |¡}t|	ƒ\}}}t j ||d¡ d}|| }t jj||	j| dd t jj||	j| dd t|	|d d	…d d …f ƒ\}}}t j ||d d	… ¡ t jj||	jd d	… |d d	…  dd t jj||	jd d	… |d d	…  dd t||d| ƒ 
¡ }| ¡ }
|j| |t  |
|j¡j  d¡ }t  |¡}t|ƒ\}}}t j ||d¡ d}|| }t jj||j| dd t jj||j| dd t||dd …d d …f dd\}}}t j ||d ¡ t||dd d …f dd\}}}t j ||d ¡ t||dd …d d …f dd\}}}t j ||dd … ¡ t||dd …d d …f d	d	gd\}}}t j ||dd … ¡ t||d d	…d d …f ƒ\}}}t j ||d d	… ¡ t jj||jd d	… |d d	…  dd t jj||jd d	… |d d	…  dd t jjtt||d dd t||dd …d d …f ƒd d }t  dd	d¡D ]L}t||dd …d d …f d| dd d }t j |||j|d   ¡ qd S )Né2   r   é   é   é   ç      à?ç{®Gáz„¿ç      @é   ç      @é
   ©Úsizeé   é   gMúœ¬Ç @gê-™—q=©Zrtolç      ð?éÿÿÿÿg      @©Úweightséþÿÿÿ)r   r   éýÿÿÿ)ÚnpÚlinspaceZc_ÚonesÚrandomÚseedÚdotÚintÚnormalr   ÚfitÚ
cov_paramsZ	mse_residÚTÚsumÚsqrtr   ZtestingZassert_almost_equalr   Zfittedvaluesr   r   Zassert_raisesÚ
ValueErrorÚscale)ÚnsampleÚx1ÚxÚbetaZy_true2ÚwÚsigÚy2Zx2Zres2ZcovbZpredvarZpredstdÚprstdÚiv_lÚiv_uÚqZci_halfZres3Zsew1ZwvZsew© r7   úM/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/regression/tests/test_predict.pyÚtest_predict_se   s|    

 
  ÿ ÿ$
$ $(  ÿ ÿÿ"*r9   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestWLSPredictionc                 C   sÊ   d}t  dd|¡}t  ||d d f¡}ddlm} ||ƒ}ddd	g}d}t  |¡}d
|t|d d ƒd …< t  ||¡}t jj	|d}	||| |	  }
|d d …ddgf }t
|
|d| d}| ¡ | _d S )Nr   r   r	   r
   r   )Úadd_constantr   r   r   r   r   r   r   r   r   r   )r   r   Úcolumn_stackZstatsmodels.tools.toolsr;   r   r#   r"   r    r$   r   r%   Úres_wls)Úclsr,   r.   ÚXr;   r/   r1   r0   Zy_trueÚeÚyÚmod_wlsr7   r7   r8   Úsetup_classo   s    

zTestWLSPrediction.setup_classc                 C   sÂ  | j }t|ƒ\}}}t|ƒ}|jdd}t|j|dd t|t ||f¡dd | ¡ }ddddd	d
g}t	|j
 ¡ |ƒ | ¡ }	|	jdd}
t|	j|dd t|
t ||f¡dd |	 ¡ }t	|j
 ¡ |ƒ |jj d¡}| |g¡}|jdd}| | ¡ ¡}|jdd}t|j|jdd t||dd | ¡ }t	|jjdgƒ |jjdd … }| |¡}|jdd}| | ¡ ¡}|jdd}t|j|jdd t||dd | ¡ }t	|jjddgƒ d S )NT)Zobsç‚vIhÂ%<=r   ÚmeanZmean_seZmean_ci_lowerZmean_ci_upperZobs_ci_lowerZobs_ci_upperr   r   r   )r=   r   r   Úconf_intr   Zse_obsr   r<   Úsummary_framer   ÚcolumnsÚtolistÚmodelÚexogrE   ÚindexÚvalues)Úselfr=   r3   r4   r5   Zpred_resÚciZsfZ	col_namesZ	pred_res2Zci2Zsf2r.   Ú	pred_res3Úci3Ú
pred_res3bÚci3bÚres_dfr7   r7   r8   Útest_ciˆ   sH     ÿ
zTestWLSPrediction.test_cic                 C   sÔ  ddl m} | j}|j}|j|j|j  }}}t |¡}||| ||d d …d f  ƒ}|j	dd}	|	 
¡ }
|
 ¡ }| 
¡ }| ¡ }d}t|jd |… |jd |…d d…f ƒ | 	¡ }	|	 
¡ }
|
 ¡ }|j	dd}| 
¡ }| ¡ }t|jd |… |jd |…d d…f ƒ ddlm} ||	j|	 ¡ ƒ}t t |	j¡|	jt |	j¡ t |	 ¡ ¡f¡}t| ¡ j|d	d
 ddlm} ||	j|	 ¡ | ¡ d}t|j|	jd	d
 t|j|	jd	d
 | ¡ }t|d |	jd	d
 t|d |	jd	d
 | 	¡ }	|	 
|¡}
|	jj d¡}|	 
|¡}| ¡ }|	 
| ¡ ¡}| ¡ }t|j|jd	d
 t||d	d
 | ¡ }t|j jdgƒ |	jjdd … }|	 
|¡}| ¡ }|	 
| ¡ ¡}| ¡ }t|j|jd	d
 t||d	d
 | ¡ }t|j jddgƒ d S )Nr   )ÚGLMT)Zuse_té   é   F)Úparams_transform_univariaterD   r   )Úlinks)Úlinkr   r   )!Z+statsmodels.genmod.generalized_linear_modelrV   r=   rJ   ÚendogrK   r   r   r)   r%   r   rG   r   rM   Z&statsmodels.base._prediction_inferencerY   Úparamsr&   r<   ÚexpZbserF   Zstatsmodels.genmod.familiesrZ   ZIdentityZtvaluesZse_meanZt_testZpvaluesrE   rI   r   rL   )rN   rV   r=   rB   rA   r?   ZwiZw_sqrtZmod_glmZres_glmZpred_glmZsf_glmZpred_res_wlsZsf_wlsZ	n_comparerY   ZratesZrates2rZ   ÚptZpttr.   rP   rQ   rR   rS   rT   r7   r7   r8   Útest_glm¶   s|    
ÿÿþ  ÿ


zTestWLSPrediction.test_glmN)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodrC   rU   r`   r7   r7   r7   r8   r:   m   s   
.r:   c                  C   s¤   dd„ t dƒD ƒ} dd„ t dƒD ƒ}t| |dd„ t dƒD ƒd ¡ }|j | ¡  | d¡j}| dg¡}|j}t||ƒ | ¡  | t	 
dg¡¡j}t||ƒ d S )Nc                 S   s   g | ]}|t jjd d ‘qS )gš™™™™™¹?)r+   )r   r    r$   ©Ú.0Úir7   r7   r8   Ú
<listcomp>  s     z,test_predict_remove_data.<locals>.<listcomp>éd   c                 S   s   g | ]}|‘qS r7   r7   re   r7   r7   r8   rh     s     c                 S   s   g | ]}d ‘qS )r   r7   )rf   Ú_r7   r7   r8   rh     s     r   r   )Úranger   r%   r+   Zremove_datar   Zpredicted_meanr   rG   ÚpdZSeries)r\   rK   rJ   ZscalarÚpredZone_dZseriesr7   r7   r8   Útest_predict_remove_data  s     
rn   )Ú__doc__Znumpyr   Znumpy.testingr   r   Zpandasrl   Z#statsmodels.regression.linear_modelr   r   Z&statsmodels.sandbox.regression.predstdr   Z"statsmodels.regression._predictionr   r9   r:   rn   r7   r7   r7   r8   Ú<module>   s   [ 