robust |
M-estimation for robust models fitting via IRLS |
robust |
Visualizing Categorical Data: robust
$Version: 1.2-1 (28 Mar 2008)
Michael Friendly
York University
M-estimation for robust models fitting via IRLS
The ROBUST macro uses iteratively reweighted least squares to fit linear
models by M-estimation. The weights are determined by the BISQUARE, HUBER,
LAV or OLS function. The fitting procedure can be PROC REG, PROC GLM or
PROC LOGISTIC
For ANOVA and regression models normally conducted with PROC REG and
PROC GLM, this macro is superceded by PROC ROBUSTREG. Even so, it
provides an example of how robust methods can be added to other SAS
procedures.
The ROBUST macro is called with keyword parameters. The RESPONSE= and MODEL= parameters are required. The arguments may be listed within parentheses in
any order, separated by commas. For example:
%include data(icu);
%robust(data=icu, response=died, model=age cancer uncons admit,
proc=logistic, id=id, iter=3);
- DATA=
-
The name of the input data set [Default:
DATA=_LAST_
]
- RESPONSE=
-
The name of the response variable in the model
- MODEL=
-
The right-hand-side of the MODEL statement
- PROC=
-
The name of the estimation procedure to be used, one of REG, GLM, or
LOGISTIC. [Default:
PROC=LOGISTIC
]
- CLASS=
-
The names of any CLASS variables in the MODEL (for GLM only)
- ID=
-
The names of any observation ID variables. These are simply copied to the OUT= data set.
- OUT=
-
The name of the output data set of observation statistics. [Default:
OUT=RESIDS
]
- OUTPARM=
-
The name of the output data set of parameter estimates on the final
iteration.
- FUNCTION=
-
Weight function, one of
HUBER
, LAV
(least absolute value),
BISQUARE
, or OLS
. [Default: FUNCTION=BISQUARE
]
- TUNE=
-
Tuning constant for BISQUARE or HUBER. The weighting function is applied to
the value
_RESID_ / (&TUNE * MAD)
where MAD is the median absolute value of the residuals. The default is TUNE=6
for the BISQUARE function, and
TUNE=2
for the HUBER function.
- ITER=
-
The maximum number of iterations [Default:
ITER=10
]
- CONVERGE=
-
The maximum change in observation weights for convergence. The value must
have a leading 0. [Default:
CONVERGE=0.05
]
- PRINT=
-
Controls printing of intermediate and final results [Default:
PRINT=NOPRINT
].
Example
%include vcd(robust); *-- or include in an autocall library;
%include data(icu);
%robust(data=icu, response=died, model=age cancer uncons admit,
proc=logistic, id=id, iter=3, print=print);
Iteration history and parameter estimates
ITER _LINK_ _NAME_ INTERCEP AGE CANCER UNCONS ADMIT _MAXDIF_
1 LOGIT ESTIMATE 6.8698 -0.037176 -2.09711 -3.70546 -3.10218 0.9216
2 LOGIT ESTIMATE 11.8567 -0.077038 -3.50801 -7.17794 -4.64428 0.4598
3 LOGIT ESTIMATE 13.2176 -0.073876 -4.62725 -8.95129 -4.88566 0.9427
See also
inflglim Influence plots for generalized linear models
inflogis Influence plot for logistic regression models