Learn R Programming

wle (version 0.9-91)

wle.cv: Model Selection by Weighted Cross-Validation

Description

The Weighted Cross-Validation methods is used to choose the best linear model.

Usage

wle.cv(formula, data=list(), model=TRUE, x=FALSE, y=FALSE, monte.carlo=500, split, boot=30, group, num.sol=1, raf="HD", smooth=0.031, tol=10^(-6), equal=10^(-3), max.iter=500, min.weight=0.5, contrasts=NULL, type=c('fast', 'slow'), verbose=FALSE)

Arguments

formula
a symbolic description of the model to be fit. The details of model specification are given below.
data
an optional data frame containing the variables in the model. By default the variables are taken from the environment which wle.cv is called from.
model, x, y
logicals. If TRUE the corresponding components of the fit (the model frame, the model matrix, the response.)
monte.carlo
the number of Monte Carlo replication we use to estimate the average prediction error.
split
the size of the costruction sample. When the suggested value is outside the possible range, the split size is let equal to $max(round(size^{(3/4)}),var+2)$ where $size$ is the number of observations and $var$ is the number of variables.
boot
the number of starting points based on boostrap subsamples to use in the search of the roots.
group
the dimension of the bootstap subsamples. The default value is $max(round(size/4),var)$ where $size$ is the number of observations and $var$ is the number of variables.
num.sol
maximum number of roots to be searched.
raf
type of Residual adjustment function to be use:

raf="HD": Hellinger Distance RAF,

raf="NED": Negative Exponential Disparity RAF,

raf="SCHI2": Symmetric Chi-Squared Disparity RAF.

smooth
the value of the smoothing parameter.
tol
the absolute accuracy to be used to achieve convergence of the algorithm.
equal
the absolute value for which two roots are considered the same. (This parameter must be greater than tol).
max.iter
maximum number of iterations.
min.weight
see details.
contrasts
an optional list. See the contrasts.arg of model.matrix.default.
type
when 'fast' a weighted least squares is used to evaluate the parameters in the submodels, while if 'slow' a weighted likelihood is used.
verbose
if TRUE warnings are printed.

Value

wle.cv returns an object of class "wle.cv".The function summary is used to obtain and print a summary of the results. The generic accessor functions coefficients and residuals extract coefficients and residuals returned by wle.cv. The object returned by wle.cv are:
wcv
Weighted Cross-Validation for each submodels
coefficients
the parameters estimator, one row vector for each root found in the full model.
scale
an estimation of the error scale, one value for each root found in the full model.
residuals
the unweighted residuals from the estimated model, one column vector for each root found in the full model.
tot.weights
the sum of the weights divide by the number of observations, one value for each root found in the full model.
weights
the weights associated to each observation, one column vector for each root found in the full model.
freq
the number of starting points converging to the roots.
index
position of the root used for the weights.
call
the match.call().
contrasts
xlevels
terms
the model frame.
model
if model=TRUE a matrix with first column the dependent variable and the remain column the explanatory variables for the full model.
x
if x=TRUE a matrix with the explanatory variables for the full model.
y
if y=TRUE a vector with the dependent variable.
info
not well working yet, if 0 no error occurred.

Details

Models for wle.cv are specified symbolically. A typical model has the form response ~ terms where response is the (numeric) response vector and terms is a series of terms which specifies a linear predictor for response. A terms specification of the form first+second indicates all the terms in first together with all the terms in second with duplicates removed. A specification of the form first:second indicates the the set of terms obtained by taking the interactions of all terms in first with all terms in second. The specification first*second indicates the cross of first and second. This is the same as first+second+first:second.

min.weight: the weighted likelihood equation could have more than one solution. These roots appear for particular situation depending on contamination level and type. The presence of multiple roots in the full model can create some problem in the set of weights we should use. Actually, the selection of the root is done by the minimum scale error provided. Since this choice is not always the one would choose, we introduce the min.weight parameter in order to choose only between roots that do not down weight everything. This is not still the optimal solution, and perhaps, in the new release, this part will be change.

References

Agostinelli, C., (1999). Robust model selection by Cross-Validation via weighted likelihood methodology, Working Paper n. 1999.37, Department of Statistics, University of Padova.

Agostinelli, C., (1998). Inferenza statistica robusta basata sulla funzione di verosimiglianza pesata: alcuni sviluppi, Ph.D Thesis, Department of Statistics, University of Padova.

Agostinelli, C., Markatou, M., (1998). A one-step robust estimator for regression based on the weighted likelihood reweighting scheme, Statistics \& Probability Letters, Vol. 37, n. 4, 341-350.

Agostinelli, C., (1998). Verosimiglianza pesata nel modello di regressione lineare, XXXIX Riunione scientifica della Societ\`a Italiana di Statistica, Sorrento 1998.

See Also

wle.smooth an algorithm to choose the smoothing parameter for normal distribution and normal kernel, wle.lm a function for estimating linear models with normal distribution error and normal kernel.

Examples

Run this code
library(wle)

set.seed(1234)

x.data <- c(runif(60,20,80),runif(5,73,78))
e.data <- rnorm(65,0,0.6)
y.data <- 8*log(x.data+1)+e.data
y.data[61:65] <- y.data[61:65]-4
z.data <- c(rep(0,60),rep(1,5))

plot(x.data,y.data,xlab="X",ylab="Y")

xx.data <- cbind(x.data,x.data^2,x.data^3,log(x.data+1))
colnames(xx.data) <- c("X","X^2","X^3","log(X+1)")

result <- wle.cv(y.data~xx.data,boot=20,num.sol=2)

summary(result)

result <- wle.cv(y.data~xx.data+z.data,boot=20,num.sol=2,
              monte.carlo=1000,split=50)

summary(result)

Run the code above in your browser using DataLab