
    M/Ph                         d Z ddlmZ ddlZddlZddlm	Z	m
Z
 ddlmZ ddlmZ  G d d          Z G d	 d
e          Z G d de          ZdS )z
Tests for Results.predict
    )testingN)assert_allcloseassert_equal)OLS)GLMc                        e Zd Zd Zd Zd ZdS )CheckPredictReturnsc           	      F   | j         }| j        }|j        j        ddd         }|                    |j        ddd                   }t          j        |j        |j                   t          |j	        |j	        d           t          t          |j        |j        ddd         j	        j                            }|                    |          }t          |j        t          j        t#          |                               t          |j	        |j	        d           d S )N   
      vIh%<=rtol)resdatafittedvaluesilocpredictpdtassert_index_equalindexr   valuesdictzipcolumnsTr   nparangelen)selfr   r   fittedpredxds         c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/base/tests/test_predict.pytest_2dzCheckPredictReturns.test_2d   s    hy!&qAv.{{49Qr!V,--tz6<888V]???? #dlDIa1f$5$<$>??@@{{2TZ3t99!5!5666V]??????    c                    | j         }| j        }|                    |j        d d                   }t	          j        |j        |j        d d         j                   t          j        |j	                  }t          |j        |d         d           |j	                                        }|                                }|                    |                                j                  }t          |j        t          j        d                     t          ||d           |                    |                                          }t          |j        t          j        d                     t          |j        |d           |                    |                                                                          }t          |j        t          j        d                     t          |j        |d           d S )Nr   r   r   r   )r   r   r   r   r   r   r   r   asarrayr   r   r   meanto_framer   r   r   to_dict)r!   r   r   r#   fvfittedmxmeans          r%   test_1dzCheckPredictReturns.test_1d!   s   hy{{49RaR=))tz49RaR=+>???Z())RU7777"''))		{{5>>++-..TZ1...gE2222 {{499;;''TZ1...W59999 {{499;;..0011TZ1...W5999999r'   c                 X   | j         }| j        }|j        j        ddd         }|                    |j        j        ddd         d          }t          ||j        d           t          j
        |j        j        ddd         |j        ddd         |j        j                  }|                    |          }t          j        |j        |j                   t          |j        |j        d           |                    |j        j        d         d          }t          ||j        d	         d           |                    |j        d	                   }t          j        |j        |j        d d                    t          |j        d	         |j        d	         d           d S )
Nr   r   r   F)	transformr   r   )r   r   r   )r   r   r   r   r   modelexogr   r   pd	DataFramer   
exog_namesr   r   )r!   r   r   r"   r#   xs         r%   test_nopatsyz CheckPredictReturns.test_nopatsy<   s   hy!&qAv. {{39>!Bq&1U{CCfm%8888 L"Q/!%AbF!3!$!57 7 7 {{1~~tz6<888V]???? {{39>!,{>>fmA.U;;;; {{16!9%%tz6<+;<<<Aa(8uEEEEEEr'   N)__name__
__module____qualname__r&   r0   r9    r'   r%   r	   r	      sI        @ @ @ : : :6F F F F Fr'   r	   c                   $    e Zd Zed             ZdS )TestPredictOLSc                 2   d}t           j                            d           t           j                            |d          }|                    d          t           j                            |          z   }d t          |          D             }t          j        t          j        t          j	        ||f          d          d
                                |          | _        t          j        d	| j        
                                          | _        d S )N       r   c                     g | ]}d |z  S zobs%02dr=   .0is     r%   
<listcomp>z.TestPredictOLS.setup_class.<locals>.<listcomp>_       4441Q444r'      y var1 var2 var3r   r   y ~ var1 + var2r   )r   randomseedrandnsumranger5   r6   roundcolumn_stacksplitr   r   from_formulafitr   clsnobsr8   yr   s        r%   setup_classzTestPredictOLS.setup_classY       
	vIOOD!$$EE!HHryt,,,44d444<!Q)@)@! D D(:(@(@(B(B&+- - - "#438DDDHHJJr'   N)r:   r;   r<   classmethodr^   r=   r'   r%   r?   r?   W   s2        K K [K K Kr'   r?   c                   *    e Zd Zed             Zd ZdS )TestPredictGLMc                 2   d}t           j                            d           t           j                            |d          }|                    d          t           j                            |          z   }d t          |          D             }t          j        t          j        t          j	        ||f          d          d
                                |          | _        t          j        d	| j        
                                          | _        d S )NrA   rB   rC   r   c                     g | ]}d |z  S rE   r=   rF   s     r%   rI   z.TestPredictGLM.setup_class.<locals>.<listcomp>p   rJ   r'   rK   rL   rM   rN   rO   )r   rP   rQ   rR   rS   rT   r5   r6   rU   rV   rW   r   r   rX   rY   r   rZ   s        r%   r^   zTestPredictGLM.setup_classj   r_   r'   c           	         | j         }| j        }|j        j        ddd         }t	          j        t          |                    }||z   }|                    |j        ddd         |          }t          j	        |j
        |j
                   t          |j        |j        d           t          t          |j        |j        ddd         j        j                            }|                    ||          }t#          |j
        t	          j        t          |                               t          |j        |j        d           |j        ddd                                         }||d<   |                    ||d                   }t          j	        |j
        |j
                   t          |j        |j        d           |j        ddd                                         }||d<   t          j        |j        d<   |                    ||d                   }t          j	        |j
        |j
                   |                                }t          j        |j        d	<   t          |j        |j        d           d S )
Nr   r   r   )offsetr   r   rf   )r   r   r   )r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   copynan)	r!   r   r   r"   rf   r#   r$   data2
fitted_nans	            r%   test_predict_offsetz"TestPredictGLM.test_predict_offsetx   s(   hy!&qAv.3v;;''&{{49Qr!V,V{<<tz6<888V]???? #dlDIa1f$5$<$>??@@{{2f{--TZ3t99!5!5666V]???? 	!Bq&!&&(( h{{5x{99tz6<888V]???? 	!Bq&!&&(( h6
4{{5x{99tz6<888[[]]
V
Z%6UCCCCCCr'   N)r:   r;   r<   r`   r^   rk   r=   r'   r%   rb   rb   h   sD        K K [K!D !D !D !D !Dr'   rb   )__doc__statsmodels.compat.pandasr   r   numpyr   pandasr5   numpy.testingr   r   #statsmodels.regression.linear_modelr   +statsmodels.genmod.generalized_linear_modelr   r	   r?   rb   r=   r'   r%   <module>rs      s"    5 4 4 4 4 4         7 7 7 7 7 7 7 7 3 3 3 3 3 3 ; ; ; ; ; ;EF EF EF EF EF EF EF EFPK K K K K( K K K"1D 1D 1D 1D 1D( 1D 1D 1D 1D 1Dr'   