webgu 发表于 2014-5-2 17:41:59

SAS 绘制统计图形点到即止之四:直方图和他的小伙伴

本期开始,逐个逐个的来探讨统计图形的实现方法。欢迎大家来论坛,贴代码,共同改进。

对于直方图,通常有两种快速的实现方法。


[*]Proc Univariate里的Histogram语句
proc univariate data=sashelp.cars ;
    var enginesize;
   histogram /normal midpoints=1 to 8 ;
run;


其中,Normal 选项可提供正态性检验;midpoints设置组中值。

https://mmbiz.qlogo.cn/mmbiz/zDlwt2cf1dE7IDooF1zzmukOFG3VkbJq6aYBTLK0hYibDdTIMY8xxGg7BicjHs9Wdx82KibffPMtuaia2kmgJEtF8g/0
[*]Proc Sgplot里的Histogram语句

proc sgplot data=sashelp.cars;
    title "Distritubtion of enginesize";
   histogramenginesize/binstart=1      nbins=10showbins boundary=lower;
    density enginesize/type = normal;
run;
其中,density语句提供正太曲线;binstart,nbins等设置直方图的起始值和bin的个数。
https://mmbiz.qlogo.cn/mmbiz/zDlwt2cf1dE7IDooF1zzmukOFG3VkbJqAL2LNqeOz9kyTeXdSnjMyacFSuB2KeLSFxojZZRr5wic0dxzBGCuBiaQ/0
​option可以做一些很较细致的设置。大家可以多查查Help。


两种实现方法都能对直方图的一些细节做一些设置,如直方中点的设置,直方条数的设置,以及其它一些外观方面的设置。不过,基于统计过程的PROC UNIVARIATE能提供更多的统计特性,如概率密度曲线、正态性检验、PP/QQ图等。


除此之外,直方图还有有些衍生图形。如下图:
https://mmbiz.qlogo.cn/mmbiz/zDlwt2cf1dE7IDooF1zzmukOFG3VkbJqBww579aE2XtGKD2dh8VL7b1pRFhm096cMk9anJhia0JSn1dF4LvpNnA/0


对于重叠的直方图,用Proc Sgplot的Histogram语句叠加即可。但对于后面两种的镜像直方图,就需要终极神器,y也就是绘图模板语言GTL了。

具体代码可见Graphically Speaking Blog 里的例子。

http://blogs.sas.com/content/gra ... arative-histograms/



lan_min2008 发表于 2014-5-19 12:38:54

这个系列不错,楼主继续

myth916031 发表于 2014-12-4 20:29:40

这个系列很好啊,楼主,请继续,谢谢!
页: [1]
查看完整版本: SAS 绘制统计图形点到即止之四:直方图和他的小伙伴