作者x1214 (躺望天空)
看板Statistics
標題[問題] sas: proc glmselect
時間Mon Sep 5 10:44:25 2016
各位大大們好 <(_ _)>
小弟最近在使用sas的proc glmselect跑lasso (變項篩選)
(data set: 有20筆samples, 變項大約90個)
遇到幾個問題想請高手們相助Q_Q
1. 找不到語法可以直接output出來lasso篩選到的變項
(我想output成一個data set, 再用proc export把結果存成excel放在電腦裡)
2. 不知道為什麼, 用相同的dataset和code (一樣是selection=lasso),
卻偶爾會跑出不同的結果…大約會有1,2個變項不一樣@ @
code如下:
----------------------------------------------------------------------
PROC GLMSELECT DATA=testdata;
MODEL Y=
_11 _12 _14 _15
_16 _17 _18 _19 _20 _21 _22 _23 _24 _25
_26 _27 _28 _29 _30 _31 _32 _33 _35 _36
_37 _38 _39 _40 _41 _42 _43 _44 _45 _47
_48 _49 _51 _53 _55 _56 _57 _58 _59 _60
_65 _66 _67 _68 _69 _70 _72 _73 _74 _75
_76 _77 _78 _79 _80 _81 _82 _83 _84 _88
_89 _90 _91 _92 _93 _94 _95 _96 _97 _98
_99
/ SELECTION=LASSO (STOP=NONE CHOOSE=CV) ; OUTPUT OUT=TEST;
RUN;
QUIT;
-----------------------------------------------------------------------
在此先謝過各位大大們了Q______Q
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.175.153
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1473043467.A.40F.html
※ 編輯: x1214 (140.112.1.187), 09/06/2016 10:27:23
1F:→ a78998042a: 查了一下,CHOOSE=CV是使用交叉驗證選擇變數,可能 09/07 01:10
2F:→ a78998042a: 在做資料切割時,種子數是隨機的,所以每次結果會不同 09/07 01:10
3F:→ a78998042a: 用交叉驗證的篩選結果會相對穩健,不過還是受限lasso 09/07 01:14
4F:→ a78998042a: 只是"篩選",性質跟重要的變數有些不同 09/07 01:15
謝謝樓上大大,
後來發現是因為在 vairable數量>sample size的時候 Lasso容易會沒有單一解Q Q
再次感謝~
※ 編輯: x1214 (140.112.1.187), 09/10/2016 09:37:05
5F:→ a78998042a: 相同演算法下即使變數數量大於樣本數,還是單一解 09/12 00:51
6F:→ a78998042a: 除非使用含隨機性質的收斂演算法 09/12 00:53