女醜無敵 2星
共回答了210个问题采纳率:93.2% 评论
stata创建对数变量可以通过nN的应用创建对数变量,使之随着变量的顺序变化。
定义: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 1234567891012345678910
dis _N //N是一个单值 scalar obs = _N qui sum wage //得到wage变量的均值 dis r(mean)*_N dis r(mean)*obs 1234512345
_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 1234567812345678
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 123456789123456789
3.移动平均
gen mv3 = (open[_n-1] + open[_n] + open[_n+1] )/3 * 三阶移动平均 list open mv3 in 1/10 123123
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。
12小时前