如果您的数据是组合数据,则意味着您的数据中唯一可用的相关信息是您在部分之间拥有的相关信息。因此,您有兴趣相对研究零件之间的关系。对数比率方法使用部件之间的商来研究这种相对关系,更准确地说,使用部件比率之间的对数。
您可以看到部分组合之间的所有可能比率都完全通过仅考虑特定(独立)对数比率来表征。一种常见的方法是考虑与最后一个分量的所有比率,这种方法是称为加性对数比变换 ( alr )。可以将alr转换解释为相对于某个基础的坐标。k(x1,…,xk)k−1(logx1xk,…,logxk−1xk))
- alr转换的第一个问题是用于获取 trnaformed 值的基础不是正交的,而是倾斜的,并且
- 第二个问题是单纯形似乎没有标准基础。
虽然,您可以在单纯形中定义正交基,并且使用此基您可以定义变换。这种变换通常称为 ilr 变换 ( ilr ),并且在组合包内实现的功能是获得相对于标准正交基的ilr坐标。
用你的例子(我减少了作文的数量),
set.seed(1)
# loading library
library(compositions)
# Generate data
dataset <- data.frame(
x = runif(5, min = 0.2, max = 0.65),
y = runif(5, min = 0.2, max = 0.4),
z = runif(5, min = 0.1, max = 0.7))
# Make data compositional
dataset.compositional = acomp(dataset)
你有你的样品的坐标
(X <- dataset.compositional/rowSums(dataset.compositional))
# x y z
# [1,] 0.3462279 0.4114672 0.2423048
# [2,] 0.3818417 0.4041619 0.2139964
# [3,] 0.3515582 0.2550841 0.3933578
# [4,] 0.4811888 0.2575718 0.2612394
# [5,] 0.2730063 0.1993929 0.5276008
是
(dataset.ilr <- ilr(dataset.compositional))
# [,1] [,2]
# [1,] 0.12206935 -0.3618850
# [2,] 0.04017035 -0.4959822
# [3,] -0.22682715 0.2226876
# [4,] -0.44191428 -0.2435951
# [5,] -0.22218525 0.6662235
默认情况下,该ilr
函数使用基础(在列中)
(B <- exp(ilrBase(D=3))
# 1 0.4930687 0.6648138
# 2 2.0281150 0.6648138
# 3 1.0000000 2.2625592
这意味着您的原始样本可以从正交基 B 和ilr坐标中获得。
X1 = t(apply(dataset.ilr, 1, function(x){
B[,1]^x[1] * B[,2]^x[2]
}))
X1 / rowSums(X1)
# 1 2 3
# [1,] 0.3462279 0.4114672 0.2423048
# [2,] 0.3818417 0.4041619 0.2139964
# [3,] 0.3515582 0.2550841 0.3933578
# [4,] 0.4811888 0.2575718 0.2612394
# [5,] 0.2730063 0.1993929 0.5276008
在这种情况下,考虑到基 B,我们看到(除常数项外)ilr坐标的第一列将第一个分量与第二个分量进行比较
1/sqrt(2) * log(X[,2]/X[,1]) # Compare with first column of dataset.ilr
# [1] 0.12206935 0.04017035 -0.22682715 -0.44191428 -0.22218525
第二列是比较(期望一个常数项)thir 组件与其他组件(事实上,与第一个和第二个组件的几何平均值)
sqrt(2)/sqrt(3) * log(X[,3] / (X[,1]*X[,2])^(1/2))
# [1] -0.3618850 -0.4959822 0.2226876 -0.2435951 0.6662235
最后,我认为找到有关该主题的更多信息的好地方:文章,书籍,......是http://www.compositionaldata.com/material.php