SAS系统和数据分析散布图折线图和层次图
第二十课 散布图、折线图和层次图
SAS系统中绘制散布图、折线图和层次图,使用PROC PLOT过程和PROC GPLOT过程。PROC PLOT过程是用来画易生成的低分辨率的图形,输出在OUTPUT窗口。而PROC GPLOT过程是用来生成订制的、高分辨率的图形,输出在GRAPH窗口,并且还可以对输出的图形进行编辑修改。
一、 PROC PLOT过程
使用PLOT过程可以在两个不同的坐标系中对两个变量作散布图、折线图、半对数图和层次图。用于数据处理中,直观地了解数据的变化趋势和数据间的相互关系等。它的一般形式为:
Porc Plot DATA=数据集 选项列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
> ;
Plot 纵坐标变量Y*横坐标变量X„„选项列表>;
Run ;
1. PROC PLOT语句
PROC PLOT语句中的选项列表主要分成三类:有关图形的坐标轴选项、有关外观的选项和有关图形大小的选项。其中,图形大小的两个选项较为常用:
, VPCT=百分比列表——规定产生图形在垂直方向占一页的百分比。例如,
VPCT=33表示这张输出图占一页的33%,即占一页的1/3,所以一页可以纵向打
印3张图。VPCT=50 25 25表示每一页在纵向打印3张图,第一张占全页的一半,
第二和第三张各占1/4页。VPCT=200表示要求输出图占2页的长度。
, HPCT=百分比列表——规定产生图形在水平方向占一页的百分比。
2. PLOT语句
PLOT语句里首先要规定数据集中的哪两个变量作为图形中的垂直变量和水平变量,以及在图形中用于画点的作图字符。PLOT语句的几种使用格式如下:
plot y*x ;
plot y*x =’+’;
plot y*x=符号变量 ;
plot y*x $ 标记变量 =’+’;
plot y*x=’+’ b*a=’*’ /overlay ;
第一条语句作图符号用缺省形式,依次用英文大写字母A、B、C„Z作为作图符号。当观测的条数较多时,低分辨率图不可能画出所有观测的点,所以当图中的某一点表示有一条观测的点时,用作图符号A表示;当图中的某一点表示有二条观测的点时,用作图符号B表示;以此类推。例如,输出图中有一个Z符号,表示在这点上共有26条观测的点或更多点。上海财经大学经济信息管理系IS/SHUFE
Page 1 of 28
PROC GPLOT过程默认的作图符号为加号(+)。
第二条语句用等号(=)规定一个字符作为作图符号。此例中每个散点用加号(+)表示。
第三条语句用等号(=)规定一个变量的值作为作图符号,变量可以是字符变量,也可以是数值变量。此时,每个散点的作图符号用数据集中同一条观测的这个符号变量的值表示。例如,假定为=SEX变量,则作图符号为SEX变量的值F或M。
第四条语句用符号($)规定一个变量的值用于标记图中的散点。此例中每个散点不仅用加号(+)表示,而且还标出了图中每一个散点在数据集的同一条观测中这个标记变量的值。
第五条语句规定在同一张图上重叠两个图,当然可以重叠更多的图。OVERLAY选项要求定义在PLOT语句中的几个图打印在一张图上。
例如,我们有一个上证指数周线数据集INDEXSH,包含日期变量DATE、成交量变量VOLUME、开盘价变量OPEN、最高价变量HIGH、最低价变量LOW、收盘价变量CLOSE和涨跌百分比CHANGE,用PROC PLOT过程订制一个指数对交易周的最高和最低价的重叠散点图。程序如下:
Libname Study “D:/Sasdata/Mydir”;
Proc Plot Data=Study.IndexSh Vpct=50 Hpct=70 Formchar=?|----|---? ;
Where date01feb91 ?d ;
Plot high*date=?+? low*date $low =?-? /overlay ;
Run ;
程序的运行结果显示在OUTPUT窗口中,如图20.1所示(为显示清晰起见,窗口的大小和显示内容的位置移动过)。
上海财经大学经济信息管理系IS/SHUFE
Page 2 of 28
图20.1 用PLOT过程订制重叠散点图
3. PLOT语句中的选项
PLOT语句除了上述的重叠作图选项OVERLAY外,还有几类重要的选项如下:
(1) 关于坐标轴刻度的任选项
用VAXIS(或HAXIS)=标记值列表,定义沿垂直(或水平)坐标轴相等间隔的刻度标记值。可以用BY n的方式规定刻度的增量。这些值可以是均匀上升或下降,也可以不是,既可以是数字值,也可以是日期时间值。几种可能的选项格式如下:
haxis=0 to 100 by 5
haxis=’01jan20’d to ‘31dec20’d by 7
vaxis=1 10 100 100 1000
haxis=by 10
其他还有VEXPAND(或HEXPAND)、VREVERSE(或HREVERSE)、VZERO(或HZERO)等有关坐标轴刻度选项。
(2) 关于参考线的任选项
如果要求在散布图的垂直或水平轴的指定数值上画出垂直或水平线作为参考线,可以使用如下选项:
上海财经大学经济信息管理系IS/SHUFE
Page 3 of 28
verf=100 400 1000 (三条水平参考线)
href=’01mar20’d ‘01oct20’d (两条垂直参考线)
还可以用VERFCHAR或HREFCHAR=‘字符’定义参考线的画线符号。
(3) 关于图形轮廓的任选项
BOX选项可以画出边框围住整个图形,而不仅仅是画出底部和左边框。VPOS或HPOS=轴长度,规定水平或垂直轴上打印输出的数目。
(4) 关于作等值线(层次图)的任选项
当要求散点(x,y)的作图符号能根据z(通常z=f(x,y))值的大小规定不同的层次强度字符时,也就是相同z值的点用相同的作图符号,不同z值的点用不同的作图符号,但最多只能把z值分成10个层次的不同值。我们可以使用如下选项:
plot x*y=z /contour=3 s1=’A’ s2=’+’ s3=’*’ ;
plot x*y=z /contour=3
语句说明:=z指定按Z变量的内容确定散点作图符号,选项contour =3规定三个层次强度,s1=?A? s2=?+? s3=?*?按上升顺序给出层次强度的作图符号。用户自己可以不定义S1、S2、S3的层次强度的作图符号,而使用缺省值。
下面我们举例说明PLOT语句中选项的使用。例如,绘制上证指数周线数据集INDEXSH的散点图时,根据股票技术分析的需要,要画支撑和阻力线,以及趋势变异的时间和周期,这对以后的各种分析都很重要。我们可以通过调整纵横坐标轴的刻度和增加水平和垂直参考线来实现。程序如下:
Libname Study “D:/Sasdata/Mydir”;
Proc plot Data=Study.IndexSh Vpct=50 Hpct=80 Formchar=?|----|---? ;
plot close*date='+' /haxis='21dec90'd to '01jan93'd by 98
vaxis=100 200 400 800 1600
href='16aug91'd '30apr92'd '20nov92'd
vref=96 135 400 1429 ;
title1 'Shanghai StockIndex' ;
title2 '21dec90---01jan93' ;
Run ;
程序的运行结果显示在OUTPUT窗口中,如图20.2所示。
上海财经大学经济信息管理系IS/SHUFE
Page 4 of 28
图20.2 用PLOT过程订制重叠散点图
输出解释:对上证指数从1990年12月21日开市到1993年1月1日的交易数据进行分析,主要经历三种市场状况:第一种市场状况是从1990年12月21日到1991年7月底8月初,在96,135点之间盘整筑底,历经大约31,34周,形成W底;第二种市场状况是从1991年8月中旬有效突破阻力线135,形成稳步盘升单边市,至1992年4月24日历经大约28,31周;第三种市场状况是从1992年4月30日至1992年11月20,在400点一线开始飙升冲顶1429点,最后回落原地400点,历经大约29周。从上面的分析我们可以看到,水平和垂直参考线提供了一种看得见的暗示。技术分析的目的就是找到购买资产的适宜点,尽可能地识别一种趋势结束且另一种趋势开始的点,然后可作出适宜的交易。
二、 生成高分辨率图形
虽然PROC PLOT过程生成的散布图对基本数据分析是有用的,但是为了更详细的分析和表达目的也可用PROC GPLOT过程来生成高分辨率图形。
1. GOPITONS语句
通常,当在使用PROC GPLOT和PROC GCHART等能生成高分辨率图形的过程时,要用到系统的一些特定特征,因此,要求指定图形设备和计算机系统的一些另外可能的选择。用下列GOPITONS语句能规定一个图形设备以运行SAS/GRAPH软件。 上海财经大学经济信息管理系IS/SHUFE
Page 5 of 28
Goptions device=图形设备 ;
例如,如果我们要指定图形输出设备为Windows环境下的黑白打印机,程序为:
Goptions device=winprtm ;
如,如果我们要指定图形输出设备为Windows环境下的彩色打印机,程序为: 又
Goptions device=winprtc ;
另外,我们还可以通过选择菜单命令Globals/Options/Global options或Globals/Graph/File/Print…/SAS Graph Driver来设定图形输出设备。
2. PROC GPLOT过程
生成高分辨率图形的PROC GPLOT过程的一般使用格式如下:
Porc Gplot DATA=数据集 ;
Plot 纵坐标变量Y*横坐标变量X„„选项列表>;
Symboln <选项列表> ;
Axisn <选项列表> ;
Run ;
使用PROC GPLOT过程和PROC PLOT过程的区别是,对于PROC GPLOT语句,PROC PLOT语句中的VPCT和HPCT等选项不可使用。两者的PLOT语句使用方法基本相同。最主要的区别是,在PROC GPLOT过程中,可使用SYMBOLn语句和AXISn语句。
3. 用SYMBOLn语句定义线和符号
SYMBOLn语句的主要作用:可以定义数据点的符号,可以定义数据点之间的连接方式,可以定义数据点和线的颜色。SYMBOLn语句的n取值范围从1到99,缺省值是1,n代表Y*X两个变量形成数据连线的系列数。一些主要选项如下:
, V=数据点图形符号——数据点的符号有NONE(没有)、PLUS(缺省值加号)、
STAR(星号)、SQUAR(小方块)、DIAMOND(小菱形)、TRANGLE(三角形)、
CIRCLE(小圆圈)。
, I=数据点间连接方式——常用的连接有NONE(没有)、JOIN(直线)、SPLINE
(平滑)、NEEDLE(从数据点到横坐标画垂直线)、HILOC(最高、最低、收盘
价)、RL(直线回归线)、BOX25(盒形线)。
, W=连线的线宽——例如,w=5。
, H=图形符号的高度——例如,h=2.5。
, L=定义连线的类型——例如,l=2。
, C=定义颜色——例如,c=red。
, FONT=定义一种字体——例如,font=swissb。
SYMBOLn语句所定义的各种选项,由于数量众多,用户一般很难记忆,我们上面所列出的仅仅是一小部分。通常可以在命令输入框中发布SYMBOL命令,调出SYMBOL窗口,上海财经大学经济信息管理系IS/SHUFE
Page 6 of 28
在选项参数的横线上键入,后,在参数对话框中选择参数。共有14项参数选项,每项中还有许多参数值。
一个SYMBOLn语句一旦被定义就一直保持有效,直到重新定义或者退出SAS系统。执行一个不带任何选项的SYMBOLn语句将取消SYMBOLn的全部定义,并不影响其他的SYMBOL语句。如果想要取消所有的SYMBOL语句定义,提交下面的语句:
goptions reset=symbol ;
4. 用AXISn语句定义坐标轴
在PROC GPLOT中,可以通过PLOT语句的选项、LABEL语句和FORMAT语句来修饰坐标轴。PLOT语句的选项允许控制坐标轴的刻度、文本和颜色。但使用AXISn语句的选项可以更集中、更方便地控制和管理坐标轴。常见的使用格式如下:
Proc Gplot DATA=数据集 ;
Plot Y*X / vaxis=axis1 haxis=axis2 ;
Symboln <选项列表> ;
axis1 label=(„Price?) order=(100 to 1500 by 200 ) offset=(20,10) ;
axis2 label=(„Date?) order=(„21dec90?d to „01jan93?d by 98 ) ;
Run ;
AXISn语句的LABEL选项规定该轴的标签,ORDER选项规定该轴的取值范围,OFFSET选项规定从该轴的原点开始的第一个主刻度空间大小,及从该轴最末端到最后一个刻度的空间大小。例如,语句中的OFFSET=(20,10),当单位是PCT时,表示第一个主刻度空间为图形输出区域的20%,最后一个刻度的空间为图形输出区域的10%。
有时需要给图形加第二根纵轴,用来表示在同一时间期间上的另一个变量。两个变量不用同一纵坐标轴的原因,常常是两个变量的值相差太大,如果两个变量的值显示在同一纵轴上,在图形上就会很难分辨值较小那个变量的值的变化。定义第二根纵轴(右轴)的方法如下:
Proc Gplot DATA=数据集 ;
Plot Y1*X / vaxis=axis1 haxis=axis2 ;
Plot2 Y2*X / vaxis=axis3 ;
Symboln <选项列表> ;
axis1 <选项列表> ;
axis2 <选项列表> ;
axis3 <选项列表> ;
Run ;
用第二条PLOT2语句定义了第二根纵轴AXIS3。
例如,我们要在同一图形上绘制上证指数的最高价,最低价,收盘价和交易量的图形。由于价格和交易量的取值范围不同且相差悬殊,交易量用左边的纵轴来度量,价格采用右边的纵轴来度量。要生成最高价,最低价,收盘价图,原来INDEXSH数据集中的数据排列格式不符合要求,需要用数据步修改INDEXSH为INDEXSH2,将一条观测中最高价HIGH、上海财经大学经济信息管理系IS/SHUFE
Page 7 of 28
最低价LOW、收盘价CLOSE三个数据,转换成三条观测中VALUE变量的数据,且三条观测的日期DATE不变。程序如下:
Libname study "d:\sasdata\mydir" ;
data study.indexsh2;
set study.indexsh;
value=high; output;
value=low; output;
value=close; output;
Run ;
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ; Proc gplot data=study.indexsh2;
plot volume*date /vaxis=axis1 hvxis=axis2;
plot2 value*date /vaxis=axis3 vref=0;
symbol1 i=needle;
symbol2 i=hiloc;
axis1 label=('Volume') order=( 0 to 700000 by 100000) offset=(0,50) ;
axis2 label=('Date') order=('21dec90'd to '01jan93'd by 98) ;
axis3 label=('Price') order=(0 to 1500 by 100) offset=(25,0) ;
title 'Shanghai StockIndex';
Run ;
程序的运行结果显示在GRAPH窗口中,如图20.3所示。
上海财经大学经济信息管理系IS/SHUFE
Page 8 of 28
图20.3 用GPLOT过程订制的价格和成交量图
在用PROC GPLOT过程绘制高分辨率的图形前,首先把绘图的数据转换和处理成能符合I=HOLOC连接方式的数据格式,另外为了确保在生成图形时,各种符号定义准确,一般先使用GOPTIONS语句,清除先前定义的各种符号(RESET=GLOBAL),然后再定义将在图中使用的全局符号体系。
三、 散布图
散布图又称散点图或相关图。它是以散点的分布反映变量之间相关情况的统计图。根据图中的各点分布和密集程度,大致可以判断变量之间协变关系的类型。在回归模型中,常用散布图来描述变量之间的相关关系,横轴上自变量的改变将引起纵轴上因变量的改变。回归模型中参数的计算,是通过使因变量的理论值与实际值之间偏差的平方和达到最小而得到的。
为了便于理解散布图在回归模型中的应用,我们先用已知的线性方程来虚拟构造一组样本数据,画出散布图,从图中各散点形成的趋势看,是否符合线性关系,然后决定用线性回归模型求回归方程。作为对总体回归直线的近似,必须进行统计检验才能确定这种近似是否恰当,最后我们可以得到确认的总体回归方程,再比较我们已知的方程,应该发现非常接近。
例如,新创建的数据集LINE,是我们用身高(HEIGH)=体重(WEIGHT)+100这样一个简单直线方程来生成的模拟数据集。数据集中有一组高度HEIGH和体重WEIGHT的观测值。假设我们需要绘制回归直线及置信带等,可以先画出高度对体重的散布图进行观察和分析,然后利用回归过程建立高度(因变量)和体重(自变量)的线性方程式后,进一步画出高度预测值对体重的散布图,进行比较和分析。程序如下:
Libname study "d:\sasdata\mydir";
data study.line ;
上海财经大学经济信息管理系IS/SHUFE
Page 9 of 28
do n=1 to 200 by 1;
weight=40+60*ranuni(1) ;
height=1*weight+100+5*normal(1) ;
output ;
end ;
Proc reg data=study.line;
model height=weight;
output out=study.linereg p=predict ;
proc gplot data=study.linereg ;
plot height*weight predict*weight / overlay;
symbol1 v=dot c=red i=none;
symbol2 v=none c=blue i=spline;
Run ;
程序说明:数据步DATA自动生成200条观测,SAS系统提供了两个均匀分布的随机函数RANUNI()和UNIFORM()产生0,1之间的随机数,用随机函数构成的40+60*ranuni(1)表达式,将使WEIGHT变量的取值范围为40,100公斤之间的随机值。SAS系统还提供了两个
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
正态分布的随机函数NORMAL()和RANNOR(),产生均值为0标准差为1标准正态随机数。随机数表达式1*weight+100+5*normal(1)是经过线性变换产生的均值为
的数据落在均值附近的两个标1*weight+100,标准差为5的随机数,对于正态分布将有95%
准差之内,例如,对于weight=50来说,身高的均值为50+100=150,因此HEIGHT变量的取值范围将有95%的可能为140,160厘米。PROC REG回归过程,首先建立输入为WEIGHT输出为HEIGHT的回归模型,并用OUTPUT语句创建包含身高预测值的输出数据集,定义输出数据集名为Study.LineReg,定义存放预测值的变量名为PREDICT。最后,用PROC GPLOT过程把实际高度对重量及预测高度对重量两张散布图重叠放在一张图上,通常两张图应该用不同的作图字符来表示散点,实际高度对重量用无任何连线的小圆点表示,预测高度对重量用平滑曲线连接散点。
高分辨率的输出图形显示在GRAPH窗口,在OUTPUT窗口还显示输出PROC REG过程的统计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
,如下所示:
上海财经大学经济信息管理系IS/SHUFE
Page 10 of 28
Model: MODEL1
Dependent Variable: HEIGHT
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Prob>F
Model 1 58792.37183 58792.37183 2524.881 0.0001
Error 198 4610.47060 23.28521
C Total 199 63402.84243
Root MSE 4.82547 R-square 0.9273
Dep Mean 170.67056 Adj R-sq 0.9269
C.V. 2.82736
Parameter Estimates
Parameter Standard T for H0:
Variable DF Estimate Error Parameter=0 Prob > |T|
INTERCEP 1 97.812209 1.48957643 65.664 0.0001
WEIGHT 1 1.033179 0.02056151 50.248 0.0001
从回归分析报告中我们看出,对样本回归直线与观测值之间的拟合程度的检验(也称拟
22合优度检验)——用判定系数R检验,R的取值范围为0,1,越接近1,拟合程度越好;反
22之越差。本例中R为0.9273,调整后的R也为0.9269,非常接近于1。还有参数显著性检验(T检验)和回归总体线性的显著性检验(F检验)都显示高度显著。我们可以确认回归模型的估计式为:
HEIGHT=1.033179*WEIGHT+97.812209
SAS系统的许多图形过程都带有统计计算,许多统计分析过程都带有图形输出。PROC GPLOT画图过程就带有回归模型的预测值和置信带计算,并用曲线连接。程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
proc gplot data=study.line ;
plot height*weight height*weight /vaxis=axis1 haxis=axis2 overlay;
symbol1 i=none v=dot cv=black h=1.5 ;
symbol2 i=rlcli95 ci=black cv=black co=black w=2.5 L=1;
axis1 label=('Height') order=(130 to 210 by 10) ;
axis2 label=('Weight') order=(40 to 100 by 10) ;
title 'Linear Regression';
Run ;
程序说明:对样本数据集STUDY.LINE不先调用统计计算过程求回归预测值,而是直接绘制实际身高对体重的两张重叠散点图。然后对第二张图的连接方式I选项确定为RLCLI95,包括三部分含义:?RL表示作直线回归,还可用表示作2次回归RQ和RQ0(消除截距,强制线经过原点)代替,或表示作3次回归的RC、RC0代替;?CLI表示作单个预测值的置信上海财经大学经济信息管理系IS/SHUFE
Page 11 of 28
带,可用CLM代替,表示作均数的置信带;?95表示置信度为95%,另有两个可用值为90和99。有关散布图中I选项的回归参数取值,可在SYMBOL窗口的TYPE参数选项横线上键入,后,再选择User regress analysis子菜单来查看或选定。CI表示回归线的颜色,CO表示置信带的颜色,CV表示散点的颜色,W表示连接线的宽度,L表示连接线的类型。
程序的运行结果显示在GRAPH窗口中,如图21.4所示。图中大约有5%的数据点落在两条虚线构成的置信带之外。
图20.4 一元线性回归和95%置信限
四、 折线图
折线图又称曲线图,是用线段的升降来说明现象变动情况的一种统计图,它主要用于表现在时间上的变化趋势、现象的分配情况和两个现象之间的依存关系等。折线图常应用于时间序列模型中,把有关时间序列的数据绘制成图形。广义上说,模型可划分为回归模型与时间序列模型。从数学角度看,时间序列数据的建模是构造一个包含时间序列本身、推荐函数的残差以及可选择的其他时间序列的函数。我们所观测到的时间序列的值是时间序列过程的实现。
用描述方法判定时间序列数据的趋势后,技术分析人员往往要对该序列建立模型并预测它们的将来值。用时间序列的数据建立模型时,可以去掉序列的确定分量,也可以对确定部分建立一个明确的模型。利用时间序列的其他组成部分建模后,把确定部分也加进去形成最终模型。
例如,股票价格趋向于沿看得见可识别的趋势移动,技术分析想尽可能地识别趋势并在趋势反转点改变投资。然而,由于随机波动遮掩了反转点或使反转点错误地出现,因此技术分析必须借助于估计序列成分(包括趋势周期计算、季节和交易日方式的循环和非规则成分的循环)或计算序列的移动平均来估计序列的趋势。
直接使用一些股票市场的时间序列数据绘制折线图,全部趋势可能难以直观识别。如果移去非趋势成分会使趋势更容易显现。可以使用SAS/ETS软件中PROC X11过程来估计和调上海财经大学经济信息管理系IS/SHUFE
Page 12 of 28
节序列成分。作为对使用PROC X11过程去估计趋势成分的一种补充,可以采用平滑时间序列的数据的方法,以便移去随机波动从而揭示数据中的趋势。一般地,通过计算数据的移动平均可实现数据的平滑。移动平均有很多种类,主要有简单移动平均、加权移动平均和指数加权移动平均,最优长度依赖于使用的时间结构。理解了数据中有关趋势的知识,将有助于买、卖和持有股票的决定及交易的时机。
下面,我们首先对上证指数INDEXSH数据集计算简单的、加权的和指数加权的移动平均线。然后绘制原始序列和移动平均的图形。程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname Study “d:\sasdata\mydir”;
Data study.indexma ;
Set study.indexsh ;
Ma10=(close+lag(close)+lag2(close) +lag3(close) +lag4(close)
+lag5(close)+lag6(close)+lag7(close) +lag8(close) +lag9(close))/10;
Wma10=(10*close+9*lag(close)+8*lag2(close)+7*lag3(close)+6*lag4(close)
+5*lag5(close)+4*lag6(close)+3*lag7(close)+2*lag8(close)+lag9(close))/55 ;
W1=0.3 ;
retain ewma1 ;
If _n_=1 then ewma1=close ;
else ewma1=w1*close+(1-w1)*ewma1 ;
W2=0.75 ;
retain ewma2 ;
If _n_<2 then ewma2=ewma1 ;
else ewma2=w2*ewma1+(1-w2)*ewma2 ;
Proc gplot data=study.indexma ;
plot close*date ma10*date /vaxis=axis1 haxis=axis2 overlay ;
symbol1 i=join v=none L=1 h=2.5 ;
symbol2 i=join v=none L=1 h=2.5 w=2;
axis1 label=('Price') logbase=10 order=(100 200 400 800 1600 3200);
axis2 label=('Date') ;
title 'Shanghai StockIndex';
Title2 ‘Close and MoveAverage’;
Run ;
程序说明:DATA数据步创建了一个名为INDEXMA的数据集,共生成了四种移动平均线,使用滞后函数LAGn()生成了收盘价CLOSE的十日简单移动平均线MA10和十日加权移动平均线WMA10;用平滑因子W1生成一次指数加权移动平均EWMA1,用平滑因子W2生成二次指数加权移动平均EWMA2,平滑因子值较大,则对最近的序列值给出较大的权数,作为一个一般原则,较小的平滑因子适于缓缓改变的趋势序列,而较大的平滑因子适于快速改变的易变序列。IF,THEN,ELSE语句的作用是将初始化处理和后面的正常处理分开来。RETAIN语句的作用是DATA步从这次到下次重复时,保留变量EWMA1和EWMA2的值。调用PROC GPLOT过程绘制了收盘价和十日简单移动平均的图形,其中对纵轴(Price)定义上海财经大学经济信息管理系IS/SHUFE
Page 13 of 28
的AXIS1语句中加上了LOGBASE=10(或PI或e)的选项,就表示该轴是以10为底的对数轴。
程序的运行结果显示在GRAPH窗口中,如图21.5所示
除了用DATA数据步直接计算移动平均外,我们还可以用SAS/ETS软件的EXPAND过程来生成时间序列数据的简单、加权和中心移动平均,用SAS/QC软件的MACONTROL过程生成一致加权和指数加权的移动平均控制图表。
图21.5 对时间序列的数据用移动平均估计趋势
五、 层次图
PROC PLOT过程还能绘制层次图,又称等值线图或轮廓图。在地理学研究中用来绘制等高线,在经济学研究中常用来画等值的利润曲线。例如,线性规划中的产品混合问题,经济学的一个核心问题是在有限的资源情况下,如何合理的分配资源,使效益最大化。假设我们要生产两种产品X和Y,但受到时间T、空间S、能力C三种资源约束,在已知两个产品的单位利润为f(x)和f(y)情况下,各生产产品X和Y多少数量,才能使利润Z最大化。即: 12
时间资源约束: f(x,y)?T t
空间资源约束: f(x,y)?S s
能力资源约束: f(x,y)?C c
利润 Z= f(x)X+ f(y)Y 12
产品的单位利润一般受市场的需求和成本等因素影响,要销售的数量多,单价就要便宜,单位利润就会变小,但生产的数量多,单位成本就会低,单位利润就会变大,两者的平衡点在边际收益等于边际成本时生产的数量,但这仅是针对一种产品和资源不受约束的情况下。通常的做法,是将利润函数Z在X和Y平面上画出等值线,而三种资源的约束函数曲线也将在X和Y平面上围成可行域,然后在可行域中找出(X,Y)使等值线最大。设f(x)=7-X+1/X,1f(y)=9-Y+1/Y,那么: 222Z=2+7X-X+9Y-Y
上海财经大学经济信息管理系IS/SHUFE
Page 14 of 28
用上面的这个函数生成一个包含三个变量X、Y、Z的利润数据集PROFIT,然后用PLOT语句的CONTOUR选项就可以绘制出等值线图。程序如下:
libname study "d:\sasdata\mydir";
Data study.profit;
format z 5.1;
do x=0 to 9 by 0.2;
do y=0 to 9 by 0.1;
z=2+7*x-x*x+9*y-y*y;
output;
end;
end;
Proc plot data=study.profit formchar='|----|---';
plot y*x=z /contour ;
Run ;
用PROC PLOT过程PLOT语句选项CONTOUR,最多只能分成10个层次,由Z的取值
-11.0,第二层Z的取值范围-11.0,-5.5,„,来决定所属的层次。第一层Z的取值范围-16.5,
第十层Z的取值范围33.0,38.5。每一层用一个不同的作图字符表示。由于生成的是低分辨率的图形,显示不清楚,我们改用PROC GCONTOUR过程来绘制高分辨率的层次图,最多可以绘制100层。程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Proc Gcontour data=study.profit ;
plot y*x=z / nlevels=20
autolabel
xticknum=10
yticknum=10
nolegend ;
Title 'Profit Gcontour' ;
Run ;
程序的运行结果显示在GRAPH窗口中,如图21.6所示。
程序说明:NLEVELS=20选项定义层次图的层次数为20,AUTOLABEL选项定义层次线的标签为自动生成,如图中32.3、29.9、27.5等,XTICKNUM=10和YTICKNUM=10选项定义X和Y轴上刻度线的数目,NOLEGEND选项定义在层次图的下方不显示图例,若无此选项,将显示每一层次线Z的具体值。还有许多其他选项,如可定义各个对象的颜色,可选择网格线、垂直和水平参考线等。
用等值线和可行域方法研究两个产品X和Y的混合问题,还可以推广到求解n个产品的混合问题。此时的利润值是一个在n维空间的曲面,可以称为等值面,而可行域也为n维的一个体积。
上海财经大学经济信息管理系IS/SHUFE
Page 15 of 28
图21.6 用GCONTOUR过程绘制的利润等值线图
第二十一课 条形图、圆饼图和星形图
与PLOT过程和GPLOT过程的关系一样,PROC CHART过程是用来画易生成的低分辨率的图形,输出在OUTPUT窗口。而PROC GCHART过程是用来生成订制的、高分辨率的图形,输出在GRAPH窗口。在这里我们将只介绍GCHART过程。使用GCHART图表可以形象地表示变量的取值大小和两个以上变量之间的关系。可以绘制垂直和水平的条形图、块形图、圆饼图、星形图等。
一、 PROC GCHART过程的功能和语句说明
GCHART过程不仅能把输入数据集中的变量值以各种图形的方式显示出来,而且能把输入数据集中的一个或多个变量按分组进行各种统计计算,然后再把统计结果以图形的方式显示出来。也就是说,GCHART过程具有统计和显示图表的两大功能。
1. PROC GCHART过程的一般格式
GCHART过程一般由下列语句控制:
Proc Gchart DATA=数据集 ;
VBAR 变量列表 <通用选项列表>
>;
HBAR 变量列表 <通用选项列表>>; 上海财经大学经济信息管理系IS/SHUFE
Page 16 of 28
BLOCK 变量列表 <通用选项列表>>;
PIE 变量列表 <通用选项列表>>;
STAR 变量列表 <通用选项列表>>;
By 变量列表 ;
Run ;
在PROC GCHART语句后面可以跟随着任何多个图形要求的语句,如上面的VBAR、BLOCK等语句。也就是一个GCHART过程能够对一个指定的数据集画出任意多个各种不同的图形。
每一个图形要求语句需要指定一个图形变量或多个图形变量用于将它们的值画图。由于每个图形要求语句的选项众多,将它们的选项分成两部分:通用选项列表和专用选项列表。所谓通用选项列表是指这些选项可以用在每个图形要求语句中,而专用选项列表是指这些选项只有本语句可使用。
在使用PROC GCHART过程时,常常选用BY语句。BY语句指定一个变量或多个变量后,将按指定的变量进行分组处理,然后按每一个被BY语句指定的变量分组生成分开的图形。
我们以VBAR图形要求语句为例来说明各个图形要求语句的基本使用情况。VBAB语句用来列出用户想要画的垂直条形图的那些变量。每个图形变量对应一张垂直条形图。每张图表占一页。垂直条形图的纵坐标轴用来表示频数、累计频数、百分数、累计百分数、总和或平均值。在每个条形图的横坐标轴上都标有该图形变量的各个对应值。如果图形变量是字符变量或离散的数值变量,那么在对应的横坐标上将标记真实值;如果图形变量是连续变量,那么在对应的横坐标上将标记变量值的区间中点。
除此之外,在PROC GCHART过程中还可以使用AXISn、LEGENDn、PATTERNn、TITLEn、FOOTNOTEn、NOTE、DONUD语句。
2. PROC GCHART过程的三要素
由PROC GCHART过程产生图形要决定以下三个要素:
(1) 选择图形的表示方法
下面的几种图形至少要选一种:
, VBAR语句——绘制垂直条形图或垂直直方图。
, HBAR语句——绘制水平条形图或水平直方图。
, BLOCK语句——绘制块形图。
, PIE语句——绘制圆饼图。
, STAR语句——绘制星形图。
通过对上面不同语句的选择,确定图形的表示方法。在每种图形中,由图表变量确定的值画出对应大小的条图或线段。
(2) 选择变量的统计量
在选定了图形以后,可以在语句后面的选项中,通过TYPE选项来选择对变量的不同统计量,TYPE的缺省值是FREQ,然后将统计量以条形或线段表示。统计量的类型有:
, TYPE=FREQ——统计图形变量的各个给定值或间隔的频数。
上海财经大学经济信息管理系IS/SHUFE
Page 17 of 28
, TYPE=CFREQ——统计图形变量各个给定值或落入给定区间的累计频数。 , TYPE=PCT——统计图形变量各个给定值或落入给定区间的观测数的百分比。 , TYPE=CPCT——统计图形变量各个给定值或落入给定区间观测数的累计百分比。 , TYPE=SUM——统计图形变量所有值的总和。
, TYPE=MEAN——统计图形变量所有值的平均值。
例如:VBAR X / TYPE=MEAN 语句,是指对输入数据集中的X变量求平均值,然后将平均值用垂直条形图显示。
(3) 选择分组特性
可以使用图形选择语句后面的一些选项,来控制在语句中指定的图形变量的分组,下面的选项可控制如何进行分组:
, DISCRETE——把一个数字变量当成离散变量,而不是连续变量。把每一个数字
值作为图形的一个分开的条形或线段。如果省略该选项,过程则假定变量都是连
续的。如果没有规定选项MIDPOINTS=或LEVELS=,过程自动选择图表的间隔。 , GROUP=变量——用于对指定变量进行并排分组。
, SUBGROUP=变量列表——将条形或线段按照指定变量的值分成段。 , MIDPOINTS=数值列表——规定连续型图形变量按数字列表中的中心点数字次序
进行排列。缺省值为,如果图形变量是数字型,过程将自动计算各个中心点值;
如果图形变量是字符型,或是数字型但选择了DISCRETE选项(即离散型数字变
量),过程为每个图形变量的不同值产生一个中心点值。
, LEVELS=数字——指定数字型图形变量的条形或线段个数。
, SUMVAR=变量——指定用于计算总和或均数的变量。
3. 通用和专用选项列表
通用选项列表中的选项是用于VBAR、HBAR、BLOCK、PIE和STAR语句的共同选项,主要是一些我们刚在上面已介绍的分组特性选项和变量统计量TYPE选项。 专用选项列表中的选项是各个不同的图形语句自己的特有选项。主要的选项见下表:
选项 应用语句 功能说明 AXIS=<最小值>最大值 定义坐标轴的最小值和最大值 VBAR、HBAR GSPACE=间隔数 定义条形组间的间隔空间数大小 ASC/DESC VBAR、HBAR、PIE 每组内按升序/降序显示条形及有关统计量 G100 VBAR、HBAR、BLOCK 强迫每个组的条图和统计量加到100% BLOCKMAX BLOCK 定义图中最高块的统计量值 ANGLE=角度数字 定义开始逆时针旋转的角度 FILL=SOLID或X PIE、STAR 每一区域用纯色或交叉线填充 CFILL=颜色 定义图中所有文本的颜色
NOLEGEND 除了STAR 不输出SUBGROUP变量的图例 NOHEADING BLOCK、PIE、STAR 不输出在图表顶部的抬头行
上海财经大学经济信息管理系IS/SHUFE
Page 18 of 28
二、 条形图
条形图是利用相同宽度条形的长短或高低表现各相互对立的统计数据大小或变动的统计图。条形图可分成水平条形图(又称带形图)和垂直条形图(又称柱形图),分别用HBAR和VBAR语句实现。无论水平条形图还是垂直条形图,都有三种类型的图式:
, 简单条形图——是以若干平行且等宽的距行表现数量对比关系的一种图形,各条
之间有间隙。简单条形图也称为单式条形图。图形语句的特点是无GROUP和
SUBGROUP选项。
, 分组条形图——是指由每两条或以上条组成一组的条形图,组与组之间有大间隔,
每组内条形之间无间隙或小间隙。分组条形图也称复式条形图。图形语句的特点
是使用GROUP选项。
, 分段条形图——是以条形的全长代表某个变量的整体,条形内部的各分段长短代
表各组部分在整体中所占比例的统计图,每一段之间没有间隙并用不同线条或颜
色表示,各条之间有间隙。由于每个条图由若干段组成,因此分段条形图又可称
作分量条形图。图形语句的特点是使用SUBGROUP选项。
下面我们通过举例来说明各种条形图的使用。
1. 简单条形图
例如,我们想统计计算上证指数从1月到12月每月的平均涨跌情况。设定从INDEXSH数据集中选择1991年1月1日到1999年12月31日的观测数据作为统计计算对象。由于INDEXSH数据集包含的是周线数据,而不是日线数据,因此,这些统计计算结果会有误差。为了能进行相应地统计计算和绘制出对应的条形图,必须对INDEXSH数据集先进行一些处理。由于SAS的日期值在计算机内部存储的是数字值,我们用MONTH()函数从日期值DATE中取出月份数字存放到MONTH变量中,转换形成一个新的数据集INDEXSH2,新增的这个MONTH变量取值为1,12月。然后调用PROC GCHART图表过程确定MONTH为图形变量,周涨跌CHANGE_为统计变量,统计类型为求平均值,这样将对所有相同月份的CHANGE%值求平均,并用条形长短表示。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname study "d:\sasdata\mydir" ;
Data study.indexsh2 ;
set study.indexsh ;
where '31dec1990'd
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
每个学生三门课程的成绩。现在想要按每个学生分组,用条形的高低表示各自三门课程的成绩。通常对数据集中数据进行绘图前,先要检查数据集的数据库结构是否符合图形过程的要求,否则,就不能绘制出符合人们要求的图形,需要将数据集进行适当地转换。事实上,数据集CLASS的数据库结构不满足数据库设计的1NF(第一范式),也同样不满足PROC GCHART过程对制作此图的要求。我们用DATA数据步生成一个新的数据集GCLASS,用以消除重复项TEST1、TEST2、TEST3,统一用变量TEST取代,而用COURSE变量存放不同的课程名称。为了便于理解和比较,新数据集中我们没有去掉TEST1、TEST2、TEST3变量。
用PROC GCHART过程对新数据集GCLASS绘制分组条形时,指定的图形变量是COURSE,将显示COURSE变量中各个不同值的条形;分组变量指定为NAME,将显示NAME变量中各个不同值的分组;统计变量指定为TEST,统计类型缺省为求和,将对同一分组值中同一图形变量值的各TEST值求和,本例数据中,每次求和TEST变量的记录都只有一条记录。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname study "d:\sasdata\mydir";
Data study.Gclass ;
Set study.class;
COURSE='DBS' ; TEST=TEST1 ; OUTPUT ;
COURSE='MIS' ; TEST=TEST2 ; OUTPUT ;
COURSE='DSS' ; TEST=TEST3 ; OUTPUT ;
Proc print data=study.Gclass;
Title 'Study.Gclass data set';
Proc gchart data=study.Gclass;
Vbar COURSE / group=NAME
sumvar=TEST
axis=60 to 100 by 10
autoref ;
Title 'Vbar course /Group=name';
Run ;
程序说明:DATA数据步创建GCLASS数据集,将原来CLASS数据集的一条记录变成三条记录,用COURSE变量存放三门课程的名称DBS、MIS、DSS,用TEST变量存放成绩。新数据集GCLASS,用PROC PRINT打印过程输出,如图21.8所示。PROC GCHART过程中图形语句的AXIS选项,由于语句是VBAR垂直条形图,所以它是指纵轴上的刻度。AUTOREF选项,是指自动画参考线,通过每一个主刻度线画出相应一条垂直于刻度坐标轴的参考线。
上海财经大学经济信息管理系IS/SHUFE
Page 21 of 28
程序的运行结果显示在GRAPH窗口中,如图21.9所示。
图21.8 符合分组条形图的GCLASS数据集
上海财经大学经济信息管理系IS/SHUFE
Page 22 of 28
图21.9 用PROC GCHART过程绘制的分组条形图
3. 分段条形图
例如,如果我们想要比较每个学生的考试总分和平均分,还要比较构成总分的各科成绩
的大小,最恰当的方法就是使用分段条形图来表示。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname study "d:\sasdata\mydir";
Proc gchart data=study.Gclass;
Hbar NAME /Subgroup=COURSE
sumvar=TEST
sum
mean
ascending
ref=180 270 ;
Title 'Hbar NAME /Subgroup=COURSE' ;
Run ;
程序的运行结果显示在GRAPH窗口中,如图21.10所示。
上海财经大学经济信息管理系IS/SHUFE
Page 23 of 28
图21.10 用PROC GCHART过程绘制的分段条形图
程序说明:PROC GCHART过程指定输入数据集为GCLASS,HBAR图形语句指定画水平条形图。图形变量指定为NAME,分段变量指定为COURSE,统计变量指定为TEST。SUM和MEAN选项指定对相同NAME值的TEST统计变量求和和求平均值。ASCENDING选项要求图形变量NAME值按升序排列。REF=180 270选项将在横坐标轴180和270处画出两条垂直参考线。要特别注意SUM、MEAN选项与TYPE=SUM或MEAN选项的区别,前者指对如WANGWU学生三门课程DBS、MIS、DSS的统计量求和、求平均,后者指对如WANGWU学生几次DBS考试成绩求和、求平均。
三、 块形图
块形图与分组条形图和分段条形图有点类似,最主要的区别仅在于块形图以三维立体方式显示条形。例如,我们将上面绘制分段条形图的过程进行一些修改,主要用BLOCK语句代替HBAR语句,图形变量、组变量和统计变量不变,分段选项SUBGROUP=改为分组选项GROUP=。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname study "d:\sasdata\mydir";
Proc gchart data=study.Gclass;
Block NAME / group=COURSE
sumvar=TEST ;
Run ;
上海财经大学经济信息管理系IS/SHUFE
Page 24 of 28
程序的运行结果显示在GRAPH窗口中,如图21.11所示。
图21.11 用PROC GCHART过程绘制的块形图
四、 圆饼图
圆饼图是以圆的整体面积代表被研究现象的总体,按各构成部分占总体比重的大小把原面积分割成若干扇形,用以表示现象的部分对总体的比例关系的统计图。现象的总体在SAS系统中被指定为某一研究变量,即PROC GCHART过程中,用PIE语句指定的图形变量,所要统计的变量由选项SUMVAR=变量来指定。
例如,我们要统计每个学生的平均分并对他们的成绩进行比较,查看哪个学生的考试成绩最好,哪个学生的考试成绩最差,所占比例是多少。最简单的方法是绘制圆饼图。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname study "d:\sasdata\mydir";
Proc gchart data=study.Gclass;
Pie name /sumvar=test
type=mean
slice=arrow
percent=inside
value=arrow
explode='Wangwu' 'zhaoliu'
上海财经大学经济信息管理系IS/SHUFE
Page 25 of 28
angle=90
ctext=black
cfill=black;
Title 'Statistic Records of Students ';
Run ;
程序说明:想要绘制理想的圆饼图,需要设置许多重要的选项。PROC GCHART过程的
PIE语句,首先要指定图形变量为NAME,统计变量为TEST,统计类型为求平均值MEAN。
其他的一些选项主要用于修饰图形,常用的有:
, SLICE=ARROW——每一块扇形对应的NAME值标签方式,=ARROW表示用一条线
指向扇形,=INSIDE表示标签在扇形内部,=NONE表示没有标签,=OUTSIDE
表示标签在扇形外部。
, PERCENT=INSIDE——每一块扇形相应百分比数的标签方式,同样有四种值,
=ARROW,=INSIDE,=NONE,=OUTSIDE。
, VALUE=ARROW——每一块扇形统计值的标签方式,也同样有四种值,=ARROW,
=INSIDE,=NONE,=OUTSIDE。
, EXPLODE=‘Wangwu’ ‘zhaoliu’ ——把在列表中列出的NAME变量值所对应
的扇形分离出去,可以从视觉上起到强调这一块扇形的目的。请注意列表中字符
串要与变量NAME中值的大小写完全匹配。
, ANGLE=90——指定第一块扇形的起始的角度,缺省值为0。
, CTEXT=BLACK——设置图中所有文字为黑色,还可以是其他颜色。 , CFILL=BLACK——设置图中所有文本为黑色,还可以是其他颜色。 , COUTLINE=BLACK——设置扇形的轮廓线为黑色,还可以是其他颜色。 , FILL=SOLID或X——设置各个扇形用颜色区别或用交叉线区别。如果无此选项,
则扇形内为空白。
程序的运行结果显示在GRAPH窗口中,如图21.12所示。
上海财经大学经济信息管理系IS/SHUFE
Page 26 of 28
图21.12 用PROC GCHART过程绘制的圆饼图
五、 星形图
星形图是把观测总体用一个360度角表示,每一构成部分等分360度角,且每一构成部分的统计量大小用一条与角中心点相连的线段长短表示,然后将各线段的顶点依次连接起来。星形图适用于周期性数据,如一年的月份或者一天的小时,也适用于成分组成数据,如描述某食品的维生素组成和大小。
例如,我们要统计上证指数九年中1月份成交量平均值、2月份成交量平均值„„12月份的成交量平均值,并用星形图表示。
程序如下:
Goptions reset=global gunit=pct cback=white border
htitle=6 htext=3 ftext=swissb colors=(back) ;
Libname Study "d:\sasdata\mydir" ;
Proc format ;
value m_day 1='Jan' 2='Feb' 3='Mar' 4='Apr' 5='May' 6='Jun'
7='Jul' 8='Aug' 9='Sep' 10='Oct' 11='Nov' 12='Dec' ;
Proc gchart data=study.indexsh2 ;
star month / discrete
sumvar=volume
type=mean ;
format month m_day. ;
title 'Shanghai StockIndex' ;
上海财经大学经济信息管理系IS/SHUFE
Page 27 of 28
title2 '1991.01.01---1999.12.31' ;
Run ;
程序说明:数据集INDEXSH2是从INDEXSH数据集转换过来的,各条观测已经按月的数字号记录周成交量。调用PROC GCHART过程,使用STAR语句,指定图形变量为MONTH,统计变量为VOLUME,统计类型为MEAN,由于MONTH是数字变量,需要指定它为离散变量DISCRETE,将把同月号的观测按指定的统计变量和统计类型进行合并。
1.13所示。 程序的运行结果显示在GRAPH窗口中,如图2
图21.13 用PROC GCHART过程绘制的星形图
图形的显示结果分析,全年一、二月份的成交量最小,大概主要是农历过春节放长假的原因,然后成交量呈规律性逐月放大,至七、八月份达到最大,从图21.7上证指数月涨跌百分比中,我们知道上半年行情也是不断上涨,价量完全配合,七、八月份的大成交量和指数见顶后大幅下挫和反弹,可能跟上半年累积涨幅过大需要调整和新股大量发行上市有关。八月份后,成交量开始逐月缩小,至下一年的一、二月份。下半年风险加大和成交量萎缩也是相互吻合的。总体上看,以十月份和四月份为分界线,十一、十二、一、二、三月份的成交量之和远远小于五、六、七、八、九月份的成交量之和,值得引起注意,究其原因可能与我国的企业体制、财务
制度
关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载
、银行借贷、资金结构和资金来源等规律性的操作有内在关系,也就是说在上述这些因素未根本改变前,这种成交量分布的情况还将继续。
上海财经大学经济信息管理系IS/SHUFE
Page 28 of 28