Learn R Programming

phangorn (version 2.8.1)

splitsNetwork: Phylogenetic Network

Description

splitsNetwork estimates weights for a splits graph from a distance matrix.

Usage

splitsNetwork(dm, splits = NULL, gamma = 0.1, lambda = 1e-06, weight = NULL)

Arguments

dm

A distance matrix.

splits

a splits object, containing all splits to consider, otherwise all possible splits are used

gamma

penalty value for the L1 constraint.

lambda

penalty value for the L2 constraint.

weight

a vector of weights.

Value

splitsNetwork returns a splits object with a matrix added. The first column contains the indices of the splits, the second column an unconstrained fit without penalty terms and the third column the constrained fit.

Details

splitsNetwork fits non-negative least-squares phylogenetic networks using L1 (LASSO), L2(ridge regression) constraints. The function minimizes the penalized least squares $$\beta = min \sum(dm - X\beta)^2 + \lambda \|\beta \|^2_2 $$ with respect to $$\|\beta \|_1 <= \gamma, \beta >= 0$$ where \(X\) is a design matrix constructed with designSplits. External edges are fitted without L1 or L2 constraints.

References

Efron, Hastie, Johnstone and Tibshirani (2004) Least Angle Regression (with discussion) Annals of Statistics 32(2), 407--499

K. P. Schliep (2009). Some Applications of statistical phylogenetics (PhD Thesis)

See Also

distanceHadamard, designTree consensusNet, plot.networx

Examples

Run this code
# NOT RUN {
data(yeast)
dm <- dist.ml(yeast)
fit <- splitsNetwork(dm)
net <- as.networx(fit)
plot(net, "2D")
write.nexus.splits(fit)

# }

Run the code above in your browser using DataLab