Stata基础学习(二):数据管理之创建变量

Stata数据管理:创建变量

背景

  通常我们需要对变量进行相应的处理以满足实证需要。

参考

  本文是对连玉君老师Stata课程的整理,连玉君老师创办的连享会CSDN主页:连享会

目录

  • 1._n与_N
  • 2.生成虚拟变量
  • 3.生成交互项
  • 4.egen命令介绍

1. _n与_N的使用

  • 定义:Stata中_n是样本的序号(变量),_N是样本数(单值)。
  • _n永远存在,但不能被list命令显示。
  • _n会随着变量的排序而变化

下面举例说明

sysuse nlsw88.dta,clear 
list age wage in 1/10 
list  _n      //错误

sort hours   //hours变量升序
gen nid_1 = _n 
list nid_1 hours race in 1/10 
sort wage  //对wage变量进行排序
gen nid_2 = _n 
list hours wage nid_1 nid_2 in 1/10
dis _N  //N是一个单值
scalar obs = _N
qui sum wage  //得到wage变量的均值
dis r(mean)*_N
dis r(mean)*obs 

_n与_N的应用

1.生成最大值、与最大值的差值、极差

sysuse sp500, clear 
sort open 
sum open 
dis r(max)    //生成最大值(单值)
gen o_max = open[_N]    //生成最大值
gen o_diff = open[_n] - open[_N]   //与最大值的差
gen o_range = open[_N] - open[1]  //极差 
list open o_max o_diff o_range in 1/10

2.差分与对数差分

sysuse sp500,clear 
sort date
gen d_open = open[_n] - open[_n-1]    //生成open的一阶差分变量
gen ln_open = log(open) 

gen d_lnopen = ln_open[_n] - ln_open[_n-1]  //生成对数差分变量
gen dln_open  = ln(open[_n]) - ln(open[_n-1])  //等价上述命令
* 事实上,在经济学中,对数差分可视为增长率
list open d_lnopen in 1/10

3.移动平均

gen mv3 = (open[_n-1] + open[_n] + open[_n+1] )/3
* 三阶移动平均
list open mv3 in 1/10 

4.时间算子法

* 上述问题也可通过时间算子进行运算
tsset date 
gen open_l = L.open  //一阶滞后
gen open_l2 = L2.open //二阶滞后
gen f_open = F.open   //前推一项
gen open_d = D.open //一阶差分
gen open_d2 = D2.open //二阶差分

*计算增长率
gen r1 = D.close/L.close  //方法1
gen lnclose = ln(close)
gen r2 = D.lnclose  //方法2 
list date r1 r2 in 1/10  

作者发烧了,先写到这

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值