如何使用sas

时间:2016-05-23 14:23:54

标签: sas

我想使用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'只记录打印输出。打印输出需要时间,因此进度变慢。这就是为什么我要避免它。有没有办法用其他方法包含观测数量?

2 个答案:

答案 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;