案例一:
PROC MI DATA=pas4 OUT=pas5 seed=4362756 nimpute=10 round = 1 1 1 1 1 1 maximum= 35 35 35 35 35 35 minimum= 5 5 5 5 5 5 ;
by STRATAV group;
MCMC chain=multiple IMPUTE=MONOTONE;
VAR pas1 pas3 pas4 pas5 pas6 pas7 ;
RUN;
这段SAS代码是应用于缺失数据的多重插补(Multiple Imputation)过程。具体解释如下:
seed=4362756: 这是一个随机数发生器的种子值,确保多重插补过程是可重复的。
nimpute=10: 将进行10次多重插补。即,将会产生10个含有不同插补值的完整数据集。
round = 1 1 1 1 1 1: 插补的数值将会被四舍五入到最接近的整数(这里指定了六个1,说明有六个变量的插补值需要被四舍五入)。
maximum= 35 35 35 35 35 35: 为每个插补的变量设置了一个最大值35。
minimum= 5 5 5 5 5 5: 为每个插补的变量设置了一个最小值5。
MCMC: 指定使用Markov Chain Monte Carlo (MCMC)方法来插补缺失的数据。
chain=multiple: 使用多条链来进行MCMC插补。
IMPUTE=MONOTONE: 插补方法设置为 MONOTONE。这种方法用于数据缺失模式是单调的情况,即如果一个变量是缺失的,那么在它之后的所有变量也都是缺失的。需要注意的是,如果数据集里有非单调缺失则不会处理(单调缺失模式意味着对于任何一个响应变量,如果这个变量对于一个观测值是缺失的,那么所有后面的变量对于这个观测值也都是缺失的)。
总的来说,这段代码的目的是用MCMC方法进行多重插补以处理数据集pas4中的缺失值,并输出10个插补后的完整数据集到新数据集pas5中。此过程被分层进行,并且对插补值进行了取整以及设置了上下限。
案例二:
PROC MI DATA=pas5 OUT=pas6 seed=4362756 nimpute=1 round = . . 1 1 1 1 1 1 maximum= . . 35 35 35 35 35 35 minimum= . . 5 5 5 5 5 5 ;
BY imputation;
CLASS STRATAV group;
VAR STRATAV group pas1 pas3 pas4 pas5 pas6 pas7;
MONOTONE REG(pas1 = STRATAV group);
MONOTONE REG(pas3 = STRATAV group pas1);
MONOTONE REG(pas4 = STRATAV group pas1 pas3);
MONOTONE REG(pas5 = STRATAV group pas1 pas3 pas4);
MONOTONE REG(pas6 = STRATAV group pas1 pas3 pas4 pas5);
MONOTONE REG(pas7 = STRATAV group pas1 pas3 pas4 pas5 pas6);
RUN;
具体解释如下:
MONOTONE REG(pas1 = STRATAV group):在这段代码中,使用了MONOTONE REG(pas1 = STRATAV group)语句进行插补。插补的目标是将缺失值pas1根据STRATAV和group变量的关系进行预测和填充。
MONOTONE REG是一个SAS PROC MI过程中的子过程,用于执行多元回归分析。它可以根据已知的自变量和因变量之间的关系,预测缺失值并进行插补。
在这个语句中,pas1是被解释变量,即要进行插补的缺失值。STRATAV和group是解释变量,即用来预测pas1的自变量。STRATAV和group可以是任意的变量,它们的关系将被用来建立回归模型,从而预测pas1的值。
通过执行MONOTONE REG(pas1 = STRATAV group)语句,SAS将使用已有的数据和已知的关系来建立回归模型。然后,该模型将用于预测缺失值pas1,并将插补后的值填充到输出数据集pas6中。
总而言之,这段代码的作用是使用MONOTONE REG方法根据STRATAV和group的关系来预测和填充pas1的缺失值。
案例三:
proc mi data=all_mono out=outmi seed=4362756 nimpute=1 round = . . 1 1 1 1 1 1 maximum= . . 35 35 35 35 35 35 minimum= . . 5 5 5 5 5 5 minmaxiter=1000000;
by Imputation;
CLASS STRATAV group;
var STRATAV group pas1 pas3 pas4 pas5 pas6 pas7;
monotone regression;
mnar adjust( pas6 / adjustobs=(group="&trt") shift=&sj)
adjust( pas6 / adjustobs=(group='对照组') shift= &pj);
run;
minmaxiter=1000000: 用于指定寻找合适的插补值时允许的最大迭代次数,用于每个插补过程中,算法达到maximum和minimum限制时尝试的最大迭代次数。换句话说,minmaxiter反映了算法在生成每个数据点的插补值时的迭代复杂度。
monotone regression: 在PROC MI中,这告诉SAS使用单调回归方法进行插补,这是插补单调缺失数据的一种标准方式。在单调插补中,SAS将根据在var语句中提到的变量列表的顺序来插补数据。它会从列表中的第一个变量开始,如果该变量有缺失值,就使用该变量之前的变量(这个情况下为没有,因为它是第一个)来预测缺失值。然后,它会移动到下一个变量,使用所有之前的变量(包括刚刚被插补过的变量)来插补它的缺失值,依此类推。所以,仅仅是var语句中的变量被用于回归插补。换句话说,和MONOTONE REG(pas1 = STRATAV group);相比,monotone regression更像是一个默认方法。