在 SAS 中合并来自 Proc GLM 的输出文件

Combine output files from Proc GLM in SAS

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

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

这可能吗?

谢谢!!

您可以在 table(s) 中输出 proc glm 的结果。

要检索 proc glm 的输出,可以使用 ods trace statement 来跟踪 proc glm 的对象输出。有关详细信息,请考虑阅读 ODS TRACE Statement 文档。

proc glm输出6个对象:NObsOverallANOVAFitStatisticsModelANOVAModelANOVAParameterEstimates

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 并将结果附加到一个 table 中(实际上是两个,考虑到您最终会得到一个 table用于估计,一个用于确定系数)。您可以创建一个宏,它将获取每个 proc glm 的结果并将其附加到 table.

%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);

创建了两个最终 table,一个填充了估计值 (parameters table),另一个填充了确定系数 (fit table).

parameters table:

fit table:

很遗憾,没有关于您的问题的更多信息和数据,我无法提供进一步帮助。