U
    ÃmœdÀ'  ã                   @   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   Ú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© r8   úb/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/regression/tests/test_predict.pyÚtest_predict_se   s|    

 
  ÿ ÿ$
$ $(  ÿ ÿÿ"*r:   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<   r0   r2   r1   Zy_trueÚeÚyÚmod_wlsr8   r8   r9   Ú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ÚexogrF   ÚindexÚvalues)Úselfr>   r4   r5   r6   Zpred_resÚciZsfZ	col_namesZ	pred_res2Zci2Zsf2r/   Ú	pred_res3Úci3Ú
pred_res3bÚci3bÚres_dfr8   r8   r9   Ú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_univariaterE   r   )Úlinks)Úlinkr   r   )!Z+statsmodels.genmod.generalized_linear_modelrW   r>   rK   ÚendogrL   r   r   r)   r%   r   rH   r   rN   Z&statsmodels.base._prediction_inferencerZ   Úparamsr&   r=   ÚexpZbserG   Zstatsmodels.genmod.familiesr[   ZIdentityZtvaluesZse_meanZt_testZpvaluesrF   rJ   r   rM   )rO   rW   r>   rC   rB   r@   ZwiZw_sqrtZmod_glmZres_glmZpred_glmZsf_glmZpred_res_wlsZsf_wlsZ	n_comparerZ   ZratesZrates2r[   ÚptZpttr/   rQ   rR   rS   rT   rU   r8   r8   r9   Útest_glm¶   s|    
ÿÿþ  ÿ


zTestWLSPrediction.test_glmN)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodrD   rV   ra   r8   r8   r8   r9   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Úir8   r8   r9   Ú
<listcomp>  s     z,test_predict_remove_data.<locals>.<listcomp>éd   c                 S   s   g | ]}|‘qS r8   r8   rf   r8   r8   r9   ri     s     c                 S   s   g | ]}d ‘qS )r   r8   )rg   Ú_r8   r8   r9   ri     s     r   r   )Úranger   r%   r,   Zremove_datar   Zpredicted_meanr   rH   ÚpdZSeries)r]   rL   rK   ZscalarÚpredZone_dZseriesr8   r8   r9   Útest_predict_remove_data  s     
ro   )Ú__doc__Únumpyr   Znumpy.testingr   r   Zpandasrm   Z#statsmodels.regression.linear_modelr   r   Z&statsmodels.sandbox.regression.predstdr   Z"statsmodels.regression._predictionr   r:   r;   ro   r8   r8   r8   r9   Ú<module>   s   [ 