
    M/Ph'                     x    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 Z G d d	          Z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                      d} t          j        dd|           }t           j        ||dz
  dz  t          j        |           f         }t           j                            d           g d}t          j        ||          }t          j        |           }d|t          | dz  d	z            d <   d
}|||z  t           j                            |           z  z   }|d d ddgf         }t          ||          
                                }	|	                                }
|	j        |t          j        |
|j                  j        z                      d          z   }t          j        |          }t!          |	          \  }}}t           j                            ||d           d}||z  }t           j                            ||	j        |z   d           t           j                            ||	j        |z
  d           t!          |	|d dd d f                   \  }}}t           j                            ||d d                    t           j                            ||	j        d d         |d d         z   d           t           j                            ||	j        d d         |d d         z
  d           t-          ||d|z            
                                }|                                }
|j        |z  |t          j        |
|j                  j        z                      d          z   }t          j        |          }t!          |          \  }}}t           j                            ||d           d}||z  }t           j                            ||j        |z   d           t           j                            ||j        |z
  d           t!          ||dd d d f         d          \  }}}t           j                            ||d                    t!          ||dd d f         d          \  }}}t           j                            ||d                    t!          ||dd d d f         d          \  }}}t           j                            ||dd                     t!          ||dd d d f         ddg          \  }}}t           j                            ||dd                     t!          ||d dd d f                   \  }}}t           j                            ||d d                    t           j                            ||j        d d         |d d         z   d           t           j                            ||j        d d         |d d         z
  d           t           j                            t0          t           ||d         d           t!          ||dd d d f                   d         dz  }t          j        d
dd          D ]Z}t!          ||dd d d f         d|z            d         dz  }t           j                            |||j        |dz
  z  z              [d S )N2   r            )      ?{Gz      @         @
   r   size      gM @g:0yE>rtol      ?g      @weights)r   r   )nplinspacec_onesrandomseeddotintnormalr   fit
cov_params	mse_residTsumsqrtr   testingassert_almost_equalr   fittedvaluesr   r   assert_raises
ValueErrorscale)nsamplex1xbetay_true2wsigy2x2res2covbpredvarpredstdprstdiv_liv_uqci_halfres3sew1wvsews                         i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/regression/tests/test_predict.pytest_predict_serL      sb   
 G	QG	$	$B
b26A+rww///0AINN1DfQooG
A!"Ac'B,

C	37RY--7-;;;	;B	
111aU7B r2;;??D ??DnRVD"$%7%7%9 9>>qAAAGggG*400E4J""5'2666 	A'kGJtT%6%@tLLLJtT%6%@tLLL*4BQBqqqD::E4JE5!9---JtT%6rr%:WRaR[%H$(  * * *JtT%6rr%:WRaR[%H$(  * * *
 r2rAv""$$D ??Dnq Bbd););)=$=#B#B1#E#EEGggG*400E4J""5'2666 	A'kGJtT%6%@tLLLJtT%6%@tLLL +4BCCEBGGGE4JE59---*4BqqqD2FFFE4JE59---*4BCCEBGGGE4JE5:...*4BCCEQFKKKE4JE5:...*4BQBqqqD::E4JE5!9---JtT%6rr%:WRaR[%H$(  * * *JtT%6rr%:WRaR[%H$(  * * *
 JZ);T2d8%'  ) ) ) dBrss111uI..q114Dk#q!$$ F F r"##aaa%y"r'BBB1EqH

""3tzR!V/D(DEEEEF F    c                   0    e Zd Zed             Zd Zd ZdS )TestWLSPredictionc                    d}t          j        dd|          }t          j        ||dz
  dz  f          }ddlm}  ||          }g d}d}t          j        |          }d	|t          |d
z  dz            d <   t          j        ||          }t           j        	                    |          }	|||z  |	z  z   }
|d d ddgf         }t          |
|d|z            }|                                | _        d S )Nr
   r   r   r   r   )add_constant)r   r   r   r   r   r   r   r   r   r   r   )r    r!   column_stackstatsmodels.tools.toolsrQ   r#   r'   r&   r$   r(   r   r)   res_wls)clsr5   r7   XrQ   r8   r;   r:   y_trueeymod_wlss               rK   setup_classzTestWLSPrediction.setup_classn   s   
 K2w''OQQ
O,,888888LOOGG%&#glR
 
 
!
!"4I'**S1Wq[ aaa1gJ
 aBqD)))kkmmrM   c                 >   | j         }t          |          \  }}}t          |          }|                    d          }t	          |j        |d           t	          |t          j        ||f          d           |                                }g d}t          |j
                                        |           |                                }	|	                    d          }
t	          |	j        |d           t	          |
t          j        ||f          d           |	                                }t          |j
                                        |           |j        j                            d          }|                    |g          }|                    d          }|                    |                                          }|                    d          }t	          |j        |j        d           t	          ||d           |                                }t          |j        j        dg           |j        j        dd          }|                    |          }|                    d          }|                    |                                          }|                    d          }t	          |j        |j        d           t	          ||d           |                                }t          |j        j        ddg           d S )	NT)obsvIh%<=r   )meanmean_semean_ci_lowermean_ci_upperobs_ci_lowerobs_ci_upperr   r   r   )rT   r   r   conf_intr   se_obsr    rR   summary_framer   columnstolistmodelexogr_   indexvalues)selfrT   rB   rC   rD   pred_rescisf	col_names	pred_res2ci2sf2r7   	pred_res3ci3
pred_res3bci3bres_dfs                     rK   test_cizTestWLSPrediction.test_ci   s   ,.w77tT!'**4((U;;;;BOT4L99FFFF##%%5 5 5	RZ&&(()444**,,	  T **	(%e<<<<R_dD\::GGGG%%''S[''))9555 M##A&&**A3//	  T **++AHHJJ77
""t",,
)9+;%HHHHc....))++V\(1#...Mrss#**1--	  T **++AHHJJ77
""t",,
)9+;%HHHHc....))++V\(1a&11111rM   c                 	   ddl m} | j        }|j        }|j        |j        |j        }}}t          j        |          } |||z  ||d d d f         z            }|	                    d          }	|	
                                }
|
                                }|
                                }|                                }d}t          |j        d |         |j        d |d df                    |	                                }	|	
                                }
|
                                }|	                    d          }|
                                }|                                }t          |j        d |         |j        d |d df                    ddlm}  ||	j        |	                                          }t          j        t          j        |	j                  |	j        t          j        |	j                  z  t          j        |	                                          f          }t          |                                j        |d	
           ddlm}  ||	j        |	                                |                                          }t          |j        |	j        d	
           t          |j        |	j        d	
           |                                }t          |d         |	j        d	
           t          |d         |	j        d	
           |	                                }	|	
                    |          }
|	j        j                            d          }|	
                    |          }|                                }|	
                    |                                          }|                                }t          |j        |j        d	
           t          ||d	
           |                                }t?          |j         j        dg           |	j        j        dd          }|	
                    |          }|                                }|	
                    |                                          }|                                }t          |j        |j        d	
           t          ||d	
           |                                }t?          |j         j        ddg           d S )Nr   )GLMT)use_t      F)params_transform_univariater^   r   )links)linkr   r   )!+statsmodels.genmod.generalized_linear_modelr}   rT   rj   endogrk   r   r    r.   r)   r   rg   r   rm   &statsmodels.base._prediction_inferencer   paramsr*   rR   expbsere   statsmodels.genmod.familiesr   Identitytvaluesse_meant_testpvaluesr_   ri   r   rl   )rn   r}   rT   rZ   rY   rV   wiw_sqrtmod_glmres_glmpred_glmsf_glmpred_res_wlssf_wls	n_comparer   ratesrates2r   ptpttr7   rv   rw   rx   ry   rz   s                              rK   test_glmzTestWLSPrediction.test_glm   s   CCCCCC,-=',b1#a&j!fQQQtVn"455 ++D+))))++''))--//++--	jyj1jyj"1"n5	7 	7 	7
 ++--))++''))++E+**--//++--jyj1jyj"1"n5	7 	7 	7
	 	 	 	 	 	 ,+GNG<N<N<P<PQQ"&"8"8")+w~0F0F"F"$&)9)9););"<"<"> ? ? 	++--4f5IIII555555 )(NG..00u~~7G7G
 
 
 	
GO%@@@@
GKe<<<<iikkAe<<<<Ae<<<< ++--))!,, M##A&&**1--	  ""++AHHJJ77
""$$
*I,=EJJJJc....))++V\(1#...Mrss#**1--	  ""++AHHJJ77
""$$
*I,=EJJJJc....))++V\(1a&11111rM   N)__name__
__module____qualname__classmethodr[   r{   r    rM   rK   rO   rO   l   sQ        $ $ [$0+2 +2 +2\R2 R2 R2 R2 R2rM   rO   c                  F   d t          d          D             } d t          d          D             }t          | |d t          d          D                                                       }|j         |                                 |                    d          j        }|                    dg          }|j        }t          ||           |                                 |                    t          j
        dg                    j        }t          ||           d S )Nc                 T    g | ]%}|t           j                            d           z   &S )g?)r4   )r    r$   r(   .0is     rK   
<listcomp>z,test_predict_remove_data.<locals>.<listcomp>  s0    AAAQ!!!,,,AAArM   d   c                     g | ]}|S r   r   r   s     rK   r   z,test_predict_remove_data.<locals>.<listcomp>  s    """!A"""rM   c                     g | ]}d S )r   r   )r   _s     rK   r   z,test_predict_remove_data.<locals>.<listcomp>  s    %<%<%<Aa%<%<%<rM   r   r   )ranger   r)   r4   remove_datar   predicted_meanr   rg   pdSeries)r   rk   rj   scalarpredone_dseriess          rK   test_predict_remove_datar   
  s   AAeCjjAAAE""uSzz"""Dt%<%<s%<%<%<===AACCE	KK	!!!$$3F$$DEFE"""!!")QC..11@FFF#####rM   )__doc__numpyr    numpy.testingr   r   pandasr   #statsmodels.regression.linear_modelr   r   &statsmodels.sandbox.regression.predstdr   "statsmodels.regression._predictionr   rL   rO   r   r   rM   rK   <module>r      s         7 7 7 7 7 7 7 7     8 8 8 8 8 8 8 8 E E E E E E = = = = = =XF XF XFv[2 [2 [2 [2 [2 [2 [2 [2|$ $ $ $ $rM   