[问题] lm函式是否能计算高维度的资料?

楼主: pornstar (迪克)   2015-01-08 17:50:44
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[问题叙述]:
各位好~!
我的资料型态是变量 >> 要预测的目标 (也就是变量的维度很高)
假设是 10x10000的资料 也就是由10000个变量作回归 分析出10个对应结果
将资料丢进lm()做回归分析时 发现会跑出一堆NA
但是如果我将变量做撷取 从原先的10000取前9行 (让行数小于列数: 9 < 10)
在丢进lm() 这样就可以正常运作 生出10个对应结果
但是这样只是取原先资料的一小部份来做回归
想请问lm()函式 或是R语言 要怎样做才能对这种变量维度很高的资料回归分析呢?
先感谢回答~~
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-08 18:04:00
请提供例子以重现错误。
作者: Wush978 (拒看低质媒体)   2015-01-08 18:20:00
一般线性模型在变量超过资料笔数时,会略过超过的部份lm应该就是把变量的个数降到跟资料一样,然后给你答案你可能要先去找feature selection相关的方法或是用如glmnet之类的套件跑Lasso来把多余的变量压到0
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-08 18:40:00
在数学上,这是不可能的。先降维度,或是RDA等类似方法。
楼主: pornstar (迪克)   2015-01-08 18:43:00
那我目前的资料已经先做过PCA了 原本有到上千万行
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-08 18:44:00
否则未知数比等式多,无限多解
楼主: pornstar (迪克)   2015-01-08 18:45:00
是否适合在做一次PCA? 或是接着再做RDA? 因为把资料缩太小也会担心不够准...
作者: Wush978 (拒看低质媒体)   2015-01-08 19:01:00
就我所知,现在很多研究是用Lasso(L1-regularization)来处理变量超过资料数的状况(常见于基因相关研究)Lasso就是L1-regularized的lm,所以你可以先去找资料看
楼主: pornstar (迪克)   2015-01-08 19:03:00
感谢楼上给关键字~
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-08 19:11:00
降维后上千变量但只有十个重复,无论结果如何,仍需面对无单一解的问题。请小心解释结果。

Links booklink

Contact Us: admin [ a t ] ucptt.com