首页 > 解决方案 > 在 SAS 中合并 Proc GLM 的输出文件

问题描述

我不确定我想要做的事情是否可行,所以我想我会咨询更有经验的 SAS 用户。

我想使用“by”语句多次运行 Proc GLM,然后将每次运行的输出参数放入一个文件中。输出参数类似于 a、b、#points 和 R2。

这可能吗?

谢谢!!

标签: sasglmproc

解决方案


您可以从proc glm(几个)表中输出结果。

要检索 的输出proc glm,可以使用ods trace statement来跟踪 的对象输出proc glm。如需更多信息,请考虑阅读ODS TRACE 声明文档。

proc glm输出 6 个对象:NObsOverallANOVAFitStatisticsModelANOVA和.ModelANOVAParameterEstimates

29         ods trace on;
30         proc glm data=sashelp.cars;
31          model length = mpg_city ;
32         quit;


Output Added:
-------------
Name:       NObs
Label:      Number of Observations
Template:   STAT.GLM.NObsNotitle
Path:       GLM.Data.NObs
-------------

Output Added:
-------------
Name:       OverallANOVA
Label:      Overall ANOVA
Template:   stat.GLM.OverallANOVA
Path:       GLM.ANOVA.Length.OverallANOVA
-------------

Output Added:
-------------
Name:       FitStatistics
Label:      Fit Statistics
Template:   stat.GLM.FitStatistics
Path:       GLM.ANOVA.Length.FitStatistics
-------------

Output Added:
-------------
Name:       ModelANOVA
Label:      Type I Model ANOVA
Template:   stat.GLM.Tests
Path:       GLM.ANOVA.Length.ModelANOVA
-------------

Output Added:
-------------
Name:       ModelANOVA
Label:      Type III Model ANOVA
Template:   stat.GLM.Tests
Path:       GLM.ANOVA.Length.ModelANOVA
-------------

Output Added:
-------------
Name:       ParameterEstimates
Label:      Solution
Template:   stat.GLM.Estimates
Path:       GLM.ANOVA.Length.ParameterEstimates
-------------

我认为a,b and # points你指向的estimate是可以在ParameterEstimates对象中找到的参数。然而,决定系数可以在FitStatistics对象中找到。

假设您要运行许多proc glm并将结果附加到一个表中(实际上是两个,考虑到您最终将得到一个用于估计值的表和一个用于确定系数的表)。您可以创建一个宏,该宏将获取每个结果proc glm并将其附加到表中。

%macro glm(y, x);
ods output ParameterEstimates=temp_parameters FitStatistics=temp_fit;

proc glm data=sashelp.cars;
    model &y. = &x. ;
quit;


proc append data=temp_parameters base=parameters;run;
proc append data=temp_fit base=fit;run;

proc datasets lib=work nolist nodetails; delete temp_:;run;
%mend;

%glm(length, mpg_city);
%glm(length, cylinders);
%glm(length, weight);

创建了两个最终表,一个填充了估计值(parameters表),一个填充了决定系数(fit表)。

parameters桌子:

在此处输入图像描述

fit桌子:

在此处输入图像描述

不幸的是,如果没有关于您的问题的更多信息并且没有数据,我无法提供进一步的帮助。


推荐阅读