我想使用SAS运行ols回归。我尝试将结果导出到数据集out
。我想在我的数据集中估算系数,标准误差,t统计量和观测数量。我的下面的代码不包括观察数量。
proc reg data = data noprint outest = out tableout;
model y = a;
by by_variable;
run;
我知道一种方法是使用ods output nobs=numobs;
但是,当我按组运行回归时,此过程变得不必要地耗费时间。我认为'ods output'只记录打印输出。打印输出需要时间,因此进度变慢。这就是为什么我要避免它。有没有办法用其他方法包含观测数量?
答案 0 :(得分:1)
ODS OUTPUT
不会只记录打印输出&#39 ;;它将转换为打印输出的Feed并将其以数据集格式导出。它基本上是在打印输出之前的步骤。
因此,如果您不想要它,可以使用ods output
(或其他类似方法)关闭打印输出,而不会伤害ods exclude
。
以下是一个例子。
ods exclude all; *turn off all output;
ods output nobs=numobs; *turn on just that output to that destination;
proc reg data = cars outest = out tableout;
model cylinders=mpg_city;
by origin;
run;
quit;
ods exclude none; *turn output back on generally;
答案 1 :(得分:0)
我无法一次性获取值。您需要获取两个输出表并合并它们。您还表示您需要观察次数,但是数据集中的数字或回归中使用的数字 - 因为它们可能不同。因为你还没有澄清要求,我会把最终结果合并给你。
您感兴趣的表是ParameterEstimates表,它包含所有内容,减去观察数量。 ANOVA表确实有我想到的DF,但是在ParameterEstimates表中没有。
@Joe也是正确的,使用ODS SELECT / EXCLUDE将所有输出转向窗口,这将使您的过程更快。如果您遇到经济放缓,则由于其他一些问题。
*add some missing values;
data class;
set sashelp.class;
if age=12 then weight=.;
run;
ods select none;
proc reg data=class;
model weight=height;
ods output parameterEstimates=want_PE nobs=want_NOBS;
run;
ods select all;
proc print data=want_pe;
run;
proc print data=want_nobs;
run;