我一直在研究分销模型。我将数据集分为两部分以进行双重验证。我想要的是执行
proc model
并将估计参数获取到 SAS 中的另一个数据集。我可以通过在程序中添加 outparms=
选项来轻松做到这一点,并且它有效。但是当我添加 by group;
选项时,它只显示最后一组的参数(在我的例子中为组 2)。我有一个示例 sas 代码和相应的输出如下:
data work.have;
input group y1 x1 x2;
datalines;
1 10 0.5 25
1 12 0.7 30
1 9 0.6 28
2 8 0.4 35
2 11 0.5 40
2 10 0.45 37
;
run;
proc sort data=work.have;
by group;
run;
proc model data=work.have noprint outparms=work.parm;
by group;
parms c1=1 c2=1 c3=1;
y1 = exp(c1 + c2*x1 + c3/x2);
fit y1;
run;
quit;
这是我通过运行上面的代码得到的结果。我想要同一数据集中两组的参数估计。
有什么想法吗?预先感谢。
这看起来像是一个BUG。向 SAS 报告 https://support.sas.com/en/technical-support.html
同时使用不同的 WHERE 语句运行多个 PROC MODEL 步骤并合并结果。
proc model data=work.have noprint outparms=work.parm1;
where group=1;
by group;
parms c1=1 c2=1 c3=1;
y1 = exp(c1 + c2*x1 + c3/x2);
fit y1;
run;
quit;
proc model data=work.have noprint outparms=work.parm2;
where group=2;
by group;
parms c1=1 c2=1 c3=1;
y1 = exp(c1 + c2*x1 + c3/x2);
fit y1;
run;
quit;
data parm;
set parm1-parm2;
run;