R语言中有ALS包,其中有als函数——
als(CList, PsiList, S=matrix(), WList=list(),
thresh =.001, maxiter=100, forcemaxiter = FALSE,
optS1st=TRUE, x=1:nrow(CList[[1]]), x2=1:nrow(S),
baseline=FALSE, fixed=vector("list", length(PsiList)),
uniC=FALSE, uniS=FALSE, nonnegC = TRUE, nonnegS = TRUE,
normS=0, closureC=list())
1. CList:与相同长度的列表PsiList中的每个元素是一个矩阵的维mcomp和表示矩阵的C每个数据集
2. PsiList:列表中的数据集,每个数据集是一个矩阵的尺寸m×n
3. S:n行comp列
4. WList:其中每个元素的尺寸是一个矩阵m×n给该数据点的权重。
5. thresh:数值默认为0.001;如果((oldrss - rss) / oldrss) < thresh优化停止,oldrss是在迭代的残差平方和x-1和rss是残差平方和在迭代x
6. maxiter:执行的最大迭代次数(迭代优化是AList和C)
7. forcemaxiter:逻辑指示是否maxiter迭代应进行,即使剩余差低于thresh。
8. optS1st:逻辑的第一个约束最小二乘回归是否应该估计S或CList。
9. baseline:逻辑表明一个基线成分是否存在;如果baseline=TRUE然后这个组件是豁免的限制单峰或负
10.fixed:相同的长度的列表与PsiList,其中每个元素是一个向量的指数,其中的组件固定到零,在每个数据集
11. nonnegS:逻辑指示的组件是否(列)的矩阵S应受限制的非负值
12. nonnegC:逻辑指示的组件是否(列)的矩阵C应受限制的非负值
13. uniC:逻辑表示的单峰性的约束是否应施加到列C
14. uniS:逻辑表示的单峰性的约束是否应施加到列S
15. closureC:列表的长度是零,然后没有关闭的限制。如果长度不为0时,它应该是等于在分析中的数据集的数量,和包含数字的向量组成的所需的值的总和的浓度矩阵的每一行。