EViews命令和编程

上传人:z****2 文档编号:179377134 上传时间:2023-01-01 格式:DOCX 页数:30 大小:81.56KB
收藏 版权申诉 举报 下载
EViews命令和编程_第1页
第1页 / 共30页
EViews命令和编程_第2页
第2页 / 共30页
EViews命令和编程_第3页
第3页 / 共30页
资源描述:

《EViews命令和编程》由会员分享,可在线阅读,更多相关《EViews命令和编程(30页珍藏版)》请在装配图网上搜索。

1、EViews 命令和编程之怎样使用矩阵一、申明矩阵(Declaring a Matrix)二、给矩阵赋值(Assigning Matrix Values)三、矩阵对象间复制数据(Copying Data Bet ween Objec ts)四、矩阵表达式(Matrix Expressions)五、矩阵命令和函数(Matrix Commands and Functions)六、矩阵的图形和统计观察(Mat rix Graph and Stat is tics Views)七、矩阵的输入与输出(Matrix input and output)八、矩阵运算与循环操作 (Matrix Operatio

2、ns versus Loop Operations)九、矩阵对象自动变维(Automatic Resizing of Matrix Objects)、申明矩阵(Declaring a MatrixEViews 提供了直接处理矩阵和向量中数据的工具。使用 EViews 的矩阵 语言去执行哪些观察和过程都不能处理的计算。使用矩阵命令语言可以建立和管理下列对象:系数向量(Coef):在方程、系统、平板和状态空间里使用的列向量矩阵(Matrix):两维数组 行向量(Rowvector):行向量数值常数变量(Scalar):数值常数变量(标量)scalar对称矩阵( Sym) : 对称矩阵(以下三角形式

3、保存)列向量( Vector) : 列向量称以上对象为矩阵对象,事实上其中右一些对象并不是矩阵。以下讨论矩阵对象和矩阵语言。一、申明矩阵(Declaring a Matrix )在使用之前必须首先申明矩阵对象。对各种矩阵类型进行申明的语句, 参见 Command Reference by Object Type。简要地说来,申明语句由对象关键字组成,对象关键字之后的括号是选 项,申明矩阵的维数大小置于括号中。关键字之后既可以只接新建对象 名,也可以接新建对象名和赋值语句。不同的矩阵对象要求不同的维数信息。矩阵要求指定行数和列数。对称矩阵(sym )只需指定一个阶数,它既是行数也是列数。一个向量

4、、行向量和系数向量要求指定元素的个数。数值常数变量(标量)不要求指 定维数大小信息。如果申明矩阵对象时没有提供维数大小信息, EViews 设定对象中只有一个元素。如果申明中没有包含赋值语句, EViews 将以 0 初始化所有的值。例如: matrix(3,3) xdatamatrix(3,10) xdata sym(9) moments vector(11) betas rowvector(5) xob建立一个3x 3的0矩阵对象XDATAl,3x 10的矩阵XDATA, 9x 9的对称 矩阵MOMENTS, 个11x 1的列向量BETAS和一个1x 5的行向量XOB。 所有这些对象都被初

5、始化为 0。改变矩阵对象的大小,可通过重复使用申明语句来实现。如果对一个已 经存在的矩阵对象使用了赋值语句,将按照赋值语句的要求调整大小。 例如:sym(10) bigzmatrix zdatamatrix(10,2) zdatazdata = bigz第一次申明ZDATA只有一个元素,然后再次申明ZDATA是一个10x 2的 矩阵,在最后一个语句中重新申明了 ZDATA的大小,以便它能够接纳10x 10的矩阵对称矩阵BIGZ的值。二、给矩阵赋值( Assigning Matrix Values)有给矩阵元素赋值三种方式:(1)将一些值赋给指定的矩阵元素(元素赋值)(2)用一个数值列表填充矩阵

6、(3)执行一个矩阵赋值语句元素赋值(Element assignment )给矩阵赋值最基本的方法是将一个值赋给矩阵指定行和指定列的一个 元素。简单地键入矩阵名接着在括号中给出行下标和列下标,然后是等号和赋给矩阵单元的一个数值常数(标量)。例如,申明了一个2x 2的矩阵A:matrix(2,2) a这第一个命令建立了一个2x 2的A,并进行了初始化,所以A的元素全为 0。再键入下面两行命令:a(1,1) = 1a(2,1) = 4于是得到:fl 0)* =F OJ通过程序中的循环语句可给大量的矩阵元素赋值:vector(10) y matrix (10,10) x for !i = 1 to

7、10 y(!i) = !ifor !j = 1 to 10 x(!i,!j) = !i + !j nextnext下面介绍的填充过程,也是使用循环进行赋值的。填充赋值(Fill assignment)给矩阵元素赋值的第二种方法是,使用填充f订1)过程,即将一系列数值按指定的顺序去填充矩阵的每一个元素。根据缺省设置,填充过程是一列一列地进行填充,但是也可改变这种填充过程。填充赋值的命令格式:矩阵对象名接句号,句号后接填充过程名 fill,再接由逗号分隔的数值列表。下面是建立两个矩阵对象的例:vector(3) v v1.fill 0.1, 0.2, 0.3matrix(2,4) x x.fill

8、 1, 2, 3, 4, 5, 6, 7, 8o.frl 35 丁0.2X =2 46 8J注意填充过程的默认填充顺序是按列填充。 如果下面语句替代上面最后一行:x.fill(b=r) 1,2,3,4,5,6,7,8 选项 b=r 的意思是 by row (按行) 执行后,得到的 X 矩阵对象是:fl 2 3 4X =5 6 7 8)在有些情形下,企图用一组数值对矩阵元素进行重复地赋值。为此,采用选项 1 用数值列表重复循环填充直至矩阵被填满。于是, matrix(3,3) y y.fill(l) 1, 0, -1 建立矩阵对象 Y 是:1 1 11r= o o o1 -1 _匚矩阵赋值语句(

9、Matrix assignment)使用矩阵赋值语句可以将一个矩阵对象拷贝另一个矩阵里。矩阵赋值语句的命令格式:目标矩阵名=矩阵表达式矩阵表达式或者是一个数值常数,或者是一个矩阵,或者是一个返回矩阵对象的表达式。EViews 执行矩阵赋值语句赋值时遵循的规则,随着矩阵赋值语句表达式中矩阵的类型不同而有所不同。赋值号右端是数值常数(标量)( Scalar values on the right-hand side)如果一个数值常数(标量)出现在等号的右边,那么矩阵的每一个元素 就被赋给了这个给定的数值。例如:matrix(5,8) first scalar secondvec(10) third

10、first = 5second = c(2)third = first(3,5)由于在赋值语句中允许对矩阵进行初始化,所以可以将申明语句与赋值语句结合起来使用。matrix(5,8) first = 5scalar second = c(2)vec(10) third = first(3,5)赋值号右端与左端有相同的对象类型(Same object type onright-hand side)如果右边的源对象是一个矩阵或一个向量,且与左边的目标对象具有相同的类型,那么左边的目标对象将被重新定义维数使其与右边源对象的维数相同,以便把源对象中所有的元素拷贝到目标对象中。例如: matrix(10

11、,2) zdata = 5 matrix ydata = zdata matrix(10,10) xdata = ydata申明ZDATA为10x 2的矩阵,每个矩阵元素被5填充。YDATA自动地调 整大小为10x 2,所有元素被ZDATA的元素填充。注意,即使XDATA通过申明,是一个10x 10的矩阵,但是通过右端的 赋值,XDATA却成了一个元素为5的10x 2的矩阵。因为上面的申明语 句 matrix(10,10) xdata = ydata 等价于下面两行命令:matrix(10,10) xdataxdata = ydata第一个申明矩阵XDATA是10x 10的,然后当它被YDAT

12、A填充时,自动 调整为 10x 2 的维数。在更广泛的背景下进行赋值语句的讨论,会涉及到对象间的转换。一些 情况下,转换是自动进行的,另一些情况下EViews为执行转换提供了 一些辅助的工具。三、矩阵对象间复制数据( Copying Data Between Objects)除了前节中讨论的基本赋值语句之外, EViews 提供大量的工具,以便复 制数据到矩阵或者从矩阵将数据复制出来。有时,企图在不同类型的矩阵对象之间移动数据。例如,希望从向量中 获取数据,并把它至于一个矩阵中。EViews有许多内置的规则,保证这 类转换自动进行。有时,又企图在矩阵对象与EViews的序列或组之间移动数据。E

13、views 中有一系列独立的工具允许在类型不同的对象间进行数据转换。从矩阵对象复制数据( Copying data from matrix objects) 使用赋值语句,数据可以在不同类型的矩阵对象之间进行传递。如果可 能的话, EViews 将调整目标对象的大小,以便目标对象含有与等号右边 源对象有相同信息。处理 Y=X 表达式的基本规则综述如下:(1)Y 的类型保持不变。(2)目标对象Y (如果可能)将采取源对象X的维数;否则EViews将 发出出错。于是,将向量赋给一个矩阵,将调整矩阵的大小使矩阵的维 数大小与向量相同;但是将一个矩阵赋值给一个向量则将产生错误。( 3)将 X 中的数据

14、将复制到 Y 中。对以上规则的特别例外:(1)如果X是一个数值常数(标量),那么Y保持原来的大小并被X 的值填充。(2)如果X和Y都是列向量或都是行向量,那么Y将变成与X 一样的类型。参见矩阵对象自动调整大小( Automatic Resizing of Matrix Objects)总结表中矩阵对象标准转换规则。下面是一些解释矩阵赋值的简单的例子:vector(3) xx(1) = 1x(2) = 2x(3) = 3vector y = xmatrix z = xY是一个3个元素的列向量,被赋给了与X相同的维数和数值。Z是一个31的矩阵,包含了与X 一样的内容:Z(l,l)=l, Z(2,l

15、)=2,Z(3,l)=3。EViews自动调整Z的大它与X的维数相一致。 自动调整大小的例子:vector(7) y = 2 scalar value = 4matrix(10,10) w = value matrix(2,3) x = 1 rowvector(10) t = 100 x = tW是10X 10数值等于4的矩阵,但是它后来被重新设置为7 1数值等 于2的矩阵。X最后是1x 10数值等于100的矩阵。类似地,考察命令:vector(7) y = 2rowvector(12) z = 3coef(20) betay = zz = beta命令执行完毕以后, Y 是长度为 12 的行

16、向量,每个元素的数值等于原始 的行向量 Z 的数值 3。原始的行向量 Z 最后变为长度为 20 的列向量,包 含的数值是系数向量 BETA 的原始值 0。在一些情况下 EViews 不能执行给定的赋值操作,因为调整大小的操作 没有定义。例如,假设 X 是 2 2 的矩阵,赋值语句如下:vector(7) y = x将得到一个错误。EViews不能够将一个向量转变为一个矩阵,因此没有 办法将矩阵X的4个元素赋给向量Y。其它一些无效赋值语句的例子包 括将矩阵的值赋给一个数值常数变量(标量),或者将对称矩阵的值赋 给向量。也就是 Eviews 不能将右边的高维矩阵对象经过转换赋给左边 的、低维的矩阵

17、对象。从矩阵对象中复制部分数据(Copying data from parts of matrix objects)除了对象间标准的数据转换规则之外, EViews 还提供了一些函数从矩阵 对象中抽取一部分进行赋值。注意,调用这些函数要引用矩阵对象,有 可能还要引用一些参数,这些函数将返回一个可用于赋值的矩阵对象。用于矩阵对象转换的命令和函数详见帮助文件中的 Matrix Command andFunc tion Reference。这里,通过例题阐述一些典型的操作。首先,假设从矩阵拷贝数据到向量。下面从Ml和SYM1中拷贝数据到向 量 V1 、V2、V3 和 V4 中。matrix(10,

18、10) m1 sym(10) sym1 vector v1 = vec(m1) vector v2 = columnextract(m1,3) vector v3 = rowextract(m1,4) vector v4 = columnextract(sym1,5)这里,vec函数建立了 100元素的列向量,它是矩阵Ml 列堆在另一 列之上这样堆砌形成的。V2是10个元素的列向量,抽取Ml的第3列构成。V3是10个元素的行向量,抽取Ml第4行构成。vec (矩阵各 列堆砌形成列向量)、rowextract (从矩阵中抽取一行)和 columnextract (从矩阵中抽取一列)函数也可以使用

19、于对称矩阵对象 上。V4是10个元素的列向量,它是抽取SYM1第5列构成的。使用subextract (从矩阵中抽取一个子矩阵)函数也可从一个矩阵拷贝部分数据到另一个维数比较小的矩阵中。例如:matrix(20,20) m1=1matrix m2 = subextract(m1,5,5,10,7) matrix m3 = subextract(m1,5,10)matrix m4 = m1 矩阵M2是6x 3的矩阵,是Ml的子矩阵,以Ml矩阵包括5行5列为左 上角、以10行7列为右下角。M3是抽取M15行10列到Ml的最后一个 元素(10行10列)构成的16x 11的矩阵。subextract函

20、数,如果只 指定了一个端点(左上角端点),那么默认最后一个单元为右下角端点。 矩阵M4是抽取M1全部元素构成的矩阵。M2和M3都是比M1小的子矩阵。使用 colplace、 rowplace 和 matplace 命令也能从一个矩阵拷贝数据 到另一个矩阵。例如:matrix(100,5) m1 = 0matrix(100,2) m2 = 1vector(100) v1 = 3rowvector(100) v2 = 4matplace(m1,m2,1,3)colplace(m1,v1,3) rowplace(m1,v2,80) mat place (矩阵置放)命令是将引用的第二个矩阵在指定位置放

21、置到第 一个引用的矩阵中。命令matplace(ml,m2,l,3)将M2放置到Ml中,m2 的左上角放置到ml的1行3列上。colplace(m1,v1,3)命令将V1放置 到Ml的第3列上rowplace(m1,v2,80)命令将V2放置到Ml的第80行。 Colplace 称为列放置命令, rowplace 称为行放置命令。在矩阵对象和其它对象之间拷贝数据(Copying data between matrix objects and other objects )上一节讨论了在矩阵之间,矩阵与向量之间,或矩阵与数值常数变量(标 量)之间的数据拷贝技术。下面讨论矩阵与其它对象,例如矩阵与

22、序列 或组之间的数据拷贝技术。注意原始序列或组对象与矩阵对象之间存在两大主要的差别:第一,涉及序列或组的操作必须使用当前工作文件样本信息,而矩阵操 作则不必参照工作文件当前样本区间;第二,在两类对象之间如何处理缺失信息(NA)上存在很大差别。直接赋值 (Direct Assignment )直接赋值是从序列或组对象拷贝数据到矩阵对象中最容易的方法。目标矩阵置于等号的左边,进行转换的序列或组放在等号的右边。如果把序列放在右边,EViews形成的向量中只包括当前样本的观察值。如果把组放在等号的右边, EViews 形成一个矩阵,也只包含当前样本观 察值。虽然很简单,但是这种方法存在两个基本的约束条

23、件。第一, EViews只拷贝当前样本的观察值;第二,如果在序列或者组中的序列存在缺失数据,这些缺失数据将会放置到矩阵中去。于是,如果样本包含了 20 个观察值,但是序列或组包含了缺失数据,那么向量或矩阵的维数将少 于 20。下面要介绍的 STOMNA 则可以将 NA 保留到矩阵中。例如:smpl 1963:3 1993:6fetch hsf gmpyqgroup mygrp hsf gmpyqvector xvec = gmpyqmatrix xmat = mygrp这些语句建立了向量 XVEC 和具有两列的 XMAT 矩阵。它们分别包含了 1963:3 1993:6 序列或组中没有缺失数据

24、的观察值。注意,如果 GMPYQ 中缺失了 1970:01 的观察值, HSF 中缺失了 1980:01 的观察值,那么这 两个序列中有两个观察值被拒绝于矩阵 XMAT 之外。执行矩阵赋值时,引用序列的元素就如同引用向量的元素一样,即把给 定的下标数值置于名称后面的括号中。下标数值I引用的是从工作文件 范围开始序列的第I个元素。例如,年度工作文件的范围是1961到1980, 那么表达式GNP (6)引用的是1966年GNP的值。这些序列元素表达式 可以用来将指定序列的序列值赋给矩阵元素,或者将矩阵的值赋给指定 的序列元素。例如,matrix(5,10) xseries yser = nrndx

25、(1,1) = yser(4)yser(5) = x(2,3)yser(6) = 4000.2将YSER的第4个值赋给X(1,1),再用X(2,3)的值和数值常数4000.2 分别赋给YSER的第5个和第6个元素。在矩阵赋值运算中,允许引用序列元素如同引用向量元素一样,但是,一般说来,不能用序列去替代向量。如果使用序列去替代向量,大多数 向量和矩阵运算会出现错误。例如,我们不能用一个序列名去执行一个 行放置(rowplace)命令。必须注意,当我们不是进行矩阵赋值时,序列名后括号中的数值指的是 对整个序列进行滞后/领先的运算。因此,在在生成序列,或在方程、系统和模型的设定中,GNP(6)代表的

26、是领先6期的一个序列。若要要引 用GNP序列指定的元素,则应当采用elem函数。使用 convert 进行复制(Copy using convert)convert 函数接受一个序列或组对象, convert 可有样本选项,该函 数返回一个向量或矩阵。如果没有指明样本, convert 就采用工作文件 的范围作为序列或组转换为矩阵对象的范围。样本决定了哪些序列元素 将包含在矩阵对象中。例如,smpl 61 90group groupx inv gdp m1vector v = convert(gdp)matrix x = convert(groupx)X是一个30x 3的矩阵。第1列包含INV

27、序列的数据,第2列包含GDP, 第 3 列包含 M1 的数据。正如直接赋值语句一样, convert 函数也拒绝 转换序列或组中任一序列中的缺失数据。如果在上面这个例题中, INV 在 1970 和 1980 含有缺省数据,那么向量 V 含有 30 个元素,矩阵 X 则 是 28x 3 的矩阵。如果在后续运算中要求 V 的 行数与 X 的行数相等这将导致出错。采用convert函数比采用直接赋值有两个主要的优点: 第一,convert是一个函数,可以出现在矩阵表达式中;第二,可选形式参数指定哪个范围的样本参与转换。例如,sample s1.set 50 90matrix x = convert

28、(grp,s1)sym y = inverse(inner(convert(grp,s1)采用样本对象 S1 设置的范围进行转换。使用 stom、stomna 和 mtos 复制(Copy using stom, stomna, and mtos)EViews还提供了三个序列与矩阵之间直接进行数据转换的命令,而且转 换时可以既控制样本范围也可以处理NA数据。stom (Series TO Matrix)接受一个序列或一个矩阵对象并拷贝数据到 一个向量或矩阵,既可以采用当前工作文件范围也可以指定样本范围进 行这种转换。如同直接赋值一样,拒绝序列中的或组中任一序列的缺失 数据参与转换。例如:sam

29、ple smpl1.set 1950 1995 smpl 61 90group group1 gnp gdp moneyvector(46) vec1matrix(3,30) mat1stom(gdp,vec1,smpl1)stom(group1,mat1)将stom与convert相比较,stom是一个命令不能包含在矩阵表达式中,与 convert 更不同的是目标向量或矩阵必须是已经存在而且具有适当 的维数。stomna (Series TO Matrix with NAs) 与 stom 的操作相同,不同之处 在于 stomna 允许缺失数据参与转换。序列相关样本的元素直接照原样 地复制到

30、目标向量或矩阵中。于是,smpl 1951 2005vector(55) gvector stom(gdp,gvector) 总是建立 55 个元素的 GVECTOR 向量,包含 1951 到 2005 年的 GDP 数据, 包括了 NA 数据。mtos (Matrix TO Series) 接受一个矩阵或向量拷贝它们的数据到一个 已经存在的序列或组对象中,拷贝被时可采用当前样本或指定样本。例 如,mtos(mat1,group1)mtos(vec1,resid)mtos(mat2,group1,smpl1)如同 stom 一样,要求目标序列或组对象已经存在,由样本范围给定的 目标维数应与源向

31、量或矩阵的维数相匹配。、矩阵表达式( Matrix Expressions)矩阵表达式指的是采用数学运算符或关系运算符、函数和括号的,包含了矩阵对象的表达式。下面将更详细地讨论矩阵函数,在一些例题中将验证一些相关的结论。例如: inner(convert(grp,s1) mat1*vec1 inverse(mat1+mat2)*vec1 mat1 mat2EViews 在计算表达式值时遵循下列优先等级的规则: 可以采用多对括号来明确矩阵表达式中的优先等级。 如果不采用括号,遵循以下优先等级进行计算:1. 反号运算符和函数2. 乘、除运算符3. 加、减运算符4. 比较运算符: =, , =, ,

32、 例如,inverse(mat1+mat2)+inverse(mat3+mat4) vec1*inverse(mat1+mat2)*transpose(vec1)在第一个表达式中,矩阵MAT1和MAT2相加后求逆;矩阵MAT3和MAT4相加后求逆;最后两个逆矩阵相加。在第二个表达式中,矩阵 MAT1 和MAT2 相加后求逆后,利用结果计算 VEC1 的二次型。矩阵运算 (Matrix Operators)EViews 为矩阵对象提供了标准数学运算。取反符号(-)是一元运算符 取反符号(-)改变矩阵对象中每一个元素的符号,得到一个具有相同维 数的矩阵或向量。例如:matrix jneg = -j

33、pos以下是二元运算符:加 (+)将两个类型和维数都相同的相加,得到具有相同类型和维数大小的矩 阵。例如:matrix(3,4) amatrix(3,4) bmatrix sum = a + b可以将一个方阵与维数相同的对称阵(sym )相加。对称阵的上三角等 于下三角。加一个数值常数变量(标量)到矩阵对象,即将数值常数与 矩阵或向量的每一个元素相加。减 (-) 减的结果与加的结果相同。例如:matrix(3,4) amatrix(3,4) bmatrix dif = a - b从一个矩阵对象中减一个数值常数变量(标量),即从矩阵对象的每个元素中减去这个数值常数变量(标量)。乘(*)可以将两个

34、矩阵对象相乘,第一个矩阵的列数应等于第二个矩阵的行数。例如:matrix(5,9) amatrix(9,22) bmatrix prod = a * b 这个例子中,乘积结果 PROD 是一个5 行 22列的矩阵。 进行相乘运算的两个之一或者两个都可以是对称阵。注意,两个对称阵 相乘的结果是一个矩阵,但不一定是对称阵。inner函数(内积函数) 得到的是一个方阵与自身转置相乘的结果棗一定是对称阵。一个矩阵或对称阵左乘一个向量,矩阵的列数应与向量元素的个数相 等,相乘结果得到一个向量,向量的维数与矩阵的行数相等。例如:matrix(5,9) matvector(9) vecvector res

35、= mat * vec在这个例子中, RES 有 5 个元素。一个行向量左乘一个矩阵或对称阵(条件:行向量元素个数等于矩阵的 行数),得到一个行向量,维数等于原矩阵的列数。例如:rowvector rresmatrix(5,9) matrowvector(5) rowrres = row * mat 在这个例子中。 RRES 有 9 个元素。 一个矩阵对象被标量乘。原矩阵的每一个元素与这个数值常数变量(标量)相乘。结果是一个与原矩阵类型和维数相同的矩阵。数值常数变量(标量)可左乘矩阵也可右乘矩阵。例如:matrix prod = 3.14159*origmatrix xxx = d_mat*7

36、除(/)一个矩阵除以一个数值常数变量(标量)。例如:matrix z = orig/3矩阵对象ORIGD的每一个元素被3除。比较运算符(=, , =, , =, )两个相同类型和相同维数的矩阵可以使用比较运算符对它们进行比较。 比较结果是一个逻辑值。每个相应的元素配对进行比较检验,如果任一 对检验失败,那么返回0或false;否则返回1或true。例如:if result value thenrun crect endif 比较结果有可能是:第一个矩阵不大于,不小于,不等于第二个矩阵。 例如:vector(2) v1vector(2) v2v1(1) = 1v1(2) = 2v2(1) = 2

37、v2(2) = 1因为VI的第一个元素小于V2的第一个元素,VI不大于V2。又因为VI的第二个元素大于V2的第二个元素,V1不小于V2。所以,两个向量是不相等的。五、矩阵命令和函数(Matrix Commands and Functions)EViews 提供了大量的处理矩阵对象内容的命令和函数。这些命令和函数 粗略地分为 4 个大类:1. 常用命令和函数(Utility Commands and Functions)2. 矩阵代数函数(Mat rix Algebra Func tions)3. 描述统计量函数(Descrip tive Statistics Func tio ns)4. 矩阵

38、元素函数(Element Functions) 常用命令和函数为建立矩阵、管理矩阵和给矩阵赋值提供了支持。已经介绍过convert函数和stom命令,它们都是从序列或组对象中将数据 转换到向量或矩阵的。矩阵代数函数允许进行普通的矩阵代数操作和计算。可以使用这些内置的函数去计算特征根(eigenvalues)、特征向量(eigenvectors ) 和矩阵行列式的值(de termina nt s of ma trices),去求矩阵的逆矩阵, 去求解线性方程组和执行奇异值的分解。描述统计量函数计算矩阵对象数据的综合统计量。可以计算矩阵中所有 元素的平均数、中位数、最大值、最小值和方差。矩阵元素

39、函数允许建立一个新矩阵,新矩阵的元素是另一个矩阵每一个元素的函数值。在序列表达式中有效的大多数函数都可以应用与矩阵对 象。例如,计算矩阵每个元素的指数值或对数值,或向量每个元素的累 计正态分布函数值。函数与命令(Funct ions versus Commands )一般说来,函数总是接受一个形式变量,返回一个结果。形式变量就是 调用函数让函数返回函数值的自变量。函数容易识别,函数名以符号 打头。调用函数有两种基本的方法: 第一,将返回结果赋给 EViews 对象。这些对象然后可用于其它 EViews表达式中,如果在后续计算中要运用这个结果的话。例如,matrix y = transpose(

40、x)将矩阵X的转置传递给矩阵Y。因为Y是一个标准的EViews矩阵,它可 以用在所有常见的表达式中。第二,将函数作为矩阵表达式的一部分。因为函数返回的结果是立等可 用的,如果在将来的使用中也不会再用到它们,那么就没有必要赋给一 个命名对象,而是将函数作为表达式的一部分。例如,这个命令scalar z = vec1*inverse(v1+v2)*transpose(vec1)使用了函数inverse和函数transpose的结果来构造申明表达式,并 将表达式的值赋给了 Z。在后续计算中这些表达式里的函数结果是不可 用的。作为对比,一个命令接受对象名和表达式作为形式变量,并对命名对象 进行操作。但

41、是,命令不返回值。同时,命令也不以字符为前导,且 必须在一行中独立地表示出来,而不是作为矩阵表达式的一部分。例如, 为了将序列X传递到向量VI,应当键入:stom(x,v1) 因为命令不返回任何值,所以命令不能在矩阵表达式中使用。NA 的处理(NA Handling)如上所述,在从序列或组对象传递数据到矩阵对象的大多数方法中将自 动的抽掉包含了缺失数据及其对应的其他观察值。似乎在处理矩阵数据 不会遇到缺省数据 NA 的麻烦。事实上,矩阵数据处理过程中存在遇到 要处理包含了缺失数据的矩阵的可能性。例如,使用 stomna 命令可以屏避自动抽掉 NA 数据,将序列中的 NA 传 递给矩阵。此外,一

42、些元素操作可将缺失数据 NA 作为标准矩阵运算的 生成结果。例如,使用log函数对每一个矩阵元素取对数,对哪些含有 非正数的元素log函数将生成缺失数据NA。EViews 处理包含 NA 数据的矩阵时遵循两条简要的规则:(1)对于所有的运算、命令和函数,除了描述统计量函数, EViews 使 用整个矩阵对象进行操作,按要求对 NA 进行处理。(2)对于描述统计量, Eviews 执行描述统计量计算时会自动地抽掉 NA。 这条规则的意义如下:矩阵运算在处理缺失数据NA时会在适当的位置生成NA。将两个含有NA 的矩阵相加,将得到一个在对应单元含有 NA 的矩阵。含有 NA 的两个矩 阵相乘得到在对

43、应行和对应列含有 NA 的矩阵。所有矩阵代数函数和命令在处理缺失数据NA时将生成NA,因为对于缺 失数据NA,这些运算是未定义的。例如,含有NA矩阵的Cholesky因子 分解也将含有 NA。所有常用函数和命令在处理缺失数据NA时将照常进行。因为他们把NA 看作与任何其它数值一样。例如,采用 colplace 拷贝向量的内容到矩 阵中,将把包括NA在内的内容放置到目标矩阵中。所有矩阵元素函数在处理缺失数据NA时将在适当的位置繁殖NA。对矩 阵取绝对值,那么将得到这样一个矩阵,在原非缺失数据的单元得到原 数据的绝对值,在原缺失值单元得到 NA。描述统计量函数在处理缺失数据NA时总是基于矩阵非缺失

44、数据的一个 子集进行计算的。因此,采用obs函数就可求出有多少观察值参与了 描述统计量的计算。六、矩阵的图形和统计观察( Matrix Graph and Statistics Views)除了数值常数变量(标量)而外的所有矩阵对象都有窗口和观察。例如, 可以显示105矩阵Z的每一列的线形图或柱形图:z.line z.bar(p) 矩阵的每一列对应矩阵的行编号画出线性趋势图和柱形图。此外,还可对矩阵的每一列计算描述统计量,以及列间的相关系数矩阵 和协方差矩阵:z.statsz.corz.covEViews 按列执行非共同数据删除原则(即各列不因其他列存在缺失而删 除相应位置的观察值,而是各自删除缺失数据),所以每列组统计量是 按照该列最大可能观察值集合计算的。显示和打印这些观察的命令格式参见: Command Reference by ObjectType。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!