PRM {rpls} | R Documentation |
Robust PLS
Description
Robust PLS by partial robust M-regression.
Usage
PRM(formula,data,a,wfunX,wfunY,center.type,scale.type,usesvd,numit,prec)
Arguments
formula |
an object of class formula |
data |
a data frame which contains the variables given in formula |
a |
number of PLS components |
wfunX |
weight function to downweight leverage points; predefined weight funcktions "Fair", "Huber", "Tukey" and "Hampel" with respective tuning constants are passed via a list object, e.g. list("Fair",0.95) |
wfunY |
weight function to downweight residuals; predefined weight funcktions "Fair", "Huber", "Tukey" and "Hampel" with respective tuning constants are passed via a list object, e.g. list("Fair",0.95) |
center.type |
type of centering of the data in form of a string that matches an R function, e.g. "median" |
scale.type |
type of scaling for the data in form of a string that matches an R function, e.g. "qn" or alternatively "no" for no scaling |
numit |
the number of maximal iterations for the convergence of the coefficient estimates |
prec |
a value for the precision of estimation of the coefficients |
usesvd |
if TRUE singular value decomposition is performed; logical, default is FALSE |
Details
M regression is used to robustify PLS. Employment of seperate weight functions for leverage points and residuals.
Value
coef |
vector with regression coefficients |
intercept |
coefficient for intercept |
wy |
vector of length(y) with residual weights |
wt |
vector of length(y) with weights for leverage |
w |
overall weights |
scores |
matrix with PLS X-scores |
loadings |
matrix with PLS X-loadings |
fitted.values |
vector with fitted y-values |
Author(s)
Peter Filzmoser <peter.filzmoser@tuwien.ac.at>
References
S. Serneels, C. Croux, P. Filzmoser, and P.J. Van Espen. Partial robust M-regression. Chemometrics and Intelligent Laboratory System, Vol. 79(1-2), pp. 55-64, 2005.
Examples
U <- c(rep(2,20), rep(5,30))
X <- replicate(6, U+rnorm(50))
beta <- c(rep(1, 3), rep(-1,3))
e <- c(rnorm(45,0,1.5),rnorm(5,-20,1))
y <- X%*%beta + e
d <- as.data.frame(X)
d$y <- y
res <- PRM(y~., data=d, 3, wfunX=list("Fair",0.95),
wfunY=list("Fair",0.95), center.type = "median",
scale.type = "no",usesvd = FALSE,
numit = 100, prec = 0.01)
res$coef