我有一个数据集,其中包含3个股票的三个时间序列观察值,以及每个股票的变量r和v。我的数据以宽泛的形式组织,即我有r1
,r2
,r3
和v1
,v2
,v3
,时间索引t
。我需要使用循环(不是statsby
/其他长格式解决方案)来运行三个回归,即r1 v1
,r2 v2
和r3 v3
。到目前为止,我只能编写以下内容:
tsset t
foreach r of varlist r1 r2 r3 {
foreach v of varlist v1 v2 v3 {
reg `r' `v'
}
}
这显然会产生9次回归,其中只需要3次。如何简化此循环以仅运行我需要的回归?
答案 0 :(得分:2)
这是一个循环,所以不要编程二。
forval j = 1/3 {
reg r`j' v`j'
}
诀窍是看看有什么变化:它是后缀1 2 3
。每次循环都需要r
和v
,因此可以作为常量连接到代码中。