[問題] lm函式是否能計算高維度的資料?

看板R_Language作者 (迪克)時間10年前 (2015/01/08 17:50), 編輯推噓1(1016)
留言17則, 3人參與, 最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [問題敘述]: 各位好~! 我的資料型態是變數 >> 要預測的目標 (也就是變數的維度很高) 假設是 10x10000的資料 也就是由10000個變數作回歸 分析出10個對應結果 將資料丟進lm()做回歸分析時 發現會跑出一堆NA 但是如果我將變數做擷取 從原先的10000取前9行 (讓行數小於列數: 9 < 10) 在丟進lm() 這樣就可以正常運作 生出10個對應結果 但是這樣只是取原先資料的一小部份來做回歸 想請問lm()函式 或是R語言 要怎樣做才能對這種變數維度很高的資料回歸分析呢? 先感謝回答~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.105 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1420710646.A.60F.html

01/08 18:04, , 1F
請提供例子以重現錯誤。
01/08 18:04, 1F

01/08 18:20, , 2F
一般線性模型在變數超過資料筆數時,會略過超過的部份
01/08 18:20, 2F

01/08 18:20, , 3F
lm應該就是把變數的個數降到跟資料一樣,然後給你答案
01/08 18:20, 3F

01/08 18:21, , 4F
你可能要先去找feature selection相關的方法
01/08 18:21, 4F

01/08 18:21, , 5F
或是用如glmnet之類的套件跑Lasso來把多餘的變數壓到0
01/08 18:21, 5F

01/08 18:40, , 6F
在數學上,這是不可能的。先降維度,或是RDA等類似方法
01/08 18:40, 6F

01/08 18:40, , 7F
01/08 18:40, 7F

01/08 18:43, , 8F
那我目前的資料已經先做過PCA了 原本有到上千萬行
01/08 18:43, 8F

01/08 18:44, , 9F
否則未知數比等式多,無限多解
01/08 18:44, 9F

01/08 18:45, , 10F
是否適合在做一次PCA? 或是接著再做RDA? 因為把資料縮
01/08 18:45, 10F

01/08 18:45, , 11F
太小也會擔心不夠準...
01/08 18:45, 11F

01/08 19:01, , 12F
就我所知,現在很多研究是用Lasso(L1-regularization)
01/08 19:01, 12F

01/08 19:01, , 13F
來處理變數超過資料數的狀況(常見於基因相關研究)
01/08 19:01, 13F

01/08 19:02, , 14F
Lasso就是L1-regularized的lm,所以你可以先去找資料看
01/08 19:02, 14F

01/08 19:03, , 15F
感謝樓上給關鍵字~
01/08 19:03, 15F

01/08 19:11, , 16F
降維後上千變數但只有十個重複,無論結果如何,仍需面對
01/08 19:11, 16F

01/08 19:11, , 17F
無單一解的問題。請小心解釋結果。
01/08 19:11, 17F
文章代碼(AID): #1KhbBsOF (R_Language)
文章代碼(AID): #1KhbBsOF (R_Language)