如何在SAS绘制的CDF图中添加置信带?附基础CDF图生成代码
SAS绘制带置信带的CDF图实现方案
你可以先通过PROC UNIVARIATE导出CDF估计值和对应的置信区间统计量,再调用PROC SGPLOT绘图即可,步骤如下:
步骤1:导出CDF及置信带统计量
在原有PROC UNIVARIATE代码中增加out和clm参数,将计算结果输出到自定义数据集:
data record; input v @@; cards; 16.3 14.2 14.7 16 15.7 ; run; /* 导出CDF值与95%置信上下限 */ proc univariate data=record noprint; var v; cdfplot / out=cdf_stats clm alpha=0.05; run;
输出的cdf_stats数据集中,v为原始观测值,cdf为对应经验累积分布概率,lclm为置信下限,uclm为置信上限,alpha参数可自行调整置信水平。
步骤2:使用PROC SGPLOT绘制带置信带的CDF图
你可以选择折线式置信边界,或者半透明填充式置信带,两种实现代码如下:
- 折线式置信边界代码:
proc sgplot data=cdf_stats; series x=v y=cdf / lineattrs=(color=navy thickness=2) legendlabel="经验CDF"; series x=v y=lclm / lineattrs=(color=firebrick pattern=shortdash) legendlabel="95%置信下限"; series x=v y=uclm / lineattrs=(color=firebrick pattern=shortdash) legendlabel="95%置信上限"; xaxis label="观测值"; yaxis label="累积概率"; keylegend / location=inside position=bottomright; run;
- 填充式置信带代码:
proc sgplot data=cdf_stats; band x=v lower=lclm upper=uclm / fillattrs=(color=firebrick transparency=0.7) legendlabel="95%置信带"; series x=v y=cdf / lineattrs=(color=navy thickness=2) legendlabel="经验CDF"; xaxis label="观测值"; yaxis label="累积概率"; keylegend / location=inside position=bottomright; run;
内容的提问来源于stack exchange,提问作者Hajin Lee
相关产品推荐
相关产品推荐

