作者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/m.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