楼主: huangshijun
3698 0

[其他] EViews命令和编程` [推广有奖]

  • 0关注
  • 1粉丝

等待验证会员

本科生

96%

还不是VIP/贵宾

-

威望
0
论坛币
105 个
通用积分
25.1481
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
401 点
帖子
30
精华
0
在线时间
157 小时
注册时间
2015-9-7
最后登录
2021-11-3

楼主
huangshijun 发表于 2015-10-15 17:27:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
CDA就业班http://cda.pinggu.org/jy.html          
                                                         EViews命令和编程  

矩阵运算与循环操作
用户也可以不使用Eviews中内置的命令和函数,而采用矩阵的元素操作和循环来实现对整个矩阵的操作。例如,两个向量的内积,可以通过向量中一个元素单元接一个元素的计算来实现

scalar inprod1 = 0
for !i = 1 to @rows(vec1)
inprod1 = inprod1 + vec1(!i)*vec2(!i)
next

但是,这种方法的计算速度要比采用EViews内置矩阵函数要慢很多:
scalar inprod2 = @inner(vec1,vec2)
所以,只要有可能就应当采用内置的矩阵运算而不采用通过循环实现的方法。矩阵运算比起等价的循环运算总是要快很多。
但是,用户并不能绝对不采用循环运算,有时循环源算是完全不可避免的。例如,假定希望从每个矩阵元素中减去该列的平均数。这类运算还可能用来构造回归估计量的固定效应。首先,考察计算速度慢的,即只使用循环和元素运算的方法:

matrix(2000,10) x = @convert(mygrp1)
scalar xsum
for !i = 1 to @columns(x)
xsum = 0
for !j = 1 to @rows(x)
xsum = xsum+x(!j,!i)
next
xsum = xsum/@rows(x)
for !j = 1 to @rows(x)
x(!j,!i) = x(!j,!i)-xsum
next
next

一共有两层循环:第一层为按X矩阵的列循环的i循环,第二层为两个都是按X矩阵的行循环的j循环。第一个j循环计算当前列中各元素的合计,依据列合计求出列平均数后,再开始第二个j循环。第二个j循环从当前列各个元素中减去该列的平均数,进行所谓的中心化。下面考察比较快的方法,它在从当前列各个元素中减去该列的平均数的计算中采用了Eviews内置的矩阵运算:
matrix x = @convert(mygrp1)
vector(@rows(x)) xmean
for !i = 1 to @columns(x)
xmean= @mean(@columnextract(x,!i))
colplace(x,@columnextract(x,!i)-xmean,!i)
next

从矩阵X中依次抽取各个列,计算出列平均数向量,再用抽取的列向量减去列平均数向量的差向量去置换矩阵X中相应的列。这里采用控制变量!I进行了依次按列的循环,但避免了按行对各个元素进行的一次循环。
........
........
........
                                                                                                   Eviews计量经济学应用培训
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EVIEWS Views Eview view EWS 住宿费用 经济学 培训班 北京 保险

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 15:15