【问题标题】:Output the dropped/excluded observation in Proc GLIMMIX - SAS在 Proc GLIMMIX - SAS 中输出丢弃/排除的观察
【发布时间】:2018-04-17 05:19:42
【问题描述】:

当我在 SAS 中运行 proc glimmix 时,有时它会丢失观察结果。 如何获取已删除/排除的观察集或包含的观察集,以便我可以识别已删除的集?

我当前的 Proc GLIMMX 代码如下-

     %LET EST=inputf.aarefestimates;
     %LET MODEL_VAR3 = age Male Yearc2010 HOSPST
                Hx_CTSURG Cardiogenic_Shock COPD MCANCER DIABETES;



    data work.refmodel;
    set inputf.readmref;
    Yearc2010 = YEAR - 2010;         
    run;

   PROC GLIMMIX DATA = work.refmodel NOCLPRINT MAXLMMUPDATE=100;
  CLASS  hospid HOSPST(ref="xx");
  ODS OUTPUT PARAMETERESTIMATES = &est (KEEP=EFFECT ESTIMATE STDERR);
  MODEL RADM30 = &MODEL_VAR3 /Dist=b LINK=LOGIT SOLUTION; 
  XBETA=_XBETA_;
  LINP=_LINP_;
  RANDOM INTERCEPT/SUBJECT= hospid SOLUTION; 
  OUTPUT OUT =  inputf.aar
    PRED(BLUP ILINK)=PREDPROB PRED(NOBLUP ILINK)=EXPPROB;
 ID XBETA LINP hospst hospid Visitlink Key RADM30;
 NLOPTIONS TECH=NRRIDG;

 run;

提前谢谢你!

【问题讨论】:

    标签: sas


    【解决方案1】:

    它会删除您在模型中使用的任何变量、CLASS、BY、MODEL、RANDOM 语句中存在缺失值的记录。因此,您可以检查这些变量中的缺失以查看您得到的结果。通常,输出数据集也会通过对未使用的记录进行预测来表明这一点。

    您可以运行下面的代码。

    *create fake data;
    data heart;set sashelp.heart; ;run;
    
    *Logistic Regression model, ageCHDdiag is missing ;
    proc logistic data=heart; 
    class sex / param=ref;
    model status(event='Dead') = ageCHDdiag height weight diastolic;
    *generate output data;
    output out=want p=pred;
    run;
    
    *explicitly flag records as included;
    data included;
    set want;
    if missing(pred) then include='N'; else include='Y';
    run;
    
    *check that Y equals total obs included above;
    proc freq data=included;
    table include;
    run;
    

    输出将显示:

                     The LOGISTIC Procedure
    
                            Model Information
    
              Data Set                      WORK.HEART
              Response Variable             Status
              Number of Response Levels     2
              Model                         binary logit
              Optimization Technique        Fisher's scoring
    
    
                  Number of Observations Read        5209
                  Number of Observations Used        1446
    

    然后会显示 PROC FREQ:

                            The FREQ Procedure
    
                                           Cumulative    Cumulative
       include    Frequency     Percent     Frequency      Percent
       ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
       N              3763       72.24          3763        72.24
       Y              1446       27.76          5209       100.00
    

    两个数据集中都包含 1,446 条记录。

    【讨论】:

      【解决方案2】:

      我想我回答了我的问题。 代码行 - 输出 OUT = inputf.aar 给出模型的输出。此表包括 proc 语句中使用的所有观察结果。所以我可以将此表中的数据与我的输入表进行匹配,并找到被丢弃的观察结果。

      @REEZA - 我已经查找了数据中所有列的缺失值。无法通过仅识别编号来识别正在丢弃的记录。具有缺失值的记录。 (还是)感谢你的建议。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多