Version: | 1.0.2 |
Date: | 2022-04-27 |
Author: | Catherine B. Hurley and Denise Earle |
Maintainer: | Catherine Hurley <catherine.hurley@mu.ie> |
Title: | Dendrogram Seriation: Ordering for Visualisation |
Description: | Re-arranges a dendrogram to optimize visualisation-based cost functions. |
Depends: | gclus,seriation |
License: | GPL-2 |
NeedsCompilation: | yes |
Packaged: | 2022-04-27 13:23:17 UTC; catherine |
Repository: | CRAN |
Date/Publication: | 2022-04-27 14:20:02 UTC |
Implements dendrogram seriation
Description
Implements dendrogram seriation.
Usage
DendSer(h, ser_weight, cost = costBAR, node_op = NULL, costArg = NULL,
maxloops = NULL, saveinfo = FALSE, direction = NULL, GW=NULL,...)
Arguments
h |
An object of class hclust |
ser_weight |
Used by cost function to evaluate ordering. For cost=costLS, this is a vector of object weights. Otherwise is a dist or symmetric matrix. |
cost |
Function used to evaluate permutation.Current choices are costLS, costPL, costLPL, costED, costARc, costBAR. |
node_op |
Function used to reorder branches at a dendrogram node. DendSer picks default depending on cost function. NULL means use default depending on cost. |
costArg |
Other args for cost function. |
maxloops |
Maximum number of iterations allowed. NULL means use default depending on cost. |
saveinfo |
Logical, whether info associated with search is saved. |
direction |
Order of visiting nodes. Values are "up" or "down", for nodes in order of increasing or decreasing height.NULL means use default depending on cost. |
GW |
Logical, initial GW step or not. NULL means use default depending on cost. |
... |
Not used. |
Details
costED uses the Gruvaeus and Wainer 1972 algorithm, as provided by package gclus.
Value
Numeric vector giving an optimal dendrogram order
Author(s)
Catherine Hurley & Denise Earle
References
Gruvaeus, G. \& Wainer, H. (1972), “Two additions to hierarchical cluster analysis”, British Journal of Mathematical and Statistical Psychology, 25, 200-206.
See Also
Examples
require(DendSer)
d<- dist(iris[,-5])
h <- hclust(d,method="average")
ob<- DendSer(h,d)
opl<- DendSer(h,d,cost=costPL)
plotAsColor(d,ob)
w <- rowSums(iris[,-5])
ow <- DendSer(h,w,cost=costLS) # arranges cases by size, within hclust
stars(iris[ow,-5],labels=NULL, col.stars=cutree(h,3)[ow]) # and color by cluster
#stars(iris[ow,-5],labels=NULL, col.stars=iris[ow,5]) # or by species
Cost functions for DendSer
Description
Each of these functions evaluates the cost of an ordering.
Usage
costARc(sw, o, target = nrow(sw) - 1, ...)
costBAR(sw, o, target=max(2,floor(nrow(sw)/5)),...)
costLS(sw, o, target=seq_along(sw),...)
costPL(sw, o, ...)
costLPL(sw, o, target=(nrow(sw)-1):1,...)
costED(sw, o, node,se,...)
Arguments
sw |
For cost=costLS, this is a vector of object weights. Otherwise is a symmetric matrix. |
o |
An ordering vector. |
node |
The node |
se |
Extra info |
target |
Parameter used by cost function. |
... |
Other args. |
Value
Result of cost
Author(s)
Catherine Hurley & Denise Earle
Cost function from seriation criterion
Description
Returns a cost function from seriation criterion (package seriation)
Usage
crit2cost(crit)
Arguments
crit |
One of seriation::list_criterion_methods("dist") |
Examples
require(DendSer)
d<- dist(iris[1:20,-5])
h <- hclust(d)
DendSer(h,d,cost=function(x,o,...) criterion(as.dist(x),o,method="AR_deviations"))
DendSer(h,d,cost=crit2cost("AR_deviations")) # short version of above
DendSer(h,d,cost=crit2cost("ME"))
# use DendSer methods via seriate
# get_order(seriate(d,method="Dendser", control=list(hclust=h,cost=costARc)))
DendSer(h,d,cost=costARc)
Implements dendrogram seriation. Interface to DendSer.
Description
Implements dendrogram seriation. Interface to DendSer.
Usage
dser(x,ser_weight,cost=costBAR, ...)
## S3 method for class 'data.frame'
dser(x,ser_weight,cost=costBAR,...)
## S3 method for class 'matrix'
dser(x,ser_weight,cost=costBAR,scale=TRUE,dmethod="euclidean",...)
## S3 method for class 'dist'
dser(x,ser_weight,cost=costBAR,hmethod="average",...)
## S3 method for class 'hclust'
dser(x,ser_weight,cost=costBAR,...)
Arguments
x |
Used to select method. |
ser_weight |
Seriation weights. For cost=costLS, defaults to first column of matrix x, otherwise to symmetric matrix version of dist d. |
cost |
Current choices are costLS, costPL, costLPL, costED, costARc, costBAR. |
scale |
Logical value,controls whether matrix x should be scaled prior to forming dist. |
dmethod |
Method of dist calculation. See function |
hmethod |
Method of hclust calculation. See function |
... |
Other args |
Details
When x is a matrix or data.drame, forms a dist of rows using function dist with method = dmethod. When x is a dist, forms a hclust with method = hmethod which is then reordered.
Value
Numeric vector giving an optimal dendrogram order
Author(s)
Catherine Hurley & Denise Earle
Examples
require(DendSer)
iriss <- scale(iris[,-5])
plotAsColor(iriss,order.row=dser(iriss))
w <- prcomp(iris[,-5],scale=TRUE)$x[,1]
h<- hclust(dist(iriss))
h$order <- ow <- dser(h,w,cost=costLS) # arranges cases along first PC, within dendrogram
# compare re-rordered dendrogram to PC scores, w
dev.new(width=10,height=5)
par(mar=c(0,2,1,1))
layout(matrix(1:2, nrow = 2), heights = c(4,1.5) )
par(cex=.7)
plot(h,main="",xlab="",hang=-1,labels=FALSE)
u <- par("usr")
par(mar=c(1,2,0,1))
plot.new()
par(usr=c(u[1:2],min(w),max(w)))
x<- 1:length(w)
rect(x-.5,0,x+.5,w[ow],col=cutree(h,3)[ow]+1)
Function that plots a matrix as a color image
Description
Function that plots a matrix as a color image, in matrix order.
Usage
plotAsColor(m, order = NULL, order.col = order, order.row = order,
rank = FALSE, border.color = "grey70", labels = FALSE,x=1:ncol(d),y=1:nrow(d), ...)
Arguments
m |
Numeric matrix. |
order |
Default order used for rows and columns. |
order.col |
Column order. |
order.row |
Row order |
rank |
Logical, whether matrix m should be converted to ranks or not. |
border.color |
Color of border. Null for no border. |
labels |
If TRUE, add labels obtained from m. |
x |
X coordinates, passed to |
y |
Y coordinates, passed to |
... |
passed to |
See Also
See Also as image
.
Examples
require(DendSer)
d<- dist(scale(iris[,-5]))
plotAsColor(d,dser(d,hmethod="average"))