You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SAS代码生成影响诊断图表并修复dev、c计算异常问题

问题:SAS异常值与影响点分析中图表无法生成、计算结果异常

我正在分析一组含5个自变量(x1、x2、x3、x4、x5)和1个因变量(y)的数据集,共60条记录。运行下方SAS代码识别异常值与影响点时,出现两个问题:

  • 无法生成影响诊断图表
  • dev和c的计算结果异常

需要修改代码,生成类似附件截图的影响诊断图表。


原代码

data data;
INFILE "/home/" dlm=",";
input x1-x5 y;
run;

PROC STANDARD DATA=data MEAN=0 OUT=zdata;
VAR x1-x5;
RUN;

PROC REG DATA=zdata PLOTS;
model y=x1-x5/DWPROB;
RUN;


PROC LOGISTIC DATA=data PLOTS;
MODEL y=x1-x5/ link=glogit INFLUENCE;
OUTPUT OUT=i1 C=c Cbar=c_1 P=p RESCHI=chi RESDEV=dev
DIFCHISQ=chi_s DIFDEV=dev_s H=h C=cookd DFBETAS=ALL;
RUN;

PROC PRINT DATA=i1;
where dev<-2;
var x1-x5 dev;
run;

proc print data=i1;
where c>0.4;
var x1-x5 C;
run;

问题分析与修改后的代码

核心问题点

  1. LOGISTIC过程PLOTS选项未指定具体图表:仅写PLOTS不会自动生成影响诊断类图表,需明确指定。
  2. OUTPUT语句变量名冲突:C=c和C=cookd重复使用C作为变量名,导致c值被覆盖,结果异常。
  3. REG过程PLOTS选项冗余:未指定具体图表类型,默认输出可能不符合需求。
  4. 数据读入路径不完整:INFILE "/home/"未指定具体文件名,无法正确读取数据。

修改后的完整代码

/* 1. 修正数据读入路径,补充完整文件名(若有表头需加FIRSTOBS=2跳过) */
data mydata;
INFILE "/home/your_dataset.csv" dlm="," FIRSTOBS=2;
input x1-x5 y;
run;

/* 2. 标准化自变量(可选,若需基于标准化变量分析则保留) */
PROC STANDARD DATA=mydata MEAN=0 OUT=zdata;
VAR x1-x5;
RUN;

/* 3. REG过程明确指定诊断图表,ONLY参数避免冗余输出 */
PROC REG DATA=zdata PLOTS(ONLY)=(QQPlot RESIDUALS BYPANEL INFLUENCE);
model y=x1-x5/DWPROB;
RUN;
QUIT;

/* 4. LOGISTIC过程修正变量冲突,指定影响诊断图表 */
PROC LOGISTIC DATA=mydata PLOTS(ONLY)=(INFLUENCE DIAGNOSTICS);
MODEL y=x1-x5/ link=glogit INFLUENCE;
/* 修正变量名冲突,将C统计量和Cook's D分别命名为c_stat和cookd */
OUTPUT OUT=i1 
       C=c_stat 
       Cbar=cbar 
       P=p 
       RESCHI=chi 
       RESDEV=dev
       DIFCHISQ=chi_s 
       DIFDEV=dev_s 
       H=hat_matrix 
       COOKD=cookd 
       DFBETAS=ALL;
RUN;
QUIT;

/* 5. 使用修正后的变量名筛选异常值 */
PROC PRINT DATA=i1;
where dev<-2;
var x1-x5 dev;
run;

proc print data=i1;
where c_stat>0.4;
var x1-x5 c_stat;
run;

关键修改说明

  • 数据读入:补充完整CSV文件名,若数据集含表头,添加FIRSTOBS=2跳过表头行。
  • REG过程:PLOTS(ONLY)=(QQPlot RESIDUALS BYPANEL INFLUENCE)指定仅生成残差QQ图、分组残差图和影响点诊断图,减少冗余输出。
  • LOGISTIC过程:
    • PLOTS(ONLY)=(INFLUENCE DIAGNOSTICS)直接生成影响诊断相关图表,包含Cook's D、帽子矩阵、DFBETAS等指标的可视化。
    • 修正OUTPUT语句中的变量名冲突,避免C统计量被Cook's D覆盖,确保计算结果准确。
  • 添加QUIT语句:每个PROC过程后添加QUIT,确保过程正常结束,释放系统资源。

内容的提问来源于stack exchange,提问作者needhelpcoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:05:58