我正在分析R中基因表达的大数据集,包括100个样本和50.000个基因。
我已经对样本间模式进行了一些非常有用的PCA预测。现在我想对数据做一些预测,最大化我对样本的标签之间的差异。
通常我会使用lda()
包中的MASS
函数执行此操作。但是,这太慢而且内存密集。
如果目标是生成样本的预测,最大化已知标签之间的差异,那么lda()
有哪些好的替代方案?
谢谢!
答案 0 :(得分:1)
线性判别分析不适用于具有比观察更多特征的数据集,因此您需要某种形式的正则化。如果你想做分类但主要对预测模式感兴趣,而不是预测本身,你可以使用偏最小二乘判别分析(PLSDA)。
然而,在您的情况下,PLSDA的成分可能难以解释,因为它们将包含每个基因的一个系数,但是相信所有50000个基因与您正在研究的表型相关似乎是不现实的。我更喜欢的另一种方法是使用产生稀疏模型的nearest shrunken centroids或elastic net(即它们只保留最佳基因并丢弃那些不重要的基因)。
答案 1 :(得分:0)
您可以在数据集的示例上运行LDA模型。