Note: 助教招聘信息请进入「课程主页」查看。因果推断-内生性 专题 ⌚ 2020.11.12-15 主讲:王存同 (中央财经大学);司继春(上海对外经贸大学)空间计量 专题 ⌚ 2020.12.10-13 主讲:杨海生 (中山大学);范巧 (兰州大学)

编译:张晓明 (中国人民大学);连玉君(中山大学)

Stata 连享会: 知乎 | 简书 | 码云

下载 dofile: 连享会-十幅经典图形绘制.do (可右击另存,亦可在线查看)

1. 散点图:附加密度函数图和拟合线(Scatter Plot with Regression Results)

附加密度函数和拟合曲线的散点图能够更好地看清样本的概率分布,同时能够表示出参数估计的置信区间。

*-文件夹设定

cd D:\

mkdir myfigs

cd D:\myfigs // 后文输出的图形自从存储于此处

*-----------

*- F1 散点图:附加密度函数和拟合曲线图绘制

*-----------

sysuse auto, clear

version 9.2 //绘制这幅图的时候,需要加这条命令,后续版本的stata绘图命令的语法有所改变

keep if foreign

sort weight

gen weight2 = weight^2

regress mpg weight weight2

predict fit

predict se , stdp

#delimit ;

twoway

scatter mpg weight , pstyle(p3) ms(o) ||

fn weight[3] - 1000 * normden(x, `=fit[3]' , `=se[3]') ,

range(`=fit[3] -5' `=fit[3] +5') horiz pstyle(p1) ||

fn `=fit[3]' , range(`=weight[3]' `=weight[3]-1000*normden(0, se[3])')

pstyle(p1) ||

fn weight[17] - 1000 * normden(x, `=fit[17]', `=se[17]') ,

range(`=fit[17]-5' `=fit[17]+5') horiz pstyle(p1) ||

fn `=fit[17]', range(`=weight[17]' `=weight[17]-1000*normden(0, se[17])')

pstyle(p1) ||

fn weight[21] - 1000 * normden(x, `=fit[21]' , `=se[21]') ,

range(`=fit[21] -7' `=fit[21] +7') horiz pstyle(p1) ||

fn `=fit[21]', range(`=weight[21]' `=weight[21]-1000*normden(0, se[21])')

pstyle(p1) ||

line fit weight, clwidth(*2) legend(off)

ytitle(Miles per gallon) xtitle(Weight)

title("Scatter with Regression Line and Confidence Interval Densities"

, size(*0.8) margin(t=0 b=1.5) span)

;

#delimit cr

*-保存图片

graph export "F1_Scatter_distribution.png", ///

replace width(506) height(376)

2. 三变量比例图 (triplot)

三变量比例图可以显示出三个变量之间的复杂的组合关系,三个变量比例的取值范围为1~100。

*----------------

*-F2 三变量比例图

*----------------

* Plots 3 variables (proportions or percentages)

* the total of each to equal either 1 or 100

ssc install triplot, replace // 下载命令

clear

input a1 a2 a3 str10 name

10 10 80 John

80 10 10 Fred

25 25 50 Jane

90 5 5 Helen

0 0 100 Ed

50 25 25 Kate

20 60 20 Michael

25 25 50 Darren

5 90 5 Samar

end

list

triplot a1 a2 a3, ///

mlabel(name) mlabcolor(black) mcolor(blue) ///

mlabsize(*0.9) max(100) ///

title("Opinion a1 a2 a3")

//保存图片

graph export "F2_triplot.png", ///

replace width(506) height(376)

3. 点图:图示政策效果(Stripplot)

如果将本例中的纵轴分组变量换成年份,则这幅图可以在倍分法回归分析之前,图示政策效果。

*--------

*-F3 点图 图示政策效果

*--------

ssc install stripplot, replace // 下载并更新命令

help stripplot // 查看帮助文件

sysuse bplong, clear

egen group = group(age sex), label

#d ;

stripplot bp*, bar over(when)

by(group, compact col(1) note(""))

yscale(reverse)

subtitle(, pos(9) ring(1) nobexpand

bcolor(none) placement(e))

ytitle("")

xtitle("Blood pressure (mm Hg)") ;

#d cr

//保存图片

graph export "F3_triplot.png", ///

replace width(531) height(394)

4. 雷达图\蜘蛛网图 (Radar Plot, Spider plots)

雷达图在市场营销和管理学中应用较为广泛,主要用于呈现某个对象的各方面特征的均衡度,正所谓 “尺有所短寸有所长”。

*-------------------

*-F4 雷达图\蜘蛛网图

*-------------------

ssc install radar, replace //下载外部命令

help radar //查看帮助文件

sysuse auto, clear

sort price

#d ;

radar make turn mpg trunk in 1/20,

aspect(1)

title(Nice Radar graph, size(*0.6))

lc(red blue green)

lw(*1 *2 *4) rlabel(0 12 14 18 50) labsize(*0.7)

legend(label(1 "mpg-油效(英里/加仑)")

label(2 "turn-转弯半径(英尺)")

label(3 "trunk-后备箱容积(立方英尺)")

col(1) size(*.8)) ;

#d cr

//保存图片

graph export "F4_radar_plot.png", ///

replace width(431) height(394)

5. 快捷诊断图(Sixplot)

快捷诊断图针对一个变量提供了六幅分析性的、描述性的图片

*--------------

*-F5 快捷诊断图

*--------------

*-Goal: Displays six diagnostic and descriptive graphs for a single variable

ssc install sixplot //下载命令

sysuse uslifeexp.dta

sixplot le_male

//保存图片

graph export "F5_sixplot.png", ///

replace width(431) height(394)

6. 箱形图 (Box Plot)

箱形图又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。

*-----------

*-F6 箱形图

*-----------

sysuse nlsw88, clear

clonevar wagelog10 = wage

replace wagelog10 = log10(wagelog10)

mylabels 0(10)40 , myscale(log10(@)) local(labels)

#d ;

graph hbox wagelog10,

over(ind, sort(1)) nooutside

ytitle("") ylabel(`labels')

title("Hourly wage, 1988, woman aged 34-46", span)

subtitle(" ")

note("Source:1988 data from NLS, U.S. Dept. of Labor, "

"Bureau of Labor Statistics", span) ;

#d cr

//保存图片

graph export "F6_box_plot.png", ///

replace width(431) height(394)

7. 小提琴图(Violin Plot)

小提琴图 (Violin Plot) 用于显示数据分布及其概率密度。这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。中间的黑 色粗条表示四分位数范围,从其延伸的幼细黑线代表 95% 置信区间,而白点则为中位数。

*------------

*-F7 小提琴图

*------------

ssc install vioplot // 下载外部命令

help vioplot // 查看帮助文件

sysuse auto, clear

vioplot mpg, over(rep78) horizontal name(myplot) ///

title("Violin Plot of Mileage") ///

subtitle("By repair record") ///

ytitle(Repair Record) ///

ylab(, angle(horiz)) ///

scheme(s2mono)

//保存图片

graph export "F7Violin_plot.png", ///

replace width(431) height(394)

8. 热图绘制(Heat Map)

热图通过平面二维坐标加上不同区域颜色的变化表达了三维信息,热图中横坐标与纵坐标给出了数据的特征,热图的颜色表示了该数据在整体中的概率密度分布。

*------------

*-F8 热图绘制

*------------

ssc install spgrid, replace

ssc install spkde, replace

ssc install mylabels, replace //下载外部命令

sysuse "auto.dta", clear

set more off

summarize price mpg

clonevar x = mpg

clonevar y = price

replace x = (x-0)/(50-0)

replace y = (y-0)/(20000-0)

mylabels 0(10)50, myscale((@-0)/(50-0)) local(XLAB)

mylabels 0(5000)20000, myscale((@-0)/(20000-0)) local(YLAB)

keep x y

save "xy.dta", replace

* 1. Generate a 100x100 grid

spgrid, shape(hexagonal) xdim(100) ///

xrange(0 1) yrange(0 1) ///

dots replace ///

cells("2D-GridCells.dta") ///

points("2D-GridPoints.dta")

* 2. Estimate the bivariate probability density function

spkde using "2D-GridPoints.dta", ///

xcoord(x) ycoord(y) ///

bandwidth(fbw) fbw(0.1) dots ///

saving("2D-Kde.dta", replace)

use "2D-Kde.dta", clear

merge 1:1 _n using xy.dta

twoway (contour p spgrid_ycoord spgrid_xcoord if p!=0 , ///

levels(15)) ///

(scatter y x, mcolor(black) msize(small) ) ///

,xlab(`XLAB', nogrid) xtitle("Mileage (mpg)") ///

ylab(`YLAB', nogrid) ///

ytitle("Price $US") plotregion(color(blue))

graph export "F8Heat_Map.png", replace width(431) height(394)

9. 棘状图绘制(Spine Plot)

棘状图的原理和条件密度图非常相似,都展示了给定某个自变量的情况下因变量的概率分布,但是棘状图首先对连续型的自变量进行了离散化处理,然后再离散区间内计算因变量的条件分布。除此之外,棘状图还兼顾了自变量的分布,在横轴方向上以不同宽度的矩形表示自变量的分布密度。

*--------------

*-F9 棘状图绘制

*---------------

sysuse auto, clear

replace rep78=0 if missing(rep78)

bysort foreign rep78 : gen N = _N

bysort foreign : gen Na1 = (N/_N)*100

by foreign : gen N1 = string(Na1,"%5.2f") +"%"

label define kk 0 "missing",

label values rep78 kk

spineplot rep78 foreign, ///

bar1(bcolor(gs14)) ///

percent missing ///

bar2(bcolor(gs11)) ///

bar3(bcolor(gs8)) ///

bar4(bcolor(gs5)) ///

bar5(bcolor(gs2)) ///

bar6(bcolor(red)) text(N1)

graph export "F9Spine_Plot.png", ///

replace width(431) height(394)

10. 中心条形图(Centred Bar Plot)

中心条形图经常被用在社会学统计分析中,中心的条块经常用来显示不同层次或年龄群体在横坐标对应的分类中的频率。

*----------------

*-F10 中心条形图

*----------------

ssc install cbarplot, replace

clear

input levels freqcores freqblanks freqtools

25 21 32 70

24 36 52 115

23 126 650 549

22 159 2342 1633

21 75 487 511

20 176 1090 912

19 132 713 578

18 46 374 266

17 550 6182 1541

16 76 846 349

15 17 182 51

14 4 51 14

13 29 228 130

12 135 2227 729

end

reshape long freq, i(levels) j(kind) string

*-绘图

cbarplot levels kind [fw=freq], percent(levels) mlabsize(*.6)

*-保存图片

graph export "F10Centred_Bar_Plot.png", ///

replace width(431) height(394)下载 dofile: 连享会-十幅经典图形绘制.do (可右击另存,亦可在线查看)

相关课程部分直播课

课程一览

支持回看,所有课程可以随时购买观看。Note: 部分课程的资料,PPT 等可以前往关于我们Stata 连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。

公众号推文分类:计量专题 | 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。连享会小程序:扫一扫,看推文,看视频……扫码加入连享会微信群,提问交流更方便

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐