EViews提供了两种界面——窗口界面与命令行界面供用户处理数据。命令方式既可交互使用也可以批处理的方式使用。实际上,任何一项操作都可以采用三种基本方式来完成:(1)利用鼠标通过菜单或按钮;(2)或在命令窗口键入命令;(3)或将批处理置于程序之中来完成。如果加上命令方式与鼠标通过菜单或按钮方式的结合,则共有4种方式。用户可以从三种基本操作方式中选用或将它们混合使用,形成最适合于自己的、独特的工作方式。
一、交互式方式的使用(Interactive Use)
为了交互式的进行工作,首先在命令行键入命令,按回车后,命令立即执行。如果用户键入了一个不完整的命令,EViews立即打开对话框要求补充信息。
命令行位于EViews窗口顶部主菜单行之下,除了用户正在编辑一个对象或者打开了一个对话框外,EViews约定任何从键盘的输入都是直接送往命令行的。命令行(窗口)左端出现一个闪烁的、竖直的插入光标表示命令行正期待着用户命令的输入。
在命令窗口键入的命令按回车(ENTER)后立即执行。按回车时插入光标不一定非要位于命令行的末端,但EViews却执行的是包括光标在内的整行命令。
当键入了多个命令,EViews在命令窗口建立了一系列的命令行。通过滚动条,选择以前已经执行过的命令,编辑它,按ENTER。这个修改过的命令将再次执行。还可以使用标准的copy-and-paste在命令行和其它窗口之间进行复制与粘贴。
命令区域中的内容也可直接保存到文本文件中备用。方法:点击窗口的任何部位,确保命令窗口处于激活状态,从主菜单选择File/Save As。
可以重新设置命令窗口的大小,以便能见到更多的已执行过的命令。调整命令窗口大小的方法是,移动指针到命令窗口底部,按住鼠标左键向下或向上拖动。
二、使用批处理程序(Batch Program Use)
可将一些命令组合到一个程序中,然后以批处理的方式执行这些命令。每个命令将按它们在程序中出现的先后顺序被执行。使用批处理程序时还可以采用更高级的功能,譬如循环、条件分支、子程序和宏过程等。程序也是记录研究过程档案最卓越的方法,因为程序记录了研究项目的每一步。因此,有些学校的操作考试要求用程序纪录处理数据的整个研究过程。
在EViews中建立程序文件的方法之一,是选择File/New/Program。EViews打开一个未命名的程序窗口,将命令键入窗口。点击Save或Save as,定位保存路径,键入程序名,Eviews就将程序对象按给定的文件名保存到指定的文件夹中,并在用户提供的程序名后自动加上文件类型扩展名“.PRG”。
此外,可使用熟悉的文本(ASCII)编辑器,建立包含命令行的程序文件。然后到EViews内去这些程序命令(例如通过拷贝-粘贴复制到程序文件中,再执行程序文件。
EViews交互式命令行是由一系列单个命令行组成的,这些单个命令行划分为如下几类:
对象申明(object declarations)
对象命令(object commands)
对象赋值语句(object assignment statements)
辅助(auxiliary commands)
一个EViews程序是由上述一系列命令语句所组成,程序中还可以包含下列语句:
控制变量赋值语句(control variable assignment statements)
程序控制语句(program control statements)
三、申明对象(Object Declaration)
Eviews是面向对象并依赖对象的程序设计语言。建立程序的第一步是创建或申明一个对象。以下是简单申明语句的格式:
对象类型(object_type) 对象名( object_name)
其中,对象名是用户欲给予新对象的名称,对象类型必定是下列标识符之一:
coef (系数向量coefficient)
equation 方程
graph 图形
group 组
matrix 矩阵
model 模型
pool (时间序列time series,截面数据cross-section)
rowvector 行向量
sample 样本
scalar 数值
series 序列
sspace (状态空间statespace)
sym (对称矩阵symmetric matrix)
system 系统
table 表格
text 文本
var (向量自回归vector autoregression)
vector 向量
以下是申明语句的例子:
series lgdp
命令执行时,建立一个叫做LGDP的新序列
equation eq1
建立一个叫做EQ1的方程对象
矩阵对象申明语句需在对象类型后的括号中设置维数。例如,
matrix(5,5) x
建立一个5⨯ 5的名为X的矩阵
coef(10) results
建立一个名为RESULTS含有10个元素的系数向量。
注意,为了创建对象,EViews中必须存在一个已经打开的工作文件。可立即通过主菜单打开和建立一个工作文件,或者使用包含在程序内的load命令或workfile命令去执行打开(加载)和建立工作文件。
四、对象命令(Object Commands)
对象命令指的是访问对象观察和过程的命令。命令对象由两个主要部分构成:(1)欲展现的动作(display action),(2)紧接其后的是动作激发的观察或过程输出结果的设置(view specification)。所谓“输出结果的设置”是描述被激活对象的观察和过程的。所谓“欲展现的动作”决定了来自观察或过程的输出要作些什么。
一个对象命令完整的语法格式(三段)如下:
动作(动作选项) 对象名.观察-过程名(观察选项) 变量列表
action(act_opt) object.view_proc(view_opt) arg_list
其中,
动作(action)是四个动词(do, freeze, print, show)之一
动作选项(act_opt) 是修改动作缺省行为的选项
对象名(object)被执行动作的对象的名称
观察-过程名(view_proc) 被执行的对象的观察或过程
注意,“对象”和“对象的过程或观察”之间是用“.”连结的。
观察-过程选项(view_opt) 是修改观察-过程缺省设置的选项
变量列表(arg_list) 观察或过程用到的变量列表,其间用空格分隔
四个可能的动作:
Do(执行)乃是不打开窗口执行过程。如果对象窗口当前不处于打开状态,那么不会生成什么输出。如果对象窗口已经打开,那么“do”等价于执行“show”。
冻结(freeze)依据对象所属的这个观察创建一个表或图。
打印(print)打印对象所属的这个观察(object.view)。
显示(show)在窗口中显示对象所属的这个观察(object.view)
大多数情况下,一般对象命令中的有一些选项并不是必须的,例如,有一些观察和过程并不要求具有变量列表或选项。
而且,有时无须明确地指定动作。如果在对象命令中没有指定动作,则假定观察的缺省动作是“Show”,过程的缺省动作是“do”。例如,用命令显示一个对象的线形图:
gdp.line (注释:对象gdp通过小数点后面连结的是一个观察line,在这之后没有变量列表)
EViews 默认增加了一个“Show”命令。即
show gdp.line
此外,对于的方程过程为ls时,
eq1.ls cons c gdp (注释:对象eq1通过小数点后面连结的是一个过程ls,过程ls后再接变量列表cons c gdp)
这里默认增加了一个“do”动作,即
do eq1.ls cons c gdp
有时,可使用明确的动作来修订缺省的动作选项。例如:
print eq1.ls cons c gdp
既执行暗含的“do”动作,又从过程中将输出送到打印机。
例1:
show gdp.line 打开窗口显示(show)GDP序列的线形图观察
例2:
print(l) group1.stats 以模式1打印(print)组group1中所有成员的描述统计量
例3:
freeze(output1) eq1.ls cons c gdp 冻结(freeze)生成一个名为output1的表,这个表是采用最小二乘法ls作CONS关于GDP的回归方程EQ1的最小二乘估计结果。
例4:
do eq1.forecast eq1f 依据方程EQ1进行预测,将预测值置于序列eq1f中,而且没有任何输出。
第一个例中,打开窗口显示序列GDP的线形图。第二个例中,(以方式1)打印组GROUP1中所有序列的描述统计量。第三个例中,依据采用最小二乘法估计的CONS关于GDP的结果EQ1,建立一个名为OUTPUT1D 的表。最后一个例4中,执行方程EQ1进行预测,将预测值至于序列EQ1F中并抑制任一过程的输出。这四个例中,只有例1打开窗口、显示输出结果。
五、输出控制(Output Control)
如上所述,“欲展示动作”决定了观察和过程输出的目的地。下面对这些一般性的规则作一些进一步的补充。
将一个观察同时打印并显示在屏幕上,设置的方法是将字母P作为对象命令的一个选项。例如,
gdp.correl(24,p)
等价两个命令:
show gdp.correl(24)
print gdp.correl(24)
因为correl是一个序列的观察。P选项可与其它选项相结合,与其他选项之间用逗号分隔。为了不致引起选项间的干扰,P选项总是放在其他选项之后。
注意,命令有两个选项:l和p,l按landscape质量方式打印。p按肖像质量方式打印。
print(l) gdp.correl(24)
打印机的输出还可重定向输出为一个文本文件或者冻结输出。详情参见output命令或Output Redirection(输出重定向)。
不使用选项的冻结命令依据后接的观察设置,建立一个未命名的图形或表格。
freeze gdp.line
若在关键字之后的括号中给出冻结对象的命名。例如,
freeze(figure1) gdp.bar
则将GDP的柱形图冻结成名为FIGURE1的对象。
六、对象赋值语句(Object Assignment Statements)
对象赋值语句指的是将新数据赋给一个EViews对象的命令。对象赋值语句的格式:
对象名=表达式 (object_name = expression)
其中,对象名看成一个数值将被修改的对象的名称,表达式是一个以恰当的类型为对象计算数值的表达式。
赋值语句的实际运作随着等号左边被赋值对象的类型的不同而不同。举个简单的例子,下列赋值语句:
x = 5 * log(y) + z
其中X、Y和Z都是序列。赋值语句对每一个Y的元素取对数,乘以5,加上序列Z对应的元素,最后将计算的结果赋给序列X的对应单元。
七、申明对象语句的进阶(More on Declaring Objects)
对象申明可与对象命令语句或对象赋值语句相结合,在一个语句行中建立并初始化一个序列。例如:
series lgdp = log(gdp)
建立一个名为LGDP的序列,并用GDP的对数值初始化LGDP的每一个元素。类似的,
equation eq1.ls y c x1 x2
建立一个名为EQ1的方程对象,并用序列Y关于截距、序列X1和X2回归的结果初始化EQ1。
补充例题:
scalar elas = 2
series tr58 = @trend(1958)
group nipa gdp cons inv g x
equation cnsfnc2.ls log(cons)=c(1)+c(2)*yd
vector beta = @inverse(x*x)*(x*y)
一个对象可以被申明多次,但必须始终被申明为同一类型的对象。第一个申明语句建立对象后,除非后续的申明也给对象进行初始化(赋值),否则后续申明语句无效。例如,
smpl 50 79
series dummy=1
smpl 80 98
series dummy=0
建立一个名为DUMMY的序列,80年之前取1,之后取0。
禁止将对象重新申明为不同类型的对象,否则出错。
八、辅助命令(Auxiliary Commands)
所谓辅助命令指的是这样的一类命令,辅助命令与某个被作用的特定对象无关(也就是辅助命令既不使用该对象的观察也不使用该对象的过程),而且辅助命令的动作一般以一种与被作用对象的类型和内容无关地形式作用于对象(也就是它对所有对象的作用是相同的)。典型的辅助命令的格式如下:
命令(选项列表) 变量列表 (command(option_list) argument_list)
其中命令是被执行的观察或过程的名称,选项列表中的各个选项以逗号分隔,变量列表中各个变量则以空格分隔。例如,
store(d=c:\\newdata\\db1) gdp m x
将三个对象GDP、M和X存储(store)到C:\\NEWDATA下名为DB1的数据库文件中。Store就是一个辅助命令
也有一些辅助命令(例如ls和show等等)建立新的untitled(或未命名)的对象。例如:
ls y c x1 x2
进行Y关于截距、序列X1和序列X2的回归,建立一个untitled的方程对象来接纳回归估计的结果。
保留这后一类辅助命令为的是保持与早期Micro TSP(for DOS)的兼容。
虽然这后一类辅助命令常用以执行一些简单的任务,但是过度的使用后一类辅助命令将导致管理工作上的困难。因为不能在程序中通过名称对未命名(untitled)对象进行引用,不能保存未命名的(untitled)对象,不能删除未命名(untitled)对象除非使用图形界面方式。所以,要尽可能地不采用未命名对象而采用命名对象进行工作。替换上述辅助命令为:
equation eq1.ls y c x1 x2
建立一个名为EQ1的方程对象。所以,Eviews 3.1推荐不使用后一类生成未命名对象的辅助命令。
九、管理对象容器(Managing Object Containers)
有两类对象容器:工作文件和数据库。所有的EViews对象都必须放置于一个对象容器之中,所以在开始工作之前必须建立一个工作文件或数据库。工作文件和数据库的深入描述参见:工作文件基础和数据库基础(Workfile Basics and Database Basics)。
1、管理工作文件(Managing Workfiles)
申明和建立新工作文件,是在命令关键字workfile之后接工作文件名,接工作文件的频率选项,开始日期和结束日期。频率选项如下:
a 年度(annual.)
s 半年(semi-annual.)
q 季度(quarterly.)
m 月度(monthly.)
w 星期(weekly.)
d 日(一个周际5日)(daily (5 day week).)
7 日(一个周际7日)daily (7 day week).
u 非日期型(undated.)
例如,
workfile macro1 q 65:1 95:4
建立一个名为MACRO1的季度工作文件,范围从1965年第一季度到1995年第四季度。
workfile cps88 u 1000
建立一个名为CPS88、包含1000个观察值的非日期型数据的工作文件。
注意,如果已经打开了多个工作文件,那么workfile命令用来激活其中的某个工作文件。
对于一个从未将它保存到磁盘上的工作文件,在命令关键字Save之后接工作文件名,就将该工作文件保存到磁盘上。此时,当前工作文件将以给定的名称被保存到缺省路径下。如果愿意地话,保存工作文件时可以指定新的路径,将工作文件保存到指定目录下:
save a:\\mywork
关闭工作文件,在命令关键字Close之后接工作文件名。例如,
close mywork
关闭MYWORK工作文件窗口。
打开以前保存的工作文件,在命令关键字load之后接工作文件名。
可以通过指定路径打开一个保存在非缺省路径下的工作文件。例如,
load c:\\mywork\\proj1
也可以使用Open命令打开以前保存的工作文件。使用Open命令时,必须使用完整的工作文件名,即应包括扩展名.WF1:
open proj2.wk1
2、管理数据库(Managing Databases)
建立新数据库是在命令关键字dbcreate之后接新数据库名。同样地,也可以在命令关键字db之后接新数据库名。两者的区别仅在于键入的数据库名是否已经保存在磁盘上。使用dbcreate时,若键入的数据库名已经存在,EViews将给出出错信息,指出数据库名已经存在。使用db时,若键入的数据库名已经存在,EViews将只是将该数据库打开。注意,最近打开过(使用dbcreate或db)的数据库视为缺省数据库。例如,
dbcreate mydata1
在缺省路径下建立一个新的名为MYDATA1的数据库,打开新数据库窗口,并将MYDATA1设置为缺省数据库。
db c:\\evdata\,"r":"color:#0000FF;font-size:18px
在指定路径下打开数据库usdb,前提是数据库usdb在该路径下已经存在。如果,USDB不存在,EViews建立一个名为USDB的数据库,打开窗口,将它设置为缺省数据库。
也可以使用dbopen命令打开一个已经存在的数据库,并将它设置为缺省数据库。
dbopen findat
在缺省路径下打开名为findat的数据库。如果该数据库不存在,EViews给出出错信息,指出指定的数据库没有找到。也可以使用Open
命令去打开一个已经存在的数据库。使用Open命令时,必须提供完整的数据库名,即包括扩展名.EDB:
open findat.edb
使用dbrename命令对已经存在的数据库进行重命名。在命令关键字之后接当前名(老名),在接新名。
dbrename temp1 newmacro
使用dbdelete命令删除已经存在的数据库在命令关键字dbdelete之后要删除的数据库名。
dbdelete c:\\data\ro
使用dbcopy命令复制一个已经存在的数据库的拷贝。在命令关键字dbcopy之后接源文件名,再接目标文件名。
dbcopy c:\\evdata\\macro1 a:\\macro1
除此之外,还有一些维护数据库的命令:dbpack、 dbrepair和 dbrebuild等。
十、管理对象(Managing Objects)
在程序运行过程中经常需要通过复制、重命名、删除和保存对象等操作来管理工作文件中的对象。EViews提供了一些进行这些操作的辅助命令。下面介绍这些命令的使用。
1、复制对象(Copying Objects)
复制(copy)命令的功能是建立对象的一个拷贝。命令的格式:
Copy 源名 目标名 (copy source_name dest_name)
其中,源名是希望进行复制的对象名,目标名是复制后得到的拷贝名。
Copy命令也可用于复制数据库中某个对象,并可在工作文件和数据库之间移动对象。
2、重命名对象(Renaming Objects)
重命名rename的功能是给对象取一个与原名不同的名称。命令格式:
rename 源名 目标名 (rename source_name dest_name)
其中,源名是对象的原始名,目标名是准备给予的新名。
也能在数据库中使用rename命令。
3、删除对象(Deleting Objects)
使用delete命令可将对象从工作文件中删除。命令格式:
delete 名称模板 (delete name_pattern)
其中,名称模板可以是简单的对象名,如XYZ,也可以是含有通配符“?”和“*”的模板。?匹配一个字符,*匹配零个和多个字符。当提供名称模板时,工作文件中所有名称与名称模板相匹配的对象将被删除。
delete 也可以用于在数据库中删除对象。
4、保存对象(Saving Objects)
当工作文件存盘保存到磁盘时,所有命名对象将自动保存到工作文件之中。使用save 和load命令,是分别将当前工作文件保存到磁盘和将保存在磁盘上的工作文件恢复到内存。未命名对象不能作为工作文件的一部分进行保存。
使用store命令也可以将工作文件中的一些对象保存到数据库中以备往后使用。保存命令store的格式:
store(选项列表)对象1 对象2 (store(option_list) object1 object2)
其中,对象1、对象2……是准备保存到数据库的对象名。如果,不提供选项,这些序列将保存到缺省数据库中。使用选项d=数据库名,或者使用预制的对象名,将对象保存到指定的数据库对象中。所谓的“预制的对象名”即在欲保存的数据库名后接两个冒号再接欲保存的对象名,例如,
store db1::x db2::x
将当前工作文件中的对象x分别保存到数据库db1和数据库db2中,其中使用的两个数据库名db1和db2必须是已经存在的。
使用fetch命令将由命令store保存的对象恢复到内存中。fetch 命令的格式与store命令的格式相同:
fetch(选项列表) 对象1 对象2 (fetch(option_list) object1 object2 )
设定指定的数据库,使用d=选项或::扩展标识。下载本文