ó
áp7]c           @   s  d  Z  d d l Z d d l m Z m Z d d l Z d d l m Z d d l	 j
 Z d d l m Z d d l m Z d d l m Z d Z d	 Z d
 Z d Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  e j! j" d  „  ƒ Z# d S(!   s   
Test functions for sm.rlm
iÿÿÿÿN(   t   assert_almost_equalt   assert_allclose(   t   stats(   t   RLM(   t   norms(   t
   HuberScalei   i   i   i   t   CheckRlmResultsMixinc           B   sƒ   e  Z d  Z d „  Z e Z d „  Z d „  Z e Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z e Z d	 „  Z d
 „  Z d „  Z RS(   sû   
    res2 contains  results from Rmodelwrap or were obtained from a statistical
    packages such as R, Stata, or SAS and written to results.results_rlm

    Covariance matrices were obtained from SAS and are imported from
    results.results_rlm
    c         C   s    t  |  j j |  j j t ƒ d  S(   N(   R    t   res1t   paramst   res2t	   DECIMAL_4(   t   self(    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_params   s    c         C   s#   t  |  j j |  j j |  j ƒ d  S(   N(   R    R   t   bseR	   t   decimal_standarderrors(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_standarderrors    s    c         C   sH   t  |  j d ƒ s" t j d ƒ n  t |  j j ƒ  |  j j ƒ  t ƒ d  S(   Nt   conf_ints   Results from R(   t   hasattrR	   t   pytestt   skipR    R   R   R
   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_confidenceintervals%   s    c         C   s#   t  |  j j |  j j |  j ƒ d  S(   N(   R    R   t   scaleR	   t   decimal_scale(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt
   test_scale.   s    c         C   s    t  |  j j |  j j t ƒ d  S(   N(   R    R   t   weightsR	   R
   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_weights2   s    c         C   s    t  |  j j |  j j t ƒ d  S(   N(   R    R   t   residR	   R
   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_residuals5   s    c         C   sB   t  |  j j j |  j j t ƒ t  |  j j j |  j j t ƒ d  S(   N(   R    R   t   modelt   df_modelR	   R
   t   df_resid(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_degrees8   s    c         C   sB   t  |  j d ƒ s" t j d ƒ n  t |  j j |  j j t ƒ d  S(   Nt   bcov_unscaleds   No unscaled cov matrix from SAS(   R   R	   R   R   R    R   R    R
   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_bcov_unscaled>   s    c         C   sa   t  |  j j |  j j |  j ƒ t  |  j j |  j j |  j ƒ t  |  j j |  j j |  j ƒ d  S(   N(   R    R   t   bcov_scaledR	   t   h1t   decimal_bcov_scaledt   h2t   h3(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_bcov_scaledG   s    

c         C   sE   t  |  j d ƒ s" t j d ƒ n  t |  j j |  j j d d ƒd  S(   Nt   tvaluess   No tvalues in benchmarkt   rtolgú~j¼t“h?(   R   R	   R   R   R   R   R(   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_tvaluesO   s    c         C   s´   |  j  j } | |  j  j } t j j t j | ƒ ƒ d } t j j d ƒ |  j  j } t j	 | | | | f ƒ } t
 |  j  j | ƒ t
 |  j  j | ƒ t
 |  j  j ƒ  | ƒ d  S(   Ni   gš™™™™™™?(   R   R   R   R   t   normt   sft   npt   abst   isft   column_stackR    R(   t   pvaluesR   (   R   R   R(   R1   t
   half_widthR   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_tpvaluesU   s    (   t   __name__t
   __module__t   __doc__R   R
   R   R   R   R   R   R   R   R   R!   R$   R'   R*   R3   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyR      s   										t   TestRlmc           B   s5   e  Z e d  „  ƒ Z d „  Z e j j d „  ƒ Z RS(   c         C   s×   d d l  m } | d t ƒ |  _ t j |  j j d t ƒ|  j _ t |  _ t	 |  _
 t |  j j |  j j d t j ƒ  ƒ} | j ƒ  } | j d d ƒ j } | j d d ƒ j } | |  _ | |  j _ | |  j _ d  S(	   Niÿÿÿÿ(   t   loadt	   as_pandast   prependt   Mt   covt   H2t   H3(   t   statsmodels.datasets.stacklossR8   t   Falset   datat   smt   add_constantt   exogt	   DECIMAL_1R   t	   DECIMAL_3R   R   t   endogR   t   HuberTt   fitR"   R   R%   R&   (   t   clsR8   R   t   resultsR%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   setup_classd   s    !		'	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   Huber(   t   results.results_rlmRM   R	   (   R   RM   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   setupu   s    c         C   s   |  j  j ƒ  d  S(   N(   R   t   summary(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_summaryy   s    (	   R4   R5   t   classmethodRL   RO   R   t   markt   smokeRQ   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyR7   c   s   	t
   TestHampelc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s°   t  t |  ƒ j ƒ  t |  _ t |  _ t |  _ t |  j	 j
 |  j	 j d t j ƒ  ƒ} | j ƒ  } | j d d ƒ j } | j d d ƒ j } | |  _ | |  j _ | |  j _ d  S(   NR;   R<   R=   R>   (   t   superRU   RL   t	   DECIMAL_2R   RF   R   R$   R   RA   RG   RD   R   t   HampelRI   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL      s    			'	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   RX   (   RN   RX   R	   (   R   RX   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO      s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRU   ~   s   t   TestRlmBisquarec           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   sž   t  t |  ƒ j ƒ  t |  _ t |  j j |  j j d t	 j
 ƒ  ƒ} | j ƒ  } | j d d ƒ j } | j d d ƒ j } | |  _ | |  j _ | |  j _ d  S(   NR;   R<   R=   R>   (   RV   RY   RL   RE   R   R   RA   RG   RD   R   t   TukeyBiweightRI   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   •   s    	'	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   BiSquare(   RN   R[   R	   (   R   R[   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO   £   s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRY   ”   s   t   TestRlmAndrewsc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s•   t  t |  ƒ j ƒ  t |  j j |  j j d t j ƒ  ƒ} | j	 ƒ  } | j	 d d ƒ j
 } | j	 d d ƒ j
 } | |  _ | |  j _ | |  j _ d  S(   NR;   R<   R=   R>   (   RV   R\   RL   R   RA   RG   RD   R   t
   AndrewWaveRI   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   ©   s    '	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   Andrews(   RN   R^   R	   (   R   R^   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO   µ   s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyR\   ¨   s   t   TestRlmHuberc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   sà   d d l  m } | d t ƒ |  _ t j |  j j d t ƒ|  j _ t |  j j |  j j d t	 j
 ƒ  ƒ} | j d t ƒ  ƒ } | j d d d t ƒ  ƒ j } | j d d	 d t ƒ  ƒ j } | |  _ | |  j _ | |  j _ d  S(
   Niÿÿÿÿ(   R8   R9   R:   R;   t	   scale_estR<   R=   R>   (   R?   R8   R@   RA   RB   RC   RD   R   RG   R   RH   RI   R   R"   R   R%   R&   (   RJ   R8   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   ¾   s    !'	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t
   HuberHuber(   RN   Ra   R	   (   R   Ra   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO   Ì   s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyR_   ½   s   t   TestHampelHuberc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s°   t  t |  ƒ j ƒ  t |  j j |  j j d t j ƒ  ƒ} | j	 d t
 ƒ  ƒ } | j	 d d d t
 ƒ  ƒ j } | j	 d d d t
 ƒ  ƒ j } | |  _ | |  j _ | |  j _ d  S(   NR;   R`   R<   R=   R>   (   RV   Rb   RL   R   RA   RG   RD   R   RX   RI   R   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   Ò   s    '	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   HampelHuber(   RN   Rc   R	   (   R   Rc   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO   Þ   s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRb   Ñ   s   t   TestRlmBisquareHuberc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s°   t  t |  ƒ j ƒ  t |  j j |  j j d t j ƒ  ƒ} | j	 d t
 ƒ  ƒ } | j	 d d d t
 ƒ  ƒ j } | j	 d d d t
 ƒ  ƒ j } | |  _ | |  j _ | |  j _ d  S(   NR;   R`   R<   R=   R>   (   RV   Rd   RL   R   RA   RG   RD   R   RZ   RI   R   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   ä   s    '	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   BisquareHuber(   RN   Re   R	   (   R   Re   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO   ð   s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRd   ã   s   t   TestRlmAndrewsHuberc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s°   t  t |  ƒ j ƒ  t |  j j |  j j d t j ƒ  ƒ} | j	 d t
 ƒ  ƒ } | j	 d d d t
 ƒ  ƒ j } | j	 d d d t
 ƒ  ƒ j } | |  _ | |  j _ | |  j _ d  S(   NR;   R`   R<   R=   R>   (   RV   Rf   RL   R   RA   RG   RD   R   R]   RI   R   R"   R   R%   R&   (   RJ   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   ö   s    '	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   t   AndrewsHuber(   RN   Rg   R	   (   R   Rg   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO     s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRf   õ   s   t   TestRlmSresidc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   sÝ   d d l  m } | d t ƒ |  _ t j |  j j d t ƒ|  j _ t |  _ t	 |  _
 t |  j j |  j j d t j ƒ  ƒ} | j d d ƒ } | j d d	 ƒ j } | j d d
 ƒ j } | |  _ | |  j _ | |  j _ d  S(   Niÿÿÿÿ(   R8   R9   R:   R;   t   convt   sresidR<   R=   R>   (   R?   R8   R@   RA   RB   RC   RD   RE   R   RF   R   R   RG   R   RH   RI   R"   R   R%   R&   (   RJ   R8   R   RK   R%   R&   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRL   	  s    !		'	c         C   s    d d l  m } | ƒ  |  _ d  S(   Ni   (   RM   (   RN   RM   R	   (   R   RM   (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRO     s    (   R4   R5   RR   RL   RO   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyRh     s   c          C   sX   d d  l  j j }  i d d d d g d 6d d d t j g d 6} |  j d	 d
 | ƒd  S(   Niÿÿÿÿi   i   i
   i•   t   Fooi   t   Bars	   Foo ~ BarRA   (   t   statsmodels.formula.apit   formulat   apiR-   t   nant   rlm(   t   smft   d(    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   test_missing  s    /($   R6   t   numpyR-   t   numpy.testingR    R   R   t   scipyR   t   statsmodels.apiRo   RB   t&   statsmodels.robust.robust_linear_modelR   t   statsmodels.robustR   t   statsmodels.robust.scaleR   R
   RF   RW   RE   t   objectR   R7   RU   RY   R\   R_   Rb   Rd   Rf   Rh   RS   RT   Rt   (    (    (    s@   lib/python2.7/site-packages/statsmodels/robust/tests/test_rlm.pyt   <module>   s.   P