楼主: wangmengirl
5696 6

[其他] 求教高手帮忙stata里的loop问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
39 点
帖子
4
精华
0
在线时间
5 小时
注册时间
2010-4-23
最后登录
2011-1-26

楼主
wangmengirl 发表于 2010-4-23 13:48:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
clear
set mem 10m
forvalues i=1(1)1000 {
set obs 500
gen y1=.
gen y2=.
replace y1=0
replace y2=0
matrix m = (0,0)
matrix sd =(sqrt(2),sqrt(2))
drawnorm e1 e2, n(500) means(m) sds(sd)
replace y1=.6*y1[_n-1]+.4*y2[_n-1]+e1 if _n>2
replace y2=.3*y1[_n-1]+.7*y2[_n-1]+e2 if _n>2
regress y1 y2
matrix c=e(b)
svmat c, names(beta)
}
这是我现在写的一个基本程序,里面有些命令实在不知道怎么弄了。计划是要做1000次,得出1000个beta回归值再对这些回归值作样本分布的分析,但是我写这个出来的结果只有最新得到的一个数据。应该要怎么改啊?
拜谢先!
二维码

扫码加我 拉你入群

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

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

关键词:Stata loop tata forvalues forvalue

沙发
wangmengirl 发表于 2010-4-23 13:57:25
哪们好心人给点提示吧,都要崩溃了……

藤椅
sungmoo 发表于 2010-4-23 15:37:03
*是不是要以下结果:
clear all
set mat 1000
mat m=(0,0)
mat sd=(sqrt(2),sqrt(2))
forv i=1/1000 {
clear
set obs 500
g y1=0
g y2=0
drawnorm e1 e2, n(500) means(m) sds(sd)
replace y1=.6*y1[_n-1]+.4*y2[_n-1]+e1 if _n>2
replace y2=.3*y1[_n-1]+.7*y2[_n-1]+e2 if _n>2
reg y1 y2
mat c=(nullmat(c)\e(b))
}
svmat c, names(beta)

板凳
wangmengirl 发表于 2010-4-23 16:45:20
set obs 500
gen y1=.
gen y2=.
replace y1=0
replace y2=0
matrix m = (0,0)
matrix sd =(sqrt(2),sqrt(2))
drawnorm e1 e2, n(500) means(m) sds(sd)
replace y1=.6*y1[_n-1]+.4*y2[_n-1]+e1 if _n>2
replace y2=.3*y1[_n-1]+.7*y2[_n-1]+e2 if _n>2
regress y1 y2
matrix c=e(b)
svmat c, names(beta)
这个命令其实只生成一组beta,但我是想把这个程序运行1000遍生成1000组,这样beta作为变量就有了一个样本,然后我再根据这个样本来做其他分析。可是我死都不知道要怎么运行1000遍,

报纸
sungmoo 发表于 2010-4-23 20:29:46
你想把结果存成什么样?

地板
bbs0805 发表于 2010-4-23 20:47:49
你这不是Monte carlo模拟吗?直接用模拟命令“simulate”就可以了。

7
wangmengirl 发表于 2010-4-24 01:24:20
谢谢各位指点。
我就是在用simulate命令做了,但是昨天晚上都是运行得好好的,今天起来就不行了,老是报错说e(e) not found。 这是怎么回事呢?

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

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