mld {ade4}R Documentation

Multi Level Decomposition of unidimensional data

Description

The function mld performs an additive decomposition of the input vector x onto sub-spaces associated to an orthonormal orthobasis. The sub-spaces are defined by levels of the input factor level. The function haar2level builds the factor level such that the multi level decomposition corresponds exactly to a multiresolution analysis performed with the haar basis.

Usage

mld(x, orthobas, level, na.action = c("fail", "mean"),
 plot = TRUE, dfxy = NULL, phylog = NULL, ...)
haar2level(x)

Arguments

x is a vector or a time serie containing the data to be decomposed. This must be a dyadic length vector (power of 2) for the function haar2level.
orthobas is a data frame containing the vectors of the orthonormal basis.
level is a factor which levels define the sub-spaces on which the function mld performs the additive decomposition.
na.action if 'fail' stops the execution of the current expression when x contains any missing value. If 'mean' replaces any missing values by mean(x).
plot if TRUE plot x and the components resulting from the decomposition.
dfxy is a data frame with two coordinates.
phylog is an object of class phylog.
... further arguments passed to or from other methods.

Value

A data frame with the components resulting from the decomposition.

Author(s)

S├ębastien Ollier ollier@biomserv.univ-lyon1.fr

References

Mallat, S. G. (1989) A theory for multiresolution signal decomposition: the wavelet representation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 11, 7, 674–693.

Percival, D. B. and Walden, A. T. (2000) Wavelet Methods for Time Series Analysis, Cambridge University Press.

See Also

gridrowcol, orthobasis, orthogram, mra for multiresolution analysis with various families of wavelets

Examples

## Not run: 
# decomposition of a time serie
data(co2)
x <- log(co2)
orthobas <- orthobasis.line(length(x))
level<-rep("D", 467)
level[1:3]<-rep("A", 3)
level[c(77,78,79,81)]<-rep("B", 4)
level[156]<-"C"
level<-as.factor(level)
res <- mld(x, orthobas, level)
sum(scale(x, scale = FALSE) - apply(res, 1, sum))

## End(Not run)
# decomposition of a biological trait on a phylogeny
data(palm)
vfruit<-palm$traits$vfruit
vfruit<-scalewt(vfruit)   
palm.phy<-newick2phylog(palm$tre)
level <- rep("F", 65)
level[c(4, 21, 3, 6, 13)] <- LETTERS[1:5]
level <- as.factor(level)
res <- mld(as.vector(vfruit), palm.phy$Bscores, level,
 phylog = palm.phy, clabel.nod = 0.7, f.phylog=0.8,
  csize = 2, clabel.row = 0.7, clabel.col = 0.7)

Worked out examples


> library(ade4)
> ### Name: mld
> ### Title: Multi Level Decomposition of unidimensional data
> ### Aliases: mld haar2level
> ### Keywords: ts spatial
> 
> ### ** Examples
> 
>  
> # decomposition of a time serie
> data(co2)
> x <- log(co2)
> orthobas <- orthobasis.line(length(x))
> level<-rep("D", 467)
> level[1:3]<-rep("A", 3)
> level[c(77,78,79,81)]<-rep("B", 4)
> level[156]<-"C"
> level<-as.factor(level)
> res <- mld(x, orthobas, level)
> sum(scale(x, scale = FALSE) - apply(res, 1, sum))
[1] -1.912611e-13
> 
> # decomposition of a biological trait on a phylogeny
> data(palm)
> vfruit<-palm$traits$vfruit
> vfruit<-scalewt(vfruit)   
> palm.phy<-newick2phylog(palm$tre)
> level <- rep("F", 65)
> level[c(4, 21, 3, 6, 13)] <- LETTERS[1:5]
> level <- as.factor(level)
> res <- mld(as.vector(vfruit), palm.phy$Bscores, level,
+  phylog = palm.phy, clabel.nod = 0.7, f.phylog=0.8,
+   csize = 2, clabel.row = 0.7, clabel.col = 0.7)
> 
> 
> 
> 

[Package ade4 Index]