楼主: primmxz
37980 33

[时间序列问题] stata去时间趋势的命令? [推广有奖]

学术权威

0%

还不是VIP/贵宾

-

威望
2
论坛币
-60534 个
通用积分
153.3664
学术水平
1123 点
热心指数
1443 点
信用等级
900 点
经验
127646 点
帖子
4444
精华
0
在线时间
2253 小时
注册时间
2012-3-17
最后登录
2021-4-30

初级热心勋章 中级热心勋章 高级热心勋章 初级信用勋章 中级信用勋章 特级热心勋章

30论坛币

对于仅仅存在时间趋势的变量,则使用对时间进行回归消除时间趋势,即去趋势。

请问有没有现成的stata命令?


最佳答案

xingxf 查看完整内容

你说的是detrend,具体做法很简单,第一步以你的dependent variable对时间变量t进行回归,第二步predict这个变量的residual。Stata命令如下: reg y t predict y_detrended, resid 生成的y_detrended就是你要的
关键词:Stata tata 时间趋势 stata命令 请问有没有

本帖被以下文库推荐

沙发
xingxf 发表于 2013-9-7 23:42:22 |只看作者 |坛友微信交流群
你说的是detrend,具体做法很简单,第一步以你的dependent variable对时间变量t进行回归,第二步predict这个变量的residual。Stata命令如下:

reg y t
predict y_detrended, resid

生成的y_detrended就是你要的
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
crystal8832 + 10 + 10 + 1 + 1 观点有启发
primmxz + 100 + 3 热心帮助其他会员
cactus90 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 110  论坛币 + 10  学术水平 + 5  热心指数 + 2  信用等级 + 1   查看全部评分

使用道具

藤椅
emilychou 发表于 2013-9-10 02:26:59 |只看作者 |坛友微信交流群
xingxf 发表于 2013-9-7 23:42
你说的是detrend,具体做法很简单,第一步以你的dependent variable对时间变量t进行回归,第二步predict这个 ...
学到一招。
这个是不是和加入trend dummy效果一样?
[fly]ilikeuandulikeme[/fly]

使用道具

板凳
xingxf 发表于 2013-9-10 08:05:30 |只看作者 |坛友微信交流群
emilychou 发表于 2013-9-10 02:26
学到一招。
这个是不是和加入trend dummy效果一样?
没太明白你的问题,trend不是dummy啊,dummy是一个0,1变量,而trend是系数乘以t。

使用道具

报纸
emilychou 发表于 2013-9-11 16:17:05 |只看作者 |坛友微信交流群
xingxf 发表于 2013-9-10 08:05
没太明白你的问题,trend不是dummy啊,dummy是一个0,1变量,而trend是系数乘以t。
没说清楚,dummy不一定只是0/1,那只是dummy的一种吧。
我之前去trend一直用加入一个 trend项,gen trend=_n
应该是一个效果。。
[fly]ilikeuandulikeme[/fly]

使用道具

地板
xingxf 发表于 2013-9-11 18:31:03 |只看作者 |坛友微信交流群
emilychou 发表于 2013-9-11 16:17
没说清楚,dummy不一定只是0/1,那只是dummy的一种吧。
我之前去trend一直用加入一个 trend项,gen tren ...
不好意思,你的计算方法我认为是不正确的。
一般说dummy,就是指一个binary变量,取值0,1。至于你说的_n,我们肯定不能称其为dummy。
另外,加入trend,trend就是指系数乘以时间变量t,你做的_n,我认为是不正确的。
另外,detrend就是指对trend回归,得到residual,你那种做法在定义上本身就是不正确的,在最终结果上必然是不一样的。

使用道具

7
xjtuluo 发表于 2013-9-12 20:41:49 |只看作者 |坛友微信交流群
多谢Xingxf,学到一招久违了的去时间效应处理方法,早两年自个想了很久也没开窍

使用道具

8
蓝色 发表于 2013-9-13 00:04:01 |只看作者 |坛友微信交流群
xingxf 发表于 2013-9-11 18:31
不好意思,你的计算方法我认为是不正确的。
一般说dummy,就是指一个binary变量,取值0,1。至于你说的_ ...
webuse sunspot,clear
gen trend=_n

list  in 1/10

reg spot time
predict e1,r
est store ols1

reg spot trend
predict e2,r
est store ols2


list spot time trend e1 e2 in 1/10

est tab ols1 ols2

使用道具

9
蓝色 发表于 2013-9-13 00:05:22 |只看作者 |坛友微信交流群
. webuse sunspot,clear
(TIMESLAB: Wolfer sunspot data)

. gen trend=_n

.
. list  in 1/10

     +---------------------+
     | spot   time   trend |
     |---------------------|
  1. | 80.9   1749       1 |
  2. | 83.4   1750       2 |
  3. | 47.7   1751       3 |
  4. | 47.8   1752       4 |
  5. | 30.7   1753       5 |
     |---------------------|
  6. | 12.2   1754       6 |
  7. |  9.6   1755       7 |
  8. | 10.2   1756       8 |
  9. | 32.4   1757       9 |
10. | 47.6   1758      10 |
     +---------------------+

.
. reg spot time

      Source |       SS       df       MS              Number of obs =     215
-------------+------------------------------           F(  1,   213) =    2.28
       Model |  3527.57557     1  3527.57557           Prob > F      =  0.1325
    Residual |  329410.313   213  1546.52729           R-squared     =  0.0106
-------------+------------------------------           Adj R-squared =  0.0060
       Total |  332937.888   214  1555.78452           Root MSE      =  39.326

------------------------------------------------------------------------------
        spot |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        time |   .0652643   .0432132     1.51   0.132     -.019916    .1504446
       _cons |  -71.92639   80.24853    -0.90   0.371    -230.1094    86.25662
------------------------------------------------------------------------------

. predict e1,r

. est store ols1

.
. reg spot trend

      Source |       SS       df       MS              Number of obs =     215
-------------+------------------------------           F(  1,   213) =    2.28
       Model |  3527.57557     1  3527.57557           Prob > F      =  0.1325
    Residual |  329410.313   213  1546.52729           R-squared     =  0.0106
-------------+------------------------------           Adj R-squared =  0.0060
       Total |  332937.888   214  1555.78452           Root MSE      =  39.326

------------------------------------------------------------------------------
        spot |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       trend |   .0652643   .0432132     1.51   0.132     -.019916    .1504446
       _cons |   42.15564   5.382776     7.83   0.000     31.54531    52.76597
------------------------------------------------------------------------------

. predict e2,r

. est store ols2

.
.

. list spot time trend e1 e2 in 1/10

     +---------------------------------------------+
     | spot   time   trend          e1          e2 |
     |---------------------------------------------|
  1. | 80.9   1749       1     38.6791     38.6791 |
  2. | 83.4   1750       2    41.11383    41.11383 |
  3. | 47.7   1751       3    5.348568    5.348568 |
  4. | 47.8   1752       4    5.383302    5.383302 |
  5. | 30.7   1753       5   -11.78196   -11.78196 |
     |---------------------------------------------|
  6. | 12.2   1754       6   -30.34723   -30.34723 |
  7. |  9.6   1755       7   -33.01249   -33.01249 |
  8. | 10.2   1756       8   -32.47776   -32.47776 |
  9. | 32.4   1757       9   -10.34302   -10.34302 |
10. | 47.6   1758      10    4.791715    4.791715 |
     +---------------------------------------------+


.
. est tab ols1 ols2

----------------------------------------
    Variable |    ols1         ols2     
-------------+--------------------------
        time |  .06526432               
       trend |               .06526432  
       _cons | -71.926385     42.15564  
----------------------------------------

使用道具

10
蓝色 发表于 2013-9-13 00:08:11 |只看作者 |坛友微信交流群
讲那么多不如找个例子试试就知道结果了。

上面的例子可以看出

1、是直接用time还是用产生的trend,这两个变量的系数都是一样的
2、两个剔除时间趋势的回归只是截距项有差别
3、预测残差,两个残差也没有差别
y= a              +b*time
y=(a+b*1748) +b*(time-1748)     *加入起始年份是1749,那么time-1748=trend,是一个从1开始的序列
y=(a+b*1748) +b*trend
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
crystal8832 + 30 + 30 + 1 + 1 + 1 观点有启发
zhangibt + 40 精彩帖子

总评分: 经验 + 70  论坛币 + 30  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 21:37