stata常用小命令(持续更新中)

【1】读入数据一种方式
input  x  y
       1  4 
       2  5.5 
       3  6.2 
       4  7.7 
       5  8.5 
end
【2】直接导入csv格式数据
insheet using name.csv, clear
【3】多重共线性
reg y x1 x2 x3
vif
【4】逐步回归
stepwise, pe(0.1): reg y x
【5】对数据进行Winsorize处理
 findit winsor2
 winsor2 varname, replace cut(1 99)
【6】删除重复值
sort var1 var2
duplicatesdrop var1 var2, force
【7】异方差检验及处理
检验:怀特检验
ssc install whitetst
reg
estat imtest, white
处理:“OLS+稳健标准差”
reg y x1 x2 x3, robust
【8】是否遗漏高次项
例如,检验y对x的线性回归有没有遗漏高次项
reg y x
estat ovtest
或者estat ovtest, rhs
【9】排序
gsort +x // (升序)
gsort -x // (降序)
sort x    //升序;并且其它变量顺序会跟着改变
【10】添加标签
label var y "消费" 
【11】关闭more选项
set more off  //(如果打开该选项,那么结那么结果分屏输出,
 // 即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输
//  完。如果关闭则中间不停,一次全部输出。)
【12】定义时间序列
tsset date
【13】变量重命名
help rename
help rename group
rename never_married no_marr // 单个变量重命名
rename (industry occupation) (indu occu) // 批量重命名
【14】数学表达式
help operator // 运算符
//关系运算符 ==; >; <; >=; <=; !=; ~=
sysuse "auto", clear
list price if foreign == 0
sum price if foreign != 1
//逻辑运算符: & -->( 与 ) ; | -->( 或 )
sysuse "auto", clear
sum price wei if (foreign==1 & rep78<=3)
sum price wei if (rep78==1) | (rep78==5) | (foreign !=0)
sum price wei if (rep78>2 & rep78<5) | (price>10000)
// 算术运算符: + - * / ^( 幂 )
display 5^2
dis 1 - 3*2 + 4/5 - 9^3
dis 2*_pi
【15】命令断行
//:*- 三种方式: “///”  、 “/* */”  、 #delimit  命令
//第一种断行方式: ///
sysuse "auto", clear
twoway (scatter price weight) ///
(lfit price weight), ///
title(" 散点图和线性拟合图 ")
//:第二种断行方式: /* */
twoway (scatter price weight) /*
*/ (lfit price weight), /*
*/ title(" 散点图和线性拟合图 ")
//第三种断行方式: #delimit  命令
 #delimit ;
twoway (scatter price wei)
(lfit price wei),
title(" 散点图和线性拟合图 ");
#delimit cr
//Note: #delimit  可以简写为 #d ,  例如 :
#d ;
des; sum; reg price wei len;
#d cr
【16】导入 Excel 数据 : import excel
shellout "auto.xls" // 打开文件 , 要写全后缀
//Note: [1] Excel  表格中有两个 sheet: domestic, foreign,  需要分别导入
//注意区分后缀 : .xls, .xlsx (Excel 2003), (Excel 2007)
import excel "auto.xls", clear sheet(domestic) firstrow
save "data_domes.dta", replace // 存储数据 sheet1
import excel "auto.xls", clear sheet(foreign) firstrow
save "data_forei.dta", replace // 存储数据 sheet2
use "data_domes.dta", clear // 纵向合并数据
append using "data_forei.dta"
browse // 浏览数据
rename foreign v1
encode v1, gen(forigen) // 字符变量 -->  数值变量
drop v1
 save "data_all", replace // 保存合并后的数据
//Note:
// (1) Excel  中的变量名称必须为英文 ;
// (2)  变量名称中可以包括 #, $, &,  空格 之类的特殊符号,
//Stata  会自动忽略这些特殊符号
【17】 数据 横向合并:增加变量 -merge-
// 一对一合并 [ 1:1 ]
// 待合并的数据
use "data1.dta", clear
browse
use "data2.dta", clear
browse
//合并方法:
use "data1.dta", clear
merge 1:1 date using "data2.dta"
sort date
br
//date为接头变量
//_merge  变量的含义:
  _merge==1 obs. from master data
  _merge==2 obs. from only one using dataset
 _merge==3 obs. from at least two datasets, master or using
【18】 标记重复的样本组合
//使用 group()  函数
 use "gta_sample.dta", clear
 egen sicyr = group(sicmen year), label lname(sicyr)
  label list sicyr //  列示对应关系
  bysort sicyr: egen sicyr_obs = count(sicyr)
   sort sicyr sicyr_obs
   br id sicmen year sicyr*
 keep if sicyr_obs>=10 // 保留每个行业 - 年度上观察值大于 10 的样本
 //Note:  这是盈余管理文献中惯用的处理方法
【19】删除重复的样本组合
use "invest3.dta", clear
xtset id t //  错误
//查验错误原因
duplicates report id t
duplicates example id t
list if id == 1
//处理方式
duplicates drop id t, force // 一定要附加 force  选项
 xtset id t
【20】统计样本缺失值
【命令】nmissing  or  mdesc
ssc install nmissing //先下载外部命令nmissing
sysuse  auto,clear
nmissing  //显示所有变量的缺失数目
nmissing rep78  //显示变量rep78的缺失数
ssc install mdesc//先下载外部命令
sysuse  auto,clear
mdesc
【21】删除缺漏值
egen miss=rmiss(var1, var2,……)
drop if miss!=0
//注意:第一句是生成var1, var2, 等变量中是否含有缺漏至的miss变量,如果有缺漏值miss=1第二句是把有缺漏值的去掉,因为var1, var2, 等变量中只要有一个是缺漏,miss=1 都删去
【22】缩尾处理
//原理
sum wage, detail
return list
replace wage = r(p1) if wager(p99) //  右侧缩尾
//winsor/winsor2  命令
// help winsor
//help winsor2
sysuse "nlsw88.dta", clear
winsor wage, gen(wage_w2) p(0.01)
 winsor2 wage, cuts(1 99)
//Note: [1] cuts(1 99) 选项可以省略,这是默认值
【23】截尾处理
sysuse "nlsw88.dta", clear
winsor2 wage, trim replace // 默认 : 1 99  双边截尾
// 原理解析
sysuse "nlsw88.dta", clear
 _pctile wage, percentile(1 99)
return list
 drop if wager(r2) //  删除大于第 99 百分位的样本
 // 说明:
 * (1)  可以先绘制直方图,进而根据分布情况选择左截尾、
 * 右截尾还是双边截尾
  * (2)  相比于 ln() 处理和 winsor 处理,该处理会损失样本
 * 但对于大样本而言,该方法比较 “ 干净 

你可能感兴趣的:(stata常用小命令(持续更新中))