t从1到5
以d进行分组回归(d从1到100),现在想求每一个组里的残差和残差的方差。
下面的代码回归没有问题,会分组进行,但是到了求残差的时候最后只剩下d=100的时候的残差,前面的都不见了。
求大神告知,怎么保留所有d的残差并求他们的方差
forval i=1/5{
sort d
by d:reg t`i' rmrf
predict u`i' if e(sample),r
su u`i'
}
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
夏目贵志 发表于 2015-10-31 05:52 forval i=1/5{ forvalues d=1/100 { reg t`i' rmrf if d==`d'
朱星 发表于 2015-10-31 10:21 非常感谢!但还有一个问题,因为我的d的分组里有些公司的有些日期是没有数据的。如果是你这个代码的话,碰 ...
朱星 发表于 2015-10-31 11:08 关于有些部分没有观测值的问题已经解决了 forval i=1/3{ forvalues d=1/189 {
夏目贵志 发表于 2015-10-31 22:38 只保留s和d还有又出来的方差,然后 duplicates drop 然后用reshape命令转换成需要的格式。具体的根据需 ...
朱星 发表于 2015-11-1 11:03 谢谢谢谢 但是我看了下reshape 没太明白 不知道怎么适用到我这 我要在一行当中分段转置
我现在的情况是只有一行所有企业在所有d里的方差的数据,其他全删了。 就是s1_d1...s1_d189........s1942_d189 总共1942家企业
夏目贵志 发表于 2015-11-1 11:12 只有一行?为什么会只有一行?那有多少列?
朱星 发表于 2015-11-1 13:11 我把其余行都删除了 总有有1942*189列 就是所有公司(1942家)的所有期间(189)的方差
朱星 发表于 2015-11-1 13:14 就是把这一行所有方差当中的每家每家公司抽出来进行转置 最后分别形成每家公司方差的时许列
夏目贵志 发表于 2015-11-2 00:11 可以用个笨办法。 把里面的i j的最大值改成你需要的就好了。
朱星 发表于 2015-11-2 00:35 这个问题解决了 之前写的代码有点笨 后来改了 可以直接输出时序列 但还是非常谢谢你