1、第第15章章 数据管理数据管理清华大学经管学院清华大学经管学院 朱世武朱世武ZResdat样本数据:样本数据:SAS论坛:论坛: SAS系统提供的过程按其用途可分为四大类: 数据管理; 基础统计; 数据呈现; 数据访问。 和任何一种编程语言一样,SAS 系统有一些数据管理过程,用于实现常用的中间操作或数据转换。 本章将介绍的数据管理过程:本章将介绍的数据管理过程: 数据集排序; 数据集转置; 改变输出地点; 添加观测; 数据库复制。数据集排序数据集排序 利用SAS的排序过程可以对数据集中的观测重新排序。SAS许多和BY配合使用的语句,如对数据集进行合并的语句或更新语句等,使用前必须先对BY变量
2、进行排序。 排序过程句法排序过程句法PROC SORT ; BY variable-1 . variable-n; PROC SORT语句语句 PROC SORT ;选项说明: DATA=规定被排序数据集,缺省时为最新创建数据集OUT=创建输出数据集,省略时用排序后数据集替换原数据集ASCII规定按ASCII排序SWEDISH规定按Swedish排序NATIONAL规定按习惯排序FORCE强行实施多余排序其中:其中:选项选项FORCE强行实施多余排序。排序并替换原来加索引的或取子强行实施多余排序。排序并替换原来加索引的或取子集的数据集,即没有规定集的数据集,即没有规定OUT=选项时,如果没有规
3、定选项时,如果没有规定FORCE,就不能对有索引的数据集进行排序和替换。就不能对有索引的数据集进行排序和替换。 没有规定OUT=选项时必须使用FORCE的选项有: OBS=系统选项; FIRSTOBS=系统选项; DATA=数据集中的数据集选项WHERS=; PROC SORT 步用WHERE语句。BY语句语句 BY variable-1variable-n;PROC SORT中必须使用BY语句,BY语句中可以规定任意多个变量。BY语句中规定多个变量时,SORT过程首先按第一个变量排序,然后是第二个变量等。BY语句中可以规定的选项:DESCENDING对变量按下降次序排序。 应用举例应用举例
4、例15.1 按多变量排序。data a;set ResDat.Idx000001;year=year(date);qtr=qtr(date);month=month(date);proc sort data=a out=b;by year qtr month;run;例中,对上证数据Idx000001按年、季和月排序。 例15.2 按单变量降序排列。 proc sort data= ResDat.a600001 out=a; by descending clpr; proc print data=a (obs=3) noobs; var date clpr; run; 例中,按收盘价CLPR的
5、降序排列。数据集转置数据集转置 转置就是把数据集的观测变为变量,变量变为观测。利用SAS的转置过程可以对数据集进行转置。 转置过程句法转置过程句法 PROC TRANSPOSE ; BY variable-1 . variable-n ; COPY variable(s); ID variable; IDLABEL variable; VAR variable(s); 语句说明: BY规定对每个BY组求转置,BY变量包含在输出数据集中但没有被转置COPY将没有转置的变量直接拷贝到输出数据集中ID规定输入数据集中一个变量。其值为转置后数据集的变量名IDLABEL规定被转置变量的标签VAR列出要转
6、置的变量PROC TRANSPOSE 语句语句 PROC TRANSPOSE ;选项说明: VAR语句和语句和ID语句语句 VAR语句VAR variable-list;VAR语句列出要转置的变量。没有VAR语句时,则没有列在其它语句里的所有数值变量被转置。ID语句ID variable;ID语句规定输入数据集中一个变量。ID变量的值为转置后数据集的变量名。在没有选项LET时,ID变量的值在数据集中只能出现一次,使用BY语句,BY组内只包含最后的ID值。应用举例应用举例 例15.4 ID变量的值为转置后数据集的变量名。proc transpose data=ResDat.class out=a
7、 let;id name;proc print;run;例中,原数据集CLASS中变量NAME的值为转置后数据集A的变量名,对所有数值变量转置。数据集A中还有一变量_NAME_. SAS 系统 1 2007年03月07日 星期五 下午09时21分17秒 Obs _NAME_ Alice Barbara Carol Jane Janet Joyce Judy Louise Mary Alfred 1 Age 13.0 13.0 14.0 12.0 15.0 11.0 14.0 12.0 15.0 14.0 2 Height 56.5 65.3 62.8 59.8 62.5 51.3 64.3 5
8、6.3 66.5 69.0 3 Weight 84.0 98.0 102.5 84.5 112.5 50.5 90.0 77.0 112.0 112.5 Obs Henry James Jeffrey John Philip Robert Ronald Thomas William 1 14.0 12.0 13.0 12.0 16 12.0 15 11.0 15.0 2 63.5 57.3 62.5 59.0 72 64.8 67 57.5 66.5 3 102.5 83.0 84.0 99.5 150 128.0 133 85.0 112.0例15.5 BY组内最后一个ID值的观测被转置。p
9、roc transpose data=ResDat.class out=a let;id sex;proc print;run;结果显示:Obs_NAME_FM1Age15152Height66.566.53Weight112112proc transpose data=ResDat.class out=a let;id sex;by sex;proc print;run;结果显示:ObsSex_NAME_FM1FAge15.2FHeight66.5.3FWeight112.4MAge.155MHeight.66.56MWeight.112例15.8 对每个BY组转置。options noda
10、te pageno=1 linesize=80 pagesize=40;proc transpose data=ResDat.fishdata out=fishlength(rename=(col1=Measurement);var length1-length4;by location date;run;proc print data=fishlength noobs;title Fish Length Data for Each Location and Date;run; Fish Length Data for Each Location and Date 1 Location Dat
11、e _NAME_ Measurement Cole Pond 02JUN95 Length1 31 Cole Pond 02JUN95 Length2 32 Cole Pond 02JUN95 Length3 32 Cole Pond 02JUN95 Length4 33 Cole Pond 03JUL95 Length1 33 Cole Pond 03JUL95 Length2 34 Cole Pond 03JUL95 Length3 37 Cole Pond 03JUL95 Length4 32 Cole Pond 04AUG95 Length1 29 输出窗口显示例例15.10 对转置后
12、的数据集作统计分析。对转置后的数据集作统计分析。options nodate pageno=1 linesize=80 pagesize=40;data split;set ResDat.weights;array s7 s1-s7;subject + 1;do Time=1 to 7;strength=stime;output;end;drop s1-s7;run;proc print data=split(obs=15) noobs;title Split Data Set;title2 First 15 Observations Only;run;/*接左侧*/proc transpos
13、e data=split out=totsplit prefix=Str;by program subject;copy time strength; var strength;run;proc print data=totsplit(obs=15) noobs;title Totsplit Data Set;title2 First 15 Observations Only;run;改变输出地点改变输出地点 缺省情况下,SAS过程输出到OUTPUT窗口,SAS日志输出到LOG窗口。利用SAS的PRINTTO过程可以设定SAS过程和日志的输出地点。PRINTTO过程有以下功能: 改变过程输出的
14、目的地; 改变SAS日志输出的目的地; 有选择地限制SAS输出; 将输出结果存放在永久文件中; 将输出直接送到打印机上; 将SAS的输出作为输入数据(这时需要一些附加的程序语句)。PRINTTO过程句法过程句法 PROC PRINTTO ;选项说明 注意:一般情况下,PROC PRINTTO后面一定要加RUN语句。若省略RUN语句,则会丢失PRINTTO后面DATA步或PROC步第一行的输出。 没有选项恢复缺省时的输出目的地LABEL=给存贮在SAS目录册中SAS日志或输出结果加说明标签LOG=将SAS日志输出到外部永久文件或SAS目录册中LOG=and PRINT=将SAS日志和运行结果输出
15、到一个文件中NEW替换原输出文件PRINT=将运行结果输出到外部永久文件或SAS目录册中UNIT=将结果直接输出到文件标记为FTnnF001的文件中应用举例应用举例 例15.11 将SAS日志输出到外部永久文件。proc printto log= d:log.dat; /*直接输出到永久文件中*/filename f1 d:out.txt;proc printto log= f1; /*输出到文件标记*/ 例15.12 将运行结果输出到外部永久文件。filename f2 d:out.list;proc printto print=f2; /*输出到文件标记*/proc printto pri
16、nt= d:out.list; /*直接输出到永久文件中*/例15.13 直接打印输出结果。filename f printer;proc printto print=f;/*直接打印*/proc printto print=print;/*返回到缺省输出地点*/ 例15.14 替换原输出文件。proc printto print=d:out.txt log= d:log.dat new;proc print data=ResDat.class;run;添加观测添加观测 利用SAS的APPEND过程可以将一个SAS数据集的观测添加到另一个SAS数据集的后面。APPEND过程句法过程句法 PRO
17、C APPEND BASE=SAS-data-set ; APPEND过程中只需要一个语句。 选项说明: BASE=| OUT=规定基本数据集的名子DATA=| NEW=规定要添加在基本数据集后面的数据集名,缺省时使用最近创建的SAS数据集FORCE强迫PROC APPEND连接两数据集应用举例应用举例 例15.17 有条件添加数据。proc append base=data1 data=data2(where=(X=1);run;proc append base=a data= ResDat.stk000001(where=(year(date)=1999) ;run;例中,使用数据集选项W
18、HERE=或WHERE语句来限制DATA=的数据集中只有满足条件的观测被加到BASE=的数据集中。数据库复制数据库复制 利用SAS的COPY过程可以复制整个SAS数据库或其中的数据库成员。 COPY过程句法过程句法 PROC COPY OUT=libref-1 IN=libref-2 MOVE ; EXCLUDE SAS-file(s) ; SELECT SAS-file(s) / ; 子语句说明: Select规定要拷贝数据库IN=中的成员; Exclude规定不拷贝数据库IN=中的成员。 PROC COPY语句选项语句选项 选项说明: IN|INLIB|INDD=规定被拷贝的SAS数据库,
19、此项必须规定OUT|OUTLIB|OUTDD=规定拷贝数据库,此项必须规定MEMTYPE|MTYPE|MT=规定被拷贝或移动成员的类型MOVE移走IN=数据库中的相应成员ALTER=移动一个可改变保护的成员时,要写上原来的改变访问口令INDEX=YES/NO规定拷贝数据集时是否拷贝该数据集的索引。缺省时INDEX=YES有效的成员类型(MEMTYPE): ALL所有成员,缺省值ACCESSSAS/ACCESS软件创建的存取文件CATALOG目录DATA数据集PROGRAM程序VIEW视图应用举例应用举例 例15.18 两个SAS逻辑库之间复制数据集和目录册。proc copy in=lib1
20、out=lib2 MTYPE=(data catalog);run; 例15.19 将逻辑库LIB1的所有SAS文件移动到LIB2中。proc copy in=lib1 out=lib2 move;run;例15.21 选择以DAT开头的所有文件。data ResDat.dat ResDat.dat1 ResDat.dat2 ResDat.dat3 (alter=zsw);var=move;run;proc copy in=ResDat out=work move;select dat: (alter=zsw);run; 极大似然估计法极大似然估计法(maximum likelihood, M
21、L),是不同是不同于最小二乘法的另一种参数估计方法,是从极大似然原理于最小二乘法的另一种参数估计方法,是从极大似然原理发展起来的其他估计方法的基础。虽然其应用没有最小二发展起来的其他估计方法的基础。虽然其应用没有最小二乘法普遍,但在计量经济学理论上占据很重要的地位,因乘法普遍,但在计量经济学理论上占据很重要的地位,因为极大似然原理比最小二乘原理更本质地揭示了通过样本为极大似然原理比最小二乘原理更本质地揭示了通过样本估计母体参数的内在机理,计量经济学理论的发展更多的估计母体参数的内在机理,计量经济学理论的发展更多的是以极大似然估计原理为基础的,对于一些特殊的计量经是以极大似然估计原理为基础的,对
22、于一些特殊的计量经济学模型,只有极大似然方法才是很成功的估计方法。济学模型,只有极大似然方法才是很成功的估计方法。 EViews包含了一些常用方法,如最小二乘法、非线性包含了一些常用方法,如最小二乘法、非线性最小二乘法、加权最小二乘法、最小二乘法、加权最小二乘法、TSLS、GMM、ARIMA、ARCH、GARCH等方法,这些方法可以解决可能遇到的大等方法,这些方法可以解决可能遇到的大多数估计问题。但是,我们在研究中也可能会碰到一些不多数估计问题。但是,我们在研究中也可能会碰到一些不在上述之列的特殊的模型,这些模型可能是现存方法的一在上述之列的特殊的模型,这些模型可能是现存方法的一个扩展,也可能
23、是一类全新的问题。个扩展,也可能是一类全新的问题。 为了能解决这些特殊的问题,为了能解决这些特殊的问题,EViews提供了提供了这一工具来估计各种不同类型的模型。对数这一工具来估计各种不同类型的模型。对数极大似然估计对象提供了一个一般的,开放的工具,可以极大似然估计对象提供了一个一般的,开放的工具,可以通过这个工具极大化相关参数的似然函数对一大类模型进通过这个工具极大化相关参数的似然函数对一大类模型进行估计。行估计。 使用对数极大似然估计对象估计时,我们用使用对数极大似然估计对象估计时,我们用EViews的序列生成器,将样本中各个观测值的对数似然贡献描述的序列生成器,将样本中各个观测值的对数似
24、然贡献描述为一个未知参数的函数。可以给出似然函数中一个或多个为一个未知参数的函数。可以给出似然函数中一个或多个参数的解析微分,也可以让参数的解析微分,也可以让EViews自动计算数值微分。自动计算数值微分。EViews将寻找使得指定的似然函数最大化的参数值,并将寻找使得指定的似然函数最大化的参数值,并给出这些参数估计的估计标准差。给出这些参数估计的估计标准差。 在本章,我们将详细论述对数极大似然估计对象,在本章,我们将详细论述对数极大似然估计对象,说明其一般特征。并给出了一些可以使用该方法的具体的说明其一般特征。并给出了一些可以使用该方法的具体的例子。例子。 设总体的概率密度函数为设总体的概率
25、密度函数为P,其类型是已知的,但含有未其类型是已知的,但含有未知参数(向量)知参数(向量) 。我们的目的就是依据从该总体抽得的随机我们的目的就是依据从该总体抽得的随机样本样本 y1, y2, , yT ,寻求对寻求对 的估计。的估计。 观测值观测值 y1, y2, , yT 的的联合密度函数被给定为联合密度函数被给定为 (8.1.1)其中:其中:y = ( y1, y2, , yT ) 。将这一联合密度函数视为参数将这一联合密度函数视为参数 的函数,称为样本的似然函数(的函数,称为样本的似然函数(likelihood function)。)。TttyPL1)();(y 极大似然原理就是寻求参数
26、的估计值极大似然原理就是寻求参数的估计值 ,使得所,使得所给样本值的概率密度(即似然函数)的值在这个参数给样本值的概率密度(即似然函数)的值在这个参数值之下,达到最大。在当前的情形下,就是寻求值之下,达到最大。在当前的情形下,就是寻求 的的估计值,使得似然函数估计值,使得似然函数 L(y ; ) 相对于给定的观测值相对于给定的观测值 y1, y2, , yT 而言达到最大值,而言达到最大值, 就被称为极大似然估计就被称为极大似然估计量。量。 在在 L(y ; ) 关于关于 i(i =1, 2, , n,n是未知参数的个数)是未知参数的个数)的偏导数存在时,要使的偏导数存在时,要使 L(y ;
27、) 取最大值取最大值, 必须满足必须满足, i =1, 2, , n (8.1.2)由上式可解得由上式可解得 n 1 向量向量 的极大似然估计值的极大似然估计值 ,而式,而式(8.1.2)也被称为似然函数。也被称为似然函数。 0);(yLi 因为因为 L(y ; ) 与与 lnL(y ; ) 在同一点处取极值,所在同一点处取极值,所以也可以由以也可以由 , i =1, 2, , n (8.1.3)求得,因为对数可将乘积变成求和,所以,式求得,因为对数可将乘积变成求和,所以,式(8.1.3)往往往往比直接使用式比直接使用式(8.1.2)来得方便。式来得方便。式(8.1.3)也被称为对数似也被称为
28、对数似然函数。然函数。 0);(lnyLi 考虑多元线性回归模型的一般形式考虑多元线性回归模型的一般形式 , t =1, 2 , , T (8.1.4)其中其中 k 是解释变量个数,是解释变量个数,T 是观测值个数,随机扰动项是观测值个数,随机扰动项 ,那么那么 yt 服从如下的正态分布:服从如下的正态分布: 其中其中(8.1.5) tktktttuxxxy22110tu),0(2Nty),(2tNktktttxxx22110 y 的随机抽取的的随机抽取的 T 个样本观测值的联合概率函数为个样本观测值的联合概率函数为 (8.1.6)这就是变量这就是变量y的似然函数,未知参数向量的似然函数,未知
29、参数向量 = 1, 2, k, 2。 对似然函数求极大值和对数似然函数求极大值是等价对似然函数求极大值和对数似然函数求极大值是等价的,式的,式(8.1.6)的的为:为: (8.1.7) TtttyTTTttTeyPyyyPL122)(2121212)2(1)(),(),(TtttTtttyyTL122212222)(21)2ln(21)(21)2ln(2),(ln 注意,可以将对数似然函数写成注意,可以将对数似然函数写成 t 时刻所有观测值的时刻所有观测值的对数似然贡献和的形式,对数似然贡献和的形式, (8.1.8) 这里对数似然的单个贡献(用小写字母表示)由下面这里对数似然的单个贡献(用小写
30、字母表示)由下面的式子给出:的式子给出: (8.1.9) ),(),(ln212TttlL2222)(21)2ln(21),(tttylTt, 2, 1 式(式(8.1.7)也可用标准正态分布的密度函数)也可用标准正态分布的密度函数 表示表示 (8.1.10)式中式中 为为 (8.1.11)这里对数似然函数每个观测值的贡献式这里对数似然函数每个观测值的贡献式(8.1.9)又可以由下面的又可以由下面的式子给出:式子给出: (8.1.12)TtttTtyTL122122)(21)ln(21)2ln(2),(lnTttty12)ln(21)(lnTtttzTz1221)2ln(2)(lntttyz)
31、ln(21ln),(2tttylTt, 2, 1 用对数极大似然估计来估计一个模型,主要的工作是用对数极大似然估计来估计一个模型,主要的工作是建立用来求解似然函数的说明文本。用建立用来求解似然函数的说明文本。用EViews指定对数指定对数极大似然函数的说明是很容易的,因为似然函数的说明只极大似然函数的说明是很容易的,因为似然函数的说明只是一系列对序列的赋值语句,这些赋值语句在极大化的过是一系列对序列的赋值语句,这些赋值语句在极大化的过程中被反复的计算。我们所要做的只是写下一组语句,在程中被反复的计算。我们所要做的只是写下一组语句,在计算时,这些语句将描述一个包含每个观测值对似然函数计算时,这些
32、语句将描述一个包含每个观测值对似然函数贡献的序列。贡献的序列。 注意到,我们能将对数似然函数写成所有观测值注意到,我们能将对数似然函数写成所有观测值 t 的的的形式,的形式, 这里这里由下面的式子给出:由下面的式子给出: ),(),(ln212TttlL2222)(21)2ln(21),(tttylTt, 2, 1 以只含一个解释变量的一元线性回归方程为例以只含一个解释变量的一元线性回归方程为例 , t =1, 2 , , T 假定知道模型参数的真实值,并且想用假定知道模型参数的真实值,并且想用EViews产生产生一个包含每个观测值的贡献的序列。一个包含每个观测值的贡献的序列。 tttuxy1
33、10), 0(2Nut2222)(21)2ln(21),(tttylTt, 2, 1 未知参数向量未知参数向量 = 0, 1, 2, 可以将参数初值赋给系数向可以将参数初值赋给系数向量的量的c(1)到到c(3)元素,然后把下面的赋值语句作为元素,然后把下面的赋值语句作为EViews的命的命令或程序来执行。令或程序来执行。 Series res = y-c(1)-c(2)*x Series var = c(3) Series logL1 = -log(2*3.14159*var)/2- (res2/var)/2 前面两行语句描述了用来存储计算时的中间结果的序列。前面两行语句描述了用来存储计算时的
34、中间结果的序列。第一个语句创建了第一个语句创建了,而第二个语句创建了而第二个语句创建了。而序列而序列包含了包含了的集合。的集合。2222)(21)2ln(21),(tttyl 下面考虑下面考虑2个变量的例子:个变量的例子: 这里,这里,y, x, w 是观测序列,而是观测序列,而 = 1, 2, 3, 2是模型的参数。是模型的参数。有有T个观测值的样本的对数似然函数可以写成:个观测值的样本的对数似然函数可以写成: 这里,这里, 是标准正态分布的密度函数。是标准正态分布的密度函数。), 0(2321NuuwxytttttTtTttttwxyTL1122321222)()log(21)2log(2
35、),(logTttttwxy12321)log(21(log 将这一例子的对数极大似然函数过程写成下面的赋值语将这一例子的对数极大似然函数过程写成下面的赋值语句:句: Series res=y-c(1)-c(2)*x-c(3)*w Series var=c(4) Series logL1=log(dnorm(res/sqrt(var)-log(var)/2 前面两行语句创建了残差序列前面两行语句创建了残差序列res和方差序列和方差序列var,参数参数c(1), c(2), c(3)代表了回归系数代表了回归系数 1, 2, 3,c(4)代表了代表了 2,序列序列logL1包含了每个观测值的对数似
36、然贡献的集合。包含了每个观测值的对数似然贡献的集合。 )log(21log),(2321ttttwxyl 下面考虑稍复杂的例子,假设数据是由条件异方差回归模下面考虑稍复杂的例子,假设数据是由条件异方差回归模型生成的:型生成的: 这里,这里,x, y, w 是观测序列,而是观测序列,而 = 1, 2, 3, 2, 是模型的参是模型的参数。有数。有T个观测值的样本的对数似然函数可以写成:个观测值的样本的对数似然函数可以写成: 这里,这里, 是标准正态分布的密度函数。是标准正态分布的密度函数。Tttttttwwwxy122/321)log(21(logTtTttttttwwxywTL11223212
37、22)()log(21)2log(2),(log), 0(2321ttttttwNuuwxyTt, 2, 1 将这一例子的对数极大似然函数过程写成下面的赋值语句:将这一例子的对数极大似然函数过程写成下面的赋值语句: Series res=y-c(1)-c(2)*x-c(3)*w Series var=c(4)*wc(5) Series logL1=log(dnorm(res/sqrt(var)-log(var)/2 前面两行语句创建了残差序列前面两行语句创建了残差序列res和方差序列和方差序列var,参数参数c(1), c(2), c(3)代表回归系数代表回归系数 1, 2, 3,c(4)代表
38、代表 2,c(5)代表代表 ,序,序列列logL1包含了每个观测值的对数似然贡献的集合。包含了每个观测值的对数似然贡献的集合。 )log(21log),(22/321ttttttwwwxylTt, 2, 1 现在假定不知道模型参数的真实值,而想使用数据现在假定不知道模型参数的真实值,而想使用数据来估计它。参数的极大似然估计被定义为:使得样本中来估计它。参数的极大似然估计被定义为:使得样本中所有随机抽取的一组观测值的联合概率密度,即似然函所有随机抽取的一组观测值的联合概率密度,即似然函数取最大值的那组参数值。数取最大值的那组参数值。 而对数极大似然方法使得寻找这些极大似然估计变而对数极大似然方法
39、使得寻找这些极大似然估计变得容易了。只需创建一个对数似然对象,把上面的赋值得容易了。只需创建一个对数似然对象,把上面的赋值语句输入到语句输入到logL的说明窗口,然后让的说明窗口,然后让EViews来估计这个来估计这个模型。模型。 在输入赋值语句时,只需对上面的文本做两处微小的在输入赋值语句时,只需对上面的文本做两处微小的改动就可以了。首先,改动就可以了。首先,(因(因为似然说明暗含了假定序列是当前的)。第二,为似然说明暗含了假定序列是当前的)。第二,(关键字(关键字为包含为包含)。)。 这样,要在这样,要在logL说明窗口输入下面的内容:说明窗口输入下面的内容: logL logl res
40、= y-c(1)-c(2)*x-c(3)*w var = c(4)*wc(5) logl = log(dnorm(res/sqrt(var)-log(var)/2 对数似然函数的第一行,对数似然函数的第一行,logL logl,告诉,告诉EViews用用logl序列来存储似然贡献。余下的行定义了中间结果的计算序列来存储似然贡献。余下的行定义了中间结果的计算和实际的似然贡献的计算。和实际的似然贡献的计算。 当用当用EViews估计模型参数时,它将对不同参数值估计模型参数时,它将对不同参数值重复执行说明中的赋值语句,使用迭代法来求使得对重复执行说明中的赋值语句,使用迭代法来求使得对数似然贡献最大的
41、一组参数值。当数似然贡献最大的一组参数值。当EViews再不能提高再不能提高全部似然贡献时,它将停止迭代并在估计输出中报告全部似然贡献时,它将停止迭代并在估计输出中报告最终参数值和估计标准差。最终参数值和估计标准差。 本章下面的部分将更详细地讨论使用似然方法说本章下面的部分将更详细地讨论使用似然方法说明,估计和检验时要遵循的规则。明,估计和检验时要遵循的规则。 要创建一个似然对象,选择要创建一个似然对象,选择Objects/New Object./ LogL或者在命令窗口输入或者在命令窗口输入“logL”。似然窗口将打开一个空似然窗口将打开一个空白说明视图。说明视图是一个文本窗口,在这个窗口里
42、可白说明视图。说明视图是一个文本窗口,在这个窗口里可以输入描述统计模型的说明语句,还可以设置控制估计程以输入描述统计模型的说明语句,还可以设置控制估计程序各个方面的选项。序各个方面的选项。 正如上节中所描述的那样,似然说明的主线是一系正如上节中所描述的那样,似然说明的主线是一系列赋值语句,在计算时,这些赋值语句将产生一个包含列赋值语句,在计算时,这些赋值语句将产生一个包含样本中每个观测值的对数似然贡献的序列。赋值语句的样本中每个观测值的对数似然贡献的序列。赋值语句的多少可以自己决定。多少可以自己决定。 每个似然说明都必须包含一个控制语句,该语句命名了每个似然说明都必须包含一个控制语句,该语句命
43、名了保存似然贡献的序列。语句的格式为:保存似然贡献的序列。语句的格式为: 这里这里logL是关键字是关键字,series_name是保存似然贡献的序列的是保存似然贡献的序列的名字,可以写在似然说明的任何位置。名字,可以写在似然说明的任何位置。 例如,对于一元线性回归方程的似然说明来说,第一行:例如,对于一元线性回归方程的似然说明来说,第一行:logL logl是似然贡献的序列的说明。当对模型进行计算时,是似然贡献的序列的说明。当对模型进行计算时,EViews将在现有参数值下执行每个赋值语句,并将结果保存将在现有参数值下执行每个赋值语句,并将结果保存到指定名称的序列里。如果序列不存在,系统将自动
44、创建,到指定名称的序列里。如果序列不存在,系统将自动创建,如果已经存在,系统将使用现有的序列,并覆盖序列原来的如果已经存在,系统将使用现有的序列,并覆盖序列原来的内容。内容。 如果想在估计完成后删除说明中的一个或多个序列,可如果想在估计完成后删除说明中的一个或多个序列,可以使用以使用temp语句:语句: 这个语句告诉这个语句告诉EViews在对说明的计算完成后,删除列表在对说明的计算完成后,删除列表中的序列。如果在中的序列。如果在logL中创建了许多中间结果,又不愿意工中创建了许多中间结果,又不愿意工作文件因包含这些结果的序列而弄得混乱的话,删除这些序作文件因包含这些结果的序列而弄得混乱的话,
45、删除这些序列将是很有用的。例如,图列将是很有用的。例如,图8.2中的最后一行语句就是命令中的最后一行语句就是命令EViews在估计结束后,删除估计产生的中间序列在估计结束后,删除估计产生的中间序列res、var和和logl。 这里需要强调一点,在似然说明的文本中可以加入说明这里需要强调一点,在似然说明的文本中可以加入说明语句,说明语句的前面加上撇号语句,说明语句的前面加上撇号“ ”,则这个语句将不被执,则这个语句将不被执行。行。 在上面的例子中,我们使用了系数在上面的例子中,我们使用了系数c(1) 到到c(5) 作为未知作为未知参数的名称。更一般的,出现在说明中一个已命名的系数向参数的名称。更
46、一般的,出现在说明中一个已命名的系数向量中的每一个元素都将被视为待估参数。量中的每一个元素都将被视为待估参数。例如创建例如创建2个命名个命名的系数向量:的系数向量: beta(2) sigma(1) 于是可以写出下面的似然说明:于是可以写出下面的似然说明: logL logL1 res=cs- beta(1)- beta(2)*inc var=sigma(1) logl1=log(dnorm(res/sqrt(var)-log(var)/2 由于说明中的已命名的系数向量的所有元素都将被视由于说明中的已命名的系数向量的所有元素都将被视为待估参数,为待估参数,。如果一个参数对似然没有影响,那么在试
47、。如果一个参数对似然没有影响,那么在试图进行参数估计时,将遇到一个奇异错误。图进行参数估计时,将遇到一个奇异错误。 应该注意到除了系数元素外所有的对象在估计过程中应该注意到除了系数元素外所有的对象在估计过程中都将被视为固定的,不可改变的。例如,假定都将被视为固定的,不可改变的。例如,假定omega是工是工作文件中一个已命名的标量作文件中一个已命名的标量(scalar omega),如果将子表如果将子表达式达式var定义如下定义如下: var = omega EViews将不会估计将不会估计omega 。omega的值将被固定在估计的值将被固定在估计的开始的开始值上值上。 logL说明包含了一个
48、或多个能够产生包含似然贡说明包含了一个或多个能够产生包含似然贡献的序列的赋值语句。在执行这些赋值语句的时候,献的序列的赋值语句。在执行这些赋值语句的时候,EViews总是从顶部到底部执行,所以后面计算要用到总是从顶部到底部执行,所以后面计算要用到的表达式应放在前面。的表达式应放在前面。 EViews对整个样本重复地计算每个表达式。对整个样本重复地计算每个表达式。EViews对模型进行重复计算时采用对模型进行重复计算时采用和和两种不同方式,这样就必须指定采用那种方两种不同方式,这样就必须指定采用那种方式,即观测值和方程的执行顺序。式,即观测值和方程的执行顺序。 默认情形下,默认情形下,EView
49、s用观测值顺序来计算模型,此用观测值顺序来计算模型,此种方式是先用第一个观测值来计算所有的赋值语句,接种方式是先用第一个观测值来计算所有的赋值语句,接下来是用第二个观测值来计算所有的赋值语句,如此往下来是用第二个观测值来计算所有的赋值语句,如此往复,直到估计样本中所有观测值都使用过。这是用观测复,直到估计样本中所有观测值都使用过。这是用观测值顺序来计算递归模型的正确顺序,递归模型中每一个值顺序来计算递归模型的正确顺序,递归模型中每一个观测值的似然贡献依赖于前面的观测值,例如观测值的似然贡献依赖于前面的观测值,例如AR模型或模型或ARCH模型。模型。 可以改变计算的顺序,这样可以改变计算的顺序,
50、这样EViews就可以用方程顺序来就可以用方程顺序来计算模型,先用所有的观测值来计算第一个赋值语句,然后计算模型,先用所有的观测值来计算第一个赋值语句,然后用所有的观测值计算第二个赋值语句,如此往复,对说明中用所有的观测值计算第二个赋值语句,如此往复,对说明中每一个赋值语句都用同样方式进行计算。这是用中间序列的每一个赋值语句都用同样方式进行计算。这是用中间序列的总量统计作为后面计算的输入的模型的正确顺序。总量统计作为后面计算的输入的模型的正确顺序。 可以通过在说明中加入一条语句来声明所选择的计算方可以通过在说明中加入一条语句来声明所选择的计算方法。要用方程顺序来计算,仅加一行关键字法。要用方程
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。