作者pornstar (迪克)
看板R_Language
标题[问题] lm函式是否能计算高维度的资料?
时间Thu Jan 8 17:50:44 2015
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[问题叙述]:
各位好~!
我的资料型态是变数 >> 要预测的目标 (也就是变数的维度很高)
假设是 10x10000的资料 也就是由10000个变数作回归 分析出10个对应结果
将资料丢进lm()做回归分析时 发现会跑出一堆NA
但是如果我将变数做撷取 从原先的10000取前9行 (让行数小於列数: 9 < 10)
在丢进lm() 这样就可以正常运作 生出10个对应结果
但是这样只是取原先资料的一小部份来做回归
想请问lm()函式 或是R语言 要怎样做才能对这种变数维度很高的资料回归分析呢?
先感谢回答~~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.25.105
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/R_Language/M.1420710646.A.60F.html
1F:→ andrew43: 请提供例子以重现错误。 01/08 18:04
2F:→ Wush978: 一般线性模型在变数超过资料笔数时,会略过超过的部份 01/08 18:20
3F:→ Wush978: lm应该就是把变数的个数降到跟资料一样,然後给你答案 01/08 18:20
4F:→ Wush978: 你可能要先去找feature selection相关的方法 01/08 18:21
5F:推 Wush978: 或是用如glmnet之类的套件跑Lasso来把多余的变数压到0 01/08 18:21
6F:→ andrew43: 在数学上,这是不可能的。先降维度,或是RDA等类似方法 01/08 18:40
7F:→ andrew43: 。 01/08 18:40
8F:→ pornstar: 那我目前的资料已经先做过PCA了 原本有到上千万行 01/08 18:43
9F:→ andrew43: 否则未知数比等式多,无限多解 01/08 18:44
10F:→ pornstar: 是否适合在做一次PCA? 或是接着再做RDA? 因为把资料缩 01/08 18:45
11F:→ pornstar: 太小也会担心不够准... 01/08 18:45
12F:→ Wush978: 就我所知,现在很多研究是用Lasso(L1-regularization) 01/08 19:01
13F:→ Wush978: 来处理变数超过资料数的状况(常见於基因相关研究) 01/08 19:01
14F:→ Wush978: Lasso就是L1-regularized的lm,所以你可以先去找资料看 01/08 19:02
15F:→ pornstar: 感谢楼上给关键字~ 01/08 19:03
16F:→ andrew43: 降维後上千变数但只有十个重复,无论结果如何,仍需面对 01/08 19:11
17F:→ andrew43: 无单一解的问题。请小心解释结果。 01/08 19:11