目录

stata自带示例数据集

1.数据描述

2. 标签重命名

3.截面数据统计

4.面板数据定义

5.面板数据统计

6.分组统计

7.连续值自动划分等级

8.计算分位数

9.字符串截取与转换成数字

10.字符串变量设置类别编码

11. 自动生成均值,中位数等

12. 删除变量或样本

13. 删除指定变量中含有缺失值的样本

14.缩尾处理

 15.中介效应

16.长面板与宽面板互转

 17.多列合并

 18.面板数据指定前期值

 19.概率转移矩阵

20.双样本T检验

# 引用数据
sysuse nlsw88.dta

1.数据描述

describe   # 简写des

BP检验python bp检验stata命令_数据

2. 标签重命名

rename 原始标签名称 新标签名称
# 例如rename Stkcd id

3.截面数据统计

summarize   #简写sum

BP检验python bp检验stata命令_BP检验python_02

4.面板数据定义

use http://www.stata-press.com/data/r15/nlswork.dta
xtset idcode year, yearly

BP检验python bp检验stata命令_BP检验python_03

5.面板数据统计

基于4步骤定义面板数据后进行统计

xtsum

BP检验python bp检验stata命令_字符串_04

6.分组统计

使用上面数据分年龄统计收入水平

方式一

sort age
by age : sum ln_wage

BP检验python bp检验stata命令_BP检验python_05

方式二

tabstat ln_wage ,by(age) stat(mean sd min max)

BP检验python bp检验stata命令_计量经济学_06

 

7.连续值自动划分等级

例如将下列年龄进行划分

BP检验python bp检验stata命令_计量经济学_07

xtile age_rank =age , nquantile(5) # 根据分位数划分5个等级

 看看效果

tabstat age,by(age_rank) stat(mean sd min max)

BP检验python bp检验stata命令_BP检验python_08

8.计算分位数

cumul age ,gen(k) # 新增变量k就是age的分位数

9.字符串截取与转换成数字

例如:股票代码600519.SH

replace id=substr(id,1,6) # 其中id是证券代码

# 若需要字符串转数字需要下面命令
destring id, replace

10.字符串变量设置类别编码

通常情况一些离散变量是字符串类型的,模型计算需要转换成数值类型的,例如:北京,对应数字1

BP检验python bp检验stata命令_数据_09

 转换代码

encode province, gen (province_class) #其中province_class是新的编码变量

BP检验python bp检验stata命令_数据_10

查看编码对应的字符串用下面代码

label list province_class

 

BP检验python bp检验stata命令_计量经济学_11

 那么已经编码的变量如何转换(映射)回字符串

decode province_class , generate(province_str)

11. 自动生成均值,中位数等

使用egen命令生成,详细help egen

egen xbar = mean(x) # 新增xbar字段,值是x变量的均值

12. 删除变量或样本

条件删除样本

drop if (IND == "J66")|(IND == "J67")  # 删除IND字段值是 "J66" 或 "J67"

删除变量

drop id    # 删除id变量

13. 删除指定变量中含有缺失值的样本

需要安装dropmiss命令

示例

BP检验python bp检验stata命令_数据统计_12

dropmiss a b c ,obs any

处理后的数据

 

BP检验python bp检验stata命令_数据_13

14.缩尾处理

winsor2 GRO , replace cuts(1 99) # 处理GRO变量,保留1-99百分比变量值

15.中介效应

中介效应有很多模型,具体可参考:

https://stats.idre.ucla.edu/stata/faq/how-can-i-do-moderated-mediation-in-stata/

BP检验python bp检验stata命令_字符串_14

 对于model1 示例如下

m = a0 + a1x
y = b0 + b1m + b2x + b3mx
conditional indirect effect = a1(b1 + b3x)
Normal theory estimation using the delta method for model 1.
quietly summarize x
global m=r(mean)
global s=r(sd)
generate mx=m*x  /*  mv by iv interaction */
sem (m <- x)(y <- m x mx)

16.长面板与宽面板互转

BP检验python bp检验stata命令_字符串_15

17.多列合并

stack命令

BP检验python bp检验stata命令_字符串_16

18.面板数据指定前期值

例如面板数据知道当前期一个人的收入水平,想得到前1期收入水平做对比。

use http://www.stata-press.com/data/r15/nlswork.dta  # 使用示例数据
xtile wage_rank = ln_wage , nquantile(5)  # 将收入自动划分等级
xtset idcode year   # 定义面板
gen pro_wage_rank = L.wage_rank   #定义pro_wage_rank是前1一期收入等级 

# 前n期 用Ln.xxx表示,前1期1可以省略

19.概率转移矩阵

根据上个示例想得到每年总样本的收入水平变化情况,可能需要一个概率矩阵。下面代码只生成70年概率转移矩阵

qui estpost tab pro_wage_rank wage_rank  if year == 70
esttab ., cell(rowpct(fmt(2)) count(fmt(g) par keep(Total)))  collabels(none) unstack noobs nonumber nomtitle  eqlabels(, lhs(`year_item'转移矩阵)) varlabels(, blist(Total "{hline @width}{break}"))

BP检验python bp检验stata命令_BP检验python_17

 概率转移矩阵一大特点对角线值最大,即大概率情况下状态是保持不变的。

20.双样本T检验

使用ttesti命令,我常用 ttesti #obs1 #mean1 #sd1 #obs2 #mean2 #sd2 

ttesti 32080 0.567751246882793 0.3032139549246353 32080 0.5659769326683292 0.30021235122326406

BP检验python bp检验stata命令_BP检验python_18

 H0假设是均值相等,但是检测结果是Ha:diff<0 的概率最大。

21.固定效应

22.双重差分

21.倾向性匹配

22.断点回归

23.logit

24.OLS

。。。。。。。。待完成