用户在编写程序时,首先需要建立或者说明一个对象,进行对象说明的简单格式如下:
object_type object_name
其中,object_name是用户自定义的对象名称,必须是合法的对象名,即用户所自定义的对象名不能使用EViews软件的保留字符,例如ABS、ACOS、AR、ASIN等,且对象名不区分大小写;object_type表示用户指定需要建立的对象类型,必须采用EViews规定的标识符,对象类型有:Alpha(字符)、Coef(系数)、Equation、Graph、Group、LogL(对数似然对象)、Matrix(矩阵)、Model(模型)、Pool、Sample、Scalar(数值)、Series、Series Link(序列链接)、SSpace(状态空间)、System、Table(表格)、Text、ValMap、VAR、Vector(向量)。
例如,对象说明:
series lgdp
表示建立一个名为LGDP的序列。
equation eq1
表示建立一个名为EQ1的方程对象。
矩阵对象(Matrix)的定义必须在紧接着对象类型的圆括号中给出矩阵的维度,例如:
matrix(4,4) m1
表示建立一个4×4的矩阵M1。对于系数向量对象,也应该给出向量的维数,例如:
coef(8) res01
表示建立一个名为RES01的含有10个元素的系数向量。
EViews对象说明经常与对象命令语句或者对象赋值表达式一起使用,以建立并初始化该对象。例如:
series lgdp=log(gdp)
表示建立一个名为LGDP的新序列,并使用序列GDP的自然对数初始化新序列LGDP。类似的有如下命令:
equation eq1.ls y c x1 x2
表示建立一个名为EQ1的方程对象,并使用序列Y对常数项C、序列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 1990 2000 series dummy=0 smpl 2001 2008 series dummy=1
表示生成一个虚拟变量序列DUMMY,样本期在1990~2000之间,DUMMY取值为0,样本期在2001~2008之间,DUMMY取值为1。
又如,利用序列y的自然对数值对序列x的回归生成方程对象eq02,其命令为:
equation eq02.ls log(y)=c(1)+c(2)*x
EViews将回归方程的参数估计结果保存在名为eq02的方程对象中。
需要注意的是,EViews不允许将某个对象重复定义为不同的对象类型,而且这种重复定义会产生错误。