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