画图:用twoway,点点点
sysuse sp500, clear
twoway (line high date) (line low date) ///
, ///
title("图1:股票最高价与最低价时序图", box) ///
xtitle("交易日期", margin(medsmall)) ///
ytitle("股票价格") ///
ylabel(900(200)1400) ymtick(##5) ///
legend(label(1 "最高价") label(2 "最低价")) ///
note("资料来源: Stata公司, SP500.dta") ///
caption("说明:我做的第一幅Stata图形! ") ///
saving(mypig.gph, replace)
*-散点图:twoway scatter high date
*-折线图:twoway line change date
*-柱状图:twoway bar open date
*-直方图 histogram change
*-密度函数图kdensity close, normal(normal让图上加了一条平滑的线)
右击保存即可
graph use fig1.gph // 重现图形
合并图形:就是在有两张图之后graph combine
【sysuse sp500, clear
twoway line high low date
graph save A3_price.gph, replace
twoway line high low date, scheme(s1mono)
graph save A3_price_sj.gph, replace】
graph combine A3_price.gph A3_price_sj.gph
删除图形
erase A3_price.gph
graph dir(列出存过的表)
1.Merge:先sort
2.n和N的用法:标序号,dis_N、dis r(max)、sum、bysort xx:
列举:
sysuse nlsw88.dta, clear
list age wage in 1/10
_n的用法:
sort hours
gen nid_1 = _n
list nid_1 hours race in 1/10
看样本数:
dis _N
_N的应用
sysuse sp500.dta, clear
sort open
sum open(看均值啥的)
dis r(max)(return出来一个数)
gen o_max = open[_N] // 最大值
gen o_diff= o_max-open
gen o_diff = open[_n] - open[_N] // 与最大值的差,也可以不写[_n]
gen b_diff = open[_N] - open[1] // range
list open o_max o_diff b_diff in 1/20
3.差分、移动平均:[_n], [_N], [1], [_n-1]
*-差分(计算今天与昨天的差异)
sort date
gen d_open = open[_n] - open[_n-1]
*-对数差分
gen dln_open = ln(open[_n]) - ln(open[_n-1])
*-移动平均
gen mv3_open = (open[_n-1] + open[_n] + open[_n+1]) / 3
4.滞后:tsset、L., L1., F., D.,
tsset date /*声明数据为时间序列*/
gen open_lag = L.open
gen open_lag2 = L2.open
gen open_forward = F.open
gen open_diff = D.open
gen open_diff2 = D2.open
list open* in 1/10
应用:计算增长率
gen r1 = D.close/L.close
5.分组:bysort
sysuse nlsw88.dta, clear
bysort industry: gen gid = _n
list gid industry in 1/50, sepby(industry) (后面大概就是在行业之间加一条线分开的意思,我猜?)
6.参数检验:ttest, ==, Pr<0.1时拒绝原假设,接受备择假设
**正态分布,方差未知
sysuse auto,clear
ttest price==6200
ttest price==6800
**两个总体均值的检验
sysuse auto,clear
ttest mpg== turn
***分组的检验:看国内的车和国外的车在mpg上是否有区别
ttest mpg, by( foreign)
***总体方差的假设检验
**单个总体
sdtest price==20
***两个总体
sdtest price== weight
7.方差检验:sdtest, ==、单因素 oneway、双因素 anova、Pr<0.1时拒绝,证明相关
***单因素方差分析
webuse apple
oneway weight treatment
*****多因素方差分析
webuse systolic
anova systolic drug
*Two-way ANOVA
anova systolic drug disease
7.相关系数:spearman, pwstar(0.05)
spearman head trunk length displacement weight
8.OLS: reg, ln(xx+1), codebook,先看右上角pro>F,看模型是否通过
sysuse auto,clear
spearman length gear_ratio foreign
reg price length gear_ratio foreign
***绝对数据要对数化处理
Gen lnprice=ln(price)
*****预测
reg price length gear_ratio foreign
predict y,xb:求出来的是
predict e, res:求解扰动项y-
reg price length gear_ratio foreign if mpg>21.2973
*****异方差的检验
reg price length gear_ratio foreign
estat imtest, white:看pro<10%,则存在异方差
estat vif:看多重共线性,VIF若均值>1,且 最大值>10,则存在多重共线性
* 经验准则: (1) VIF 的均值 > 1
* (2) VIF 的最大值 >10
reg price length gear_ratio foreign, robust
9.主成分分析
sysuse auto, clear
pca trunk weight length headroom:会出来两个表,一个表是看那个80%的,另外一个是系数的
pca trunk weight length headroom, comp(2) covariance:出来之后第二个表就只有两个新变量的系数
变量相关度检验,70%以上就可以
estat anti
estat kmo ???
碎石图:另外一个确定选几个新变量的方法
screeplot
gen comp1=.......
***得分图:不同主成分得分的散点图
scoreplot
*****不同主成分载荷的散点图
loadingplot
负载矩阵转置
rotate
10.因子分析
webuse bg2
factor bg2cost1-bg2cost6, factors(2):括号里的数字是留下几个因子
11.Reshape:命名要有规则;宽面板→长面板
webuse reshape1,clear
reshape long inc ue, i(id) j(year)
12.结果输出
eststo: 先要在第一次用的时候下载findit
esttab est1 est2 est3 est4 est5 est6 est7 est8 using huigu221.rtf, replace b(3) r2(4) scalars(F) star(* 0.1 ** 0.05 *** 0.01) nogap :nongap代表输出结果没有空行,rtf是word版本,还可以excel