ó
áp7]c           @   sè   d  d l  m Z d  d l 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 d d d d d „ Z d S(   iÿÿÿÿ(   t   rangeNt
   RobustNormc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s¼  
    The parent class for the norms used for robust regression.

    Lays out the methods expected of the robust norms to be used
    by statsmodels.RLM.

    Parameters
    ----------
    None :
        Some subclasses have optional tuning constants.

    References
    ----------
    PJ Huber.  'Robust Statistics' John Wiley and Sons, Inc., New York, 1981.

    DC Montgomery, EA Peck. 'Introduction to Linear Regression Analysis',
        John Wiley and Sons, Inc., New York, 2001.

    R Venables, B Ripley. 'Modern Applied Statistics in S'
        Springer, New York, 2002.

    See Also
    --------
    statsmodels.rlm

    Notes
    -----
    Currently only M-estimators are available.
    c         C   s
   t  ‚ d S(   s|   
        The robust criterion estimator function.

        Abstract method:

        -2 loglike used in M-estimator
        N(   t   NotImplementedError(   t   selft   z(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   rho&   s    c         C   s
   t  ‚ d S(   s„   
        Derivative of rho.  Sometimes referred to as the influence function.

        Abstract method:

        psi = rho'
        N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   psi0   s    c         C   s
   t  ‚ d S(   s_   
        Returns the value of psi(z) / z

        Abstract method:

        psi(z) / z
        N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   weights:   s    c         C   s
   t  ‚ d S(   sµ   
        Deriative of psi.  Used to obtain robust covariance matrix.

        See statsmodels.rlm for more information.

        Abstract method:

        psi_derive = psi'
        N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt	   psi_derivD   s    
c         C   s   |  j  | ƒ S(   sH   
        Returns the value of estimator rho applied to an input
        (   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   __call__P   s    (   t   __name__t
   __module__t   __doc__R   R   R   R   R	   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR      s   	
	
	
	t   LeastSquaresc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sŠ   
    Least squares rho for M-estimation and its derived functions.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    c         C   s   | d d S(   sÞ   
        The least squares estimator rho function

        Parameters
        ----------
        z : array
            1d array

        Returns
        -------
        rho : array
            rho(z) = (1/2.)*z**2
        i   g      à?(    (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   a   s    c         C   s   t  j | ƒ S(   s	  
        The psi function for the least squares estimator

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z
        (   t   npt   asarray(   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   r   s    c         C   s%   t  j | ƒ } t  j | j t  j ƒ S(   s>  
        The least squares estimator weighting function for the IRLS algorithm.

        The psi function scaled by the input z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = np.ones(z.shape)
        (   R   R   t   onest   shapet   float64(   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   …   s    c         C   s   t  j | j t  j ƒ S(   sì   
        The derivative of the least squares psi function.

        Returns
        -------
        psi_deriv : array
            ones(z.shape)

        Notes
        -----
        Used to estimate the robust covariance matrix.
        (   R   R   R   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ™   s    (   R
   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   W   s
   			t   HuberTc           B   sG   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s÷   
    Huber's T for M estimation.

    Parameters
    ----------
    t : float, optional
        The tuning constant for Huber's t function. The default value is
        1.345.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    g…ëQ¸…õ?c         C   s   | |  _  d  S(   N(   t   t(   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   __init__¸   s    c         C   s+   t  j | ƒ } t  j t  j | ƒ |  j ƒ S(   sE   
        Huber's T is defined piecewise over the range for z
        (   R   R   t
   less_equalt   fabsR   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   _subset»   s    c         C   sY   t  j | ƒ } |  j | ƒ } | d | d d | t  j | ƒ |  j d |  j d S(   s6  
        The robust criterion function for Huber's t.

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = .5*z**2            for \|z\| <= t

            rho(z) = \|z\|*t - .5*t**2    for \|z\| > t
        g      à?i   i   (   R   R   R   R   R   (   R   R   t   test(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   Â   s    c         C   sB   t  j | ƒ } |  j | ƒ } | | d | |  j t  j | ƒ S(   sC  
        The psi function for Huber's t estimator

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z      for \|z\| <= t

            psi(z) = sign(z)*t for \|z\| > t
        i   (   R   R   R   R   t   sign(   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ×   s    c         C   sN   t  j | ƒ } |  j | ƒ } t  j | ƒ } d | | <| d | |  j | S(   s_  
        Huber's t weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = 1          for \|z\| <= t

            weights(z) = t/\|z\|      for \|z\| > t
        g      ð?i   (   R   R   R   R   R   (   R   R   R   t   absz(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   í   s
    
c         C   s   t  j t  j | ƒ |  j ƒ S(   sŽ   
        The derivative of Huber's t psi function

        Notes
        -----
        Used to estimate the robust covariance matrix.
        (   R   R   R   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR     s    (	   R
   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ©   s   				t   RamsayEc           B   s>   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   sú   
    Ramsay's Ea for M estimation.

    Parameters
    ----------
    a : float, optional
        The tuning constant for Ramsay's Ea function.  The default value is
        0.3.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    g333333Ó?c         C   s   | |  _  d  S(   N(   t   a(   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR      s    c         C   sT   t  j | ƒ } d t  j |  j t  j | ƒ ƒ d |  j t  j | ƒ |  j d S(   s  
        The robust criterion function for Ramsay's Ea.

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = a**-2 * (1 - exp(-a*\|z\|)*(1 + a*\|z\|))
        i   i   (   R   R   t   expR   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   #  s     c         C   s1   t  j | ƒ } | t  j |  j t  j | ƒ ƒ S(   s  
        The psi function for Ramsay's Ea estimator

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z*exp(-a*\|z\|)
        (   R   R   R   R   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   5  s    c         C   s-   t  j | ƒ } t  j |  j t  j | ƒ ƒ S(   s   
        Ramsay's Ea weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = exp(-a*\|z\|)
        (   R   R   R   R   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   H  s    c         C   sY   t  j |  j t  j | ƒ ƒ | d t  j |  j t  j | ƒ ƒ |  j t  j | ƒ S(   s‘   
        The derivative of Ramsay's Ea psi function.

        Notes
        -----
        Used to estimate the robust covariance matrix.
        i   (   R   R   R   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   \  s    	(   R
   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR     s   			t
   AndrewWavec           B   sG   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   
    Andrew's wave for M estimation.

    Parameters
    ----------
    a : float, optional
        The tuning constant for Andrew's Wave function.  The default value is
        1.339.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    g•C‹lõ?c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   x  s    c         C   s2   t  j | ƒ } t  j t  j | ƒ |  j t  j ƒ S(   sI   
        Andrew's wave is defined piecewise over the range of z.
        (   R   R   R   R   R   t   pi(   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   {  s    c         C   sT   |  j  } t j | ƒ } |  j | ƒ } | | d t j | | ƒ d | d | S(   s>  
        The robust criterion function for Andrew's wave.

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = a*(1-cos(z/a))     for \|z\| <= a*pi

            rho(z) = 2*a                for \|z\| > a*pi
        i   i   (   R   R   R   R   t   cos(   R   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ‚  s
    	c         C   s<   |  j  } t j | ƒ } |  j | ƒ } | t j | | ƒ S(   sP  
        The psi function for Andrew's wave

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = sin(z/a)       for \|z\| <= a*pi

            psi(z) = 0              for \|z\| > a*pi
        (   R   R   R   R   t   sin(   R   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ™  s    	c         C   sD   |  j  } t j | ƒ } |  j | ƒ } | t j | | ƒ | | S(   sw  
        Andrew's wave weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = sin(z/a)/(z/a)     for \|z\| <= a*pi

            weights(z) = 0                  for \|z\| > a*pi
        (   R   R   R   R   R"   (   R   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ±  s    	c         C   s.   |  j  | ƒ } | t j | |  j ƒ |  j S(   s’   
        The derivative of Andrew's wave psi function

        Notes
        -----
        Used to estimate the robust covariance matrix.
        (   R   R   R!   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   È  s    	(	   R
   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   i  s   				t   TrimmedMeanc           B   sG   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s  
    Trimmed mean function for M-estimation.

    Parameters
    ----------
    c : float, optional
        The tuning constant for Ramsay's Ea function.  The default value is
        2.0.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    g       @c         C   s   | |  _  d  S(   N(   t   c(   R   R$   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   å  s    c         C   s+   t  j | ƒ } t  j t  j | ƒ |  j ƒ S(   sN   
        Least trimmed mean is defined piecewise over the range of z.
        (   R   R   R   R   R$   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   è  s    c         C   s.   t  j | ƒ } |  j | ƒ } | | d d S(   s5  
        The robust criterion function for least trimmed mean.

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = (1/2.)*z**2    for \|z\| <= c

            rho(z) = 0              for \|z\| > c
        i   g      à?(   R   R   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ð  s    c         C   s&   t  j | ƒ } |  j | ƒ } | | S(   sP  
        The psi function for least trimmed mean

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z              for \|z\| <= c

            psi(z) = 0              for \|z\| > c

        (   R   R   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR     s    c         C   s"   t  j | ƒ } |  j | ƒ } | S(   sm  
        Least trimmed mean weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = 1             for \|z\| <= c

            weights(z) = 0             for \|z\| > c

        (   R   R   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR     s    c         C   s   |  j  | ƒ } | S(   s—   
        The derivative of least trimmed mean psi function

        Notes
        -----
        Used to estimate the robust covariance matrix.
        (   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   3  s    (	   R
   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR#   Ö  s   				t   Hampelc           B   sM   e  Z d  Z d d d d „ Z d „  Z d „  Z d „  Z d „  Z d	 „  Z RS(
   s;  

    Hampel function for M-estimation.

    Parameters
    ----------
    a : float, optional
    b : float, optional
    c : float, optional
        The tuning constants for Hampel's function.  The default values are
        a,b,c = 2, 4, 8.

    See Also
    --------
    statsmodels.robust.norms.RobustNorm
    g       @g      @g       @c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R   t   bR$   (   R   R   R&   R$   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   Q  s    		c         C   sŠ   t  j t  j | ƒ ƒ } t  j | |  j ƒ } t  j | |  j ƒ t  j | |  j ƒ } t  j | |  j ƒ t  j | |  j ƒ } | | | f S(   sL   
        Hampel's function is defined piecewise over the range of z
        (   R   R   R   R   R   R&   t   greaterR$   (   R   R   t   t1t   t2t   t3(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   V  s
    ((c   	      C   sÄ   t  j | ƒ } |  j } |  j } |  j } |  j | ƒ \ } } } | | d d | | | | d d | | | | | d d | | d | d d d | | | | | | | } | S(   sè  
        The robust criterion function for Hampel's estimator

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = (1/2.)*z**2                    for \|z\| <= a

            rho(z) = a*\|z\| - 1/2.*a**2              for a < \|z\| <= b

            rho(z) = a*(c*\|z\|-(1/2.)*z**2)/(c-b)    for b < \|z\| <= c

            rho(z) = a*(b + c - a)                  for \|z\| > c
        i   g      à?i   g      @i   (   R   R   R   R&   R$   R   (	   R   R   R   R&   R$   R(   R)   R*   t   v(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   `  s    			[#c   
      C   sš   t  j | ƒ } |  j } |  j } |  j } |  j | ƒ \ } } } t  j | ƒ } t  j | ƒ } | | | | | | | | | | | | | }	 |	 S(   sù  
        The psi function for Hampel's estimator

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z                            for \|z\| <= a

            psi(z) = a*sign(z)                    for a < \|z\| <= b

            psi(z) = a*sign(z)*(c - \|z\|)/(c-b)    for b < \|z\| <= c

            psi(z) = 0                            for \|z\| > c
        (   R   R   R   R&   R$   R   R   R   (
   R   R   R   R&   R$   R(   R)   R*   t   sR+   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   €  s    			 c   	      C   s«   t  j | ƒ } |  j } |  j } |  j } |  j | ƒ \ } } } | | | t  j | ƒ | | | t  j | ƒ t  j | ƒ | | } d | t  j t  j | ƒ ƒ <| S(   s  
        Hampel weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            weights(z) = 1                            for \|z\| <= a

            weights(z) = a/\|z\|                        for a < \|z\| <= b

            weights(z) = a*(c - \|z\|)/(\|z\|*(c-b))      for b < \|z\| <= c

            weights(z) = 0                            for \|z\| > c

        g      ð?(	   R   R   R   R&   R$   R   R   t   wheret   isnan(	   R   R   R   R&   R$   R(   R)   R*   R+   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ¢  s    			1c         C   sS   |  j  | ƒ \ } } } | | |  j t j | ƒ | t j | ƒ |  j |  j S(   N(   R   R   R   R   R   R$   R&   (   R   R   R(   R)   R*   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   Ä  s    (	   R
   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR%   ?  s   	
	 	"	"t   TukeyBiweightc           B   sG   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s  

    Tukey's biweight function for M-estimation.

    Parameters
    ----------
    c : float, optional
        The tuning constant for Tukey's Biweight.  The default value is
        c = 4.685.

    Notes
    -----
    Tukey's biweight is sometime's called bisquare.
    g=
×£p½@c         C   s   | |  _  d  S(   N(   R$   (   R   R$   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   Ù  s    c         C   s+   t  j t  j | ƒ ƒ } t  j | |  j ƒ S(   sK   
        Tukey's biweight is defined piecewise over the range of z
        (   R   R   R   R   R$   (   R   R   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   Ü  s    c         C   s:   |  j  | ƒ } d | |  j d d | |  j d d S(   s\  
        The robust criterion function for Tukey's biweight estimator

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        rho : array
            rho(z) = -(1 - (z/c)**2)**3 * c**2/6.   for \|z\| <= R

            rho(z) = 0                              for \|z\| > R
        i   i   i   g      @(   R   R$   (   R   R   t   subset(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ã  s    c         C   s=   t  j | ƒ } |  j | ƒ } | d | |  j d d | S(   sp  
        The psi function for Tukey's biweight estimator

        The analytic derivative of rho

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        psi : array
            psi(z) = z*(1 - (z/c)**2)**2        for \|z\| <= R

            psi(z) = 0                           for \|z\| > R
        i   i   (   R   R   R   R$   (   R   R   R0   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   ö  s    c         C   s*   |  j  | ƒ } d | |  j d d | S(   s|  
        Tukey's biweight weighting function for the IRLS algorithm

        The psi function scaled by z

        Parameters
        ----------
        z : array-like
            1d array

        Returns
        -------
        weights : array
            psi(z) = (1 - (z/c)**2)**2          for \|z\| <= R

            psi(z) = 0                          for \|z\| > R
        i   i   (   R   R$   (   R   R   R0   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR     s    c         C   sT   |  j  | ƒ } | d | |  j d d d | d |  j d d | |  j d S(   s•   
        The derivative of Tukey's biweight psi function

        Notes
        -----
        Used to estimate the robust covariance matrix.
        i   i   i   (   R   R$   (   R   R   R0   (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR   #  s    /(	   R
   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyR/   É  s   				i    i   gíµ ÷Æ°>c         C   sÝ   | d k r t ƒ  } n  | d k r9 t j |  | ƒ } n | } x‡ t | ƒ D]y } | j |  | | ƒ }	 t j |	 |  | ƒ t j |	 | ƒ }
 t j t j t j	 | |
 ƒ | | ƒ ƒ r¿ |
 S|
 } qL Wt
 d | ƒ ‚ d S(   s¤  
    M-estimator of location using self.norm and a current
    estimator of scale.

    This iteratively finds a solution to

    norm.psi((a-mu)/scale).sum() == 0

    Parameters
    ----------
    a : array
        Array over which the location parameter is to be estimated
    scale : array
        Scale parameter to be used in M-estimator
    norm : RobustNorm, optional
        Robust norm used in the M-estimator.  The default is HuberT().
    axis : int, optional
        Axis along which to estimate the location parameter.  The default is 0.
    initial : array, optional
        Initial condition for the location parameter.  Default is None, which
        uses the median of a.
    niter : int, optional
        Maximum number of iterations.  The default is 30.
    tol : float, optional
        Toleration for convergence.  The default is 1e-06.

    Returns
    -------
    mu : array
        Estimate of location
    s6   location estimator failed to converge in %d iterationsN(   t   NoneR   R   t   medianR    R   t   sumt   alltruet   lessR   t
   ValueError(   R   t   scalet   normt   axist   initialt   maxitert   tolt   mut   itert   Wt   nmu(    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   estimate_location/  s    !&,
(   t   statsmodels.compat.pythonR    t   numpyR   t   objectR   R   R   R   R   R#   R%   R/   R1   RA   (    (    (    s7   lib/python2.7/site-packages/statsmodels/robust/norms.pyt   <module>   s   PRhXmiŠf	