The k-nearest neighbours using the alpha-distance | R Documentation |
\alpha
-distance
The k-nearest neighbours using the \alpha
-distance.
alfann(xnew, x, a, k = 10, rann = FALSE)
xnew |
A matrix or a vector with new compositional data. |
x |
A matrix with the compositional data. |
a |
The value of the power transformation, it has to be between -1 and 1.
If zero values are present it has to be greater than 0. If |
k |
The number of nearest neighbours to search for. |
rann |
If you have large scale datasets and want a faster k-NN search, you can use kd-trees implemented in the R package "Rnanoflann". In this case you must set this argument equal to TRUE. Note however, that in this case, the only available distance is by default "euclidean". |
The \alpha
-transformation is applied to the compositional data first
and the indices of the k-nearest neighbours using the Euclidean distance
are returned.
A matrix including the indices of the nearest neighbours of each xnew from x.
Michail Tsagris.
R implementation and documentation: Michail Tsagris mtsagris@uoc.gr.
MTsagris M., Alenazi A. and Stewart C. (2023). Flexible non-parametric regression models for compositional response data with zeros. Statistics and Computing, 33(106).
https://link.springer.com/article/10.1007/s11222-023-10277-5
Tsagris M.T., Preston S. and Wood A.T.A. (2011). A data-based power transformation for compositional data. In Proceedings of the 4th Compositional Data Analysis Workshop, Girona, Spain.
https://arxiv.org/pdf/1106.1451.pdf
alfa.knn, comp.nb, alfa.rda, alfa.nb,
link{aknn.reg}, alfa, alfainv
library(MASS)
xnew <- as.matrix(fgl[1:20, 2:9])
xnew <- xnew / rowSums(xnew)
x <- as.matrix(fgl[-c(1:20), 2:9])
x <- x / rowSums(x)
b <- alfann(xnew, x, a = 0.1, k = 10)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.