[Robast-commits] r293 - in pkg/RobLoxBioC: . R inst inst/scripts man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Tue Apr 21 20:02:54 CEST 2009


Author: stamats
Date: 2009-04-21 20:02:54 +0200 (Tue, 21 Apr 2009)
New Revision: 293

Added:
   pkg/RobLoxBioC/R/AffySimStudyFunction.R
   pkg/RobLoxBioC/man/AffySimStudy.Rd
Removed:
   pkg/RobLoxBioC/inst/scripts/AffySimStudyFunction.R
Modified:
   pkg/RobLoxBioC/DESCRIPTION
   pkg/RobLoxBioC/NAMESPACE
   pkg/RobLoxBioC/inst/NEWS
   pkg/RobLoxBioC/inst/scripts/AffySimStudy.R
   pkg/RobLoxBioC/inst/scripts/IlluminaExample.R
   pkg/RobLoxBioC/man/0RobLoxBioC-package.Rd
   pkg/RobLoxBioC/man/KolmogorovMinDist.Rd
   pkg/RobLoxBioC/man/robloxbioc.Rd
Log:
moved function AffySimStudy from folder inst/scripts to folder R as exported and documented function to perform Monte-Carlo studies.

Modified: pkg/RobLoxBioC/DESCRIPTION
===================================================================
--- pkg/RobLoxBioC/DESCRIPTION	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/DESCRIPTION	2009-04-21 18:02:54 UTC (rev 293)
@@ -5,7 +5,7 @@
 Description: Functions for the determination of optimally robust
   influence curves and estimators for preprocessing omics data,
 	in particular gene expression data.
-Depends: R(>= 2.8.1), methods, Biobase, affy, beadarray, distr
+Depends: R(>= 2.8.1), methods, Biobase, affy, beadarray, distr, RobLox, lattice, RColorBrewer
 Author: Matthias Kohl <Matthias.Kohl at stamats.de>
 Maintainer: Matthias Kohl <Matthias.Kohl at stamats.de>
 LazyLoad: yes

Modified: pkg/RobLoxBioC/NAMESPACE
===================================================================
--- pkg/RobLoxBioC/NAMESPACE	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/NAMESPACE	2009-04-21 18:02:54 UTC (rev 293)
@@ -1,3 +1,4 @@
 import("methods")
 
 exportMethods("robloxbioc", "KolmogorovMinDist")
+export("AffySimStudy")

Added: pkg/RobLoxBioC/R/AffySimStudyFunction.R
===================================================================
--- pkg/RobLoxBioC/R/AffySimStudyFunction.R	                        (rev 0)
+++ pkg/RobLoxBioC/R/AffySimStudyFunction.R	2009-04-21 18:02:54 UTC (rev 293)
@@ -0,0 +1,119 @@
+###############################################################################
+## Function to perform simulation study comparing Tukey's biweight with
+## rmx estimators
+###############################################################################
+AffySimStudy <- function(n, M, eps, seed = 123, eps.lower = 0, eps.upper = 0.05, 
+                         steps = 3L, fsCor = TRUE, contD, 
+                         plot1 = FALSE, plot2 = FALSE, plot3 = FALSE){
+    stopifnot(n >= 3)
+    stopifnot(eps >= 0, eps <= 0.5)
+    if(plot1){
+        from <- min(-6, q(contD)(1e-15))
+        to <- max(6, q(contD)(1-1e-15))
+        curve(pnorm, from = from, to = to, lwd = 2, n = 201, 
+              main = "Comparison: ideal vs. real", ylab = "cdf")
+        fun <- function(x) (1-eps)*pnorm(x) + eps*p(contD)(x)
+        curve(fun, from = from, to = to, add = TRUE, col = "orange", 
+              lwd = 2, n = 201, ylab = "cdf")
+        legend("topleft", legend = c("ideal", "real"), 
+              fill = c("black", "orange"))
+    }
+
+    set.seed(seed)
+    r <- rbinom(n*M, prob = eps, size = 1)
+    Mid <- rnorm(n*M)
+    Mcont <- r(contD)(n*M)
+    Mre <- matrix((1-r)*Mid + r*Mcont, ncol = n)
+    ind <- rowSums(matrix(r, ncol = n)) >= n/2
+    while(any(ind)){
+        M1 <- sum(ind)
+        cat("Samples to re-simulate:\t", M1, "\n")
+        r <- rbinom(n*M1, prob = eps, size = 1)
+        Mid <- rnorm(n*M1)
+        Mcont <- r(contD)(n*M1)
+        Mre[ind,] <- (1-r)*Mid + r*Mcont
+        ind[ind] <- rowSums(matrix(r, ncol = n)) >= n/2
+    }
+    rm(Mid, Mcont, r, ind)
+
+
+    if(plot2){
+        ind <- sample(1:M, min(M, 20))
+        if(plot1) dev.new()
+        print(
+          stripplot(rep(1:20, each = 20) ~ as.vector(Mre[ind,]), 
+                    ylab = "samples", xlab = "x", pch = 20,
+                    main = "Randomly chosen samples")
+        )
+    }
+
+    ## ML-estimator: mean and sd
+    Mean <- rowMeans(Mre)
+    Sd <- sqrt(rowMeans((Mre-Mean)^2))
+    ## Median and MAD
+    Median <- rowMedians(Mre)
+    Mad <- rowMedians(abs(Mre - Median))/qnorm(0.75)
+    ## Tukey 1-step + MAD
+    Tukey <- apply(Mre, 1, function(x) tukey.biweight(x))
+    Tukey <- cbind(Tukey, Mad)
+
+    ## Radius-minimax estimator
+    RadMinmax <- estimate(rowRoblox(Mre, eps.lower = eps.lower, 
+                                    eps.upper = eps.upper, k = steps,
+                                    fsCor = fsCor))
+
+    if(plot3){
+        Ergebnis1 <- list(Mean, Median, Tukey[,1], RadMinmax[,1])
+        Ergebnis2 <- list(Sd, Mad, Tukey[,2], RadMinmax[,2])
+        myCol <- brewer.pal(4, "Dark2")
+        if(plot1 || plot2) dev.new()
+        layout(matrix(c(1, 1, 1, 1, 3, 2, 2, 2, 2, 3), ncol = 2))
+        boxplot(Ergebnis1, col = myCol, pch = 20, main = "Location")
+        abline(h = 0)
+        boxplot(Ergebnis2, col = myCol, pch = 20, main = "Scale")
+        abline(h = 1)
+        op <- par(mar = rep(2, 4))
+        plot(c(0,1), c(1, 0), type = "n", axes = FALSE)
+        legend("center", c("ML", "Med/MAD", "biweight", "rmx"),
+               fill = myCol, ncol = 5, cex = 1.5)
+        on.exit(par(op))
+    }
+
+    ## ML-estimator
+    MSE1.1 <- n*mean(Mean^2)
+    ## Median + MAD
+    MSE2.1 <- n*mean(Median^2)
+    ## Tukey
+    MSE3.1 <- n*mean(Tukey[,1]^2)
+    ## Radius-minimax
+    MSE4.1 <- n*mean(RadMinmax[,1]^2)
+    empMSE <- data.frame(ML = MSE1.1, Med = MSE2.1, Tukey = MSE3.1, "rmx" = MSE4.1)
+    rownames(empMSE) <- "n x empMSE (loc)"
+    relMSE <- empMSE[1,]/empMSE[1,4]
+    empMSE <- rbind(empMSE, relMSE)
+    rownames(empMSE)[2] <- "relMSE (loc)"
+
+    ## ML-estimator
+    MSE1.2 <- n*mean((Sd-1)^2)
+    ## Median + MAD
+    MSE2.2 <- n*mean((Mad-1)^2)
+    ## Tukey
+    MSE3.2 <- MSE2.2
+    ## Radius-minimax
+    MSE4.2 <- n*mean((RadMinmax[,2]-1)^2)
+    empMSE <- rbind(empMSE, c(MSE1.2, MSE2.2, MSE3.2, MSE4.2))
+    rownames(empMSE)[3] <- "n x empMSE (scale)"
+    relMSE <- empMSE[3,]/empMSE[3,4]
+    empMSE <- rbind(empMSE, relMSE)
+    rownames(empMSE)[4] <- "relMSE (scale)"
+    empMSE <- rbind(empMSE, c(MSE1.1 + MSE1.2, MSE2.1 + MSE2.2, MSE3.1 + MSE3.2, 
+                              MSE4.1 + MSE4.2))
+    rownames(empMSE)[5] <- "n x empMSE (loc + scale)"
+    relMSE <- empMSE[5,]/empMSE[5,4]
+    empMSE <- rbind(empMSE, relMSE)
+    rownames(empMSE)[6] <- "relMSE (loc + scale)"
+
+    empMSE
+}
+
+

Modified: pkg/RobLoxBioC/inst/NEWS
===================================================================
--- pkg/RobLoxBioC/inst/NEWS	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/inst/NEWS	2009-04-21 18:02:54 UTC (rev 293)
@@ -7,6 +7,8 @@
 #######################################
 + added finite-sample correction
 + handle cases with sample size <= 2 and contamination eps = 0
++ moved function AffySimStudy from folder inst/scripts to folder R as 
+  exported and documented function to perform Monte-Carlo studies.
 
 #######################################
 version 0.3

Modified: pkg/RobLoxBioC/inst/scripts/AffySimStudy.R
===================================================================
--- pkg/RobLoxBioC/inst/scripts/AffySimStudy.R	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/inst/scripts/AffySimStudy.R	2009-04-21 18:02:54 UTC (rev 293)
@@ -2,14 +2,6 @@
 ## Simulation study comparing Tukey's biweight with the rmx estimator
 ###############################################################################
 
-library(affy)
-library(RobLox)
-library(distr)
-library(RColorBrewer)
-
-## Load function AffySimStudy which is in file "AffySimStudyFunction.R"
-source(file = "AffySimStudyFunction.R")
-
 ## fixed variables
 n <- 11
 M <- 1e5

Deleted: pkg/RobLoxBioC/inst/scripts/AffySimStudyFunction.R
===================================================================
--- pkg/RobLoxBioC/inst/scripts/AffySimStudyFunction.R	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/inst/scripts/AffySimStudyFunction.R	2009-04-21 18:02:54 UTC (rev 293)
@@ -1,130 +0,0 @@
-###############################################################################
-## Function to perform simulation study comparing Tukey's biweight with the 
-## rmx estimator
-###############################################################################
-
-## n: sample size
-## M: Monte Carlo replications
-## eps: amount of contamination
-## seed: seed for simulations
-## eps.lower: eps.lower for rmx estimator
-## eps.upper: eps.upper for rmx estimator
-## steps: number of steps used for estimator construction
-## fsCor: perform finite-sample correction
-## contD: contaminating distribution
-## plot1: plot densities of ideal and real situation
-## plot2: plot 20 randomly chosen samples out of the M samples
-## plot3: boxplots of the estimates
-AffySimStudy <- function(n, M, eps, seed = 123, eps.lower = 0, eps.upper = 0.2, 
-                         steps = 3, fsCor = TRUE, contD, 
-                         plot1 = TRUE, plot2 = FALSE, plot3 = TRUE){
-    if(plot1){
-        from <- min(-6, q(contD)(1e-15))
-        to <- max(6, q(contD)(1-1e-15))
-        curve(dnorm, from = from, to = to, lwd = 2, n = 201, 
-              main = "Comparison: ideal vs. real")
-        fun <- function(x) (1-eps)*dnorm(x)+eps*d(contD)(x)
-        curve(fun, from = from, to = to, add = TRUE, col = "orange", 
-              lwd = 2, n = 201)
-        legend("topleft", legend = c("ideal", "real"), 
-              fill = c("black", "orange"))
-    }
-
-    set.seed(seed)
-    r <- rbinom(n*M, prob = eps, size = 1)
-    Mid <- rnorm(n*M)
-    Mcont <- r(contD)(n*M)
-    Mre <- matrix((1-r)*Mid + r*Mcont, ncol = n)
-    ind <- rowSums(matrix(r, ncol = n)) >= n/2
-    while(any(ind)){
-        M1 <- sum(ind)
-        cat("Samples to re-simulate:\t", M1, "\n")
-        r <- rbinom(n*M1, prob = eps, size = 1)
-        Mid <- rnorm(n*M1)
-        Mcont <- r(contD)(n*M1)
-        Mre[ind,] <- (1-r)*Mid + r*Mcont
-        ind[ind] <- rowSums(matrix(r, ncol = n)) >= n/2
-    }
-
-
-    if(plot2){
-        library(lattice)
-        ind <- sample(1:M, 20)
-        if(plot1) dev.new()
-        print(
-          stripplot(rep(1:20, each = 20) ~ as.vector(Mre[ind,]), 
-          ylab = "samples", xlab = "x", pch = 20,
-          main = "Randomly chosen samples")
-        )
-    }
-
-    ## ML-estimator: mean and sd
-    Mean <- rowMeans(Mre)
-    Sd <- sqrt(rowMeans((Mre-Mean)^2))
-    ## Median and MAD
-    Median <- rowMedians(Mre)
-    Mad <- rowMedians(abs(Mre - Median))/qnorm(0.75)
-    ## Tukey 1-step + MAD
-    Tukey <- apply(Mre, 1, function(x) tukey.biweight(x))
-    Tukey <- cbind(Tukey, Mad)
-
-    ## Radius-minimax estimator
-    RadMinmax <- estimate(rowRoblox(Mre, eps.lower = eps.lower, 
-                                    eps.upper = eps.upper, k = steps,
-                                    fsCor = fsCor))
-
-    if(plot3){
-        Ergebnis1 <- list(Mean, Median, Tukey[,1], RadMinmax[,1])
-        Ergebnis2 <- list(Sd, Mad, Tukey[,2], RadMinmax[,2])
-        myCol <- brewer.pal(4, "Dark2")
-        if(plot1 || plot2) dev.new()
-        layout(matrix(c(1, 1, 1, 1, 3, 2, 2, 2, 2, 3), ncol = 2))
-        boxplot(Ergebnis1, col = myCol, pch = 20, main = "Location")
-        abline(h = 0)
-        boxplot(Ergebnis2, col = myCol, pch = 20, main = "Scale")
-        abline(h = 1)
-        op <- par(mar = rep(2, 4))
-        plot(c(0,1), c(1, 0), type = "n", axes = FALSE)
-        legend("center", c("ML", "Med/MAD", "biweight", "rmx"),
-               fill = myCol, ncol = 5, cex = 1.5)
-        par(op)
-    }
-
-    ## ML-estimator
-    MSE1.1 <- n*mean(Mean^2)
-    ## Median + MAD
-    MSE2.1 <- n*mean(Median^2)
-    ## Tukey
-    MSE3.1 <- n*mean(Tukey[,1]^2)
-    ## Radius-minimax
-    MSE4.1 <- n*mean(RadMinmax[,1]^2)
-    empMSE <- data.frame(ML = MSE1.1, Med = MSE2.1, Tukey = MSE3.1, "rmx" = MSE4.1)
-    rownames(empMSE) <- "n x empMSE (loc)"
-    relMSE <- empMSE[1,]/empMSE[1,4]
-    empMSE <- rbind(empMSE, relMSE)
-    rownames(empMSE)[2] <- "relMSE (loc)"
-
-    ## ML-estimator
-    MSE1.2 <- n*mean((Sd-1)^2)
-    ## Median + MAD
-    MSE2.2 <- n*mean((Mad-1)^2)
-    ## Tukey
-    MSE3.2 <- MSE2.2
-    ## Radius-minimax
-    MSE4.2 <- n*mean((RadMinmax[,2]-1)^2)
-    empMSE <- rbind(empMSE, c(MSE1.2, MSE2.2, MSE3.2, MSE4.2))
-    rownames(empMSE)[3] <- "n x empMSE (scale)"
-    relMSE <- empMSE[3,]/empMSE[3,4]
-    empMSE <- rbind(empMSE, relMSE)
-    rownames(empMSE)[4] <- "relMSE (scale)"
-    empMSE <- rbind(empMSE, c(MSE1.1 + MSE1.2, MSE2.1 + MSE2.2, MSE3.1 + MSE3.2, 
-                              MSE4.1 + MSE4.2))
-    rownames(empMSE)[5] <- "n x empMSE (loc + scale)"
-    relMSE <- empMSE[5,]/empMSE[5,4]
-    empMSE <- rbind(empMSE, relMSE)
-    rownames(empMSE)[6] <- "relMSE (loc + scale)"
-
-    empMSE
-}
-
-

Modified: pkg/RobLoxBioC/inst/scripts/IlluminaExample.R
===================================================================
--- pkg/RobLoxBioC/inst/scripts/IlluminaExample.R	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/inst/scripts/IlluminaExample.R	2009-04-21 18:02:54 UTC (rev 293)
@@ -19,8 +19,36 @@
 ## http://www.compbio.group.cam.ac.uk/Resources/spike/index.html
 ###############################################################################
 
+## Load the required packages
+library(beadarray)
+library(gplots)
+library(RColorBrewer)
+library(RobLoxBioC)
+
+
+###########################################################
+## Read targets information
+targets <- read.table("./SpikeInData/spike_targets.txt",header=TRUE)
+arraynms <- as.character(targets$ArrayNo)
+
+## Use sharpened, subtracted data from text files
+spikeInData <- readIllumina(path = "./SpikeInData", arrayNames=arraynms[1:2], 
+                            useImages=FALSE, textType=".csv")
+#save(spikeInData, compress = TRUE, file = "spikeInData.RData")
+#load(file = "spikeInData.RData")
+
+## takes more than 100 min on Intel P9500 (64bit Linux, 4 GByte RAM)
+system.time(minKD <- KolmogorovMinDist(spikeInData, Norm(), imagesPerArray = 2))
+save(minKD, compress = TRUE, file = "minKD_Illumina.RData")
+
+## load the results from R-forge ...
+con <- url("http://robast.r-forge.r-project.org/data/minKD_hgu95a.RData")
+load(file = con)
+close(con)
+
+
 ###############################################################################
-## This example is based on the R code of Mark Dunning and Matt Ritchie
+## The following example is based on the R code of Mark Dunning and Matt Ritchie
 ## available under
 ## http://www.compbio.group.cam.ac.uk/Resources/spike/scripts/Analysis.R
 ##
@@ -36,12 +64,6 @@
 ## Mark Dunning and Matt Ritchie
 ########################################
 
-## Load the required packages
-library(beadarray)
-library(gplots)
-library(RColorBrewer)
-library(RobLoxBioC)
-
 ###############################################################################
 ## Extract all *.zip file to directory "SpikeInData".
 ## Copy spike_targets.txt to directory "SpikeInData".

Modified: pkg/RobLoxBioC/man/0RobLoxBioC-package.Rd
===================================================================
--- pkg/RobLoxBioC/man/0RobLoxBioC-package.Rd	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/man/0RobLoxBioC-package.Rd	2009-04-21 18:02:54 UTC (rev 293)
@@ -14,7 +14,7 @@
 Package: \tab RobLoxBioC\cr
 Version: \tab 0.4 \cr
 Date: \tab 2009-04-21 \cr
-Depends: \tab R (>= 2.8.1), methods, Biobase, affy, beadarray, distr\cr
+Depends: \tab R (>= 2.8.1), methods, Biobase, affy, beadarray, distr, RobLox, lattice, RColorBrewer\cr
 LazyLoad: \tab yes\cr
 License: \tab LGPL-3\cr
 URL: \tab http://robast.r-forge.r-project.org/\cr
@@ -28,6 +28,9 @@
   Kohl, M. (2005) \emph{Numerical Contributions to the Asymptotic Theory of Robustness}. 
   Bayreuth: Dissertation.
 
+  Kohl M. and Deigner H.P. (2009). Using infinitesimally robust estimators for 
+  preprocessing gene expression data. In preparation.
+
   Rieder, H. (1994) \emph{Robust Asymptotic Statistics}. New York: Springer.
 
   Rieder, H., Kohl, M. and Ruckdeschel, P. (2008) The Costs of not Knowing

Added: pkg/RobLoxBioC/man/AffySimStudy.Rd
===================================================================
--- pkg/RobLoxBioC/man/AffySimStudy.Rd	                        (rev 0)
+++ pkg/RobLoxBioC/man/AffySimStudy.Rd	2009-04-21 18:02:54 UTC (rev 293)
@@ -0,0 +1,58 @@
+\name{AffySimStudy}
+\Rdversion{1.1}
+\alias{AffySimStudy}
+\title{Perform Monte-Carlo Study comparing Tukey's biweight and rmx estimators.}
+\description{
+  The function can be used to perform Monte-Carlo studies comparing Tukey's 
+  biweight and rmx estimators for normal location and scale. In addition, 
+  maximum likelihood (ML) estimators (mean and sd) and median and MAD are
+  computed. The comparison is based on the empirical MSE.
+}
+\usage{
+AffySimStudy(n, M, eps, seed = 123, eps.lower = 0, eps.upper = 0.05, steps = 3L, 
+             fsCor = TRUE, contD, plot1 = FALSE, plot2 = FALSE, plot3 = FALSE)
+}
+%- maybe also 'usage' for other objects documented here.
+\arguments{
+  \item{n}{integer; sample size, should be at least 3.}
+  \item{M}{integer; Monte-Carlo replications.}
+  \item{eps}{amount of contamination in [0, 0.5].}
+  \item{seed}{random seed.}
+  \item{eps.lower}{used by rmx estimator.}
+  \item{eps.upper}{used by rmx estimator.}
+  \item{steps}{integer; steps used for estimator construction.}
+  \item{fsCor}{logical; use finite-sample correction.}
+  \item{contD}{object of class \code{"UnivariateDistribution"}; contaminating distribution.}
+  \item{plot1}{logical; plot cdf of ideal and real distribution.}
+  \item{plot2}{logical; plot 20 (or M if M < 20) randomly selected samples.}
+  \item{plot3}{logical; generate boxplots of the results.}
+}
+\details{
+Normal location and scale with mean = 0 and sd = 1 is used as ideal model (without
+restriction due to equivariance).
+
+Since there is no estimator which yields reliable results if 50 percent or more of the
+observations are contaminated, we use a modification where we re-simulate all samples
+including at least 50 percent contaminated data.
+
+We use funtion \code{\link[RobLox]{rowRoblox}} for the computation of the rmx estimator.
+}
+\value{Data.frame including empirical MSE (standardized by sample size n) and
+relMSE with respect to the rmx estimator.
+}
+\references{
+  Affymetrix, Inc. (2002). \emph{Statistical Algorithms Description Document}.
+  Affymetrix, Santa Clara.
+
+  Kohl M. and Deigner H.P. (2009). Using infinitesimally robust estimators for 
+  preprocessing gene expression data. In preparation.
+}
+\author{Matthias Kohl \email{Matthias.Kohl at stamats.de}}
+%\note{}
+\seealso{\code{\link[RobLox]{rowRoblox}}}
+\examples{
+AffySimStudy(n = 11, M = 100, eps = 0.02, contD = Norm(mean = 0, sd = 3), 
+             plot1 = TRUE, plot2 = TRUE, plot3 = TRUE)
+}
+\concept{Monte-Carlo study}
+\keyword{robust}

Modified: pkg/RobLoxBioC/man/KolmogorovMinDist.Rd
===================================================================
--- pkg/RobLoxBioC/man/KolmogorovMinDist.Rd	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/man/KolmogorovMinDist.Rd	2009-04-21 18:02:54 UTC (rev 293)
@@ -55,6 +55,9 @@
 \references{
   Huber, P.J. (1981) \emph{Robust Statistics}. New York: Wiley.
 
+  Kohl M. and Deigner H.P. (2009). Using infinitesimally robust estimators for 
+  preprocessing gene expression data. In preparation.
+
   Rieder, H. (1994) \emph{Robust Asymptotic Statistics}. New York: Springer.
 }
 \author{Matthias Kohl \email{Matthias.Kohl at stamats.de}}

Modified: pkg/RobLoxBioC/man/robloxbioc.Rd
===================================================================
--- pkg/RobLoxBioC/man/robloxbioc.Rd	2009-04-21 16:50:26 UTC (rev 292)
+++ pkg/RobLoxBioC/man/robloxbioc.Rd	2009-04-21 18:02:54 UTC (rev 293)
@@ -108,6 +108,9 @@
   Kohl, M. (2005) \emph{Numerical Contributions to the Asymptotic Theory of Robustness}. 
   Bayreuth: Dissertation.
 
+  Kohl M. and Deigner H.P. (2009). Using infinitesimally robust estimators for 
+  preprocessing gene expression data. In preparation.
+
   Rieder, H. (1994) \emph{Robust Asymptotic Statistics}. New York: Springer.
 
   Rieder, H., Kohl, M. and Ruckdeschel, P. (2008) The Costs of not Knowing



More information about the Robast-commits mailing list