# plot1DProjection: PLOT A PAIR OF CLUSTERS AND THEIR DENSITY ESTIMATES, WHICH... In clusterGeneration: Random Cluster Generation (with Specified Degree of Separation)

## Description

Plot a pair of clusters and their density estimates, which are projected along a specified 1-D projection direction.

## Usage

 ```1 2 3 4 5 6 7 8``` ```plot1DProjection(y1, y2, projDir, sepValMethod=c("normal", "quantile"), bw="nrd0", xlim=NULL, ylim=NULL, xlab="1-D projected clusters", ylab="density estimates", title="1-D Projected Clusters and their density estimates", font=2, font.lab=2, cex=1.2, cex.lab=1.2, cex.main=1.5, lwd=4, lty1=1, lty2=2, pch1=18, pch2=19, col1=2, col2=4, type="l", alpha=0.05, eps=1.0e-10, quiet=TRUE) ```

## Arguments

 `y1` Data matrix of cluster 1. Rows correspond to observations. Columns correspond to variables. `y2` Data matrix of cluster 2. Rows correspond to observations. Columns correspond to variables. `projDir` 1-D projection direction along which two clusters will be projected. `sepValMethod` Method to calculate separation index for a pair of clusters projected onto a 1-D space. `sepValMethod="quantile"` indicates the quantile version of separation index will be used: sepVal=(L_2-U_1)/(U_2-L_1) where L_i and U_i, i=1, 2, are the lower and upper `alpha/2` sample percentiles of projected cluster i. `sepValMethod="normal"` indicates the normal version of separation index will be used: sepVal=[(xbar_2-xbar_1)-z_{α/2}(s_1+s_2)]/ [(xbar_2-xbar_1)+z_{α/2}(s_1+s_2)], where xbar_i and s_i are the sample mean and standard deviation of projected cluster i. `bw` The smoothing bandwidth to be used by the function `density`. `xlim` Range of X axis. `ylim` Range of Y axis. `xlab` X axis label. `ylab` Y axis label. `title` Title of the plot. `font` An integer which specifies which font to use for text (see `par`). `font.lab` The font to be used for x and y labels (see `par`). `cex` A numerical value giving the amount by which plotting text and symbols should be scaled relative to the default (see `par`). `cex.lab` The magnification to be used for x and y labels relative to the current setting of 'cex' (see `par`). `cex.main` The magnification to be used for main titles relative to the current setting of 'cex' (see `par`). `lwd` The line width, a \_positive\_ number, defaulting to '1' (see `par`). `lty1` Line type for cluster 1 (see `par`). `lty2` Line type for cluster 2 (see `par`). `pch1` Either an integer specifying a symbol or a single character to be used as the default in plotting points for cluster 1 (see `points`). `pch2` Either an integer specifying a symbol or a single character to be used as the default in plotting points for cluster 2 (see `points`). `col1` Color to indicates cluster 1. `col2` Color to indicates cluster 2. `type` What type of plot should be drawn (see `plot`). `alpha` Tuning parameter reflecting the percentage in the two tails of a projected cluster that might be outlying. `eps` A small positive number to check if a quantitiy q is equal to zero. If |q|<`eps`, then we regard q as equal to zero. `eps` is used to check the denominator in the formula of the separation index is equal to zero. Zero-value denominator indicates two clusters are totally overlapped. Hence the separation index is set to be -1. The default value of `eps` is 1.0e-10. `quiet` A flag to switch on/off the outputs of intermediate results and/or possible warning messages. The default value is `TRUE`.

## Details

The ticks along X axis indicates the positions of points of the projected two clusters. The positions of L_i and U_i, i=1, 2, are also indicated on X axis, where L_i and U_i are the lower and upper α/2 sample percentiles of cluster i if `sepValMethod="quantile"`. If `sepValMethod="normal"`, L_i=xbar_i-z_{α/2}s_i, where xbar_i and s_i are the sample mean and standard deviation of cluster i, and z_{α/2} is the upper α/2 percentile of standard normal distribution.

## Value

 `sepVal` value of the separation index for the projected two clusters along the projection direction `projDir`. `projDir` projection direction. To make sure the projected cluster 1 is on the left-hand side of the projected cluster 2, the input `projDir` might be changed to `-projDir`.

## Author(s)

Weiliang Qiu [email protected]
Harry Joe [email protected]

## References

Qiu, W.-L. and Joe, H. (2006) Separation Index and Partial Membership for Clustering. Computational Statistics and Data Analysis, 50, 585–603.

`plot2DProjection` `viewClusters`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20``` ```n1<-50 mu1<-c(0,0) Sigma1<-matrix(c(2,1,1,5),2,2) n2<-100 mu2<-c(10,0) Sigma2<-matrix(c(5,-1,-1,2),2,2) projDir<-c(1, 0) library(MASS) set.seed(1234) y1<-mvrnorm(n1, mu1, Sigma1) y2<-mvrnorm(n2, mu2, Sigma2) y<-rbind(y1, y2) cl<-rep(1:2, c(n1, n2)) b<-getSepProjData(y, cl, iniProjDirMethod="SL", projDirMethod="newton") # projection direction for clusters 1 and 2 projDir<-b\$projDirArray[1,2,] plot1DProjection(y1, y2, projDir) ```