当前位置: 代码迷 >> 综合 >> STATA 常用模型与命令
  详细解决方案

STATA 常用模型与命令

热度:22   发布时间:2024-02-07 21:00:36.0

STATA

  • 常用命令
    • 数据相关
      • 生成新数据
      • 删除和修改数据
      • 改变数据类型
      • 条件命令
      • 取对数命令
    • 输出相关
  • 常用回归
    • 非线性选择回归
      • logit回归
      • probit回归
    • 线性回归
      • OLS
      • Heckman 回归
      • Tobit回归
      • 2SLS回归(工具变量法)
  • 常用检验
      • 异方差检验
      • 多重共线性检验:
      • 自相关检验:
      • 格兰杰因果检验:
      • 稳健性检验:
      • 内生性检验:

常用命令

数据相关

生成新数据

利用旧数据定义新数据,注意,如果使用的旧数据为两个及以上,只要其中一个为空值,则新数据也为空值(即空值不会自动转化为0):
gen new_valuename = f(value1,value2,……)
如果要生成时间序列,可以定义原有的时间序列数据:
tsset valueame
如果原本没有,可以定义一列新的时间序列:
gen t=_n
tsset t

删除和修改数据

删除数据:
drop value1 value2 value3 ……
保留数据(除保留的以外全部删除):
keep value1 value2 value3 ……
修改数据:
replace valuename = f(value1 , value2 ,……)
修改数据时也可以将自己作为自变量,比如:
replace age = age -1
则age数据全部减少1
注意,请谨慎使用 drop 命令,该命令不可撤销,数据一旦丢失将无法追回,建议使用do文件减少风险(找不回,只是可以选择不保存,然后不用重输命令)

一键删除全部含有缺失值的对象:
egen mis = rowmiss(_all)
drop if mis

删除重复值(删除重复值后会保留第一个数据):
duplicates drop valuename , force

改变数据类型

excel导入的时候,数值型的数据如果有缺失,可能会被导成数值型,可以利用以下操作强制改为数值型
destring value ,force

条件命令

条件命令为 if ,并且的符号为&,或者的符号为|,否认的符号为!,以下为示例:
drop value1 if value 1 >=1 & value 2>=3
drop value1 if value 1 >=1 | value 2>=3
drop value1 if value 4 != “error”

取对数命令

底数为e取对数:
log(value)
底数为10取对数:
log10(value)
取对数后新数值的系数表示百分比变化,如果回归结果不好,可以尝试对其中相对大的数据列取对数。

输出相关

将不同回归结果输出到同一张表中,其中的省略号为所作的操作,注意nest与逗号之间要有空格,不然会失败(第一条命令为安装命令,已经安装的可以跳过):
ssc install asdoc, replace
asdoc …… , nest replace
asdoc …… , nest append

如果要输出描述统计或者其他结果,则可以用:
asdoc …… , save(docname.doc) title(titlename)

常用回归

非线性选择回归

logit回归

二元选择回归,因变量y为虚拟变量:
logistic y x1 x2 x3……
此外逻辑回归也可以做到分组回归,多元选择回归,在学习完成后在这个博客上将继续补充

probit回归

probit y x1 x2 x3……
与逻辑回归的用法相同,虽然思想不一样,但通常情况下,probit回归估计出的参数值乘以1.814,大致会等于logistic回归中的参数值。

线性回归

OLS

reg y x1 x2 x3……
如果有虚拟变量,可以使用xi命令快捷生成:
xi:reg y x1 x2 x3 i.x4……

Heckman 回归

选择样本模型的一种,这里只给出heckman二步法的命令:
heckman y x1 x2 x3 …… , select(xi = z1 z2) twostep
后面的select变量中必须含有至少一种影响xi但对y没有影响的变量,xi为选择变量

Tobit回归

选择样本模型的一种,只给出一般的tobit命令:
tobit y x1 x2 x3……

2SLS回归(工具变量法)

被解释变量:y

解释变量:x1

控制变量:x2 x3 x4

工具变量:z1 z2

reg x1 z1 x2 x3 x4, robust
ivregress 2sls y x1 x2 x3 x4 (x1= z1 z2), robust

常用检验

在做完回归后进行输入命令:

异方差检验

estat hettest
假如prob > chi2 的值小于0.05 则检验通过

多重共线性检验:

estat vif
假如整体的vif小于10则通过

自相关检验:

estat dwatson
一般DW值在2附近则通过(也可以用DW表对照自己判断)

格兰杰因果检验:

存在滞后项时使用
先下载格兰杰因果检验程序gcause
ssc install gcause
检验x对y的因果关系,以下命令为滞后1、2期,显示其AIC、BIC的取值,一般的检验到滞后三期为止,之后进行y对x的检验,命令类似,不予贴出:
gcause y x,lags(1)
estat ic
gcause y x,lags(2)
estat ic

稳健性检验:

通常是通过改变工具变量或是使用不同的计量方法,如果回归结果类似,则说明结果具有稳健性

内生性检验:

通常意味着变量之间相互影响,可以考虑改变工具变量或是使用Durbin-Wu-Hausman 方法进行检验

  相关解决方案