
    >h                        S r SSKrSSKJrJr   " S S\5      r\S:X  a  SSKJ	r
  \R                  " SSS	9r\R                  " \S
   \S
   S-  \/ SQ   R                  \5      R!                  \R"                  S   S5      45      r\
R&                  " \SS9r\" \S   \/ SQS9r\R+                  5       r\" \R0                  5        gg)z>Restricted least squares

from pandas
License: Simplified BSD
    N)GLSRegressionResultsc                      ^  \ rS rSrSrSU 4S jjrSr\S 5       rSr	\S 5       r
Sr\S 5       rSr\S 5       rSr\S	 5       rSr\S
 5       rS rSrU =r$ )RLS
   a  
Restricted general least squares model that handles linear constraints

Parameters
----------
endog : array_like
    n length array containing the dependent variable
exog : array_like
    n-by-p array of independent variables
constr : array_like
    k-by-p array of linear constraints
param : array_like or scalar
    p-by-1 array (or scalar) of constraint parameters
sigma (None): scalar or array_like
    The weighting matrix of the covariance. No scaling by default (OLS).
    If sigma is a scalar, then it is converted into an n-by-n diagonal
    matrix with sigma as each diagonal element.
    If sigma is an n-length array, then it is assumed to be a diagonal
    matrix with the given sigma on the diagonal (WLS).

Notes
-----
endog = exog * beta + epsilon
weights' * constr * beta = param

See Greene and Seaks, "The Restricted Least Squares Estimator:
A Pedagogical Note", The Review of Economics and Statistics, 1991.
Nc                   > UR                   u  pg[        R                  " U5      nUR                  S:X  a  SUR                   S   pOUR                   u  pXy:w  a  [	        S5      eXpl        Xl        X0l        [        R                  " U5      (       a   US:  a  [        R                  " U45      U-  nX@l
        Uc  Sn[        R                  " U5      (       a  [        R                  " U5      U-  n[        R                  " U5      nUR                  S:X  aK  [        R                  " U5      U l        [        R                  " [        R                  " U5      5      U l        O[XPl        [        R                   R#                  [        R                   R%                  U R                  5      5      R&                  U l        [(        [*        U ][  X5        g )N   r   z#Constraints and design do not aligng      ?)shapenpasarrayndim	Exceptionncoeffsnconstraint
constraintisscalaronesparamsqueezediagsigmasqrtcholsigmainvlinalgcholeskypinvTsuperr   __init__)selfendogexogconstrr   r   NQKP	__class__s             jC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\statsmodels/sandbox/rls.pyr   RLS.__init__(   s?   zzF#;;!fll1oq<<DA6ABB ;;u!a%GGQDME)E
=E;;uGGAJ&E

5!::?DJ " 7DJ "		 2 2299>>$**3M N P PDc4!%.    c                    U R                   c  U R                  nU R                  n[        R                  " X-   X-   45      n[        R
                  " U R                  R                  U R                  5      USU2SU24'   [        R                  " U R                  X!45      nUR                  USU2US24'   XCUS2SU24'   [        R                  " X"45      X1S2US24'   X0l         U R                   $ )z8Whitened exogenous variables augmented with restrictionsN)
_rwexogr   r   r   zerosdotwexogr   reshaper   )r    r'   r&   designr#   s        r)   rwexog
RLS.rwexogE   s     <<A  AXXquaen-FVVDJJLL$**=F2A2rr6NZZ!8F#XXF2A2qr6N#12rr6NXXqf-F2qr6N!L||r+   c                     U R                   c.  [        R                  R                  U R                  5      U l         U R                   $ )zInverse of self.rwexog)_inv_rwexogr   r   invr3   )r    s    r)   
inv_rwexogRLS.inv_rwexogU   s5     #!yy}}T[[9Dr+   c                 .   U R                   c}  U R                  nU R                  n[        R                  " X-   45      n[        R
                  " U R                  R                  U R                  5      USU& U R                  X1S& X0l         U R                   $ )zBWhitened endogenous variable augmented with restriction parametersN)
_rwendogr   r   r   r.   r/   r0   r   wendogr   )r    r'   r&   responses       r)   rwendogRLS.rwendog]   sr     == A  Axx)H66$**,,<HRaL::HRL$M}}r+   c                     U R                   c&  U R                  nU R                  SU2SU24   U l         U R                   $ )z'Parameter covariance under restrictionsN)_ncpr   r8   )r    r'   s     r)   rnorm_cov_paramsRLS.rnorm_cov_paramsj   s=     99ABQB/DIyyr+   c                    U R                   c  U R                  n[        R                  " U R                  U R
                  5      n[        R                  " U R                  U-
  S-  5      n[        R                  " U5      n[        R                  " U R                  U R                  R                  5      n[        R                  " [        R                  " XS5      UR                  5      U-  U-  U l         U R                   $ )z]
Heteroskedasticity-consistent parameter covariance
Used to calculate White standard errors.
   )_wncpdf_residr   r/   r0   coeffsr   r<   sumrB   r   )r    dfpredepssigmaSqpinvXs         r)   wrnorm_cov_paramsRLS.wrnorm_cov_paramss   s     ::B66$**dkk2D''4;;-!34CffSkGFF400$**,,?Eu 2EGG<rAGKDJzzr+   c                     U R                   c?  [        R                  " U R                  U R                  5      nUSU R
                   U l         U R                   $ )zEstimated parametersN)_coeffsr   r/   r8   r>   r   )r    
betaLambdas     r)   rH   
RLS.coeffs   sB     <<>J%mt||4DL||r+   c                 F    U R                   n[        X R                  US9nU$ )N)normalized_cov_params)rO   r   rH   )r    rncplfits      r)   fitRLS.fit   s"    %% {{$Or+   )rR   r6   rA   r;   r-   rF   r   r   r   r   r   r   )g        N)__name__
__module____qualname____firstlineno____doc__r   r-   propertyr3   r6   r8   r;   r>   rA   rB   rF   rO   rR   rH   rY   __static_attributes____classcell__)r(   s   @r)   r   r   
   s    :/8 G  K    H	 	 D  E  G  r+   r   __main__z./rlsdata.txtT)namesYrE   )NENCWS)prependG)r   r   r   r	   r	   r	   r	   )r#   )r_   numpyr   #statsmodels.regression.linear_modelr   r   r   r[   statsmodels.apiapism
genfromtxtdtacolumn_stackviewfloatr1   r
   r2   add_constantrls_modrY   rls_fitprintparams r+   r)   <module>r}      s   
  FD# DL Z 
--t
4C__c#hs3x{37J3K3P3PQV3W3_3_`c`i`ijk`lmo3pqrF__VT2F#c(6/:GkkmG	'.. r+   