[問題] 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