在STATA使用statsby命令做分组回归

2023-05-02 16:23:11   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《在STATA使用statsby命令做分组回归》,欢迎阅读!
分组,回归,命令,statsby,使用

STATA使用statsby命令做分组回归

赵岩 徐畅

(吉林大学商学院会计系)



在实际的回归分析中,经常需要做多分组的回归,譬如:分别按年度、行业进行回归。如果仅仅使用regress命令,那么必然造成进行重复多次的繁重劳动。当然,一种办法就是通过编程来实现,不过这需要拥有较好的编程能力,绝大多数初学者甚至是资深人士都不愿选择的。其实STATA中已经提供了相应的命令完成这个貌似繁重的工作,即statsby,这个可以专门用来处理分组数据的命令。



一、statsby的命令格式及说明 statsby命令格式为:

statsby [exp_list] [, options ]: command

其具体内容,请参见STATAhelp文件,即: help statsby

在分组回归中,statsby最重要的是如下三个部分: 1[, options ],应使用分组变量,如:,by(year industry)

2command,应选用相应的回归命令,如果是OLS,那么就为“regress y x1 x2 3[exp_list],要统计的相应参数,如:系数拟合值、拟和优度、自由度等,可参见对应commandhelp文件。

综合起来,命令可以写为: use d:\statsbydata.dta,clear sort year industy

Statsby _b _se e(r2) e(r2_a) e(df_m) e(df_r) e(F) e(N), by(year industry) saving(d:\statsbyresults.dta, replace): regress y x1 x2

其中:

d:\statsbydata.dta为举例使用数据库,包括变量为:yx1x2yearindustry,其中yearindustry是用来做分组回归的分组标识变量;

sort是排序命令,建议养成好习惯对分组变量排序,为了后续研究做准备。 _b为各变量的回归系数; _se为各变量的标准误;

e(r2)为回归方程的拟和优度r2 e(r2_a)为回归方程的调整后r2

e(df_m)为回归方程的模型自由度,一般的统计、计量的书籍都记为(K-1) e(df_r)为回归方程的剩余自由度,一般的统计、计量的书籍都记为(n-K) e(F)为回归方程的F值;

e(N)为进入回归方程的有效样本数N,一般的统计、计量的书籍都记为n,也即前述提及的n

by(year industry),使用变量yearindustry作为分组变量,进行分组统计; saving(d:\statsbyresults.dta, replace),将结果保存,也可以保存在临时表里; regress y x1 x2,进行回归,这部分可以参看regress命令自身格式进行扩充。

此命令结束后,将在D盘下产生一个名字为statsbyresults.dta的文件,上述统计量都将在此文件中。这里需要说明的是_b_se是系统生成的向量,因此不能随便赋给变量,e()

1


则是标量,可以赋值给一个变量,譬如在命令中可以写:R_square=e(r2),这样在statsbyresults.dta就会出现一个R_square,替代原有的系统默认生成的变量。即使是系统生成的变量,也不用担心,因为变量的label可以区分具体的变量意义。



二、使用statsby命令后计算各回归方程中各回归系数的t值和p

这里又发现了新的问题,首先在regress命令结果中的e()函数中,没有t值和对应的p值,这对于想验证相应分组模型对应的系数是否显著或是模型是否显著就很麻烦,因此,里只能通过t值的计算公式和STATA提供的t检验的p值函数。具体步骤如下:

首先切换到结果表,

save d:\statsbydata.dta,replace use “d:\statsbyresults.dta”, clear 其中,save命令使用要十分小心,会把原有的数据库内容改变,因此存在大量的STATA的使用讲解中都提及到如何避免这个问题的处理,请自行参考。本文为了说明方便,简化处理。

回归系数的t值公式为:ti其中:

ise(i)

t(nK)

i是第i个回归系数,可以在结果表中找到相应变量,以“_b_”开头的、以对应回归

变量名为结尾的,如:_b_x1”为x1的回归系数、_b_cons”为截距项回归系数;

se(i)为其标准误,可以在结果表中找到相应变量,以“_se_”为开头的、以对应回归

变量名为结尾的,如:_se_x1”为x1的回归系数的标准误、_se_cons”为截距项回归系数的标准误;

nK为回归方程剩余自由度,e(df_r),如果没有赋给变量,那么系统自动生成一个变量,其label会标注“e(df_r),此处回归的系统变量为_eq2_stat_4

因此,计算x1回归系数的t值和p值可以用如下的命令: gen x1_t=_b_x1/_se_x1

gen x1_p=ttail(_eq2_stat_4,abs(x1_t)) 其中:

ttail(e(df_r),abs(t_value))为计算t检验值对应的p值函数,具体函数要求请参考help件;abs()为取绝对值函数。

这样,d:\statsbyresults.dta文件中生成了两个新的变量x1_tx1_p,分别为x1回归系数的t值和对应的p值。



三、使用statsby命令后计算各回归方程F值对应的p t值和对应的p值一样,e()中也没有给出各个模型的F值对应的p值,因此需要通过STATA提供的F检验的p值函数来计算生成。具体步骤如下:

r2/(K1)

回归方程的F值公式为:F

(1r2)/(nK)

其中:

r2为回归方程拟和优度,即e(r2)



2


本文来源:https://www.dywdw.cn/75e41943bb4ae45c3b3567ec102de2bd9705de71.html

相关推荐
推荐阅读