楼主: shemleung
69168 30

[一般统计问题] 继续请教用STATA进行F检验的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:64份资源

副教授

40%

还不是VIP/贵宾

-

威望
0
论坛币
3584 个
通用积分
0.1200
学术水平
8 点
热心指数
15 点
信用等级
1 点
经验
3168 点
帖子
223
精华
0
在线时间
1358 小时
注册时间
2007-9-22
最后登录
2014-11-12

楼主
shemleung 发表于 2009-6-8 00:31:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
之前发过帖子了,版主也给了认真回复,无奈我比较笨,在STATA上搞了半天还是没弄明白,特重发一贴问一下吧。若版主或其它人能够给我一个即使联系方式如MSN,我将不胜感激!
说得具体点吧。我想利用资本市场直线做回归:E(r)=a+b*sigma+e。我假设发生了某一事件可能使资本市场直线发生偏移,即由E1(r)=a1+b1*sigma1+e偏移到E2(r)=a2+b2*sigma2+e。现在我需要通过数据检验资本市场直线是否确实发生了偏移,所以需要同时检验事件发生前后资本市场直线的截距a和回归系数(斜率)b,即假设性检验[a1, b1]=[a2, b2]是否成立。我提取了如下数据(原有数据要比这个长很多,为了方便我只提取了20组数据,即是20家公司在事件发生前后股票收益的均值和标准差)。
高人可否明确指教一下在STATA上的命令是什么呢?我STATA是菜鸟。万分感谢!

sigma1sigma2E1(r)E2( r)

0.016056

0.017374

0.001579

1.4E-06

0.009551

0.008755

0.001689

-0.00049

0.012657

0.011291

-0.00108

0.000923

0.016071

0.018462

0.000639

0.001282

0.232541

0.010113

-0.01675

7.83E-06

0.008832

0.010759

0.000445

0.000833

0.014518

0.022337

0.000838

-0.00044

0.01585

0.01869

-0.00178

0.00019

0.011209

0.009765

-0.00032

0.000737

0.020772

0.021834

0.002838

0.001621

0.014098

0.017234

0.000662

0.0015

0.015495

0.017827

0.000976

0.001132

0.008721

0.011691

0.001557

0.001728

0.019099

0.020753

0.00206

0.001159

0.014221

0.008428

-0.00077

0.000337

0.014758

0.011531

-0.00025

0.000182

0.019341

0.016045

-0.00058

0.001882

0.013989

0.01244

-0.00061

0.002427

0.009856

0.008249

-6.2E-05

0.001102

0.02649

0.029866

0.001989

0.001128


二维码

扫码加我 拉你入群

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

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

关键词:Stata tata F检验 Sigma 资本市场 资本市场 sigma 标准差

沙发
sungmoo 发表于 2009-6-8 08:19:00

*如果数据库如上所示,设变量是sigma1、sigma2、e1r、e2r。run以下命令:

 
preserve
g grp1=1
expandcl 2,cl(grp1) gen(grp2)
foreach i of var sigma1 e1r grp1{
replace `i'=`i'*(grp2==1)
}
foreach i of var sigma2 e2r{
replace `i'=`i'*(grp2==2)
}
replace grp2=grp2-1
g er=e1r+e2r
reg er sigma1 sigma2 grp1 grp2,noc
test _b[sigma1]=_b[sigma2],a
n test _b[grp1]=_b[grp2],a
restore

已有 2 人评分论坛币 学术水平 热心指数 收起 理由
crystal8832 + 10 + 1 补偿
wesker1999 + 1 + 1 奖励

总评分: 论坛币 + 10  学术水平 + 1  热心指数 + 2   查看全部评分

藤椅
shemleung 发表于 2009-6-8 22:59:00

多谢版主,这是检验结果,您看合理么?应该就是F检验的结果了吧?

. preserve

.
. g grp1=1

.
. expandcl 2,cl(grp1) gen(grp2)
(82 observations created)

.
. foreach i of var sigma1 e1r grp1{
  2.
. replace `i'=`i'*(grp2==1)
  3.
. }
(82 real changes made)
(82 real changes made)
(82 real changes made)

.
. foreach i of var sigma2 e2r{
  2.
. replace `i'=`i'*(grp2==2)
  3.
. }
(82 real changes made)
(82 real changes made)

.
. replace grp2=grp2-1
(164 real changes made)

.
. g er=e1r+e2r

.
. reg er sigma1 sigma2 grp1 grp2,noc

      Source |       SS       df       MS              Number of obs =     164
-------------+------------------------------           F(  4,   160) =   42.98
       Model |  .000319973     4  .000079993           Prob > F      =  0.0000
    Residual |  .000297791   160  1.8612e-06           R-squared     =  0.5180
-------------+------------------------------           Adj R-squared =  0.5059
       Total |  .000617764   164  3.7669e-06           Root MSE      =  .00136

------------------------------------------------------------------------------
          er |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      sigma1 |  -.0739832   .0060976   -12.13   0.000    -.0860253   -.0619411
      sigma2 |   -.010269   .0263944    -0.39   0.698    -.0623954    .0418573
        grp1 |   .0014512   .0001986     7.31   0.000      .001059    .0018433
        grp2 |   .0008919   .0004256     2.10   0.038     .0000513    .0017326
------------------------------------------------------------------------------

.
. test _b[sigma1]=_b[sigma2],a

 ( 1)  sigma1 - sigma2 = 0

       F(  1,   160) =    5.53
            Prob > F =    0.0199

.
. n test _b[grp1]=_b[grp2],a

 ( 1)  sigma1 - sigma2 = 0
 ( 2)  grp1 - grp2 = 0

       F(  2,   160) =    4.67
            Prob > F =    0.0107

.
. restore

板凳
sungmoo 发表于 2009-6-8 23:32:00
对于0.05的显著水平,应拒绝两套系数同时相等的原假设。

报纸
shemleung 发表于 2009-6-9 12:01:00
十分感谢!!!

地板
shemleung 发表于 2009-6-14 22:46:27
版主,不好意思,我自己太笨,您给出的程序命令我还是不太理解,呵呵。您用 test _b[sigma1]=_b[sigma2],a 检验的是标准差是否发生变化,用 n test _b[grp1]=_b[grp2],a 检验的是两个线性回归的系数和截距项是否同时发生变化,对吗?那为什么要先检验一下标准差是否变化呢?我用同样的命令对如下三组样本进行F检验。您看是否同样说明对每个样本而言,两套系数同时相等的原假设被否决?但是根据P值,标准差却不变啊。

呵呵说得简单点,您觉得下面三组检验结果分别说明两套系数是否同时相等吗?

对样本1的F检验:

. test _b[sigma1]=_b[sigma2],a

( 1)  sigma1 - sigma2 = 0

       F(  1,   160) =    1.50
            Prob > F =    0.2225

.
. n test _b[grp1]=_b[grp2],a

( 1)  sigma1 - sigma2 = 0
( 2)  grp1 - grp2 = 0

       F(  2,   160) =   18.82
            Prob > F =    0.0000

.
. restore

对样本2的F检验:
. test _b[sigma1]=_b[sigma2],a

( 1)  sigma1 - sigma2 = 0

       F(  1,    86) =    0.60
            Prob > F =    0.4396

.
. n test _b[grp1]=_b[grp2],a

( 1)  sigma1 - sigma2 = 0
( 2)  grp1 - grp2 = 0

       F(  2,    86) =   13.47
            Prob > F =    0.0000

.
. restore

对样本3的F检验:
. test _b[sigma1]=_b[sigma2],a

( 1)  sigma1 - sigma2 = 0

       F(  1,    70) =    0.96
            Prob > F =    0.3303

.
. n test _b[grp1]=_b[grp2],a

( 1)  sigma1 - sigma2 = 0
( 2)  grp1 - grp2 = 0

       F(  2,    70) =    5.42
            Prob > F =    0.0065

.
. restore

7
shemleung 发表于 2009-6-15 00:52:39
也请其他的高人看看阿.

8
sungmoo 发表于 2009-6-15 01:51:54
你想做联合参数检验,就要加上参数a。

你想做单参数检验,就不用加上a。

在stata命令中,联合参数检验,形式上是各个“单参数检验,a”一并组成的(你挨个列出你要进行哪些系数数的联合检验),内容上却是联合检验。

参数a表示,后一个检验要基于前一个检验(累计:accumulate)的结果。

联合检验,就看最一个检验的结果。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

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

9
shemleung 发表于 2009-6-15 10:27:46
8# sungmoo

恩,很感谢啊.如果是这样的话,我后来列出的三组F检验结果都应该说明联合参数[a, b]没有发生显著变化了,对吧?但是我还是很疑惑。根据您的对sigma1-sigma2=0的F检验结果,应该说明标准差是不显著变化的啊(sigma1-sigma2不显著不同于0),也就是说因变量没有显著变化,但为什么资本市场直线会的截距项和斜率会变化即资本市场直线移动了呢?这在直觉上似乎说不同啊。谢谢解答!

10
jiayi20031207 发表于 2009-6-15 11:22:43
说真的,版主给出来的命令是华丽丽的没看懂呀。
如果我处理这个问题的话就直接用两个虚拟变量来解决了。
事件发生的时点为T1的话,设定D=1, t>=T1,D=0 ,t<T1;
然后再生成一个交叉项D*sigma,D的设定延用上面的。
然后在整个数据集上进行估计,
如果D和D*sigma的系数都是显著的,也就证明你所要证明的关系是不成立的,如果只有D显著,则只存在漂移;如果只有D*sigma显著则只存在斜率的变化。
命令如下:
gen D=1 if t>=T1
replace D=0 if t<T1
gen Dsigma=D*sigma
regress Er D sigma Dsigma
然后观察相应的虚假变量和交叉项的t值。
我本是无心的花儿,为寂寞迷惑悄悄绽放.

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-15 20:03