资源描述
EViews命令和编程_01
命令基础(Command Basics)
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推荐不使用后一类生成未命名对象的辅助命令。
EViews命令和编程_04
编程基础(Program Basics)
Eviews编程的特点在于允许用户将一系列的命令建立在一个程序中,并保存为一个程序,因此以后可以多次反复自动地执行这些程序;或者通过编程既为用户完成了某一研究项目,也为该研究项目生成了一份完整的研究纪录。
例如,可以编写一个程序去分析一个工业企业的数据,然后再使用这个程序去分析其他一些类似的工业企业的数据。用户还可以建立一个这样的程序,让它包含这样的一些命令:从建立工作文件和读取原始数据开始,到计算研究的最后结果,和形成表述研究结果的图形和表格。这样的程序就将整个项目的研究过程记录了下来。
如果用户对计算机编程已有一些经验,那么对Eviews编程语言的绝大部分会感到陌生的,熟悉了其他程序设计语言也就熟悉了EViews编程语言。Eviews编程语言主要的新颖的特点,表现在允许用户通过将变量名与其他对象名结合起来生成一个新的对象名。
一、建立程序(Creating a Program)
程序不是工作文件中的对象。程序只是包含一些Eviews命令的集合。
点击File/New/Program,建立一个新的程序。点击File/New/Program之后,打开一个标准的文本编辑窗口,允许用户在该窗口中键入程序行。用户还可通过命令行(命令窗口)通过键入关键字program,之后接一个程序名选项。例如:
program firstprg
打开一个名为的程序窗口。注意,程序名应当遵循标准的Eviews的命名规则。
二、保存程序(Saving a Program)
在建立和编辑程序文件以后,用户或许要求将程序保存起来。在程序窗口工具条上按Save 或 SaveAs按钮保存将程序保存为程序文件。保存的程序文件将在程序名之后自动地加上.PRG的扩展名。
三、打开程序(Opening a Program)
为了加载(load)一个早先保存在磁盘上的程序到内存中,需点击File/Open/Program……定位到适当的目录,改变文件类型选项框重的类型为PRG程序文件,再点击欲打开的文件名,最后点击OK确定按钮。此外,也可以通过命令行去打开一个程序。在命令行中键入open,后接完整的程序文件名(包括扩展名:.PRG)。根据Eviews的缺省设置,Eviews将在缺省的目录中去寻找程序。如果必要还应包括程序文件的完整路径。例如:
open mysp500.prg
在缺省路径中打开MYSP500.PRG程序。
open c:\mywork\eviews\myhouse.prg
在C:\MYWORK\EVIEWS目录中打开MYHOUSE.PRG文件。
四、执行程序(Executing a Program)
当用户在命令窗口一行一行地键入并执行了一系列命令,那么称这种工作方式为交互式模式。对应地,用户在程序窗口一次键入了所有的命令,把它们作为一批命令集合起来执行。用户从程序运行(去执行)这些命令,那么称这种工作方式为程序(非交互式)模式。
例如,我们已经在firstprg程序中集合了如下的命令:
'this is first program
workfile a 1950 2000
genr t=@trend(1949)
genr t2=t*t
show t t2
plot t
这个程序是我们编制的第一个程序。在第一行注释行中标明了this is first program。
第二行建立一个时间周期为年、开始日期为1950年、结束日期为2000年的工作文件。
第三行利用趋势函数@trend(1949)生成了从1到51的递增序列t。
第四行生成了t的平方序列t2。
第五行以电子数据表的形式显示序列t和t2。
第六行绘出的线形趋势图。
执行程序的方法有好几种。最简单的执行程序的方法是按程序窗口工具条上的Run按钮。打开一个Run对话框,在Run对话框为运行指定程序名(缺省显示程序窗口的程序名)和提供必要的形式参数。此外,用户可以选择执行该程序的模式:冗长模式或简洁模式;设置因出错挂断执行前允许发生的最大错误个数(缺省设置未发生1次错误就立即挂断执行中的程序,以及将选择的运行模式设置为缺省执行模式。
在冗长执行模式下,Eviews会将执行过程中发出的系统信息送入状态行去进行显示。在冗长执行模式下,如果程序执行过程中发生创建对象或者删除对象时,工作文件窗口将不断地被刷新。简洁模式则抑制工作文件窗口的刷新,减少了花在写屏上的时间。
按照缺省设置,当程序执行过程中遭遇一个错误,Eviews将立即终止程序的执行,并发出出错信息。如果在挂断域前最大错误数中输入了一个数,那么程序执行中即使出错,也将继续执行直到达到最大出错数才会终止程序的执行。如果执行过程发生了严重的致命性错误,以至程序已不可能继续执行。此时,即使最大错误数还没有达到程序也将被挂断。
也可通过命令行,键入RUN后在接被执行的程序文件名的方法去执行程序:
run mysp500
run c:\eviews\myprog
注意,这里没有要求必须使用程序扩展后缀.PRG,因为Eviews会自动地添加上.PRG。前面描述的RUN命令的所有选项都可用作命令的选项。例如,使用v选项将程序设置成以冗长模式执行,使用q选项将程序设置成以简洁模式执行。
run(v,500) mysp500
run(q) progarg arg1 arg2 arg3
用户也可以在一启动Eviews就开始运行一个程序。在Windows 3.1上实现启动就执行程序的方法是从程序管理器的窗口菜单上选择File/Run。在Windows 95上实现的方法是点击(选择)Start/Run,键入eviews,之后再键入程序名和形式参数。
五、中止程序(Stopping a Program)
F1功能键可以终止执行中的程序。Eviews可能需要花费几秒钟的时间来响应终止命令。程序执行过程中遇到stop命令,程序也将停止执行。
六、简单程序举例(Simple Programs)
最简单的程序就是一系列命令清单。执行这类程序等价于从命令窗口一行一行地键入并执行命令。
虽然可以通过在命令窗口键入并执行这些命令,但与此同时也可以方便地打开一个程序窗口,键入这些命令,再点击Run按钮执行这些命令。后一种方式(程序窗口)比前一种键入命令方式(命令窗口)具有如后的一些优点:可以将这些命令保存到磁盘上以备日后再重复使用,而且每次使用时还可以对这些命令进行一些局部地修改。
下面考察另一个简单的例子。(它的数据序列由Eviews目录中的PROGDEMO数据库,所以我们可以用它来尝试一下编程。)。为了建立一个新的程序myprog,在命令窗口键入:
program myprog
在打开的MYPROG程序窗口中,我们将键入如下的一些命令:建立工作文件的命令,从名为PROGDEMO的数据库中读取序列的命令,执行回归分析,计算残差和预测值,形成预测图,最后保存结果。
' housing analysis
workfile myhouse m 68:3 97:6
fetch progdemo::hsf
smpl 68:5 92:12
equation reg1.ls hsf c hsf(-1)
reg1.makeresid hsfres
smpl 93:1 97:6
reg1.forecast hsffit
freeze(hsfplot) hsffit.line
save
程序中的第一行是注释行,注释行由单引号“'”打头。在程序执行过程中Eviews将从单引号开始忽略其后直到行末的所有文本,不予执行。
以HSF(总的住房供给单元)作为研究的对象。最后保存的名为MYHOUSE的工作文件中应包含HSF序列、关于HSF的方程REG1、残差序列HSFRES、预测序列HSFFIT和预测图HSFPLOT。
You can run this program by clicking on Run and filling in the dialog box.
键入完成所有命令以后,点击和填充对话框选项后就可执行这个程序,得到我们希望得到的结果。
现在假设我们希望执行一项类似的分析,只是将研究对象该为S&P 500 股票价格指数 (FSPCOM)。于是对上述程序进行编辑,将研究序列MYHOUSE 改成 MYSP500,并把所有对MYHOUSE的引用改称对MYSP500的引用。
' s&p analysis
workfile mysp500 m 68:3 97:6
fetch progdemo::fspcom
smpl 68:5 92:12
equation reg1.ls fspcom c fspcom(-1)
reg1.makeresid fspcomres
smpl 93:1 97:6
reg1.forecast fspcomfit
freeze(fscomplot) fspcomfit.line
save
点击Run按钮执行新的分析。点击Save按钮将程序保存在Eviews目录下,程序名为MYPROG.PRG。
由于这两个程序绝大部分都是相同的,编制两个不同的程序时有很多输入都是一样的。在下一节的程序变量(Program Variables)中,
展开阅读全文