Stata常用命令示例

目录

stata自带示例数据集

1.数据描述

2. 标签重命名

3.截面数据统计

4.面板数据定义

5.面板数据统计

6.分组统计

7.连续值自动划分等级

8.计算分位数

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

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

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

12. 删除变量或样本

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

14.缩尾处理

 15.中介效应

16.长面板与宽面板互转

 17.多列合并

 18.面板数据指定前期值

 19.概率转移矩阵

20.双样本T检验



stata自带示例数据集

美国各汽车品牌制造特征向量 autornd.dta
分性别、年龄血压样本 bplong.dta
前后两次测血压差 bpwide.dta
癌症影响因素 cancer.dta
普查数据 census.dta
城市温度气候数据 citytemp.dta
99年教育与gdp数据 educ99gdp.dta
96年GNP数据 gnp96.dta
寿命预期数据 lifeexp.dta
美国年轻女子职业与工资数据88年数据 nlsw88.dta
美国各种族性别数据2000年 pop2000.dta
美国标普500指数 sp500.dta
美国寿命预期数据 uslifeexp.dta
美国寿命预期数据2 uslifeexp2.dta
选举数据 voter.dta
汽车指标数据 auto.dta
美国工作与收入数据 nlswork.dta

# 引用数据
sysuse nlsw88.dta

1.数据描述

describe   # 简写des

2. 标签重命名

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

3.截面数据统计

 summarize   #简写sum

4.面板数据定义

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

5.面板数据统计

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

xtsum

6.分组统计

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

方式一

sort age
by age : sum ln_wage

方式二

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

 

7.连续值自动划分等级

例如将下列年龄进行划分

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

 看看效果

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

8.计算分位数

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

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

例如:股票代码600519.SH

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

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

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

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

 转换代码

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

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

 label list province_class

 

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

 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命令

示例

dropmiss a b c ,obs any

处理后的数据

 

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/

 对于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.长面板与宽面板互转

17.多列合并

stack命令

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}"))

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

20.双样本T检验

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

ttesti 32080 0.567751246882793 0.3032139549246353 32080 0.5659769326683292 0.30021235122326406

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

21.固定效应

22.双重差分

21.倾向性匹配

22.断点回归

23.logit

24.OLS

。。。。。。。。待完成

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值