全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6305 5
2013-01-21
我的程序如下:
program myprog
version 12
syntax varlist
use d:\lshidata        //该数据文件中有四个时间序列fp y m s
local i=1
while `i'<=24{       //对y序列操作,y序列有24个数值
local h=abs(y[`i']+0.03)   
  if `h'<0.1 {        //如果第i 个y值满足这个条件则执行下面的if语句里面的语句
  local j=y[`i']
  local du=(y>`j')
  reg fp y m s if `du'==1   //对满足条件的四个序列回归
  local r1=e(RSS)           //保存残差
  reg fp y m s if `du'==0
  local r2=e(RSS)
  local rr[`i']=`r1'+`r2'}  //用一个数组保存上面两个的残差和
local i=`i'+1
}
sort `rr'      //对数组排序
end

在stata命令窗口中直接输入myprog,运行提示是varlist required
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-21 21:42:44
虽然我不是很懂,但是
local j=y[`i']
local du=(y>`j')
这里有没有问题?y是一串数,j是一个macro变量。du的值怎么确定?
二维码

扫码加我 拉你入群

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

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

2013-1-21 22:16:23
生产对应于y序列的一串0(不满足条件)和1(满足条件)的du值
二维码

扫码加我 拉你入群

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

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

2013-1-21 22:37:45
不太明白你要干什么,但个人认为你完全无需定义program myprog嘛。直接运行:
复制代码
看是否报错及能否得到想要的结果!




二维码

扫码加我 拉你入群

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

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

2013-1-26 19:27:43
楼上的正解。我也搞过这种多余的事。
明白楼主想干什么了。每次根据一个y的值确定一个筛选,符合筛选就分两批来回归。有没有可能在某次回归的时候根本没有observation呢。
二维码

扫码加我 拉你入群

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

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

2013-1-27 10:21:16
是的,我后来认真对照了一下结果是这样的,谢谢你。我已经解决了。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群