第六章  常用指令之说明

<回「入门讲义」>

前几章从「实用」观点来介绍如何使用 AREMOS/Windows 检索数据并做简单回归分析。如果您不在乎了解 AREMOS/Windows语言结构,依那些范例,套上自己研究所需数据,应可顺利完成操作。

本章将回头来对那些指令进一步补充说明。  

 

6.1  General Object Commands

AREMOS/Windows 的 commands (指令)分两大类:general command 与 object command。其中 object command 专用为产生某种object (例如 series);而其他非用来产生 object 之一般性只令均属 general command。

例如范例(一)中:

(3)Options → Set → Period (Frequency : Quarterly, From 1982:1 to 1992:4) → OK

(4)Options → Set → Report (Decimal Places: 0) → OK

(5)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → niaq.bnk → 确定 → Open → Cancel 跳回主画面

(6)Report → Print → 键入 gdp,cp ,gdp96 (在 Expression 处) → Execute

其中(5)(6)均属 general command 语句。其语句一般型式是:

commandname<options>argumentlist;

以(6)式而言,print 是 command; gdp、cp、gdp96 是 arguments。而针对某些 arguments (以逗点分开),来执行某一动作(在此是 print )。在 AREMOS/Windows 下,在此(6)式有以< >设定 options,当你再 Execute 处按下鼠标后,在主画面上,可发现一段指令print<Format=Column Horizon=8000 shift No>gdp,cp,gdp96 Width:10 Decimal=2; 如此(4)式的 global 设定就没有影响;而(3)式的 global 设定依然存在。

其次范例(五)中:

(3)键入指令 series<1989:12:1 1989:12:31>x1=stock80:s1206@cl;

(4)键入指令 series<1990:1:1 1990:1:20>x1=stock90:s1206@cl;

此二式均属 object command 语句,其一般型式是:

objecttype<options>objextname=definition;

以(3)式而言,是以 series 指令 (objecttype) 产生一个 series,名叫 x1 (objectname),而 x1 的内容则定义为与 stock80 数据库里之s1206@cl 一样。

 <回页首>

 

6.2  Global Local Setting

执行某一个 command,不管是 general command 或 object command,都需要有 options 来设定执行的环境 (environments)。

例如对于 print 指令,我们需要设定频率 (freq) 与期间 (per)。而 print gdp,cp,gdp96 则再所设定的频率与期间下打印出那三笔数据。

Options 设定有两种方式:以 options → set 方法来设定叫 global setting,其有效期间会继续维持到下次再 options → set 为止;以三角形括号< >来设定是 local setting,其有效仅限于执行该语句,一执行完又回到原先的 global setting。以上面范例(一)(3)(4)(5)(6)为例,当执行:

(3)Options → Set → Period(Frequency : Quarterly, From 1982:1 to 1992:4) → OK

即是 globally 设定频率为 q,期间为 1982:1 到 1992:4。接着下来执行(6)式即是在该频率与期间下 print 指令。如果我们加上:

(7)键入指令 print<1985:1 1986:4>pchya(gdp96);

(8)键入指令 analyze pchya(gdp),pchya(gdp96);

则第(7)是仅会印出 1985:1 到 1986:4 期间之资料(这是典型的 local setting)。但第(8)是又回复到 global 设定之 1982:1 到 1992:4来执行 analyze 指令。

 <回页首>

 

6.3  跨行下指令或同一行下多数指令

AREMOS/Windows 里的 AREMOS Command 环境下指令最多可有 127 个英文字母。有时一个指令语句太长一行打不完,需接第二行或第三行。此时与剧中若有逗点,可以逗点做结尾按 ENTER 键,计算机变了解指令尚未完全而需接下行。例如:

(1)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → man.bnk → 确定 → Open → Cancel 跳回主画面

(2)键入指令 print ru15@19,ru20@24,ru25@29,ru30@34,

(3)键入指令 ru35@39,ru40@44,ru45@49;

若不以逗点做一行之结尾,则计算机便视语句以完整而开始执行。记住,每下一行指令完,结束后的动作是用分号(;)来代表。如果语句中没有逗点可供结尾,则打「!」为结尾,计算机亦会「续下行」。

例如:

(1)键入指令 series<1989:12:1 1989:12:31>x1=!

(2)键入指令 stock80:1206@cl;

但记得,不可使用「!」符号把一个 objectname 分开在两行,否则会得到 error message。

我们亦可再同一行下两个以上之 AREMOS/Windows 语句。这些语句必须以分号(;)分开。例如:

(1)键入指令 set freq m ; set per 1990:1 1991:12;

(2)键入指令 open man ; print n;

 <回页首>

 

6.4  加减乘除与开方

AREMOS/Windows 加减乘除符号为 + - * /。开方则为 **。例如 2**3 是 2 的 3 次方。

 <回页首>

 

6.5  Work Bank 的说明

AREMOS/Windows 的 object 一定得存在于某个 bank 里。我们所建好的数据库,如 niaq,ind,fsm 等等,都是一些 banks 放在C 碟里(其在 C 碟的 filename 为 niaq.bnk,ind.bnk,fsm.bnk 等等)。进入 AREMOS/Windows 后,一旦 open 某个 bank,即可对该bank 里的 series 做操作,例如 print,或进行回归分析。

当我们进入 AREMOS/Windows 时,事实上我们是进入一个 primary bank 里,这个 primary bank 除非您特别指定,计算机会自动取名为 work bank(在 C 碟里 filename 即为 work.bnk)。

刚开始进入 AREMOS/Windows 时,这个 work bank 应该是空空的,没有任何 object。在操作过程中,如有产生任何 object (如series,conv,equation 等指令都会产生 object),则这些 objects 都会自动存放在此 work bank。任何时候,如果在主画面下:

键入指令 index work:;

可查知目前 work bank 里有什么 objects。

离开 AREMOS/Windows 时,如果键入指令「stop;」或按活属 File → disconnect,计算机会把目前的 work.bnk 保留起来,下次再进入 AREMOS/Windows 时,仍是以此 work.bnk 为 primary bank,里面的 objects 也都还存在可供使用。但如果离开 AREMOS/Windows 只打「stop」,没有分号「;」,则计算机会问是否要 erase work bank。您可以打 y 或 n 来决定是否要杀掉目前的 work bank。

在操作过程中,如果想要清除目前 work bank 里所有 objects,可键入指令「clear;」或把鼠标移至 Data → Bank → Clear → Work,如此,拰可以有一个干净的 work bank 重新开始。

 <回页首>

 

6.6  Series 的「完整名称」

在第三 章 3.3 节已提及,一个 series的「完整名称」事实上由3部分组成:
       
bankname:objectname.versionname
     
例如「工业生产总指数(月数据)」的完整名称是:
        ind:jqind.m
        在此,versionname 其实就是「频率」。
        我们可用「完整名称」来下指令,例如:
        键入指令 print ind:jqind.m;
        如此,很明确没有任何混淆。但如果我们下指令:

       键入指令 print jqind;

此时,有可能不同 banks 里同时存在 jqind,或同一 bank 里存有不同 version (即频率)之 jqind。计算机如何执行呢?其原则如下:

(1)首先看目前的频率设定。如果是 m,则计算机会执行 print jqind.m,如果是 a,则计算机会执行 print jqind.a。

(2)假定目前频率设定是 m,计算机即开始在所 open 的数据库群中寻找 qind.m。其寻找的优先级:第一是 primary bank(即 work bank),其次是最近一次 open 的 bank,接着再往前,越晚 open 的 bank 越优先。此优先级可以键入 q  banks 指令看出或在主画面下的 Primary Bank: Work 处,按鼠标左键一下,看看 Query Banks 处,即知。

(3)当计算机第一次找到 jqind.m,便立刻执行 print jqind.m,而结束此指令的运作,不再继续寻找是否其他 banks 也存 jqind.m。

由上述可见,如果有必要,应该用「完整名称」来下指令才不会引起混淆。

 <回页首>

 

6.7   如何产生 Series

AREMOS/Windows 的 objects 可分不同 type (种类)。到目前我们接触最多的 object type 是 series (即时间序列数据)。第七、八章中会讲解另外两种 types of objects:list 与 procedure。

当我们进入 AREMOS,即是进入一个 primary bank (work bank),里面空空没有任何 object。我们可以 open 一些 banks,利用那些 banks 里的 objects 来进行运算分析。但有时我们会需要「产生」的新 objects。这些自己产生出来的 objects 都会自动存放在primary bank 里。第七、八章将介绍如何产生 list 与 procedure。本节则谈谈如何产生 series。

依需求之不同,我们有「五」种方法可以在 primary bank 里产生 series:

(一)  有时读者所需之数据在现有数据库群中并没有,必须自己输入。可利用 series 指令来进行。例如键入指令(在主画面下):

(1)Options → Set → Period(Frequency:Quarterly, From 1985:1 to 1986:4) → OK

(2)键入指令 series y1=301,324.5,355,398,458 repeat 3,550;

如此可产生一个新的 series,名叫 y1,其数值则是等号后所输入的数字。所设定季频率从 1985 年第 1 季到 1986 年第 4 季,一共需要 8 个数字,因此要输入刚好 8 个数字才是一个完整的语句。输入数字可用 repeat 来简化。458 repeat 3 代表连续个 458。如果repeat *,则代表 repeat all。如果是 missing value,打 m 即可。 

(二)  使用 series 指令亦可利用现有的 series 来产生新的 series。例如范例(五)跨数据库之时间序列检索方法:

(3)键入指令 series<1989:12:1 1989:12:31>x1=stock80:s1206@cl;

(4)键入指令 series<1990:1:1 1990:1:20>x1=stock90:s1206@cl;

在此乃利用已 open 之 stock80,stock90 里之 s2610@cl 来产生一个新的 series x1。或者=后也可直接使用数学符号,例如:

(1)Options → Set → Period → (Frequency:Quarterly, From 1980:1 to 1992:4) → OK

(2)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → niaq.bnk → 确定 → Open → Cancel 跳回主画面

(3)键入指令 series s=gnp-cp-cg;

(4)键入指令 display s;

在此定义一个新的 series,叫 s,它的值即是 gnp-cp-cg。 

(三) collapse(or conv) 指令可转换数据频率。在 AREMOS/Windows 里,不同频率 (version) 的数据算是不同 object,因此 conv指令应视为「产生」新的 series,而所产生的新频率 series 也存放在 primary bank 里。例如范例(三):

(3)Options → Set → Period → (Frequency:Quarterly, From 1971:1 to 1994:4) → OK

(4)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → 分别叫取 niaq.bnk 和 fsm.bnk → 确定 → Open → Cancel 跳回主画面

(5)键入指令 conv m1a=m1a.m ave;

在此以 conv 指令所产生之 m1a,其「完整名称」应该是「work: m1a.q」,与数据库里被用来转换之原始数据「fsm:m1a.m」是不同 object。

(四) copy 方法可把数据原封不动从数据库拷到 primary bank。例如:

(1)Options → Set → Frequency (Quarterly) → OK

(2)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → 分别叫取 niaq.bnk 和 fsm.bnk → 确定 → Open → Cancel 跳回主画面

(3) Data → Bank → Copy → 键入 gnp,jqind,m (在 Names or Wildcard 处) → OK

如此可从已 open 的 banks 中找出 gnp.q 与 jqind.m 这两个 series 并拷到 primary bank。在此 gnp.q 与所设定频率相同,故不需打出 versionname「.q」。 jqind.m 之 versionname 则不能省,因为频率不同。如要谨慎些,可打出数据的「完整名称」。

如:

    Data → Bank → Copy → 键入 niaq:gnp.q, ind:jqind.m (在 Name or Wildcard 处) → OK

注意:document 无法 copy,因牵涉到 structure 的问题。

 (五) Series Editor 编辑方法

Data → Series → Edit → 在 Series Editor and Display 画面上输入 series 的 name → OK → 选 New or Update 去编辑 → Mark all → 按绘图工具(详细请参考前(范例二 第(19)式) 说明)。

 <回页首>

 

6.8  AREMOS Functions

AREMOS 的 functions 可分五大类:

1.   Main functions: log,exp,sqrt,max,min,mean,abs,round,variance,sum,std,median 等。

2.   Difference functions: pch,pchya,diff,diffya,dlog 等。

3.   Shift functions: switch,step,spike,missing 等。

4.   Date functions: dateday,datemonth,dateyear,datewday,after,before,calendar,period 等。

5.   Financial functions: npv,irr,cirr,future,payback 等。

其执行均以 functionname( ) 来使用。这些 functions 的详细说明,参考原文手册「Reference Manual p.262~279」。下面以简单范例说明其使用方法:

(1)键入指令 set freq q; set per 1980:1 1992:4;

(2)键入指令 series lgdp=log(gdp);

(3)键入指令 equ eq1 log(cp96)=log(gdp96);

(4)键入指令 print pch(gdp96),pchya(gdp96),diff(gdp96),diffya(gdp96);

说明:

(2):可产生一个新的 series 叫 lgdp,其数值即是对 gdp 取 log。

(3):此指令对 cp96 与 gdp96 做 loglinear 回归。亦即对 cp96 与 gdp96 取 log 后再进行回归。请参考范例(三)第(11)式之说明。

(4):此指令印出 gdp96「与上期比之成长率 (pch)」,「与去年同期比之成长率 (pchya)」,「与上期比之数值差额 (diff)」,「与去年同期比之数值差额 (diffya)」。pchya 代表「Percentage Change from a Year Ago」。

 <回页首>

 

6.9  「说明」(Document)

在 AREMOS/Windows 数据库系统里,国内自己所建立的那些数据库,每一笔数据均有三至五行的「说明」以供查询。这些说明通常包括该数据之全名、单位、来源等等。要看这些说明,在 open banks 后,以 write 指令即可:

    键入指令 set freq q;
           键入指令 open niaq;
           键入指令 write gdp96,cp96;
           或用鼠标操作:

(1)Options → Set → Frequency (Quarterly) → OK

(2)Data → Bank → Open → Files → 磁盘驱动器(看看数据库放在那一槽) → niaq.bnk → 确定 → Open → Cancel 跳回主画面

(3)Report → Write → 键入指令 gdp96,cp96 (在 Name 处) → OK

※注明:再 Write 一笔 Object (如 gdp96 或 cp96)之前,必须先 set 这笔的频率即 Open bank。或是在 Open bank 后,直接 Write gdp96.q,cp96.q 即可。

 <回页首>

 

6.10  如何建立 Databank

读者亦可建立自己的 databank 放在 C 碟里。首先:

    键入指令 open<pri>bankname;

此指令可指定开启某一数据库(新的或已存在的皆可)为 primary bank。接着以 6.7 节所介绍之方法「产生」新的 series。所产生的 objects 都会自动存放在此 primary bank。结束后以「stop;」离开 AREMOS。此 primary bank 便会储存在 C 碟下。

 <回页首>

 

6.11  indexdelete clear

在第三章已介绍 index 指令可用来查询 primary bank 与 C 碟上各个数据库里存什么 objects。Delete 指令则可除掉 primary bank或 C 碟上数据库里的 objects。

假定目前运作的 work bank 里有 x1,x2,x3,x4,x5 等 5 个 objects,而 C 碟上已建有「mybank.bnk」内含 y1,y2,y3,y4,y5等 5 个 objects。则:

    键入指令 delete x2,x3;

可除掉 work bank 里 x2 与 x3 这两个 objects。而在键入「open mybank;」后:

    键入指令 delete mybank:y3,mybank:y5 ;

可除掉 mybank 里 y3 与 y5 这两个 objects。

此外 index 指令里用的 wildcard characters「*」与「?」也是用在 delete 指令。例如:「delete g*;」,「delete h??」,等等。

若你要 delete list 的东西(如 n1),必须键入指令 del list n1;

任何时候,如果:

   键入指令 clear;

可除掉 primary bank 里所存 objects,而有一个干净的 work bank 重新开始。如果:

    键入指令 clear mybank;

则会把 C 碟尚 mybank.bnk 里所存 objects 除掉,同时 mybank.bnk 也从 C 碟被 erase 掉。

index 与 delete 当然亦可透过鼠标执行。

(1)Data → Bank → Index

(2)Data → Bank → Delete

 <回页首>

 

6.12  rename…. as….

rename 指令可把现有 series 的 name 改成令个 name。例如:

    键入指令 rename a,b,c  as  x,y,z;

可把 primary bank 里面 a,b,c  3 个 series 改名为 x,y,z。又:

    键入指令 rename mybank:a,mybank:b,mybank:c  as  x,y,z;

可把 mybank 里数据库里 a,b,c  3 个 series 改名为 x,y,z。又:

    键入指令 rename list a  as  x;

可把 primary bank 里面的 list a 改名为 x。又:

    键入指令 rename procedure a  as  x;

可把 primary bank 里面的 procedure a 改名为 x。

 <回页首>

 

6.13  小数点与 report columns 的设定

我们 print 数据时,小数点以下几位数会依当时 globally 所设定的 report decimals 而印出几位。如要改变设定位数,可 globally改变,例如:

(1)Options → Set → Report(Decimal Places:2) → OK

(2)键入指令 print jqind;

或 locally 改变,例如:

(3)键入指令 print<dec 2> jqind;

此外,print 数据时,每笔数据所占 report columns 数字,计算机一开始 (default) 设定为 10 位。我们亦可 globally 改变其设定,例如:

(4)Option → Set → Report (Filed Width:8) → OK

(5)键入只领 print gdp96;

或 locally 改变,例如:

(6)键入指令 print<col 8>gdp96;

一般说来,把 report columns (Field Width) 设定改少些,可使我们一页里容纳更多笔数据,但如果数据本身位数超过 report columns 数字的,会改用「E符号」表示,看你来就很不方便。读者可自行斟酌。

任何时候,键入指令 q  report; 可查看当时有关 report 方面 decimals, columns 及其他方面的设定。q 是 query 之简称,请参考下节。

<回页首>

 

6.14  help query

(1) 在 AREMOS/Windows 里直接按 Help 即可找寻你要的详细说明。

(2) query (简打为 q )可查询某个 option 的 setting,或某个 command 之相关 options 的 setting,例如:

键入指令 q  freq;

可显示目前 freq 的设定。而:

    键入指令 q  per;

可显示目前 per 的设定。如果:

    键入指令 q  print;

则显示有关 print 指令之 options 的设定。又上节已提过,如果:

    键入指令 q  report;

可显示所有有关 report options的设定。

 <回页首>

 

6.15  Option 设定的储存:store restore

一进入 AREMOS/Windows 里,计算机自动对每一个 options 有预先的设定,此种设定称为 default setting。例如 freq 的设定是 a,per 的设定是 80  85 等等。在您操作过程中,如果改了 option 设定,而希望把这些设定储存起来,可用 store 与 restore 指令。例如,在任何时候:

    键入指令 store my;

则在<WAREM32>子目录下会出现一个 file,叫 my.opt。my 是随便取的 filename。my.opt 会储存当时的 option 设定。将来如果下:

    键入指令 restore my;

则会把 my 所储存的 option 设定变成是目前的 option 设定。当然,你可用鼠标操作:

(1)Option → Store → 键入指令 my (在 Store In File Name) → OK

(2)Option → Restore → 键入指令 my (在 File Name) → OK

 <回页首>

 

6.16  AREMOS/Windows 里进行编辑

在 AREMOS/Windows 里有「WAEDIT」的编辑程序,可直接对 C 碟的 file 做编辑,操作方法是用鼠标点出:

    Tools → AREMOS Editor → File → Open → 磁盘驱动器(看看你的 file 放在那一槽) → 文件类型(选 All files ) → abc.prn → 确定

如此在 WAEDIT 编辑系统下,可修修改改您要的东西,然后可存盘,也可印出 (print),(如图 6.16.1)。

 

6.16.1】

   <回页首>

 

6.17  「递延」(lag) 与「领先」(lead)

AREMOS/Windows 以 [ ] 符号附于时间序列后面来代表「递延」或「领先」。例如:gdp[-1] 代表 gdp 的递延 (lag)一期,gdp[-2] 代表递延二期,以此类堆。而 gdp[+1] 代表领先 (lead)一期,gdp[+2] 代表领先二期,等等。

<回页首>

<入门讲义>