simulateScores {hddplot} | R Documentation

## Generate linear discriminant scores from random data, after selection

### Description

Simulates the effect of generating scores from random data, possibly with predicted scores calculates also for additional 'observations'

### Usage

    simulateScores(nrows = 7129, cl = rep(1:3, c(19, 10, 2)), x = NULL, cl.other = 4, x.other = NULL, nfeatures = 15, dimen=2, seed = NULL)

### Arguments

`nrows` | number of rows of random data matrix
`cl` | classifying factor
`x` | data matrix, by default randomly generated
`cl.other` | classifying factor for additional observations
`x.other` | additional observations
`nfeatures` | number of features to select (by default uses aov F-statistic)
`dimen` | number of sets of discriminant scores to retain (at most one less than number of levels of `cl`)
`seed` | set, if required, so that calculations can be reproduced

### Details

### Value

`scores` | matrix of scores
`cl` | classifying factor
`other` | matrix of 'other' scores
`cl.other` | classifying factor for `scores.other`
`nfeatures` | number of features used in generating the scores

### Note

### Author(s)

John Maindonald

### References

### See Also

### Examples

    scorelist <- simulateScores(nrows=500, cl=rep(1:3, c(19,10,2)))
    plot(scorelist$scores, col=unclass(scorelist$cl), pch=16)

    ## The function is currently defined as
    function(nrows=7129, cl=rep(1:3, c(19,10,2)), x=NULL,
               cl.other=4, x.other=NULL, nfeatures=15,
               dimen=2, seed=NULL){
        if(!is.null(seed))set.seed(seed)
        m <- length(cl)
        m.other <- length(cl.other)
        if(is.null(x)){
          x <- matrix(rnorm(nrows*m), nrow=nrows)
          rownames(x) <- paste(1:nrows)
        }
        else nrows <- dim(x)[1]
        if(is.null(x.other)){
          x.other <- matrix(rnorm(nrows*m.other), nrow=nrows)
          rownames(x.other) <- paste(1:nrows)
        }
        if(is.numeric(cl))cl <- paste("Gp", cl, sep="")
        if(is.numeric(cl.other))cl.other <- paste("Gp", cl.other, sep="")
        cl <- factor(cl)
        if(dimen>length(levels(cl))-1)dimen <- length(levels(cl))-1
        cl.other <- factor(cl.other)
        xx.random <- matrix(rnorm(nrows*m), nrow=nrows)
        ordfeatures <- orderFeatures(xx.random, cl=cl, values=T)
        stat <- ordfeatures$stat[1:nfeatures]
        ord.use <- ordfeatures$ord[1:nfeatures]
        dfUse.ord <- data.frame(t(x[ord.use, ]))
        dfUseOther.ord <- data.frame(t(x.other[ord.use, ]))
        ordUse.lda <-  lda(dfUse.ord, grouping=cl)
        scores <- predict(ordUse.lda, dimen=2)$x
        scores.other <- predict(ordUse.lda, newdata=dfUseOther.ord, dimen=dimen)$x
        invisible(list(scores=scores, cl=cl, other=scores.other,
                       cl.other=cl.other, nfeatures=nfeatures))
      }

[Package hddplot version 0.51 Index]