替代IML?在没有IML的情况下运行SAS Viya,并且需要合并两个非嵌套clutster的协方差矩阵

问题描述

我正在运行SAS Viya环境,无法访问IML。但是,我需要使用以下代码或类似的代码,通过结合协方差矩阵来准确地计算标准误差。该代码来自以下论文(如果愿意,您可以将其下载为pdf文件,并且该代码位于附录A中):https://academic.oup.com/aje/article/165/4/453/109343

这是我的问题:是否有另一种方法可以在不使用IML的情况下在SAS中合并协方差矩阵?

下面是示例SAS代码,用于将逻辑回归模型拟合为二进制结果Y,并使用GEE调整了两个非嵌套集群中的相关性。请注意,可以通过使用命令“ C1C2ID = C1ID ||’| || C2ID;”在数据步骤中将C1ID和C2ID串联来创建聚类变量C1C2ID。

%macro gee(n=1,cluster=C1);
proc genmod data=a descending; 
class &cluster; 
model y = x/dist=binomial; 
repeated subject=&cluster/type=indep ecovb; 
ods output GEEEmppest=beta GEERCov=V&n; 
quit; 
%mend; 
%gee(n=1,cluster=C1ID); 
%gee(n=2,cluster=C2ID); 
%gee(n=3,cluster=C1C2ID);

The covariance matrices may be read into PROC IML to combine and to calculate the corrected standard errors for the regression coefficients:

proc iml; use V1; 
read all var{rowname}; 
read all var(rowname) into V1; close V1; use V2; 
read all var(rowname) into V2; close V2; use V3; 
read all var(rowname) into V3; close V3; V=V1+V2-V3; SE=sqrt(vecdiag(V)); print SE;

谢谢您的帮助。

塞恩

解决方法

Proc DS2 MATRIX包提供了许多用于执行矩阵运算的方法。

  • ABS,ADD, ALL_AND,ALL_EQ,ALL_GE,ALL_GT,ALL_LE,ALL_LT,ALL_NE,ALL_OR和AND,ANY_AND,ANY_EQ,ANY_GE,ANY_GT,ANY_LE,ANY_LT,ANY_NE,ANY_OR,COLS,COPY DET,EDIV,EMAX,EMIN,EMOD,EMULT,EPOW,EQ,EXP,FLOOR,GE,GT,IN,INVERSE,LE,LOG LT MULT,NE或OR,OUT,ROWS,SQRT,SUB,TOARRAY,TOVARARRAY,TRANS

Proc MCMC

为您提供了许多CALL例程,用于对声明的数组执行简单的矩阵运算

  • ADDMATRIX,CHOL,DET,ELEMMULT,FILLMATRIX,IDENTITY,INV,MULT,SUBTRACTMATRIX, TRANSPOSE,零基质