问题描述
我正在运行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,零基质