Learn R Programming

dr (version 3.0.10)

dr.slices: Divide a vector into slices of approximately equal size

Description

Divides a vector into slices of approximately equal size.

Usage

dr.slices(y, nslices)
dr.slices.arc(y, nslices)

Arguments

y
a vector of length $n$ or an $n \times p$ matrix
nslices
the number of slices, no larger than $n$, or a vector of $p$ numbers giving the number of slices in each direction. If $y$ has $p$ columns and nslices is a number, then the number of slices in each direction is the smallest integer greater than the p-th root of nslices.

Value

Returns a named list with three elements as follows:
slice.indicator
ordered eigenvectors that describe the estimates of the dimension reduction subspace
nslices
Gives the actual number of slices produced, which may be smaller than the number requested.
slice.sizes
The number of observations in each slice.

Details

If $y$ is an n-vector, order $y$. The goal for the number of observations per slice is $m$, the smallest integer in nslices/n. Allocate the first $m$ observations to slice 1. If there are duplicates in $y$, keep adding observations to the first slice until the next value of $y$ is not equal to the largest value in the first slice. Allocate the next $m$ values to the next slice, and again check for ties. Continue until all values are allocated to a slice. This does not guarantee that nslices will be obtained, nor does it guarantee an equal number of observations per slice. This method of choosing slices is invariant under rescaling, but not under multiplication by $-1$, so the slices of $y$ will not be the same as the slices of $-y$. This function was rewritten for Version 2.0.4 of this package, and will no longer give exactly the same results as the program Arc. If you want to duplicate Arc, use the function dr.slice.arc, as illustrated in the example below.

If $y$ is a matrix of p columns, slice the first column as described above. Then, within each of the slices determined for the first column, slice based on the second column, so that each of the “cells” has approximately the same number of observations. Continue through all the columns. This method is not invariant under reordering of the columns, or under multiplication by $-1$.

References

R. D. Cook and S. Weisberg (1999), Applied Regression Including Computing and Graphics, New York: Wiley.

See Also

dr

Examples

Run this code
data(ais)
summary(s1 <- dr(LBM~log(SSF)+log(Wt)+log(Hg)+log(Ht)+log(WCC)+log(RCC)+
                 log(Hc)+log(Ferr), data=ais,method="sir",nslices=8))
# To make this idential to ARC, need to modify slices to match.
summary(s2 <- update(s1,slice.info=dr.slices.arc(ais$LBM,8)))

Run the code above in your browser using DataLab