
    M/PhA>                     ~    d dl Z d dlZd dlmZ d dlmZ ej	        Z
 G d d          Z G d de          Zd Zd ZdS )    Nc                   *    e Zd Zed             Zd ZdS )KernelRegressionTestBasec                 $   d}t           j                            d           t           j                            dd|df          | _        t           j                            dd|df          | _        t           j                            |df          | _        t           j                            dd|df          | _        t           j                            dd|df          | _	        t           j                            |df          | _
        d	}d
}d}||| j        z  z   || j        z  z   | j
        z   | _        ||| j        z  z   || j        z  z   | j        z   | j
        z   | _        g d| _        g d| _        g d| _        g d| _        d S )N<   i@    gffffff?   size   
   333333?333333?皙@)2g&1!@g/$(@gC,#@grh< @gS%@gv/@g-F!@g;O@g+@glq@g/$@gS@gX9v@gK7A`@gn@g-@gʡE	@gv@goʡ@g+@g@gK7	!@g/$'@gV-"@g
ףp=
 @gS@g(\u@gET!@g㥛 @g-'@g/$@g/$@g(\@gzG@g!rhm@g㥛 @gMb@gQ@gx@gGz@gʡ@gh|?5@gS"@gQ(@gn#@g)\ @g/ݤ@gQ8@gvo!@g@)2  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   r   r   r   r   r   r   )2gC\g5V~?gNp?g/ٺ̗?g\vc?gP]L?g$	tܧ?g1	?V`?gV:֢?gA?gQ,bg?gbnW?g:>f^g0
?gB]	gmU?gw?gw}8l?g1ݱ?gqw\?gs ?gp,?gNB


?go- g2?g2lM?g'ei?gr@n?g7*e?g^e?g행ǊggaJEߴ{?gInfWΜ?gM R?gDI?gc+&>^?g:m?gĺeEܭ?g+)pR?g5 H?gMfk?g5|?g6?g_7|?gt^c:g8䨒2?gH¾D?g)"*n)2r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )nprandomseedbinomialoo2normalc1c2c3noiseyy2	Italy_gdp
Italy_yeargrowthoecd)clsnobsb0b1b2s        v/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pysetup_classz$KernelRegressionTestBase.setup_class
   s   
	v	""1cq	"::##As$#;;!!ay!11!!"atQi!88!!"atQi!88I$$4)$44	R#&[ 2;.:b36k!BK/#%7#)C   	1 1 1 		F 	F 	F 	
   	    c           	         ddl }|                    t          |dd                    }t          j        |          }t          t          j        |                    }t          t          j        |                    }t          j        |||f          }t          |          D ].}|
                    t          ||ddf                              /dS )z7Write some data to a csv file.  Only use for debugging!r   Nwzutf-8)encoding)csvwriteropenr   column_stackmaxshapeminreshaperangewriterowlist)self	file_namedatar/   	data_filer%   Kis           r)   
write2filez#KernelRegressionTestBase.write2file>   s    


JJtIsWEEEFF	t$$28D>>""z$a))t 	1 	1AtDAAAJ//0000	1 	1r+   N)__name__
__module____qualname__classmethodr*   r@    r+   r)   r   r   	   s=        1 1 [1f
1 
1 
1 
1 
1r+   r   c                      e Zd Zd Zd Zd ZddZddZej	        j
        ej	                            d          dd	                        Zej	        j
        d
             Zej	        j
        d             Zej	        j
        d             Zej	        j
        d             Zej	        j
        d             Zd Zd Zd Zd ZdS )TestKernelRegc                 ~   t                               | j        g| j        gddd          }|j        }d}|                                \  }}|dd         }|dd         }d}|                                }d	}t          j        ||d
           t          j        ||d
           t          j        ||d
           d S )Nlcr   cv_lsendogexogreg_typevar_typebwg>
?r      g(b@gr53D_?{Gz?atol)	nparam	KernelRegr    r!   rP   fit	r_squarednptassert_allclose	r:   modelsm_bwR_bwsm_meansm_mfxR_meansm_R2R_R2s	            r)   test_ordered_lc_cvlsz"TestKernelReg.test_ordered_lc_cvlsL   s      '7'+&7$*-' ! ; ; ))++!A#,!!! 	E4d3333GV$7777E4d333333r+   c                    t                               | j        g| j        | j        gddd          }|j        }ddg}|                                \  }}|dd         }|dd         }g d	}|                                }d
}t          j	        ||d           t          j	        ||d           t          j	        ||d           d S )NrI   ccrJ   rK   ghi?g{?r   rQ   )gٱ}?@gEB[ΥB@gxEE@g#KD@g%#gaOgB@gO/֭?rR   rS   
rU   rV   r   r   r   rP   rW   rX   rY   rZ   r[   s	            r)   test_continuousdata_lc_cvlsz)TestKernelReg.test_continuousdata_lc_cvlsd   s      xtw6H*.' ! K K 9%))++!A#,!CCC!!E4d3333GV$7777E4d333333r+   c                    t                               | j        g| j        | j        gddd          }|j        }ddg}|                                \  }}|dd         }|dd         }g d	}|                                }d
}t          j	        ||d           t          j	        ||d           t          j	        ||d           d S )Nllrf   rJ   rK   g{E{|?g:f@r   rQ   )g`(?@gB=ЦB@gAf?F@gSW^D@g?mB@gx?rR   rS   rg   r[   s	            r)   test_continuousdata_ll_cvlsz)TestKernelReg.test_continuousdata_ll_cvlsw   s      xtw6H*.' ! K K (#))++!A#,!CCC!!E4d3333GV$7777E4d333333r+   RegData.csvc                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            dd|f          }t           j                            |f          }d}d	}d
}	d}
|||z  z   |	|z  z   |
|z  z   |z   }t          j        g d          }t                              |g|||gdd|          }|                                \  }}|dd         }t          j
        |dd d f         ||	|
gd           d S )N     r	   r   r         ?皙?r   r   r   ffffff@)gX9v?gX2ı.?g0*?rj   cccrK   r   rQ   rtol)r   r   r   r   betaarrayrU   rV   rW   rY   rZ   )r:   r;   r%   C1C2C3r   r&   r'   r(   b3Ybw_cv_lsr\   r_   r`   s                   r)   test_continuous_mfx_ll_cvlsz)TestKernelReg.test_continuous_mfx_ll_cvls   sS   
	tYD8,,Ya$22Y^^C4'^22	  th //RK"R%b(50866677  s"b"*.8 ! M M))++!A#,F1QQQ3K"R$??????r+   c                    d}t           j                            d           t           j                            dd|f          }t           j                            |f          }t           j                            dd|f          }t           j                            |f          }d}d}d	}	d
}
|||z  z   |	|z  z   |
|z  z   |z   }t          j        g d          }t                              |g|||gdd|          }|                                \  }}|	                                }t          j        |dd d f         ||	|
gd           d S )Nrn   ro   r   rp   r	   r   r   r   r   rr   )g?g#J{/?gRZ?rj   ccorK   r   rq   rt   )r   r   r   r   r   rw   rU   rV   rW   rX   rY   rZ   )r:   r;   r%   ovalsrx   ry   r   r&   r'   r(   r{   r|   r}   r\   r_   r`   rb   s                    r)   test_mixed_mfx_ll_cvlsz$TestKernelReg.test_mixed_mfx_ll_cvls   sX   
	t	""1c"99YD8,,Ya$22	  th //RK"R%e+e3877788  s"b%*.8 ! M M))++!!F1aaa4L2r2,TBBBBBBr+   zATest does not make much sense - always passes with very small bw.)reasonc                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            dd|f          }t           j                            |f          }d}d	}d
}	|||z  |z  z   |	|z  z   |z   }
t
                              |
g|||gddd          }|j        }|                                \  }}|	                                }||z  }||z  }t          j        ||
d           t          j        |d d df         |d           t          j        |dddf         |dd         d           d S )Nrn   ro   r	   r   r   rp   rq   r   r   rr   rj   rs   rJ   rK   rt   r   r   )r   r   r   r   rv   rU   rV   rP   rW   rX   rY   rZ   )r:   r;   r%   rx   ry   rz   r   r&   r'   r{   r|   r\   r]   r_   r`   rb   mfx1mfx2s                     r)   test_mfx_nonlinear_ll_cvlsz(TestKernelReg.test_mfx_nonlinear_ll_cvls   s    
	tYD7++Ya$11Y^^C4'^22	  tg ..R"rBw&.  s"b"*.7 ! L L))++!!BwBwGQt4444F111a4L$T::::F1R47OT!B$ZdCCCCCCr+   c                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }d}d}d}|||z  z   ||z  z   }t                              |g|gd	d
dt                              dd                    }t                              |g|gdd
d          }	t          j        |	j	        |j	        dd           d S )Ni  90  r	   r   r   r   r   r   rI   crJ   Td   )	efficientn_subrL   rM   rN   rO   rP   defaultsrj   rK   g?g?)rT   ru   )
r   r   r   r   rU   rV   EstimatorSettingsrY   rZ   rP   )
r:   r%   rx   ry   r&   r'   r(   r|   model_efficientr\   s
             r)   test_continuous_cvls_efficientz,TestKernelReg.test_continuous_cvls_efficient   s   
	uYD8,,Ya$22RK"R% **!B4$'*w'-'?'?$FI (@ (K (K + L L
   s"*-' ! ; ;EHo&8t$OOOOOOr+   c                     d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            |f          }dd|z  z   d|z  z
  |z   }d	||d	k    <   t                              |g||gd
ddd	          }|                                \  }}t          j        |d	d d f         ddgd           d S )Nrn   ro   r	   r   r   r   r   ?r   rj   rf   rJ   )rL   rM   rN   rO   rP   
censor_valgrq   rt   )	r   r   r   r   rU   KernelCensoredRegrW   rY   rZ   )	r:   r%   rx   ry   r   r|   r\   r_   r`   s	            r)   test_censored_ll_cvlsz#TestKernelReg.test_censored_ll_cvls   s   
	tYD8,,Ya$22	  th //rMC"H$u,!A#((s"b26,3 ) C C  ))++F1QQQ3K#tTBBBBBBr+   c                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            |f          }dd|z  z   d|z  z
  |z   }t                              |g||gd	d
d          }ddg}t          j        |j        |d           d S )Nrn   ro   r	   r   r   r   r   r   rI   rf   aicrK   gn[?gLzxL?gMbP?rt   )	r   r   r   r   rU   rV   rY   rZ   rP   )r:   r%   rx   ry   r   r|   r\   bw_expecteds           r)   test_continuous_lc_aicz$TestKernelReg.test_continuous_lc_aic   s    
	tYD8,,Ya$22	  th //rMC"H$u,   s"b*.% ! I I !*-EHk======r+   c                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            dd|f          }t           j                            |f          }d}d	}||z  ||z  z   |z   }d
dg}	t
                              |g||gdd|	          }
d}|
                    ddg|          }t          j	        |dk    d           |
                    dg|          }t          j	        |dk    d           |
                    dg|          }t          j	        |dk    d           d S )N   r   r	   r   r   rp   rq   r   r   gz#/eAg =Z4Arj   rf   rK   -   r   nbootNot SignificantFT)
r   r   r   r   rv   rU   rV   sig_testrY   assert_equal)r:   r%   rx   ry   rz   r   r'   r(   r|   rP   r\   r   	sig_var12sig_var1sig_var2s                  r)   test_significance_continuousz*TestKernelReg.test_significance_continuous  s   
	uYD8,,Ya$22Y^^C4'^22	  th //Gb2g% ./  s"b*." ! F FNNAa5N66	&77???>>1#U>33%66>>>>>1#U>33%66=====r+   c                    d}t           j                            d           t           j                            dd|f          }t           j                            dd|f          }t           j                            dd|f          }t           j                            |f          }d}d	}||z  ||z  z   |z   }d
dg}	t                              |g||gdd|	          }
d}|
                    dg|          }t          j
        |dk    d           |
                    dg|          }t          j
        |dk    d           d S )Nrn   r   r   rp   r	   r   rq   r   r   gE>\@g{`2Arj   ocrK   r   r   r   r   FT)r   r   r   r   r   rv   rU   rV   r   rY   r   )r:   r%   r   ry   rz   r   r'   r(   r|   rP   r\   r   r   r   s                 r)   test_significance_discretez(TestKernelReg.test_significance_discrete  sS   
	u	""1c"99Ya$22Y^^C4'^22	  th //Jb 5(^,   s%*." ! F F >>1#U>33%66>>>>>1#U>33%66=====r+   c                    t                               | j        g| j        | j        gdddd          }|j        }ddg}|                                \  }}|dd	         }|dd	         }g d
}|                                }d}t          j	        ||d           t          j	        ||d           t          j	        ||d           d S )Nrj   rf   rJ   tricube)rL   rM   rN   rO   rP   ckertypeJbI?_vO?r   rQ   )Ͼ =>@gC</OB@gQl8F@gWD@gzA@`vO?rR   rS   rg   r[   s	            r)   test_user_specified_kernelz(TestKernelReg.test_user_specified_kernel3  s      xtw6H*.'*3 ! 5 5 &!))++!A#,!HHH!!E4d3333GV$7777E4d333333r+   c           	         t                               | j        g| j        | j        gddddd          }|j        }ddg}|                                \  }}|dd	         }|dd	         }g d
}|                                }d}t          j	        ||d           t          j	        ||d           t          j	        ||d           d S )Nrj   rf   rJ   r   r   )rL   rM   rN   rO   rP   r   r   r   r   rQ   )gJzZ4=@gl争=@gTn?@g*Q?@r   r   rR   rS   )
rU   r   r   r   r   rP   rW   rX   rY   rZ   r[   s	            r)   #test_censored_user_specified_kernelz1TestKernelReg.test_censored_user_specified_kernelG  s    ((xtw>P*.',-	 ) C C &!))++!A#,!HHH!!E4d3333GV$7777E4d333333r+   c           
          ddg}t                               | j        g| j        | j        gdd|t                               d                    }t          j        |j        |           d S )Nq=
ףp?G$ArI   rf   Tr   r   )	rU   rV   r   r   r   r   rY   r   rP   )r:   bw_userr\   s      r)   !test_efficient_user_specificed_bwz/TestKernelReg.test_efficient_user_specificed_bw[  sq    y!  xtw6H*.'*0*B*BT*B*R*R ! T T 	7+++++r+   c                    d}t           j                            d           t           j                            |f          }t           j                            dd|f          }t           j                            |f          }dd|z  z   d|z  z
  |z   }d	||d	k    <   d
dg}t                              |g||gdd|d	t                              d                    }t          j        |j	        |           d S )Nrn   ro   r	   r   r   r   r   r   r   r   r   rj   rf   Tr   )rL   rM   rN   rO   rP   r   r   )
r   r   r   r   rU   r   r   rY   r   rP   )r:   r%   rx   ry   r   r|   r   r\   s           r)   *test_censored_efficient_user_specificed_bwz8TestKernelReg.test_censored_efficient_user_specificed_bwd  s    
	tYD8,,Ya$22	  th //rMC"H$u,!A#y!((s"b26,3*0*B*BT*B*R*R ) T T
 	7+++++r+   N)rl   )rA   rB   rC   rd   rh   rk   r~   r   pytestmarkslowxfailr   r   r   r   r   r   r   r   r   r   rE   r+   r)   rG   rG   K   s       4 4 404 4 4&4 4 4$@ @ @ @&C C C C( [[ 4 5 5D D D5 5 D0 [P P P& [C C C [> > >( [> > >. [> > >.4 4 4(4 4 4(, , ,, , , , ,r+   rG   c                      t          j        d          } | dz  }t          j        t                    5  t
                              | |dddg           d d d            d S # 1 swxY w Y   d S )N  r   r   g      )@g      ?)rP   )r   aranger   raises
ValueErrorrU   rV   xr   s     r)   test_invalid_bwr   v  s    
	#A	QA	z	"	" 3 3Asbz2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   !A!!A%(A%c            
         t          j        d          } | dz  }t          j        t                    5  t
                              | |dddd           d d d            n# 1 swxY w Y   t          j        t                    5  t
                              | |ddddd	           d d d            d S # 1 swxY w Y   d S )
Nr   r   rj   rf   rJ   	silverman)rN   rO   rP   r   r   )rN   rO   rP   r   r   )r   r   r   r   r   rU   rV   r   r   s     r)   test_invalid_kernelr   ~  s`   
	#A	QA	z	"	" / /At"- 	 	/ 	/ 	// / / / / / / / / / / / / / / 
z	"	" E E  At,- 	! 	E 	E 	EE E E E E E E E E E E E E E E E E Es#   !A  A$'A$"B33B7:B7)r   numpyr   numpy.testingtestingrY   statsmodels.apiapismnonparametricrU   r   rG   r   r   rE   r+   r)   <module>r      s                    		?1 ?1 ?1 ?1 ?1 ?1 ?1 ?1Dh, h, h, h, h,, h, h, h,V	3 3 3
E 
E 
E 
E 
Er+   